From fdc95021e5fbf3dadba8b0bb163496095fabebb4 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 29 Jan 2026 23:37:04 +0000 Subject: [PATCH] my project --- admin_credentials.txt | 2 +- wp-content/mu-plugins/coco-3d.php | 86 + wp-content/mu-plugins/coco-chatbot.php | 141 + wp-content/mu-plugins/coco-contact-form.php | 114 + wp-content/mu-plugins/coco-i18n.php | 225 + wp-content/mu-plugins/coco-styles.php | 165 + .../wpforms-lite/assets/css/admin-bar.min.css | 1 + .../assets/css/admin-integrations.min.css | 1 + .../assets/css/admin-list-table-ext.min.css | 1 + .../assets/css/admin-notifications.min.css | 1 + .../assets/css/admin-wp5.7-colors.min.css | 1 + .../wpforms-lite/assets/css/admin.min.css | 1 + .../css/admin/admin-form-templates.min.css | 1 + .../css/admin/admin-splash-modal.min.css | 1 + .../css/admin/edit-post-education.min.css | 1 + .../assets/css/builder/builder-alerts.min.css | 1 + .../assets/css/builder/builder-basic.min.css | 1 + .../css/builder/builder-fields-types.min.css | 1 + .../assets/css/builder/builder-fields.min.css | 1 + .../css/builder/builder-overlay.min.css | 1 + .../assets/css/builder/builder-panels.min.css | 1 + .../css/builder/builder-scrollbars.min.css | 1 + .../css/builder/builder-subsystems.min.css | 1 + .../css/builder/builder-third-party.min.css | 1 + .../css/builder/builder-ui-general.min.css | 1 + .../assets/css/builder/content-editor.min.css | 1 + .../wpforms-lite/assets/css/challenge.min.css | 1 + .../wpforms-lite/assets/css/choices.min.css | 1 + .../assets/css/dashboard-widget.min.css | 1 + .../assets/css/emails/classic.min.css | 1 + .../assets/css/emails/compact.min.css | 1 + .../css/emails/corrupted-data-report.min.css | 1 + .../assets/css/emails/general.min.css | 1 + .../partials/classic_media_queries.min.css | 1 + .../partials/compact_media_queries.min.css | 1 + .../css/emails/partials/media_queries.min.css | 1 + .../partials/summary_media_queries.min.css | 1 + .../assets/css/emails/summary.min.css | 1 + .../assets/css/form-embed-wizard.min.css | 1 + .../css/frontend/classic/wpforms-base.min.css | 1 + .../css/frontend/classic/wpforms-full.min.css | 1 + .../css/frontend/modern/wpforms-base.min.css | 1 + .../css/frontend/modern/wpforms-full.min.css | 1 + .../css/frontend/wpforms-dashicons.min.css | 1 + .../css/frontend/wpforms-form-preview.min.css | 1 + .../css/frontend/wpforms-no-styles.min.css | 1 + .../css/integrations/ai/ai-forms.min.css | 1 + .../css/integrations/ai/chat-element.min.css | 1 + .../ai/form-templates-page.min.css | 1 + .../assets/css/integrations/ai/modal.min.css | 1 + .../css/integrations/divi/choices.min.css | 1 + .../divi/wpforms-classic-base.min.css | 1 + .../divi/wpforms-classic-full.min.css | 1 + .../divi/wpforms-modern-base.min.css | 1 + .../divi/wpforms-modern-full.min.css | 1 + .../square/admin-settings-square.min.css | 1 + .../wpforms-square-card-placeholder.min.css | 1 + .../square/divi/wpforms-square.min.css | 1 + .../wpforms-square-card-placeholder.min.css | 1 + .../square/wpforms-square.min.css | 1 + .../stripe/admin-settings-stripe.min.css | 1 + .../stripe/builder-stripe-common.min.css | 1 + .../stripe/builder-stripe.min.css | 1 + .../stripe/divi/wpforms-stripe.min.css | 1 + .../stripe/wpforms-stripe.min.css | 1 + .../woocommerce/notifications.min.css | 1 + .../wpforms-lite/assets/css/logger.min.css | 1 + .../wpforms-lite/assets/fonts/wpforms.woff2 | Bin 0 -> 2344 bytes .../complete-guide-to-wpforms-settings.png | Bin 0 -> 33200 bytes .../about/how-choose-right-form-field.png | Bin 0 -> 59931 bytes .../about/how-create-gdpr-compliant-forms.png | Bin 0 -> 13139 bytes .../how-install-activate-wpforms-addons.png | Bin 0 -> 19896 bytes .../assets/images/about/icon-full.svg | 1 + .../assets/images/about/icon-none.svg | 1 + .../assets/images/about/icon-partial.svg | 1 + .../assets/images/about/plugin-affwp.png | Bin 0 -> 1207 bytes .../assets/images/about/plugin-aioseo.png | Bin 0 -> 3361 bytes .../assets/images/about/plugin-charitable.png | Bin 0 -> 3323 bytes .../assets/images/about/plugin-duplicator.png | Bin 0 -> 5151 bytes .../assets/images/about/plugin-edd.png | Bin 0 -> 1898 bytes .../assets/images/about/plugin-mi.png | Bin 0 -> 7238 bytes .../assets/images/about/plugin-om.png | Bin 0 -> 46309 bytes .../assets/images/about/plugin-pushengage.png | Bin 0 -> 1474 bytes .../assets/images/about/plugin-rp.png | Bin 0 -> 2190 bytes .../assets/images/about/plugin-sb-fb.png | Bin 0 -> 9607 bytes .../images/about/plugin-sb-instagram.png | Bin 0 -> 7233 bytes .../assets/images/about/plugin-sb-twitter.png | Bin 0 -> 7884 bytes .../assets/images/about/plugin-sb-youtube.png | Bin 0 -> 2697 bytes .../assets/images/about/plugin-searchwp.png | Bin 0 -> 2190 bytes .../assets/images/about/plugin-seedprod.png | Bin 0 -> 12326 bytes .../assets/images/about/plugin-smtp.png | Bin 0 -> 8391 bytes .../images/about/plugin-sugarcalendar.png | Bin 0 -> 967 bytes .../assets/images/about/plugin-trustpulse.png | Bin 0 -> 2364 bytes .../images/about/plugin-wp-simple-pay.png | Bin 0 -> 1022 bytes .../assets/images/about/plugin-wpcode.png | Bin 0 -> 23059 bytes .../wpforms-lite/assets/images/about/team.jpg | Bin 0 -> 393560 bytes .../images/addon-icon-activecampaign.png | Bin 0 -> 2785 bytes .../assets/images/addon-icon-airtable.png | Bin 0 -> 2488 bytes .../images/addon-icon-authorize-net.png | Bin 0 -> 4259 bytes .../assets/images/addon-icon-aweber.png | Bin 0 -> 8542 bytes .../assets/images/addon-icon-brevo.png | Bin 0 -> 12939 bytes .../assets/images/addon-icon-calculations.png | Bin 0 -> 1025 bytes .../images/addon-icon-campaign-monitor.png | Bin 0 -> 1772 bytes .../assets/images/addon-icon-captcha.png | Bin 0 -> 9811 bytes .../images/addon-icon-conditional-logic.png | Bin 0 -> 4536 bytes .../images/addon-icon-constant-contact.png | Bin 0 -> 2045 bytes .../addon-icon-conversational-forms.png | Bin 0 -> 4049 bytes .../assets/images/addon-icon-convertkit.png | Bin 0 -> 2757 bytes .../assets/images/addon-icon-coupons.png | Bin 0 -> 4928 bytes .../assets/images/addon-icon-drip.png | Bin 0 -> 7313 bytes .../assets/images/addon-icon-dropbox.png | Bin 0 -> 2610 bytes .../images/addon-icon-entry-automation.png | Bin 0 -> 3639 bytes .../images/addon-icon-form-abandonment.png | Bin 0 -> 5243 bytes .../assets/images/addon-icon-form-locker.png | Bin 0 -> 5518 bytes .../assets/images/addon-icon-form-pages.png | Bin 0 -> 1277 bytes .../images/addon-icon-form-templates-pack.png | Bin 0 -> 3204 bytes .../assets/images/addon-icon-geolocation.png | Bin 0 -> 12283 bytes .../assets/images/addon-icon-getresponse.png | Bin 0 -> 5001 bytes .../images/addon-icon-google-calendar.png | Bin 0 -> 2155 bytes .../assets/images/addon-icon-google-drive.png | Bin 0 -> 7396 bytes .../images/addon-icon-google-sheets.png | Bin 0 -> 1300 bytes .../assets/images/addon-icon-hubspot.png | Bin 0 -> 3613 bytes .../assets/images/addon-icon-kit.png | Bin 0 -> 1803 bytes .../assets/images/addon-icon-lead-forms.png | Bin 0 -> 6269 bytes .../assets/images/addon-icon-mailchimp.png | Bin 0 -> 6620 bytes .../assets/images/addon-icon-mailerlite.png | Bin 0 -> 2272 bytes .../assets/images/addon-icon-mailpoet.png | Bin 0 -> 2718 bytes .../assets/images/addon-icon-make.png | Bin 0 -> 5914 bytes .../assets/images/addon-icon-n8n.png | Bin 0 -> 3168 bytes .../assets/images/addon-icon-notion.png | Bin 0 -> 6003 bytes .../images/addon-icon-offline-forms.png | Bin 0 -> 2570 bytes .../images/addon-icon-paypal-commerce.png | Bin 0 -> 22086 bytes .../images/addon-icon-paypal-standard.png | Bin 0 -> 22086 bytes .../assets/images/addon-icon-pdf.png | Bin 0 -> 2155 bytes .../assets/images/addon-icon-pipedrive.png | Bin 0 -> 3264 bytes .../images/addon-icon-post-submissions.png | Bin 0 -> 4091 bytes .../assets/images/addon-icon-quiz.png | Bin 0 -> 3216 bytes .../assets/images/addon-icon-salesforce.png | Bin 0 -> 4003 bytes .../assets/images/addon-icon-save-resume.png | Bin 0 -> 2853 bytes .../assets/images/addon-icon-sendinblue.png | Bin 0 -> 6259 bytes .../assets/images/addon-icon-signatures.png | Bin 0 -> 7632 bytes .../assets/images/addon-icon-slack.png | Bin 0 -> 3258 bytes .../assets/images/addon-icon-square.png | Bin 0 -> 1680 bytes .../assets/images/addon-icon-stripe.png | Bin 0 -> 2711 bytes .../images/addon-icon-surveys-polls.png | Bin 0 -> 2716 bytes .../assets/images/addon-icon-twilio.png | Bin 0 -> 3492 bytes .../assets/images/addon-icon-user-journey.png | Bin 0 -> 4057 bytes .../images/addon-icon-user-registration.png | Bin 0 -> 7684 bytes .../assets/images/addon-icon-webhooks.png | Bin 0 -> 13134 bytes .../assets/images/addon-icon-zapier.png | Bin 0 -> 2410 bytes .../assets/images/addon-icon-zoho-crm.png | Bin 0 -> 3005 bytes .../admin-flyout-menu/sullie-active.svg | 1 + .../admin-flyout-menu/sullie-default.svg | 1 + .../assets/images/anti-spam/akismet.svg | 4 + .../assets/images/anti-spam/cloudflare.svg | 1 + .../images/anti-spam/country-filter.svg | 4 + .../images/anti-spam/custom-captcha.svg | 7 + .../assets/images/anti-spam/hcaptcha.svg | 35 + .../images/anti-spam/keyword-filter.svg | 4 + .../assets/images/anti-spam/recaptcha.svg | 12 + .../wpforms-lite/assets/images/brand.svg | 1 + .../assets/images/builder-default-arrow.png | Bin 0 -> 2377 bytes .../assets/images/builder/back.svg | 1 + .../assets/images/builder/check-circle.svg | 1 + .../assets/images/builder/default-arrow.svg | 1 + .../assets/images/builder/ie-logo.svg | 1 + .../images/builder/illustration-marketing.svg | 1 + .../images/builder/illustration-payments.svg | 1 + .../builder/image-upload-placeholder.svg | 5 + .../assets/images/builder/loading-avatar.svg | 1 + .../assets/images/builder/loading-spinner.svg | 1 + .../images/builder/placeholder-200x125.svg | 1 + .../assets/images/builder/toggle-tab-bg.svg | 10 + .../assets/images/challenge/bar-bg.png | Bin 0 -> 288 bytes .../challenge/chevron-circle-down-regular.svg | 1 + .../assets/images/challenge/confetti.svg | 72 + .../images/challenge/getting-started.png | Bin 0 -> 82647 bytes .../assets/images/challenge/party-popper.png | Bin 0 -> 5065 bytes .../assets/images/challenge/popup-contact.png | Bin 0 -> 2214 bytes .../assets/images/challenge/red-arrow.svg | 1 + .../assets/images/challenge/sullie-circle.png | Bin 0 -> 6038 bytes .../images/challenge/times-circle-regular.svg | 1 + .../assets/images/check-circle.svg | 3 + .../assets/images/check-solid.svg | 1 + .../assets/images/community/announcements.png | Bin 0 -> 1509 bytes .../images/community/announcements@2x.png | Bin 0 -> 2748 bytes .../assets/images/community/dev-docs.png | Bin 0 -> 1137 bytes .../assets/images/community/dev-docs@2x.png | Bin 0 -> 1807 bytes .../assets/images/community/suggest.png | Bin 0 -> 663 bytes .../assets/images/community/suggest@2x.png | Bin 0 -> 1286 bytes .../assets/images/community/vip-circle.png | Bin 0 -> 2621 bytes .../assets/images/community/vip-circle@2x.png | Bin 0 -> 4951 bytes .../assets/images/community/wpbeginner.png | Bin 0 -> 1594 bytes .../assets/images/community/wpbeginner@2x.png | Bin 0 -> 3095 bytes .../assets/images/community/youtube.png | Bin 0 -> 635 bytes .../assets/images/community/youtube@2x.png | Bin 0 -> 1035 bytes .../images/constant-contact/cc-about-logo.png | Bin 0 -> 6904 bytes .../constant-contact/cc-about-logo@2x.png | Bin 0 -> 13477 bytes .../constant-contact/cc-about-step1.png | Bin 0 -> 110479 bytes .../constant-contact/cc-about-step2.png | Bin 0 -> 78992 bytes .../constant-contact/cc-about-step3.png | Bin 0 -> 88945 bytes .../constant-contact/cc-about-step4.png | Bin 0 -> 97134 bytes .../coupons-addon-screenshot-01.png | Bin 0 -> 80359 bytes .../coupons-addon-screenshot-02.png | Bin 0 -> 97125 bytes .../coupons-addon-thumbnail-01.png | Bin 0 -> 24931 bytes .../coupons-addon-thumbnail-02.png | Bin 0 -> 15668 bytes .../assets/images/cross-inverse.svg | 1 + .../wpforms-lite/assets/images/cross.svg | 1 + .../images/dashicons-arrow-right-alt.svg | 3 + .../images/duplicator/screenshot-full@2x.png | Bin 0 -> 85884 bytes .../images/duplicator/screenshot-tnail.png | Bin 0 -> 5549 bytes .../images/duplicator/screenshot-tnail@2x.png | Bin 0 -> 12899 bytes .../images/duplicator/wpforms-duplicator.svg | 70 + .../images/edit-post-education-page-1.png | Bin 0 -> 4563 bytes .../images/edit-post-education-page-2.png | Bin 0 -> 5234 bytes .../assets/images/email/icon-downward.png | Bin 0 -> 364 bytes .../assets/images/email/icon-overview.png | Bin 0 -> 829 bytes .../assets/images/email/icon-upward.png | Bin 0 -> 343 bytes .../assets/images/email/info-block-icon.png | Bin 0 -> 1022 bytes .../images/email/notification-block-icon.png | Bin 0 -> 1122 bytes .../assets/images/email/template-classic.svg | 1 + .../assets/images/email/template-compact.svg | 1 + .../assets/images/email/template-elegant.svg | 1 + .../assets/images/email/template-modern.svg | 1 + .../images/email/template-placeholder.svg | 1 + .../images/email/template-plaintext.svg | 1 + .../assets/images/email/template-tech.svg | 1 + .../assets/images/empty-states/no-entries.svg | 1 + .../assets/images/empty-states/no-fields.svg | 1 + .../images/empty-states/no-form-elementor.svg | 1 + .../assets/images/empty-states/no-forms.svg | 1 + .../images/empty-states/no-user-templates.png | Bin 0 -> 51828 bytes .../payments/get-started-lite.svg | 1 + .../empty-states/payments/get-started-pro.svg | 1 + .../empty-states/payments/no-payments.svg | 1 + .../images/empty-states/waving-hand-emoji.png | Bin 0 -> 19786 bytes .../images/entry-automation/education.png | Bin 0 -> 216953 bytes .../assets/images/exclamation-circle.svg | 3 + .../images/exclamation-triangle-orange.svg | 3 + .../assets/images/exclamation-triangle.svg | 1 + .../wpforms-lite/assets/images/file-code.svg | 3 + .../frontend/file-download/lock-alt.svg | 3 + .../file-download/triangle-exclamation.svg | 3 + .../address-autocomplete.jpg | Bin 0 -> 18084 bytes .../address-autocomplete@2x.jpg | Bin 0 -> 37894 bytes .../geolocation-education/entry-location.jpg | Bin 0 -> 31409 bytes .../entry-location@2x.jpg | Bin 0 -> 120921 bytes .../smart-address-field.jpg | Bin 0 -> 50127 bytes .../smart-address-field@2x.jpg | Bin 0 -> 159819 bytes .../images/gutenberg/panel-background.png | Bin 0 -> 7807 bytes .../assets/images/gutenberg/panel-button.png | Bin 0 -> 28531 bytes .../images/gutenberg/panel-container.png | Bin 0 -> 18204 bytes .../assets/images/gutenberg/panel-field.png | Bin 0 -> 19889 bytes .../assets/images/gutenberg/panel-label.png | Bin 0 -> 13416 bytes .../assets/images/gutenberg/panel-themes.png | Bin 0 -> 40659 bytes .../assets/images/icon-chart-smaller.png | Bin 0 -> 818 bytes .../wpforms-lite/assets/images/icon-chart.png | Bin 0 -> 390 bytes .../wpforms-lite/assets/images/icon-file.svg | 11 + .../wpforms-lite/assets/images/icon-graph.png | Bin 0 -> 476 bytes .../images/icon-provider-constant-contact.png | Bin 0 -> 4108 bytes .../icon-provider-uncanny-automator.png | Bin 0 -> 12324 bytes .../wpforms-lite/assets/images/icon-tags.svg | 1 + .../assets/images/icon-user-template.svg | 7 + .../assets/images/icon-wpforms.svg | 3 + .../images/integrations/ai/ai-answer-icon.svg | 47 + .../images/integrations/ai/ai-error-icon.svg | 5 + .../integrations/ai/ai-feature-icon.svg | 3 + .../images/integrations/ai/ai-feature.svg | 3 + .../integrations/ai/ai-form-empty-state.svg | 73 + .../integrations/ai/ai-warning-icon.svg | 7 + .../assets/images/integrations/ai/back.svg | 1 + .../images/integrations/ai/bulb-orange.svg | 1 + .../images/integrations/ai/bulb-red.svg | 1 + .../assets/images/integrations/ai/close.svg | 3 + .../images/integrations/ai/flag-usa.svg | 3 + .../images/integrations/ai/globe-americas.svg | 3 + .../images/integrations/ai/icon-business.svg | 3 + .../images/integrations/ai/icon-capitals.svg | 3 + .../images/integrations/ai/icon-design.svg | 1 + .../images/integrations/ai/icon-learn.svg | 3 + .../images/integrations/ai/icon-market.svg | 1 + .../images/integrations/ai/icon-pizza.svg | 1 + .../integrations/ai/icon-restaurant.svg | 1 + .../images/integrations/ai/icon-send-blue.svg | 1 + .../integrations/ai/icon-send-purple.svg | 3 + .../images/integrations/ai/icon-send.svg | 3 + .../images/integrations/ai/icon-stop-sign.svg | 1 + .../images/integrations/ai/icon-stop.svg | 3 + .../images/integrations/ai/icon-sullie.svg | 1 + .../images/integrations/ai/icon-ticket.svg | 1 + .../assets/images/integrations/ai/insert.svg | 3 + .../images/integrations/ai/leaf-maple.svg | 3 + .../images/integrations/ai/pin-chat.svg | 1 + .../assets/images/integrations/ai/store.svg | 3 + .../integrations/ai/thumbs-down-hover.svg | 3 + .../integrations/ai/thumbs-down-inactive.svg | 3 + .../integrations/ai/thumbs-down-solid.svg | 3 + .../images/integrations/ai/thumbs-down.svg | 3 + .../images/integrations/ai/thumbs-up.svg | 3 + .../images/integrations/ai/tree-palm.svg | 3 + .../images/integrations/ai/unpin-chat.svg | 1 + .../images/integrations/divi/wpforms-icon.svg | 1 + .../elementor/font/icon-wpforms.woff2 | Bin 0 -> 2632 bytes .../integrations/elementor/wpforms-icon.svg | 1 + .../integrations/gutenberg/block-preview.png | Bin 0 -> 3779 bytes .../images/integrations/stripe/cc-preview.png | Bin 0 -> 3157 bytes .../images/integrations/woocommerce/mail.svg | 94 + .../assets/images/jquery.minicolors.png | Bin 0 -> 68627 bytes .../images/lite-connect/check-circle.svg | 3 + .../assets/images/lite-connect/cloud.svg | 3 + .../assets/images/lite-connect/envelope.svg | 3 + .../images/lite-connect/info-circle.svg | 3 + .../assets/images/lite-connect/lock-ai.svg | 3 + .../assets/images/lite-connect/lock-alt.svg | 3 + .../images/lite-connect/raised-hand.png | Bin 0 -> 1881 bytes .../assets/images/lite-connect/wait.svg | 4 + .../screenshot-access-controls.png | Bin 0 -> 16034 bytes .../screenshot-access-controls@2x.png | Bin 0 -> 63932 bytes .../screenshot-members.png | Bin 0 -> 38556 bytes .../screenshot-members@2x.png | Bin 0 -> 94060 bytes .../screenshot-user-role-editor.png | Bin 0 -> 46434 bytes .../screenshot-user-role-editor@2x.png | Bin 0 -> 156336 bytes .../assets/images/logo-negative.png | Bin 0 -> 7679 bytes .../wpforms-lite/assets/images/logo.png | Bin 0 -> 7668 bytes .../assets/images/page-plugin/arrow-right.svg | 1 + .../assets/images/payments/chevron.svg | 1 + .../images/payments/icon-exclamation.svg | 1 + .../images/payments/icon-total-coupons.svg | 1 + .../images/payments/icon-total-payments.svg | 1 + .../images/payments/icon-total-refunded.svg | 1 + .../images/payments/icon-total-sales.svg | 1 + .../payments/icon-total-subscription.svg | 1 + .../images/payments/single/icon-coupon.svg | 1 + .../images/payments/single/icon-cycle.svg | 1 + .../images/payments/single/icon-date.svg | 1 + .../payments/single/icon-lifetime-total.svg | 1 + .../images/payments/single/icon-method.svg | 1 + .../images/payments/single/icon-one-time.svg | 1 + .../payments/single/icon-subscription.svg | 1 + .../images/payments/single/icon-total.svg | 1 + .../images/payments/single/info-circle.svg | 1 + .../assets/images/payments/star.svg | 1 + .../images/payments/status/icon-active.svg | 1 + .../images/payments/status/icon-cancelled.svg | 1 + .../images/payments/status/icon-completed.svg | 1 + .../images/payments/status/icon-failed.svg | 1 + .../images/payments/status/icon-n-a.svg | 1 + .../payments/status/icon-not-synced.svg | 1 + .../payments/status/icon-partrefund.svg | 1 + .../images/payments/status/icon-pending.svg | 1 + .../images/payments/status/icon-processed.svg | 1 + .../images/payments/status/icon-refunded.svg | 1 + .../assets/images/pdf-education/pdf.svg | 19 + .../assets/images/phone/us-flag.png | Bin 0 -> 1883 bytes .../privacy-compliance/screenshot-full.png | Bin 0 -> 45357 bytes .../privacy-compliance/screenshot-full@2x.png | Bin 0 -> 45357 bytes .../privacy-compliance/screenshot-tnail.png | Bin 0 -> 8230 bytes .../screenshot-tnail@2x.png | Bin 0 -> 7642 bytes .../privacy-compliance/wpforms-wpconsent.svg | 73 + .../assets/images/recaptcha-placeholder.png | Bin 0 -> 5467 bytes .../richtext/tinymce-toolbar-basic-mb.png | Bin 0 -> 3995 bytes .../images/richtext/tinymce-toolbar-basic.png | Bin 0 -> 3680 bytes .../richtext/tinymce-toolbar-full-mb.png | Bin 0 -> 3784 bytes .../images/richtext/tinymce-toolbar-full.png | Bin 0 -> 4141 bytes .../wpforms-lite/assets/images/search.svg | 1 + .../assets/images/settings-captcha-addon.png | Bin 0 -> 4317 bytes .../images/settings-captcha-cloudflare.svg | 1 + .../images/settings-captcha-hcaptcha.svg | 1 + .../assets/images/settings-captcha-none.svg | 3 + .../images/settings-captcha-recaptcha.svg | 1 + .../assets/images/settings-email-html.png | Bin 0 -> 554 bytes .../images/settings-email-plaintext.png | Bin 0 -> 253 bytes .../assets/images/smtp/arrow-right.svg | 1 + .../assets/images/smtp/pattie-2.svg | 1 + .../assets/images/smtp/pattie.svg | 1 + .../assets/images/smtp/screenshot-full.png | Bin 0 -> 73091 bytes .../assets/images/smtp/screenshot-tnail.png | Bin 0 -> 10971 bytes .../assets/images/smtp/wpforms-wpmailsmtp.png | Bin 0 -> 5710 bytes .../images/smtp/wpforms-wpmailsmtp@2x.png | Bin 0 -> 10673 bytes .../assets/images/spinner-blue.svg | 1 + .../assets/images/spinner-white.svg | 1 + .../wpforms-lite/assets/images/spinner.svg | 1 + .../assets/images/splash/sullie.svg | 45 + .../wpforms-lite/assets/images/step-1.svg | 1 + .../wpforms-lite/assets/images/step-2.svg | 1 + .../wpforms-lite/assets/images/step-3.svg | 1 + .../assets/images/step-complete.svg | 1 + .../assets/images/stripe/stripe-connect.png | Bin 0 -> 4303 bytes .../assets/images/submit-spin.svg | 1 + .../sugar-calendar/screenshot-full@2x.png | Bin 0 -> 192345 bytes .../sugar-calendar/screenshot-tnail.png | Bin 0 -> 6929 bytes .../sugar-calendar/screenshot-tnail@2x.png | Bin 0 -> 13494 bytes .../sugar-calendar/wpforms-sugar-calendar.svg | 64 + .../wpforms-lite/assets/images/sullie-alt.png | Bin 0 -> 19198 bytes .../assets/images/sullie-builder-mobile.png | Bin 0 -> 14265 bytes .../images/sullie-edit-post-education.svg | 1 + .../wpforms-lite/assets/images/sullie-vc.png | Bin 0 -> 4395 bytes .../wpforms-lite/assets/images/sullie.png | Bin 0 -> 25007 bytes ...thumbnail-simple-contact-form-template.jpg | Bin 0 -> 19298 bytes .../assets/images/times-circle.svg | 1 + .../wpforms-lite/assets/images/trash-red.svg | 1 + .../wpforms-lite/assets/images/trash.svg | 1 + .../uncanny-automator/screenshot-full@2x.png | Bin 0 -> 159843 bytes .../uncanny-automator/screenshot-tnail.png | Bin 0 -> 7572 bytes .../uncanny-automator/screenshot-tnail@2x.png | Bin 0 -> 20196 bytes .../wpforms-uncanny-automator.svg | 139 + .../assets/images/welcome-feature-icon-1.png | Bin 0 -> 1034 bytes .../assets/images/welcome-feature-icon-10.png | Bin 0 -> 1921 bytes .../assets/images/welcome-feature-icon-2.png | Bin 0 -> 901 bytes .../assets/images/welcome-feature-icon-3.png | Bin 0 -> 1890 bytes .../assets/images/welcome-feature-icon-4.png | Bin 0 -> 1708 bytes .../assets/images/welcome-feature-icon-5.png | Bin 0 -> 1984 bytes .../assets/images/welcome-feature-icon-6.png | Bin 0 -> 2196 bytes .../assets/images/welcome-feature-icon-7.png | Bin 0 -> 3649 bytes .../assets/images/welcome-feature-icon-8.png | Bin 0 -> 3897 bytes .../assets/images/welcome-feature-icon-9.png | Bin 0 -> 1347 bytes .../images/welcome-testimonial-bill.jpg | Bin 0 -> 6828 bytes .../images/welcome-testimonial-david.jpg | Bin 0 -> 4960 bytes .../assets/images/welcome-video.png | Bin 0 -> 24480 bytes .../images/wpconsent/screenshot-full@2x.png | Bin 0 -> 45357 bytes .../images/wpconsent/screenshot-tnail.png | Bin 0 -> 8230 bytes .../images/wpconsent/screenshot-tnail@2x.png | Bin 0 -> 7642 bytes .../images/wpconsent/wpforms-wpconsent.svg | 73 + .../assets/images/wpforms-logo.svg | 1 + .../wpforms-lite/assets/images/zoom.svg | 1 + .../assets/js/admin/admin-editor.min.js | 1 + .../js/admin/admin-notifications.min.js | 1 + .../wpforms-lite/assets/js/admin/admin.min.js | 1 + .../builder/admin-builder-providers.min.js | 1 + .../js/admin/builder/admin-builder.min.js | 25 + .../js/admin/builder/chocolate-choices.min.js | 1 + .../js/admin/builder/choices-list.min.js | 1 + .../js/admin/builder/context-menu.min.js | 1 + .../js/admin/builder/drag-fields.min.js | 1 + .../js/admin/builder/dropdown-list.min.js | 9 + .../js/admin/builder/email-template.min.js | 1 + .../assets/js/admin/builder/field-map.min.js | 1 + .../fields/internal-information.min.js | 21 + .../js/admin/builder/fields/numbers.min.js | 1 + .../js/admin/builder/fields/rating.min.js | 1 + .../js/admin/builder/form-templates.min.js | 1 + .../assets/js/admin/builder/help.min.js | 1 + .../js/admin/builder/image-upload.min.js | 1 + .../admin/builder/modules/copy-paste.min.js | 8 + .../builder/modules/keyboard-shortcuts.min.js | 1 + .../modules/multi-select/actions.min.js | 1 + .../multi-select/keyboard-shortcuts.min.js | 1 + .../modules/multi-select/multi-select.min.js | 1 + .../js/admin/builder/modules/undo-redo.min.js | 12 + .../undo-redo/action-command-base.min.js | 1 + .../modules/undo-redo/action-field-add.min.js | 1 + .../undo-redo/action-field-delete.min.js | 1 + .../undo-redo/action-field-duplicate.min.js | 1 + .../undo-redo/action-field-move.min.js | 1 + .../undo-redo/action-image-add-remove.min.js | 1 + .../undo-redo/action-items-add-remove.min.js | 1 + .../action-multi-field-delete.min.js | 1 + .../action-multi-field-duplicate.min.js | 1 + .../undo-redo/action-multi-field-paste.min.js | 1 + .../action-settings-block-add.min.js | 1 + .../action-settings-block-delete.min.js | 1 + .../modules/undo-redo/choices-list.min.js | 1 + .../undo-redo/date-time-pickers.min.js | 1 + .../modules/undo-redo/form-themes.min.js | 1 + .../modules/undo-redo/helpers-fields.min.js | 1 + .../builder/modules/undo-redo/helpers.min.js | 1 + .../modules/undo-redo/input-choicesjs.min.js | 1 + .../modules/undo-redo/input-codemirror.min.js | 1 + .../undo-redo/input-command-base.min.js | 1 + .../modules/undo-redo/input-simple.min.js | 1 + .../modules/undo-redo/input-smart-tags.min.js | 1 + .../modules/undo-redo/input-tinymce.min.js | 1 + .../modules/undo-redo/input-toggle.min.js | 1 + .../js/admin/builder/multiple-choices.min.js | 1 + .../js/admin/builder/panel-loader.min.js | 1 + .../js/admin/builder/payments-utils.min.js | 1 + .../assets/js/admin/builder/providers.min.js | 1 + .../js/admin/builder/search-fields.min.js | 1 + .../assets/js/admin/builder/settings.min.js | 1 + .../assets/js/admin/builder/setup.min.js | 1 + .../assets/js/admin/builder/smart-tags.min.js | 5 + .../assets/js/admin/builder/templates.min.js | 1 + .../themes/builder-themes-no-access.min.js | 1 + .../builder/themes/builder-themes.min.js | 1 + .../themes/modules/advanced-settings.min.js | 1 + .../builder/themes/modules/background.min.js | 1 + .../builder/themes/modules/common.min.js | 1 + .../themes/modules/stock-photos.min.js | 4 + .../builder/themes/modules/themes.min.js | 15 + .../js/admin/builder/wpforms-choicesjs.min.js | 1 + .../js/admin/challenge/challenge-admin.min.js | 1 + .../admin/challenge/challenge-builder.min.js | 1 + .../js/admin/challenge/challenge-core.min.js | 1 + .../js/admin/challenge/challenge-embed.min.js | 1 + .../assets/js/admin/education/core.min.js | 1 + .../js/admin/education/edit-post.es5.min.js | 1 + .../assets/js/admin/education/pdf.min.js | 1 + .../admin/education/pointers/payment.min.js | 1 + .../assets/js/admin/email/settings.min.js | 1 + .../assets/js/admin/form-embed-wizard.min.js | 1 + .../assets/js/admin/forms/overview.min.js | 10 + .../assets/js/admin/logger/logger.min.js | 1 + .../assets/js/admin/notices.min.js | 1 + .../assets/js/admin/pages/common.min.js | 1 + .../js/admin/pages/form-templates.min.js | 1 + .../js/admin/pages/privacy-compliance.min.js | 1 + .../assets/js/admin/pages/smtp.min.js | 1 + .../assets/js/admin/payments/overview.min.js | 1 + .../assets/js/admin/payments/single.min.js | 1 + .../assets/js/admin/share/admin-utils.min.js | 1 + .../js/admin/share/contrast-checker.min.js | 1 + .../js/admin/share/list-table-ext.min.js | 1 + .../assets/js/admin/share/xor.min.js | 1 + .../assets/js/admin/splash/modal.min.js | 1 + .../assets/js/frontend/fields/address.min.js | 1 + .../js/frontend/fields/text-limit.es5.min.js | 1 + .../js/frontend/wpforms-confirmation.min.js | 1 + .../assets/js/frontend/wpforms-modern.min.js | 1 + .../assets/js/frontend/wpforms.min.js | 5 + .../ai/chat-element/modules/api.min.js | 1 + .../modules/helpers-choices.min.js | 19 + .../chat-element/modules/helpers-forms.min.js | 9 + .../chat-element/modules/helpers-text.min.js | 5 + .../wpforms-ai-chat-element.min.js | 43 + .../ai/chat-element/wpforms-ai-dock.min.js | 3 + .../ai/choices/wpforms-ai-modal.min.js | 1 + .../ai/form-generator/form-generator.min.js | 23 + .../ai/form-generator/modules/main.min.js | 22 + .../ai/form-generator/modules/modals.min.js | 6 + .../ai/form-generator/modules/preview.min.js | 6 + .../constant-contact-v3/auth.min.js | 1 + .../constant-contact-v3/builder.min.js | 1 + .../integrations/divi/formselector.es5.min.js | 1 + .../divi/modern/formselector.es5.min.js | 1 + .../elementor/editor-context.min.js | 1 + .../elementor/editor-modern.min.js | 4 + .../js/integrations/elementor/editor.min.js | 1 + .../js/integrations/elementor/frontend.min.js | 1 + .../js/integrations/elementor/themes.min.js | 15 + .../gutenberg/formselector-legacy.es5.min.js | 1 + .../square/admin/builder-square.min.js | 1 + .../square/admin/settings-square.min.js | 1 + .../integrations/square/wpforms-square.min.js | 1 + .../stripe/admin-builder-modern-stripe.min.js | 1 + .../admin-builder-stripe-card-field.min.js | 1 + .../stripe/admin-builder-stripe.min.js | 1 + .../stripe/admin-settings-stripe.min.js | 1 + .../stripe/wpforms-stripe-elements.min.js | 1 + .../wpforms-stripe-payment-element.min.js | 1 + .../woocommerce/notifications.min.js | 1 + .../js/integrations/wpcode/wpcode.min.js | 1 + .../wpforms-lite/assets/js/share/utils.min.js | 1 + .../assets/languages/wpforms-lite.pot | 16414 ++++++++++++++++ .../wpforms-lite/assets/lib/chart.min.js | 14 + .../assets/lib/chartjs-adapter-moment.min.js | 7 + .../wpforms-lite/assets/lib/choices.min.js | 5 + .../wpforms-lite/assets/lib/conditions.min.js | 1 + .../assets/lib/flatpickr/flatpickr.min.css | 14 + .../assets/lib/flatpickr/flatpickr.min.js | 2 + .../assets/lib/font-awesome/css/all.min.css | 9 + .../lib/font-awesome/css/v4-shims.min.css | 6 + .../font-awesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 101180 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 19000 bytes .../font-awesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 113260 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4056 bytes .../wpforms-lite/assets/lib/htmx.min.js | 1 + .../lib/jquery.confirm/jquery-confirm.min.css | 6 + .../lib/jquery.confirm/jquery-confirm.min.js | 7 + .../assets/lib/jquery.inputmask.min.js | 8 + .../assets/lib/jquery.insert-at-caret.min.js | 13 + .../jquery.minicolors.min.css | 1 + .../jquery.minicolors.min.js | 389 + .../jquery.timepicker.min.css | 1 + .../jquery.timepicker.min.js | 7 + .../jquery.tooltipster.min.css | 1 + .../jquery.tooltipster.min.js | 2 + .../assets/lib/jquery.validate.min.js | 4 + .../wpforms-lite/assets/lib/list.min.js | 2 + .../wpforms-lite/assets/lib/lity/lity.min.css | 3 + .../wpforms-lite/assets/lib/lity/lity.min.js | 5 + .../wpforms-lite/assets/lib/mailcheck.min.js | 1 + .../wpforms-lite/assets/lib/md5.min.js | 20 + .../wpforms-lite/assets/lib/oops.min.js | 2 + .../wpforms-lite/assets/lib/punycode.min.js | 1 + .../wpforms-lite/assets/lib/purify.min.js | 2 + .../wpforms-multiselect-checkboxes.min.css | 1 + .../wpforms-multiselect-checkboxes.min.js | 1 + .../assets/lite/css/admin.min.css | 1 + .../lite/css/admin/entries/entry-list.min.css | 1 + .../lite/css/admin/entries/view-entry.min.css | 1 + .../assets/lite/css/builder-education.min.css | 1 + .../lite/css/dashboard-education.min.css | 1 + .../assets/lite/images/sample/flag.png | Bin 0 -> 251 bytes .../assets/lite/images/sample/flag@2x.png | Bin 0 -> 396 bytes .../assets/lite/images/sample/map.png | Bin 0 -> 370814 bytes .../assets/lite/images/sample/map@2x.png | Bin 0 -> 1139616 bytes .../assets/lite/images/sample/signature.png | Bin 0 -> 5494 bytes .../lite/images/sample/signature@2x.png | Bin 0 -> 12650 bytes .../admin/builder/admin-builder-lite.min.js | 1 + .../assets/lite/js/admin/connect.min.js | 1 + .../lite/js/admin/dashboard-widget.min.js | 1 + .../lite/js/admin/education/core.min.js | 1 + .../js/admin/education/lite-connect.min.js | 1 + .../lite/js/admin/entries/entry-list.min.js | 1 + .../lite/js/admin/entries/view-entry.min.js | 1 + .../js/integrations/elementor/themes.json | 452 + .../gutenberg/formselector.es5.min.js | 1 + .../js/integrations/gutenberg/themes.json | 452 + wp-content/plugins/wpforms-lite/changelog.txt | 1998 ++ .../wpforms-lite/includes/admin/admin.php | 785 + .../includes/admin/ajax-actions.php | 951 + .../includes/admin/builder/class-builder.php | 1552 ++ .../includes/admin/builder/functions.php | 942 + .../admin/builder/panels/class-base.php | 462 + .../admin/builder/panels/class-fields.php | 833 + .../admin/builder/panels/class-payments.php | 112 + .../admin/builder/panels/class-providers.php | 154 + .../admin/builder/panels/class-revisions.php | 205 + .../admin/builder/panels/class-settings.php | 385 + .../admin/builder/panels/class-setup.php | 132 + .../includes/admin/class-about.php | 1820 ++ .../includes/admin/class-editor.php | 383 + .../includes/admin/class-menu.php | 623 + .../includes/admin/class-notices.php | 139 + .../includes/admin/class-review.php | 346 + .../includes/admin/class-settings.php | 820 + .../includes/admin/class-welcome.php | 394 + .../includes/admin/settings-api.php | 732 + .../wpforms-lite/includes/class-db.php | 949 + .../wpforms-lite/includes/class-fields.php | 98 + .../wpforms-lite/includes/class-form.php | 1566 ++ .../wpforms-lite/includes/class-install.php | 229 + .../wpforms-lite/includes/class-process.php | 2282 +++ .../wpforms-lite/includes/class-providers.php | 86 + .../wpforms-lite/includes/class-templates.php | 66 + .../wpforms-lite/includes/class-widget.php | 192 + .../wpforms-lite/includes/deprecated.php | 425 + .../includes/emails/class-emails.php | 907 + .../emails/templates/body-default.php | 16 + .../includes/emails/templates/default.php | 328 + .../emails/templates/field-default.php | 18 + .../emails/templates/footer-default.php | 67 + .../emails/templates/header-default.php | 376 + .../includes/fields/class-base.php | 4490 +++++ .../includes/fields/class-checkbox.php | 773 + .../includes/fields/class-email.php | 1397 ++ .../includes/fields/class-gdpr-checkbox.php | 329 + .../fields/class-internal-information.php | 934 + .../includes/fields/class-name.php | 681 + .../includes/fields/class-number-slider.php | 452 + .../includes/fields/class-number.php | 278 + .../includes/fields/class-radio.php | 944 + .../includes/fields/class-select.php | 795 + .../includes/fields/class-text.php | 558 + .../includes/fields/class-textarea.php | 380 + .../wpforms-lite/includes/functions-list.php | 7 + .../wpforms-lite/includes/functions.php | 30 + .../includes/functions/access.php | 394 + .../includes/functions/builder.php | 33 + .../includes/functions/checks.php | 595 + .../includes/functions/colors.php | 165 + .../includes/functions/data-presets.php | 445 + .../includes/functions/date-time.php | 118 + .../wpforms-lite/includes/functions/debug.php | 227 + .../includes/functions/education.php | 96 + .../includes/functions/escape-sanitize.php | 633 + .../includes/functions/filesystem-media.php | 301 + .../includes/functions/form-fields.php | 688 + .../wpforms-lite/includes/functions/forms.php | 587 + .../wpforms-lite/includes/functions/list.php | 324 + .../includes/functions/payments.php | 807 + .../includes/functions/plugins.php | 105 + .../includes/functions/privacy.php | 103 + .../includes/functions/providers.php | 77 + .../includes/functions/utilities.php | 438 + .../wpforms-lite/includes/integrations.php | 130 + .../includes/providers/class-base.php | 1451 ++ .../providers/class-constant-contact.php | 969 + .../includes/templates/class-base.php | 361 + .../includes/templates/class-blank.php | 78 + .../templates/class-simple-contact-form.php | 86 + .../lite/templates/admin/addons.php | 98 + .../lite/templates/admin/entries/notice.php | 22 + .../admin/entries/overview/actions.php | 24 + .../admin/entries/overview/bulk-actions.php | 38 + .../admin/entries/overview/entry-list.php | 86 + .../admin/entries/overview/header.php | 39 + .../admin/entries/overview/modal.php | 88 + .../admin/entries/overview/table.php | 70 + .../templates/admin/entries/single/entry.php | 426 + .../lite/templates/builder/context-menu.php | 127 + .../education/admin/did-you-know.php | 60 + .../lite-connect/challenge-popup-footer.php | 33 + .../lite-connect/dashboard-widget-before.php | 29 + .../templates/education/admin/notice-bar.php | 36 + .../admin/settings/integrations-item.php | 43 + .../education/builder/did-you-know.php | 34 + .../builder/lite-connect/ai-modal.php | 76 + .../builder/lite-connect/top-bar.php | 27 + .../education/builder/providers-item.php | 38 + .../education/builder/settings-item.php | 29 + .../education/lite-connect-modal.php | 83 + .../wpforms-lite/lite/wpforms-lite.php | 1165 ++ wp-content/plugins/wpforms-lite/readme.txt | 906 + wp-content/plugins/wpforms-lite/src/API.php | 52 + .../wpforms-lite/src/Access/Capabilities.php | 62 + .../wpforms-lite/src/Admin/Addons/Addons.php | 600 + .../src/Admin/Addons/AddonsCache.php | 137 + .../wpforms-lite/src/Admin/AdminBarMenu.php | 712 + .../Base/Tables/DataObjects/ColumnBase.php | 155 + .../Admin/Base/Tables/Facades/ColumnsBase.php | 85 + .../wpforms-lite/src/Admin/Blocks/Links.php | 140 + .../wpforms-lite/src/Admin/Builder/Addons.php | 382 + .../src/Admin/Builder/Ajax/PanelLoader.php | 146 + .../src/Admin/Builder/Ajax/SaveForm.php | 51 + .../src/Admin/Builder/AntiSpam.php | 423 + .../src/Admin/Builder/ContextMenu.php | 61 + .../wpforms-lite/src/Admin/Builder/Help.php | 1381 ++ .../src/Admin/Builder/HelpCache.php | 64 + .../src/Admin/Builder/ImageUpload.php | 49 + .../Notifications/Advanced/EmailTemplate.php | 189 + .../src/Admin/Builder/Settings/Themes.php | 1257 ++ .../src/Admin/Builder/Shortcuts.php | 143 + .../src/Admin/Builder/TemplateSingleCache.php | 247 + .../src/Admin/Builder/Templates.php | 1308 ++ .../src/Admin/Builder/TemplatesCache.php | 267 + .../wpforms-lite/src/Admin/Challenge.php | 772 + .../src/Admin/Dashboard/Widget.php | 303 + .../src/Admin/Education/AddonsItemBase.php | 174 + .../src/Admin/Education/AddonsListBase.php | 62 + .../src/Admin/Education/Admin/EditPost.php | 249 + .../Education/Admin/Settings/Geolocation.php | 152 + .../Education/Admin/Settings/Integrations.php | 67 + .../Admin/Education/Admin/Settings/SMTP.php | 67 + .../Education/Admin/Tools/EntryAutomation.php | 156 + .../Admin/Education/Builder/Calculations.php | 307 + .../src/Admin/Education/Builder/Captcha.php | 192 + .../src/Admin/Education/Builder/Fields.php | 75 + .../Admin/Education/Builder/Geolocation.php | 154 + .../src/Admin/Education/Builder/PDF.php | 246 + .../src/Admin/Education/Builder/Panel.php | 69 + .../src/Admin/Education/Builder/Payments.php | 70 + .../src/Admin/Education/Builder/Providers.php | 71 + .../src/Admin/Education/Builder/Quiz.php | 214 + .../src/Admin/Education/Builder/Settings.php | 69 + .../wpforms-lite/src/Admin/Education/Core.php | 143 + .../Admin/Education/EducationInterface.php | 27 + .../src/Admin/Education/Fields.php | 416 + .../src/Admin/Education/Helpers.php | 172 + .../src/Admin/Education/Pointers/Payment.php | 157 + .../src/Admin/Education/Pointers/Pointer.php | 445 + .../src/Admin/Education/StringsTrait.php | 184 + .../wpforms-lite/src/Admin/FlyoutMenu.php | 141 + .../src/Admin/FormEmbedWizard.php | 480 + .../src/Admin/Forms/Ajax/Columns.php | 103 + .../src/Admin/Forms/Ajax/Tags.php | 273 + .../src/Admin/Forms/BulkActions.php | 492 + .../src/Admin/Forms/ListTable.php | 648 + .../wpforms-lite/src/Admin/Forms/Page.php | 361 + .../wpforms-lite/src/Admin/Forms/Search.php | 268 + .../Admin/Forms/Table/DataObjects/Column.php | 12 + .../src/Admin/Forms/Table/Facades/Columns.php | 315 + .../wpforms-lite/src/Admin/Forms/Tags.php | 613 + .../src/Admin/Forms/UserTemplates.php | 440 + .../wpforms-lite/src/Admin/Forms/Views.php | 797 + .../wpforms-lite/src/Admin/Helpers/Chart.php | 138 + .../src/Admin/Helpers/Datepicker.php | 461 + .../plugins/wpforms-lite/src/Admin/Loader.php | 89 + .../plugins/wpforms-lite/src/Admin/Notice.php | 402 + .../src/Admin/Notifications/EventDriven.php | 776 + .../src/Admin/Notifications/Notifications.php | 793 + .../src/Admin/Pages/Community.php | 166 + .../src/Admin/Pages/ConstantContact.php | 90 + .../src/Admin/Pages/Duplicator.php | 487 + .../wpforms-lite/src/Admin/Pages/Page.php | 748 + .../src/Admin/Pages/PrivacyCompliance.php | 481 + .../wpforms-lite/src/Admin/Pages/SMTP.php | 562 + .../src/Admin/Pages/SugarCalendar.php | 492 + .../src/Admin/Pages/Templates.php | 149 + .../src/Admin/Pages/UncannyAutomator.php | 469 + .../src/Admin/Payments/Payments.php | 299 + .../src/Admin/Payments/ScreenOptions.php | 187 + .../Payments/Views/Coupons/Education.php | 189 + .../Admin/Payments/Views/Overview/Ajax.php | 557 + .../Payments/Views/Overview/BulkActions.php | 220 + .../Admin/Payments/Views/Overview/Chart.php | 336 + .../Admin/Payments/Views/Overview/Coupon.php | 170 + .../Admin/Payments/Views/Overview/Filters.php | 175 + .../Admin/Payments/Views/Overview/Helpers.php | 119 + .../Payments/Views/Overview/ModeToggle.php | 43 + .../Admin/Payments/Views/Overview/Page.php | 510 + .../Admin/Payments/Views/Overview/Search.php | 378 + .../Admin/Payments/Views/Overview/Table.php | 1407 ++ .../Views/Overview/Traits/ResetNotices.php | 272 + .../Payments/Views/PaymentsViewsInterface.php | 43 + .../src/Admin/Payments/Views/Single.php | 1348 ++ .../wpforms-lite/src/Admin/Revisions.php | 496 + .../src/Admin/Settings/Captcha/Captcha.php | 197 + .../src/Admin/Settings/Captcha/HCaptcha.php | 75 + .../src/Admin/Settings/Captcha/Page.php | 372 + .../src/Admin/Settings/Captcha/ReCaptcha.php | 100 + .../src/Admin/Settings/Captcha/Turnstile.php | 106 + .../wpforms-lite/src/Admin/Settings/Email.php | 669 + .../src/Admin/Settings/ModernMarkup.php | 159 + .../src/Admin/Settings/Payments.php | 96 + .../wpforms-lite/src/Admin/SiteHealth.php | 120 + .../src/Admin/Splash/SplashCache.php | 166 + .../src/Admin/Splash/SplashScreen.php | 419 + .../src/Admin/Splash/SplashTrait.php | 283 + .../src/Admin/Splash/SplashUpgrader.php | 58 + .../src/Admin/Tools/Importers.php | 79 + .../src/Admin/Tools/Importers/Base.php | 156 + .../Admin/Tools/Importers/ContactForm7.php | 686 + .../Tools/Importers/ImporterInterface.php | 53 + .../src/Admin/Tools/Importers/NinjaForms.php | 555 + .../src/Admin/Tools/Importers/PirateForms.php | 696 + .../wpforms-lite/src/Admin/Tools/Tools.php | 196 + .../src/Admin/Tools/Views/ActionScheduler.php | 102 + .../Admin/Tools/Views/ActionSchedulerList.php | 99 + .../src/Admin/Tools/Views/CodeSnippets.php | 152 + .../src/Admin/Tools/Views/EntryAutomation.php | 118 + .../src/Admin/Tools/Views/Export.php | 370 + .../src/Admin/Tools/Views/Import.php | 446 + .../src/Admin/Tools/Views/Importer.php | 372 + .../src/Admin/Tools/Views/Logs.php | 296 + .../src/Admin/Tools/Views/System.php | 444 + .../src/Admin/Tools/Views/View.php | 119 + .../src/Admin/Traits/FormTemplates.php | 688 + .../src/Admin/Traits/HasScreenOptions.php | 203 + .../wpforms-lite/src/Db/Payments/Meta.php | 423 + .../wpforms-lite/src/Db/Payments/Payment.php | 529 + .../wpforms-lite/src/Db/Payments/Queries.php | 386 + .../src/Db/Payments/UpdateHelpers.php | 70 + .../src/Db/Payments/ValueValidator.php | 203 + .../wpforms-lite/src/Emails/Helpers.php | 360 + .../wpforms-lite/src/Emails/InfoBlocks.php | 295 + .../wpforms-lite/src/Emails/Mailer.php | 626 + .../src/Emails/NotificationBlocks.php | 186 + .../wpforms-lite/src/Emails/Notifications.php | 1451 ++ .../wpforms-lite/src/Emails/Preview.php | 463 + .../wpforms-lite/src/Emails/Styler.php | 136 + .../wpforms-lite/src/Emails/Summaries.php | 577 + .../src/Emails/Tasks/FetchInfoBlocksTask.php | 113 + .../src/Emails/Templates/Classic.php | 21 + .../src/Emails/Templates/Compact.php | 21 + .../src/Emails/Templates/General.php | 465 + .../src/Emails/Templates/Notifications.php | 112 + .../src/Emails/Templates/Plain.php | 69 + .../src/Emails/Templates/Summary.php | 117 + .../plugins/wpforms-lite/src/ErrorHandler.php | 418 + .../wpforms-lite/src/Forms/Akismet.php | 323 + .../wpforms-lite/src/Forms/AntiSpam.php | 385 + .../src/Forms/Fields/Addons/Coupon/Field.php | 298 + .../Forms/Fields/Addons/LikertScale/Field.php | 378 + .../Fields/Addons/NetPromoterScore/Field.php | 288 + .../Forms/Fields/Addons/Signature/Field.php | 199 + .../src/Forms/Fields/Address/Field.php | 769 + .../src/Forms/Fields/Address/Frontend.php | 73 + .../src/Forms/Fields/Base/Frontend.php | 54 + .../src/Forms/Fields/Camera/Field.php | 471 + .../src/Forms/Fields/Content/Field.php | 133 + .../src/Forms/Fields/CreditCard/Field.php | 265 + .../src/Forms/Fields/CustomCaptcha/Field.php | 315 + .../src/Forms/Fields/DateTime/Field.php | 901 + .../src/Forms/Fields/Divider/Field.php | 183 + .../src/Forms/Fields/EntryPreview/Field.php | 295 + .../src/Forms/Fields/FileUpload/Field.php | 472 + .../Fields/Helpers/RequirementsAlerts.php | 255 + .../src/Forms/Fields/Hidden/Field.php | 193 + .../src/Forms/Fields/Html/Field.php | 215 + .../src/Forms/Fields/Pagebreak/Field.php | 682 + .../src/Forms/Fields/Password/Field.php | 345 + .../Forms/Fields/PaymentCheckbox/Field.php | 594 + .../Forms/Fields/PaymentMultiple/Field.php | 536 + .../src/Forms/Fields/PaymentSelect/Field.php | 644 + .../src/Forms/Fields/PaymentSingle/Field.php | 848 + .../src/Forms/Fields/PaymentTotal/Field.php | 897 + .../src/Forms/Fields/Phone/Field.php | 235 + .../src/Forms/Fields/Rating/Field.php | 608 + .../src/Forms/Fields/Richtext/Field.php | 204 + .../Fields/Traits/AccessRestrictionsTrait.php | 613 + .../src/Forms/Fields/Traits/CameraTrait.php | 384 + .../src/Forms/Fields/Traits/ContentInput.php | 590 + .../Forms/Fields/Traits/FileDisplayTrait.php | 356 + .../Fields/Traits/FileEntriesEditTrait.php | 193 + .../Forms/Fields/Traits/FileMethodsTrait.php | 161 + .../Forms/Fields/Traits/MultiFieldMenu.php | 61 + .../src/Forms/Fields/Traits/NumberField.php | 300 + .../src/Forms/Fields/Traits/ProField.php | 619 + .../src/Forms/Fields/Traits/ReadOnlyField.php | 148 + .../src/Forms/Fields/Url/Field.php | 157 + .../wpforms-lite/src/Forms/Honeypot.php | 84 + .../wpforms-lite/src/Forms/IconChoices.php | 624 + .../wpforms-lite/src/Forms/Locator.php | 1417 ++ .../wpforms-lite/src/Forms/Preview.php | 394 + .../wpforms-lite/src/Forms/Submission.php | 280 + .../plugins/wpforms-lite/src/Forms/Token.php | 381 + .../plugins/wpforms-lite/src/Frontend/Amp.php | 386 + .../wpforms-lite/src/Frontend/CSSVars.php | 825 + .../wpforms-lite/src/Frontend/Captcha.php | 670 + .../wpforms-lite/src/Frontend/Classic.php | 406 + .../wpforms-lite/src/Frontend/Frontend.php | 2290 +++ .../wpforms-lite/src/Frontend/Modern.php | 322 + .../wpforms-lite/src/Helpers/CacheBase.php | 569 + .../wpforms-lite/src/Helpers/Chain.php | 416 + .../wpforms-lite/src/Helpers/Crypto.php | 130 + .../plugins/wpforms-lite/src/Helpers/DB.php | 291 + .../plugins/wpforms-lite/src/Helpers/File.php | 409 + .../plugins/wpforms-lite/src/Helpers/Form.php | 70 + .../src/Helpers/PluginSilentUpgrader.php | 614 + .../wpforms-lite/src/Helpers/Templates.php | 225 + .../wpforms-lite/src/Helpers/Transient.php | 279 + .../wpforms-lite/src/Integrations/AI/AI.php | 75 + .../src/Integrations/AI/API/API.php | 124 + .../src/Integrations/AI/API/Choices.php | 66 + .../src/Integrations/AI/API/Forms.php | 411 + .../src/Integrations/AI/API/Http/Request.php | 161 + .../src/Integrations/AI/API/Http/Response.php | 136 + .../src/Integrations/AI/Admin/Ajax/Base.php | 135 + .../Integrations/AI/Admin/Ajax/Choices.php | 73 + .../src/Integrations/AI/Admin/Ajax/Forms.php | 493 + .../AI/Admin/Builder/Enqueues.php | 276 + .../AI/Admin/Builder/FieldOption.php | 149 + .../Integrations/AI/Admin/Builder/Forms.php | 490 + .../Integrations/AI/Admin/Pages/Templates.php | 105 + .../src/Integrations/AI/Admin/Settings.php | 71 + .../src/Integrations/AI/Helpers.php | 145 + .../src/Integrations/Abilities/Abilities.php | 539 + .../ConstantContact/V3/Api/Api.php | 445 + .../ConstantContact/V3/Api/Http/Request.php | 157 + .../ConstantContact/V3/Api/Http/Response.php | 158 + .../Integrations/ConstantContact/V3/Auth.php | 259 + .../ConstantContact/V3/ConstantContact.php | 169 + .../Integrations/ConstantContact/V3/Core.php | 126 + .../V3/Migration/Migration.php | 773 + .../ConstantContact/V3/Process.php | 303 + .../V3/Settings/FieldMapping.php | 346 + .../V3/Settings/FormBuilder.php | 391 + .../V3/Settings/PageIntegrations.php | 107 + .../DefaultContent/DefaultContent.php | 73 + .../DefaultThemes/DefaultThemes.php | 311 + .../src/Integrations/Divi/Divi.php | 468 + .../Interfaces/FormsResolverInterface.php | 47 + .../Interfaces/LocalizedDataInterface.php | 31 + .../Divi/Traits/FormsResolverTrait.php | 52 + .../Divi/Traits/LocalizedDataTrait.php | 48 + .../src/Integrations/Divi/WPFormsSelector.php | 198 + .../Divi/WPFormsSelectorModern.php | 366 + .../Integrations/Divi/conversion-outline.json | 31 + .../src/Integrations/Divi/module.json | 49 + .../Elementor/Controls/WPFormsThemes.php | 59 + .../src/Integrations/Elementor/Elementor.php | 484 + .../src/Integrations/Elementor/RestApi.php | 210 + .../src/Integrations/Elementor/ThemesData.php | 219 + .../src/Integrations/Elementor/Widget.php | 458 + .../Integrations/Elementor/WidgetModern.php | 1010 + .../Integrations/Gutenberg/FormSelector.php | 1062 + .../src/Integrations/Gutenberg/RestApi.php | 224 + .../src/Integrations/Gutenberg/ThemesData.php | 219 + .../src/Integrations/IntegrationInterface.php | 27 + .../src/Integrations/LiteConnect/API.php | 480 + .../Integrations/LiteConnect/Integration.php | 462 + .../Integrations/LiteConnect/LiteConnect.php | 272 + .../LiteConnect/RefreshAccessTokenTask.php | 76 + .../wpforms-lite/src/Integrations/Loader.php | 128 + .../src/Integrations/MotoPress/MotoPress.php | 70 + .../src/Integrations/SMTP/Notifications.php | 321 + .../SolidCentral/SolidCentral.php | 34 + .../Square/AddonCompatibility.php | 67 + .../Square/Admin/Builder/Enqueues.php | 118 + .../Square/Admin/Builder/Notifications.php | 132 + .../Square/Admin/Builder/Settings.php | 297 + .../Square/Admin/Builder/Traits/Content.php | 565 + .../src/Integrations/Square/Admin/Connect.php | 876 + .../src/Integrations/Square/Admin/Entries.php | 54 + .../src/Integrations/Square/Admin/Notices.php | 276 + .../Admin/Payments/SingleActionsHandler.php | 165 + .../Integrations/Square/Admin/Settings.php | 577 + .../Square/Admin/WebhookSettings.php | 436 + .../src/Integrations/Square/Api/Api.php | 1757 ++ .../Integrations/Square/Api/WebhookEvent.php | 50 + .../Integrations/Square/Api/WebhookRoute.php | 364 + .../Integrations/Square/Api/Webhooks/Base.php | 220 + .../Square/Api/Webhooks/PaymentCreated.php | 224 + .../Square/Api/Webhooks/PaymentUpdated.php | 183 + .../Square/Api/Webhooks/RefundUpdated.php | 94 + .../Api/Webhooks/SubscriptionCreated.php | 42 + .../Api/Webhooks/SubscriptionUpdated.php | 60 + .../Square/Api/WebhooksManager.php | 206 + .../src/Integrations/Square/Connection.php | 561 + .../Integrations/Square/CurlCompatibility.php | 59 + .../src/Integrations/Square/Fields/Square.php | 575 + .../src/Integrations/Square/Frontend.php | 177 + .../src/Integrations/Square/Helpers.php | 558 + .../Square/Integrations/BlockEditor.php | 137 + .../Integrations/Square/Integrations/Divi.php | 113 + .../Square/Integrations/Elementor.php | 78 + .../Integrations/IntegrationInterface.php | 36 + .../Square/Integrations/Loader.php | 69 + .../src/Integrations/Square/Process.php | 1313 ++ .../src/Integrations/Square/Square.php | 237 + .../src/Integrations/Square/Tasks.php | 51 + .../Square/WebhooksHealthCheck.php | 241 + .../Stripe/Admin/Builder/Enqueues.php | 130 + .../Stripe/Admin/Builder/Notifications.php | 132 + .../Stripe/Admin/Builder/Settings.php | 338 + .../Admin/Builder/Traits/ContentTrait.php | 824 + .../src/Integrations/Stripe/Admin/Connect.php | 582 + .../src/Integrations/Stripe/Admin/Notices.php | 178 + .../Admin/Payments/SingleActionsHandler.php | 214 + .../Integrations/Stripe/Admin/Settings.php | 442 + .../Stripe/Admin/WebhookSettings.php | 322 + .../Integrations/Stripe/Api/ApiInterface.php | 134 + .../src/Integrations/Stripe/Api/Common.php | 501 + .../Integrations/Stripe/Api/DomainManager.php | 259 + .../Stripe/Api/PaymentIntents.php | 930 + .../Integrations/Stripe/Api/WebhookRoute.php | 369 + .../Integrations/Stripe/Api/Webhooks/Base.php | 167 + .../Api/Webhooks/ChargeRefundUpdated.php | 187 + .../Stripe/Api/Webhooks/ChargeRefunded.php | 114 + .../Stripe/Api/Webhooks/ChargeSucceeded.php | 83 + .../Webhooks/CustomerSubscriptionCreated.php | 44 + .../Webhooks/CustomerSubscriptionDeleted.php | 42 + .../Webhooks/CustomerSubscriptionUpdated.php | 59 + .../Exceptions/AmountMismatchException.php | 25 + .../Stripe/Api/Webhooks/InvoiceCreated.php | 170 + .../Api/Webhooks/InvoicePaymentSucceeded.php | 92 + .../Stripe/Api/WebhooksManager.php | 298 + .../Integrations/Stripe/DomainHealthCheck.php | 160 + .../Fields/PaymentElementCreditCard.php | 363 + .../Stripe/Fields/StripeCreditCard.php | 269 + .../Stripe/Fields/Traits/CreditCard.php | 383 + .../src/Integrations/Stripe/Frontend.php | 277 + .../src/Integrations/Stripe/Helpers.php | 522 + .../src/Integrations/Stripe/Process.php | 1381 ++ .../src/Integrations/Stripe/RateLimit.php | 425 + .../src/Integrations/Stripe/Stripe.php | 81 + .../Stripe/StripeAddonCompatibility.php | 90 + .../Stripe/WebhooksHealthCheck.php | 329 + ...le-developer-merchantid-domain-association | 1 + .../UncannyAutomator/UncannyAutomator.php | 204 + .../UsageTracking/SendUsageTask.php | 133 + .../UsageTracking/UsageTracking.php | 1047 + .../Integrations/WPCode/RegisterLibrary.php | 61 + .../src/Integrations/WPCode/WPCode.php | 246 + .../Integrations/WPMailSMTP/Notifications.php | 228 + .../src/Integrations/WPorg/Translations.php | 154 + .../WooCommerce/Notifications.php | 230 + .../wpforms-lite/src/Lite/Admin/Connect.php | 288 + .../src/Lite/Admin/ConnectSkin.php | 35 + .../src/Lite/Admin/DashboardWidget.php | 583 + .../Lite/Admin/Education/Admin/DidYouKnow.php | 181 + .../Lite/Admin/Education/Admin/NoticeBar.php | 72 + .../Admin/Education/Builder/Confirmations.php | 86 + .../Admin/Education/Builder/DidYouKnow.php | 107 + .../Lite/Admin/Education/Builder/Fields.php | 217 + .../Admin/Education/Builder/Notifications.php | 135 + .../src/Lite/Admin/Education/Core.php | 53 + .../src/Lite/Admin/Education/LiteConnect.php | 469 + .../src/Lite/Admin/Pages/Addons.php | 130 + .../src/Lite/Admin/Settings/Access.php | 171 + .../src/Lite/Emails/Summaries.php | 221 + .../Lite/Integrations/Abilities/Abilities.php | 116 + .../Integrations/Elementor/ThemesData.php | 24 + .../Integrations/Gutenberg/FormSelector.php | 116 + .../Integrations/Gutenberg/ThemesData.php | 24 + .../Integrations/LiteConnect/Integration.php | 109 + .../Integrations/LiteConnect/LiteConnect.php | 184 + .../LiteConnect/SendEntryTask.php | 135 + .../src/Lite/Reports/EntriesCount.php | 187 + .../plugins/wpforms-lite/src/Loader.php | 965 + .../wpforms-lite/src/Logger/ListTable.php | 585 + .../plugins/wpforms-lite/src/Logger/Log.php | 231 + .../wpforms-lite/src/Logger/Record.php | 268 + .../wpforms-lite/src/Logger/RecordQuery.php | 80 + .../wpforms-lite/src/Logger/Records.php | 134 + .../wpforms-lite/src/Logger/Repository.php | 289 + .../wpforms-lite/src/Migrations/Base.php | 512 + .../src/Migrations/Migrations.php | 53 + .../src/Migrations/Tasks/UpgradeBaseTask.php | 304 + .../src/Migrations/Upgrade159.php | 39 + .../src/Migrations/Upgrade1672.php | 45 + .../src/Migrations/Upgrade168.php | 57 + .../src/Migrations/Upgrade175.php | 93 + .../src/Migrations/Upgrade1751.php | 28 + .../src/Migrations/Upgrade177.php | 47 + .../src/Migrations/Upgrade182.php | 110 + .../src/Migrations/Upgrade183.php | 33 + .../src/Migrations/Upgrade184.php | 47 + .../src/Migrations/Upgrade186.php | 27 + .../src/Migrations/Upgrade187.php | 71 + .../src/Migrations/Upgrade1_9_1.php | 57 + .../src/Migrations/Upgrade1_9_2.php | 47 + .../src/Migrations/Upgrade1_9_7.php | 24 + .../src/Migrations/Upgrade1_9_8_6.php | 108 + .../src/Migrations/UpgradeBase.php | 148 + .../src/Providers/Provider/Core.php | 147 + .../src/Providers/Provider/Process.php | 129 + .../Provider/Settings/FormBuilder.php | 816 + .../Settings/FormBuilderInterface.php | 33 + .../Provider/Settings/PageIntegrations.php | 386 + .../Settings/PageIntegrationsInterface.php | 22 + .../src/Providers/Provider/Status.php | 192 + .../wpforms-lite/src/Providers/Providers.php | 72 + .../src/Requirements/Requirements.php | 1491 ++ .../src/SmartTags/SmartTag/AdminEmail.php | 27 + .../src/SmartTags/SmartTag/AuthorDisplay.php | 38 + .../src/SmartTags/SmartTag/AuthorEmail.php | 38 + .../src/SmartTags/SmartTag/AuthorId.php | 37 + .../src/SmartTags/SmartTag/Date.php | 35 + .../src/SmartTags/SmartTag/FieldHtmlId.php | 56 + .../src/SmartTags/SmartTag/FieldId.php | 59 + .../src/SmartTags/SmartTag/FieldValueId.php | 45 + .../src/SmartTags/SmartTag/FormId.php | 27 + .../src/SmartTags/SmartTag/FormName.php | 31 + .../src/SmartTags/SmartTag/Generic.php | 27 + .../src/SmartTags/SmartTag/OrderSummary.php | 367 + .../src/SmartTags/SmartTag/PageId.php | 40 + .../src/SmartTags/SmartTag/PageTitle.php | 83 + .../src/SmartTags/SmartTag/PageUrl.php | 40 + .../src/SmartTags/SmartTag/QueryVar.php | 76 + .../src/SmartTags/SmartTag/SiteName.php | 27 + .../src/SmartTags/SmartTag/SmartTag.php | 390 + .../src/SmartTags/SmartTag/UniqueValue.php | 91 + .../src/SmartTags/SmartTag/UrlLogin.php | 27 + .../src/SmartTags/SmartTag/UrlLogout.php | 27 + .../SmartTags/SmartTag/UrlLostPassword.php | 27 + .../src/SmartTags/SmartTag/UrlReferer.php | 47 + .../src/SmartTags/SmartTag/UrlRegister.php | 27 + .../src/SmartTags/SmartTag/UserDisplay.php | 35 + .../src/SmartTags/SmartTag/UserEmail.php | 35 + .../src/SmartTags/SmartTag/UserFirstName.php | 35 + .../src/SmartTags/SmartTag/UserFullName.php | 35 + .../src/SmartTags/SmartTag/UserId.php | 35 + .../src/SmartTags/SmartTag/UserIp.php | 39 + .../src/SmartTags/SmartTag/UserLastName.php | 35 + .../src/SmartTags/SmartTag/UserMeta.php | 47 + .../wpforms-lite/src/SmartTags/SmartTags.php | 569 + .../src/Tasks/Actions/AsyncRequestTask.php | 70 + .../Actions/DomainAutoRegistrationTask.php | 139 + .../Actions/EntryEmailsMetaCleanupTask.php | 110 + .../src/Tasks/Actions/EntryEmailsTask.php | 65 + .../Tasks/Actions/FormsLocatorScanTask.php | 575 + .../IconChoicesFontAwesomeUpgradeTask.php | 156 + .../src/Tasks/Actions/Migration173Task.php | 268 + .../src/Tasks/Actions/Migration175Task.php | 454 + .../src/Tasks/Actions/PurgeSpamTask.php | 137 + .../SquareSubscriptionTransactionIDTask.php | 161 + .../Actions/StripeLinkSubscriptionsTask.php | 310 + .../Actions/WebhooksAutoConfigurationTask.php | 139 + .../plugins/wpforms-lite/src/Tasks/Meta.php | 267 + .../plugins/wpforms-lite/src/Tasks/Task.php | 377 + .../plugins/wpforms-lite/src/Tasks/Tasks.php | 447 + .../plugins/wpforms-lite/src/WPForms.php | 623 + .../wpforms-lite/templates/admin-bar-menu.php | 50 + .../templates/admin/challenge/builder.php | 45 + .../templates/admin/challenge/embed.php | 121 + .../templates/admin/challenge/modal.php | 78 + .../templates/admin/challenge/welcome.php | 23 + .../templates/admin/components/chart.php | 37 + .../templates/admin/components/datepicker.php | 80 + .../admin/dashboard/widget/settings.php | 59 + .../admin/dashboard/widget/welcome.php | 13 + .../templates/admin/empty-states/no-forms.php | 46 + .../admin/empty-states/no-user-templates.php | 47 + .../empty-states/payments/get-started.php | 55 + .../empty-states/payments/no-payments.php | 50 + .../admin/form-embed-wizard/popup.php | 95 + .../admin/form-embed-wizard/tooltip.php | 43 + .../templates/admin/forms/bulk-edit-tags.php | 42 + .../templates/admin/forms/search-box.php | 27 + .../templates/admin/forms/search-reset.php | 26 + .../templates/admin/notifications.php | 50 + .../admin/pages/constant-contact.php | 139 + .../templates/admin/payments/hidden-field.php | 27 + .../templates/admin/payments/mode-toggle.php | 22 + .../templates/admin/payments/reports.php | 54 + .../admin/payments/reset-filter-notice.php | 65 + .../payments/single/advanced-details.php | 47 + .../admin/payments/single/details.php | 85 + .../admin/payments/single/entry-details.php | 85 + .../templates/admin/payments/single/field.php | 25 + .../payments/single/heading-navigation.php | 59 + .../templates/admin/payments/single/log.php | 56 + .../admin/payments/single/no-payment.php | 27 + .../admin/payments/single/payment-details.php | 86 + .../admin/payments/single/payment-history.php | 66 + .../payments/tablenav-filter-multiselect.php | 33 + .../admin/payments/tablenav-filters.php | 38 + .../templates/admin/promotion.php | 82 + .../admin/settings/email-heading.php | 23 + .../admin/settings/hcaptcha-description.php | 29 + .../admin/settings/recaptcha-description.php | 57 + .../admin/settings/specific-note.php | 25 + .../admin/settings/turnstile-description.php | 29 + .../templates/admin/splash/footer.php | 24 + .../templates/admin/splash/header.php | 25 + .../templates/admin/splash/modal.php | 56 + .../templates/admin/splash/section.php | 61 + .../builder/antispam/also-available.php | 44 + .../templates/builder/field-context-menu.php | 128 + .../builder/fullscreen/abort-message.php | 32 + .../builder/fullscreen/ie-notice.php | 44 + .../builder/fullscreen/mobile-notice.php | 31 + .../wpforms-lite/templates/builder/help.php | 145 + .../notifications/email-template-link.php | 28 + .../notifications/email-template-modal.php | 57 + .../builder/payment/recurring/item.php | 25 + .../templates/builder/payment/sidebar.php | 38 + .../templates/builder/revisions/list.php | 79 + .../builder/revisions/notice-disabled.php | 26 + .../builder/revisions/notice-limited.php | 35 + .../templates/builder/templates-item.php | 130 + .../templates/builder/themes/notices.php | 115 + .../templates/builder/themes/preview.php | 90 + .../admin/edit-post/classic-notice.php | 29 + .../education/admin/edit-post/notice.php | 33 + .../templates/education/admin/page.php | 107 + .../education/admin/payments/single-page.php | 53 + .../education/admin/settings/smtp-notice.php | 40 + .../templates/emails/classic-body.php | 22 + .../templates/emails/classic-field.php | 17 + .../templates/emails/classic-footer.php | 50 + .../templates/emails/classic-header.php | 57 + .../templates/emails/classic-queries.php | 92 + .../templates/emails/classic-style.php | 83 + .../templates/emails/compact-body.php | 22 + .../templates/emails/compact-field.php | 15 + .../templates/emails/compact-footer.php | 50 + .../templates/emails/compact-header.php | 57 + .../templates/emails/compact-queries.php | 91 + .../templates/emails/compact-style.php | 83 + .../templates/emails/general-body-plain.php | 19 + .../templates/emails/general-body.php | 28 + .../templates/emails/general-footer.php | 33 + .../templates/emails/general-header.php | 42 + .../templates/emails/general-queries.php | 18 + .../templates/emails/general-style.php | 30 + .../templates/emails/summary-body-plain.php | 102 + .../templates/emails/summary-body.php | 318 + .../templates/emails/summary-footer-plain.php | 26 + .../templates/emails/summary-footer.php | 48 + .../templates/emails/summary-header.php | 57 + .../templates/emails/summary-queries.php | 19 + .../templates/emails/summary-style.php | 23 + .../fields/content/action-buttons.php | 32 + .../file-upload/file-upload-backend.php | 47 + .../internal-information/icon-expanded.php | 17 + .../internal-information/icon-lightbulb.php | 17 + .../icon-not-expanded.php | 18 + .../fields/number-slider/builder-preview.php | 35 + .../fields/number-slider/frontend.php | 36 + .../fields/total/summary-preview.php | 95 + .../builder/connection.php | 70 + .../constant-contact-v3/builder/error.php | 12 + .../builder/select-field.php | 27 + .../integrations/elementor/form-selector.php | 24 + .../integrations/elementor/no-forms.php | 47 + .../integrations/elementor/popup.php | 16 + .../stripe/builder/custom-metadata.php | 123 + .../integrations/wpcode/code-snippets.php | 107 + wp-content/plugins/wpforms-lite/uninstall.php | 179 + .../plugins/wpforms-lite/vendor/autoload.php | 22 + .../vendor/composer/ClassLoader.php | 579 + .../vendor/composer/InstalledVersions.php | 396 + .../wpforms-lite/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 2908 +++ .../vendor/composer/autoload_files.php | 12 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 17 + .../vendor/composer/autoload_real.php | 50 + .../vendor/composer/autoload_static.php | 2982 +++ .../vendor/composer/installed.php | 196 + .../vendor/composer/platform_check.php | 25 + .../wpforms-lite/vendor/psr/log/LICENSE | 19 + .../vendor/psr/log/Psr/Log/AbstractLogger.php | 128 + .../log/Psr/Log/InvalidArgumentException.php | 7 + .../vendor/psr/log/Psr/Log/LogLevel.php | 18 + .../psr/log/Psr/Log/LoggerAwareInterface.php | 18 + .../psr/log/Psr/Log/LoggerAwareTrait.php | 26 + .../psr/log/Psr/Log/LoggerInterface.php | 125 + .../vendor/psr/log/Psr/Log/LoggerTrait.php | 142 + .../vendor/psr/log/Psr/Log/NullLogger.php | 30 + .../vendor/symfony/polyfill-iconv/Iconv.php | 718 + .../vendor/symfony/polyfill-iconv/LICENSE | 19 + .../Resources/charset/from.big5.php | 13719 +++++++++++++ .../Resources/charset/from.cp037.php | Bin 0 -> 3779 bytes .../Resources/charset/from.cp1006.php | Bin 0 -> 3860 bytes .../Resources/charset/from.cp1026.php | Bin 0 -> 3779 bytes .../Resources/charset/from.cp424.php | Bin 0 -> 3210 bytes .../Resources/charset/from.cp437.php | Bin 0 -> 3841 bytes .../Resources/charset/from.cp500.php | Bin 0 -> 3779 bytes .../Resources/charset/from.cp737.php | Bin 0 -> 3834 bytes .../Resources/charset/from.cp775.php | Bin 0 -> 3815 bytes .../Resources/charset/from.cp850.php | Bin 0 -> 3809 bytes .../Resources/charset/from.cp852.php | Bin 0 -> 3808 bytes .../Resources/charset/from.cp855.php | Bin 0 -> 3809 bytes .../Resources/charset/from.cp856.php | Bin 0 -> 3194 bytes .../Resources/charset/from.cp857.php | Bin 0 -> 3763 bytes .../Resources/charset/from.cp860.php | Bin 0 -> 3840 bytes .../Resources/charset/from.cp861.php | Bin 0 -> 3841 bytes .../Resources/charset/from.cp862.php | Bin 0 -> 3841 bytes .../Resources/charset/from.cp863.php | Bin 0 -> 3841 bytes .../Resources/charset/from.cp864.php | Bin 0 -> 3779 bytes .../Resources/charset/from.cp865.php | Bin 0 -> 3841 bytes .../Resources/charset/from.cp866.php | Bin 0 -> 3831 bytes .../Resources/charset/from.cp869.php | Bin 0 -> 3676 bytes .../Resources/charset/from.cp874.php | Bin 0 -> 3410 bytes .../Resources/charset/from.cp875.php | Bin 0 -> 3776 bytes .../Resources/charset/from.cp932.php | Bin 0 -> 134095 bytes .../Resources/charset/from.cp936.php | Bin 0 -> 372283 bytes .../Resources/charset/from.cp949.php | Bin 0 -> 291504 bytes .../Resources/charset/from.cp950.php | Bin 0 -> 231436 bytes .../Resources/charset/from.iso-8859-1.php | Bin 0 -> 3779 bytes .../Resources/charset/from.iso-8859-10.php | Bin 0 -> 3780 bytes .../Resources/charset/from.iso-8859-11.php | Bin 0 -> 3746 bytes .../Resources/charset/from.iso-8859-13.php | Bin 0 -> 3783 bytes .../Resources/charset/from.iso-8859-14.php | Bin 0 -> 3801 bytes .../Resources/charset/from.iso-8859-15.php | Bin 0 -> 3780 bytes .../Resources/charset/from.iso-8859-16.php | Bin 0 -> 3782 bytes .../Resources/charset/from.iso-8859-2.php | Bin 0 -> 3779 bytes .../Resources/charset/from.iso-8859-3.php | Bin 0 -> 3674 bytes .../Resources/charset/from.iso-8859-4.php | Bin 0 -> 3779 bytes .../Resources/charset/from.iso-8859-5.php | Bin 0 -> 3780 bytes .../Resources/charset/from.iso-8859-6.php | Bin 0 -> 3104 bytes .../Resources/charset/from.iso-8859-7.php | Bin 0 -> 3692 bytes .../Resources/charset/from.iso-8859-8.php | Bin 0 -> 3242 bytes .../Resources/charset/from.iso-8859-9.php | Bin 0 -> 3779 bytes .../Resources/charset/from.koi8-r.php | Bin 0 -> 3835 bytes .../Resources/charset/from.koi8-u.php | Bin 0 -> 3827 bytes .../Resources/charset/from.us-ascii.php | Bin 0 -> 1859 bytes .../Resources/charset/from.windows-1250.php | Bin 0 -> 3721 bytes .../Resources/charset/from.windows-1251.php | Bin 0 -> 3782 bytes .../Resources/charset/from.windows-1252.php | Bin 0 -> 3721 bytes .../Resources/charset/from.windows-1253.php | Bin 0 -> 3542 bytes .../Resources/charset/from.windows-1254.php | Bin 0 -> 3691 bytes .../Resources/charset/from.windows-1255.php | Bin 0 -> 3454 bytes .../Resources/charset/from.windows-1256.php | Bin 0 -> 3800 bytes .../Resources/charset/from.windows-1257.php | Bin 0 -> 3616 bytes .../Resources/charset/from.windows-1258.php | Bin 0 -> 3662 bytes .../Resources/charset/translit.php | 4106 ++++ .../symfony/polyfill-iconv/bootstrap.php | 84 + .../symfony/polyfill-iconv/bootstrap80.php | 76 + .../vendor/symfony/polyfill-mbstring/LICENSE | 19 + .../symfony/polyfill-mbstring/Mbstring.php | 1045 + .../Resources/unidata/caseFolding.php | 119 + .../Resources/unidata/lowerCase.php | 1397 ++ .../Resources/unidata/titleCaseRegexp.php | 5 + .../Resources/unidata/upperCase.php | 1489 ++ .../symfony/polyfill-mbstring/bootstrap.php | 172 + .../symfony/polyfill-mbstring/bootstrap80.php | 167 + .../vendor/symfony/polyfill-php80/LICENSE | 19 + .../vendor/symfony/polyfill-php80/Php80.php | 115 + .../symfony/polyfill-php80/PhpToken.php | 106 + .../Resources/stubs/Attribute.php | 31 + .../Resources/stubs/PhpToken.php | 16 + .../Resources/stubs/Stringable.php | 20 + .../Resources/stubs/UnhandledMatchError.php | 16 + .../Resources/stubs/ValueError.php | 16 + .../symfony/polyfill-php80/bootstrap.php | 42 + .../action-scheduler/action-scheduler.php | 70 + .../classes/ActionScheduler_ActionClaim.php | 45 + .../classes/ActionScheduler_ActionFactory.php | 378 + .../classes/ActionScheduler_AdminView.php | 311 + ...tionScheduler_AsyncRequest_QueueRunner.php | 93 + .../classes/ActionScheduler_Compatibility.php | 111 + .../ActionScheduler_DataController.php | 210 + .../classes/ActionScheduler_DateTime.php | 79 + .../classes/ActionScheduler_Exception.php | 11 + .../ActionScheduler_FatalErrorMonitor.php | 98 + ...ActionScheduler_InvalidActionException.php | 47 + .../classes/ActionScheduler_ListTable.php | 675 + .../classes/ActionScheduler_LogEntry.php | 78 + .../classes/ActionScheduler_NullLogEntry.php | 18 + .../classes/ActionScheduler_OptionLock.php | 136 + .../classes/ActionScheduler_QueueCleaner.php | 254 + .../classes/ActionScheduler_QueueRunner.php | 254 + ...tionScheduler_RecurringActionScheduler.php | 81 + .../ActionScheduler_SystemInformation.php | 93 + .../classes/ActionScheduler_Versions.php | 151 + .../ActionScheduler_WPCommentCleaner.php | 133 + .../ActionScheduler_wcSystemStatus.php | 165 + .../classes/WP_CLI/Action/Cancel_Command.php | 120 + .../classes/WP_CLI/Action/Create_Command.php | 153 + .../classes/WP_CLI/Action/Delete_Command.php | 108 + .../WP_CLI/Action/Generate_Command.php | 121 + .../classes/WP_CLI/Action/Get_Command.php | 75 + .../classes/WP_CLI/Action/List_Command.php | 133 + .../classes/WP_CLI/Action/Next_Command.php | 71 + .../classes/WP_CLI/Action/Run_Command.php | 194 + .../ActionScheduler_WPCLI_Clean_Command.php | 123 + .../ActionScheduler_WPCLI_QueueRunner.php | 195 + ...ctionScheduler_WPCLI_Scheduler_command.php | 202 + .../classes/WP_CLI/Action_Command.php | 353 + .../classes/WP_CLI/Migration_Command.php | 190 + .../classes/WP_CLI/ProgressBar.php | 139 + .../classes/WP_CLI/System_Command.php | 282 + .../classes/abstracts/ActionScheduler.php | 403 + .../ActionScheduler_Abstract_ListTable.php | 797 + .../ActionScheduler_Abstract_QueueRunner.php | 384 + ...onScheduler_Abstract_RecurringSchedule.php | 112 + .../ActionScheduler_Abstract_Schedule.php | 89 + .../ActionScheduler_Abstract_Schema.php | 187 + .../abstracts/ActionScheduler_Lock.php | 74 + .../abstracts/ActionScheduler_Logger.php | 258 + .../abstracts/ActionScheduler_Store.php | 506 + .../ActionScheduler_TimezoneHelper.php | 162 + .../ActionScheduler_WPCLI_Command.php | 83 + .../actions/ActionScheduler_Action.php | 191 + .../ActionScheduler_CanceledAction.php | 25 + .../ActionScheduler_FinishedAction.php | 21 + .../actions/ActionScheduler_NullAction.php | 25 + .../data-stores/ActionScheduler_DBLogger.php | 154 + .../data-stores/ActionScheduler_DBStore.php | 1342 ++ .../ActionScheduler_HybridStore.php | 460 + .../ActionScheduler_wpCommentLogger.php | 282 + .../ActionScheduler_wpPostStore.php | 1105 ++ ...eduler_wpPostStore_PostStatusRegistrar.php | 63 + ...cheduler_wpPostStore_PostTypeRegistrar.php | 53 + ...cheduler_wpPostStore_TaxonomyRegistrar.php | 33 + .../classes/migration/ActionMigrator.php | 126 + .../ActionScheduler_DBStoreMigrator.php | 52 + .../classes/migration/BatchFetcher.php | 95 + .../classes/migration/Config.php | 196 + .../classes/migration/Controller.php | 245 + .../migration/DryRun_ActionMigrator.php | 28 + .../classes/migration/DryRun_LogMigrator.php | 23 + .../classes/migration/LogMigrator.php | 58 + .../classes/migration/Runner.php | 171 + .../classes/migration/Scheduler.php | 128 + .../ActionScheduler_CanceledSchedule.php | 63 + .../ActionScheduler_CronSchedule.php | 111 + .../ActionScheduler_IntervalSchedule.php | 90 + .../ActionScheduler_NullSchedule.php | 39 + .../schedules/ActionScheduler_Schedule.php | 22 + .../ActionScheduler_SimpleSchedule.php | 81 + .../schema/ActionScheduler_LoggerSchema.php | 101 + .../schema/ActionScheduler_StoreSchema.php | 145 + ...eduler_Abstract_QueueRunner_Deprecated.php | 27 + .../ActionScheduler_AdminView_Deprecated.php | 153 + .../ActionScheduler_Schedule_Deprecated.php | 29 + .../ActionScheduler_Store_Deprecated.php | 50 + .../action-scheduler/deprecated/functions.php | 129 + .../action-scheduler/functions.php | 513 + .../action-scheduler/lib/WP_Async_Request.php | 188 + .../lib/cron-expression/CronExpression.php | 318 + .../CronExpression_AbstractField.php | 100 + .../CronExpression_DayOfMonthField.php | 110 + .../CronExpression_DayOfWeekField.php | 124 + .../CronExpression_FieldFactory.php | 55 + .../CronExpression_FieldInterface.php | 39 + .../CronExpression_HoursField.php | 47 + .../CronExpression_MinutesField.php | 39 + .../CronExpression_MonthField.php | 55 + .../CronExpression_YearField.php | 43 + .../lib/cron-expression/LICENSE | 19 + .../woocommerce/action-scheduler/license.txt | 674 + .../apimatic/core-interfaces/LICENSE | 21 + .../src/Core/Authentication/AuthGroup.php | 9 + .../src/Core/Authentication/AuthInterface.php | 15 + .../src/Core/ContextInterface.php | 11 + .../core-interfaces/src/Core/Format.php | 10 + .../src/Core/Logger/ApiLoggerInterface.php | 21 + .../Core/Request/NonEmptyParamInterface.php | 8 + .../src/Core/Request/ParamInterface.php | 31 + .../Request/RequestArraySerialization.php | 13 + .../src/Core/Request/RequestInterface.php | 29 + .../src/Core/Request/RequestMethod.php | 13 + .../Core/Request/RequestSetterInterface.php | 16 + .../Core/Request/TypeValidatorInterface.php | 19 + .../src/Core/Response/ResponseInterface.php | 16 + .../src/Http/HttpClientInterface.php | 17 + .../src/Http/HttpConfigurations.php | 43 + .../core-interfaces/src/Http/RetryOption.php | 19 + .../src/Sdk/ConverterInterface.php | 16 + .../src/Sdk/ExceptionInterface.php | 7 + .../vendor_prefixed/apimatic/core/LICENSE | 21 + .../apimatic/core/src/ApiCall.php | 45 + .../apimatic/core/src/Authentication/Auth.php | 107 + .../core/src/Authentication/CoreAuth.php | 44 + .../apimatic/core/src/Client.php | 128 + .../apimatic/core/src/ClientBuilder.php | 174 + .../Exceptions/AuthValidationException.php | 22 + .../apimatic/core/src/Logger/ApiLogger.php | 69 + .../BaseHttpLoggingConfiguration.php | 76 + .../Configuration/LoggingConfiguration.php | 58 + .../Configuration/RequestConfiguration.php | 31 + .../Configuration/ResponseConfiguration.php | 8 + .../core/src/Logger/ConsoleLogger.php | 36 + .../core/src/Logger/LoggerConstants.php | 19 + .../core/src/Logger/NullApiLogger.php | 24 + .../Parameters/AdditionalFormParams.php | 42 + .../Parameters/AdditionalHeaderParams.php | 19 + .../Parameters/AdditionalQueryParams.php | 72 + .../core/src/Request/Parameters/BodyParam.php | 41 + .../src/Request/Parameters/EncodedParam.php | 81 + .../core/src/Request/Parameters/FormParam.php | 85 + .../src/Request/Parameters/HeaderParam.php | 31 + .../src/Request/Parameters/MultipleParams.php | 52 + .../core/src/Request/Parameters/Parameter.php | 130 + .../src/Request/Parameters/QueryParam.php | 81 + .../src/Request/Parameters/TemplateParam.php | 65 + .../apimatic/core/src/Request/Request.php | 240 + .../core/src/Request/RequestBuilder.php | 132 + .../apimatic/core/src/Response/Context.php | 100 + .../core/src/Response/ResponseError.php | 67 + .../core/src/Response/ResponseHandler.php | 175 + .../src/Response/Types/DeserializableType.php | 30 + .../core/src/Response/Types/ErrorType.php | 127 + .../src/Response/Types/ResponseMultiType.php | 42 + .../core/src/Response/Types/ResponseType.php | 56 + .../TestCase/BodyMatchers/BodyComparator.php | 184 + .../src/TestCase/BodyMatchers/BodyMatcher.php | 50 + .../BodyMatchers/KeysAndValuesBodyMatcher.php | 17 + .../TestCase/BodyMatchers/KeysBodyMatcher.php | 26 + .../BodyMatchers/NativeBodyMatcher.php | 45 + .../TestCase/BodyMatchers/RawBodyMatcher.php | 30 + .../core/src/TestCase/CoreTestCase.php | 80 + .../core/src/TestCase/HeadersMatcher.php | 60 + .../core/src/TestCase/StatusCodeMatcher.php | 62 + .../apimatic/core/src/TestCase/TestParam.php | 77 + .../core/src/Types/CallbackCatcher.php | 54 + .../core/src/Types/Sdk/CoreApiResponse.php | 98 + .../core/src/Types/Sdk/CoreCallback.php | 97 + .../core/src/Types/Sdk/CoreContext.php | 29 + .../core/src/Types/Sdk/CoreFileWrapper.php | 84 + .../core/src/Types/Sdk/CoreRequest.php | 127 + .../core/src/Types/Sdk/CoreResponse.php | 66 + .../apimatic/core/src/Utils/CoreHelper.php | 263 + .../apimatic/core/src/Utils/DateHelper.php | 582 + .../apimatic/core/src/Utils/JsonHelper.php | 76 + .../core/src/Utils/XmlDeserializer.php | 160 + .../apimatic/core/src/Utils/XmlSerializer.php | 120 + .../apimatic/jsonmapper/LICENSE | 47 + .../apimatic/jsonmapper/example/Address.php | 15 + .../apimatic/jsonmapper/example/Contact.php | 12 + .../apimatic/jsonmapper/example/run.php | 12 + .../src/AnyOfValidationException.php | 39 + .../apimatic/jsonmapper/src/JsonMapper.php | 1662 ++ .../jsonmapper/src/JsonMapperException.php | 153 + .../src/OneOfValidationException.php | 53 + .../jsonmapper/src/TypeCombination.php | 393 + .../apimatic/unirest-php/LICENSE | 26 + .../unirest-php/src/Configuration.php | 341 + .../apimatic/unirest-php/src/HttpClient.php | 310 + .../apimatic/unirest-php/src/Request/Body.php | 58 + .../unirest-php/src/Request/Request.php | 119 + .../apimatic/unirest-php/src/Response.php | 55 + .../ezyang/htmlpurifier/LICENSE | 504 + .../library/HTMLPurifier.auto.php | 11 + .../library/HTMLPurifier.autoload-legacy.php | 13 + .../library/HTMLPurifier.autoload.php | 24 + .../library/HTMLPurifier.composer.php | 7 + .../library/HTMLPurifier.func.php | 25 + .../library/HTMLPurifier.includes.php | 237 + .../library/HTMLPurifier.kses.php | 29 + .../library/HTMLPurifier.path.php | 11 + .../htmlpurifier/library/HTMLPurifier.php | 265 + .../library/HTMLPurifier.safe-includes.php | 230 + .../library/HTMLPurifier/Arborize.php | 78 + .../library/HTMLPurifier/AttrCollections.php | 135 + .../library/HTMLPurifier/AttrDef.php | 135 + .../library/HTMLPurifier/AttrDef/CSS.php | 122 + .../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 34 + .../HTMLPurifier/AttrDef/CSS/Background.php | 104 + .../AttrDef/CSS/BackgroundPosition.php | 139 + .../HTMLPurifier/AttrDef/CSS/Border.php | 56 + .../HTMLPurifier/AttrDef/CSS/Color.php | 127 + .../HTMLPurifier/AttrDef/CSS/Composite.php | 46 + .../AttrDef/CSS/DenyElementDecorator.php | 43 + .../HTMLPurifier/AttrDef/CSS/Filter.php | 73 + .../library/HTMLPurifier/AttrDef/CSS/Font.php | 152 + .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 197 + .../HTMLPurifier/AttrDef/CSS/Ident.php | 30 + .../AttrDef/CSS/ImportantDecorator.php | 55 + .../HTMLPurifier/AttrDef/CSS/Length.php | 71 + .../HTMLPurifier/AttrDef/CSS/ListStyle.php | 103 + .../HTMLPurifier/AttrDef/CSS/Multiple.php | 70 + .../HTMLPurifier/AttrDef/CSS/Number.php | 79 + .../HTMLPurifier/AttrDef/CSS/Percentage.php | 49 + .../HTMLPurifier/AttrDef/CSS/Ratio.php | 40 + .../AttrDef/CSS/TextDecoration.php | 39 + .../library/HTMLPurifier/AttrDef/CSS/URI.php | 69 + .../library/HTMLPurifier/AttrDef/Clone.php | 42 + .../library/HTMLPurifier/AttrDef/Enum.php | 69 + .../HTMLPurifier/AttrDef/HTML/Bool.php | 44 + .../HTMLPurifier/AttrDef/HTML/Class.php | 44 + .../HTMLPurifier/AttrDef/HTML/Color.php | 48 + .../AttrDef/HTML/ContentEditable.php | 16 + .../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 36 + .../library/HTMLPurifier/AttrDef/HTML/ID.php | 94 + .../HTMLPurifier/AttrDef/HTML/Length.php | 48 + .../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 59 + .../HTMLPurifier/AttrDef/HTML/MultiLength.php | 54 + .../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 64 + .../HTMLPurifier/AttrDef/HTML/Pixels.php | 70 + .../library/HTMLPurifier/AttrDef/Integer.php | 84 + .../library/HTMLPurifier/AttrDef/Lang.php | 80 + .../library/HTMLPurifier/AttrDef/Switch.php | 49 + .../library/HTMLPurifier/AttrDef/Text.php | 21 + .../library/HTMLPurifier/AttrDef/URI.php | 96 + .../HTMLPurifier/AttrDef/URI/Email.php | 18 + .../AttrDef/URI/Email/SimpleCheck.php | 29 + .../library/HTMLPurifier/AttrDef/URI/Host.php | 129 + .../library/HTMLPurifier/AttrDef/URI/IPv4.php | 43 + .../library/HTMLPurifier/AttrDef/URI/IPv6.php | 80 + .../library/HTMLPurifier/AttrTransform.php | 57 + .../HTMLPurifier/AttrTransform/Background.php | 27 + .../HTMLPurifier/AttrTransform/BdoDir.php | 26 + .../HTMLPurifier/AttrTransform/BgColor.php | 27 + .../HTMLPurifier/AttrTransform/BoolToCSS.php | 45 + .../HTMLPurifier/AttrTransform/Border.php | 27 + .../HTMLPurifier/AttrTransform/EnumToCSS.php | 62 + .../AttrTransform/ImgRequired.php | 45 + .../HTMLPurifier/AttrTransform/ImgSpace.php | 53 + .../HTMLPurifier/AttrTransform/Input.php | 55 + .../HTMLPurifier/AttrTransform/Lang.php | 30 + .../HTMLPurifier/AttrTransform/Length.php | 42 + .../HTMLPurifier/AttrTransform/Name.php | 33 + .../HTMLPurifier/AttrTransform/NameSync.php | 44 + .../HTMLPurifier/AttrTransform/Nofollow.php | 48 + .../HTMLPurifier/AttrTransform/SafeEmbed.php | 25 + .../HTMLPurifier/AttrTransform/SafeObject.php | 28 + .../HTMLPurifier/AttrTransform/SafeParam.php | 82 + .../AttrTransform/ScriptRequired.php | 24 + .../AttrTransform/TargetBlank.php | 44 + .../AttrTransform/TargetNoopener.php | 36 + .../AttrTransform/TargetNoreferrer.php | 36 + .../HTMLPurifier/AttrTransform/Textarea.php | 28 + .../library/HTMLPurifier/AttrTypes.php | 88 + .../library/HTMLPurifier/AttrValidator.php | 144 + .../library/HTMLPurifier/Bootstrap.php | 87 + .../library/HTMLPurifier/CSSDefinition.php | 212 + .../library/HTMLPurifier/ChildDef.php | 49 + .../HTMLPurifier/ChildDef/Chameleon.php | 55 + .../library/HTMLPurifier/ChildDef/Custom.php | 88 + .../library/HTMLPurifier/ChildDef/Empty.php | 36 + .../library/HTMLPurifier/ChildDef/List.php | 88 + .../HTMLPurifier/ChildDef/Optional.php | 44 + .../HTMLPurifier/ChildDef/Required.php | 110 + .../ChildDef/StrictBlockquote.php | 98 + .../library/HTMLPurifier/ChildDef/Table.php | 207 + .../library/HTMLPurifier/Config.php | 815 + .../library/HTMLPurifier/ConfigSchema.php | 166 + .../ConfigSchema/Builder/ConfigSchema.php | 34 + .../HTMLPurifier/ConfigSchema/Builder/Xml.php | 137 + .../HTMLPurifier/ConfigSchema/Exception.php | 11 + .../HTMLPurifier/ConfigSchema/Interchange.php | 44 + .../ConfigSchema/Interchange/Directive.php | 78 + .../ConfigSchema/Interchange/Id.php | 53 + .../ConfigSchema/InterchangeBuilder.php | 197 + .../HTMLPurifier/ConfigSchema/Validator.php | 224 + .../ConfigSchema/ValidatorAtom.php | 119 + .../HTMLPurifier/ConfigSchema/schema.ser | 1 + .../library/HTMLPurifier/ContentSets.php | 151 + .../library/HTMLPurifier/Context.php | 80 + .../library/HTMLPurifier/Definition.php | 51 + .../library/HTMLPurifier/DefinitionCache.php | 116 + .../DefinitionCache/Decorator.php | 101 + .../DefinitionCache/Decorator/Cleanup.php | 74 + .../DefinitionCache/Decorator/Memory.php | 80 + .../HTMLPurifier/DefinitionCache/Null.php | 70 + .../DefinitionCache/Serializer.php | 281 + .../HTMLPurifier/DefinitionCacheFactory.php | 99 + .../library/HTMLPurifier/Doctype.php | 60 + .../library/HTMLPurifier/DoctypeRegistry.php | 122 + .../library/HTMLPurifier/ElementDef.php | 199 + .../library/HTMLPurifier/Encoder.php | 566 + .../library/HTMLPurifier/EntityLookup.php | 47 + .../HTMLPurifier/EntityLookup/entities.ser | 1 + .../library/HTMLPurifier/EntityParser.php | 202 + .../library/HTMLPurifier/ErrorCollector.php | 214 + .../library/HTMLPurifier/ErrorStruct.php | 68 + .../library/HTMLPurifier/Exception.php | 12 + .../library/HTMLPurifier/Filter.php | 53 + .../Filter/ExtractStyleBlocks.php | 336 + .../library/HTMLPurifier/Filter/YouTube.php | 52 + .../library/HTMLPurifier/Generator.php | 252 + .../library/HTMLPurifier/HTMLDefinition.php | 422 + .../library/HTMLPurifier/HTMLModule.php | 261 + .../library/HTMLPurifier/HTMLModule/Bdo.php | 29 + .../HTMLModule/CommonAttributes.php | 23 + .../library/HTMLPurifier/HTMLModule/Edit.php | 47 + .../library/HTMLPurifier/HTMLModule/Forms.php | 78 + .../HTMLPurifier/HTMLModule/Hypertext.php | 31 + .../HTMLPurifier/HTMLModule/Iframe.php | 37 + .../library/HTMLPurifier/HTMLModule/Image.php | 38 + .../HTMLPurifier/HTMLModule/Legacy.php | 131 + .../library/HTMLPurifier/HTMLModule/List.php | 47 + .../library/HTMLPurifier/HTMLModule/Name.php | 26 + .../HTMLPurifier/HTMLModule/Nofollow.php | 24 + .../HTMLModule/NonXMLCommonAttributes.php | 16 + .../HTMLPurifier/HTMLModule/Object.php | 29 + .../HTMLPurifier/HTMLModule/Presentation.php | 41 + .../HTMLPurifier/HTMLModule/Proprietary.php | 23 + .../library/HTMLPurifier/HTMLModule/Ruby.php | 30 + .../HTMLPurifier/HTMLModule/SafeEmbed.php | 24 + .../HTMLPurifier/HTMLModule/SafeObject.php | 40 + .../HTMLPurifier/HTMLModule/SafeScripting.php | 43 + .../HTMLPurifier/HTMLModule/Scripting.php | 58 + .../HTMLModule/StyleAttribute.php | 33 + .../HTMLPurifier/HTMLModule/Tables.php | 42 + .../HTMLPurifier/HTMLModule/Target.php | 26 + .../HTMLPurifier/HTMLModule/TargetBlank.php | 24 + .../HTMLModule/TargetNoopener.php | 23 + .../HTMLModule/TargetNoreferrer.php | 23 + .../library/HTMLPurifier/HTMLModule/Text.php | 67 + .../library/HTMLPurifier/HTMLModule/Tidy.php | 200 + .../HTMLPurifier/HTMLModule/Tidy/Name.php | 31 + .../HTMLModule/Tidy/Proprietary.php | 32 + .../HTMLPurifier/HTMLModule/Tidy/Strict.php | 40 + .../HTMLModule/Tidy/Transitional.php | 16 + .../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 25 + .../HTMLModule/Tidy/XHTMLAndHTML4.php | 89 + .../HTMLModule/XMLCommonAttributes.php | 16 + .../HTMLPurifier/HTMLModuleManager.php | 392 + .../library/HTMLPurifier/IDAccumulator.php | 54 + .../library/HTMLPurifier/Injector.php | 265 + .../HTMLPurifier/Injector/AutoParagraph.php | 333 + .../HTMLPurifier/Injector/DisplayLinkURI.php | 38 + .../library/HTMLPurifier/Injector/Linkify.php | 59 + .../HTMLPurifier/Injector/PurifierLinkify.php | 63 + .../HTMLPurifier/Injector/RemoveEmpty.php | 111 + .../Injector/RemoveSpansWithoutAttributes.php | 83 + .../HTMLPurifier/Injector/SafeObject.php | 104 + .../library/HTMLPurifier/Language.php | 190 + .../HTMLPurifier/Language/messages/en.php | 49 + .../library/HTMLPurifier/LanguageFactory.php | 182 + .../library/HTMLPurifier/Length.php | 146 + .../library/HTMLPurifier/Lexer.php | 301 + .../library/HTMLPurifier/Lexer/DOMLex.php | 391 + .../library/HTMLPurifier/Lexer/DirectLex.php | 430 + .../library/HTMLPurifier/Lexer/PH5P.php | 3157 +++ .../library/HTMLPurifier/Node.php | 46 + .../library/HTMLPurifier/Node/Comment.php | 36 + .../library/HTMLPurifier/Node/Element.php | 56 + .../library/HTMLPurifier/Node/Text.php | 50 + .../library/HTMLPurifier/PercentEncoder.php | 114 + .../library/HTMLPurifier/Printer.php | 190 + .../HTMLPurifier/Printer/CSSDefinition.php | 38 + .../HTMLPurifier/Printer/ConfigForm.php | 397 + .../HTMLPurifier/Printer/HTMLDefinition.php | 261 + .../library/HTMLPurifier/PropertyList.php | 113 + .../HTMLPurifier/PropertyListIterator.php | 41 + .../library/HTMLPurifier/Queue.php | 59 + .../library/HTMLPurifier/Strategy.php | 24 + .../HTMLPurifier/Strategy/Composite.php | 29 + .../library/HTMLPurifier/Strategy/Core.php | 18 + .../HTMLPurifier/Strategy/FixNesting.php | 175 + .../HTMLPurifier/Strategy/MakeWellFormed.php | 596 + .../Strategy/RemoveForeignElements.php | 178 + .../Strategy/ValidateAttributes.php | 39 + .../library/HTMLPurifier/StringHash.php | 46 + .../library/HTMLPurifier/StringHashParser.php | 133 + .../library/HTMLPurifier/TagTransform.php | 35 + .../HTMLPurifier/TagTransform/Font.php | 88 + .../HTMLPurifier/TagTransform/Simple.php | 41 + .../library/HTMLPurifier/Token.php | 92 + .../library/HTMLPurifier/Token/Comment.php | 37 + .../library/HTMLPurifier/Token/Empty.php | 17 + .../library/HTMLPurifier/Token/End.php | 25 + .../library/HTMLPurifier/Token/Start.php | 11 + .../library/HTMLPurifier/Token/Tag.php | 66 + .../library/HTMLPurifier/Token/Text.php | 49 + .../library/HTMLPurifier/TokenFactory.php | 108 + .../htmlpurifier/library/HTMLPurifier/URI.php | 293 + .../library/HTMLPurifier/URIDefinition.php | 110 + .../library/HTMLPurifier/URIFilter.php | 70 + .../URIFilter/DisableExternal.php | 52 + .../URIFilter/DisableExternalResources.php | 25 + .../URIFilter/DisableResources.php | 22 + .../HTMLPurifier/URIFilter/HostBlacklist.php | 44 + .../HTMLPurifier/URIFilter/MakeAbsolute.php | 153 + .../library/HTMLPurifier/URIFilter/Munge.php | 108 + .../HTMLPurifier/URIFilter/SafeIframe.php | 66 + .../library/HTMLPurifier/URIParser.php | 59 + .../library/HTMLPurifier/URIScheme.php | 89 + .../library/HTMLPurifier/URIScheme/data.php | 138 + .../library/HTMLPurifier/URIScheme/file.php | 43 + .../library/HTMLPurifier/URIScheme/ftp.php | 58 + .../library/HTMLPurifier/URIScheme/http.php | 34 + .../library/HTMLPurifier/URIScheme/https.php | 19 + .../library/HTMLPurifier/URIScheme/mailto.php | 37 + .../library/HTMLPurifier/URIScheme/news.php | 34 + .../library/HTMLPurifier/URIScheme/nntp.php | 31 + .../library/HTMLPurifier/URIScheme/tel.php | 45 + .../HTMLPurifier/URISchemeRegistry.php | 73 + .../library/HTMLPurifier/UnitConverter.php | 276 + .../library/HTMLPurifier/VarParser.php | 170 + .../HTMLPurifier/VarParser/Flexible.php | 127 + .../library/HTMLPurifier/VarParser/Native.php | 37 + .../HTMLPurifier/VarParserException.php | 11 + .../library/HTMLPurifier/Zipper.php | 169 + .../php-jsonpointer/src/Rs/Json/Pointer.php | 144 + .../Rs/Json/Pointer/InvalidJsonException.php | 7 + .../Json/Pointer/InvalidPointerException.php | 7 + .../Json/Pointer/NonWalkableJsonException.php | 7 + .../NonexistentValueReferencedException.php | 7 + .../vendor_prefixed/square/square/LICENSE | 10 + .../square/square/example-autoload.php | 55 + .../square/square/src/ApiHelper.php | 148 + .../square/square/src/Apis/ApplePayApi.php | 45 + .../square/src/Apis/BankAccountsApi.php | 70 + .../square/square/src/Apis/BaseApi.php | 37 + .../src/Apis/BookingCustomAttributesApi.php | 327 + .../square/square/src/Apis/BookingsApi.php | 287 + .../square/square/src/Apis/CardsApi.php | 87 + .../square/square/src/Apis/CashDrawersApi.php | 72 + .../square/square/src/Apis/CatalogApi.php | 417 + .../square/square/src/Apis/CheckoutApi.php | 197 + .../src/Apis/CustomerCustomAttributesApi.php | 319 + .../square/src/Apis/CustomerGroupsApi.php | 106 + .../square/src/Apis/CustomerSegmentsApi.php | 52 + .../square/square/src/Apis/CustomersApi.php | 336 + .../square/square/src/Apis/DevicesApi.php | 108 + .../square/square/src/Apis/DisputesApi.php | 180 + .../square/square/src/Apis/EmployeesApi.php | 45 + .../square/square/src/Apis/EventsApi.php | 72 + .../square/src/Apis/GiftCardActivitiesApi.php | 79 + .../square/square/src/Apis/GiftCardsApi.php | 155 + .../square/square/src/Apis/InventoryApi.php | 301 + .../square/square/src/Apis/InvoicesApi.php | 230 + .../square/square/src/Apis/LaborApi.php | 330 + .../src/Apis/LocationCustomAttributesApi.php | 312 + .../square/square/src/Apis/LocationsApi.php | 83 + .../square/square/src/Apis/LoyaltyApi.php | 455 + .../src/Apis/MerchantCustomAttributesApi.php | 313 + .../square/square/src/Apis/MerchantsApi.php | 51 + .../src/Apis/MobileAuthorizationApi.php | 43 + .../square/square/src/Apis/OAuthApi.php | 104 + .../src/Apis/OrderCustomAttributesApi.php | 333 + .../square/square/src/Apis/OrdersApi.php | 200 + .../square/square/src/Apis/PaymentsApi.php | 208 + .../square/square/src/Apis/PayoutsApi.php | 94 + .../square/square/src/Apis/RefundsApi.php | 106 + .../square/square/src/Apis/SitesApi.php | 28 + .../square/square/src/Apis/SnippetsApi.php | 82 + .../square/src/Apis/SubscriptionsApi.php | 263 + .../square/square/src/Apis/TeamApi.php | 263 + .../square/square/src/Apis/TerminalApi.php | 264 + .../square/src/Apis/TransactionsApi.php | 122 + .../square/src/Apis/V1TransactionsApi.php | 77 + .../square/square/src/Apis/VendorsApi.php | 131 + .../src/Apis/WebhookSubscriptionsApi.php | 166 + .../BearerAuthCredentialsBuilder.php | 45 + .../src/Authentication/BearerAuthManager.php | 41 + .../square/src/BearerAuthCredentials.php | 21 + .../square/src/ConfigurationDefaults.php | 30 + .../square/src/ConfigurationInterface.php | 49 + .../square/square/src/Environment.php | 14 + .../square/src/Exceptions/ApiException.php | 58 + .../square/square/src/Http/ApiResponse.php | 95 + .../square/square/src/Http/HttpCallBack.php | 12 + .../square/square/src/Http/HttpContext.php | 30 + .../square/square/src/Http/HttpMethod.php | 18 + .../square/square/src/Http/HttpRequest.php | 12 + .../square/square/src/Http/HttpResponse.php | 12 + .../square/square/src/Models/ACHDetails.php | 140 + .../src/Models/AcceptDisputeResponse.php | 85 + .../src/Models/AcceptedPaymentMethods.php | 170 + .../Models/AccumulateLoyaltyPointsRequest.php | 114 + .../AccumulateLoyaltyPointsResponse.php | 120 + .../square/src/Models/ActionCancelReason.php | 20 + .../square/square/src/Models/ActivityType.php | 269 + .../src/Models/AddGroupToCustomerResponse.php | 59 + .../square/src/Models/AdditionalRecipient.php | 173 + .../square/square/src/Models/Address.php | 559 + .../src/Models/AdjustLoyaltyPointsRequest.php | 136 + .../Models/AdjustLoyaltyPointsResponse.php | 87 + .../square/src/Models/AfterpayDetails.php | 65 + .../square/src/Models/ApplicationDetails.php | 108 + ...pplicationDetailsExternalSquareProduct.php | 21 + .../square/src/Models/ApplicationType.php | 9 + .../square/src/Models/AppointmentSegment.php | 252 + .../square/src/Models/ArchivedState.php | 25 + .../square/square/src/Models/Availability.php | 131 + .../square/square/src/Models/BankAccount.php | 565 + .../src/Models/BankAccountPaymentDetails.php | 316 + .../square/src/Models/BankAccountStatus.php | 27 + .../square/src/Models/BankAccountType.php | 36 + .../Models/BatchChangeInventoryRequest.php | 154 + .../Models/BatchChangeInventoryResponse.php | 113 + .../BatchDeleteCatalogObjectsRequest.php | 72 + .../BatchDeleteCatalogObjectsResponse.php | 111 + .../BatchRetrieveCatalogObjectsRequest.php | 283 + .../BatchRetrieveCatalogObjectsResponse.php | 113 + .../BatchRetrieveInventoryChangesRequest.php | 369 + .../BatchRetrieveInventoryChangesResponse.php | 117 + .../BatchRetrieveInventoryCountsRequest.php | 284 + .../BatchRetrieveInventoryCountsResponse.php | 119 + .../src/Models/BatchRetrieveOrdersRequest.php | 104 + .../Models/BatchRetrieveOrdersResponse.php | 88 + .../BatchUpsertCatalogObjectsRequest.php | 155 + .../BatchUpsertCatalogObjectsResponse.php | 140 + .../square/square/src/Models/Booking.php | 553 + .../src/Models/BookingBookingSource.php | 29 + .../src/Models/BookingCreatorDetails.php | 110 + .../BookingCreatorDetailsCreatorType.php | 19 + .../BookingCustomAttributeDeleteRequest.php | 93 + .../BookingCustomAttributeDeleteResponse.php | 85 + .../BookingCustomAttributeUpsertRequest.php | 133 + .../BookingCustomAttributeUpsertResponse.php | 112 + .../square/src/Models/BookingStatus.php | 36 + .../square/square/src/Models/BreakType.php | 255 + .../src/Models/Builders/ACHDetailsBuilder.php | 91 + .../Builders/AcceptDisputeResponseBuilder.php | 59 + .../AcceptedPaymentMethodsBuilder.php | 109 + .../AccumulateLoyaltyPointsRequestBuilder.php | 42 + ...AccumulateLoyaltyPointsResponseBuilder.php | 69 + .../AddGroupToCustomerResponseBuilder.php | 48 + .../Builders/AdditionalRecipientBuilder.php | 77 + .../src/Models/Builders/AddressBuilder.php | 281 + .../AdjustLoyaltyPointsRequestBuilder.php | 59 + .../AdjustLoyaltyPointsResponseBuilder.php | 59 + .../Builders/AfterpayDetailsBuilder.php | 55 + .../Builders/ApplicationDetailsBuilder.php | 65 + .../Builders/AppointmentSegmentBuilder.php | 123 + .../Models/Builders/AvailabilityBuilder.php | 84 + .../Models/Builders/BankAccountBuilder.php | 166 + .../BankAccountPaymentDetailsBuilder.php | 175 + .../BatchChangeInventoryRequestBuilder.php | 76 + .../BatchChangeInventoryResponseBuilder.php | 70 + ...atchDeleteCatalogObjectsRequestBuilder.php | 55 + ...tchDeleteCatalogObjectsResponseBuilder.php | 68 + ...chRetrieveCatalogObjectsRequestBuilder.php | 111 + ...hRetrieveCatalogObjectsResponseBuilder.php | 69 + ...RetrieveInventoryChangesRequestBuilder.php | 181 + ...etrieveInventoryChangesResponseBuilder.php | 69 + ...hRetrieveInventoryCountsRequestBuilder.php | 145 + ...RetrieveInventoryCountsResponseBuilder.php | 69 + .../BatchRetrieveOrdersRequestBuilder.php | 57 + .../BatchRetrieveOrdersResponseBuilder.php | 59 + ...atchUpsertCatalogObjectsRequestBuilder.php | 41 + ...tchUpsertCatalogObjectsResponseBuilder.php | 80 + .../src/Models/Builders/BookingBuilder.php | 258 + .../Builders/BookingCreatorDetailsBuilder.php | 67 + ...ingCustomAttributeDeleteRequestBuilder.php | 40 + ...ngCustomAttributeDeleteResponseBuilder.php | 58 + ...ingCustomAttributeUpsertRequestBuilder.php | 59 + ...ngCustomAttributeUpsertResponseBuilder.php | 69 + .../src/Models/Builders/BreakTypeBuilder.php | 82 + .../BulkCreateCustomerDataBuilder.php | 221 + .../BulkCreateCustomersRequestBuilder.php | 40 + .../BulkCreateCustomersResponseBuilder.php | 59 + .../BulkCreateTeamMembersRequestBuilder.php | 40 + .../BulkCreateTeamMembersResponseBuilder.php | 59 + .../BulkCreateVendorsRequestBuilder.php | 40 + .../BulkCreateVendorsResponseBuilder.php | 59 + ...eBookingCustomAttributesRequestBuilder.php | 40 + ...BookingCustomAttributesResponseBuilder.php | 59 + .../BulkDeleteCustomersRequestBuilder.php | 39 + .../BulkDeleteCustomersResponseBuilder.php | 59 + ...LocationCustomAttributesRequestBuilder.php | 40 + ...ionCustomAttributeDeleteRequestBuilder.php | 49 + ...ocationCustomAttributesResponseBuilder.php | 51 + ...onCustomAttributeDeleteResponseBuilder.php | 60 + ...MerchantCustomAttributesRequestBuilder.php | 40 + ...antCustomAttributeDeleteRequestBuilder.php | 49 + ...erchantCustomAttributesResponseBuilder.php | 51 + ...ntCustomAttributeDeleteResponseBuilder.php | 50 + ...eteOrderCustomAttributesRequestBuilder.php | 40 + ...tesRequestDeleteCustomAttributeBuilder.php | 49 + ...teOrderCustomAttributesResponseBuilder.php | 51 + .../BulkRetrieveBookingsRequestBuilder.php | 39 + .../BulkRetrieveBookingsResponseBuilder.php | 59 + .../BulkRetrieveCustomersRequestBuilder.php | 39 + .../BulkRetrieveCustomersResponseBuilder.php | 59 + ...eamMemberBookingProfilesRequestBuilder.php | 39 + ...amMemberBookingProfilesResponseBuilder.php | 59 + .../BulkRetrieveVendorsRequestBuilder.php | 55 + .../BulkRetrieveVendorsResponseBuilder.php | 59 + .../Builders/BulkSwapPlanRequestBuilder.php | 41 + .../Builders/BulkSwapPlanResponseBuilder.php | 58 + .../BulkUpdateCustomerDataBuilder.php | 231 + .../BulkUpdateCustomersRequestBuilder.php | 40 + .../BulkUpdateCustomersResponseBuilder.php | 59 + .../BulkUpdateTeamMembersRequestBuilder.php | 40 + .../BulkUpdateTeamMembersResponseBuilder.php | 59 + .../BulkUpdateVendorsRequestBuilder.php | 40 + .../BulkUpdateVendorsResponseBuilder.php | 59 + ...tBookingCustomAttributesRequestBuilder.php | 40 + ...BookingCustomAttributesResponseBuilder.php | 59 + ...CustomerCustomAttributesRequestBuilder.php | 40 + ...merCustomAttributeUpsertRequestBuilder.php | 61 + ...ustomerCustomAttributesResponseBuilder.php | 59 + ...erCustomAttributeUpsertResponseBuilder.php | 71 + ...LocationCustomAttributesRequestBuilder.php | 40 + ...ionCustomAttributeUpsertRequestBuilder.php | 61 + ...ocationCustomAttributesResponseBuilder.php | 59 + ...onCustomAttributeUpsertResponseBuilder.php | 71 + ...MerchantCustomAttributesRequestBuilder.php | 40 + ...antCustomAttributeUpsertRequestBuilder.php | 61 + ...erchantCustomAttributesResponseBuilder.php | 59 + ...ntCustomAttributeUpsertResponseBuilder.php | 71 + ...ertOrderCustomAttributesRequestBuilder.php | 40 + ...tesRequestUpsertCustomAttributeBuilder.php | 59 + ...rtOrderCustomAttributesResponseBuilder.php | 51 + .../BusinessAppointmentSettingsBuilder.php | 240 + .../BusinessBookingProfileBuilder.php | 150 + .../Models/Builders/BusinessHoursBuilder.php | 56 + .../Builders/BusinessHoursPeriodBuilder.php | 83 + .../Builders/BuyNowPayLaterDetailsBuilder.php | 77 + .../CalculateLoyaltyPointsRequestBuilder.php | 84 + .../CalculateLoyaltyPointsResponseBuilder.php | 68 + .../Builders/CalculateOrderRequestBuilder.php | 59 + .../CalculateOrderResponseBuilder.php | 59 + .../Builders/CancelBookingRequestBuilder.php | 73 + .../Builders/CancelBookingResponseBuilder.php | 59 + .../Builders/CancelInvoiceRequestBuilder.php | 39 + .../Builders/CancelInvoiceResponseBuilder.php | 59 + .../CancelLoyaltyPromotionResponseBuilder.php | 59 + ...lPaymentByIdempotencyKeyRequestBuilder.php | 39 + ...PaymentByIdempotencyKeyResponseBuilder.php | 48 + .../Builders/CancelPaymentResponseBuilder.php | 59 + .../CancelSubscriptionResponseBuilder.php | 70 + .../CancelTerminalActionResponseBuilder.php | 59 + .../CancelTerminalCheckoutResponseBuilder.php | 59 + .../CancelTerminalRefundResponseBuilder.php | 59 + .../CaptureTransactionResponseBuilder.php | 48 + .../src/Models/Builders/CardBuilder.php | 248 + .../Builders/CardPaymentDetailsBuilder.php | 305 + .../Builders/CardPaymentTimelineBuilder.php | 91 + .../Models/Builders/CashAppDetailsBuilder.php | 83 + .../Builders/CashDrawerDeviceBuilder.php | 65 + .../Builders/CashDrawerShiftBuilder.php | 281 + .../Builders/CashDrawerShiftEventBuilder.php | 106 + .../CashDrawerShiftSummaryBuilder.php | 190 + .../Builders/CashPaymentDetailsBuilder.php | 50 + .../CatalogAvailabilityPeriodBuilder.php | 83 + .../Builders/CatalogCategoryBuilder.php | 206 + ...atalogCustomAttributeDefinitionBuilder.php | 151 + ...AttributeDefinitionNumberConfigBuilder.php | 55 + ...ributeDefinitionSelectionConfigBuilder.php | 74 + ...nConfigCustomAttributeSelectionBuilder.php | 59 + ...AttributeDefinitionStringConfigBuilder.php | 55 + .../CatalogCustomAttributeValueBuilder.php | 157 + .../Builders/CatalogDiscountBuilder.php | 150 + .../Builders/CatalogEcomSeoDataBuilder.php | 91 + .../Builders/CatalogIdMappingBuilder.php | 73 + .../Models/Builders/CatalogImageBuilder.php | 109 + .../Builders/CatalogInfoResponseBuilder.php | 70 + .../CatalogInfoResponseLimitsBuilder.php | 235 + .../Models/Builders/CatalogItemBuilder.php | 453 + ...talogItemFoodAndBeverageDetailsBuilder.php | 93 + ...everageDetailsDietaryPreferenceBuilder.php | 75 + ...oodAndBeverageDetailsIngredientBuilder.php | 75 + .../CatalogItemModifierListInfoBuilder.php | 130 + .../Builders/CatalogItemOptionBuilder.php | 128 + .../CatalogItemOptionForItemBuilder.php | 55 + .../CatalogItemOptionValueBuilder.php | 127 + ...ItemOptionValueForItemVariationBuilder.php | 73 + .../Builders/CatalogItemVariationBuilder.php | 379 + .../CatalogMeasurementUnitBuilder.php | 66 + .../Builders/CatalogModifierBuilder.php | 139 + .../Builders/CatalogModifierListBuilder.php | 184 + .../CatalogModifierOverrideBuilder.php | 57 + .../Builders/CatalogObjectBatchBuilder.php | 40 + .../Models/Builders/CatalogObjectBuilder.php | 379 + .../Builders/CatalogObjectCategoryBuilder.php | 65 + .../CatalogObjectReferenceBuilder.php | 73 + .../Builders/CatalogPricingRuleBuilder.php | 256 + .../Builders/CatalogProductSetBuilder.php | 163 + .../Models/Builders/CatalogQueryBuilder.php | 147 + .../Builders/CatalogQueryExactBuilder.php | 40 + ...emVariationsForItemOptionValuesBuilder.php | 55 + ...CatalogQueryItemsForItemOptionsBuilder.php | 55 + ...atalogQueryItemsForModifierListBuilder.php | 39 + .../CatalogQueryItemsForTaxBuilder.php | 39 + .../Builders/CatalogQueryPrefixBuilder.php | 40 + .../Builders/CatalogQueryRangeBuilder.php | 75 + .../Builders/CatalogQuerySetBuilder.php | 40 + .../CatalogQuerySortedAttributeBuilder.php | 67 + .../Builders/CatalogQueryTextBuilder.php | 39 + .../Builders/CatalogQuickAmountBuilder.php | 77 + .../CatalogQuickAmountsSettingsBuilder.php | 76 + .../CatalogStockConversionBuilder.php | 41 + .../CatalogSubscriptionPlanBuilder.php | 131 + ...atalogSubscriptionPlanVariationBuilder.php | 113 + .../src/Models/Builders/CatalogTaxBuilder.php | 147 + .../Builders/CatalogTimePeriodBuilder.php | 55 + .../Models/Builders/CatalogV1IdBuilder.php | 73 + .../CategoryPathToRootNodeBuilder.php | 73 + .../ChangeBillingAnchorDateRequestBuilder.php | 73 + ...ChangeBillingAnchorDateResponseBuilder.php | 70 + ...hargeRequestAdditionalRecipientBuilder.php | 42 + .../Models/Builders/ChargeRequestBuilder.php | 243 + .../Models/Builders/ChargeResponseBuilder.php | 59 + .../src/Models/Builders/CheckoutBuilder.php | 188 + ...heckoutLocationSettingsBrandingBuilder.php | 75 + .../CheckoutLocationSettingsBuilder.php | 135 + ...CheckoutLocationSettingsCouponsBuilder.php | 55 + .../CheckoutLocationSettingsPolicyBuilder.php | 91 + ...CheckoutLocationSettingsTippingBuilder.php | 120 + .../CheckoutMerchantSettingsBuilder.php | 58 + ...sPaymentMethodsAfterpayClearpayBuilder.php | 68 + ...fterpayClearpayEligibilityRangeBuilder.php | 43 + ...tMerchantSettingsPaymentMethodsBuilder.php | 79 + ...ingsPaymentMethodsPaymentMethodBuilder.php | 55 + .../Builders/CheckoutOptionsBuilder.php | 215 + .../Builders/ClearpayDetailsBuilder.php | 55 + .../Builders/CloneOrderRequestBuilder.php | 67 + .../Builders/CloneOrderResponseBuilder.php | 59 + .../Models/Builders/CollectedDataBuilder.php | 47 + .../CompletePaymentRequestBuilder.php | 55 + .../CompletePaymentResponseBuilder.php | 59 + .../src/Models/Builders/ComponentBuilder.php | 94 + .../Builders/ConfirmationDecisionBuilder.php | 47 + .../Builders/ConfirmationOptionsBuilder.php | 70 + .../Models/Builders/CoordinatesBuilder.php | 73 + ...ustomAttributeDefinitionRequestBuilder.php | 50 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../Builders/CreateBookingRequestBuilder.php | 50 + .../Builders/CreateBookingResponseBuilder.php | 59 + .../CreateBreakTypeRequestBuilder.php | 50 + .../CreateBreakTypeResponseBuilder.php | 59 + .../Builders/CreateCardRequestBuilder.php | 52 + .../Builders/CreateCardResponseBuilder.php | 59 + .../CreateCatalogImageRequestBuilder.php | 61 + .../CreateCatalogImageResponseBuilder.php | 59 + .../Builders/CreateCheckoutRequestBuilder.php | 113 + .../CreateCheckoutResponseBuilder.php | 59 + .../CreateCustomerCardRequestBuilder.php | 70 + .../CreateCustomerCardResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 50 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../CreateCustomerGroupRequestBuilder.php | 50 + .../CreateCustomerGroupResponseBuilder.php | 59 + .../Builders/CreateCustomerRequestBuilder.php | 159 + .../CreateCustomerResponseBuilder.php | 59 + .../CreateDeviceCodeRequestBuilder.php | 41 + .../CreateDeviceCodeResponseBuilder.php | 59 + ...reateDisputeEvidenceFileRequestBuilder.php | 59 + ...eateDisputeEvidenceFileResponseBuilder.php | 59 + ...reateDisputeEvidenceTextRequestBuilder.php | 50 + ...eateDisputeEvidenceTextResponseBuilder.php | 59 + .../CreateGiftCardActivityRequestBuilder.php | 41 + .../CreateGiftCardActivityResponseBuilder.php | 59 + .../Builders/CreateGiftCardRequestBuilder.php | 42 + .../CreateGiftCardResponseBuilder.php | 59 + .../CreateInvoiceAttachmentRequestBuilder.php | 57 + ...CreateInvoiceAttachmentResponseBuilder.php | 59 + .../Builders/CreateInvoiceRequestBuilder.php | 50 + .../Builders/CreateInvoiceResponseBuilder.php | 59 + .../Builders/CreateJobRequestBuilder.php | 41 + .../Builders/CreateJobResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 50 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../Builders/CreateLocationRequestBuilder.php | 48 + .../CreateLocationResponseBuilder.php | 59 + .../CreateLoyaltyAccountRequestBuilder.php | 41 + .../CreateLoyaltyAccountResponseBuilder.php | 59 + .../CreateLoyaltyPromotionRequestBuilder.php | 41 + .../CreateLoyaltyPromotionResponseBuilder.php | 59 + .../CreateLoyaltyRewardRequestBuilder.php | 41 + .../CreateLoyaltyRewardResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 50 + ...stomAttributeDefinitionResponseBuilder.php | 59 + ...eMobileAuthorizationCodeRequestBuilder.php | 47 + ...MobileAuthorizationCodeResponseBuilder.php | 68 + ...ustomAttributeDefinitionRequestBuilder.php | 50 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../Builders/CreateOrderRequestBuilder.php | 58 + .../Builders/CreateOrderResponseBuilder.php | 59 + .../CreatePaymentLinkRequestBuilder.php | 111 + .../CreatePaymentLinkResponseBuilder.php | 70 + .../Builders/CreatePaymentRequestBuilder.php | 276 + .../Builders/CreatePaymentResponseBuilder.php | 59 + .../Builders/CreateRefundRequestBuilder.php | 52 + .../Builders/CreateRefundResponseBuilder.php | 59 + .../Builders/CreateShiftRequestBuilder.php | 50 + .../Builders/CreateShiftResponseBuilder.php | 59 + .../CreateSubscriptionRequestBuilder.php | 153 + .../CreateSubscriptionResponseBuilder.php | 59 + .../CreateTeamMemberRequestBuilder.php | 58 + .../CreateTeamMemberResponseBuilder.php | 59 + .../CreateTerminalActionRequestBuilder.php | 41 + .../CreateTerminalActionResponseBuilder.php | 59 + .../CreateTerminalCheckoutRequestBuilder.php | 41 + .../CreateTerminalCheckoutResponseBuilder.php | 59 + .../CreateTerminalRefundRequestBuilder.php | 50 + .../CreateTerminalRefundResponseBuilder.php | 59 + .../Builders/CreateVendorRequestBuilder.php | 50 + .../Builders/CreateVendorResponseBuilder.php | 59 + ...reateWebhookSubscriptionRequestBuilder.php | 50 + ...eateWebhookSubscriptionResponseBuilder.php | 59 + .../Builders/CustomAttributeBuilder.php | 124 + .../CustomAttributeDefinitionBuilder.php | 149 + .../Builders/CustomAttributeFilterBuilder.php | 138 + .../Models/Builders/CustomFieldBuilder.php | 39 + .../Builders/CustomerAddressFilterBuilder.php | 58 + .../src/Models/Builders/CustomerBuilder.php | 337 + .../CustomerCreationSourceFilterBuilder.php | 65 + .../CustomerCustomAttributeFilterBuilder.php | 61 + ...tomerCustomAttributeFilterValueBuilder.php | 130 + .../CustomerCustomAttributeFiltersBuilder.php | 56 + .../Builders/CustomerDetailsBuilder.php | 73 + .../Models/Builders/CustomerFilterBuilder.php | 132 + .../Models/Builders/CustomerGroupBuilder.php | 69 + .../Builders/CustomerPreferencesBuilder.php | 55 + .../Models/Builders/CustomerQueryBuilder.php | 59 + .../Builders/CustomerSegmentBuilder.php | 69 + .../Models/Builders/CustomerSortBuilder.php | 57 + .../Models/Builders/CustomerTaxIdsBuilder.php | 55 + .../Builders/CustomerTextFilterBuilder.php | 73 + .../Builders/DataCollectionOptionsBuilder.php | 52 + .../src/Models/Builders/DateRangeBuilder.php | 73 + ...stomAttributeDefinitionResponseBuilder.php | 48 + ...eBookingCustomAttributeResponseBuilder.php | 48 + .../DeleteBreakTypeResponseBuilder.php | 48 + .../DeleteCatalogObjectResponseBuilder.php | 68 + .../DeleteCustomerCardResponseBuilder.php | 48 + ...stomAttributeDefinitionResponseBuilder.php | 48 + ...CustomerCustomAttributeResponseBuilder.php | 48 + .../DeleteCustomerGroupResponseBuilder.php | 48 + .../Builders/DeleteCustomerRequestBuilder.php | 47 + .../DeleteCustomerResponseBuilder.php | 48 + .../DeleteDisputeEvidenceResponseBuilder.php | 48 + ...DeleteInvoiceAttachmentResponseBuilder.php | 48 + .../Builders/DeleteInvoiceRequestBuilder.php | 47 + .../Builders/DeleteInvoiceResponseBuilder.php | 48 + ...stomAttributeDefinitionResponseBuilder.php | 48 + ...LocationCustomAttributeResponseBuilder.php | 48 + .../DeleteLoyaltyRewardResponseBuilder.php | 48 + ...stomAttributeDefinitionResponseBuilder.php | 48 + ...MerchantCustomAttributeResponseBuilder.php | 48 + ...stomAttributeDefinitionResponseBuilder.php | 48 + ...eteOrderCustomAttributeResponseBuilder.php | 48 + .../DeletePaymentLinkResponseBuilder.php | 68 + .../Builders/DeleteShiftResponseBuilder.php | 48 + .../Builders/DeleteSnippetResponseBuilder.php | 48 + ...eleteSubscriptionActionResponseBuilder.php | 59 + ...leteWebhookSubscriptionResponseBuilder.php | 48 + ...reateDisputeEvidenceFileRequestBuilder.php | 67 + ...eateDisputeEvidenceFileResponseBuilder.php | 59 + ...reateDisputeEvidenceTextRequestBuilder.php | 50 + ...eateDisputeEvidenceTextResponseBuilder.php | 59 + .../Models/Builders/DestinationBuilder.php | 57 + .../Builders/DestinationDetailsBuilder.php | 70 + ...inationDetailsCardRefundDetailsBuilder.php | 84 + ...inationDetailsCashRefundDetailsBuilder.php | 50 + ...ionDetailsExternalRefundDetailsBuilder.php | 58 + .../Builders/DeviceAttributesBuilder.php | 131 + .../src/Models/Builders/DeviceBuilder.php | 80 + .../Builders/DeviceCheckoutOptionsBuilder.php | 104 + .../src/Models/Builders/DeviceCodeBuilder.php | 153 + ...ponentDetailsApplicationDetailsBuilder.php | 93 + ...eComponentDetailsBatteryDetailsBuilder.php | 65 + ...mponentDetailsCardReaderDetailsBuilder.php | 47 + ...ComponentDetailsEthernetDetailsBuilder.php | 73 + ...viceComponentDetailsMeasurementBuilder.php | 55 + ...tDetailsNetworkInterfaceDetailsBuilder.php | 55 + ...viceComponentDetailsWiFiDetailsBuilder.php | 120 + .../Models/Builders/DeviceDetailsBuilder.php | 91 + .../Models/Builders/DeviceMetadataBuilder.php | 253 + .../Models/Builders/DeviceStatusBuilder.php | 47 + .../Builders/DigitalWalletDetailsBuilder.php | 84 + .../Builders/DisableCardResponseBuilder.php | 59 + .../Builders/DisableEventsResponseBuilder.php | 48 + .../DismissTerminalActionResponseBuilder.php | 59 + ...DismissTerminalCheckoutResponseBuilder.php | 59 + .../DismissTerminalRefundResponseBuilder.php | 59 + .../src/Models/Builders/DisputeBuilder.php | 255 + .../Builders/DisputeEvidenceBuilder.php | 140 + .../Builders/DisputeEvidenceFileBuilder.php | 73 + .../Builders/DisputedPaymentBuilder.php | 55 + .../src/Models/Builders/EmployeeBuilder.php | 185 + .../Models/Builders/EmployeeWageBuilder.php | 94 + .../Builders/EnableEventsResponseBuilder.php | 48 + .../src/Models/Builders/ErrorBuilder.php | 60 + .../src/Models/Builders/EventBuilder.php | 130 + .../src/Models/Builders/EventDataBuilder.php | 101 + .../Models/Builders/EventMetadataBuilder.php | 73 + .../Builders/EventTypeMetadataBuilder.php | 67 + .../ExternalPaymentDetailsBuilder.php | 69 + .../Models/Builders/FilterValueBuilder.php | 91 + .../Builders/FloatNumberRangeBuilder.php | 73 + .../Models/Builders/FulfillmentBuilder.php | 147 + .../FulfillmentDeliveryDetailsBuilder.php | 388 + .../FulfillmentFulfillmentEntryBuilder.php | 76 + .../FulfillmentPickupDetailsBuilder.php | 283 + ...kupDetailsCurbsidePickupDetailsBuilder.php | 73 + .../Builders/FulfillmentRecipientBuilder.php | 120 + .../FulfillmentShipmentDetailsBuilder.php | 260 + .../GetBankAccountByV1IdResponseBuilder.php | 59 + .../GetBankAccountResponseBuilder.php | 59 + .../Builders/GetBreakTypeResponseBuilder.php | 59 + .../Builders/GetDeviceCodeResponseBuilder.php | 59 + .../Builders/GetDeviceResponseBuilder.php | 59 + .../GetEmployeeWageResponseBuilder.php | 59 + .../Builders/GetInvoiceResponseBuilder.php | 59 + .../GetPaymentRefundResponseBuilder.php | 59 + .../Builders/GetPaymentResponseBuilder.php | 59 + .../Builders/GetPayoutResponseBuilder.php | 59 + .../Builders/GetShiftResponseBuilder.php | 59 + .../GetTeamMemberWageResponseBuilder.php | 59 + .../GetTerminalActionResponseBuilder.php | 59 + .../GetTerminalCheckoutResponseBuilder.php | 59 + .../GetTerminalRefundResponseBuilder.php | 59 + .../GiftCardActivityActivateBuilder.php | 120 + ...GiftCardActivityAdjustDecrementBuilder.php | 41 + ...GiftCardActivityAdjustIncrementBuilder.php | 41 + .../Builders/GiftCardActivityBlockBuilder.php | 37 + .../Builders/GiftCardActivityBuilder.php | 272 + .../GiftCardActivityClearBalanceBuilder.php | 39 + .../GiftCardActivityDeactivateBuilder.php | 39 + .../GiftCardActivityImportBuilder.php | 40 + .../GiftCardActivityImportReversalBuilder.php | 40 + .../Builders/GiftCardActivityLoadBuilder.php | 120 + .../GiftCardActivityRedeemBuilder.php | 78 + .../GiftCardActivityRefundBuilder.php | 94 + ...CardActivityTransferBalanceFromBuilder.php | 41 + ...ftCardActivityTransferBalanceToBuilder.php | 41 + .../GiftCardActivityUnblockBuilder.php | 37 + ...dActivityUnlinkedActivityRefundBuilder.php | 68 + .../src/Models/Builders/GiftCardBuilder.php | 118 + .../Builders/InventoryAdjustmentBuilder.php | 294 + .../InventoryAdjustmentGroupBuilder.php | 77 + .../Builders/InventoryChangeBuilder.php | 101 + .../Models/Builders/InventoryCountBuilder.php | 139 + .../InventoryPhysicalCountBuilder.php | 222 + .../Builders/InventoryTransferBuilder.php | 240 + .../InvoiceAcceptedPaymentMethodsBuilder.php | 127 + .../Builders/InvoiceAttachmentBuilder.php | 107 + .../src/Models/Builders/InvoiceBuilder.php | 371 + .../Builders/InvoiceCustomFieldBuilder.php | 83 + .../Models/Builders/InvoiceFilterBuilder.php | 57 + .../InvoicePaymentReminderBuilder.php | 103 + .../Builders/InvoicePaymentRequestBuilder.php | 217 + .../Models/Builders/InvoiceQueryBuilder.php | 51 + .../Builders/InvoiceRecipientBuilder.php | 127 + .../InvoiceRecipientTaxIdsBuilder.php | 47 + .../Models/Builders/InvoiceSortBuilder.php | 47 + .../ItemVariationLocationOverridesBuilder.php | 142 + .../Models/Builders/JobAssignmentBuilder.php | 114 + .../square/src/Models/Builders/JobBuilder.php | 113 + .../LinkCustomerToGiftCardRequestBuilder.php | 39 + .../LinkCustomerToGiftCardResponseBuilder.php | 59 + .../ListBankAccountsRequestBuilder.php | 91 + .../ListBankAccountsResponseBuilder.php | 69 + ...stomAttributeDefinitionsRequestBuilder.php | 73 + ...tomAttributeDefinitionsResponseBuilder.php | 69 + ...tBookingCustomAttributesRequestBuilder.php | 91 + ...BookingCustomAttributesResponseBuilder.php | 69 + .../Builders/ListBookingsRequestBuilder.php | 163 + .../Builders/ListBookingsResponseBuilder.php | 69 + .../Builders/ListBreakTypesRequestBuilder.php | 91 + .../ListBreakTypesResponseBuilder.php | 69 + .../Builders/ListCardsRequestBuilder.php | 119 + .../Builders/ListCardsResponseBuilder.php | 69 + ...istCashDrawerShiftEventsRequestBuilder.php | 75 + ...stCashDrawerShiftEventsResponseBuilder.php | 69 + .../ListCashDrawerShiftsRequestBuilder.php | 121 + .../ListCashDrawerShiftsResponseBuilder.php | 69 + .../Builders/ListCatalogRequestBuilder.php | 91 + .../Builders/ListCatalogResponseBuilder.php | 69 + ...stomAttributeDefinitionsRequestBuilder.php | 73 + ...tomAttributeDefinitionsResponseBuilder.php | 69 + ...CustomerCustomAttributesRequestBuilder.php | 91 + ...ustomerCustomAttributesResponseBuilder.php | 69 + .../ListCustomerGroupsRequestBuilder.php | 73 + .../ListCustomerGroupsResponseBuilder.php | 69 + .../ListCustomerSegmentsRequestBuilder.php | 73 + .../ListCustomerSegmentsResponseBuilder.php | 69 + .../Builders/ListCustomersRequestBuilder.php | 111 + .../Builders/ListCustomersResponseBuilder.php | 79 + .../ListDeviceCodesRequestBuilder.php | 101 + .../ListDeviceCodesResponseBuilder.php | 69 + .../Builders/ListDevicesRequestBuilder.php | 101 + .../Builders/ListDevicesResponseBuilder.php | 69 + .../ListDisputeEvidenceRequestBuilder.php | 55 + .../ListDisputeEvidenceResponseBuilder.php | 69 + .../Builders/ListDisputesRequestBuilder.php | 91 + .../Builders/ListDisputesResponseBuilder.php | 69 + .../ListEmployeeWagesRequestBuilder.php | 91 + .../ListEmployeeWagesResponseBuilder.php | 69 + .../Builders/ListEmployeesRequestBuilder.php | 101 + .../Builders/ListEmployeesResponseBuilder.php | 69 + .../Builders/ListEventTypesRequestBuilder.php | 55 + .../ListEventTypesResponseBuilder.php | 69 + .../ListGiftCardActivitiesRequestBuilder.php | 181 + .../ListGiftCardActivitiesResponseBuilder.php | 69 + .../Builders/ListGiftCardsRequestBuilder.php | 127 + .../Builders/ListGiftCardsResponseBuilder.php | 69 + .../Builders/ListInvoicesRequestBuilder.php | 75 + .../Builders/ListInvoicesResponseBuilder.php | 69 + .../Builders/ListJobsRequestBuilder.php | 55 + .../Builders/ListJobsResponseBuilder.php | 69 + ...tLocationBookingProfilesRequestBuilder.php | 73 + ...LocationBookingProfilesResponseBuilder.php | 69 + ...stomAttributeDefinitionsRequestBuilder.php | 83 + ...tomAttributeDefinitionsResponseBuilder.php | 69 + ...LocationCustomAttributesRequestBuilder.php | 101 + ...ocationCustomAttributesResponseBuilder.php | 69 + .../Builders/ListLocationsResponseBuilder.php | 59 + .../ListLoyaltyProgramsResponseBuilder.php | 59 + .../ListLoyaltyPromotionsRequestBuilder.php | 83 + .../ListLoyaltyPromotionsResponseBuilder.php | 69 + ...stomAttributeDefinitionsRequestBuilder.php | 83 + ...tomAttributeDefinitionsResponseBuilder.php | 69 + ...MerchantCustomAttributesRequestBuilder.php | 101 + ...erchantCustomAttributesResponseBuilder.php | 69 + .../Builders/ListMerchantsRequestBuilder.php | 55 + .../Builders/ListMerchantsResponseBuilder.php | 69 + ...stomAttributeDefinitionsRequestBuilder.php | 83 + ...tomAttributeDefinitionsResponseBuilder.php | 61 + ...istOrderCustomAttributesRequestBuilder.php | 101 + ...stOrderCustomAttributesResponseBuilder.php | 69 + .../ListPaymentLinksRequestBuilder.php | 73 + .../ListPaymentLinksResponseBuilder.php | 69 + .../ListPaymentRefundsRequestBuilder.php | 181 + .../ListPaymentRefundsResponseBuilder.php | 69 + .../Builders/ListPaymentsRequestBuilder.php | 299 + .../Builders/ListPaymentsResponseBuilder.php | 69 + .../ListPayoutEntriesRequestBuilder.php | 83 + .../ListPayoutEntriesResponseBuilder.php | 69 + .../Builders/ListPayoutsRequestBuilder.php | 147 + .../Builders/ListPayoutsResponseBuilder.php | 69 + .../Builders/ListRefundsRequestBuilder.php | 101 + .../Builders/ListRefundsResponseBuilder.php | 69 + .../Builders/ListSitesResponseBuilder.php | 59 + .../ListSubscriptionEventsRequestBuilder.php | 73 + .../ListSubscriptionEventsResponseBuilder.php | 69 + ...eamMemberBookingProfilesRequestBuilder.php | 109 + ...amMemberBookingProfilesResponseBuilder.php | 69 + .../ListTeamMemberWagesRequestBuilder.php | 91 + .../ListTeamMemberWagesResponseBuilder.php | 69 + .../ListTransactionsRequestBuilder.php | 101 + .../ListTransactionsResponseBuilder.php | 69 + .../ListWebhookEventTypesRequestBuilder.php | 55 + .../ListWebhookEventTypesResponseBuilder.php | 69 + ...ListWebhookSubscriptionsRequestBuilder.php | 101 + ...istWebhookSubscriptionsResponseBuilder.php | 69 + .../ListWorkweekConfigsRequestBuilder.php | 73 + .../ListWorkweekConfigsResponseBuilder.php | 69 + .../LocationBookingProfileBuilder.php | 91 + .../src/Models/Builders/LocationBuilder.php | 407 + .../Models/Builders/LoyaltyAccountBuilder.php | 155 + ...ltyAccountExpiringPointDeadlineBuilder.php | 40 + .../Builders/LoyaltyAccountMappingBuilder.php | 75 + .../LoyaltyEventAccumulatePointsBuilder.php | 83 + ...yEventAccumulatePromotionPointsBuilder.php | 60 + .../LoyaltyEventAdjustPointsBuilder.php | 67 + .../Models/Builders/LoyaltyEventBuilder.php | 141 + .../LoyaltyEventCreateRewardBuilder.php | 50 + .../LoyaltyEventDateTimeFilterBuilder.php | 40 + .../LoyaltyEventDeleteRewardBuilder.php | 50 + .../LoyaltyEventExpirePointsBuilder.php | 40 + .../Builders/LoyaltyEventFilterBuilder.php | 92 + .../LoyaltyEventLocationFilterBuilder.php | 39 + ...oyaltyEventLoyaltyAccountFilterBuilder.php | 39 + .../LoyaltyEventOrderFilterBuilder.php | 39 + .../Builders/LoyaltyEventOtherBuilder.php | 40 + .../Builders/LoyaltyEventQueryBuilder.php | 48 + .../LoyaltyEventRedeemRewardBuilder.php | 59 + .../LoyaltyEventTypeFilterBuilder.php | 39 + .../LoyaltyProgramAccrualRuleBuilder.php | 101 + ...yProgramAccrualRuleCategoryDataBuilder.php | 39 + ...ramAccrualRuleItemVariationDataBuilder.php | 39 + ...altyProgramAccrualRuleSpendDataBuilder.php | 77 + ...altyProgramAccrualRuleVisitDataBuilder.php | 50 + .../Models/Builders/LoyaltyProgramBuilder.php | 155 + .../LoyaltyProgramExpirationPolicyBuilder.php | 39 + .../LoyaltyProgramRewardDefinitionBuilder.php | 81 + .../LoyaltyProgramRewardTierBuilder.php | 82 + .../LoyaltyProgramTerminologyBuilder.php | 40 + ...yaltyPromotionAvailableTimeDataBuilder.php | 59 + .../Builders/LoyaltyPromotionBuilder.php | 161 + .../LoyaltyPromotionIncentiveBuilder.php | 61 + ...tionIncentivePointsAdditionDataBuilder.php | 39 + ...onIncentivePointsMultiplierDataBuilder.php | 73 + .../LoyaltyPromotionTriggerLimitBuilder.php | 49 + .../Models/Builders/LoyaltyRewardBuilder.php | 118 + .../src/Models/Builders/MBreakBuilder.php | 71 + .../Builders/MeasurementUnitBuilder.php | 118 + .../Builders/MeasurementUnitCustomBuilder.php | 40 + .../src/Models/Builders/MerchantBuilder.php | 133 + .../ModifierLocationOverridesBuilder.php | 76 + .../src/Models/Builders/MoneyBuilder.php | 65 + .../Builders/ObtainTokenRequestBuilder.php | 184 + .../Builders/ObtainTokenResponseBuilder.php | 148 + .../Builders/OfflinePaymentDetailsBuilder.php | 47 + .../src/Models/Builders/OrderBuilder.php | 425 + .../Models/Builders/OrderCreatedBuilder.php | 103 + .../Builders/OrderCreatedObjectBuilder.php | 48 + .../src/Models/Builders/OrderEntryBuilder.php | 83 + .../Builders/OrderFulfillmentBuilder.php | 147 + ...OrderFulfillmentDeliveryDetailsBuilder.php | 388 + ...rderFulfillmentFulfillmentEntryBuilder.php | 76 + .../OrderFulfillmentPickupDetailsBuilder.php | 283 + ...kupDetailsCurbsidePickupDetailsBuilder.php | 73 + .../OrderFulfillmentRecipientBuilder.php | 120 + ...OrderFulfillmentShipmentDetailsBuilder.php | 260 + .../OrderFulfillmentUpdatedBuilder.php | 132 + .../OrderFulfillmentUpdatedObjectBuilder.php | 48 + .../OrderFulfillmentUpdatedUpdateBuilder.php | 75 + .../OrderLineItemAppliedDiscountBuilder.php | 68 + ...derLineItemAppliedServiceChargeBuilder.php | 68 + .../OrderLineItemAppliedTaxBuilder.php | 68 + .../Models/Builders/OrderLineItemBuilder.php | 344 + .../Builders/OrderLineItemDiscountBuilder.php | 206 + .../Builders/OrderLineItemModifierBuilder.php | 166 + ...ricingBlocklistsBlockedDiscountBuilder.php | 91 + ...ItemPricingBlocklistsBlockedTaxBuilder.php | 91 + .../OrderLineItemPricingBlocklistsBuilder.php | 75 + .../Builders/OrderLineItemTaxBuilder.php | 186 + .../Builders/OrderMoneyAmountsBuilder.php | 88 + .../Builders/OrderPricingOptionsBuilder.php | 73 + .../Builders/OrderQuantityUnitBuilder.php | 102 + .../Models/Builders/OrderReturnBuilder.php | 174 + .../Builders/OrderReturnDiscountBuilder.php | 186 + .../Builders/OrderReturnLineItemBuilder.php | 333 + .../OrderReturnLineItemModifierBuilder.php | 166 + .../OrderReturnServiceChargeBuilder.php | 253 + .../Models/Builders/OrderReturnTaxBuilder.php | 176 + .../Models/Builders/OrderReturnTipBuilder.php | 102 + .../Models/Builders/OrderRewardBuilder.php | 40 + .../OrderRoundingAdjustmentBuilder.php | 84 + .../Builders/OrderServiceChargeBuilder.php | 263 + .../Models/Builders/OrderSourceBuilder.php | 55 + .../Models/Builders/OrderUpdatedBuilder.php | 113 + .../Builders/OrderUpdatedObjectBuilder.php | 48 + .../Builders/PaginationCursorBuilder.php | 55 + .../PauseSubscriptionRequestBuilder.php | 119 + .../PauseSubscriptionResponseBuilder.php | 70 + .../Builders/PayOrderRequestBuilder.php | 75 + .../Builders/PayOrderResponseBuilder.php | 59 + ...lanceActivityAppFeeRefundDetailBuilder.php | 91 + ...anceActivityAppFeeRevenueDetailBuilder.php | 73 + ...eActivityAutomaticSavingsDetailBuilder.php | 73 + ...yAutomaticSavingsReversedDetailBuilder.php | 73 + ...mentBalanceActivityChargeDetailBuilder.php | 55 + ...BalanceActivityDepositFeeDetailBuilder.php | 55 + ...ctivityDepositFeeReversedDetailBuilder.php | 55 + ...entBalanceActivityDisputeDetailBuilder.php | 73 + ...PaymentBalanceActivityFeeDetailBuilder.php | 55 + ...nceActivityFreeProcessingDetailBuilder.php | 55 + ...nceActivityHoldAdjustmentDetailBuilder.php | 55 + ...alanceActivityOpenDisputeDetailBuilder.php | 73 + ...ceActivityOtherAdjustmentDetailBuilder.php | 55 + ...ymentBalanceActivityOtherDetailBuilder.php | 55 + ...mentBalanceActivityRefundDetailBuilder.php | 73 + ...ActivityReleaseAdjustmentDetailBuilder.php | 55 + ...alanceActivityReserveHoldDetailBuilder.php | 55 + ...nceActivityReserveReleaseDetailBuilder.php | 55 + ...ivitySquareCapitalPaymentDetailBuilder.php | 55 + ...areCapitalReversedPaymentDetailBuilder.php | 55 + ...vitySquarePayrollTransferDetailBuilder.php | 55 + ...rePayrollTransferReversedDetailBuilder.php | 55 + ...ntBalanceActivityTaxOnFeeDetailBuilder.php | 73 + ...anceActivityThirdPartyFeeDetailBuilder.php | 55 + ...tivityThirdPartyFeeRefundDetailBuilder.php | 73 + .../src/Models/Builders/PaymentBuilder.php | 515 + .../Models/Builders/PaymentLinkBuilder.php | 157 + .../PaymentLinkRelatedResourcesBuilder.php | 75 + .../Models/Builders/PaymentOptionsBuilder.php | 101 + .../Models/Builders/PaymentRefundBuilder.php | 239 + .../src/Models/Builders/PayoutBuilder.php | 167 + .../Models/Builders/PayoutEntryBuilder.php | 374 + .../src/Models/Builders/PayoutFeeBuilder.php | 76 + .../src/Models/Builders/PhaseBuilder.php | 109 + .../src/Models/Builders/PhaseInputBuilder.php | 57 + .../Builders/PrePopulatedDataBuilder.php | 84 + .../Models/Builders/ProcessingFeeBuilder.php | 84 + .../Builders/PublishInvoiceRequestBuilder.php | 57 + .../PublishInvoiceResponseBuilder.php | 59 + .../Models/Builders/QrCodeOptionsBuilder.php | 41 + .../Models/Builders/QuantityRatioBuilder.php | 73 + .../src/Models/Builders/QuickPayBuilder.php | 42 + .../src/Models/Builders/RangeBuilder.php | 73 + .../Models/Builders/ReceiptOptionsBuilder.php | 75 + .../RedeemLoyaltyRewardRequestBuilder.php | 40 + .../RedeemLoyaltyRewardResponseBuilder.php | 59 + .../src/Models/Builders/RefundBuilder.php | 102 + .../Builders/RefundPaymentRequestBuilder.php | 217 + .../Builders/RefundPaymentResponseBuilder.php | 59 + .../Builders/RegisterDomainRequestBuilder.php | 39 + .../RegisterDomainResponseBuilder.php | 58 + ...RemoveGroupFromCustomerResponseBuilder.php | 48 + .../ResumeSubscriptionRequestBuilder.php | 65 + .../ResumeSubscriptionResponseBuilder.php | 70 + ...ustomAttributeDefinitionRequestBuilder.php | 47 + ...stomAttributeDefinitionResponseBuilder.php | 59 + ...veBookingCustomAttributeRequestBuilder.php | 65 + ...eBookingCustomAttributeResponseBuilder.php | 59 + .../RetrieveBookingResponseBuilder.php | 59 + ...eBusinessBookingProfileResponseBuilder.php | 59 + .../Builders/RetrieveCardResponseBuilder.php | 59 + .../RetrieveCashDrawerShiftRequestBuilder.php | 39 + ...RetrieveCashDrawerShiftResponseBuilder.php | 59 + .../RetrieveCatalogObjectRequestBuilder.php | 91 + .../RetrieveCatalogObjectResponseBuilder.php | 69 + ...ustomAttributeDefinitionRequestBuilder.php | 47 + ...stomAttributeDefinitionResponseBuilder.php | 59 + ...eCustomerCustomAttributeRequestBuilder.php | 65 + ...CustomerCustomAttributeResponseBuilder.php | 59 + .../RetrieveCustomerGroupResponseBuilder.php | 59 + .../RetrieveCustomerResponseBuilder.php | 59 + ...RetrieveCustomerSegmentResponseBuilder.php | 59 + ...RetrieveDisputeEvidenceResponseBuilder.php | 59 + .../RetrieveDisputeResponseBuilder.php | 59 + .../RetrieveEmployeeResponseBuilder.php | 59 + .../RetrieveGiftCardFromGANRequestBuilder.php | 39 + ...RetrieveGiftCardFromGANResponseBuilder.php | 59 + ...etrieveGiftCardFromNonceRequestBuilder.php | 39 + ...trieveGiftCardFromNonceResponseBuilder.php | 59 + .../RetrieveGiftCardResponseBuilder.php | 59 + ...ieveInventoryAdjustmentResponseBuilder.php | 59 + ...RetrieveInventoryChangesRequestBuilder.php | 73 + ...etrieveInventoryChangesResponseBuilder.php | 69 + .../RetrieveInventoryCountRequestBuilder.php | 73 + .../RetrieveInventoryCountResponseBuilder.php | 69 + ...eInventoryPhysicalCountResponseBuilder.php | 59 + ...trieveInventoryTransferResponseBuilder.php | 59 + .../Builders/RetrieveJobResponseBuilder.php | 59 + ...eLocationBookingProfileResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 47 + ...stomAttributeDefinitionResponseBuilder.php | 59 + ...eLocationCustomAttributeRequestBuilder.php | 65 + ...LocationCustomAttributeResponseBuilder.php | 59 + .../RetrieveLocationResponseBuilder.php | 59 + ...etrieveLocationSettingsResponseBuilder.php | 59 + .../RetrieveLoyaltyAccountResponseBuilder.php | 59 + .../RetrieveLoyaltyProgramResponseBuilder.php | 59 + ...etrieveLoyaltyPromotionResponseBuilder.php | 59 + .../RetrieveLoyaltyRewardResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 47 + ...stomAttributeDefinitionResponseBuilder.php | 59 + ...eMerchantCustomAttributeRequestBuilder.php | 65 + ...MerchantCustomAttributeResponseBuilder.php | 59 + .../RetrieveMerchantResponseBuilder.php | 59 + ...etrieveMerchantSettingsResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 47 + ...stomAttributeDefinitionResponseBuilder.php | 59 + ...ieveOrderCustomAttributeRequestBuilder.php | 65 + ...eveOrderCustomAttributeResponseBuilder.php | 59 + .../Builders/RetrieveOrderResponseBuilder.php | 59 + .../RetrievePaymentLinkResponseBuilder.php | 59 + .../RetrieveSnippetResponseBuilder.php | 59 + .../RetrieveSubscriptionRequestBuilder.php | 55 + .../RetrieveSubscriptionResponseBuilder.php | 59 + ...eamMemberBookingProfileResponseBuilder.php | 59 + .../RetrieveTeamMemberResponseBuilder.php | 59 + .../RetrieveTokenStatusResponseBuilder.php | 88 + .../RetrieveTransactionResponseBuilder.php | 59 + .../RetrieveVendorResponseBuilder.php | 59 + .../RetrieveWageSettingResponseBuilder.php | 59 + ...ieveWebhookSubscriptionResponseBuilder.php | 59 + .../Builders/RevokeTokenRequestBuilder.php | 109 + .../Builders/RevokeTokenResponseBuilder.php | 58 + .../Models/Builders/RiskEvaluationBuilder.php | 57 + .../Builders/SaveCardOptionsBuilder.php | 67 + .../SearchAvailabilityFilterBuilder.php | 95 + .../SearchAvailabilityQueryBuilder.php | 40 + .../SearchAvailabilityRequestBuilder.php | 40 + .../SearchAvailabilityResponseBuilder.php | 59 + .../SearchCatalogItemsRequestBuilder.php | 138 + .../SearchCatalogItemsResponseBuilder.php | 79 + .../SearchCatalogObjectsRequestBuilder.php | 118 + .../SearchCatalogObjectsResponseBuilder.php | 89 + .../SearchCustomersRequestBuilder.php | 78 + .../SearchCustomersResponseBuilder.php | 79 + .../Builders/SearchEventsFilterBuilder.php | 102 + .../Builders/SearchEventsQueryBuilder.php | 59 + .../Builders/SearchEventsRequestBuilder.php | 68 + .../Builders/SearchEventsResponseBuilder.php | 80 + .../Builders/SearchEventsSortBuilder.php | 57 + .../Builders/SearchInvoicesRequestBuilder.php | 60 + .../SearchInvoicesResponseBuilder.php | 69 + .../SearchLoyaltyAccountsRequestBuilder.php | 68 + ...ountsRequestLoyaltyAccountQueryBuilder.php | 74 + .../SearchLoyaltyAccountsResponseBuilder.php | 69 + .../SearchLoyaltyEventsRequestBuilder.php | 68 + .../SearchLoyaltyEventsResponseBuilder.php | 69 + .../SearchLoyaltyRewardsRequestBuilder.php | 68 + ...ewardsRequestLoyaltyRewardQueryBuilder.php | 49 + .../SearchLoyaltyRewardsResponseBuilder.php | 69 + .../SearchOrdersCustomerFilterBuilder.php | 55 + .../SearchOrdersDateTimeFilterBuilder.php | 68 + .../Builders/SearchOrdersFilterBuilder.php | 92 + .../SearchOrdersFulfillmentFilterBuilder.php | 73 + .../Builders/SearchOrdersQueryBuilder.php | 59 + .../Builders/SearchOrdersRequestBuilder.php | 88 + .../Builders/SearchOrdersResponseBuilder.php | 80 + .../Builders/SearchOrdersSortBuilder.php | 49 + .../SearchOrdersSourceFilterBuilder.php | 55 + .../SearchOrdersStateFilterBuilder.php | 39 + .../Builders/SearchShiftsRequestBuilder.php | 68 + .../Builders/SearchShiftsResponseBuilder.php | 69 + .../SearchSubscriptionsFilterBuilder.php | 91 + .../SearchSubscriptionsQueryBuilder.php | 48 + .../SearchSubscriptionsRequestBuilder.php | 78 + .../SearchSubscriptionsResponseBuilder.php | 69 + .../SearchTeamMembersFilterBuilder.php | 83 + .../SearchTeamMembersQueryBuilder.php | 48 + .../SearchTeamMembersRequestBuilder.php | 68 + .../SearchTeamMembersResponseBuilder.php | 69 + .../SearchTerminalActionsRequestBuilder.php | 68 + .../SearchTerminalActionsResponseBuilder.php | 69 + .../SearchTerminalCheckoutsRequestBuilder.php | 68 + ...SearchTerminalCheckoutsResponseBuilder.php | 69 + .../SearchTerminalRefundsRequestBuilder.php | 68 + .../SearchTerminalRefundsResponseBuilder.php | 69 + .../Builders/SearchVendorsRequestBuilder.php | 69 + .../SearchVendorsRequestFilterBuilder.php | 73 + .../SearchVendorsRequestSortBuilder.php | 57 + .../Builders/SearchVendorsResponseBuilder.php | 69 + .../Models/Builders/SegmentFilterBuilder.php | 50 + .../Models/Builders/SelectOptionBuilder.php | 40 + .../Models/Builders/SelectOptionsBuilder.php | 52 + .../src/Models/Builders/ShiftBuilder.php | 203 + .../Models/Builders/ShiftFilterBuilder.php | 133 + .../src/Models/Builders/ShiftQueryBuilder.php | 59 + .../src/Models/Builders/ShiftSortBuilder.php | 57 + .../src/Models/Builders/ShiftWageBuilder.php | 94 + .../Models/Builders/ShiftWorkdayBuilder.php | 76 + .../Models/Builders/ShippingFeeBuilder.php | 58 + .../Models/Builders/SignatureImageBuilder.php | 57 + .../Builders/SignatureOptionsBuilder.php | 51 + .../src/Models/Builders/SiteBuilder.php | 121 + .../src/Models/Builders/SnippetBuilder.php | 79 + .../Builders/SnippetResponseBuilder.php | 59 + .../Builders/SourceApplicationBuilder.php | 83 + .../Builders/SquareAccountDetailsBuilder.php | 74 + .../StandardUnitDescriptionBuilder.php | 84 + .../StandardUnitDescriptionGroupBuilder.php | 74 + .../SubmitEvidenceResponseBuilder.php | 59 + .../Builders/SubscriptionActionBuilder.php | 130 + .../Models/Builders/SubscriptionBuilder.php | 263 + .../Builders/SubscriptionEventBuilder.php | 82 + .../Builders/SubscriptionEventInfoBuilder.php | 65 + .../Builders/SubscriptionPhaseBuilder.php | 115 + .../Builders/SubscriptionPricingBuilder.php | 76 + .../Builders/SubscriptionSourceBuilder.php | 55 + .../SubscriptionTestResultBuilder.php | 103 + .../Builders/SwapPlanRequestBuilder.php | 74 + .../Builders/SwapPlanResponseBuilder.php | 70 + .../src/Models/Builders/TaxIdsBuilder.php | 87 + .../TeamMemberAssignedLocationsBuilder.php | 65 + .../TeamMemberBookingProfileBuilder.php | 95 + .../src/Models/Builders/TeamMemberBuilder.php | 199 + .../Models/Builders/TeamMemberWageBuilder.php | 130 + .../TenderBankAccountDetailsBuilder.php | 47 + .../src/Models/Builders/TenderBuilder.php | 254 + .../TenderBuyNowPayLaterDetailsBuilder.php | 57 + .../Builders/TenderCardDetailsBuilder.php | 68 + .../Builders/TenderCashDetailsBuilder.php | 58 + .../TenderSquareAccountDetailsBuilder.php | 47 + .../Models/Builders/TerminalActionBuilder.php | 277 + .../Builders/TerminalActionQueryBuilder.php | 59 + .../TerminalActionQueryFilterBuilder.php | 94 + .../TerminalActionQuerySortBuilder.php | 47 + .../Builders/TerminalCheckoutBuilder.php | 289 + .../Builders/TerminalCheckoutQueryBuilder.php | 59 + .../TerminalCheckoutQueryFilterBuilder.php | 84 + .../TerminalCheckoutQuerySortBuilder.php | 47 + .../Models/Builders/TerminalRefundBuilder.php | 151 + .../Builders/TerminalRefundQueryBuilder.php | 59 + .../TerminalRefundQueryFilterBuilder.php | 84 + .../TerminalRefundQuerySortBuilder.php | 55 + .../TestWebhookSubscriptionRequestBuilder.php | 55 + ...TestWebhookSubscriptionResponseBuilder.php | 59 + .../src/Models/Builders/TimeRangeBuilder.php | 73 + .../Models/Builders/TipSettingsBuilder.php | 127 + .../Models/Builders/TransactionBuilder.php | 188 + ...linkCustomerFromGiftCardRequestBuilder.php | 39 + ...inkCustomerFromGiftCardResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 58 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../Builders/UpdateBookingRequestBuilder.php | 58 + .../Builders/UpdateBookingResponseBuilder.php | 59 + .../UpdateBreakTypeRequestBuilder.php | 40 + .../UpdateBreakTypeResponseBuilder.php | 59 + .../UpdateCatalogImageRequestBuilder.php | 39 + .../UpdateCatalogImageResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 58 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../UpdateCustomerGroupRequestBuilder.php | 40 + .../UpdateCustomerGroupResponseBuilder.php | 59 + .../Builders/UpdateCustomerRequestBuilder.php | 231 + .../UpdateCustomerResponseBuilder.php | 59 + .../Builders/UpdateInvoiceRequestBuilder.php | 76 + .../Builders/UpdateInvoiceResponseBuilder.php | 59 + .../UpdateItemModifierListsRequestBuilder.php | 75 + ...UpdateItemModifierListsResponseBuilder.php | 58 + .../UpdateItemTaxesRequestBuilder.php | 75 + .../UpdateItemTaxesResponseBuilder.php | 58 + .../Builders/UpdateJobRequestBuilder.php | 40 + .../Builders/UpdateJobResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 58 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../Builders/UpdateLocationRequestBuilder.php | 48 + .../UpdateLocationResponseBuilder.php | 59 + .../UpdateLocationSettingsRequestBuilder.php | 40 + .../UpdateLocationSettingsResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 58 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../UpdateMerchantSettingsRequestBuilder.php | 40 + .../UpdateMerchantSettingsResponseBuilder.php | 59 + ...ustomAttributeDefinitionRequestBuilder.php | 58 + ...stomAttributeDefinitionResponseBuilder.php | 59 + .../Builders/UpdateOrderRequestBuilder.php | 84 + .../Builders/UpdateOrderResponseBuilder.php | 59 + .../UpdatePaymentLinkRequestBuilder.php | 40 + .../UpdatePaymentLinkResponseBuilder.php | 59 + .../Builders/UpdatePaymentRequestBuilder.php | 50 + .../Builders/UpdatePaymentResponseBuilder.php | 59 + .../Builders/UpdateShiftRequestBuilder.php | 40 + .../Builders/UpdateShiftResponseBuilder.php | 59 + .../UpdateSubscriptionRequestBuilder.php | 48 + .../UpdateSubscriptionResponseBuilder.php | 59 + .../UpdateTeamMemberRequestBuilder.php | 48 + .../UpdateTeamMemberResponseBuilder.php | 59 + .../Builders/UpdateVendorRequestBuilder.php | 58 + .../Builders/UpdateVendorResponseBuilder.php | 59 + .../UpdateWageSettingRequestBuilder.php | 40 + .../UpdateWageSettingResponseBuilder.php | 59 + ...pdateWebhookSubscriptionRequestBuilder.php | 48 + ...dateWebhookSubscriptionResponseBuilder.php | 59 + ...SubscriptionSignatureKeyRequestBuilder.php | 55 + ...ubscriptionSignatureKeyResponseBuilder.php | 58 + .../UpdateWorkweekConfigRequestBuilder.php | 40 + .../UpdateWorkweekConfigResponseBuilder.php | 59 + ...rtBookingCustomAttributeRequestBuilder.php | 58 + ...tBookingCustomAttributeResponseBuilder.php | 59 + .../UpsertCatalogObjectRequestBuilder.php | 41 + .../UpsertCatalogObjectResponseBuilder.php | 70 + ...tCustomerCustomAttributeRequestBuilder.php | 58 + ...CustomerCustomAttributeResponseBuilder.php | 59 + ...tLocationCustomAttributeRequestBuilder.php | 58 + ...LocationCustomAttributeResponseBuilder.php | 59 + ...tMerchantCustomAttributeRequestBuilder.php | 58 + ...MerchantCustomAttributeResponseBuilder.php | 59 + ...sertOrderCustomAttributeRequestBuilder.php | 58 + ...ertOrderCustomAttributeResponseBuilder.php | 59 + .../Builders/UpsertSnippetRequestBuilder.php | 40 + .../Builders/UpsertSnippetResponseBuilder.php | 59 + .../src/Models/Builders/V1DeviceBuilder.php | 65 + .../Builders/V1ListOrdersRequestBuilder.php | 83 + .../Builders/V1ListOrdersResponseBuilder.php | 48 + .../src/Models/Builders/V1MoneyBuilder.php | 65 + .../src/Models/Builders/V1OrderBuilder.php | 404 + .../Builders/V1OrderHistoryEntryBuilder.php | 57 + .../Models/Builders/V1PhoneNumberBuilder.php | 40 + .../src/Models/Builders/V1TenderBuilder.php | 262 + .../Builders/V1UpdateOrderRequestBuilder.php | 111 + .../src/Models/Builders/VendorBuilder.php | 171 + .../Models/Builders/VendorContactBuilder.php | 121 + .../VoidTransactionResponseBuilder.php | 48 + .../Models/Builders/WageSettingBuilder.php | 122 + .../Builders/WebhookSubscriptionBuilder.php | 167 + .../Models/Builders/WorkweekConfigBuilder.php | 80 + .../src/Models/BulkCreateCustomerData.php | 435 + .../src/Models/BulkCreateCustomersRequest.php | 79 + .../Models/BulkCreateCustomersResponse.php | 100 + .../Models/BulkCreateTeamMembersRequest.php | 76 + .../Models/BulkCreateTeamMembersResponse.php | 90 + .../src/Models/BulkCreateVendorsRequest.php | 66 + .../src/Models/BulkCreateVendorsResponse.php | 97 + ...lkDeleteBookingCustomAttributesRequest.php | 70 + ...kDeleteBookingCustomAttributesResponse.php | 92 + .../src/Models/BulkDeleteCustomersRequest.php | 65 + .../Models/BulkDeleteCustomersResponse.php | 100 + ...kDeleteLocationCustomAttributesRequest.php | 68 + ...stLocationCustomAttributeDeleteRequest.php | 60 + ...DeleteLocationCustomAttributesResponse.php | 98 + ...eLocationCustomAttributeDeleteResponse.php | 85 + ...kDeleteMerchantCustomAttributesRequest.php | 68 + ...stMerchantCustomAttributeDeleteRequest.php | 60 + ...DeleteMerchantCustomAttributesResponse.php | 98 + ...eMerchantCustomAttributeDeleteResponse.php | 60 + ...BulkDeleteOrderCustomAttributesRequest.php | 64 + ...AttributesRequestDeleteCustomAttribute.php | 87 + ...ulkDeleteOrderCustomAttributesResponse.php | 95 + .../Models/BulkRetrieveBookingsRequest.php | 64 + .../Models/BulkRetrieveBookingsResponse.php | 89 + .../Models/BulkRetrieveCustomersRequest.php | 65 + .../Models/BulkRetrieveCustomersResponse.php | 100 + ...trieveTeamMemberBookingProfilesRequest.php | 65 + ...rieveTeamMemberBookingProfilesResponse.php | 90 + .../src/Models/BulkRetrieveVendorsRequest.php | 69 + .../Models/BulkRetrieveVendorsResponse.php | 93 + .../square/src/Models/BulkSwapPlanRequest.php | 121 + .../src/Models/BulkSwapPlanResponse.php | 84 + .../src/Models/BulkUpdateCustomerData.php | 470 + .../src/Models/BulkUpdateCustomersRequest.php | 81 + .../Models/BulkUpdateCustomersResponse.php | 100 + .../Models/BulkUpdateTeamMembersRequest.php | 80 + .../Models/BulkUpdateTeamMembersResponse.php | 90 + .../src/Models/BulkUpdateVendorsRequest.php | 68 + .../src/Models/BulkUpdateVendorsResponse.php | 95 + ...lkUpsertBookingCustomAttributesRequest.php | 70 + ...kUpsertBookingCustomAttributesResponse.php | 94 + ...kUpsertCustomerCustomAttributesRequest.php | 70 + ...stCustomerCustomAttributeUpsertRequest.php | 133 + ...UpsertCustomerCustomAttributesResponse.php | 94 + ...eCustomerCustomAttributeUpsertResponse.php | 112 + ...kUpsertLocationCustomAttributesRequest.php | 70 + ...stLocationCustomAttributeUpsertRequest.php | 133 + ...UpsertLocationCustomAttributesResponse.php | 94 + ...eLocationCustomAttributeUpsertResponse.php | 112 + ...kUpsertMerchantCustomAttributesRequest.php | 70 + ...stMerchantCustomAttributeUpsertRequest.php | 133 + ...UpsertMerchantCustomAttributesResponse.php | 94 + ...eMerchantCustomAttributeUpsertResponse.php | 112 + ...BulkUpsertOrderCustomAttributesRequest.php | 64 + ...AttributesRequestUpsertCustomAttribute.php | 130 + ...ulkUpsertOrderCustomAttributesResponse.php | 93 + .../Models/BusinessAppointmentSettings.php | 490 + ...sinessAppointmentSettingsAlignmentTime.php | 27 + ...AppointmentSettingsBookingLocationType.php | 23 + ...sAppointmentSettingsCancellationPolicy.php | 20 + ...SettingsMaxAppointmentsPerDayLimitType.php | 19 + .../src/Models/BusinessBookingProfile.php | 276 + .../BusinessBookingProfileBookingPolicy.php | 19 + ...ssBookingProfileCustomerTimezoneChoice.php | 19 + .../square/src/Models/BusinessHours.php | 69 + .../square/src/Models/BusinessHoursPeriod.php | 138 + .../src/Models/BuyNowPayLaterDetails.php | 118 + .../Models/CalculateLoyaltyPointsRequest.php | 174 + .../Models/CalculateLoyaltyPointsResponse.php | 112 + .../src/Models/CalculateOrderRequest.php | 119 + .../src/Models/CalculateOrderResponse.php | 90 + .../src/Models/CancelBookingRequest.php | 98 + .../src/Models/CancelBookingResponse.php | 84 + .../src/Models/CancelInvoiceRequest.php | 64 + .../src/Models/CancelInvoiceResponse.php | 87 + .../Models/CancelLoyaltyPromotionResponse.php | 90 + .../CancelPaymentByIdempotencyKeyRequest.php | 61 + .../CancelPaymentByIdempotencyKeyResponse.php | 60 + .../src/Models/CancelPaymentResponse.php | 83 + .../src/Models/CancelSubscriptionResponse.php | 119 + .../Models/CancelTerminalActionResponse.php | 80 + .../Models/CancelTerminalCheckoutResponse.php | 80 + .../Models/CancelTerminalRefundResponse.php | 82 + .../src/Models/CaptureTransactionResponse.php | 59 + .../square/square/src/Models/Card.php | 532 + .../square/square/src/Models/CardBrand.php | 25 + .../square/square/src/Models/CardCoBrand.php | 14 + .../square/src/Models/CardPaymentDetails.php | 611 + .../square/src/Models/CardPaymentTimeline.php | 137 + .../square/src/Models/CardPrepaidType.php | 14 + .../square/square/src/Models/CardType.php | 14 + .../square/src/Models/CashAppDetails.php | 132 + .../square/src/Models/CashDrawerDevice.php | 87 + .../square/src/Models/CashDrawerEventType.php | 66 + .../square/src/Models/CashDrawerShift.php | 691 + .../src/Models/CashDrawerShiftEvent.php | 206 + .../src/Models/CashDrawerShiftState.php | 24 + .../src/Models/CashDrawerShiftSummary.php | 412 + .../square/src/Models/CashPaymentDetails.php | 111 + .../src/Models/CatalogAvailabilityPeriod.php | 138 + .../square/src/Models/CatalogCategory.php | 422 + .../square/src/Models/CatalogCategoryType.php | 23 + .../CatalogCustomAttributeDefinition.php | 400 + ...CustomAttributeDefinitionAppVisibility.php | 26 + ...gCustomAttributeDefinitionNumberConfig.php | 86 + ...stomAttributeDefinitionSelectionConfig.php | 120 + ...electionConfigCustomAttributeSelection.php | 96 + ...tomAttributeDefinitionSellerVisibility.php | 23 + ...gCustomAttributeDefinitionStringConfig.php | 77 + .../CatalogCustomAttributeDefinitionType.php | 27 + .../Models/CatalogCustomAttributeValue.php | 306 + .../square/src/Models/CatalogDiscount.php | 322 + .../Models/CatalogDiscountModifyTaxBasis.php | 16 + .../square/src/Models/CatalogDiscountType.php | 29 + .../square/src/Models/CatalogEcomSeoData.php | 137 + .../square/src/Models/CatalogIdMapping.php | 111 + .../square/square/src/Models/CatalogImage.php | 202 + .../square/src/Models/CatalogInfoResponse.php | 103 + .../src/Models/CatalogInfoResponseLimits.php | 455 + .../square/square/src/Models/CatalogItem.php | 1107 ++ .../CatalogItemFoodAndBeverageDetails.php | 145 + ...oodAndBeverageDetailsDietaryPreference.php | 118 + ...aryPreferenceStandardDietaryPreference.php | 18 + ...ndBeverageDetailsDietaryPreferenceType.php | 19 + ...ogItemFoodAndBeverageDetailsIngredient.php | 118 + ...ageDetailsIngredientStandardIngredient.php | 25 + .../Models/CatalogItemModifierListInfo.php | 339 + .../square/src/Models/CatalogItemOption.php | 228 + .../src/Models/CatalogItemOptionForItem.php | 69 + .../src/Models/CatalogItemOptionValue.php | 223 + ...CatalogItemOptionValueForItemVariation.php | 104 + .../src/Models/CatalogItemProductType.php | 50 + .../src/Models/CatalogItemVariation.php | 891 + .../src/Models/CatalogMeasurementUnit.php | 119 + .../square/src/Models/CatalogModifier.php | 260 + .../square/src/Models/CatalogModifierList.php | 429 + .../CatalogModifierListModifierType.php | 19 + .../CatalogModifierListSelectionType.php | 21 + .../src/Models/CatalogModifierOverride.php | 96 + .../square/src/Models/CatalogObject.php | 1085 + .../square/src/Models/CatalogObjectBatch.php | 64 + .../src/Models/CatalogObjectCategory.php | 92 + .../src/Models/CatalogObjectReference.php | 103 + .../square/src/Models/CatalogObjectType.php | 133 + .../square/src/Models/CatalogPricingRule.php | 588 + .../square/src/Models/CatalogPricingType.php | 19 + .../square/src/Models/CatalogProductSet.php | 359 + .../square/square/src/Models/CatalogQuery.php | 321 + .../square/src/Models/CatalogQueryExact.php | 93 + ...QueryItemVariationsForItemOptionValues.php | 75 + .../CatalogQueryItemsForItemOptions.php | 75 + .../CatalogQueryItemsForModifierList.php | 64 + .../src/Models/CatalogQueryItemsForTax.php | 64 + .../square/src/Models/CatalogQueryPrefix.php | 87 + .../square/src/Models/CatalogQueryRange.php | 133 + .../square/src/Models/CatalogQuerySet.php | 96 + .../Models/CatalogQuerySortedAttribute.php | 127 + .../square/src/Models/CatalogQueryText.php | 65 + .../square/src/Models/CatalogQuickAmount.php | 173 + .../src/Models/CatalogQuickAmountType.php | 19 + .../Models/CatalogQuickAmountsSettings.php | 139 + .../CatalogQuickAmountsSettingsOption.php | 23 + .../src/Models/CatalogStockConversion.php | 145 + .../src/Models/CatalogSubscriptionPlan.php | 271 + .../CatalogSubscriptionPlanVariation.php | 249 + .../square/square/src/Models/CatalogTax.php | 280 + .../square/src/Models/CatalogTimePeriod.php | 107 + .../square/square/src/Models/CatalogV1Id.php | 104 + .../src/Models/CategoryPathToRootNode.php | 101 + .../Models/ChangeBillingAnchorDateRequest.php | 114 + .../ChangeBillingAnchorDateResponse.php | 119 + .../square/square/src/Models/ChangeTiming.php | 19 + .../square/src/Models/ChargeRequest.php | 662 + .../ChargeRequestAdditionalRecipient.php | 125 + .../square/src/Models/ChargeResponse.php | 94 + .../square/square/src/Models/Checkout.php | 445 + .../src/Models/CheckoutLocationSettings.php | 241 + .../CheckoutLocationSettingsBranding.php | 108 + ...outLocationSettingsBrandingButtonShape.php | 11 + ...koutLocationSettingsBrandingHeaderType.php | 11 + .../CheckoutLocationSettingsCoupons.php | 62 + .../Models/CheckoutLocationSettingsPolicy.php | 140 + .../CheckoutLocationSettingsTipping.php | 230 + .../src/Models/CheckoutMerchantSettings.php | 80 + ...CheckoutMerchantSettingsPaymentMethods.php | 126 + ...SettingsPaymentMethodsAfterpayClearpay.php | 104 + ...ethodsAfterpayClearpayEligibilityRange.php | 110 + ...antSettingsPaymentMethodsPaymentMethod.php | 65 + .../square/src/Models/CheckoutOptions.php | 413 + .../src/Models/CheckoutOptionsPaymentType.php | 43 + .../square/src/Models/ClearpayDetails.php | 65 + .../square/src/Models/CloneOrderRequest.php | 152 + .../square/src/Models/CloneOrderResponse.php | 94 + .../square/src/Models/CollectedData.php | 51 + .../src/Models/CompletePaymentRequest.php | 75 + .../src/Models/CompletePaymentResponse.php | 83 + .../square/square/src/Models/Component.php | 175 + .../src/Models/ComponentComponentType.php | 17 + .../src/Models/ConfirmationDecision.php | 51 + .../square/src/Models/ConfirmationOptions.php | 168 + .../square/square/src/Models/Coordinates.php | 101 + .../square/square/src/Models/Country.php | 1012 + ...ookingCustomAttributeDefinitionRequest.php | 91 + ...okingCustomAttributeDefinitionResponse.php | 88 + .../src/Models/CreateBookingRequest.php | 86 + .../src/Models/CreateBookingResponse.php | 84 + .../src/Models/CreateBreakTypeRequest.php | 87 + .../src/Models/CreateBreakTypeResponse.php | 87 + .../square/src/Models/CreateCardRequest.php | 164 + .../square/src/Models/CreateCardResponse.php | 89 + .../src/Models/CreateCatalogImageRequest.php | 187 + .../src/Models/CreateCatalogImageResponse.php | 106 + .../src/Models/CreateCheckoutRequest.php | 364 + .../src/Models/CreateCheckoutResponse.php | 86 + .../src/Models/CreateCustomerCardRequest.php | 162 + .../src/Models/CreateCustomerCardResponse.php | 88 + ...stomerCustomAttributeDefinitionRequest.php | 91 + ...tomerCustomAttributeDefinitionResponse.php | 88 + .../src/Models/CreateCustomerGroupRequest.php | 94 + .../Models/CreateCustomerGroupResponse.php | 92 + .../src/Models/CreateCustomerRequest.php | 382 + .../src/Models/CreateCustomerResponse.php | 87 + .../src/Models/CreateDeviceCodeRequest.php | 89 + .../src/Models/CreateDeviceCodeResponse.php | 78 + .../CreateDisputeEvidenceFileRequest.php | 114 + .../CreateDisputeEvidenceFileResponse.php | 81 + .../CreateDisputeEvidenceTextRequest.php | 113 + .../CreateDisputeEvidenceTextResponse.php | 81 + .../Models/CreateGiftCardActivityRequest.php | 92 + .../Models/CreateGiftCardActivityResponse.php | 90 + .../src/Models/CreateGiftCardRequest.php | 116 + .../src/Models/CreateGiftCardResponse.php | 85 + .../Models/CreateInvoiceAttachmentRequest.php | 83 + .../CreateInvoiceAttachmentResponse.php | 83 + .../src/Models/CreateInvoiceRequest.php | 99 + .../src/Models/CreateInvoiceResponse.php | 87 + .../square/src/Models/CreateJobRequest.php | 94 + .../square/src/Models/CreateJobResponse.php | 88 + ...cationCustomAttributeDefinitionRequest.php | 91 + ...ationCustomAttributeDefinitionResponse.php | 88 + .../src/Models/CreateLocationRequest.php | 54 + .../src/Models/CreateLocationResponse.php | 85 + .../Models/CreateLoyaltyAccountRequest.php | 92 + .../Models/CreateLoyaltyAccountResponse.php | 87 + .../Models/CreateLoyaltyPromotionRequest.php | 94 + .../Models/CreateLoyaltyPromotionResponse.php | 90 + .../src/Models/CreateLoyaltyRewardRequest.php | 94 + .../Models/CreateLoyaltyRewardResponse.php | 89 + ...rchantCustomAttributeDefinitionRequest.php | 91 + ...chantCustomAttributeDefinitionResponse.php | 88 + .../CreateMobileAuthorizationCodeRequest.php | 55 + .../CreateMobileAuthorizationCodeResponse.php | 113 + ...eOrderCustomAttributeDefinitionRequest.php | 91 + ...OrderCustomAttributeDefinitionResponse.php | 85 + .../square/src/Models/CreateOrderRequest.php | 102 + .../square/src/Models/CreateOrderResponse.php | 96 + .../src/Models/CreatePaymentLinkRequest.php | 233 + .../src/Models/CreatePaymentLinkResponse.php | 101 + .../src/Models/CreatePaymentRequest.php | 864 + .../src/Models/CreatePaymentResponse.php | 86 + .../square/src/Models/CreateRefundRequest.php | 180 + .../src/Models/CreateRefundResponse.php | 86 + .../square/src/Models/CreateShiftRequest.php | 89 + .../square/src/Models/CreateShiftResponse.php | 89 + .../src/Models/CreateSubscriptionRequest.php | 436 + .../src/Models/CreateSubscriptionResponse.php | 90 + .../src/Models/CreateTeamMemberRequest.php | 89 + .../src/Models/CreateTeamMemberResponse.php | 84 + .../Models/CreateTerminalActionRequest.php | 93 + .../Models/CreateTerminalActionResponse.php | 80 + .../Models/CreateTerminalCheckoutRequest.php | 91 + .../Models/CreateTerminalCheckoutResponse.php | 80 + .../Models/CreateTerminalRefundRequest.php | 92 + .../Models/CreateTerminalRefundResponse.php | 82 + .../square/src/Models/CreateVendorRequest.php | 97 + .../src/Models/CreateVendorResponse.php | 83 + .../CreateWebhookSubscriptionRequest.php | 89 + .../CreateWebhookSubscriptionResponse.php | 91 + .../square/square/src/Models/Currency.php | 744 + .../square/src/Models/CustomAttribute.php | 301 + .../src/Models/CustomAttributeDefinition.php | 376 + .../CustomAttributeDefinitionVisibility.php | 30 + .../src/Models/CustomAttributeFilter.php | 279 + .../square/square/src/Models/CustomField.php | 64 + .../square/square/src/Models/Customer.php | 725 + .../src/Models/CustomerAddressFilter.php | 87 + .../src/Models/CustomerCreationSource.php | 107 + .../Models/CustomerCreationSourceFilter.php | 102 + .../Models/CustomerCustomAttributeFilter.php | 130 + .../CustomerCustomAttributeFilterValue.php | 274 + .../Models/CustomerCustomAttributeFilters.php | 83 + .../square/src/Models/CustomerDetails.php | 104 + .../square/src/Models/CustomerFilter.php | 315 + .../square/src/Models/CustomerGroup.php | 138 + .../src/Models/CustomerInclusionExclusion.php | 22 + .../square/src/Models/CustomerPreferences.php | 71 + .../square/src/Models/CustomerQuery.php | 84 + .../square/src/Models/CustomerSegment.php | 138 + .../square/square/src/Models/CustomerSort.php | 80 + .../square/src/Models/CustomerSortField.php | 23 + .../square/src/Models/CustomerTaxIds.php | 71 + .../square/src/Models/CustomerTextFilter.php | 112 + .../src/Models/DataCollectionOptions.php | 134 + .../Models/DataCollectionOptionsInputType.php | 21 + .../square/square/src/Models/DateRange.php | 114 + .../square/square/src/Models/DayOfWeek.php | 39 + ...okingCustomAttributeDefinitionResponse.php | 62 + .../DeleteBookingCustomAttributeResponse.php | 60 + .../src/Models/DeleteBreakTypeResponse.php | 59 + .../Models/DeleteCatalogObjectResponse.php | 117 + .../src/Models/DeleteCustomerCardResponse.php | 59 + ...tomerCustomAttributeDefinitionResponse.php | 58 + .../DeleteCustomerCustomAttributeResponse.php | 60 + .../Models/DeleteCustomerGroupResponse.php | 59 + .../src/Models/DeleteCustomerRequest.php | 65 + .../src/Models/DeleteCustomerResponse.php | 59 + .../Models/DeleteDisputeEvidenceResponse.php | 58 + .../DeleteInvoiceAttachmentResponse.php | 58 + .../src/Models/DeleteInvoiceRequest.php | 58 + .../src/Models/DeleteInvoiceResponse.php | 58 + ...ationCustomAttributeDefinitionResponse.php | 58 + .../DeleteLocationCustomAttributeResponse.php | 60 + .../Models/DeleteLoyaltyRewardResponse.php | 58 + ...chantCustomAttributeDefinitionResponse.php | 58 + .../DeleteMerchantCustomAttributeResponse.php | 60 + ...OrderCustomAttributeDefinitionResponse.php | 58 + .../DeleteOrderCustomAttributeResponse.php | 58 + .../src/Models/DeletePaymentLinkResponse.php | 105 + .../square/src/Models/DeleteShiftResponse.php | 59 + .../src/Models/DeleteSnippetResponse.php | 58 + .../DeleteSubscriptionActionResponse.php | 91 + .../DeleteWebhookSubscriptionResponse.php | 60 + ...ecatedCreateDisputeEvidenceFileRequest.php | 126 + ...catedCreateDisputeEvidenceFileResponse.php | 81 + ...ecatedCreateDisputeEvidenceTextRequest.php | 113 + ...catedCreateDisputeEvidenceTextResponse.php | 81 + .../square/square/src/Models/Destination.php | 79 + .../square/src/Models/DestinationDetails.php | 102 + .../DestinationDetailsCardRefundDetails.php | 128 + .../DestinationDetailsCashRefundDetails.php | 109 + ...estinationDetailsExternalRefundDetails.php | 150 + .../square/src/Models/DestinationType.php | 24 + .../square/square/src/Models/Device.php | 145 + .../square/src/Models/DeviceAttributes.php | 279 + .../src/Models/DeviceAttributesDeviceType.php | 12 + .../src/Models/DeviceCheckoutOptions.php | 195 + .../square/square/src/Models/DeviceCode.php | 319 + .../square/src/Models/DeviceCodeStatus.php | 27 + ...viceComponentDetailsApplicationDetails.php | 146 + .../DeviceComponentDetailsBatteryDetails.php | 87 + ...eviceComponentDetailsCardReaderDetails.php | 51 + .../DeviceComponentDetailsEthernetDetails.php | 98 + .../DeviceComponentDetailsExternalPower.php | 27 + .../DeviceComponentDetailsMeasurement.php | 62 + ...omponentDetailsNetworkInterfaceDetails.php | 62 + .../DeviceComponentDetailsWiFiDetails.php | 198 + .../square/src/Models/DeviceDetails.php | 137 + .../square/src/Models/DeviceMetadata.php | 470 + .../square/square/src/Models/DeviceStatus.php | 49 + .../src/Models/DeviceStatusCategory.php | 11 + .../src/Models/DigitalWalletDetails.php | 132 + .../square/src/Models/DisableCardResponse.php | 89 + .../src/Models/DisableEventsResponse.php | 62 + .../Models/DismissTerminalActionResponse.php | 80 + .../DismissTerminalCheckoutResponse.php | 80 + .../Models/DismissTerminalRefundResponse.php | 82 + .../square/square/src/Models/Dispute.php | 528 + .../square/src/Models/DisputeEvidence.php | 245 + .../square/src/Models/DisputeEvidenceFile.php | 104 + .../square/src/Models/DisputeEvidenceType.php | 134 + .../square/src/Models/DisputeReason.php | 72 + .../square/square/src/Models/DisputeState.php | 43 + .../square/src/Models/DisputedPayment.php | 65 + .../square/src/Models/EcomVisibility.php | 27 + .../square/square/src/Models/Employee.php | 361 + .../square/src/Models/EmployeeStatus.php | 21 + .../square/square/src/Models/EmployeeWage.php | 165 + .../src/Models/EnableEventsResponse.php | 62 + .../square/square/src/Models/Error.php | 145 + .../square/src/Models/ErrorCategory.php | 55 + .../square/square/src/Models/ErrorCode.php | 687 + .../square/square/src/Models/Event.php | 218 + .../square/square/src/Models/EventData.php | 167 + .../square/src/Models/EventMetadata.php | 104 + .../square/src/Models/EventTypeMetadata.php | 104 + .../square/src/Models/ExcludeStrategy.php | 28 + .../src/Models/ExternalPaymentDetails.php | 188 + .../square/square/src/Models/FilterValue.php | 156 + .../square/src/Models/FloatNumberRange.php | 101 + .../square/square/src/Models/Fulfillment.php | 360 + .../src/Models/FulfillmentDeliveryDetails.php | 878 + ...FulfillmentDeliveryDetailsScheduleType.php | 20 + .../Models/FulfillmentFulfillmentEntry.php | 223 + ...fillmentFulfillmentLineItemApplication.php | 20 + .../src/Models/FulfillmentPickupDetails.php | 647 + ...mentPickupDetailsCurbsidePickupDetails.php | 110 + .../FulfillmentPickupDetailsScheduleType.php | 20 + .../src/Models/FulfillmentRecipient.php | 250 + .../src/Models/FulfillmentShipmentDetails.php | 546 + .../square/src/Models/FulfillmentState.php | 36 + .../square/src/Models/FulfillmentType.php | 23 + .../Models/GetBankAccountByV1IdResponse.php | 87 + .../src/Models/GetBankAccountResponse.php | 87 + .../src/Models/GetBreakTypeResponse.php | 87 + .../src/Models/GetDeviceCodeResponse.php | 78 + .../square/src/Models/GetDeviceResponse.php | 78 + .../src/Models/GetEmployeeWageResponse.php | 89 + .../square/src/Models/GetInvoiceResponse.php | 87 + .../src/Models/GetPaymentRefundResponse.php | 88 + .../square/src/Models/GetPaymentResponse.php | 83 + .../square/src/Models/GetPayoutResponse.php | 82 + .../square/src/Models/GetShiftResponse.php | 89 + .../src/Models/GetTeamMemberWageResponse.php | 87 + .../src/Models/GetTerminalActionResponse.php | 80 + .../Models/GetTerminalCheckoutResponse.php | 80 + .../src/Models/GetTerminalRefundResponse.php | 82 + .../square/square/src/Models/GiftCard.php | 275 + .../square/src/Models/GiftCardActivity.php | 637 + .../src/Models/GiftCardActivityActivate.php | 271 + .../GiftCardActivityAdjustDecrement.php | 98 + .../GiftCardActivityAdjustDecrementReason.php | 29 + .../GiftCardActivityAdjustIncrement.php | 98 + .../GiftCardActivityAdjustIncrementReason.php | 24 + .../src/Models/GiftCardActivityBlock.php | 52 + .../Models/GiftCardActivityBlockReason.php | 15 + .../Models/GiftCardActivityClearBalance.php | 60 + .../GiftCardActivityClearBalanceReason.php | 26 + .../src/Models/GiftCardActivityDeactivate.php | 60 + .../GiftCardActivityDeactivateReason.php | 29 + .../src/Models/GiftCardActivityImport.php | 74 + .../Models/GiftCardActivityImportReversal.php | 72 + .../src/Models/GiftCardActivityLoad.php | 280 + .../src/Models/GiftCardActivityRedeem.php | 175 + .../Models/GiftCardActivityRedeemStatus.php | 30 + .../src/Models/GiftCardActivityRefund.php | 182 + .../GiftCardActivityTransferBalanceFrom.php | 99 + .../GiftCardActivityTransferBalanceTo.php | 98 + .../src/Models/GiftCardActivityType.php | 88 + .../src/Models/GiftCardActivityUnblock.php | 52 + .../Models/GiftCardActivityUnblockReason.php | 15 + ...GiftCardActivityUnlinkedActivityRefund.php | 134 + .../square/src/Models/GiftCardGANSource.php | 23 + .../square/src/Models/GiftCardStatus.php | 30 + .../square/square/src/Models/GiftCardType.php | 19 + .../square/src/Models/InventoryAdjustment.php | 666 + .../src/Models/InventoryAdjustmentGroup.php | 128 + .../square/src/Models/InventoryAlertType.php | 20 + .../square/src/Models/InventoryChange.php | 195 + .../square/src/Models/InventoryChangeType.php | 24 + .../square/src/Models/InventoryCount.php | 288 + .../src/Models/InventoryPhysicalCount.php | 467 + .../square/src/Models/InventoryState.php | 95 + .../square/src/Models/InventoryTransfer.php | 503 + .../square/square/src/Models/Invoice.php | 971 + .../Models/InvoiceAcceptedPaymentMethods.php | 252 + .../square/src/Models/InvoiceAttachment.php | 210 + .../Models/InvoiceAutomaticPaymentSource.php | 39 + .../square/src/Models/InvoiceCustomField.php | 134 + .../Models/InvoiceCustomFieldPlacement.php | 20 + .../src/Models/InvoiceDeliveryMethod.php | 30 + .../square/src/Models/InvoiceFilter.php | 112 + .../src/Models/InvoicePaymentReminder.php | 186 + .../Models/InvoicePaymentReminderStatus.php | 32 + .../src/Models/InvoicePaymentRequest.php | 564 + .../square/square/src/Models/InvoiceQuery.php | 85 + .../square/src/Models/InvoiceRecipient.php | 261 + .../src/Models/InvoiceRecipientTaxIds.php | 57 + .../src/Models/InvoiceRequestMethod.php | 71 + .../square/src/Models/InvoiceRequestType.php | 39 + .../square/square/src/Models/InvoiceSort.php | 77 + .../square/src/Models/InvoiceSortField.php | 19 + .../square/src/Models/InvoiceStatus.php | 60 + .../Models/ItemVariationLocationOverrides.php | 314 + .../square/square/src/Models/Job.php | 217 + .../square/src/Models/JobAssignment.php | 244 + .../src/Models/JobAssignmentPayType.php | 23 + .../Models/LinkCustomerToGiftCardRequest.php | 60 + .../Models/LinkCustomerToGiftCardResponse.php | 84 + .../src/Models/ListBankAccountsRequest.php | 162 + .../src/Models/ListBankAccountsResponse.php | 122 + ...okingCustomAttributeDefinitionsRequest.php | 124 + ...kingCustomAttributeDefinitionsResponse.php | 125 + .../ListBookingCustomAttributesRequest.php | 171 + .../ListBookingCustomAttributesResponse.php | 127 + .../square/src/Models/ListBookingsRequest.php | 296 + .../src/Models/ListBookingsResponse.php | 111 + .../src/Models/ListBreakTypesRequest.php | 143 + .../src/Models/ListBreakTypesResponse.php | 116 + .../square/src/Models/ListCardsRequest.php | 217 + .../square/src/Models/ListCardsResponse.php | 124 + .../ListCashDrawerShiftEventsRequest.php | 132 + .../ListCashDrawerShiftEventsResponse.php | 113 + .../Models/ListCashDrawerShiftsRequest.php | 229 + .../Models/ListCashDrawerShiftsResponse.php | 113 + .../square/src/Models/ListCatalogRequest.php | 197 + .../square/src/Models/ListCatalogResponse.php | 113 + ...tomerCustomAttributeDefinitionsRequest.php | 124 + ...omerCustomAttributeDefinitionsResponse.php | 125 + .../ListCustomerCustomAttributesRequest.php | 171 + .../ListCustomerCustomAttributesResponse.php | 127 + .../src/Models/ListCustomerGroupsRequest.php | 132 + .../src/Models/ListCustomerGroupsResponse.php | 125 + .../Models/ListCustomerSegmentsRequest.php | 131 + .../Models/ListCustomerSegmentsResponse.php | 125 + .../src/Models/ListCustomersRequest.php | 224 + .../src/Models/ListCustomersResponse.php | 164 + .../src/Models/ListDeviceCodesRequest.php | 182 + .../src/Models/ListDeviceCodesResponse.php | 119 + .../square/src/Models/ListDevicesRequest.php | 168 + .../square/src/Models/ListDevicesResponse.php | 115 + .../src/Models/ListDisputeEvidenceRequest.php | 74 + .../Models/ListDisputeEvidenceResponse.php | 116 + .../square/src/Models/ListDisputesRequest.php | 156 + .../src/Models/ListDisputesResponse.php | 116 + .../src/Models/ListEmployeeWagesRequest.php | 140 + .../src/Models/ListEmployeeWagesResponse.php | 115 + .../src/Models/ListEmployeesRequest.php | 160 + .../src/Models/ListEmployeesResponse.php | 107 + .../src/Models/ListEventTypesRequest.php | 68 + .../src/Models/ListEventTypesResponse.php | 122 + .../Models/ListGiftCardActivitiesRequest.php | 366 + .../Models/ListGiftCardActivitiesResponse.php | 121 + .../src/Models/ListGiftCardsRequest.php | 243 + .../src/Models/ListGiftCardsResponse.php | 121 + .../square/src/Models/ListInvoicesRequest.php | 147 + .../src/Models/ListInvoicesResponse.php | 120 + .../square/src/Models/ListJobsRequest.php | 71 + .../square/src/Models/ListJobsResponse.php | 117 + .../ListLocationBookingProfilesRequest.php | 101 + .../ListLocationBookingProfilesResponse.php | 111 + ...ationCustomAttributeDefinitionsRequest.php | 151 + ...tionCustomAttributeDefinitionsResponse.php | 125 + .../ListLocationCustomAttributesRequest.php | 198 + .../ListLocationCustomAttributesResponse.php | 125 + .../src/Models/ListLocationsResponse.php | 90 + .../Models/ListLoyaltyProgramsResponse.php | 87 + .../Models/ListLoyaltyPromotionsRequest.php | 144 + .../Models/ListLoyaltyPromotionsResponse.php | 121 + ...chantCustomAttributeDefinitionsRequest.php | 151 + ...hantCustomAttributeDefinitionsResponse.php | 125 + .../ListMerchantCustomAttributesRequest.php | 198 + .../ListMerchantCustomAttributesResponse.php | 125 + .../src/Models/ListMerchantsRequest.php | 65 + .../src/Models/ListMerchantsResponse.php | 112 + ...OrderCustomAttributeDefinitionsRequest.php | 152 + ...rderCustomAttributeDefinitionsResponse.php | 128 + .../ListOrderCustomAttributesRequest.php | 200 + .../ListOrderCustomAttributesResponse.php | 122 + .../src/Models/ListPaymentLinksRequest.php | 122 + .../src/Models/ListPaymentLinksResponse.php | 115 + .../src/Models/ListPaymentRefundsRequest.php | 401 + .../src/Models/ListPaymentRefundsResponse.php | 122 + .../square/src/Models/ListPaymentsRequest.php | 649 + .../src/Models/ListPaymentsResponse.php | 120 + .../src/Models/ListPayoutEntriesRequest.php | 150 + .../src/Models/ListPayoutEntriesResponse.php | 116 + .../square/src/Models/ListPayoutsRequest.php | 295 + .../square/src/Models/ListPayoutsResponse.php | 116 + .../square/src/Models/ListRefundsRequest.php | 207 + .../square/src/Models/ListRefundsResponse.php | 125 + .../square/src/Models/ListSitesResponse.php | 87 + .../Models/ListSubscriptionEventsRequest.php | 121 + .../Models/ListSubscriptionEventsResponse.php | 125 + .../ListTeamMemberBookingProfilesRequest.php | 176 + .../ListTeamMemberBookingProfilesResponse.php | 119 + .../src/Models/ListTeamMemberWagesRequest.php | 143 + .../Models/ListTeamMemberWagesResponse.php | 115 + .../src/Models/ListTransactionsRequest.php | 207 + .../src/Models/ListTransactionsResponse.php | 125 + .../Models/ListWebhookEventTypesRequest.php | 68 + .../Models/ListWebhookEventTypesResponse.php | 122 + .../ListWebhookSubscriptionsRequest.php | 189 + .../ListWebhookSubscriptionsResponse.php | 125 + .../src/Models/ListWorkweekConfigsRequest.php | 101 + .../Models/ListWorkweekConfigsResponse.php | 116 + .../square/square/src/Models/Location.php | 904 + .../src/Models/LocationBookingProfile.php | 138 + .../square/src/Models/LocationCapability.php | 23 + .../square/src/Models/LocationStatus.php | 20 + .../square/square/src/Models/LocationType.php | 19 + .../square/src/Models/LoyaltyAccount.php | 387 + .../LoyaltyAccountExpiringPointDeadline.php | 86 + .../src/Models/LoyaltyAccountMapping.php | 119 + .../src/Models/LoyaltyAccountMappingType.php | 15 + .../square/square/src/Models/LoyaltyEvent.php | 391 + .../Models/LoyaltyEventAccumulatePoints.php | 129 + .../LoyaltyEventAccumulatePromotionPoints.php | 138 + .../src/Models/LoyaltyEventAdjustPoints.php | 121 + .../src/Models/LoyaltyEventCreateReward.php | 113 + .../src/Models/LoyaltyEventDateTimeFilter.php | 68 + .../src/Models/LoyaltyEventDeleteReward.php | 113 + .../src/Models/LoyaltyEventExpirePoints.php | 86 + .../square/src/Models/LoyaltyEventFilter.php | 155 + .../src/Models/LoyaltyEventLocationFilter.php | 68 + .../LoyaltyEventLoyaltyAccountFilter.php | 60 + .../src/Models/LoyaltyEventOrderFilter.php | 60 + .../square/src/Models/LoyaltyEventOther.php | 86 + .../square/src/Models/LoyaltyEventQuery.php | 56 + .../src/Models/LoyaltyEventRedeemReward.php | 114 + .../square/src/Models/LoyaltyEventSource.php | 19 + .../square/src/Models/LoyaltyEventType.php | 46 + .../src/Models/LoyaltyEventTypeFilter.php | 70 + .../square/src/Models/LoyaltyProgram.php | 315 + .../src/Models/LoyaltyProgramAccrualRule.php | 200 + .../LoyaltyProgramAccrualRuleCategoryData.php | 62 + ...ltyProgramAccrualRuleItemVariationData.php | 64 + .../LoyaltyProgramAccrualRuleSpendData.php | 202 + .../LoyaltyProgramAccrualRuleTaxMode.php | 22 + .../Models/LoyaltyProgramAccrualRuleType.php | 31 + .../LoyaltyProgramAccrualRuleVisitData.php | 103 + .../Models/LoyaltyProgramExpirationPolicy.php | 66 + .../Models/LoyaltyProgramRewardDefinition.php | 245 + .../LoyaltyProgramRewardDefinitionScope.php | 26 + .../LoyaltyProgramRewardDefinitionType.php | 22 + .../src/Models/LoyaltyProgramRewardTier.php | 198 + .../src/Models/LoyaltyProgramStatus.php | 20 + .../src/Models/LoyaltyProgramTerminology.php | 86 + .../square/src/Models/LoyaltyPromotion.php | 472 + .../LoyaltyPromotionAvailableTimeData.php | 141 + .../src/Models/LoyaltyPromotionIncentive.php | 118 + ...tyPromotionIncentivePointsAdditionData.php | 67 + ...PromotionIncentivePointsMultiplierData.php | 183 + .../Models/LoyaltyPromotionIncentiveType.php | 22 + .../src/Models/LoyaltyPromotionStatus.php | 30 + .../Models/LoyaltyPromotionTriggerLimit.php | 96 + .../LoyaltyPromotionTriggerLimitInterval.php | 26 + .../square/src/Models/LoyaltyReward.php | 277 + .../square/src/Models/LoyaltyRewardStatus.php | 23 + .../square/square/src/Models/MBreak.php | 234 + .../square/src/Models/MeasurementUnit.php | 231 + .../square/src/Models/MeasurementUnitArea.php | 43 + .../src/Models/MeasurementUnitCustom.php | 88 + .../src/Models/MeasurementUnitGeneric.php | 12 + .../src/Models/MeasurementUnitLength.php | 43 + .../square/src/Models/MeasurementUnitTime.php | 31 + .../src/Models/MeasurementUnitUnitType.php | 36 + .../src/Models/MeasurementUnitVolume.php | 55 + .../src/Models/MeasurementUnitWeight.php | 35 + .../square/square/src/Models/Merchant.php | 283 + .../square/src/Models/MerchantStatus.php | 17 + .../src/Models/ModifierLocationOverrides.php | 135 + .../square/square/src/Models/Money.php | 107 + .../square/src/Models/ObtainTokenRequest.php | 466 + .../square/src/Models/ObtainTokenResponse.php | 329 + .../src/Models/OfflinePaymentDetails.php | 54 + .../square/square/src/Models/Order.php | 1189 ++ .../square/square/src/Models/OrderCreated.php | 183 + .../square/src/Models/OrderCreatedObject.php | 49 + .../square/square/src/Models/OrderEntry.php | 137 + .../square/src/Models/OrderFulfillment.php | 341 + .../OrderFulfillmentDeliveryDetails.php | 873 + ...FulfillmentDeliveryDetailsScheduleType.php | 20 + .../OrderFulfillmentFulfillmentEntry.php | 206 + ...fillmentFulfillmentLineItemApplication.php | 20 + .../Models/OrderFulfillmentPickupDetails.php | 644 + ...mentPickupDetailsCurbsidePickupDetails.php | 110 + ...erFulfillmentPickupDetailsScheduleType.php | 20 + .../src/Models/OrderFulfillmentRecipient.php | 238 + .../OrderFulfillmentShipmentDetails.php | 546 + .../src/Models/OrderFulfillmentState.php | 36 + .../src/Models/OrderFulfillmentType.php | 23 + .../src/Models/OrderFulfillmentUpdated.php | 248 + .../Models/OrderFulfillmentUpdatedObject.php | 49 + .../Models/OrderFulfillmentUpdatedUpdate.php | 115 + .../square/src/Models/OrderLineItem.php | 969 + .../Models/OrderLineItemAppliedDiscount.php | 146 + .../OrderLineItemAppliedServiceCharge.php | 138 + .../src/Models/OrderLineItemAppliedTax.php | 146 + .../src/Models/OrderLineItemDiscount.php | 506 + .../src/Models/OrderLineItemDiscountScope.php | 25 + .../src/Models/OrderLineItemDiscountType.php | 39 + .../src/Models/OrderLineItemItemType.php | 25 + .../src/Models/OrderLineItemModifier.php | 392 + .../Models/OrderLineItemPricingBlocklists.php | 124 + ...neItemPricingBlocklistsBlockedDiscount.php | 147 + ...derLineItemPricingBlocklistsBlockedTax.php | 147 + .../square/src/Models/OrderLineItemTax.php | 428 + .../src/Models/OrderLineItemTaxScope.php | 25 + .../src/Models/OrderLineItemTaxType.php | 30 + .../square/src/Models/OrderMoneyAmounts.php | 214 + .../square/src/Models/OrderPricingOptions.php | 109 + .../square/src/Models/OrderQuantityUnit.php | 197 + .../square/square/src/Models/OrderReturn.php | 345 + .../square/src/Models/OrderReturnDiscount.php | 383 + .../square/src/Models/OrderReturnLineItem.php | 818 + .../Models/OrderReturnLineItemModifier.php | 340 + .../src/Models/OrderReturnServiceCharge.php | 589 + .../square/src/Models/OrderReturnTax.php | 339 + .../square/src/Models/OrderReturnTip.php | 174 + .../square/square/src/Models/OrderReward.php | 87 + .../src/Models/OrderRoundingAdjustment.php | 140 + .../square/src/Models/OrderServiceCharge.php | 682 + .../OrderServiceChargeCalculationPhase.php | 37 + .../src/Models/OrderServiceChargeScope.php | 26 + .../OrderServiceChargeTreatmentType.php | 14 + .../src/Models/OrderServiceChargeType.php | 10 + .../square/square/src/Models/OrderSource.php | 68 + .../square/square/src/Models/OrderState.php | 30 + .../square/square/src/Models/OrderUpdated.php | 208 + .../square/src/Models/OrderUpdatedObject.php | 49 + .../square/src/Models/PaginationCursor.php | 69 + .../src/Models/PauseSubscriptionRequest.php | 223 + .../src/Models/PauseSubscriptionResponse.php | 119 + .../square/src/Models/PayOrderRequest.php | 150 + .../square/src/Models/PayOrderResponse.php | 94 + .../square/square/src/Models/Payment.php | 1381 ++ ...ymentBalanceActivityAppFeeRefundDetail.php | 134 + ...mentBalanceActivityAppFeeRevenueDetail.php | 98 + ...tBalanceActivityAutomaticSavingsDetail.php | 98 + ...ActivityAutomaticSavingsReversedDetail.php | 98 + .../PaymentBalanceActivityChargeDetail.php | 62 + ...PaymentBalanceActivityDepositFeeDetail.php | 62 + ...alanceActivityDepositFeeReversedDetail.php | 62 + .../PaymentBalanceActivityDisputeDetail.php | 98 + .../PaymentBalanceActivityFeeDetail.php | 71 + ...entBalanceActivityFreeProcessingDetail.php | 62 + ...entBalanceActivityHoldAdjustmentDetail.php | 62 + ...aymentBalanceActivityOpenDisputeDetail.php | 98 + ...ntBalanceActivityOtherAdjustmentDetail.php | 62 + .../PaymentBalanceActivityOtherDetail.php | 62 + .../PaymentBalanceActivityRefundDetail.php | 98 + ...BalanceActivityReleaseAdjustmentDetail.php | 62 + ...aymentBalanceActivityReserveHoldDetail.php | 62 + ...entBalanceActivityReserveReleaseDetail.php | 62 + ...anceActivitySquareCapitalPaymentDetail.php | 62 + ...vitySquareCapitalReversedPaymentDetail.php | 62 + ...nceActivitySquarePayrollTransferDetail.php | 62 + ...itySquarePayrollTransferReversedDetail.php | 62 + .../PaymentBalanceActivityTaxOnFeeDetail.php | 98 + ...mentBalanceActivityThirdPartyFeeDetail.php | 62 + ...lanceActivityThirdPartyFeeRefundDetail.php | 98 + .../square/square/src/Models/PaymentLink.php | 341 + .../Models/PaymentLinkRelatedResources.php | 106 + .../square/src/Models/PaymentOptions.php | 239 + .../src/Models/PaymentOptionsDelayAction.php | 22 + .../square/src/Models/PaymentRefund.php | 563 + .../square/src/Models/PaymentSortField.php | 11 + .../square/square/src/Models/Payout.php | 405 + .../square/square/src/Models/PayoutEntry.php | 834 + .../square/square/src/Models/PayoutFee.php | 127 + .../square/src/Models/PayoutFeeType.php | 19 + .../square/square/src/Models/PayoutStatus.php | 23 + .../square/square/src/Models/PayoutType.php | 23 + .../square/square/src/Models/Phase.php | 173 + .../square/square/src/Models/PhaseInput.php | 96 + .../square/src/Models/PrePopulatedData.php | 133 + .../square/src/Models/ProcessingFee.php | 138 + .../square/square/src/Models/Product.php | 51 + .../square/square/src/Models/ProductType.php | 9 + .../src/Models/PublishInvoiceRequest.php | 113 + .../src/Models/PublishInvoiceResponse.php | 87 + .../square/src/Models/QrCodeOptions.php | 114 + .../square/src/Models/QuantityRatio.php | 110 + .../square/square/src/Models/QuickPay.php | 126 + .../square/square/src/Models/Range.php | 107 + .../square/src/Models/ReceiptOptions.php | 141 + .../src/Models/RedeemLoyaltyRewardRequest.php | 88 + .../Models/RedeemLoyaltyRewardResponse.php | 87 + .../square/square/src/Models/Refund.php | 343 + .../src/Models/RefundPaymentRequest.php | 541 + .../src/Models/RefundPaymentResponse.php | 89 + .../square/square/src/Models/RefundStatus.php | 27 + .../src/Models/RegisterDomainRequest.php | 61 + .../src/Models/RegisterDomainResponse.php | 86 + .../Models/RegisterDomainResponseStatus.php | 19 + .../RemoveGroupFromCustomerResponse.php | 60 + .../src/Models/ResumeSubscriptionRequest.php | 91 + .../src/Models/ResumeSubscriptionResponse.php | 119 + ...ookingCustomAttributeDefinitionRequest.php | 62 + ...okingCustomAttributeDefinitionResponse.php | 88 + .../RetrieveBookingCustomAttributeRequest.php | 109 + ...RetrieveBookingCustomAttributeResponse.php | 87 + .../src/Models/RetrieveBookingResponse.php | 84 + ...RetrieveBusinessBookingProfileResponse.php | 80 + .../src/Models/RetrieveCardResponse.php | 89 + .../Models/RetrieveCashDrawerShiftRequest.php | 57 + .../RetrieveCashDrawerShiftResponse.php | 86 + .../Models/RetrieveCatalogObjectRequest.php | 206 + .../Models/RetrieveCatalogObjectResponse.php | 135 + ...stomerCustomAttributeDefinitionRequest.php | 62 + ...tomerCustomAttributeDefinitionResponse.php | 88 + ...RetrieveCustomerCustomAttributeRequest.php | 110 + ...etrieveCustomerCustomAttributeResponse.php | 88 + .../Models/RetrieveCustomerGroupResponse.php | 92 + .../src/Models/RetrieveCustomerResponse.php | 86 + .../RetrieveCustomerSegmentResponse.php | 92 + .../RetrieveDisputeEvidenceResponse.php | 81 + .../src/Models/RetrieveDisputeResponse.php | 85 + .../src/Models/RetrieveEmployeeResponse.php | 84 + .../Models/RetrieveGiftCardFromGANRequest.php | 64 + .../RetrieveGiftCardFromGANResponse.php | 84 + .../RetrieveGiftCardFromNonceRequest.php | 62 + .../RetrieveGiftCardFromNonceResponse.php | 84 + .../src/Models/RetrieveGiftCardResponse.php | 84 + .../RetrieveInventoryAdjustmentResponse.php | 82 + .../RetrieveInventoryChangesRequest.php | 113 + .../RetrieveInventoryChangesResponse.php | 117 + .../Models/RetrieveInventoryCountRequest.php | 113 + .../Models/RetrieveInventoryCountResponse.php | 119 + ...RetrieveInventoryPhysicalCountResponse.php | 86 + .../RetrieveInventoryTransferResponse.php | 82 + .../square/src/Models/RetrieveJobResponse.php | 88 + ...RetrieveLocationBookingProfileResponse.php | 82 + ...cationCustomAttributeDefinitionRequest.php | 62 + ...ationCustomAttributeDefinitionResponse.php | 88 + ...RetrieveLocationCustomAttributeRequest.php | 110 + ...etrieveLocationCustomAttributeResponse.php | 88 + .../src/Models/RetrieveLocationResponse.php | 84 + .../RetrieveLocationSettingsResponse.php | 78 + .../Models/RetrieveLoyaltyAccountResponse.php | 87 + .../Models/RetrieveLoyaltyProgramResponse.php | 93 + .../RetrieveLoyaltyPromotionResponse.php | 89 + .../Models/RetrieveLoyaltyRewardResponse.php | 89 + ...rchantCustomAttributeDefinitionRequest.php | 62 + ...chantCustomAttributeDefinitionResponse.php | 88 + ...RetrieveMerchantCustomAttributeRequest.php | 110 + ...etrieveMerchantCustomAttributeResponse.php | 88 + .../src/Models/RetrieveMerchantResponse.php | 83 + .../RetrieveMerchantSettingsResponse.php | 78 + ...eOrderCustomAttributeDefinitionRequest.php | 58 + ...OrderCustomAttributeDefinitionResponse.php | 85 + .../RetrieveOrderCustomAttributeRequest.php | 106 + .../RetrieveOrderCustomAttributeResponse.php | 85 + .../src/Models/RetrieveOrderResponse.php | 90 + .../Models/RetrievePaymentLinkResponse.php | 78 + .../src/Models/RetrieveSnippetResponse.php | 85 + .../Models/RetrieveSubscriptionRequest.php | 78 + .../Models/RetrieveSubscriptionResponse.php | 90 + ...trieveTeamMemberBookingProfileResponse.php | 82 + .../src/Models/RetrieveTeamMemberResponse.php | 83 + .../Models/RetrieveTokenStatusResponse.php | 167 + .../Models/RetrieveTransactionResponse.php | 94 + .../src/Models/RetrieveVendorResponse.php | 83 + .../Models/RetrieveWageSettingResponse.php | 86 + .../RetrieveWebhookSubscriptionResponse.php | 91 + .../square/src/Models/RevokeTokenRequest.php | 185 + .../square/src/Models/RevokeTokenResponse.php | 80 + .../square/src/Models/RiskEvaluation.php | 82 + .../src/Models/RiskEvaluationRiskLevel.php | 24 + .../square/src/Models/SaveCardOptions.php | 127 + .../src/Models/SearchAvailabilityFilter.php | 210 + .../src/Models/SearchAvailabilityQuery.php | 60 + .../src/Models/SearchAvailabilityRequest.php | 57 + .../src/Models/SearchAvailabilityResponse.php | 84 + .../src/Models/SearchCatalogItemsRequest.php | 321 + .../SearchCatalogItemsRequestStockLevel.php | 19 + .../src/Models/SearchCatalogItemsResponse.php | 142 + .../Models/SearchCatalogObjectsRequest.php | 376 + .../Models/SearchCatalogObjectsResponse.php | 171 + .../src/Models/SearchCustomersRequest.php | 158 + .../src/Models/SearchCustomersResponse.php | 168 + .../square/src/Models/SearchEventsFilter.php | 182 + .../square/src/Models/SearchEventsQuery.php | 79 + .../square/src/Models/SearchEventsRequest.php | 124 + .../src/Models/SearchEventsResponse.php | 153 + .../square/src/Models/SearchEventsSort.php | 79 + .../src/Models/SearchEventsSortField.php | 16 + .../src/Models/SearchInvoicesRequest.php | 120 + .../src/Models/SearchInvoicesResponse.php | 120 + .../Models/SearchLoyaltyAccountsRequest.php | 114 + ...altyAccountsRequestLoyaltyAccountQuery.php | 133 + .../Models/SearchLoyaltyAccountsResponse.php | 120 + .../src/Models/SearchLoyaltyEventsRequest.php | 114 + .../Models/SearchLoyaltyEventsResponse.php | 119 + .../Models/SearchLoyaltyRewardsRequest.php | 112 + ...oyaltyRewardsRequestLoyaltyRewardQuery.php | 85 + .../Models/SearchLoyaltyRewardsResponse.php | 116 + .../src/Models/SearchOrdersCustomerFilter.php | 77 + .../src/Models/SearchOrdersDateTimeFilter.php | 142 + .../square/src/Models/SearchOrdersFilter.php | 187 + .../Models/SearchOrdersFulfillmentFilter.php | 127 + .../square/src/Models/SearchOrdersQuery.php | 83 + .../square/src/Models/SearchOrdersRequest.php | 181 + .../src/Models/SearchOrdersResponse.php | 154 + .../square/src/Models/SearchOrdersSort.php | 86 + .../src/Models/SearchOrdersSortField.php | 30 + .../src/Models/SearchOrdersSourceFilter.php | 78 + .../src/Models/SearchOrdersStateFilter.php | 66 + .../square/src/Models/SearchShiftsRequest.php | 104 + .../src/Models/SearchShiftsResponse.php | 114 + .../src/Models/SearchSubscriptionsFilter.php | 151 + .../src/Models/SearchSubscriptionsQuery.php | 58 + .../src/Models/SearchSubscriptionsRequest.php | 154 + .../Models/SearchSubscriptionsResponse.php | 125 + .../src/Models/SearchTeamMembersFilter.php | 139 + .../src/Models/SearchTeamMembersQuery.php | 66 + .../src/Models/SearchTeamMembersRequest.php | 106 + .../src/Models/SearchTeamMembersResponse.php | 114 + .../Models/SearchTerminalActionsRequest.php | 107 + .../Models/SearchTerminalActionsResponse.php | 119 + .../Models/SearchTerminalCheckoutsRequest.php | 105 + .../SearchTerminalCheckoutsResponse.php | 117 + .../Models/SearchTerminalRefundsRequest.php | 101 + .../Models/SearchTerminalRefundsResponse.php | 117 + .../src/Models/SearchVendorsRequest.php | 112 + .../src/Models/SearchVendorsRequestFilter.php | 112 + .../src/Models/SearchVendorsRequestSort.php | 79 + .../Models/SearchVendorsRequestSortField.php | 19 + .../src/Models/SearchVendorsResponse.php | 120 + .../square/src/Models/SegmentFilter.php | 95 + .../square/square/src/Models/SelectOption.php | 83 + .../square/src/Models/SelectOptions.php | 136 + .../square/square/src/Models/Shift.php | 481 + .../square/square/src/Models/ShiftFilter.php | 271 + .../square/src/Models/ShiftFilterStatus.php | 19 + .../square/square/src/Models/ShiftQuery.php | 81 + .../square/square/src/Models/ShiftSort.php | 79 + .../square/src/Models/ShiftSortField.php | 27 + .../square/square/src/Models/ShiftStatus.php | 19 + .../square/square/src/Models/ShiftWage.php | 165 + .../square/square/src/Models/ShiftWorkday.php | 127 + .../square/src/Models/ShiftWorkdayMatcher.php | 23 + .../square/square/src/Models/ShippingFee.php | 105 + .../square/src/Models/SignatureImage.php | 78 + .../square/src/Models/SignatureOptions.php | 112 + .../square/square/src/Models/Site.php | 212 + .../square/square/src/Models/Snippet.php | 161 + .../square/src/Models/SnippetResponse.php | 82 + .../square/square/src/Models/SortOrder.php | 19 + .../square/src/Models/SourceApplication.php | 132 + .../src/Models/SquareAccountDetails.php | 105 + .../src/Models/StandardUnitDescription.php | 130 + .../Models/StandardUnitDescriptionGroup.php | 105 + .../src/Models/SubmitEvidenceResponse.php | 85 + .../square/square/src/Models/Subscription.php | 644 + .../square/src/Models/SubscriptionAction.php | 227 + .../src/Models/SubscriptionActionType.php | 31 + .../square/src/Models/SubscriptionCadence.php | 63 + .../square/src/Models/SubscriptionEvent.php | 228 + .../src/Models/SubscriptionEventInfo.php | 90 + .../src/Models/SubscriptionEventInfoCode.php | 35 + ...SubscriptionEventSubscriptionEventType.php | 39 + .../square/src/Models/SubscriptionPhase.php | 240 + .../square/src/Models/SubscriptionPricing.php | 131 + .../src/Models/SubscriptionPricingType.php | 19 + .../square/src/Models/SubscriptionSource.php | 71 + .../square/src/Models/SubscriptionStatus.php | 31 + .../src/Models/SubscriptionTestResult.php | 183 + .../square/src/Models/SwapPlanRequest.php | 112 + .../square/src/Models/SwapPlanResponse.php | 119 + .../square/src/Models/TaxCalculationPhase.php | 19 + .../square/square/src/Models/TaxIds.php | 170 + .../square/src/Models/TaxInclusionType.php | 24 + .../square/square/src/Models/TeamMember.php | 395 + .../Models/TeamMemberAssignedLocations.php | 94 + ...mMemberAssignedLocationsAssignmentType.php | 21 + .../src/Models/TeamMemberBookingProfile.php | 171 + .../src/Models/TeamMemberInvitationStatus.php | 23 + .../square/src/Models/TeamMemberStatus.php | 20 + .../square/src/Models/TeamMemberWage.php | 239 + .../square/square/src/Models/Tender.php | 581 + .../src/Models/TenderBankAccountDetails.php | 57 + .../Models/TenderBankAccountDetailsStatus.php | 23 + .../Models/TenderBuyNowPayLaterDetails.php | 75 + .../TenderBuyNowPayLaterDetailsBrand.php | 10 + .../TenderBuyNowPayLaterDetailsStatus.php | 24 + .../square/src/Models/TenderCardDetails.php | 106 + .../Models/TenderCardDetailsEntryMethod.php | 33 + .../src/Models/TenderCardDetailsStatus.php | 27 + .../square/src/Models/TenderCashDetails.php | 103 + .../src/Models/TenderSquareAccountDetails.php | 52 + .../TenderSquareAccountDetailsStatus.php | 24 + .../square/square/src/Models/TenderType.php | 58 + .../square/src/Models/TerminalAction.php | 610 + .../src/Models/TerminalActionActionType.php | 52 + .../square/src/Models/TerminalActionQuery.php | 72 + .../src/Models/TerminalActionQueryFilter.php | 164 + .../src/Models/TerminalActionQuerySort.php | 51 + .../square/src/Models/TerminalCheckout.php | 711 + .../src/Models/TerminalCheckoutQuery.php | 72 + .../Models/TerminalCheckoutQueryFilter.php | 140 + .../src/Models/TerminalCheckoutQuerySort.php | 51 + .../square/src/Models/TerminalRefund.php | 432 + .../square/src/Models/TerminalRefundQuery.php | 72 + .../src/Models/TerminalRefundQueryFilter.php | 137 + .../src/Models/TerminalRefundQuerySort.php | 68 + .../Models/TestWebhookSubscriptionRequest.php | 71 + .../TestWebhookSubscriptionResponse.php | 90 + .../square/square/src/Models/TimeRange.php | 111 + .../square/square/src/Models/TipSettings.php | 255 + .../square/square/src/Models/Transaction.php | 394 + .../square/src/Models/TransactionProduct.php | 43 + .../square/src/Models/TransactionType.php | 13 + .../UnlinkCustomerFromGiftCardRequest.php | 60 + .../UnlinkCustomerFromGiftCardResponse.php | 84 + ...ookingCustomAttributeDefinitionRequest.php | 103 + ...okingCustomAttributeDefinitionResponse.php | 88 + .../src/Models/UpdateBookingRequest.php | 97 + .../src/Models/UpdateBookingResponse.php | 84 + .../src/Models/UpdateBreakTypeRequest.php | 62 + .../src/Models/UpdateBreakTypeResponse.php | 87 + .../src/Models/UpdateCatalogImageRequest.php | 65 + .../src/Models/UpdateCatalogImageResponse.php | 106 + ...stomerCustomAttributeDefinitionRequest.php | 103 + ...tomerCustomAttributeDefinitionResponse.php | 88 + .../src/Models/UpdateCustomerGroupRequest.php | 67 + .../Models/UpdateCustomerGroupResponse.php | 92 + .../src/Models/UpdateCustomerRequest.php | 509 + .../src/Models/UpdateCustomerResponse.php | 87 + .../src/Models/UpdateInvoiceRequest.php | 161 + .../src/Models/UpdateInvoiceResponse.php | 87 + .../Models/UpdateItemModifierListsRequest.php | 147 + .../UpdateItemModifierListsResponse.php | 82 + .../src/Models/UpdateItemTaxesRequest.php | 149 + .../src/Models/UpdateItemTaxesResponse.php | 82 + .../square/src/Models/UpdateJobRequest.php | 64 + .../square/src/Models/UpdateJobResponse.php | 88 + ...cationCustomAttributeDefinitionRequest.php | 103 + ...ationCustomAttributeDefinitionResponse.php | 88 + .../src/Models/UpdateLocationRequest.php | 54 + .../src/Models/UpdateLocationResponse.php | 83 + .../Models/UpdateLocationSettingsRequest.php | 55 + .../Models/UpdateLocationSettingsResponse.php | 78 + ...rchantCustomAttributeDefinitionRequest.php | 103 + ...chantCustomAttributeDefinitionResponse.php | 88 + .../Models/UpdateMerchantSettingsRequest.php | 55 + .../Models/UpdateMerchantSettingsResponse.php | 78 + ...eOrderCustomAttributeDefinitionRequest.php | 104 + ...OrderCustomAttributeDefinitionResponse.php | 85 + .../square/src/Models/UpdateOrderRequest.php | 177 + .../square/src/Models/UpdateOrderResponse.php | 94 + .../src/Models/UpdatePaymentLinkRequest.php | 55 + .../src/Models/UpdatePaymentLinkResponse.php | 78 + .../src/Models/UpdatePaymentRequest.php | 94 + .../src/Models/UpdatePaymentResponse.php | 84 + .../square/src/Models/UpdateShiftRequest.php | 64 + .../square/src/Models/UpdateShiftResponse.php | 89 + .../src/Models/UpdateSubscriptionRequest.php | 61 + .../src/Models/UpdateSubscriptionResponse.php | 90 + .../src/Models/UpdateTeamMemberRequest.php | 54 + .../src/Models/UpdateTeamMemberResponse.php | 84 + .../square/src/Models/UpdateVendorRequest.php | 114 + .../src/Models/UpdateVendorResponse.php | 83 + .../src/Models/UpdateWageSettingRequest.php | 62 + .../src/Models/UpdateWageSettingResponse.php | 86 + .../UpdateWebhookSubscriptionRequest.php | 56 + .../UpdateWebhookSubscriptionResponse.php | 90 + ...WebhookSubscriptionSignatureKeyRequest.php | 69 + ...ebhookSubscriptionSignatureKeyResponse.php | 89 + .../Models/UpdateWorkweekConfigRequest.php | 62 + .../Models/UpdateWorkweekConfigResponse.php | 87 + .../UpsertBookingCustomAttributeRequest.php | 102 + .../UpsertBookingCustomAttributeResponse.php | 87 + .../src/Models/UpsertCatalogObjectRequest.php | 129 + .../Models/UpsertCatalogObjectResponse.php | 135 + .../UpsertCustomerCustomAttributeRequest.php | 102 + .../UpsertCustomerCustomAttributeResponse.php | 87 + .../UpsertLocationCustomAttributeRequest.php | 102 + .../UpsertLocationCustomAttributeResponse.php | 87 + .../UpsertMerchantCustomAttributeRequest.php | 102 + .../UpsertMerchantCustomAttributeResponse.php | 87 + .../UpsertOrderCustomAttributeRequest.php | 104 + .../UpsertOrderCustomAttributeResponse.php | 85 + .../src/Models/UpsertSnippetRequest.php | 62 + .../src/Models/UpsertSnippetResponse.php | 85 + .../square/square/src/Models/V1Device.php | 87 + .../square/src/Models/V1ListOrdersRequest.php | 126 + .../src/Models/V1ListOrdersResponse.php | 53 + .../square/square/src/Models/V1Money.php | 92 + .../square/square/src/Models/V1Order.php | 853 + .../square/src/Models/V1OrderHistoryEntry.php | 77 + .../src/Models/V1OrderHistoryEntryAction.php | 15 + .../square/square/src/Models/V1OrderState.php | 14 + .../square/src/Models/V1PhoneNumber.php | 86 + .../square/square/src/Models/V1Tender.php | 535 + .../square/src/Models/V1TenderCardBrand.php | 20 + .../square/src/Models/V1TenderEntryMethod.php | 15 + .../square/square/src/Models/V1TenderType.php | 16 + .../src/Models/V1UpdateOrderRequest.php | 202 + .../src/Models/V1UpdateOrderRequestAction.php | 11 + .../square/square/src/Models/Vendor.php | 342 + .../square/src/Models/VendorContact.php | 234 + .../square/square/src/Models/VendorStatus.php | 20 + .../square/src/Models/VisibilityFilter.php | 26 + .../src/Models/VoidTransactionResponse.php | 59 + .../square/square/src/Models/WageSetting.php | 228 + .../square/src/Models/WebhookSubscription.php | 324 + .../square/square/src/Models/Weekday.php | 39 + .../square/src/Models/WorkweekConfig.php | 197 + .../square/square/src/Server.php | 12 + .../square/square/src/SquareClient.php | 675 + .../square/square/src/SquareClientBuilder.php | 145 + .../src/Utils/CompatibilityConverter.php | 42 + .../square/square/src/Utils/FileWrapper.php | 19 + .../square/src/Utils/WebhooksHelper.php | 43 + .../vendor_prefixed/stripe/stripe-php/LICENSE | 21 + .../stripe-php/data/ca-certificates.crt | 3347 ++++ .../stripe/stripe-php/init.php | 386 + .../stripe/stripe-php/lib/Account.php | 467 + .../stripe/stripe-php/lib/AccountLink.php | 41 + .../stripe/stripe-php/lib/AccountSession.php | 45 + .../stripe-php/lib/ApiOperations/All.php | 25 + .../stripe-php/lib/ApiOperations/Create.php | 29 + .../stripe-php/lib/ApiOperations/Delete.php | 28 + .../lib/ApiOperations/NestedResource.php | 121 + .../stripe-php/lib/ApiOperations/Request.php | 119 + .../stripe-php/lib/ApiOperations/Retrieve.php | 29 + .../stripe-php/lib/ApiOperations/Search.php | 25 + .../lib/ApiOperations/SingletonRetrieve.php | 28 + .../stripe-php/lib/ApiOperations/Update.php | 52 + .../stripe/stripe-php/lib/ApiRequestor.php | 542 + .../stripe/stripe-php/lib/ApiResource.php | 101 + .../stripe/stripe-php/lib/ApiResponse.php | 40 + .../stripe/stripe-php/lib/ApplePayDomain.php | 93 + .../stripe/stripe-php/lib/Application.php | 14 + .../stripe/stripe-php/lib/ApplicationFee.php | 116 + .../stripe-php/lib/ApplicationFeeRefund.php | 54 + .../stripe/stripe-php/lib/Apps/Secret.php | 96 + .../stripe/stripe-php/lib/Balance.php | 49 + .../stripe-php/lib/BalanceTransaction.php | 113 + .../stripe/stripe-php/lib/BankAccount.php | 147 + .../stripe-php/lib/BaseStripeClient.php | 387 + .../lib/BaseStripeClientInterface.php | 46 + .../stripe/stripe-php/lib/Billing/Alert.php | 119 + .../stripe-php/lib/Billing/AlertTriggered.php | 17 + .../lib/Billing/CreditBalanceSummary.php | 33 + .../lib/Billing/CreditBalanceTransaction.php | 57 + .../stripe-php/lib/Billing/CreditGrant.php | 134 + .../stripe/stripe-php/lib/Billing/Meter.php | 149 + .../stripe-php/lib/Billing/MeterEvent.php | 39 + .../lib/Billing/MeterEventAdjustment.php | 40 + .../lib/Billing/MeterEventSummary.php | 21 + .../lib/BillingPortal/Configuration.php | 101 + .../stripe-php/lib/BillingPortal/Session.php | 56 + .../stripe/stripe-php/lib/Capability.php | 88 + .../stripe/stripe-php/lib/Card.php | 163 + .../stripe/stripe-php/lib/CashBalance.php | 52 + .../stripe/stripe-php/lib/Charge.php | 256 + .../stripe-php/lib/Checkout/Session.php | 212 + .../stripe/stripe-php/lib/Climate/Order.php | 134 + .../stripe/stripe-php/lib/Climate/Product.php | 55 + .../stripe-php/lib/Climate/Supplier.php | 55 + .../stripe/stripe-php/lib/Collection.php | 265 + .../stripe-php/lib/ConfirmationToken.php | 52 + .../lib/ConnectCollectionTransfer.php | 17 + .../stripe/stripe-php/lib/CountrySpec.php | 58 + .../stripe/stripe-php/lib/Coupon.php | 143 + .../stripe/stripe-php/lib/CreditNote.php | 207 + .../stripe-php/lib/CreditNoteLineItem.php | 30 + .../stripe/stripe-php/lib/Customer.php | 454 + .../lib/CustomerBalanceTransaction.php | 80 + .../lib/CustomerCashBalanceTransaction.php | 40 + .../stripe/stripe-php/lib/CustomerSession.php | 46 + .../stripe/stripe-php/lib/Discount.php | 28 + .../stripe/stripe-php/lib/Dispute.php | 132 + .../lib/Entitlements/ActiveEntitlement.php | 50 + .../Entitlements/ActiveEntitlementSummary.php | 17 + .../stripe-php/lib/Entitlements/Feature.php | 93 + .../stripe/stripe-php/lib/EphemeralKey.php | 54 + .../stripe/stripe-php/lib/ErrorObject.php | 235 + .../stripe/stripe-php/lib/Event.php | 570 + ...lingMeterErrorReportTriggeredEventData.php | 14 + .../V1BillingMeterNoMeterFoundEventData.php | 14 + ...1BillingMeterErrorReportTriggeredEvent.php | 34 + .../V1BillingMeterNoMeterFoundEvent.php | 20 + .../lib/Exception/ApiConnectionException.php | 12 + .../lib/Exception/ApiErrorException.php | 192 + .../lib/Exception/AuthenticationException.php | 11 + .../lib/Exception/BadMethodCallException.php | 7 + .../lib/Exception/CardException.php | 70 + .../lib/Exception/ExceptionInterface.php | 22 + .../lib/Exception/IdempotencyException.php | 11 + .../Exception/InvalidArgumentException.php | 7 + .../lib/Exception/InvalidRequestException.php | 49 + .../Exception/OAuth/ExceptionInterface.php | 10 + .../OAuth/InvalidClientException.php | 12 + .../Exception/OAuth/InvalidGrantException.php | 13 + .../OAuth/InvalidRequestException.php | 11 + .../Exception/OAuth/InvalidScopeException.php | 10 + .../Exception/OAuth/OAuthErrorException.php | 18 + .../OAuth/UnknownOAuthErrorException.php | 12 + .../OAuth/UnsupportedGrantTypeException.php | 11 + .../UnsupportedResponseTypeException.php | 11 + .../lib/Exception/PermissionException.php | 11 + .../lib/Exception/RateLimitException.php | 12 + .../SignatureVerificationException.php | 65 + .../TemporarySessionExpiredException.php | 8 + .../Exception/UnexpectedValueException.php | 7 + .../Exception/UnknownApiErrorException.php | 12 + .../stripe/stripe-php/lib/ExchangeRate.php | 75 + .../stripe/stripe-php/lib/File.php | 110 + .../stripe/stripe-php/lib/FileLink.php | 96 + .../lib/FinancialConnections/Account.php | 154 + .../lib/FinancialConnections/AccountOwner.php | 21 + .../FinancialConnections/AccountOwnership.php | 17 + .../lib/FinancialConnections/Session.php | 61 + .../lib/FinancialConnections/Transaction.php | 60 + .../stripe-php/lib/Forwarding/Request.php | 90 + .../stripe-php/lib/FundingInstructions.php | 23 + .../lib/HttpClient/ClientInterface.php | 23 + .../stripe-php/lib/HttpClient/CurlClient.php | 659 + .../HttpClient/StreamingClientInterface.php | 23 + .../lib/Identity/VerificationReport.php | 72 + .../lib/Identity/VerificationSession.php | 167 + .../stripe/stripe-php/lib/Invoice.php | 450 + .../stripe/stripe-php/lib/InvoiceItem.php | 143 + .../stripe/stripe-php/lib/InvoiceLineItem.php | 67 + .../lib/InvoiceRenderingTemplate.php | 89 + .../stripe-php/lib/Issuing/Authorization.php | 141 + .../stripe/stripe-php/lib/Issuing/Card.php | 124 + .../stripe-php/lib/Issuing/CardDetails.php | 19 + .../stripe-php/lib/Issuing/Cardholder.php | 112 + .../stripe/stripe-php/lib/Issuing/Dispute.php | 149 + .../lib/Issuing/PersonalizationDesign.php | 104 + .../stripe-php/lib/Issuing/PhysicalBundle.php | 58 + .../stripe/stripe-php/lib/Issuing/Token.php | 88 + .../stripe-php/lib/Issuing/Transaction.php | 101 + .../stripe/stripe-php/lib/LineItem.php | 25 + .../stripe/stripe-php/lib/LoginLink.php | 16 + .../stripe/stripe-php/lib/Mandate.php | 46 + .../stripe/stripe-php/lib/OAuth.php | 75 + .../stripe-php/lib/OAuthErrorObject.php | 29 + .../stripe/stripe-php/lib/PaymentIntent.php | 282 + .../stripe/stripe-php/lib/PaymentLink.php | 150 + .../stripe/stripe-php/lib/PaymentMethod.php | 239 + .../lib/PaymentMethodConfiguration.php | 148 + .../stripe-php/lib/PaymentMethodDomain.php | 114 + .../stripe/stripe-php/lib/Payout.php | 191 + .../stripe/stripe-php/lib/Person.php | 117 + .../stripe/stripe-php/lib/Plan.php | 150 + .../stripe/stripe-php/lib/Price.php | 137 + .../stripe/stripe-php/lib/Product.php | 206 + .../stripe/stripe-php/lib/ProductFeature.php | 18 + .../stripe/stripe-php/lib/PromotionCode.php | 104 + .../stripe/stripe-php/lib/Quote.php | 227 + .../lib/Radar/EarlyFraudWarning.php | 67 + .../stripe/stripe-php/lib/Radar/ValueList.php | 132 + .../stripe-php/lib/Radar/ValueListItem.php | 95 + .../stripe/stripe-php/lib/Reason.php | 13 + .../stripe-php/lib/RecipientTransfer.php | 36 + .../stripe/stripe-php/lib/Refund.php | 153 + .../stripe/stripe-php/lib/RelatedObject.php | 15 + .../stripe-php/lib/Reporting/ReportRun.php | 82 + .../stripe-php/lib/Reporting/ReportType.php | 62 + .../stripe-php/lib/RequestTelemetry.php | 31 + .../stripe-php/lib/ReserveTransaction.php | 16 + .../stripe/stripe-php/lib/Review.php | 99 + .../stripe/stripe-php/lib/SearchResult.php | 206 + .../lib/Service/AbstractService.php | 98 + .../lib/Service/AbstractServiceFactory.php | 25 + .../lib/Service/AccountLinkService.php | 28 + .../stripe-php/lib/Service/AccountService.php | 390 + .../lib/Service/AccountSessionService.php | 27 + .../lib/Service/ApplePayDomainService.php | 70 + .../lib/Service/ApplicationFeeService.php | 123 + .../lib/Service/Apps/AppsServiceFactory.php | 21 + .../lib/Service/Apps/SecretService.php | 68 + .../stripe-php/lib/Service/BalanceService.php | 29 + .../lib/Service/BalanceTransactionService.php | 49 + .../lib/Service/Billing/AlertService.php | 101 + .../Service/Billing/BillingServiceFactory.php | 27 + .../Billing/CreditBalanceSummaryService.php | 26 + .../CreditBalanceTransactionService.php | 41 + .../Service/Billing/CreditGrantService.php | 100 + .../Billing/MeterEventAdjustmentService.php | 26 + .../lib/Service/Billing/MeterEventService.php | 26 + .../lib/Service/Billing/MeterService.php | 117 + .../BillingPortalServiceFactory.php | 22 + .../BillingPortal/ConfigurationService.php | 73 + .../Service/BillingPortal/SessionService.php | 26 + .../stripe-php/lib/Service/ChargeService.php | 120 + .../Checkout/CheckoutServiceFactory.php | 21 + .../lib/Service/Checkout/SessionService.php | 106 + .../Service/Climate/ClimateServiceFactory.php | 23 + .../lib/Service/Climate/OrderService.php | 93 + .../lib/Service/Climate/ProductService.php | 41 + .../lib/Service/Climate/SupplierService.php | 41 + .../lib/Service/ConfirmationTokenService.php | 27 + .../lib/Service/CoreServiceFactory.php | 163 + .../lib/Service/CountrySpecService.php | 41 + .../stripe-php/lib/Service/CouponService.php | 103 + .../lib/Service/CreditNoteService.php | 152 + .../lib/Service/CustomerService.php | 474 + .../lib/Service/CustomerSessionService.php | 28 + .../stripe-php/lib/Service/DisputeService.php | 83 + .../Entitlements/ActiveEntitlementService.php | 41 + .../EntitlementsServiceFactory.php | 22 + .../Service/Entitlements/FeatureService.php | 70 + .../lib/Service/EphemeralKeyService.php | 44 + .../stripe-php/lib/Service/EventService.php | 46 + .../lib/Service/ExchangeRateService.php | 43 + .../lib/Service/FileLinkService.php | 70 + .../stripe-php/lib/Service/FileService.php | 64 + .../FinancialConnections/AccountService.php | 120 + .../FinancialConnectionsServiceFactory.php | 23 + .../FinancialConnections/SessionService.php | 43 + .../TransactionService.php | 41 + .../Forwarding/ForwardingServiceFactory.php | 21 + .../lib/Service/Forwarding/RequestService.php | 55 + .../Identity/IdentityServiceFactory.php | 22 + .../Identity/VerificationReportService.php | 41 + .../Identity/VerificationSessionService.php | 144 + .../lib/Service/InvoiceItemService.php | 92 + .../InvoiceRenderingTemplateService.php | 78 + .../stripe-php/lib/Service/InvoiceService.php | 397 + .../Service/Issuing/AuthorizationService.php | 104 + .../lib/Service/Issuing/CardService.php | 73 + .../lib/Service/Issuing/CardholderService.php | 74 + .../lib/Service/Issuing/DisputeService.php | 98 + .../Service/Issuing/IssuingServiceFactory.php | 28 + .../Issuing/PersonalizationDesignService.php | 72 + .../Service/Issuing/PhysicalBundleService.php | 42 + .../lib/Service/Issuing/TokenService.php | 57 + .../Service/Issuing/TransactionService.php | 60 + .../stripe-php/lib/Service/MandateService.php | 27 + .../stripe-php/lib/Service/OAuthService.php | 124 + .../lib/Service/PaymentIntentService.php | 272 + .../lib/Service/PaymentLinkService.php | 88 + .../PaymentMethodConfigurationService.php | 70 + .../Service/PaymentMethodDomainService.php | 96 + .../lib/Service/PaymentMethodService.php | 133 + .../stripe-php/lib/Service/PayoutService.php | 125 + .../stripe-php/lib/Service/PlanService.php | 90 + .../stripe-php/lib/Service/PriceService.php | 93 + .../stripe-php/lib/Service/ProductService.php | 172 + .../lib/Service/PromotionCodeService.php | 75 + .../stripe-php/lib/Service/QuoteService.php | 174 + .../Radar/EarlyFraudWarningService.php | 45 + .../lib/Service/Radar/RadarServiceFactory.php | 23 + .../Service/Radar/ValueListItemService.php | 74 + .../lib/Service/Radar/ValueListService.php | 92 + .../stripe-php/lib/Service/RefundService.php | 105 + .../Service/Reporting/ReportRunService.php | 56 + .../Service/Reporting/ReportTypeService.php | 42 + .../Reporting/ReportingServiceFactory.php | 22 + .../stripe-php/lib/Service/ReviewService.php | 59 + .../lib/Service/ServiceNavigatorTrait.php | 48 + .../lib/Service/SetupAttemptService.php | 26 + .../lib/Service/SetupIntentService.php | 143 + .../lib/Service/ShippingRateService.php | 70 + .../Sigma/ScheduledQueryRunService.php | 41 + .../lib/Service/Sigma/SigmaServiceFactory.php | 21 + .../stripe-php/lib/Service/SourceService.php | 110 + .../lib/Service/SubscriptionItemService.php | 148 + .../Service/SubscriptionScheduleService.php | 111 + .../lib/Service/SubscriptionService.php | 215 + .../lib/Service/Tax/CalculationService.php | 59 + .../lib/Service/Tax/RegistrationService.php | 73 + .../lib/Service/Tax/SettingsService.php | 41 + .../lib/Service/Tax/TaxServiceFactory.php | 24 + .../lib/Service/Tax/TransactionService.php | 71 + .../stripe-php/lib/Service/TaxCodeService.php | 43 + .../stripe-php/lib/Service/TaxIdService.php | 70 + .../stripe-php/lib/Service/TaxRateService.php | 71 + .../Service/Terminal/ConfigurationService.php | 85 + .../Terminal/ConnectionTokenService.php | 28 + .../lib/Service/Terminal/LocationService.php | 88 + .../lib/Service/Terminal/ReaderService.php | 161 + .../Terminal/TerminalServiceFactory.php | 24 + .../TestHelpers/ConfirmationTokenService.php | 26 + .../Service/TestHelpers/CustomerService.php | 27 + .../Issuing/AuthorizationService.php | 118 + .../TestHelpers/Issuing/CardService.php | 93 + .../Issuing/IssuingServiceFactory.php | 24 + .../Issuing/PersonalizationDesignService.php | 60 + .../Issuing/TransactionService.php | 55 + .../lib/Service/TestHelpers/RefundService.php | 27 + .../TestHelpers/Terminal/ReaderService.php | 28 + .../Terminal/TerminalServiceFactory.php | 21 + .../Service/TestHelpers/TestClockService.php | 86 + .../TestHelpers/TestHelpersServiceFactory.php | 27 + .../Treasury/InboundTransferService.php | 63 + .../Treasury/OutboundPaymentService.php | 80 + .../Treasury/OutboundTransferService.php | 80 + .../Treasury/ReceivedCreditService.php | 28 + .../Treasury/ReceivedDebitService.php | 28 + .../Treasury/TreasuryServiceFactory.php | 25 + .../stripe-php/lib/Service/TokenService.php | 46 + .../stripe-php/lib/Service/TopupService.php | 88 + .../lib/Service/TransferService.php | 157 + .../Treasury/CreditReversalService.php | 57 + .../Service/Treasury/DebitReversalService.php | 55 + .../Treasury/FinancialAccountService.php | 118 + .../Treasury/InboundTransferService.php | 70 + .../Treasury/OutboundPaymentService.php | 72 + .../Treasury/OutboundTransferService.php | 72 + .../Treasury/ReceivedCreditService.php | 42 + .../Service/Treasury/ReceivedDebitService.php | 42 + .../Treasury/TransactionEntryService.php | 41 + .../Service/Treasury/TransactionService.php | 41 + .../Treasury/TreasuryServiceFactory.php | 30 + .../V2/Billing/BillingServiceFactory.php | 24 + .../Billing/MeterEventAdjustmentService.php | 26 + .../Service/V2/Billing/MeterEventService.php | 28 + .../V2/Billing/MeterEventSessionService.php | 28 + .../V2/Billing/MeterEventStreamService.php | 32 + .../Service/V2/Core/CoreServiceFactory.php | 27 + .../V2/Core/EventDestinationService.php | 130 + .../lib/Service/V2/Core/EventService.php | 41 + .../lib/Service/V2/V2ServiceFactory.php | 22 + .../lib/Service/WebhookEndpointService.php | 96 + .../stripe/stripe-php/lib/SetupAttempt.php | 46 + .../stripe/stripe-php/lib/SetupIntent.php | 195 + .../stripe/stripe-php/lib/ShippingRate.php | 102 + .../lib/Sigma/ScheduledQueryRun.php | 63 + .../stripe-php/lib/SingletonApiResource.php | 28 + .../stripe/stripe-php/lib/Source.php | 222 + .../lib/SourceMandateNotification.php | 27 + .../stripe-php/lib/SourceTransaction.php | 46 + .../stripe/stripe-php/lib/Stripe.php | 242 + .../stripe/stripe-php/lib/StripeClient.php | 98 + .../stripe-php/lib/StripeClientInterface.php | 21 + .../stripe/stripe-php/lib/StripeObject.php | 519 + .../lib/StripeStreamingClientInterface.php | 11 + .../stripe/stripe-php/lib/Subscription.php | 280 + .../stripe-php/lib/SubscriptionItem.php | 146 + .../stripe-php/lib/SubscriptionSchedule.php | 147 + .../stripe/stripe-php/lib/Tax/Calculation.php | 85 + .../lib/Tax/CalculationLineItem.php | 24 + .../stripe-php/lib/Tax/Registration.php | 104 + .../stripe/stripe-php/lib/Tax/Settings.php | 77 + .../stripe/stripe-php/lib/Tax/Transaction.php | 99 + .../lib/Tax/TransactionLineItem.php | 28 + .../stripe/stripe-php/lib/TaxCode.php | 51 + .../stripe-php/lib/TaxDeductedAtSource.php | 16 + .../stripe/stripe-php/lib/TaxId.php | 200 + .../stripe/stripe-php/lib/TaxRate.php | 128 + .../stripe-php/lib/Terminal/Configuration.php | 114 + .../lib/Terminal/ConnectionToken.php | 39 + .../stripe-php/lib/Terminal/Location.php | 115 + .../stripe/stripe-php/lib/Terminal/Reader.php | 203 + .../stripe-php/lib/TestHelpers/TestClock.php | 111 + .../stripe/stripe-php/lib/ThinEvent.php | 27 + .../stripe/stripe-php/lib/Token.php | 86 + .../stripe/stripe-php/lib/Topup.php | 128 + .../stripe/stripe-php/lib/Transfer.php | 179 + .../stripe-php/lib/TransferReversal.php | 66 + .../lib/Treasury/CreditReversal.php | 85 + .../stripe-php/lib/Treasury/DebitReversal.php | 84 + .../lib/Treasury/FinancialAccount.php | 153 + .../lib/Treasury/FinancialAccountFeatures.php | 22 + .../lib/Treasury/InboundTransfer.php | 105 + .../lib/Treasury/OutboundPayment.php | 112 + .../lib/Treasury/OutboundTransfer.php | 110 + .../lib/Treasury/ReceivedCredit.php | 72 + .../stripe-php/lib/Treasury/ReceivedDebit.php | 72 + .../stripe-php/lib/Treasury/Transaction.php | 72 + .../lib/Treasury/TransactionEntry.php | 87 + .../stripe/stripe-php/lib/UsageRecord.php | 24 + .../stripe-php/lib/UsageRecordSummary.php | 20 + .../stripe/stripe-php/lib/Util/ApiVersion.php | 9 + .../lib/Util/CaseInsensitiveArray.php | 85 + .../stripe-php/lib/Util/DefaultLogger.php | 26 + .../stripe/stripe-php/lib/Util/EventTypes.php | 12 + .../stripe-php/lib/Util/LoggerInterface.php | 34 + .../stripe-php/lib/Util/ObjectTypes.php | 166 + .../stripe-php/lib/Util/RandomGenerator.php | 34 + .../stripe-php/lib/Util/RequestOptions.php | 151 + .../stripe/stripe-php/lib/Util/Set.php | 41 + .../stripe/stripe-php/lib/Util/Util.php | 293 + .../stripe-php/lib/V2/Billing/MeterEvent.php | 20 + .../lib/V2/Billing/MeterEventAdjustment.php | 21 + .../lib/V2/Billing/MeterEventSession.php | 17 + .../stripe/stripe-php/lib/V2/Collection.php | 90 + .../stripe/stripe-php/lib/V2/Event.php | 21 + .../stripe-php/lib/V2/EventDestination.php | 34 + .../stripe/stripe-php/lib/Webhook.php | 37 + .../stripe/stripe-php/lib/WebhookEndpoint.php | 132 + .../stripe-php/lib/WebhookSignature.php | 111 + .../css-selector/CssSelectorConverter.php | 54 + .../Exception/ExceptionInterface.php | 23 + .../Exception/ExpressionErrorException.php | 23 + .../Exception/InternalErrorException.php | 23 + .../css-selector/Exception/ParseException.php | 23 + .../Exception/SyntaxErrorException.php | 66 + .../symfony/css-selector/LICENSE | 19 + .../css-selector/Node/AbstractNode.php | 36 + .../css-selector/Node/AttributeNode.php | 70 + .../symfony/css-selector/Node/ClassNode.php | 51 + .../Node/CombinedSelectorNode.php | 58 + .../symfony/css-selector/Node/ElementNode.php | 52 + .../css-selector/Node/FunctionNode.php | 67 + .../symfony/css-selector/Node/HashNode.php | 51 + .../css-selector/Node/NegationNode.php | 51 + .../css-selector/Node/NodeInterface.php | 28 + .../symfony/css-selector/Node/PseudoNode.php | 51 + .../css-selector/Node/SelectorNode.php | 51 + .../symfony/css-selector/Node/Specificity.php | 64 + .../Parser/Handler/CommentHandler.php | 43 + .../Parser/Handler/HandlerInterface.php | 28 + .../Parser/Handler/HashHandler.php | 51 + .../Parser/Handler/IdentifierHandler.php | 51 + .../Parser/Handler/NumberHandler.php | 47 + .../Parser/Handler/StringHandler.php | 66 + .../Parser/Handler/WhitespaceHandler.php | 41 + .../symfony/css-selector/Parser/Parser.php | 278 + .../css-selector/Parser/ParserInterface.php | 32 + .../symfony/css-selector/Parser/Reader.php | 73 + .../Parser/Shortcut/ClassParser.php | 46 + .../Parser/Shortcut/ElementParser.php | 44 + .../Parser/Shortcut/EmptyStringParser.php | 43 + .../Parser/Shortcut/HashParser.php | 46 + .../symfony/css-selector/Parser/Token.php | 94 + .../css-selector/Parser/TokenStream.php | 146 + .../Parser/Tokenizer/Tokenizer.php | 56 + .../Parser/Tokenizer/TokenizerEscaping.php | 56 + .../Parser/Tokenizer/TokenizerPatterns.php | 80 + .../XPath/Extension/AbstractExtension.php | 60 + .../Extension/AttributeMatchingExtension.php | 73 + .../XPath/Extension/CombinationExtension.php | 56 + .../XPath/Extension/ExtensionInterface.php | 61 + .../XPath/Extension/FunctionExtension.php | 135 + .../XPath/Extension/HtmlExtension.php | 100 + .../XPath/Extension/NodeExtension.php | 150 + .../XPath/Extension/PseudoClassExtension.php | 86 + .../symfony/css-selector/XPath/Translator.php | 188 + .../XPath/TranslatorInterface.php | 34 + .../symfony/css-selector/XPath/XPathExpr.php | 85 + .../src/Css/Processor.php | 63 + .../src/Css/Property/Processor.php | 106 + .../src/Css/Property/Property.php | 77 + .../src/Css/Rule/Processor.php | 114 + .../src/Css/Rule/Rule.php | 76 + .../src/CssToInlineStyles.php | 194 + .../vendor_prefixed/true/punycode/LICENSE | 19 + .../Exception/DomainOutOfBoundsException.php | 12 + .../Exception/LabelOutOfBoundsException.php | 12 + .../src/Exception/OutOfBoundsException.php | 12 + .../true/punycode/src/Punycode.php | 302 + wp-content/plugins/wpforms-lite/wpforms.php | 251 + 4371 files changed, 568666 insertions(+), 1 deletion(-) create mode 100644 wp-content/mu-plugins/coco-3d.php create mode 100644 wp-content/mu-plugins/coco-chatbot.php create mode 100644 wp-content/mu-plugins/coco-contact-form.php create mode 100644 wp-content/mu-plugins/coco-i18n.php create mode 100644 wp-content/mu-plugins/coco-styles.php create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin-bar.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin-integrations.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin-list-table-ext.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin-notifications.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin-wp5.7-colors.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin/admin-form-templates.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin/admin-splash-modal.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/admin/edit-post-education.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-alerts.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-basic.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields-types.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-overlay.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-panels.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-scrollbars.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-subsystems.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-third-party.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/builder-ui-general.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/builder/content-editor.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/challenge.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/choices.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/dashboard-widget.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/classic.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/compact.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/corrupted-data-report.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/general.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/partials/classic_media_queries.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/partials/compact_media_queries.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/partials/media_queries.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/partials/summary_media_queries.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/emails/summary.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/form-embed-wizard.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-base.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-full.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-base.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-full.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-dashicons.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-form-preview.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-no-styles.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/ai/ai-forms.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/ai/chat-element.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/ai/form-templates-page.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/ai/modal.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/divi/choices.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-base.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-full.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-base.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-full.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/square/admin-settings-square.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square-card-placeholder.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square-card-placeholder.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/admin-settings-stripe.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe-common.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/divi/wpforms-stripe.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/wpforms-stripe.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/integrations/woocommerce/notifications.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/css/logger.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/fonts/wpforms.woff2 create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/complete-guide-to-wpforms-settings.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/how-choose-right-form-field.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/how-create-gdpr-compliant-forms.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/how-install-activate-wpforms-addons.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/icon-full.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/icon-none.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/icon-partial.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-affwp.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-aioseo.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-charitable.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-duplicator.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-edd.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-mi.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-om.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-pushengage.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-rp.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-sb-fb.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-sb-instagram.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-sb-twitter.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-sb-youtube.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-searchwp.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-seedprod.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-smtp.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-sugarcalendar.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-trustpulse.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-wp-simple-pay.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/plugin-wpcode.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/about/team.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-activecampaign.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-airtable.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-authorize-net.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-aweber.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-brevo.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-calculations.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-campaign-monitor.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-captcha.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-conditional-logic.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-constant-contact.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-conversational-forms.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-convertkit.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-coupons.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-drip.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-dropbox.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-entry-automation.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-form-abandonment.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-form-locker.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-form-pages.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-form-templates-pack.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-geolocation.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-getresponse.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-calendar.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-drive.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-sheets.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-hubspot.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-kit.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-lead-forms.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailchimp.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailerlite.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailpoet.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-make.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-n8n.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-notion.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-offline-forms.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-paypal-commerce.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-paypal-standard.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-pdf.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-pipedrive.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-post-submissions.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-quiz.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-salesforce.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-save-resume.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-sendinblue.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-signatures.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-slack.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-square.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-stripe.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-surveys-polls.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-twilio.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-user-journey.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-user-registration.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-webhooks.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-zapier.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/addon-icon-zoho-crm.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/admin-flyout-menu/sullie-active.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/admin-flyout-menu/sullie-default.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/akismet.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/cloudflare.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/country-filter.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/custom-captcha.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/hcaptcha.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/keyword-filter.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/anti-spam/recaptcha.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/brand.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder-default-arrow.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/back.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/check-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/default-arrow.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/ie-logo.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/illustration-marketing.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/illustration-payments.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/image-upload-placeholder.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/loading-avatar.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/loading-spinner.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/placeholder-200x125.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/builder/toggle-tab-bg.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/bar-bg.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/chevron-circle-down-regular.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/confetti.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/getting-started.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/party-popper.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/popup-contact.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/red-arrow.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/sullie-circle.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/challenge/times-circle-regular.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/check-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/check-solid.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/announcements.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/announcements@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/dev-docs.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/dev-docs@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/suggest.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/suggest@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/vip-circle.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/vip-circle@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/wpbeginner.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/wpbeginner@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/youtube.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/community/youtube@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-logo.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-logo@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step1.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step2.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step3.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step4.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-screenshot-01.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-screenshot-02.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-thumbnail-01.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-thumbnail-02.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/cross-inverse.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/cross.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/dashicons-arrow-right-alt.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-full@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-tnail.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-tnail@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/duplicator/wpforms-duplicator.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/edit-post-education-page-1.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/edit-post-education-page-2.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/icon-downward.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/icon-overview.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/icon-upward.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/info-block-icon.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/notification-block-icon.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-classic.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-compact.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-elegant.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-modern.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-placeholder.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-plaintext.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/email/template-tech.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/no-entries.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/no-fields.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/no-form-elementor.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/no-forms.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/no-user-templates.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-lite.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-pro.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/no-payments.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/empty-states/waving-hand-emoji.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/entry-automation/education.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/exclamation-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle-orange.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/file-code.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/lock-alt.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/triangle-exclamation.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/geolocation-education/address-autocomplete.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/geolocation-education/address-autocomplete@2x.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/geolocation-education/entry-location.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/geolocation-education/entry-location@2x.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/geolocation-education/smart-address-field.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/geolocation-education/smart-address-field@2x.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-background.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-button.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-container.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-field.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-label.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-themes.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-chart-smaller.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-chart.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-file.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-graph.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-provider-constant-contact.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-provider-uncanny-automator.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-tags.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-user-template.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/icon-wpforms.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-answer-icon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-error-icon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature-icon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-form-empty-state.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-warning-icon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/back.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-orange.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-red.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/close.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/flag-usa.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/globe-americas.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-business.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-capitals.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-design.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-learn.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-market.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-pizza.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-restaurant.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-blue.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-purple.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop-sign.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-sullie.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-ticket.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/insert.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/leaf-maple.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/pin-chat.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/store.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-hover.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-inactive.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-solid.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-up.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/tree-palm.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/ai/unpin-chat.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/divi/wpforms-icon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/font/icon-wpforms.woff2 create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/wpforms-icon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/gutenberg/block-preview.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/stripe/cc-preview.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/integrations/woocommerce/mail.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/jquery.minicolors.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/check-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/cloud.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/envelope.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/info-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-ai.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-alt.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/raised-hand.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-connect/wait.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-access-controls.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-access-controls@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-members.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-members@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-user-role-editor.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-user-role-editor@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/logo-negative.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/logo.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/page-plugin/arrow-right.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/chevron.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/icon-exclamation.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-coupons.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-payments.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-refunded.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-sales.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-subscription.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-coupon.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-cycle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-date.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-lifetime-total.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-method.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-one-time.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-subscription.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-total.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/single/info-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/star.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-active.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-cancelled.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-completed.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-failed.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-n-a.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-not-synced.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-partrefund.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-pending.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-processed.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-refunded.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/pdf-education/pdf.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/phone/us-flag.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-full.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-full@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-tnail.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-tnail@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/wpforms-wpconsent.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/recaptcha-placeholder.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/richtext/tinymce-toolbar-basic-mb.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/richtext/tinymce-toolbar-basic.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/richtext/tinymce-toolbar-full-mb.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/richtext/tinymce-toolbar-full.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/search.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-captcha-addon.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-captcha-cloudflare.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-captcha-hcaptcha.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-captcha-none.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-captcha-recaptcha.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-email-html.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/settings-email-plaintext.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/arrow-right.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/pattie-2.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/pattie.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/screenshot-full.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/screenshot-tnail.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/wpforms-wpmailsmtp.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/smtp/wpforms-wpmailsmtp@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/spinner-blue.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/spinner-white.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/spinner.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/splash/sullie.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/step-1.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/step-2.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/step-3.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/step-complete.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/stripe/stripe-connect.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/submit-spin.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/screenshot-full@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/screenshot-tnail.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/screenshot-tnail@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/wpforms-sugar-calendar.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sullie-alt.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sullie-builder-mobile.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sullie-edit-post-education.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sullie-vc.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/sullie.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/thumbnail-simple-contact-form-template.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/times-circle.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/trash-red.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/trash.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-full@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-tnail.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-tnail@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/wpforms-uncanny-automator.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-1.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-10.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-2.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-3.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-4.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-5.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-6.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-7.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-8.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-9.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-testimonial-bill.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-testimonial-david.jpg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/welcome-video.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-full@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-tnail.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-tnail@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/images/wpconsent/wpforms-wpconsent.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/wpforms-logo.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/images/zoom.svg create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/admin-editor.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/admin-notifications.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/admin.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder-providers.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/chocolate-choices.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/choices-list.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/context-menu.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/drag-fields.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/dropdown-list.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/email-template.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/field-map.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/fields/internal-information.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/fields/numbers.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/fields/rating.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/form-templates.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/help.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/image-upload.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/copy-paste.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/keyboard-shortcuts.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/actions.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/keyboard-shortcuts.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/multi-select.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-command-base.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-add.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-delete.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-duplicate.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-move.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-image-add-remove.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-items-add-remove.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-delete.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-duplicate.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-paste.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-add.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-delete.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/choices-list.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/date-time-pickers.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/form-themes.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/helpers-fields.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/helpers.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-choicesjs.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-codemirror.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-command-base.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-simple.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-smart-tags.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-tinymce.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-toggle.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/multiple-choices.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/panel-loader.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/payments-utils.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/providers.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/search-fields.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/settings.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/setup.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/smart-tags.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/templates.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/builder-themes-no-access.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/builder-themes.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/modules/advanced-settings.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/modules/background.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/modules/common.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/modules/stock-photos.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/themes/modules/themes.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/builder/wpforms-choicesjs.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/challenge/challenge-admin.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/challenge/challenge-builder.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/challenge/challenge-core.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/challenge/challenge-embed.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/education/core.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/education/edit-post.es5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/education/pdf.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/education/pointers/payment.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/email/settings.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/form-embed-wizard.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/forms/overview.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/logger/logger.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/notices.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/pages/common.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/pages/form-templates.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/pages/privacy-compliance.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/pages/smtp.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/payments/overview.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/payments/single.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/share/admin-utils.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/share/contrast-checker.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/share/list-table-ext.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/share/xor.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/admin/splash/modal.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/frontend/fields/address.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/frontend/fields/text-limit.es5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/frontend/wpforms-confirmation.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/frontend/wpforms-modern.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/frontend/wpforms.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/api.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-choices.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-forms.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-text.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/wpforms-ai-chat-element.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/wpforms-ai-dock.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/choices/wpforms-ai-modal.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/form-generator.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/main.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/modals.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/preview.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/auth.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/builder.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/divi/formselector.es5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/divi/modern/formselector.es5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor-context.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor-modern.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/frontend.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/themes.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/gutenberg/formselector-legacy.es5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/square/admin/builder-square.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/square/admin/settings-square.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/square/wpforms-square.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-builder-modern-stripe.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-builder-stripe-card-field.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-builder-stripe.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-settings-stripe.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/wpforms-stripe-elements.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/wpforms-stripe-payment-element.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/woocommerce/notifications.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/integrations/wpcode/wpcode.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/js/share/utils.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/languages/wpforms-lite.pot create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/chart.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/chartjs-adapter-moment.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/choices.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/conditions.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/flatpickr/flatpickr.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/flatpickr/flatpickr.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/font-awesome/css/all.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/font-awesome/css/v4-shims.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/font-awesome/webfonts/fa-brands-400.woff2 create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/font-awesome/webfonts/fa-regular-400.woff2 create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/font-awesome/webfonts/fa-solid-900.woff2 create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/font-awesome/webfonts/fa-v4compatibility.woff2 create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/htmx.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.confirm/jquery-confirm.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.confirm/jquery-confirm.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.inputmask.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.insert-at-caret.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.minicolors/jquery.minicolors.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.minicolors/jquery.minicolors.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.tooltipster/jquery.tooltipster.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.tooltipster/jquery.tooltipster.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/jquery.validate.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/list.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/lity/lity.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/lity/lity.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/mailcheck.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/md5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/oops.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/punycode.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/purify.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/wpforms-multiselect/wpforms-multiselect-checkboxes.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lib/wpforms-multiselect/wpforms-multiselect-checkboxes.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/css/admin.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/css/admin/entries/entry-list.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/css/admin/entries/view-entry.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/css/builder-education.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/css/dashboard-education.min.css create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/images/sample/flag.png create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/images/sample/flag@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/images/sample/map.png create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/images/sample/map@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/images/sample/signature.png create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/images/sample/signature@2x.png create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/builder/admin-builder-lite.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/connect.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/dashboard-widget.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/education/core.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/education/lite-connect.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/entry-list.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/view-entry.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/integrations/elementor/themes.json create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/formselector.es5.min.js create mode 100644 wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/themes.json create mode 100644 wp-content/plugins/wpforms-lite/changelog.txt create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/admin.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/ajax-actions.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/class-builder.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/functions.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-base.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-fields.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-payments.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-providers.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-revisions.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-settings.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-setup.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-about.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-editor.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-menu.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-notices.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-review.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-settings.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/class-welcome.php create mode 100644 wp-content/plugins/wpforms-lite/includes/admin/settings-api.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-db.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-fields.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-form.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-install.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-process.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-providers.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-templates.php create mode 100644 wp-content/plugins/wpforms-lite/includes/class-widget.php create mode 100644 wp-content/plugins/wpforms-lite/includes/deprecated.php create mode 100644 wp-content/plugins/wpforms-lite/includes/emails/class-emails.php create mode 100644 wp-content/plugins/wpforms-lite/includes/emails/templates/body-default.php create mode 100644 wp-content/plugins/wpforms-lite/includes/emails/templates/default.php create mode 100644 wp-content/plugins/wpforms-lite/includes/emails/templates/field-default.php create mode 100644 wp-content/plugins/wpforms-lite/includes/emails/templates/footer-default.php create mode 100644 wp-content/plugins/wpforms-lite/includes/emails/templates/header-default.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-base.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-checkbox.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-email.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-gdpr-checkbox.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-internal-information.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-name.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-number-slider.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-number.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-radio.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-select.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-text.php create mode 100644 wp-content/plugins/wpforms-lite/includes/fields/class-textarea.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions-list.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/access.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/builder.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/checks.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/colors.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/data-presets.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/date-time.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/debug.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/education.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/escape-sanitize.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/filesystem-media.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/form-fields.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/forms.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/list.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/payments.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/plugins.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/privacy.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/providers.php create mode 100644 wp-content/plugins/wpforms-lite/includes/functions/utilities.php create mode 100644 wp-content/plugins/wpforms-lite/includes/integrations.php create mode 100644 wp-content/plugins/wpforms-lite/includes/providers/class-base.php create mode 100644 wp-content/plugins/wpforms-lite/includes/providers/class-constant-contact.php create mode 100644 wp-content/plugins/wpforms-lite/includes/templates/class-base.php create mode 100644 wp-content/plugins/wpforms-lite/includes/templates/class-blank.php create mode 100644 wp-content/plugins/wpforms-lite/includes/templates/class-simple-contact-form.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/addons.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/notice.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/actions.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/bulk-actions.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/entry-list.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/header.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/modal.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/table.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/admin/entries/single/entry.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/builder/context-menu.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/admin/did-you-know.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/challenge-popup-footer.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/dashboard-widget-before.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/admin/notice-bar.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/admin/settings/integrations-item.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/builder/did-you-know.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/ai-modal.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/top-bar.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/builder/providers-item.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/builder/settings-item.php create mode 100644 wp-content/plugins/wpforms-lite/lite/templates/education/lite-connect-modal.php create mode 100644 wp-content/plugins/wpforms-lite/lite/wpforms-lite.php create mode 100644 wp-content/plugins/wpforms-lite/readme.txt create mode 100644 wp-content/plugins/wpforms-lite/src/API.php create mode 100644 wp-content/plugins/wpforms-lite/src/Access/Capabilities.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Addons/Addons.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Addons/AddonsCache.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/AdminBarMenu.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/DataObjects/ColumnBase.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/Facades/ColumnsBase.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Blocks/Links.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Addons.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/PanelLoader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/SaveForm.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/AntiSpam.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/ContextMenu.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Help.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/HelpCache.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/ImageUpload.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Notifications/Advanced/EmailTemplate.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Settings/Themes.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Shortcuts.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplateSingleCache.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/Templates.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplatesCache.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Challenge.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Dashboard/Widget.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/AddonsItemBase.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/AddonsListBase.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/EditPost.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Geolocation.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Integrations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/SMTP.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Tools/EntryAutomation.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Calculations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Captcha.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Fields.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Geolocation.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/PDF.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Panel.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Payments.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Providers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Quiz.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Core.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/EducationInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Fields.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Helpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Payment.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Pointer.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Education/StringsTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/FlyoutMenu.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/FormEmbedWizard.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Ajax/Columns.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Ajax/Tags.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/BulkActions.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/ListTable.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Page.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Search.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Table/DataObjects/Column.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Table/Facades/Columns.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Tags.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/UserTemplates.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Forms/Views.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Helpers/Chart.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Helpers/Datepicker.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Loader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Notice.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Notifications/EventDriven.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Notifications/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/Community.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/ConstantContact.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/Duplicator.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/Page.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/PrivacyCompliance.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/SMTP.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/SugarCalendar.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/Templates.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Pages/UncannyAutomator.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Payments.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/ScreenOptions.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Coupons/Education.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Ajax.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/BulkActions.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Chart.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Coupon.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Filters.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Helpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/ModeToggle.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Page.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Search.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Table.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Overview/Traits/ResetNotices.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/PaymentsViewsInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Payments/Views/Single.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Revisions.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha/Captcha.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha/HCaptcha.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha/Page.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha/ReCaptcha.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha/Turnstile.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Email.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/ModernMarkup.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Settings/Payments.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/SiteHealth.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Splash/SplashCache.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Splash/SplashScreen.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Splash/SplashTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Splash/SplashUpgrader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Importers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Importers/Base.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Importers/ContactForm7.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Importers/ImporterInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Importers/NinjaForms.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Importers/PirateForms.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Tools.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/ActionScheduler.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/ActionSchedulerList.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/CodeSnippets.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/EntryAutomation.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/Export.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/Import.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/Importer.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/Logs.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/System.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Tools/Views/View.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Traits/FormTemplates.php create mode 100644 wp-content/plugins/wpforms-lite/src/Admin/Traits/HasScreenOptions.php create mode 100644 wp-content/plugins/wpforms-lite/src/Db/Payments/Meta.php create mode 100644 wp-content/plugins/wpforms-lite/src/Db/Payments/Payment.php create mode 100644 wp-content/plugins/wpforms-lite/src/Db/Payments/Queries.php create mode 100644 wp-content/plugins/wpforms-lite/src/Db/Payments/UpdateHelpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Db/Payments/ValueValidator.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Helpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/InfoBlocks.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Mailer.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/NotificationBlocks.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Preview.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Styler.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Summaries.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Tasks/FetchInfoBlocksTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Templates/Classic.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Templates/Compact.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Templates/General.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Templates/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Templates/Plain.php create mode 100644 wp-content/plugins/wpforms-lite/src/Emails/Templates/Summary.php create mode 100644 wp-content/plugins/wpforms-lite/src/ErrorHandler.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Akismet.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/AntiSpam.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Coupon/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/LikertScale/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/NetPromoterScore/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Signature/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Frontend.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Base/Frontend.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Camera/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Content/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/CreditCard/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/CustomCaptcha/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/DateTime/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Divider/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/EntryPreview/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/FileUpload/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Helpers/RequirementsAlerts.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Hidden/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Html/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Pagebreak/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Password/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentCheckbox/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentMultiple/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSelect/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSingle/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentTotal/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Phone/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Rating/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Richtext/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/AccessRestrictionsTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/CameraTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ContentInput.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileDisplayTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileEntriesEditTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileMethodsTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/MultiFieldMenu.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/NumberField.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ProField.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ReadOnlyField.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Fields/Url/Field.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Honeypot.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/IconChoices.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Locator.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Preview.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Submission.php create mode 100644 wp-content/plugins/wpforms-lite/src/Forms/Token.php create mode 100644 wp-content/plugins/wpforms-lite/src/Frontend/Amp.php create mode 100644 wp-content/plugins/wpforms-lite/src/Frontend/CSSVars.php create mode 100644 wp-content/plugins/wpforms-lite/src/Frontend/Captcha.php create mode 100644 wp-content/plugins/wpforms-lite/src/Frontend/Classic.php create mode 100644 wp-content/plugins/wpforms-lite/src/Frontend/Frontend.php create mode 100644 wp-content/plugins/wpforms-lite/src/Frontend/Modern.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/CacheBase.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/Chain.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/Crypto.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/DB.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/File.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/Form.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/PluginSilentUpgrader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/Templates.php create mode 100644 wp-content/plugins/wpforms-lite/src/Helpers/Transient.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/AI.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/API/API.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Choices.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Forms.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Request.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Response.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Base.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Choices.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Forms.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Enqueues.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/FieldOption.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Forms.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Pages/Templates.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/AI/Helpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Abilities/Abilities.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Api.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Request.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Response.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Auth.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/ConstantContact.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Core.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Migration/Migration.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Process.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FieldMapping.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FormBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/PageIntegrations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/DefaultContent/DefaultContent.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/DefaultThemes/DefaultThemes.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/Divi.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/Interfaces/FormsResolverInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/Interfaces/LocalizedDataInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/Traits/FormsResolverTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/Traits/LocalizedDataTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelector.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelectorModern.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/conversion-outline.json create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Divi/module.json create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Controls/WPFormsThemes.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Elementor.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Elementor/RestApi.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Elementor/ThemesData.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Widget.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Elementor/WidgetModern.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/FormSelector.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/RestApi.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/ThemesData.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/IntegrationInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/API.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/Integration.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/LiteConnect.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/RefreshAccessTokenTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Loader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/MotoPress/MotoPress.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/SMTP/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/SolidCentral/SolidCentral.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/AddonCompatibility.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Enqueues.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Traits/Content.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Connect.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Entries.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Notices.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Payments/SingleActionsHandler.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/WebhookSettings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Api.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookEvent.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookRoute.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/Base.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentCreated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/RefundUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionCreated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhooksManager.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Connection.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/CurlCompatibility.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Fields/Square.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Frontend.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Helpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/BlockEditor.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Divi.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Elementor.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/IntegrationInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Loader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Process.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Square.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/Tasks.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Square/WebhooksHealthCheck.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Enqueues.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Traits/ContentTrait.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Connect.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Notices.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Payments/SingleActionsHandler.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/WebhookSettings.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/ApiInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Common.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/DomainManager.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/PaymentIntents.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhookRoute.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Base.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefundUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefunded.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeSucceeded.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionCreated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionDeleted.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Exceptions/AmountMismatchException.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/InvoiceCreated.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/InvoicePaymentSucceeded.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhooksManager.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/DomainHealthCheck.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/PaymentElementCreditCard.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/StripeCreditCard.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/Traits/CreditCard.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Frontend.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Helpers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Process.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/RateLimit.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Stripe.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/StripeAddonCompatibility.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/WebhooksHealthCheck.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/Stripe/apple-developer-merchantid-domain-association create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/UncannyAutomator/UncannyAutomator.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/UsageTracking/SendUsageTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/UsageTracking/UsageTracking.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/WPCode/RegisterLibrary.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/WPCode/WPCode.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/WPMailSMTP/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/WPorg/Translations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Integrations/WooCommerce/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Connect.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/ConnectSkin.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/DashboardWidget.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/DidYouKnow.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/NoticeBar.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Confirmations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/DidYouKnow.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Fields.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Notifications.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Core.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/LiteConnect.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Pages/Addons.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Admin/Settings/Access.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Emails/Summaries.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/Abilities/Abilities.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/Elementor/ThemesData.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/Gutenberg/FormSelector.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/Gutenberg/ThemesData.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/Integration.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/LiteConnect.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/SendEntryTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Lite/Reports/EntriesCount.php create mode 100644 wp-content/plugins/wpforms-lite/src/Loader.php create mode 100644 wp-content/plugins/wpforms-lite/src/Logger/ListTable.php create mode 100644 wp-content/plugins/wpforms-lite/src/Logger/Log.php create mode 100644 wp-content/plugins/wpforms-lite/src/Logger/Record.php create mode 100644 wp-content/plugins/wpforms-lite/src/Logger/RecordQuery.php create mode 100644 wp-content/plugins/wpforms-lite/src/Logger/Records.php create mode 100644 wp-content/plugins/wpforms-lite/src/Logger/Repository.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Base.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Migrations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Tasks/UpgradeBaseTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade159.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1672.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade168.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade175.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1751.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade177.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade182.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade183.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade184.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade186.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade187.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_1.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_2.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_7.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_8_6.php create mode 100644 wp-content/plugins/wpforms-lite/src/Migrations/UpgradeBase.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Core.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Process.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilderInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrations.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrationsInterface.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Provider/Status.php create mode 100644 wp-content/plugins/wpforms-lite/src/Providers/Providers.php create mode 100644 wp-content/plugins/wpforms-lite/src/Requirements/Requirements.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AdminEmail.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorDisplay.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorEmail.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/Date.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldHtmlId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldValueId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FormId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FormName.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/Generic.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/OrderSummary.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageTitle.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageUrl.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/QueryVar.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/SiteName.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/SmartTag.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UniqueValue.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlLogin.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlLogout.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlLostPassword.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlReferer.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlRegister.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserDisplay.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserEmail.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFirstName.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFullName.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserId.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserIp.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserLastName.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserMeta.php create mode 100644 wp-content/plugins/wpforms-lite/src/SmartTags/SmartTags.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/AsyncRequestTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/DomainAutoRegistrationTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsMetaCleanupTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/FormsLocatorScanTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/IconChoicesFontAwesomeUpgradeTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration173Task.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration175Task.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/PurgeSpamTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/SquareSubscriptionTransactionIDTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/StripeLinkSubscriptionsTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Actions/WebhooksAutoConfigurationTask.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Meta.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Task.php create mode 100644 wp-content/plugins/wpforms-lite/src/Tasks/Tasks.php create mode 100644 wp-content/plugins/wpforms-lite/src/WPForms.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin-bar-menu.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/challenge/builder.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/challenge/embed.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/challenge/modal.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/challenge/welcome.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/components/chart.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/components/datepicker.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/dashboard/widget/settings.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/dashboard/widget/welcome.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/empty-states/no-forms.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/empty-states/no-user-templates.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/get-started.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/no-payments.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/popup.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/tooltip.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/forms/bulk-edit-tags.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/forms/search-box.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/forms/search-reset.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/notifications.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/pages/constant-contact.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/hidden-field.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/mode-toggle.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/reports.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/reset-filter-notice.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/advanced-details.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/details.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/entry-details.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/field.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/heading-navigation.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/log.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/no-payment.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-details.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-history.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/tablenav-filter-multiselect.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/payments/tablenav-filters.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/promotion.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/settings/email-heading.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/settings/hcaptcha-description.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/settings/recaptcha-description.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/settings/specific-note.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/settings/turnstile-description.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/splash/footer.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/splash/header.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/splash/modal.php create mode 100644 wp-content/plugins/wpforms-lite/templates/admin/splash/section.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/antispam/also-available.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/field-context-menu.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/fullscreen/abort-message.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/fullscreen/ie-notice.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/fullscreen/mobile-notice.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/help.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/notifications/email-template-link.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/notifications/email-template-modal.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/payment/recurring/item.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/payment/sidebar.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/revisions/list.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-disabled.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-limited.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/templates-item.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/themes/notices.php create mode 100644 wp-content/plugins/wpforms-lite/templates/builder/themes/preview.php create mode 100644 wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/classic-notice.php create mode 100644 wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/notice.php create mode 100644 wp-content/plugins/wpforms-lite/templates/education/admin/page.php create mode 100644 wp-content/plugins/wpforms-lite/templates/education/admin/payments/single-page.php create mode 100644 wp-content/plugins/wpforms-lite/templates/education/admin/settings/smtp-notice.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/classic-body.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/classic-field.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/classic-footer.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/classic-header.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/classic-queries.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/classic-style.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/compact-body.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/compact-field.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/compact-footer.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/compact-header.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/compact-queries.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/compact-style.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/general-body-plain.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/general-body.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/general-footer.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/general-header.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/general-queries.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/general-style.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-body-plain.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-body.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-footer-plain.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-footer.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-header.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-queries.php create mode 100644 wp-content/plugins/wpforms-lite/templates/emails/summary-style.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/content/action-buttons.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/file-upload/file-upload-backend.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/internal-information/icon-expanded.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/internal-information/icon-lightbulb.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/internal-information/icon-not-expanded.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/number-slider/builder-preview.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/number-slider/frontend.php create mode 100644 wp-content/plugins/wpforms-lite/templates/fields/total/summary-preview.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/constant-contact-v3/builder/connection.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/constant-contact-v3/builder/error.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/constant-contact-v3/builder/select-field.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/elementor/form-selector.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/elementor/no-forms.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/elementor/popup.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/stripe/builder/custom-metadata.php create mode 100644 wp-content/plugins/wpforms-lite/templates/integrations/wpcode/code-snippets.php create mode 100644 wp-content/plugins/wpforms-lite/uninstall.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/autoload.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/ClassLoader.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/InstalledVersions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/autoload_classmap.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/autoload_files.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/autoload_namespaces.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/autoload_psr4.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/autoload_real.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/autoload_static.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/installed.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/composer/platform_check.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/AbstractLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/InvalidArgumentException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/LogLevel.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/LoggerAwareInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/LoggerAwareTrait.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/LoggerInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/LoggerTrait.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/psr/log/Psr/Log/NullLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Iconv.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.big5.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp037.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp1006.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp1026.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp424.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp437.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp500.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp737.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp775.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp850.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp852.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp855.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp856.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp857.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp860.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp861.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp862.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp863.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp864.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp865.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp866.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp869.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp874.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp875.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp932.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp936.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp949.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.cp950.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-1.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-10.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-11.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-13.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-14.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-15.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-16.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-2.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-3.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-4.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-5.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-6.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-7.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-8.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-9.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.koi8-r.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.koi8-u.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.us-ascii.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1250.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1251.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1252.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1253.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1254.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1255.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1256.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1257.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1258.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/Resources/charset/translit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/bootstrap.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-iconv/bootstrap80.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/Mbstring.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/bootstrap.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-mbstring/bootstrap80.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/Php80.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/PhpToken.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/symfony/polyfill-php80/bootstrap.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/action-scheduler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionClaim.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Compatibility.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_InvalidActionException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ListTable.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_LogEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_NullLogEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_OptionLock.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_RecurringActionScheduler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_SystemInformation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Cancel_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Create_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Delete_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Generate_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Get_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/List_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Next_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Run_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Clean_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/Migration_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/ProgressBar.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/WP_CLI/System_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Lock.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_WPCLI_Command.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_NullAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/ActionMigrator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/BatchFetcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/Config.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/Controller.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/DryRun_ActionMigrator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/DryRun_LogMigrator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/LogMigrator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/Runner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/migration/Scheduler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_Schedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_SimpleSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_AdminView_Deprecated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/deprecated/functions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/functions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/WP_Async_Request.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_HoursField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_YearField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/lib/cron-expression/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor/woocommerce/action-scheduler/license.txt create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Authentication/AuthGroup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Authentication/AuthInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/ContextInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Format.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Logger/ApiLoggerInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/NonEmptyParamInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/ParamInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/RequestArraySerialization.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/RequestInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/RequestMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/RequestSetterInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Request/TypeValidatorInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Core/Response/ResponseInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Http/HttpClientInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Http/HttpConfigurations.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Http/RetryOption.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Sdk/ConverterInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core-interfaces/src/Sdk/ExceptionInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/ApiCall.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Authentication/Auth.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Authentication/CoreAuth.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Client.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/ClientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Exceptions/AuthValidationException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/ApiLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/Configuration/BaseHttpLoggingConfiguration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/Configuration/LoggingConfiguration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/Configuration/RequestConfiguration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/Configuration/ResponseConfiguration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/ConsoleLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/LoggerConstants.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Logger/NullApiLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/AdditionalFormParams.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/AdditionalHeaderParams.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/AdditionalQueryParams.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/BodyParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/EncodedParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/FormParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/HeaderParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/MultipleParams.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/Parameter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/QueryParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Parameters/TemplateParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/Request.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Request/RequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/Context.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/ResponseError.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/ResponseHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/Types/DeserializableType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/Types/ErrorType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/Types/ResponseMultiType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Response/Types/ResponseType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/BodyMatchers/BodyComparator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/BodyMatchers/BodyMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/BodyMatchers/KeysAndValuesBodyMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/BodyMatchers/KeysBodyMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/BodyMatchers/NativeBodyMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/BodyMatchers/RawBodyMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/CoreTestCase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/HeadersMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/StatusCodeMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/TestCase/TestParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/CallbackCatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/Sdk/CoreApiResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/Sdk/CoreCallback.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/Sdk/CoreContext.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/Sdk/CoreFileWrapper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/Sdk/CoreRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Types/Sdk/CoreResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Utils/CoreHelper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Utils/DateHelper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Utils/JsonHelper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Utils/XmlDeserializer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/core/src/Utils/XmlSerializer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/example/Address.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/example/Contact.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/example/run.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/src/AnyOfValidationException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/src/JsonMapper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/src/JsonMapperException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/src/OneOfValidationException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/jsonmapper/src/TypeCombination.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/unirest-php/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/unirest-php/src/Configuration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/unirest-php/src/HttpClient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/unirest-php/src/Request/Body.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/unirest-php/src/Request/Request.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/apimatic/unirest-php/src/Response.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.auto.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.composer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.func.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.includes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.kses.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.path.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ratio.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ContentEditable.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoreferrer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/AttrValidator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Config.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Context.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Generator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoopener.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoreferrer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/IDAccumulator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Language.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Language/messages/en.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Length.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Node.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Node/Comment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Node/Element.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Node/Text.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/PercentEncoder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Queue.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Core.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/StringHashParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token/Comment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token/Empty.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token/End.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token/Start.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token/Tag.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Token/Text.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/TokenFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URI.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/data.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/file.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/http.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/https.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/news.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/VarParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/VarParserException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/php-jsonpointer/php-jsonpointer/src/Rs/Json/Pointer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/php-jsonpointer/php-jsonpointer/src/Rs/Json/Pointer/InvalidJsonException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/php-jsonpointer/php-jsonpointer/src/Rs/Json/Pointer/InvalidPointerException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/php-jsonpointer/php-jsonpointer/src/Rs/Json/Pointer/NonWalkableJsonException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/php-jsonpointer/php-jsonpointer/src/Rs/Json/Pointer/NonexistentValueReferencedException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/example-autoload.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/ApiHelper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/ApplePayApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/BankAccountsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/BaseApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/BookingCustomAttributesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/BookingsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CardsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CashDrawersApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CatalogApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CheckoutApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CustomerCustomAttributesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CustomerGroupsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CustomerSegmentsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/CustomersApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/DevicesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/DisputesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/EmployeesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/EventsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/GiftCardActivitiesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/GiftCardsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/InventoryApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/InvoicesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/LaborApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/LocationCustomAttributesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/LocationsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/LoyaltyApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/MerchantCustomAttributesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/MerchantsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/MobileAuthorizationApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/OAuthApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/OrderCustomAttributesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/OrdersApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/PaymentsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/PayoutsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/RefundsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/SitesApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/SnippetsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/SubscriptionsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/TeamApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/TerminalApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/TransactionsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/V1TransactionsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/VendorsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Apis/WebhookSubscriptionsApi.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Authentication/BearerAuthCredentialsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Authentication/BearerAuthManager.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/BearerAuthCredentials.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/ConfigurationDefaults.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/ConfigurationInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Environment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Exceptions/ApiException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Http/ApiResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Http/HttpCallBack.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Http/HttpContext.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Http/HttpMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Http/HttpRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Http/HttpResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ACHDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AcceptDisputeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AcceptedPaymentMethods.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AccumulateLoyaltyPointsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AccumulateLoyaltyPointsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ActionCancelReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ActivityType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AddGroupToCustomerResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AdditionalRecipient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Address.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AdjustLoyaltyPointsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AdjustLoyaltyPointsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AfterpayDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ApplicationDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ApplicationDetailsExternalSquareProduct.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ApplicationType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/AppointmentSegment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ArchivedState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Availability.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BankAccount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BankAccountPaymentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BankAccountStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BankAccountType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchChangeInventoryRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchChangeInventoryResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchDeleteCatalogObjectsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchDeleteCatalogObjectsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveCatalogObjectsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveCatalogObjectsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveInventoryChangesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveInventoryChangesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveInventoryCountsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveInventoryCountsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveOrdersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchRetrieveOrdersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchUpsertCatalogObjectsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BatchUpsertCatalogObjectsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Booking.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingBookingSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingCreatorDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingCreatorDetailsCreatorType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingCustomAttributeDeleteRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingCustomAttributeDeleteResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingCustomAttributeUpsertRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingCustomAttributeUpsertResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BookingStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BreakType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ACHDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AcceptDisputeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AcceptedPaymentMethodsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AccumulateLoyaltyPointsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AccumulateLoyaltyPointsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AddGroupToCustomerResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AdditionalRecipientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AddressBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AdjustLoyaltyPointsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AdjustLoyaltyPointsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AfterpayDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ApplicationDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AppointmentSegmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/AvailabilityBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BankAccountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BankAccountPaymentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchChangeInventoryRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchChangeInventoryResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchDeleteCatalogObjectsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchDeleteCatalogObjectsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveCatalogObjectsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveCatalogObjectsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveInventoryChangesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveInventoryChangesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveInventoryCountsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveInventoryCountsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveOrdersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchRetrieveOrdersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchUpsertCatalogObjectsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BatchUpsertCatalogObjectsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BookingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BookingCreatorDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BookingCustomAttributeDeleteRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BookingCustomAttributeDeleteResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BookingCustomAttributeUpsertRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BookingCustomAttributeUpsertResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BreakTypeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateCustomerDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateCustomersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateCustomersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateTeamMembersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateTeamMembersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateVendorsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkCreateVendorsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteBookingCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteBookingCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteCustomersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteCustomersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteLocationCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteLocationCustomAttributesRequestLocationCustomAttributeDeleteRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteLocationCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteLocationCustomAttributesResponseLocationCustomAttributeDeleteResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteMerchantCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteMerchantCustomAttributesRequestMerchantCustomAttributeDeleteRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteMerchantCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteMerchantCustomAttributesResponseMerchantCustomAttributeDeleteResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteOrderCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteOrderCustomAttributesRequestDeleteCustomAttributeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkDeleteOrderCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveBookingsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveBookingsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveCustomersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveCustomersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveTeamMemberBookingProfilesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveTeamMemberBookingProfilesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveVendorsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkRetrieveVendorsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkSwapPlanRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkSwapPlanResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateCustomerDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateCustomersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateCustomersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateTeamMembersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateTeamMembersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateVendorsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpdateVendorsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertBookingCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertBookingCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertCustomerCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertCustomerCustomAttributesRequestCustomerCustomAttributeUpsertRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertCustomerCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertCustomerCustomAttributesResponseCustomerCustomAttributeUpsertResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertLocationCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertLocationCustomAttributesRequestLocationCustomAttributeUpsertRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertLocationCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertLocationCustomAttributesResponseLocationCustomAttributeUpsertResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertMerchantCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertMerchantCustomAttributesRequestMerchantCustomAttributeUpsertRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertMerchantCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertMerchantCustomAttributesResponseMerchantCustomAttributeUpsertResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertOrderCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertOrderCustomAttributesRequestUpsertCustomAttributeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BulkUpsertOrderCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BusinessAppointmentSettingsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BusinessBookingProfileBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BusinessHoursBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BusinessHoursPeriodBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/BuyNowPayLaterDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CalculateLoyaltyPointsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CalculateLoyaltyPointsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CalculateOrderRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CalculateOrderResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelBookingRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelBookingResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelInvoiceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelInvoiceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelLoyaltyPromotionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelPaymentByIdempotencyKeyRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelPaymentByIdempotencyKeyResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelPaymentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelTerminalActionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelTerminalCheckoutResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CancelTerminalRefundResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CaptureTransactionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CardPaymentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CardPaymentTimelineBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CashAppDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CashDrawerDeviceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CashDrawerShiftBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CashDrawerShiftEventBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CashDrawerShiftSummaryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CashPaymentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogAvailabilityPeriodBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCategoryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCustomAttributeDefinitionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCustomAttributeDefinitionNumberConfigBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCustomAttributeDefinitionSelectionConfigBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCustomAttributeDefinitionSelectionConfigCustomAttributeSelectionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCustomAttributeDefinitionStringConfigBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogCustomAttributeValueBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogDiscountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogEcomSeoDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogIdMappingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogImageBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogInfoResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogInfoResponseLimitsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemFoodAndBeverageDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemFoodAndBeverageDetailsDietaryPreferenceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemFoodAndBeverageDetailsIngredientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemModifierListInfoBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemOptionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemOptionForItemBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemOptionValueBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemOptionValueForItemVariationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogItemVariationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogMeasurementUnitBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogModifierBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogModifierListBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogModifierOverrideBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogObjectBatchBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogObjectBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogObjectCategoryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogObjectReferenceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogPricingRuleBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogProductSetBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryExactBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryItemVariationsForItemOptionValuesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryItemsForItemOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryItemsForModifierListBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryItemsForTaxBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryPrefixBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryRangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQuerySetBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQuerySortedAttributeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQueryTextBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQuickAmountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogQuickAmountsSettingsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogStockConversionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogSubscriptionPlanBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogSubscriptionPlanVariationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogTaxBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogTimePeriodBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CatalogV1IdBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CategoryPathToRootNodeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ChangeBillingAnchorDateRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ChangeBillingAnchorDateResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ChargeRequestAdditionalRecipientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ChargeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ChargeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutLocationSettingsBrandingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutLocationSettingsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutLocationSettingsCouponsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutLocationSettingsPolicyBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutLocationSettingsTippingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutMerchantSettingsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutMerchantSettingsPaymentMethodsAfterpayClearpayBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutMerchantSettingsPaymentMethodsAfterpayClearpayEligibilityRangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutMerchantSettingsPaymentMethodsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutMerchantSettingsPaymentMethodsPaymentMethodBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CheckoutOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ClearpayDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CloneOrderRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CloneOrderResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CollectedDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CompletePaymentRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CompletePaymentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ComponentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ConfirmationDecisionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ConfirmationOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CoordinatesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateBookingCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateBookingCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateBookingRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateBookingResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateBreakTypeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateBreakTypeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCatalogImageRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCatalogImageResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCheckoutRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCheckoutResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerCardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerGroupRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerGroupResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateCustomerResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateDeviceCodeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateDeviceCodeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateDisputeEvidenceFileRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateDisputeEvidenceFileResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateDisputeEvidenceTextRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateDisputeEvidenceTextResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateGiftCardActivityRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateGiftCardActivityResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateGiftCardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateGiftCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateInvoiceAttachmentRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateInvoiceAttachmentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateInvoiceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateInvoiceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateJobRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateJobResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLocationCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLocationCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLocationRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLocationResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLoyaltyAccountRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLoyaltyAccountResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLoyaltyPromotionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLoyaltyPromotionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLoyaltyRewardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateLoyaltyRewardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateMerchantCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateMerchantCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateMobileAuthorizationCodeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateMobileAuthorizationCodeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateOrderCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateOrderCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateOrderRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateOrderResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreatePaymentLinkRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreatePaymentLinkResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreatePaymentRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreatePaymentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateRefundRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateRefundResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateShiftRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateShiftResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTeamMemberRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTeamMemberResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTerminalActionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTerminalActionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTerminalCheckoutRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTerminalCheckoutResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTerminalRefundRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateTerminalRefundResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateVendorRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateVendorResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateWebhookSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CreateWebhookSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomAttributeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomAttributeDefinitionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomAttributeFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomFieldBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerAddressFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerCreationSourceFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerCustomAttributeFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerCustomAttributeFilterValueBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerCustomAttributeFiltersBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerGroupBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerPreferencesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerSegmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerSortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerTaxIdsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/CustomerTextFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DataCollectionOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DateRangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteBookingCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteBookingCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteBreakTypeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCatalogObjectResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCustomerCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCustomerCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCustomerCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCustomerGroupResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCustomerRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteCustomerResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteDisputeEvidenceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteInvoiceAttachmentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteInvoiceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteInvoiceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteLocationCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteLocationCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteLoyaltyRewardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteMerchantCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteMerchantCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteOrderCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteOrderCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeletePaymentLinkResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteShiftResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteSnippetResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteSubscriptionActionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeleteWebhookSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeprecatedCreateDisputeEvidenceFileRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeprecatedCreateDisputeEvidenceFileResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeprecatedCreateDisputeEvidenceTextRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeprecatedCreateDisputeEvidenceTextResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DestinationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DestinationDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DestinationDetailsCardRefundDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DestinationDetailsCashRefundDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DestinationDetailsExternalRefundDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceAttributesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceCheckoutOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceCodeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsApplicationDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsBatteryDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsCardReaderDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsEthernetDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsMeasurementBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsNetworkInterfaceDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceComponentDetailsWiFiDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceMetadataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DeviceStatusBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DigitalWalletDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DisableCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DisableEventsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DismissTerminalActionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DismissTerminalCheckoutResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DismissTerminalRefundResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DisputeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DisputeEvidenceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DisputeEvidenceFileBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/DisputedPaymentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EmployeeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EmployeeWageBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EnableEventsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ErrorBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EventBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EventDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EventMetadataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/EventTypeMetadataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ExternalPaymentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FilterValueBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FloatNumberRangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentDeliveryDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentFulfillmentEntryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentPickupDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentPickupDetailsCurbsidePickupDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentRecipientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/FulfillmentShipmentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetBankAccountByV1IdResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetBankAccountResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetBreakTypeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetDeviceCodeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetDeviceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetEmployeeWageResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetInvoiceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetPaymentRefundResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetPaymentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetPayoutResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetShiftResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetTeamMemberWageResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetTerminalActionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetTerminalCheckoutResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GetTerminalRefundResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityActivateBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityAdjustDecrementBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityAdjustIncrementBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityBlockBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityClearBalanceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityDeactivateBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityImportBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityImportReversalBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityLoadBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityRedeemBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityRefundBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityTransferBalanceFromBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityTransferBalanceToBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityUnblockBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardActivityUnlinkedActivityRefundBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/GiftCardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InventoryAdjustmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InventoryAdjustmentGroupBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InventoryChangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InventoryCountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InventoryPhysicalCountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InventoryTransferBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceAcceptedPaymentMethodsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceAttachmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceCustomFieldBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoicePaymentReminderBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoicePaymentRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceRecipientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceRecipientTaxIdsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/InvoiceSortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ItemVariationLocationOverridesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/JobAssignmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/JobBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LinkCustomerToGiftCardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LinkCustomerToGiftCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBankAccountsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBankAccountsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBookingCustomAttributeDefinitionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBookingCustomAttributeDefinitionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBookingCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBookingCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBookingsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBookingsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBreakTypesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListBreakTypesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCardsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCardsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCashDrawerShiftEventsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCashDrawerShiftEventsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCashDrawerShiftsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCashDrawerShiftsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCatalogRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCatalogResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerCustomAttributeDefinitionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerCustomAttributeDefinitionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerGroupsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerGroupsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerSegmentsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomerSegmentsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListCustomersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDeviceCodesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDeviceCodesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDevicesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDevicesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDisputeEvidenceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDisputeEvidenceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDisputesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListDisputesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListEmployeeWagesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListEmployeeWagesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListEmployeesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListEmployeesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListEventTypesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListEventTypesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListGiftCardActivitiesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListGiftCardActivitiesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListGiftCardsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListGiftCardsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListInvoicesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListInvoicesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListJobsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListJobsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationBookingProfilesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationBookingProfilesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationCustomAttributeDefinitionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationCustomAttributeDefinitionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLocationsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLoyaltyProgramsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLoyaltyPromotionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListLoyaltyPromotionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListMerchantCustomAttributeDefinitionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListMerchantCustomAttributeDefinitionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListMerchantCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListMerchantCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListMerchantsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListMerchantsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListOrderCustomAttributeDefinitionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListOrderCustomAttributeDefinitionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListOrderCustomAttributesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListOrderCustomAttributesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPaymentLinksRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPaymentLinksResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPaymentRefundsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPaymentRefundsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPaymentsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPaymentsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPayoutEntriesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPayoutEntriesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPayoutsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListPayoutsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListRefundsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListRefundsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListSitesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListSubscriptionEventsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListSubscriptionEventsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListTeamMemberBookingProfilesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListTeamMemberBookingProfilesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListTeamMemberWagesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListTeamMemberWagesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListTransactionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListTransactionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListWebhookEventTypesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListWebhookEventTypesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListWebhookSubscriptionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListWebhookSubscriptionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListWorkweekConfigsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ListWorkweekConfigsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LocationBookingProfileBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LocationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyAccountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyAccountExpiringPointDeadlineBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyAccountMappingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventAccumulatePointsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventAccumulatePromotionPointsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventAdjustPointsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventCreateRewardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventDateTimeFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventDeleteRewardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventExpirePointsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventLocationFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventLoyaltyAccountFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventOrderFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventOtherBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventRedeemRewardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyEventTypeFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramAccrualRuleBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramAccrualRuleCategoryDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramAccrualRuleItemVariationDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramAccrualRuleSpendDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramAccrualRuleVisitDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramExpirationPolicyBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramRewardDefinitionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramRewardTierBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyProgramTerminologyBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyPromotionAvailableTimeDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyPromotionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyPromotionIncentiveBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyPromotionIncentivePointsAdditionDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyPromotionIncentivePointsMultiplierDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyPromotionTriggerLimitBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/LoyaltyRewardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/MBreakBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/MeasurementUnitBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/MeasurementUnitCustomBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/MerchantBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ModifierLocationOverridesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/MoneyBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ObtainTokenRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ObtainTokenResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OfflinePaymentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderCreatedBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderCreatedObjectBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderEntryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentDeliveryDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentFulfillmentEntryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentPickupDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentPickupDetailsCurbsidePickupDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentRecipientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentShipmentDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentUpdatedBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentUpdatedObjectBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderFulfillmentUpdatedUpdateBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemAppliedDiscountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemAppliedServiceChargeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemAppliedTaxBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemDiscountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemModifierBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemPricingBlocklistsBlockedDiscountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemPricingBlocklistsBlockedTaxBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemPricingBlocklistsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderLineItemTaxBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderMoneyAmountsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderPricingOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderQuantityUnitBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnDiscountBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnLineItemBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnLineItemModifierBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnServiceChargeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnTaxBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderReturnTipBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderRewardBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderRoundingAdjustmentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderServiceChargeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderSourceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderUpdatedBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/OrderUpdatedObjectBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaginationCursorBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PauseSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PauseSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PayOrderRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PayOrderResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityAppFeeRefundDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityAppFeeRevenueDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityAutomaticSavingsDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityAutomaticSavingsReversedDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityChargeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityDepositFeeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityDepositFeeReversedDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityDisputeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityFeeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityFreeProcessingDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityHoldAdjustmentDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityOpenDisputeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityOtherAdjustmentDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityOtherDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityRefundDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityReleaseAdjustmentDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityReserveHoldDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityReserveReleaseDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivitySquareCapitalPaymentDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivitySquareCapitalReversedPaymentDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivitySquarePayrollTransferDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivitySquarePayrollTransferReversedDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityTaxOnFeeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityThirdPartyFeeDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBalanceActivityThirdPartyFeeRefundDetailBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentLinkBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentLinkRelatedResourcesBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PaymentRefundBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PayoutBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PayoutEntryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PayoutFeeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PhaseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PhaseInputBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PrePopulatedDataBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ProcessingFeeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PublishInvoiceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/PublishInvoiceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/QrCodeOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/QuantityRatioBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/QuickPayBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ReceiptOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RedeemLoyaltyRewardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RedeemLoyaltyRewardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RefundBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RefundPaymentRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RefundPaymentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RegisterDomainRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RegisterDomainResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RemoveGroupFromCustomerResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ResumeSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ResumeSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveBookingCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveBookingCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveBookingCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveBookingCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveBookingResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveBusinessBookingProfileResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCashDrawerShiftRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCashDrawerShiftResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCatalogObjectRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCatalogObjectResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerGroupResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveCustomerSegmentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveDisputeEvidenceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveDisputeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveEmployeeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveGiftCardFromGANRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveGiftCardFromGANResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveGiftCardFromNonceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveGiftCardFromNonceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveGiftCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryAdjustmentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryChangesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryChangesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryCountRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryCountResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryPhysicalCountResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveInventoryTransferResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveJobResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationBookingProfileResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLocationSettingsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLoyaltyAccountResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLoyaltyProgramResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLoyaltyPromotionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveLoyaltyRewardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveMerchantCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveMerchantCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveMerchantCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveMerchantCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveMerchantResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveMerchantSettingsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveOrderCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveOrderCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveOrderCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveOrderCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveOrderResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrievePaymentLinkResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveSnippetResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveTeamMemberBookingProfileResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveTeamMemberResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveTokenStatusResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveTransactionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveVendorResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveWageSettingResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RetrieveWebhookSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RevokeTokenRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RevokeTokenResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/RiskEvaluationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SaveCardOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchAvailabilityFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchAvailabilityQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchAvailabilityRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchAvailabilityResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchCatalogItemsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchCatalogItemsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchCatalogObjectsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchCatalogObjectsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchCustomersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchCustomersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchEventsFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchEventsQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchEventsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchEventsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchEventsSortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchInvoicesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchInvoicesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyAccountsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyAccountsRequestLoyaltyAccountQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyAccountsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyEventsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyEventsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyRewardsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyRewardsRequestLoyaltyRewardQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchLoyaltyRewardsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersCustomerFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersDateTimeFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersFulfillmentFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersSortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersSourceFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchOrdersStateFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchShiftsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchShiftsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchSubscriptionsFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchSubscriptionsQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchSubscriptionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchSubscriptionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTeamMembersFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTeamMembersQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTeamMembersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTeamMembersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTerminalActionsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTerminalActionsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTerminalCheckoutsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTerminalCheckoutsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTerminalRefundsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchTerminalRefundsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchVendorsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchVendorsRequestFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchVendorsRequestSortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SearchVendorsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SegmentFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SelectOptionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SelectOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShiftBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShiftFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShiftQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShiftSortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShiftWageBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShiftWorkdayBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/ShippingFeeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SignatureImageBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SignatureOptionsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SiteBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SnippetBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SnippetResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SourceApplicationBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SquareAccountDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/StandardUnitDescriptionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/StandardUnitDescriptionGroupBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubmitEvidenceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionActionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionEventBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionEventInfoBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionPhaseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionPricingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionSourceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SubscriptionTestResultBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SwapPlanRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/SwapPlanResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TaxIdsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TeamMemberAssignedLocationsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TeamMemberBookingProfileBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TeamMemberBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TeamMemberWageBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TenderBankAccountDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TenderBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TenderBuyNowPayLaterDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TenderCardDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TenderCashDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TenderSquareAccountDetailsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalActionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalActionQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalActionQueryFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalActionQuerySortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalCheckoutBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalCheckoutQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalCheckoutQueryFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalCheckoutQuerySortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalRefundBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalRefundQueryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalRefundQueryFilterBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TerminalRefundQuerySortBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TestWebhookSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TestWebhookSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TimeRangeBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TipSettingsBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/TransactionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UnlinkCustomerFromGiftCardRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UnlinkCustomerFromGiftCardResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateBookingCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateBookingCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateBookingRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateBookingResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateBreakTypeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateBreakTypeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCatalogImageRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCatalogImageResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCustomerCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCustomerCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCustomerGroupRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCustomerGroupResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCustomerRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateCustomerResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateInvoiceRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateInvoiceResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateItemModifierListsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateItemModifierListsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateItemTaxesRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateItemTaxesResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateJobRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateJobResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateLocationCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateLocationCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateLocationRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateLocationResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateLocationSettingsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateLocationSettingsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateMerchantCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateMerchantCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateMerchantSettingsRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateMerchantSettingsResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateOrderCustomAttributeDefinitionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateOrderCustomAttributeDefinitionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateOrderRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateOrderResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdatePaymentLinkRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdatePaymentLinkResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdatePaymentRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdatePaymentResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateShiftRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateShiftResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateTeamMemberRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateTeamMemberResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateVendorRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateVendorResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWageSettingRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWageSettingResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWebhookSubscriptionRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWebhookSubscriptionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWebhookSubscriptionSignatureKeyRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWebhookSubscriptionSignatureKeyResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWorkweekConfigRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpdateWorkweekConfigResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertBookingCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertBookingCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertCatalogObjectRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertCatalogObjectResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertCustomerCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertCustomerCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertLocationCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertLocationCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertMerchantCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertMerchantCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertOrderCustomAttributeRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertOrderCustomAttributeResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertSnippetRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/UpsertSnippetResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1DeviceBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1ListOrdersRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1ListOrdersResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1MoneyBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1OrderBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1OrderHistoryEntryBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1PhoneNumberBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1TenderBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/V1UpdateOrderRequestBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/VendorBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/VendorContactBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/VoidTransactionResponseBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/WageSettingBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/WebhookSubscriptionBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Builders/WorkweekConfigBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateCustomerData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateCustomersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateCustomersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateTeamMembersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateTeamMembersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateVendorsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkCreateVendorsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteBookingCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteBookingCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteCustomersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteCustomersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteLocationCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteLocationCustomAttributesRequestLocationCustomAttributeDeleteRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteLocationCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteLocationCustomAttributesResponseLocationCustomAttributeDeleteResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteMerchantCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteMerchantCustomAttributesRequestMerchantCustomAttributeDeleteRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteMerchantCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteMerchantCustomAttributesResponseMerchantCustomAttributeDeleteResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteOrderCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteOrderCustomAttributesRequestDeleteCustomAttribute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkDeleteOrderCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveBookingsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveBookingsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveCustomersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveCustomersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveTeamMemberBookingProfilesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveTeamMemberBookingProfilesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveVendorsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkRetrieveVendorsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkSwapPlanRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkSwapPlanResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateCustomerData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateCustomersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateCustomersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateTeamMembersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateTeamMembersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateVendorsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpdateVendorsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertBookingCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertBookingCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertCustomerCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertCustomerCustomAttributesRequestCustomerCustomAttributeUpsertRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertCustomerCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertCustomerCustomAttributesResponseCustomerCustomAttributeUpsertResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertLocationCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertLocationCustomAttributesRequestLocationCustomAttributeUpsertRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertLocationCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertLocationCustomAttributesResponseLocationCustomAttributeUpsertResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertMerchantCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertMerchantCustomAttributesRequestMerchantCustomAttributeUpsertRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertMerchantCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertMerchantCustomAttributesResponseMerchantCustomAttributeUpsertResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertOrderCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertOrderCustomAttributesRequestUpsertCustomAttribute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BulkUpsertOrderCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessAppointmentSettings.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessAppointmentSettingsAlignmentTime.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessAppointmentSettingsBookingLocationType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessAppointmentSettingsCancellationPolicy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessAppointmentSettingsMaxAppointmentsPerDayLimitType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessBookingProfile.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessBookingProfileBookingPolicy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessBookingProfileCustomerTimezoneChoice.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessHours.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BusinessHoursPeriod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/BuyNowPayLaterDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CalculateLoyaltyPointsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CalculateLoyaltyPointsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CalculateOrderRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CalculateOrderResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelBookingRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelBookingResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelInvoiceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelInvoiceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelLoyaltyPromotionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelPaymentByIdempotencyKeyRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelPaymentByIdempotencyKeyResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelPaymentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelTerminalActionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelTerminalCheckoutResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CancelTerminalRefundResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CaptureTransactionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Card.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CardBrand.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CardCoBrand.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CardPaymentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CardPaymentTimeline.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CardPrepaidType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CardType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashAppDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashDrawerDevice.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashDrawerEventType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashDrawerShift.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashDrawerShiftEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashDrawerShiftState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashDrawerShiftSummary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CashPaymentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogAvailabilityPeriod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCategory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCategoryType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionAppVisibility.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionNumberConfig.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionSelectionConfig.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionSelectionConfigCustomAttributeSelection.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionSellerVisibility.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionStringConfig.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeDefinitionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogCustomAttributeValue.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogDiscount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogDiscountModifyTaxBasis.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogDiscountType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogEcomSeoData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogIdMapping.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogImage.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogInfoResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogInfoResponseLimits.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemFoodAndBeverageDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemFoodAndBeverageDetailsDietaryPreference.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemFoodAndBeverageDetailsDietaryPreferenceStandardDietaryPreference.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemFoodAndBeverageDetailsDietaryPreferenceType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemFoodAndBeverageDetailsIngredient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemFoodAndBeverageDetailsIngredientStandardIngredient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemModifierListInfo.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemOption.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemOptionForItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemOptionValue.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemOptionValueForItemVariation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemProductType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogItemVariation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogMeasurementUnit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogModifier.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogModifierList.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogModifierListModifierType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogModifierListSelectionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogModifierOverride.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogObjectBatch.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogObjectCategory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogObjectReference.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogObjectType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogPricingRule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogPricingType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogProductSet.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryExact.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryItemVariationsForItemOptionValues.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryItemsForItemOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryItemsForModifierList.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryItemsForTax.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryPrefix.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryRange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuerySet.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuerySortedAttribute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQueryText.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuickAmount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuickAmountType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuickAmountsSettings.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogQuickAmountsSettingsOption.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogStockConversion.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogSubscriptionPlan.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogSubscriptionPlanVariation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogTax.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogTimePeriod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CatalogV1Id.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CategoryPathToRootNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ChangeBillingAnchorDateRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ChangeBillingAnchorDateResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ChangeTiming.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ChargeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ChargeRequestAdditionalRecipient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ChargeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Checkout.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettings.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettingsBranding.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettingsBrandingButtonShape.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettingsBrandingHeaderType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettingsCoupons.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettingsPolicy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutLocationSettingsTipping.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutMerchantSettings.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutMerchantSettingsPaymentMethods.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutMerchantSettingsPaymentMethodsAfterpayClearpay.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutMerchantSettingsPaymentMethodsAfterpayClearpayEligibilityRange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutMerchantSettingsPaymentMethodsPaymentMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CheckoutOptionsPaymentType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ClearpayDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CloneOrderRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CloneOrderResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CollectedData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CompletePaymentRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CompletePaymentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Component.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ComponentComponentType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ConfirmationDecision.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ConfirmationOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Coordinates.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Country.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateBookingCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateBookingCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateBookingRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateBookingResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateBreakTypeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateBreakTypeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCatalogImageRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCatalogImageResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCheckoutRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCheckoutResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerCardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerGroupRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerGroupResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateCustomerResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateDeviceCodeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateDeviceCodeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateDisputeEvidenceFileRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateDisputeEvidenceFileResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateDisputeEvidenceTextRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateDisputeEvidenceTextResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateGiftCardActivityRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateGiftCardActivityResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateGiftCardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateGiftCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateInvoiceAttachmentRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateInvoiceAttachmentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateInvoiceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateInvoiceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateJobRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateJobResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLocationCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLocationCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLocationRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLocationResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLoyaltyAccountRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLoyaltyAccountResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLoyaltyPromotionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLoyaltyPromotionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLoyaltyRewardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateLoyaltyRewardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateMerchantCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateMerchantCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateMobileAuthorizationCodeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateMobileAuthorizationCodeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateOrderCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateOrderCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateOrderRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateOrderResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreatePaymentLinkRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreatePaymentLinkResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreatePaymentRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreatePaymentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateRefundRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateRefundResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateShiftRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateShiftResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTeamMemberRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTeamMemberResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTerminalActionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTerminalActionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTerminalCheckoutRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTerminalCheckoutResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTerminalRefundRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateTerminalRefundResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateVendorRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateVendorResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateWebhookSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CreateWebhookSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Currency.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomAttribute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomAttributeDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomAttributeDefinitionVisibility.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomAttributeFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Customer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerAddressFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerCreationSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerCreationSourceFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerCustomAttributeFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerCustomAttributeFilterValue.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerCustomAttributeFilters.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerGroup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerInclusionExclusion.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerPreferences.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerSegment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerSort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerTaxIds.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/CustomerTextFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DataCollectionOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DataCollectionOptionsInputType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DateRange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DayOfWeek.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteBookingCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteBookingCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteBreakTypeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCatalogObjectResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCustomerCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCustomerCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCustomerCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCustomerGroupResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCustomerRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteCustomerResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteDisputeEvidenceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteInvoiceAttachmentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteInvoiceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteInvoiceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteLocationCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteLocationCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteLoyaltyRewardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteMerchantCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteMerchantCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteOrderCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteOrderCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeletePaymentLinkResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteShiftResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteSnippetResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteSubscriptionActionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeleteWebhookSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeprecatedCreateDisputeEvidenceFileRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeprecatedCreateDisputeEvidenceFileResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeprecatedCreateDisputeEvidenceTextRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeprecatedCreateDisputeEvidenceTextResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Destination.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DestinationDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DestinationDetailsCardRefundDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DestinationDetailsCashRefundDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DestinationDetailsExternalRefundDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DestinationType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Device.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceAttributes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceAttributesDeviceType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceCheckoutOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceCode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceCodeStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsApplicationDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsBatteryDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsCardReaderDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsEthernetDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsExternalPower.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsMeasurement.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsNetworkInterfaceDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceComponentDetailsWiFiDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceMetadata.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DeviceStatusCategory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DigitalWalletDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisableCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisableEventsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DismissTerminalActionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DismissTerminalCheckoutResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DismissTerminalRefundResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Dispute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisputeEvidence.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisputeEvidenceFile.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisputeEvidenceType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisputeReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisputeState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/DisputedPayment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EcomVisibility.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Employee.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EmployeeStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EmployeeWage.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EnableEventsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Error.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ErrorCategory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ErrorCode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Event.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EventData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EventMetadata.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/EventTypeMetadata.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ExcludeStrategy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ExternalPaymentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FilterValue.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FloatNumberRange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Fulfillment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentDeliveryDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentDeliveryDetailsOrderFulfillmentDeliveryDetailsScheduleType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentFulfillmentEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentFulfillmentLineItemApplication.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentPickupDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentPickupDetailsCurbsidePickupDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentPickupDetailsScheduleType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentRecipient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentShipmentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/FulfillmentType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetBankAccountByV1IdResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetBankAccountResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetBreakTypeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetDeviceCodeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetDeviceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetEmployeeWageResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetInvoiceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetPaymentRefundResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetPaymentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetPayoutResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetShiftResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetTeamMemberWageResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetTerminalActionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetTerminalCheckoutResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GetTerminalRefundResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCard.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivity.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityActivate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityAdjustDecrement.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityAdjustDecrementReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityAdjustIncrement.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityAdjustIncrementReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityBlock.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityBlockReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityClearBalance.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityClearBalanceReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityDeactivate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityDeactivateReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityImport.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityImportReversal.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityLoad.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityRedeem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityRedeemStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityRefund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityTransferBalanceFrom.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityTransferBalanceTo.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityUnblock.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityUnblockReason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardActivityUnlinkedActivityRefund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardGANSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/GiftCardType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryAdjustment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryAdjustmentGroup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryAlertType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryChange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryChangeType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryCount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryPhysicalCount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InventoryTransfer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Invoice.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceAcceptedPaymentMethods.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceAttachment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceAutomaticPaymentSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceCustomField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceCustomFieldPlacement.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceDeliveryMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoicePaymentReminder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoicePaymentReminderStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoicePaymentRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceRecipient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceRecipientTaxIds.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceRequestMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceRequestType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceSort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/InvoiceStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ItemVariationLocationOverrides.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Job.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/JobAssignment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/JobAssignmentPayType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LinkCustomerToGiftCardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LinkCustomerToGiftCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBankAccountsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBankAccountsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBookingCustomAttributeDefinitionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBookingCustomAttributeDefinitionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBookingCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBookingCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBookingsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBookingsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBreakTypesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListBreakTypesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCardsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCardsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCashDrawerShiftEventsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCashDrawerShiftEventsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCashDrawerShiftsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCashDrawerShiftsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCatalogRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCatalogResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerCustomAttributeDefinitionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerCustomAttributeDefinitionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerGroupsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerGroupsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerSegmentsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomerSegmentsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListCustomersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDeviceCodesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDeviceCodesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDevicesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDevicesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDisputeEvidenceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDisputeEvidenceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDisputesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListDisputesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListEmployeeWagesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListEmployeeWagesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListEmployeesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListEmployeesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListEventTypesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListEventTypesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListGiftCardActivitiesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListGiftCardActivitiesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListGiftCardsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListGiftCardsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListInvoicesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListInvoicesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListJobsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListJobsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationBookingProfilesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationBookingProfilesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationCustomAttributeDefinitionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationCustomAttributeDefinitionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLocationsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLoyaltyProgramsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLoyaltyPromotionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListLoyaltyPromotionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListMerchantCustomAttributeDefinitionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListMerchantCustomAttributeDefinitionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListMerchantCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListMerchantCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListMerchantsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListMerchantsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListOrderCustomAttributeDefinitionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListOrderCustomAttributeDefinitionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListOrderCustomAttributesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListOrderCustomAttributesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPaymentLinksRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPaymentLinksResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPaymentRefundsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPaymentRefundsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPaymentsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPaymentsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPayoutEntriesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPayoutEntriesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPayoutsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListPayoutsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListRefundsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListRefundsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListSitesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListSubscriptionEventsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListSubscriptionEventsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListTeamMemberBookingProfilesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListTeamMemberBookingProfilesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListTeamMemberWagesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListTeamMemberWagesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListTransactionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListTransactionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListWebhookEventTypesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListWebhookEventTypesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListWebhookSubscriptionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListWebhookSubscriptionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListWorkweekConfigsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ListWorkweekConfigsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Location.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LocationBookingProfile.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LocationCapability.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LocationStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LocationType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyAccount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyAccountExpiringPointDeadline.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyAccountMapping.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyAccountMappingType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventAccumulatePoints.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventAccumulatePromotionPoints.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventAdjustPoints.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventCreateReward.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventDateTimeFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventDeleteReward.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventExpirePoints.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventLocationFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventLoyaltyAccountFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventOrderFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventOther.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventRedeemReward.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyEventTypeFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgram.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRuleCategoryData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRuleItemVariationData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRuleSpendData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRuleTaxMode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRuleType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramAccrualRuleVisitData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramExpirationPolicy.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramRewardDefinition.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramRewardDefinitionScope.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramRewardDefinitionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramRewardTier.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyProgramTerminology.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotion.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionAvailableTimeData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionIncentive.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionIncentivePointsAdditionData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionIncentivePointsMultiplierData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionIncentiveType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionTriggerLimit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyPromotionTriggerLimitInterval.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyReward.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/LoyaltyRewardStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MBreak.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitArea.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitCustom.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitGeneric.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitLength.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitTime.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitUnitType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitVolume.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MeasurementUnitWeight.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Merchant.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/MerchantStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ModifierLocationOverrides.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Money.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ObtainTokenRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ObtainTokenResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OfflinePaymentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Order.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderCreated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderCreatedObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentDeliveryDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentDeliveryDetailsScheduleType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentFulfillmentEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentFulfillmentLineItemApplication.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentPickupDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentPickupDetailsCurbsidePickupDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentPickupDetailsScheduleType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentRecipient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentShipmentDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentUpdatedObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderFulfillmentUpdatedUpdate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemAppliedDiscount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemAppliedServiceCharge.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemAppliedTax.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemDiscount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemDiscountScope.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemDiscountType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemItemType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemModifier.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemPricingBlocklists.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemPricingBlocklistsBlockedDiscount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemPricingBlocklistsBlockedTax.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemTax.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemTaxScope.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderLineItemTaxType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderMoneyAmounts.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderPricingOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderQuantityUnit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturn.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturnDiscount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturnLineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturnLineItemModifier.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturnServiceCharge.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturnTax.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReturnTip.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderReward.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderRoundingAdjustment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderServiceCharge.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderServiceChargeCalculationPhase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderServiceChargeScope.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderServiceChargeTreatmentType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderServiceChargeType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderUpdated.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/OrderUpdatedObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaginationCursor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PauseSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PauseSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayOrderRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayOrderResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Payment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityAppFeeRefundDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityAppFeeRevenueDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityAutomaticSavingsDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityAutomaticSavingsReversedDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityChargeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityDepositFeeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityDepositFeeReversedDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityDisputeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityFeeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityFreeProcessingDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityHoldAdjustmentDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityOpenDisputeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityOtherAdjustmentDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityOtherDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityRefundDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityReleaseAdjustmentDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityReserveHoldDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityReserveReleaseDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivitySquareCapitalPaymentDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivitySquareCapitalReversedPaymentDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivitySquarePayrollTransferDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivitySquarePayrollTransferReversedDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityTaxOnFeeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityThirdPartyFeeDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentBalanceActivityThirdPartyFeeRefundDetail.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentLink.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentLinkRelatedResources.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentOptionsDelayAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentRefund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PaymentSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Payout.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayoutEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayoutFee.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayoutFeeType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayoutStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PayoutType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Phase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PhaseInput.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PrePopulatedData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ProcessingFee.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Product.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ProductType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PublishInvoiceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/PublishInvoiceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/QrCodeOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/QuantityRatio.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/QuickPay.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Range.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ReceiptOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RedeemLoyaltyRewardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RedeemLoyaltyRewardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Refund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RefundPaymentRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RefundPaymentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RefundStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RegisterDomainRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RegisterDomainResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RegisterDomainResponseStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RemoveGroupFromCustomerResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ResumeSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ResumeSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveBookingCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveBookingCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveBookingCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveBookingCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveBookingResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveBusinessBookingProfileResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCashDrawerShiftRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCashDrawerShiftResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCatalogObjectRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCatalogObjectResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerGroupResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveCustomerSegmentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveDisputeEvidenceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveDisputeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveEmployeeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveGiftCardFromGANRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveGiftCardFromGANResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveGiftCardFromNonceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveGiftCardFromNonceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveGiftCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryAdjustmentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryChangesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryChangesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryCountRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryCountResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryPhysicalCountResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveInventoryTransferResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveJobResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationBookingProfileResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLocationSettingsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLoyaltyAccountResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLoyaltyProgramResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLoyaltyPromotionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveLoyaltyRewardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveMerchantCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveMerchantCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveMerchantCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveMerchantCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveMerchantResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveMerchantSettingsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveOrderCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveOrderCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveOrderCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveOrderCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveOrderResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrievePaymentLinkResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveSnippetResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveTeamMemberBookingProfileResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveTeamMemberResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveTokenStatusResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveTransactionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveVendorResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveWageSettingResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RetrieveWebhookSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RevokeTokenRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RevokeTokenResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RiskEvaluation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/RiskEvaluationRiskLevel.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SaveCardOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchAvailabilityFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchAvailabilityQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchAvailabilityRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchAvailabilityResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCatalogItemsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCatalogItemsRequestStockLevel.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCatalogItemsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCatalogObjectsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCatalogObjectsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCustomersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchCustomersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchEventsFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchEventsQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchEventsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchEventsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchEventsSort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchEventsSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchInvoicesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchInvoicesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyAccountsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyAccountsRequestLoyaltyAccountQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyAccountsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyEventsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyEventsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyRewardsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyRewardsRequestLoyaltyRewardQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchLoyaltyRewardsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersCustomerFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersDateTimeFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersFulfillmentFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersSort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersSourceFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchOrdersStateFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchShiftsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchShiftsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchSubscriptionsFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchSubscriptionsQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchSubscriptionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchSubscriptionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTeamMembersFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTeamMembersQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTeamMembersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTeamMembersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTerminalActionsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTerminalActionsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTerminalCheckoutsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTerminalCheckoutsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTerminalRefundsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchTerminalRefundsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchVendorsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchVendorsRequestFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchVendorsRequestSort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchVendorsRequestSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SearchVendorsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SegmentFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SelectOption.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SelectOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Shift.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftFilterStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftSort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftSortField.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftWage.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftWorkday.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShiftWorkdayMatcher.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/ShippingFee.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SignatureImage.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SignatureOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Site.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Snippet.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SnippetResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SortOrder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SourceApplication.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SquareAccountDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/StandardUnitDescription.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/StandardUnitDescriptionGroup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubmitEvidenceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Subscription.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionActionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionCadence.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionEventInfo.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionEventInfoCode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionEventSubscriptionEventType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionPhase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionPricing.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionPricingType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SubscriptionTestResult.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SwapPlanRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/SwapPlanResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TaxCalculationPhase.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TaxIds.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TaxInclusionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMember.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMemberAssignedLocations.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMemberAssignedLocationsAssignmentType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMemberBookingProfile.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMemberInvitationStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMemberStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TeamMemberWage.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Tender.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderBankAccountDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderBankAccountDetailsStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderBuyNowPayLaterDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderBuyNowPayLaterDetailsBrand.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderBuyNowPayLaterDetailsStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderCardDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderCardDetailsEntryMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderCardDetailsStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderCashDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderSquareAccountDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderSquareAccountDetailsStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TenderType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalActionActionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalActionQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalActionQueryFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalActionQuerySort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalCheckout.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalCheckoutQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalCheckoutQueryFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalCheckoutQuerySort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalRefund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalRefundQuery.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalRefundQueryFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TerminalRefundQuerySort.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TestWebhookSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TestWebhookSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TimeRange.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TipSettings.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Transaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TransactionProduct.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/TransactionType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UnlinkCustomerFromGiftCardRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UnlinkCustomerFromGiftCardResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateBookingCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateBookingCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateBookingRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateBookingResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateBreakTypeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateBreakTypeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCatalogImageRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCatalogImageResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCustomerCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCustomerCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCustomerGroupRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCustomerGroupResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCustomerRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateCustomerResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateInvoiceRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateInvoiceResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateItemModifierListsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateItemModifierListsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateItemTaxesRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateItemTaxesResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateJobRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateJobResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateLocationCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateLocationCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateLocationRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateLocationResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateLocationSettingsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateLocationSettingsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateMerchantCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateMerchantCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateMerchantSettingsRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateMerchantSettingsResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateOrderCustomAttributeDefinitionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateOrderCustomAttributeDefinitionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateOrderRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateOrderResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdatePaymentLinkRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdatePaymentLinkResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdatePaymentRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdatePaymentResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateShiftRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateShiftResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateTeamMemberRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateTeamMemberResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateVendorRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateVendorResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWageSettingRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWageSettingResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWebhookSubscriptionRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWebhookSubscriptionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWebhookSubscriptionSignatureKeyRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWebhookSubscriptionSignatureKeyResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWorkweekConfigRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpdateWorkweekConfigResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertBookingCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertBookingCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertCatalogObjectRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertCatalogObjectResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertCustomerCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertCustomerCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertLocationCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertLocationCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertMerchantCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertMerchantCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertOrderCustomAttributeRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertOrderCustomAttributeResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertSnippetRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/UpsertSnippetResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1Device.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1ListOrdersRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1ListOrdersResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1Money.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1Order.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1OrderHistoryEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1OrderHistoryEntryAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1OrderState.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1PhoneNumber.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1Tender.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1TenderCardBrand.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1TenderEntryMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1TenderType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1UpdateOrderRequest.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/V1UpdateOrderRequestAction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Vendor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/VendorContact.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/VendorStatus.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/VisibilityFilter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/VoidTransactionResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/WageSetting.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/WebhookSubscription.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/Weekday.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Models/WorkweekConfig.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Server.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/SquareClient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/SquareClientBuilder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Utils/CompatibilityConverter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Utils/FileWrapper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/square/square/src/Utils/WebhooksHelper.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/data/ca-certificates.crt create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/init.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Account.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/AccountLink.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/AccountSession.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/All.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/Create.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/Delete.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/NestedResource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/Request.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/Retrieve.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/Search.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/SingletonRetrieve.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiOperations/Update.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiRequestor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiResource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApiResponse.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApplePayDomain.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Application.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApplicationFee.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ApplicationFeeRefund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Apps/Secret.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Balance.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/BalanceTransaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/BankAccount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/BaseStripeClient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/BaseStripeClientInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/Alert.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/AlertTriggered.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/CreditBalanceSummary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/CreditBalanceTransaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/CreditGrant.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/Meter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/MeterEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/MeterEventAdjustment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Billing/MeterEventSummary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/BillingPortal/Configuration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/BillingPortal/Session.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Capability.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Card.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CashBalance.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Charge.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Checkout/Session.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Climate/Order.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Climate/Product.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Climate/Supplier.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Collection.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ConfirmationToken.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ConnectCollectionTransfer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CountrySpec.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Coupon.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CreditNote.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CreditNoteLineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Customer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CustomerBalanceTransaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CustomerCashBalanceTransaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/CustomerSession.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Discount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Dispute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Entitlements/ActiveEntitlement.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Entitlements/ActiveEntitlementSummary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Entitlements/Feature.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/EphemeralKey.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ErrorObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Event.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/EventData/V1BillingMeterErrorReportTriggeredEventData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/EventData/V1BillingMeterNoMeterFoundEventData.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Events/V1BillingMeterErrorReportTriggeredEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Events/V1BillingMeterNoMeterFoundEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/ApiConnectionException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/ApiErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/AuthenticationException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/BadMethodCallException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/CardException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/ExceptionInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/IdempotencyException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/InvalidArgumentException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/InvalidRequestException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/ExceptionInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/InvalidClientException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/InvalidGrantException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/InvalidRequestException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/InvalidScopeException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/OAuthErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/UnknownOAuthErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/UnsupportedGrantTypeException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/OAuth/UnsupportedResponseTypeException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/PermissionException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/RateLimitException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/SignatureVerificationException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/TemporarySessionExpiredException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/UnexpectedValueException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Exception/UnknownApiErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ExchangeRate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/File.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FileLink.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FinancialConnections/Account.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FinancialConnections/AccountOwner.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FinancialConnections/AccountOwnership.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FinancialConnections/Session.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FinancialConnections/Transaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Forwarding/Request.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/FundingInstructions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/HttpClient/ClientInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/HttpClient/CurlClient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/HttpClient/StreamingClientInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Identity/VerificationReport.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Identity/VerificationSession.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Invoice.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/InvoiceItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/InvoiceLineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/InvoiceRenderingTemplate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/Authorization.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/Card.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/CardDetails.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/Cardholder.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/Dispute.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/PersonalizationDesign.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/PhysicalBundle.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/Token.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Issuing/Transaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/LineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/LoginLink.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Mandate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/OAuth.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/OAuthErrorObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/PaymentIntent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/PaymentLink.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/PaymentMethod.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/PaymentMethodConfiguration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/PaymentMethodDomain.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Payout.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Person.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Plan.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Price.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Product.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ProductFeature.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/PromotionCode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Quote.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Radar/EarlyFraudWarning.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Radar/ValueList.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Radar/ValueListItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Reason.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/RecipientTransfer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Refund.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/RelatedObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Reporting/ReportRun.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Reporting/ReportType.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/RequestTelemetry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ReserveTransaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Review.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SearchResult.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/AbstractService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/AbstractServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/AccountLinkService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/AccountService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/AccountSessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ApplePayDomainService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ApplicationFeeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Apps/AppsServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Apps/SecretService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/BalanceService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/BalanceTransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/AlertService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/BillingServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/CreditBalanceSummaryService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/CreditBalanceTransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/CreditGrantService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/MeterEventAdjustmentService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/MeterEventService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Billing/MeterService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/BillingPortal/BillingPortalServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/BillingPortal/ConfigurationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/BillingPortal/SessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ChargeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Checkout/CheckoutServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Checkout/SessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Climate/ClimateServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Climate/OrderService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Climate/ProductService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Climate/SupplierService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ConfirmationTokenService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/CoreServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/CountrySpecService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/CouponService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/CreditNoteService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/CustomerService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/CustomerSessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/DisputeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Entitlements/ActiveEntitlementService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Entitlements/EntitlementsServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Entitlements/FeatureService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/EphemeralKeyService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/EventService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ExchangeRateService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/FileLinkService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/FileService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/FinancialConnections/AccountService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/FinancialConnections/FinancialConnectionsServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/FinancialConnections/SessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/FinancialConnections/TransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Forwarding/ForwardingServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Forwarding/RequestService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Identity/IdentityServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Identity/VerificationReportService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Identity/VerificationSessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/InvoiceItemService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/InvoiceRenderingTemplateService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/InvoiceService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/AuthorizationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/CardService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/CardholderService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/DisputeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/IssuingServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/PersonalizationDesignService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/PhysicalBundleService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/TokenService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Issuing/TransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/MandateService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/OAuthService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PaymentIntentService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PaymentLinkService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PaymentMethodConfigurationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PaymentMethodDomainService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PaymentMethodService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PayoutService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PlanService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PriceService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ProductService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/PromotionCodeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/QuoteService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Radar/EarlyFraudWarningService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Radar/RadarServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Radar/ValueListItemService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Radar/ValueListService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/RefundService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Reporting/ReportRunService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Reporting/ReportTypeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Reporting/ReportingServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ReviewService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ServiceNavigatorTrait.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/SetupAttemptService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/SetupIntentService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/ShippingRateService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Sigma/ScheduledQueryRunService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Sigma/SigmaServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/SourceService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/SubscriptionItemService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/SubscriptionScheduleService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/SubscriptionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Tax/CalculationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Tax/RegistrationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Tax/SettingsService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Tax/TaxServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Tax/TransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TaxCodeService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TaxIdService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TaxRateService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Terminal/ConfigurationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Terminal/ConnectionTokenService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Terminal/LocationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Terminal/ReaderService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Terminal/TerminalServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/ConfirmationTokenService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/CustomerService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Issuing/AuthorizationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Issuing/CardService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Issuing/IssuingServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Issuing/PersonalizationDesignService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Issuing/TransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/RefundService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Terminal/ReaderService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Terminal/TerminalServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/TestClockService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/TestHelpersServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Treasury/InboundTransferService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundPaymentService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Treasury/OutboundTransferService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedCreditService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Treasury/ReceivedDebitService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TestHelpers/Treasury/TreasuryServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TokenService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TopupService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/TransferService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/CreditReversalService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/DebitReversalService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/FinancialAccountService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/InboundTransferService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/OutboundPaymentService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/OutboundTransferService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/ReceivedCreditService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/ReceivedDebitService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/TransactionEntryService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/TransactionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/Treasury/TreasuryServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Billing/BillingServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Billing/MeterEventAdjustmentService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Billing/MeterEventService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Billing/MeterEventSessionService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Billing/MeterEventStreamService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Core/CoreServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Core/EventDestinationService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/Core/EventService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/V2/V2ServiceFactory.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Service/WebhookEndpointService.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SetupAttempt.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SetupIntent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ShippingRate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Sigma/ScheduledQueryRun.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SingletonApiResource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Source.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SourceMandateNotification.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SourceTransaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Stripe.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/StripeClient.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/StripeClientInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/StripeObject.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/StripeStreamingClientInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Subscription.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SubscriptionItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/SubscriptionSchedule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Tax/Calculation.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Tax/CalculationLineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Tax/Registration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Tax/Settings.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Tax/Transaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Tax/TransactionLineItem.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/TaxCode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/TaxDeductedAtSource.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/TaxId.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/TaxRate.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Terminal/Configuration.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Terminal/ConnectionToken.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Terminal/Location.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Terminal/Reader.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/TestHelpers/TestClock.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/ThinEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Token.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Topup.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Transfer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/TransferReversal.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/CreditReversal.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/DebitReversal.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/FinancialAccount.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/FinancialAccountFeatures.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/InboundTransfer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/OutboundPayment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/OutboundTransfer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/ReceivedCredit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/ReceivedDebit.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/Transaction.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Treasury/TransactionEntry.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/UsageRecord.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/UsageRecordSummary.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/ApiVersion.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/CaseInsensitiveArray.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/DefaultLogger.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/EventTypes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/LoggerInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/ObjectTypes.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/RandomGenerator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/RequestOptions.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/Set.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Util/Util.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/V2/Billing/MeterEvent.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/V2/Billing/MeterEventAdjustment.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/V2/Billing/MeterEventSession.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/V2/Collection.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/V2/Event.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/V2/EventDestination.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/Webhook.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/WebhookEndpoint.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/stripe/stripe-php/lib/WebhookSignature.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/CssSelectorConverter.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Exception/ExceptionInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Exception/ExpressionErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Exception/InternalErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Exception/ParseException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Exception/SyntaxErrorException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/AbstractNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/AttributeNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/ClassNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/CombinedSelectorNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/ElementNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/FunctionNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/HashNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/NegationNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/NodeInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/PseudoNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/SelectorNode.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Node/Specificity.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/CommentHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/HandlerInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/HashHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/IdentifierHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/NumberHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/StringHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Handler/WhitespaceHandler.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Parser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/ParserInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Reader.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Shortcut/ClassParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Shortcut/ElementParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Shortcut/HashParser.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Token.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/TokenStream.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Tokenizer/Tokenizer.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/AbstractExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/CombinationExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/ExtensionInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/FunctionExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/HtmlExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/NodeExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Extension/PseudoClassExtension.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/Translator.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/TranslatorInterface.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/symfony/css-selector/XPath/XPathExpr.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/true/punycode/LICENSE create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/true/punycode/src/Exception/DomainOutOfBoundsException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/true/punycode/src/Exception/LabelOutOfBoundsException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/true/punycode/src/Exception/OutOfBoundsException.php create mode 100644 wp-content/plugins/wpforms-lite/vendor_prefixed/true/punycode/src/Punycode.php create mode 100644 wp-content/plugins/wpforms-lite/wpforms.php diff --git a/admin_credentials.txt b/admin_credentials.txt index d888f1b..3a5458b 100644 --- a/admin_credentials.txt +++ b/admin_credentials.txt @@ -1,4 +1,4 @@ WordPress Admin Credentials: URL: http://localhost/wp-admin Username: admin -Password: c59u3v2geHuIQMRP +Password: dp7iP7FlGMDFXZo2 diff --git a/wp-content/mu-plugins/coco-3d.php b/wp-content/mu-plugins/coco-3d.php new file mode 100644 index 0000000..5118703 --- /dev/null +++ b/wp-content/mu-plugins/coco-3d.php @@ -0,0 +1,86 @@ + + + +
+
+ + + + +
+ +
+ + + 'How can I help you?']); + } + + require_once dirname(__DIR__, 2) . '/ai/LocalAIApi.php'; + + $languageNames = ['en' => 'English', 'fr' => 'French', 'ar' => 'Arabic']; + $targetLang = $languageNames[$lang] ?? 'English'; + + $systemPrompt = "You are Coco, the AI assistant for 'Coco Beauty Bar' in Casablanca. + Services: Manicure, Pedicure, Hair Styling, Facials, Massage. + Tone: Elegant, Professional. + + RESPONSE RULES: + 1. Be EXTREMELY CONCISE and BRIEF. + 2. Use short, direct sentences. + 3. Use bullet points for lists or recommendations. + 4. No redundancy or lengthy explanations. + 5. Respond ONLY in {$targetLang}. + + Call to Action: Suggest booking on 'Contact' page or calling +212 5XX-XXXXXX."; + + $resp = LocalAIApi::createResponse([ + 'input' => [ + ['role' => 'system', 'content' => $systemPrompt], + ['role' => 'user', 'content' => $message], + ], + ]); + + if (!empty($resp['success'])) { + $reply = LocalAIApi::extractText($resp); + } else { + $reply = "I'm sorry, I'm a bit overwhelmed right now. Please call us at +212 5XX-XXXXXX for assistance!"; + } + + wp_send_json(['reply' => $reply]); +} diff --git a/wp-content/mu-plugins/coco-contact-form.php b/wp-content/mu-plugins/coco-contact-form.php new file mode 100644 index 0000000..d86e052 --- /dev/null +++ b/wp-content/mu-plugins/coco-contact-form.php @@ -0,0 +1,114 @@ + 'Please fill in all required fields.']); + } + + require_once dirname(__DIR__, 2) . '/mail/MailService.php'; + + $to = getenv('MAIL_TO') ?: get_option('admin_email'); + $subject = "New Booking Request: $service from $name"; + + $body = "Name: $name\n"; + $body .= "Email: $email\n"; + $body .= "Phone: $phone\n"; + $body .= "Service: $service\n"; + $body .= "Message: $message\n"; + + $res = MailService::sendMail($to, $subject, nl2br($body), $body, ['reply_to' => $email]); + + if (!empty($res['success'])) { + wp_send_json_success(['message' => coco_i18n()->t('form_success')]); + } else { + wp_send_json_error(['message' => coco_i18n()->t('form_error')]); + } +} + +// Add the form shortcode +add_shortcode('coco_contact_form', function() { + ob_start(); + ?> +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ + + [ + 'site_title' => 'Coco Beauty Bar', + 'book_now' => 'Book Now', + 'chat_with_us' => 'Chat with Us', + 'home' => 'Home', + 'about' => 'About', + 'services' => 'Services', + 'gallery' => 'Gallery', + 'contact' => 'Contact', + 'hero_title' => 'Where Beauty Meets Elegance', + 'hero_subtitle' => 'Premium hair styling, beauty treatments and care in Casablanca.', + 'ai_assistant' => 'Coco AI Assistant', + 'ai_greeting' => "Hello! I'm Coco, your beauty assistant. How can I help you today?", + 'chat_placeholder' => 'Type a message...', + 'send' => 'Send', + 'close' => 'Close', + 'about_title' => 'About Coco Beauty Bar', + 'about_text' => 'At Coco Beauty Bar, we believe that every woman deserves to feel confident and beautiful. Our team of professional beauty experts uses only high-quality products in a relaxing environment designed to provide you with the ultimate care experience.', + 'services_title' => 'Our Services', + 'service_hair' => 'Hair Styling & Cuts', + 'service_hair_desc' => 'Modern styles and precision cuts tailored to your unique personality.', + 'service_nails' => 'Manicure & Pedicure', + 'service_nails_desc' => 'Pamper your hands and feet with our premium nail care services.', + 'service_facial' => 'Facial Treatments', + 'service_facial_desc' => 'Revitalize your skin with our specialized high-end facial care.', + 'faq_title' => 'Frequently Asked Questions', + 'faq_1_q' => 'Do I need to book in advance?', + 'faq_1_a' => 'Yes, we recommend booking at least 24 hours in advance to ensure availability, especially on weekends.', + 'faq_2_q' => 'What products do you use?', + 'faq_2_a' => 'We use premium, organic-certified products that are gentle on your skin and hair.', + 'faq_3_q' => 'Where are you located?', + 'faq_3_a' => 'We are located in the heart of Casablanca, near the Twin Center.', + 'form_name' => 'Full Name', + 'form_email' => 'Email Address', + 'form_phone' => 'Phone Number', + 'form_service' => 'Service Interested In', + 'form_message' => 'Message', + 'form_submit' => 'Send Booking Request', + 'form_success' => 'Thank you! Your booking request has been sent.', + 'form_error' => 'Sorry, there was an error sending your message.', + 'contact_title' => 'Book Your Beauty Session', + 'contact_subtitle' => 'Fill out the form below and we will confirm your appointment shortly.', + 'visit_us' => 'Visit Us', + 'call_us' => 'Call Us', + 'address' => '123 Luxury Lane, Casablanca, Morocco', + ], + 'fr' => [ + 'site_title' => "Coco Beauty Bar", + 'book_now' => "Réserver", + 'chat_with_us' => "Discutez avec nous", + 'home' => "Accueil", + 'about' => "À Propos", + 'services' => "Services", + 'gallery' => "Galerie", + 'contact' => "Contact", + 'hero_title' => "Où la Beauté Rencontre l'Élégance", + 'hero_subtitle' => "Coiffure premium, soins de beauté et soins à Casablanca.", + 'ai_assistant' => "Assistant IA Coco", + 'ai_greeting' => "Bonjour ! Je suis Coco, votre assistante beauté. Comment puis-je vous aider aujourd'hui ?", + 'chat_placeholder' => "Tapez un message...", + 'send' => "Envoyer", + 'close' => "Fermer", + 'about_title' => "À Propos de Coco Beauty Bar", + 'about_text' => "Chez Coco Beauty Bar, nous croyons que chaque femme mérite de se sentir confiante et belle. Notre équipe d'experts en beauté utilise uniquement des produits de haute qualité dans un environnement relaxant conçu pour vous offrir l'expérience de soin ultime.", + 'services_title' => "Nos Services", + 'service_hair' => "Coiffure & Coupes", + 'service_hair_desc' => "Styles modernes et coupes de précision adaptées à votre personnalité unique.", + 'service_nails' => "Manucure & Pédicure", + 'service_nails_desc' => "Prenez soin de vos mains et de vos pieds avec nos services de soins des ongles haut de gamme.", + 'service_facial' => "Soins du Visage", + 'service_facial_desc' => "Revitalisez votre peau avec nos soins du visage spécialisés haut de gamme.", + 'faq_title' => "Foire Aux Questions", + 'faq_1_q' => "Dois-je réserver à l'avance ?", + 'faq_1_a' => "Oui, nous recommandons de réserver au moins 24 heures à l'avance pour garantir la disponibilité, surtout le week-end.", + 'faq_2_q' => "Quels produits utilisez-vous ?", + 'faq_2_a' => "Nous utilisons des produits de qualité supérieure, certifiés biologiques, doux pour votre peau et vos cheveux.", + 'faq_3_q' => "Où êtes-vous situés ?", + 'faq_3_a' => "Nous sommes situés au cœur de Casablanca, près du Twin Center.", + 'form_name' => "Nom Complet", + 'form_email' => "Adresse Email", + 'form_phone' => "Numéro de Téléphone", + 'form_service' => "Service Intéressé", + 'form_message' => "Message", + 'form_submit' => "Envoyer la Demande de Réservation", + 'form_success' => "Merci ! Votre demande de réservation a été envoyée.", + 'form_error' => "Désolé, une erreur s'est produite lors de l'envoi de votre message.", + 'contact_title' => "Réservez votre séance de beauté", + 'contact_subtitle' => "Remplissez le formulaire ci-dessous et nous confirmerons votre rendez-vous sous peu.", + 'visit_us' => "Rendez-nous visite", + 'call_us' => "Appelez-nous", + 'address' => "123 Luxury Lane, Casablanca, Maroc", + ], + 'ar' => [ + 'site_title' => "كوكو بيوتي بار", + 'book_now' => "احجز الآن", + 'chat_with_us' => "تحدث معنا", + 'home' => "الرئيسية", + 'about' => "من نحن", + 'services' => "خدماتنا", + 'gallery' => "المعرض", + 'contact' => "اتصل بنا", + 'hero_title' => "حيث يلتقي الجمال بالأناقة", + 'hero_subtitle' => "تصفيف شعر متميز، علاجات تجميل وعناية في الدار البيضاء.", + 'ai_assistant' => "مساعد كوكو الذكي", + 'ai_greeting' => "مرحباً! أنا كوكو، مساعدتك للجمال. كيف يمكنني مساعدتك اليوم؟", + 'chat_placeholder' => "اكتب رسالة...", + 'send' => "إرسال", + 'close' => "إغلاق", + 'about_title' => "حول كوكو بيوتي بار", + 'about_text' => "في كوكو بيوتي بار، نؤمن أن كل امرأة تستحق أن تشعر بالثقة والجمال. يستخدم فريقنا من خبراء التجميل المحترفين فقط منتجات عالية الجودة في بيئة مريحة مصممة لتزويدك بتجربة العناية القصوى.", + 'services_title' => "خدماتنا", + 'service_hair' => "تصفيف وقص الشعر", + 'service_hair_desc' => "تصفيفات حديثة وقصات دقيقة مصممة لتناسب شخصيتك الفريدة.", + 'service_nails' => "مانيكير وباديكير", + 'service_nails_desc' => "دللي يديك وقدميك بخدمات العناية بالأظافر المتميزة لدينا.", + 'service_facial' => "علاجات الوجه", + 'service_facial_desc' => "جددي حيوية بشرتك مع عناية الوجه المتخصصة والراقية لدينا.", + 'faq_title' => "الأسئلة الشائعة", + 'faq_1_q' => "هل يجب علي الحجز مسبقاً؟", + 'faq_1_a' => "نعم، ننصح بالحجز قبل 24 ساعة على الأقل لضمان التوفر، خاصة في عطلات نهاية الأسبوع.", + 'faq_2_q' => "ما هي المنتجات التي تستخدمونها؟", + 'faq_2_a' => "نستخدم منتجات فاخرة معتمدة عضوياً ولطيفة على بشرتك وشعرك.", + 'faq_3_q' => "أين تقعون؟", + 'faq_3_a' => "نحن موجودون في قلب الدار البيضاء، بالقرب من التوين سنتر.", + 'form_name' => "الاسم الكامل", + 'form_email' => "البريد الإلكتروني", + 'form_phone' => "رقم الهاتف", + 'form_service' => "الخدمة المطلوبة", + 'form_message' => "الرسالة", + 'form_submit' => "إرسال طلب الحجز", + 'form_success' => "شكراً لك! تم إرسال طلب الحجز الخاص بك.", + 'form_error' => "عذراً، حدث خطأ أثناء إرسال رسالتك.", + 'contact_title' => "احجزي جلستك التجميلية", + 'contact_subtitle' => "املئي النموذج أدناه وسنقوم بتأكيد موعدك قريباً.", + 'visit_us' => "زورينا", + 'call_us' => "اتصلي بنا", + 'address' => "123 لاكشري لين، الدار البيضاء، المغرب", + ] + ]; + + public static function getInstance() { + if (self::$instance == null) self::$instance = new CocoI18n(); + return self::$instance; + } + + private function __construct() { + if (isset($_GET['lang']) && in_array($_GET['lang'], ['en', 'fr', 'ar'])) { + setcookie('coco_lang', $_GET['lang'], time() + (86400 * 30), "/"); + $this->lang = $_GET['lang']; + } elseif (isset($_COOKIE['coco_lang']) && in_array($_COOKIE['coco_lang'], ['en', 'fr', 'ar'])) { + $this->lang = $_COOKIE['coco_lang']; + } + + add_action('wp_head', [$this, 'render_styles']); + add_action('wp_footer', [$this, 'render_switcher']); + add_filter('language_attributes', [$this, 'filter_lang_attributes']); + add_shortcode('coco_t', [$this, 'shortcode_t']); + add_filter('wp_nav_menu_objects', [$this, 'translate_menu_items']); + } + + public function translate_menu_items($items) { + foreach ($items as $item) { + $key = strtolower($item->title); + if (isset($this->translations[$this->lang][$key])) { + $item->title = $this->translations[$this->lang][$key]; + } + } + return $items; + } + + public function shortcode_t($atts) { + $key = $atts['key'] ?? ''; + return $this->t($key); + } + + public function get_lang() { + return $this->lang; + } + + public function t($key) { + return $this->translations[$this->lang][$key] ?? $key; + } + + public function filter_lang_attributes($output) { + if ($this->lang === 'ar') { + return 'lang="ar" dir="rtl"'; + } elseif ($this->lang === 'fr') { + return 'lang="fr"'; + } + return 'lang="en"'; + } + + public function render_styles() { + if ($this->lang === 'ar') { + echo ''; + } + } + + public function render_switcher() { + ?> +
+ EN + FR + AR +
+ + + + + + + + + + +
+ t('book_now'); ?> +
+ + .ab-item .wp-admin-bar-arrow::before{top:6px !important}#wpadminbar #wp-admin-bar-wpforms-upgrade a{background-color:#00a32a;color:#ffffff}#wpadminbar #wp-admin-bar-wpforms-upgrade a:hover{background-color:#008a20}#wpadminbar .wpforms-menu-form-last{border-bottom:1px solid #3c4146 !important;margin-bottom:6px !important;padding-bottom:6px !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin-integrations.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin-integrations.min.css new file mode 100644 index 0000000..9e9050e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin-integrations.min.css @@ -0,0 +1 @@ +.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box{display:grid;grid-template-columns:repeat(2, 1fr);justify-items:center;animation:none;background:#ffffff;border-radius:6px;border-top-style:solid;border-top-width:4px;box-shadow:0 3px 6px rgba(0,0,0,0.15);padding-top:34px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons{grid-column:1 / -1}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default{border-top-width:0;padding-top:25px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c{margin-bottom:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c{font-size:44px;margin-bottom:-6px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm{background-color:#e27730;border-color:#e27730}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover{background-color:#cd6622;border-color:#cd6622}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red{border-top-color:#d63638 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#d63638 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm{background-color:#d63638;border-color:#d63638}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover{background-color:#b32d2e;border-color:#b32d2e}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange{border-top-color:#e27730 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#e27730 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm{background-color:#e27730;border-color:#e27730}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover{background-color:#cd6622;border-color:#cd6622}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow{border-top-color:#ffb900 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c{color:#ffb900 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm{background-color:#ffb900;border-color:#ffb900}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover{background-color:#ffaa00;border-color:#ffaa00}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue{border-top-color:#0399ed !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#0399ed !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm{background-color:#0399ed;border-color:#0399ed}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover{background-color:#036aab;border-color:#036aab}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green{border-top-color:#00a32a !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#00a32a !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm{background-color:#00a32a;border-color:#00a32a}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover{background-color:#008a20;border-color:#008a20}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple{border-top-color:#7a30e2 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#7a30e2 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm{background-color:#7a30e2;border-color:#7a30e2}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover{background-color:#5c24a9;border-color:#5c24a9}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{color:transparent;font-family:FontAwesome;height:14px;opacity:1;inset-inline-end:10px;top:10px;width:14px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after{color:#b0b2b3;content:"\f00d";font-size:16px;inset-inline-start:0;position:absolute;top:0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after{color:#50575e !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c{margin:0 0 20px 0;padding:0;font-weight:600}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{font-size:47px;margin:0;-ms-transform:none !important;-webkit-transform:none !important;transform:none !important;-webkit-transition:none !important;transition:none !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title{margin-top:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title{color:#3c434a;display:block;line-height:30px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane{display:block;margin-bottom:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content{color:#3c434a;font-size:16px;line-height:24px;margin-bottom:0;overflow:inherit}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p{color:#50575e;font-size:18px;padding:0 20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p{font-size:inherit;line-height:inherit;margin:0 0 16px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type{margin:0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large{font-size:18px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small{font-size:14px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.bold,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.bold,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.bold{font-weight:600}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong{font-weight:600}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select{margin:10px 2px;width:calc( 100% - 4px)}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content .error,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content .error,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content .error{color:#d63638;font-size:14px;font-weight:600;line-height:1.4;margin-top:10px;display:none}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased{display:block;grid-row:5;grid-column:1 / -1;color:#b0b2b3;font-size:14px;margin-top:15px;text-decoration:underline;text-align:center}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover{color:#50575e;text-decoration:underline}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note{grid-row:4;grid-column:1 / -1;margin:25px 0 0 0;text-align:center;width:100%}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p{background-color:#fcf9e8;color:#50575e;font-size:16px;margin:0 -30px;padding:22px 52px 12px 52px;position:relative}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after{background-color:#ffffff;border-radius:50%;color:#00a32a;content:"\f058";display:inline-block;font:normal normal normal 14px FontAwesome;font-size:26px;margin-inline-end:-18px;padding:5px 6px;position:absolute;inset-inline-end:50%;text-rendering:auto;top:-16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note span,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note span,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note span{color:#00a32a;font-weight:700}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note a,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note a,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note a{color:#50575e;display:block;margin-top:12px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .feature-video,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .feature-video,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .feature-video{margin:30px 0 0 0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video{margin:15px 0 10px 0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input),.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input),.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input){display:block;margin-top:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key{margin-top:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons{margin-top:-10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button{background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;color:#50575e;font-size:16px;font-weight:600;line-height:20px;outline:none;padding:11px 17px;text-transform:none;margin:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover{background:#e8e9e9;border-color:#c3c4c7}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button{min-width:83px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled]{cursor:no-drop;pointer-events:none}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm{color:#ffffff}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai{background-color:#faf5fe;border-color:#7a30e2;color:#7a30e2;padding:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:hover,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:focus,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:focus,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:focus{background-color:#f5e9ff;border-color:#5c24a9;color:#5c24a9}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai::before,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai::before,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai::before{content:'';display:inline-block;vertical-align:middle;width:16px;height:16px;background-image:url(../../images/integrations/ai/ai-feature.svg);background-size:16px 16px;margin-inline-end:8px;opacity:.85}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button{margin-left:0;margin-right:0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block{display:block;margin:0 0 10px 0 !important;text-align:center;width:100%}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case{text-transform:none !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i{margin-inline-end:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description{font-size:13px;line-height:1.4;margin-top:15px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-content-pane,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-content-pane,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-content-pane{max-height:calc( 100vh - 333px);transition-property:max-height;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-title-c{margin-bottom:15px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-columns,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-columns,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-columns{margin:30px 0 0 0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column{border:1px solid #c3c4c7;border-radius:4px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li{border-bottom:1px solid #dcdcde;font-size:14px;line-height:30px;margin:0;padding:8px 10px;text-align:start;display:flex}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li:last-child,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li:last-child,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li:last-child{border-bottom:none}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span{margin-inline-start:auto}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i{background-color:#ebf3fc;border-radius:4px;color:#036aab;display:inline-block;font-style:normal;line-height:16px;margin-inline-start:5px;min-width:30px;padding:5px 10px;text-transform:capitalize}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i:empty,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i:empty,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i:empty{display:none}.wpforms_page_wpforms-builder .jconfirm.jconfirm-wpforms-education .jconfirm-content-pane,.block-editor-page .jconfirm.jconfirm-wpforms-education .jconfirm-content-pane,.elementor-editor-active .jconfirm.jconfirm-wpforms-education .jconfirm-content-pane{height:auto !important;min-height:fit-content}.wpforms_page_wpforms-builder .choices,.block-editor-page .choices,.elementor-editor-active .choices{font-size:16px;text-align:start}.wpforms_page_wpforms-builder .choices input[type=text].choices__input:not(.wpforms-hidden),.block-editor-page .choices input[type=text].choices__input:not(.wpforms-hidden),.elementor-editor-active .choices input[type=text].choices__input:not(.wpforms-hidden){display:inline-block !important}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-box,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-box,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-box{padding-bottom:0;padding-top:30px}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .already-purchased,.block-editor-page .jconfirm.has-video .jconfirm-box-container .already-purchased,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .already-purchased{grid-row:4;grid-column:1 / 2;display:block;margin-top:0}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .already-purchased:hover,.block-editor-page .jconfirm.has-video .jconfirm-box-container .already-purchased:hover,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .already-purchased:hover{color:#50575e}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .discount-note,.block-editor-page .jconfirm.has-video .jconfirm-box-container .discount-note,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .discount-note{grid-row:5;margin:20px 0 0}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .discount-note p,.block-editor-page .jconfirm.has-video .jconfirm-box-container .discount-note p,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .discount-note p{margin:0 -30px;padding:20px 52px;border-radius:0 0 6px 6px}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .discount-note p:after,.block-editor-page .jconfirm.has-video .jconfirm-box-container .discount-note p:after,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .discount-note p:after{display:none}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .feature-video,.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .pro-feature-video,.block-editor-page .jconfirm.has-video .jconfirm-box-container .feature-video,.block-editor-page .jconfirm.has-video .jconfirm-box-container .pro-feature-video,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .feature-video,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .pro-feature-video{grid-row:1 / span 4;grid-column-start:2;margin-top:0;margin-inline-start:15px}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-title-c,.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-content-pane,.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-buttons,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-title-c,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-content-pane,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-buttons,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-title-c,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-content-pane,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-buttons{grid-column:1 / 2}.wpforms_page_wpforms-builder .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box,.block-editor-page .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box,.elementor-editor-active .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box{padding-bottom:30px}.wpforms_page_wpforms-builder .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .pro-feature-video,.block-editor-page .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .pro-feature-video,.elementor-editor-active .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .pro-feature-video{margin-bottom:0}.wpforms_page_wpforms-builder .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.block-editor-page .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.elementor-editor-active .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .jconfirm-buttons{padding-bottom:0}.wpforms_page_wpforms-builder.rtl .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.block-editor-page.rtl .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.elementor-editor-active.rtl .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{left:10px;right:auto}@media screen and (max-width: 1023px){.wpforms_page_wpforms-builder .jconfirm{display:none}}.wpforms-admin-empty-state-container{color:#50575e;font-style:normal;padding:30px;text-align:center}.wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url(../images/empty-states/waving-hand-emoji.png);background-position:0 0;background-repeat:no-repeat;background-size:24px 24px;display:inline-block;padding-left:34px}.wpforms-admin-empty-state-container h2{color:#1d2327;font-family:inherit;font-size:24px;font-weight:600;line-height:29px;margin:0 0 10px}.wpforms-admin-empty-state-container h4{color:#32373c;font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;margin-block:0}.wpforms-admin-empty-state-container img{max-width:428px;width:100%;margin:30px auto}.wpforms-admin-empty-state-container p{font-family:inherit;font-size:16px;line-height:24px;margin-block:0;text-align:center}.wpforms-admin-empty-state-container.wpforms-admin-no-forms p:first-of-type{font-weight:600}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active{border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:16px;line-height:1.5;text-align:center;color:#ffffff;padding:15px 30px;margin:0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:hover,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:focus,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px;line-height:16px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms{font-family:'Helvetica Neue', sans-serif;background:rgba(255,255,255,0.5);border:1px solid #71d7d7;box-sizing:border-box;padding:20px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms img{max-width:240px;width:100%;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms p{font-family:inherit;font-weight:normal;font-size:14px;line-height:18px;text-align:center;color:#495157;max-width:450px;margin:20px auto 0}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a{color:inherit;text-decoration:underline;position:relative}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn{background:#525962;border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:12px;line-height:1.5;text-align:center;text-transform:uppercase;color:#ffffff;padding:7px 17px;margin:20px 0 0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:hover{text-decoration:none;background:#2b2c31}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-admin-no-forms-footer{font-size:12px;line-height:1.5;color:#6d7882}.wpforms-admin-empty-state-container.wpforms-admin-no-entries img{max-width:413px;display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments{max-width:640px;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-admin-no-payments img{display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-btn-lg{border-radius:4px;padding:14px 20px}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]){color:#056aab;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]):hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h2,.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h4{font-weight:500}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p{font-size:14px;color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p.wpforms-admin-no-forms-footer{color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates img{max-width:560px;border-radius:4px;box-shadow:0 5px 15px rgba(0,0,0,0.15)}#wpforms-builder-elementor-popup{position:fixed;width:100vw;height:100vh;padding:30px;z-index:10000;background:rgba(0,0,0,0.75);left:0;top:0}#wpforms-builder-elementor-popup iframe{width:100%;height:100%;background-color:#ffffff}.wpforms-elementor-form-selector{background:rgba(255,255,255,0.5);border:1px solid #71d7f7;box-sizing:border-box;text-align:center;font-family:"Helvetica Neue", sans-serif;font-style:normal;padding:40px}.wpforms-elementor-form-selector img{width:220px;margin:0 auto 20px auto}.wpforms-elementor-form-selector .select-wrapper{position:relative;padding:0;width:100%;max-width:266px;margin:0 auto;line-height:0}.wpforms-elementor-form-selector .select-wrapper:after{font-family:eicons;content:"\e8ad";font-size:12px;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:5px;pointer-events:none;opacity:0.55}.wpforms-elementor-form-selector select{font-family:inherit;font-style:inherit;font-weight:normal;font-size:12px;line-height:12px;color:#6d7882;padding:0 20px 0 5px;width:100%;height:27px;text-overflow:ellipsis;margin:0;background:#ffffff;border:1px solid #d5dadf;box-sizing:border-box;border-radius:3px;cursor:pointer;appearance:none;-webkit-appearance:none}.wpforms-elementor-form-selector select:focus{outline:none}@font-face{font-family:'Icon WPForms';src:url("../images/integrations/elementor/font/icon-wpforms.woff2") format("woff2")}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group{width:100%;max-height:234px;overflow-y:auto;border:1px solid #dddddd;border-radius:2px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button{display:flex;align-items:center;width:100%;margin:0;padding:12px;height:42px;font-size:13px;gap:12px;border-top:none;border-right:none;border-bottom:1px solid #dddddd;border-left:none;background-color:#ffffff;color:#1e1e1e}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button:last-child,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button:last-child{border-bottom:none}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button:hover,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button:hover{box-shadow:inset 0 0 0 8px #ffffff;cursor:pointer}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button:hover div,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button:hover div{color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-indicators,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-indicators{min-width:80px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator{min-width:20px;height:20px;width:20px;margin-inline-end:-9px;position:relative;border-radius:50%;box-shadow:inset 0 0 0 1px #0003;display:inline-block;padding:0}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="0"],.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="0"]{z-index:5}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="1"],.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="1"]{z-index:4}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="2"],.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="2"]{z-index:3}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="3"],.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="3"]{z-index:2}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="4"],.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator[data-index="4"]{z-index:1}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator:last-child,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .component-color-indicator:last-child{margin-inline-end:0}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button.is-active,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button.is-active{box-shadow:inset 0 0 0 3px #ffffff;background-color:#eeeeee}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio{flex-grow:1;text-align:left;color:#1e1e1e;overflow:hidden}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio-title,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio-disabled,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio-disabled{position:relative;padding-right:40px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio-disabled::after,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group button .wpforms-elementor-themes-radio-disabled::after{content:'pro';position:absolute;text-transform:uppercase;background-color:#ededed;padding:6px 8px;border-radius:3px;font-size:8px;line-height:10px;font-weight:700;color:#999999;right:0;top:-3px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar{background:transparent;width:5px;height:5px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-track,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-track{background:transparent}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-thumb,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.1);background:transparent;border-radius:5px;border:solid -1px transparent}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-resizer,#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-button,#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-corner,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-resizer,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-button,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group{scrollbar-color:rgba(0,0,0,0.1) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar{background:transparent;width:5px;height:5px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-track,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-track{background:transparent}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-thumb,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.4);background:transparent;border-radius:5px;border:solid -1px transparent}#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-resizer,#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-button,#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-corner,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-resizer,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-button,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){#elementor-editor-wrapper .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover,.elementor-edit-area .elementor-control-type-wpforms_themes .wpforms-elementor-themes-radio-group:hover{scrollbar-color:rgba(0,0,0,0.4) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}#elementor-editor-wrapper .elementor-control-type-wpforms_themes-theme-name,.elementor-edit-area .elementor-control-type-wpforms_themes-theme-name{margin-top:24px;margin-bottom:8px}#elementor-editor-wrapper .elementor-control-type-wpforms_themes-delete,.elementor-edit-area .elementor-control-type-wpforms_themes-delete{color:#D63638;text-decoration:underline;line-height:18px;padding:0;box-shadow:none;height:auto}#elementor-editor-wrapper .elementor-control-type-wpforms_themes-delete:hover,.elementor-edit-area .elementor-control-type-wpforms_themes-delete:hover{box-shadow:none}#elementor-editor-wrapper .wpforms-elementor-section-disabled>.elementor-control-content::after,.elementor-edit-area .wpforms-elementor-section-disabled>.elementor-control-content::after{content:'pro';position:absolute;text-transform:uppercase;background-color:#ededed;padding:6px 8px;border-radius:3px;font-size:8px;line-height:10px;font-weight:700;color:#999999;inset-inline-end:20px;top:13px}#elementor-editor-wrapper .wpforms-elementor-control-disabled,.elementor-edit-area .wpforms-elementor-control-disabled{opacity:0.5}#elementor-editor-wrapper .wpforms-disabled-control-overlay,.elementor-edit-area .wpforms-disabled-control-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}#elementor-editor-wrapper .wpforms-field-repeater-display-rows-buttons,.elementor-edit-area .wpforms-field-repeater-display-rows-buttons{display:flex !important;bottom:0}#elementor-editor-wrapper .icon-wpforms,.elementor-edit-area .icon-wpforms{display:inline-block;width:28px}#elementor-editor-wrapper .icon-wpforms:before,.elementor-edit-area .icon-wpforms:before{content:'\e800';font-family:"Icon WPForms";font-style:normal;font-weight:normal;speak:never}#elementor-editor-wrapper .elementor-widget-empty-icon.icon-wpforms,.elementor-edit-area .elementor-widget-empty-icon.icon-wpforms{width:22px;line-height:22px;padding:0;font-size:22px;text-align:center}#elementor-editor-wrapper .elementor-navigator__item .icon-wpforms,.elementor-edit-area .elementor-navigator__item .icon-wpforms{width:11px;height:11px}#elementor-editor-wrapper .elementor-control.elementor-control-edit_form,.elementor-edit-area .elementor-control.elementor-control-edit_form{padding:0 20px 10px 20px;font-style:italic;font-weight:normal;font-size:11px;line-height:13px;color:#a4afb7}#elementor-editor-wrapper .elementor-control.elementor-control-edit_form a,.elementor-edit-area .elementor-control.elementor-control-edit_form a{cursor:pointer}#elementor-editor-wrapper .elementor-control.elementor-control-test_form_notice .elementor-panel-alert-info,#elementor-editor-wrapper .elementor-control.elementor-control-add_form_notice .elementor-panel-alert-info,.elementor-edit-area .elementor-control.elementor-control-test_form_notice .elementor-panel-alert-info,.elementor-edit-area .elementor-control.elementor-control-add_form_notice .elementor-panel-alert-info{font-style:normal}#elementor-editor-wrapper .elementor-control.elementor-control-test_form_notice a,#elementor-editor-wrapper .elementor-control.elementor-control-add_form_notice a,.elementor-edit-area .elementor-control.elementor-control-test_form_notice a,.elementor-edit-area .elementor-control.elementor-control-add_form_notice a{color:inherit;font-weight:700;border-bottom:2px dotted var(--e-a-color-info);display:inline-block}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button{padding:7px 16px;background:#525962}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button:hover,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button:hover{background:#2b2c31}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn .elementor-button b,.elementor-edit-area .elementor-control.elementor-control-add_form_btn .elementor-button b{margin:0 10px 0 0;font-size:13px;font-weight:400;line-height:12px}#elementor-editor-wrapper .elementor-control.elementor-control-add_form_btn.elementor-label-inline>.elementor-control-content>.elementor-control-field>.elementor-control-input-wrapper,.elementor-edit-area .elementor-control.elementor-control-add_form_btn.elementor-label-inline>.elementor-control-content>.elementor-control-field>.elementor-control-input-wrapper{margin-right:auto}#elementor-editor-wrapper .wpforms-icon-choices li,.elementor-edit-area .wpforms-icon-choices li{cursor:pointer}#elementor-editor-wrapper .wpforms-icon-choices li label,.elementor-edit-area .wpforms-icon-choices li label{pointer-events:none}#elementor-panel-inner.wpforms-elementor-disabled{opacity:0.5;pointer-events:none}#elementor-panel-page-editor .wpforms-elementor-disabled .elementor-control:not(.wpforms-elementor-lead-forms-notice){pointer-events:none;opacity:0.5}#elementor-panel-page-editor .wpforms-elementor-disabled .elementor-control:not(.wpforms-elementor-lead-forms-notice) ::selection{background:transparent}.wpforms-elementor-lead-forms-notice{display:none}.wpforms-elementor-lead-forms-notice .elementor-panel-alert{font-style:normal}.wpforms-elementor-lead-forms-notice strong{display:block;margin-bottom:5px}.elementor-edit-area .wpforms-form{pointer-events:none}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext.wpforms-field-small .wp-editor-area{height:calc(var(--wpforms-field-size-input-height) * 1.9) !important}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext.wpforms-field-medium .wp-editor-area{height:calc(var(--wpforms-field-size-input-height) * 2.79) !important}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext.wpforms-field-large .wp-editor-area{height:calc(var(--wpforms-field-size-input-height) * 5.12) !important}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext .wp-editor-wrap .mce-tinymce.mce-container.mce-panel{display:none !important}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext .wp-editor-wrap .wp-editor-tabs{padding-right:0}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext .wp-editor-wrap .wp-editor-container{border:none}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext .wp-editor-wrap .quicktags-toolbar{border-top-left-radius:var(--wpforms-field-border-radius);border-top-color:var(--wpforms-field-border-color);border-right-color:var(--wpforms-field-border-color);border-left-color:var(--wpforms-field-border-color)}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form div.wpforms-field-richtext .wp-editor-wrap .wp-editor-area{display:block !important;border-color:var(--wpforms-field-border-color);border-bottom-left-radius:var(--wpforms-field-border-radius);border-bottom-right-radius:var(--wpforms-field-border-radius)}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form button[type=submit]:disabled,.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form button[data-page]:disabled{cursor:default;opacity:1 !important;color:var(--wpforms-button-text-color);background-color:var(--wpforms-button-background-color)}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form .choices[data-type*="select-one"]:after,.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form .choices[data-type*="select-multiple"]:after{border-width:0;width:10px;height:10px}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input{opacity:1}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form .choices[data-type*="select-multiple"] .choices__item{grid-template-columns:1fr !important}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form .choices[data-type*="select-multiple"] .choices__item button{display:none !important}.elementor-edit-area .wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-payment-quantity .choices__item button{display:none !important}.elementor-panel .elementor-panel-alert.elementor-panel-alert-info.wpforms-elementor-no-forms-notice{background-color:#f0f7ff;border-color:#2362e9;color:#525962;font-size:12px;font-style:italic;font-weight:500;line-height:18px}.elementor-panel .elementor-panel-alert.wpforms-legacy-styles-notice{font-style:normal}.elementor-panel .elementor-panel-alert.wpforms-legacy-styles-notice a{color:#2271b1;font-weight:400;text-decoration:underline}.elementor-panel .elementor-panel-alert.wpforms-legacy-styles-notice b{display:block;font-weight:600}.elementor-editor-active .jconfirm{font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif}.wpforms-divi-form-placeholder,.et-db #et-boc .et-l .wpforms-divi-form-placeholder{padding:25px 15px;text-align:center;display:flex;flex-wrap:wrap;justify-content:center}.wpforms-divi-form-placeholder img,.et-db #et-boc .et-l .wpforms-divi-form-placeholder img{width:220px;display:block}.wpforms-divi-empty-block,.et-db #et-boc .et-l .wpforms-divi-empty-block{padding:20px;text-align:center}.wpforms-divi-empty-block img,.et-db #et-boc .et-l .wpforms-divi-empty-block img{max-width:240px}.wpforms-divi-empty-block p,.et-db #et-boc .et-l .wpforms-divi-empty-block p{font-size:14px;line-height:18px;text-align:center;color:#495157 !important;max-width:450px;margin:20px auto 0;padding:0}.wpforms-divi-empty-block button,.et-db #et-boc .et-l .wpforms-divi-empty-block button{background:#525962;border:none;border-radius:3px;font-weight:600;font-size:12px;line-height:1.5;text-align:center;text-transform:uppercase;color:#ffffff;padding:7px 17px;margin:20px 0 0;text-decoration:none;cursor:pointer;transition:background .2s ease-in-out}.wpforms-divi-empty-block button:hover,.et-db #et-boc .et-l .wpforms-divi-empty-block button:hover{background:#2b2c31}.wpforms-divi-empty-block .wpforms-admin-no-forms-footer,.et-db #et-boc .et-l .wpforms-divi-empty-block .wpforms-admin-no-forms-footer{font-size:12px;line-height:1.5;color:#6d7882}.wpforms-divi-empty-block .wpforms-admin-no-forms-footer a,.et-db #et-boc .et-l .wpforms-divi-empty-block .wpforms-admin-no-forms-footer a{color:inherit;text-decoration:underline !important}.wpforms-divi-empty-block .wpforms-admin-no-forms-footer a:hover,.et-db #et-boc .et-l .wpforms-divi-empty-block .wpforms-admin-no-forms-footer a:hover{text-decoration:none !important}.wpforms-divi-form-preview.loading,.et-db #et-boc .et-l .wpforms-divi-form-preview.loading{opacity:.7}.wpforms-divi-form-preview .wpforms-field-repeater-display-rows-buttons,.et-db #et-boc .et-l .wpforms-divi-form-preview .wpforms-field-repeater-display-rows-buttons{display:flex !important;bottom:0}.wpforms-divi-form-preview select,.et-db #et-boc .et-l .wpforms-divi-form-preview select{opacity:1}.et-db #et-boc .et-l .et-fb-modules-list ul>li.wpforms_selector::before{content:'';background-image:url("../images/integrations/divi/wpforms-icon.svg");height:16px;font-variant:normal;background-position:center center;background-repeat:no-repeat}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap,.edit-widgets-block-editor .wpforms-gutenberg-form-selector-wrap,.editor-styles-wrapper .wpforms-gutenberg-form-selector-wrap{align-items:center}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap.components-placeholder,.edit-widgets-block-editor .wpforms-gutenberg-form-selector-wrap.components-placeholder,.editor-styles-wrapper .wpforms-gutenberg-form-selector-wrap.components-placeholder{filter:none;background:#f0f0f0;box-shadow:none;background-clip:content-box, padding-box;padding:15px}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap img,.edit-widgets-block-editor .wpforms-gutenberg-form-selector-wrap img,.editor-styles-wrapper .wpforms-gutenberg-form-selector-wrap img{filter:none;width:initial;margin-bottom:25px;max-width:200px}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-base-control,.edit-widgets-block-editor .wpforms-gutenberg-form-selector-wrap .components-base-control,.editor-styles-wrapper .wpforms-gutenberg-form-selector-wrap .components-base-control{width:100%;padding:0 15px}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-placeholder__fieldset,.edit-widgets-block-editor .wpforms-gutenberg-form-selector-wrap .components-placeholder__fieldset,.editor-styles-wrapper .wpforms-gutenberg-form-selector-wrap .components-placeholder__fieldset{justify-content:center;align-self:center;max-width:400px;flex-direction:row !important;margin:25px 0 17px}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-select-control__input,.edit-widgets-block-editor .wpforms-gutenberg-form-selector-wrap .components-select-control__input,.editor-styles-wrapper .wpforms-gutenberg-form-selector-wrap .components-select-control__input{padding:0 10px;height:auto}.edit-post-visual-editor [data-type="wpforms/form-selector"] .components-placeholder:not(.wpforms-gutenberg-form-selector-wrap),.edit-widgets-block-editor [data-type="wpforms/form-selector"] .components-placeholder:not(.wpforms-gutenberg-form-selector-wrap),.editor-styles-wrapper [data-type="wpforms/form-selector"] .components-placeholder:not(.wpforms-gutenberg-form-selector-wrap){opacity:0}.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field:not(.wpforms-field-readonly) :disabled,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field:not(.wpforms-field-readonly) :disabled,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field:not(.wpforms-field-readonly) :disabled{pointer-events:none;cursor:default;opacity:1 !important}.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly :not(fieldset):disabled,.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly .wp-editor-wrap,.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly .wpforms-stripe-payment-element-cardnumber-preview,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly :not(fieldset):disabled,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly .wp-editor-wrap,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly .wpforms-stripe-payment-element-cardnumber-preview,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly :not(fieldset):disabled,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly .wp-editor-wrap,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .wpforms-field.wpforms-field-readonly .wpforms-stripe-payment-element-cardnumber-preview{opacity:0.35 !important}.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input{background-color:unset}.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__item,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__item,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__item{grid-template-columns:1fr !important}.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__item button,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__item button,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .choices[data-type*="select-multiple"] .choices__item button{display:none !important}.edit-post-visual-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-payment-quantity .choices__item button,.edit-widgets-block-editor .wpforms-gutenberg-form-selector .wpforms-form .wpforms-payment-quantity .choices__item button,.editor-styles-wrapper .wpforms-gutenberg-form-selector .wpforms-form .wpforms-payment-quantity .choices__item button{display:none !important}.edit-post-visual-editor .wpforms-no-form-preview,.edit-widgets-block-editor .wpforms-no-form-preview,.editor-styles-wrapper .wpforms-no-form-preview{text-align:center;background:#f0f0f0;padding:15px;background-clip:content-box, padding-box}.edit-post-visual-editor .wpforms-no-form-preview img,.edit-widgets-block-editor .wpforms-no-form-preview img,.editor-styles-wrapper .wpforms-no-form-preview img{width:60%;margin:20px 0 -10px;max-width:240px}.edit-post-visual-editor .wpforms-no-form-preview p,.edit-widgets-block-editor .wpforms-no-form-preview p,.editor-styles-wrapper .wpforms-no-form-preview p{font-size:14px;color:#000000;width:77%;text-align:center;margin:20px auto}.edit-post-visual-editor .wpforms-no-form-preview p.empty-desc,.edit-widgets-block-editor .wpforms-no-form-preview p.empty-desc,.editor-styles-wrapper .wpforms-no-form-preview p.empty-desc{font-size:12px}.edit-post-visual-editor .wpforms-no-form-preview p a,.edit-widgets-block-editor .wpforms-no-form-preview p a,.editor-styles-wrapper .wpforms-no-form-preview p a{color:#000000;text-decoration:underline;position:relative}.edit-post-visual-editor .wpforms-no-form-preview p a:hover,.edit-widgets-block-editor .wpforms-no-form-preview p a:hover,.editor-styles-wrapper .wpforms-no-form-preview p a:hover{text-decoration:none}.edit-post-sidebar .wpforms-gutenberg-panel-notice,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel-notice{background-color:#f0f6fc;border-left:solid 4px #017cba;color:#1e1e1e;padding:12px 12px 12px 16px;margin-bottom:0}.edit-post-sidebar .wpforms-gutenberg-panel-notice strong,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel-notice strong{display:block}.edit-post-sidebar .wpforms-gutenberg-panel-notice a,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel-notice a{display:block}.edit-post-sidebar .wpforms-gutenberg-panel-notice.wpforms-warning,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel-notice.wpforms-warning{background-color:#fef8ee;border-left-color:#efb84a;margin-bottom:12px}.edit-post-sidebar .wpforms-gutenberg-panel-notice.wpforms-use-modern-notice,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel-notice.wpforms-use-modern-notice{margin-bottom:12px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-actions,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-actions{margin-top:-14px;margin-bottom:24px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-actions a,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-actions a{text-decoration:none}.edit-post-sidebar .wpforms-gutenberg-panel label.components-input-control__label,.edit-post-sidebar .wpforms-gutenberg-panel label.components-base-control__label,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel label.components-input-control__label,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel label.components-base-control__label{color:#1e1e1e;font-size:13px;text-transform:none;font-weight:normal}.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel{margin-top:8px;margin-bottom:0;padding:0;border-top:0}.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled{background-color:#f0f0f0;pointer-events:none}.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled *,.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled *:hover,.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled *:focus,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled *,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled *:hover,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-color-panel-disabled *:focus{background-color:#f0f0f0;color:rgba(0,0,0,0.2) !important;cursor:auto}.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2),.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2){background-color:#f0f0f0;pointer-events:none}.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2) *,.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2) *:hover,.edit-post-sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2) *:focus,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2) *,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2) *:hover,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel div.wpforms-gutenberg-form-selector-color-panel.wpforms-gutenberg-form-selector-border-color-disabled>:nth-child(2) *:focus{background-color:#f0f0f0;color:rgba(0,0,0,0.2) !important;cursor:auto}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview{width:100%;height:100px;background-color:#ffffffff;background-repeat:no-repeat;background-position:top center;background-size:100% 100%}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-themes,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-themes{background-image:url("../images/gutenberg/panel-themes.png");height:390px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-field,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-field{background-image:url("../images/gutenberg/panel-field.png");height:310px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-label,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-label{background-image:url("../images/gutenberg/panel-label.png");height:220px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-button,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-button{background-image:url("../images/gutenberg/panel-button.png");height:340px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-container,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-container{background-image:url("../images/gutenberg/panel-container.png");height:290px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-background,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-panel-preview-background{background-image:url("../images/gutenberg/panel-background.png");height:140px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-image-url,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-image-url{display:none}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-flex,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-flex{margin-bottom:16px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-background-preview-image,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-background-preview-image{width:100%;height:116px;border-radius:4px;border:1px solid #c2c1c1;background-image:var(--wpforms-background-url);background-size:cover;background-position:center;margin-bottom:16px;cursor:pointer}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-background-preview-image:focus,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-background-preview-image:focus{border-color:var(--wp-admin-theme-color, #3858e9);box-shadow:0 0 0 1px var(--wp-admin-theme-color, #3858e9)}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-background-preview button.is-destructive,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-background-preview button.is-destructive{width:100%;display:block}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-legend,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-legend{margin-top:-16px;margin-bottom:24px;color:#757575;line-height:1.5}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-legend a,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-legend a{color:inherit}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-legend.wpforms-button-color-notice,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-legend.wpforms-button-color-notice{margin-top:8px;margin-bottom:0}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-colors-help,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-colors-help{margin-top:8px;margin-bottom:16px;color:#757575;line-height:1.5}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-media-library-button,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-media-library-button{width:100%;display:block}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group{width:100%;max-height:234px;overflow-y:auto;border:1px solid #dddddd;border-radius:2px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button{display:flex;width:100%;margin:0;padding:12px;height:42px;gap:12px;border-top:none;border-right:none;border-bottom:1px solid #dddddd;border-left:none;box-shadow:inset 0 0 0 8px #ffffff}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button:last-child,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button:last-child{border-bottom:none}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button:hover,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button:hover{box-shadow:inset 0 0 0 8px #ffffff}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button:hover div,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button:hover div{color:var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9))}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .wpforms-gutenberg-form-selector-themes-indicators,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .wpforms-gutenberg-form-selector-themes-indicators{min-width:80px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator{min-width:20px;height:20px;width:20px;margin-inline-end:-5px;position:relative}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="0"],.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="0"]{z-index:5}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="1"],.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="1"]{z-index:4}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="2"],.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="2"]{z-index:3}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="3"],.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="3"]{z-index:2}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="4"],.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator[data-index="4"]{z-index:1}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator:last-child,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button .component-color-indicator:last-child{margin-inline-end:0}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button.is-primary,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-radio-group button.is-primary{box-shadow:inset 0 0 0 3px #ffffff;background-color:#eeeeee}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-theme-name,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-theme-name{margin-top:24px;margin-bottom:8px}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-delete,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-delete{color:#D63638;text-decoration:underline;line-height:18px;padding:0;box-shadow:none;height:auto}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-delete:hover,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-themes-delete:hover{box-shadow:none}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-custom-css textarea,.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-copy-paste-settings textarea,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-custom-css textarea,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-gutenberg-form-selector-copy-paste-settings textarea{font-family:monospace}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar{background:transparent;width:5px;height:5px}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-track,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-track{background:transparent}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-thumb,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.1);background:transparent;border-radius:5px;border:solid -1px transparent}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-resizer,.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-button,.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-corner,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-resizer,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-button,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group{scrollbar-color:rgba(0,0,0,0.1) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar{background:transparent;width:5px;height:5px}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-track,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-track{background:transparent}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-thumb,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.4);background:transparent;border-radius:5px;border:solid -1px transparent}.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-resizer,.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-button,.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-corner,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-resizer,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-button,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.edit-post-sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.wpforms-is-mac) .wpforms-gutenberg-form-selector-themes-radio-group:hover{scrollbar-color:rgba(0,0,0,0.4) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.edit-post-sidebar .wpforms-gutenberg-panel .block-editor-tools-panel-color-gradient-settings__item.first,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .block-editor-tools-panel-color-gradient-settings__item.first{margin-top:0}.edit-post-sidebar .wpforms-gutenberg-panel.disabled_panel>:not(.wpforms-gutenberg-panel-notice):not(h2),.edit-post-sidebar .wpforms-gutenberg-panel.wpforms-lead-forms-enabled>:not(.wpforms-gutenberg-panel-notice):not(h2),.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel.disabled_panel>:not(.wpforms-gutenberg-panel-notice):not(h2),.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel.wpforms-lead-forms-enabled>:not(.wpforms-gutenberg-panel-notice):not(h2){opacity:0.5;pointer-events:none}.edit-post-sidebar .wpforms-gutenberg-panel.disabled_panel>:not(.wpforms-gutenberg-panel-notice):not(h2) ::selection,.edit-post-sidebar .wpforms-gutenberg-panel.wpforms-lead-forms-enabled>:not(.wpforms-gutenberg-panel-notice):not(h2) ::selection,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel.disabled_panel>:not(.wpforms-gutenberg-panel-notice):not(h2) ::selection,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel.wpforms-lead-forms-enabled>:not(.wpforms-gutenberg-panel-notice):not(h2) ::selection{background-color:transparent}.edit-post-sidebar .wpforms-gutenberg-panel:not(.disabled_panel):not(.wpforms-gutenberg-panel-form-settings) .wpforms-gutenberg-panel-notice,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel:not(.disabled_panel):not(.wpforms-gutenberg-panel-form-settings) .wpforms-gutenberg-panel-notice{display:none}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-icon-choices li,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-icon-choices li{cursor:pointer}.edit-post-sidebar .wpforms-gutenberg-panel .wpforms-icon-choices li label,.interface-interface-skeleton__sidebar .wpforms-gutenberg-panel .wpforms-icon-choices li label{pointer-events:none}.edit-post-sidebar .wpforms-icon-choices li,.interface-interface-skeleton__sidebar .wpforms-icon-choices li{cursor:pointer}.edit-post-sidebar .wpforms-icon-choices li label,.interface-interface-skeleton__sidebar .wpforms-icon-choices li label{pointer-events:none}.components-modal__screen-overlay .wpforms-gutenberg-modal{max-width:450px}#wpforms-gutenberg-popup{position:fixed;width:100vw;height:100vh;padding:30px;z-index:10000;background:rgba(0,0,0,0.75);left:0;top:0;display:none;box-sizing:border-box}#wpforms-gutenberg-popup iframe{width:100%;height:100%;background-color:#ffffff;border:0px}.wpforms-loading-spinner{background-image:url("../images/spinner.svg");background-repeat:no-repeat;background-size:15px 15px;background-position:center;display:block;height:15px;margin:0 10px 0 0;vertical-align:-2px;width:15px;-webkit-animation:wpforms-spinner-rotation 0.8s linear infinite;-moz-animation:wpforms-spinner-rotation 0.8s linear infinite;-ms-animation:wpforms-spinner-rotation 0.8s linear infinite;-o-animation:wpforms-spinner-rotation 0.8s linear infinite;animation:wpforms-spinner-rotation 0.8s linear infinite}.wpforms-loading-spinner.wpforms-loading-white{background-image:url("../images/spinner-white.svg")}.wpforms-loading-spinner.wpforms-loading-blue{background-image:url("../images/spinner-blue.svg");background-size:14px 15px}.wpforms-loading-spinner.wpforms-loading-md{background-size:24px 24px;height:24px;width:24px}.wpforms-loading-spinner.wpforms-loading-lg{background-size:32px 32px;height:32px;width:32px}.wpforms-loading-spinner.wpforms-loading-inline{display:inline-block;margin:auto}@keyframes wpforms-spinner-rotation{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.wpforms-gutenberg-form-selector-themes-radio{flex-grow:1;text-align:left;color:#1e1e1e;overflow:hidden}.wpforms-gutenberg-form-selector-themes-radio-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-gutenberg-form-selector-themes-radio-disabled{position:relative;padding-right:40px}.wpforms-gutenberg-form-selector-themes-radio-disabled::after{content:'pro';position:absolute;text-transform:uppercase;background-color:#ededed;padding:6px 8px;border-radius:3px;font-size:8px;line-height:10px;font-weight:700;color:#999999;right:0;top:-3px}.wpforms-gutenberg-panel-disabled h2 button::after{content:'pro';position:absolute;text-transform:uppercase;background-color:#ededed;padding:6px 8px;border-radius:3px;font-size:8px;line-height:10px;font-weight:700;color:#999999;right:48px;top:unset}.wpforms-gutenberg-panel-disabled h2 button:hover::after{background-color:#fff}.wpforms-gutenberg-panel-disabled>.wpforms-gutenberg-form-selector-panel-body>div{pointer-events:none}.wpforms-gutenberg-panel-disabled>div{opacity:0.5}.wpforms-gutenberg-panel-disabled>div *,.wpforms-gutenberg-panel-disabled>div *:hover,.wpforms-gutenberg-panel-disabled>div *:focus{cursor:auto}.wpforms-gutenberg-panel-restricted{display:none}.jconfirm-modern .jconfirm-box-container .wpforms-exclamation-circle{display:block;width:48px;height:48px;mask-image:url("../images/exclamation-circle.svg");mask-size:48px 48px;margin:0 auto}.jconfirm-modern .jconfirm-box-container .jconfirm-type-orange .wpforms-exclamation-circle{background-color:#e27730}.jconfirm-modern .jconfirm-box-container .jconfirm-type-red .wpforms-exclamation-circle{background-color:#d63638}.jconfirm-modern .jconfirm-box-container button[disabled]{opacity:.75 !important}.jconfirm-modern .jconfirm-box-container .wpforms-theme-delete-text{margin:0 auto 10px auto !important}div.wpforms-container .wpforms-form .choices{position:relative;margin-bottom:24px}div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{color:#999999}div.wpforms-container .wpforms-form .choices ::-moz-placeholder{color:#999999;opacity:1}div.wpforms-container .wpforms-form .choices ::placeholder{color:#999999}div.wpforms-container .wpforms-form .choices:focus{outline:none}div.wpforms-container .wpforms-form .choices:last-child{margin-bottom:0}div.wpforms-container .wpforms-form .choices.is-disabled .choices__inner,div.wpforms-container .wpforms-form .choices.is-disabled .choices__input{background-color:#bbbbbb;cursor:not-allowed;user-select:none}div.wpforms-container .wpforms-form .choices [hidden]{display:none !important}div.wpforms-container .wpforms-form .choices *{box-sizing:border-box}div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner{border-radius:0 0 4px 4px}div.wpforms-container .wpforms-form .choices[data-type*="select-one"]{cursor:pointer}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__inner{display:flex;flex-wrap:wrap;align-items:center;padding-top:0 !important}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input{display:block;width:calc(100% - 20px) !important;margin:10px !important;padding:7px 12px !important;box-sizing:border-box !important;border:1px solid #8c8f94 !important;border-radius:4px !important;background-color:#fff}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input:focus{border:1px solid #056aab !important;box-shadow:0 0 0 1px #056aab !important;outline:none !important}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;position:absolute;top:50%;inset-inline-end:0;margin-top:-10px;margin-inline-end:25px;height:20px;width:20px;border-radius:10em;opacity:.5}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{opacity:1}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{box-shadow:0 0 0 2px #036aab}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__item[data-value=''] .choices__button{display:none}div.wpforms-container .wpforms-form .choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}div.wpforms-container .wpforms-form .choices[data-type*="select-one"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:24px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input{padding:0 4px !important;max-width:100%;background-color:transparent;line-height:22px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-1.5px;pointer-events:none}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__inner{cursor:text}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{position:absolute;display:inline-block;vertical-align:baseline;margin-top:0;margin-bottom:0;margin-inline-start:5px;padding:0;background-color:transparent;background-image:url("../images/cross.svg");background-size:12px;background-position:center center;background-repeat:no-repeat;width:12px;height:12px;line-height:1;opacity:.75;border-radius:0;inset-inline-end:4px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:focus,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:focus{opacity:1}div.wpforms-container .wpforms-form .choices__inner{width:100%;background-color:#ffffff;padding:4px 6px 0;border:1px solid #8c8f94;overflow:hidden;border-radius:4px}div.wpforms-container .wpforms-form .choices__list{margin:0;padding-left:0;list-style:none}div.wpforms-container .wpforms-form .choices__list--single{display:inline-block;vertical-align:baseline;width:100%;padding:0 16px 0 4px;font-size:0.875em}div.wpforms-container .wpforms-form .choices__list--single .choices__item{width:100%;overflow:hidden;text-overflow:ellipsis;padding-inline-end:20px;white-space:nowrap;color:#2c3338}div.wpforms-container .wpforms-form .choices__list--single .choices__item[data-value='']{padding-inline-end:0}div.wpforms-container .wpforms-form .choices__list--multiple{display:inline;height:auto;overflow:auto}div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;position:relative;align-items:center;border-radius:2px;padding-block:4px;padding-inline:7px 20px;font-size:.75em;line-height:1;font-weight:400;margin:0 6px 4px 0;background-color:#036aab;border:1px solid #036aab;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 10px)}div.wpforms-container .wpforms-form .choices__list--multiple .choices__item.is-highlighted{background-color:#036aab}div.wpforms-container .wpforms-form .is-disabled .choices__list--multiple .choices__item{background-color:#bbbbbb;border:1px solid #bbbbbb}div.wpforms-container .wpforms-form .choices__list--dropdown{display:none;z-index:101;position:absolute;width:100%;background-color:#ffffff;border:1px solid #8c8f94;top:100%;margin-top:-1px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;overflow:hidden;overflow-wrap:break-word}div.wpforms-container .wpforms-form .choices__list--dropdown.is-active{display:block}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{position:relative;vertical-align:top;padding:10px;font-size:.875em}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f6f6f6}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__placeholder{display:none}div.wpforms-container .wpforms-form .is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form .choices__item{cursor:default}div.wpforms-container .wpforms-form .choices__item--selectable{cursor:pointer}div.wpforms-container .wpforms-form .choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}div.wpforms-container .wpforms-form .choices__heading{font-weight:600;font-size:.75em;text-transform:uppercase;padding:10px;border-top:1px solid #b4b6b9;border-bottom:1px solid #b4b6b9;color:#a6a6a6}.choices__group[data-value="hidden"]>div.wpforms-container .wpforms-form .choices__heading{display:none}div.wpforms-container .wpforms-form .choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}div.wpforms-container .wpforms-form .choices__button:focus{outline:none}div.wpforms-container .wpforms-form .choices__input{display:inline-block;background-color:transparent;margin:0 0 2px 0 !important;border:0 !important;border-radius:0 !important;min-height:20px !important;padding:2px 4px !important;height:auto !important;min-width:1ch;width:1ch;vertical-align:middle}div.wpforms-container .wpforms-form .choices__input::-webkit-search-cancel-button{display:none}div.wpforms-container .wpforms-form .choices__input--hidden{clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;min-width:auto !important;word-wrap:normal !important}div.wpforms-container .wpforms-form .choices .choices__inner input.choices__input:focus{outline:none !important;box-shadow:none !important;border:none !important}div.wpforms-container .wpforms-form .choices__placeholder{opacity:.5}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices.is-open.is-flipped .choices__inner{border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{border-radius:inherit}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"]:after{border:none;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E) no-repeat center;background-size:16px 16px;cursor:pointer;width:16px;height:16px;top:13px;right:8px;margin-top:0}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"].is-flipped:after{transform:rotate(180deg)}div.wpforms-container .wpforms-form .choices__list--dropdown{min-width:250px}div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="text"] .choices__button{border-left:1px solid rgba(0,0,0,0.25);cursor:not-allowed}div.wpforms-container .wpforms-form .choices ::placeholder,div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{opacity:1}div.wpforms-container .wpforms-form .choices{margin-bottom:0}body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:4px;padding-left:24px}body.rtl div.wpforms-container .wpforms-form .choices__list--single{padding-right:4px;padding-left:16px}body.rtl div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{text-align:right}body.rtl div.wpforms-container .wpforms-form .choices__input{padding-right:2px !important;padding-left:0 !important}body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,body.rtl div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{margin-inline-end:0;border-left:none}@media (min-width: 640px){body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin-list-table-ext.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin-list-table-ext.min.css new file mode 100644 index 0000000..9a58f30 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin-list-table-ext.min.css @@ -0,0 +1 @@ +.wpforms-list-table-ext-page .wp-list-table{border:none;border-radius:4px;margin:0;box-shadow:none}.wpforms-list-table-ext-page .wp-list-table th,.wpforms-list-table-ext-page .wp-list-table td{box-sizing:border-box}.wpforms-list-table-ext-page .wp-list-table .wpforms-table-column-dragged-out{color:transparent;background-color:#f0f0f1}.wpforms-list-table-ext-page .wp-list-table .wpforms-table-column-dragged-out>*{opacity:0 !important}.wpforms-list-table-ext-page .wp-list-table .wpforms-table-column-dragged-out>#wpforms-list-table-ext-edit-columns-cog{background-color:transparent;opacity:1 !important}.wpforms-list-table-ext-page .wp-list-table .wpforms-table-column-drag-placeholder{display:none}.wpforms-list-table-ext-page .wp-list-table .wpforms-table-column-drag-placeholder-prev{box-shadow:inset -2px 0 0 0 #8c8f94}.wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky,.wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky,.wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky{position:sticky !important;z-index:2;background-color:#ffffff}.wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.left,.wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.left,.wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.left{left:0}.wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.left.shadow,.wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.left.shadow,.wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.left.shadow{clip-path:polygon(0 0, 150% 0, 150% calc( 100% + 1px), 0 calc( 100% + 1px));box-shadow:2px 0 6px 0 rgba(0,0,0,0.12)}.wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.right,.wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.right,.wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.right{right:0}.wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.right.shadow,.wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.right.shadow,.wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.right.shadow{clip-path:polygon(-50% 0, 100% 0, 100% calc( 100% + 1px), -50% calc( 100% + 1px));box-shadow:-2px 0 6px 0 rgba(0,0,0,0.12)}.wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.column-indicators,.wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.column-indicators,.wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.column-indicators{left:35px}.wpforms-list-table-ext-page .wp-list-table.striped.forms tbody#the-list>:nth-child(even) .wpforms-table-cell-sticky,.wpforms-list-table-ext-page .wp-list-table.striped:not(.forms) tbody#the-list>:nth-child(odd) .wpforms-table-cell-sticky{background-color:#f6f6f6}.wpforms-list-table-ext-page .wp-list-table thead th,.wpforms-list-table-ext-page .wp-list-table tfoot th{font-size:14px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;vertical-align:middle;padding-right:28px}.wpforms-list-table-ext-page .wp-list-table thead th:not(.wpforms-table-cell-sticky):not(.wpforms-table-column-not-draggable):not(.column-cog):hover,.wpforms-list-table-ext-page .wp-list-table tfoot th:not(.wpforms-table-cell-sticky):not(.wpforms-table-column-not-draggable):not(.column-cog):hover{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='13' fill='none'%3E%3Cpath fill='%23A7AAAD' d='M4.375 3.031a.9.9 0 0 1-.875.875H1.75a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875H3.5c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H1.75a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875H3.5c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H1.75a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875H3.5c.465 0 .875.383.875.875v1.75Zm5.25-8.75a.9.9 0 0 1-.875.875H7a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875h1.75c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H7a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875h1.75c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H7a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875h1.75c.465 0 .875.383.875.875v1.75Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px top 12px;overflow:hidden}.wpforms-list-table-ext-page .wp-list-table thead th a,.wpforms-list-table-ext-page .wp-list-table tfoot th a{float:none;display:flex;align-items:center;justify-content:flex-start;padding:0 10px;line-height:36px}.wpforms-list-table-ext-page .wp-list-table thead th a .sorting-indicators,.wpforms-list-table-ext-page .wp-list-table tfoot th a .sorting-indicators{float:none}.wpforms-list-table-ext-page .wp-list-table thead th a .screen-reader-text,.wpforms-list-table-ext-page .wp-list-table tfoot th a .screen-reader-text{position:initial}.wpforms-list-table-ext-page .wp-list-table thead th a:focus,.wpforms-list-table-ext-page .wp-list-table tfoot th a:focus{box-shadow:none}.wpforms-list-table-ext-page .wp-list-table thead .check-column input:hover+label,.wpforms-list-table-ext-page .wp-list-table thead .check-column label:hover,.wpforms-list-table-ext-page .wp-list-table tfoot .check-column input:hover+label,.wpforms-list-table-ext-page .wp-list-table tfoot .check-column label:hover{background-color:#ffffff}.wpforms-list-table-ext-page .wp-list-table thead tr th:last-child{padding-right:32px}.wpforms-list-table-ext-page .wp-list-table .check-column{width:35px;min-width:35px;max-width:35px;padding-block:10px 0;padding-inline:3px 8px;vertical-align:top}.wpforms-list-table-ext-page .wp-list-table .check-column.manage-column{padding-block:0 1px;padding-inline:3px 8px;vertical-align:middle}.wpforms-list-table-ext-page .wp-list-table .check-column.manage-column input{vertical-align:text-bottom}.wpforms-list-table-ext-page .wp-list-table .column-cog{min-width:28px;width:28px;padding:0 !important}.wpforms-list-table-ext-page .wp-list-table thead .column-cog{border-top-right-radius:4px}.wpforms-list-table-ext-page .wp-list-table tfoot .column-cog{border-bottom-right-radius:4px}.wpforms-list-table-ext-page .wpforms-table-container{width:auto;clear:both;background-color:#ffffff;border-radius:4px;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,0.05);margin:10px 0 0 0}.wpforms-list-table-ext-page .wpforms-table-scroll{width:100%;overflow-x:auto;padding-bottom:0}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar::-webkit-scrollbar{background:transparent;width:14px;height:14px}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar::-webkit-scrollbar-track{background:transparent}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar::-webkit-scrollbar-thumb{box-shadow:inset 0 0 4px 4px rgba(0,0,0,0.05);background:transparent;border-radius:14px;border:solid 4px transparent}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar::-webkit-resizer,.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar::-webkit-scrollbar-button,.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar{scrollbar-color:rgba(0,0,0,0.05) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover::-webkit-scrollbar{background:transparent;width:14px;height:14px}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover::-webkit-scrollbar-track{background:transparent}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 4px 4px rgba(0,0,0,0.3);background:transparent;border-radius:14px;border:solid 4px transparent}.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover::-webkit-resizer,.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover::-webkit-scrollbar-button,.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.wpforms-list-table-ext-page .wpforms-table-scroll.wpforms-scrollbar:hover{scrollbar-color:rgba(0,0,0,0.3) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper{box-sizing:border-box;background-color:#ffffff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='13' fill='none'%3E%3Cpath fill='%23056AAB' d='M4.375 3.031a.9.9 0 0 1-.875.875H1.75a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875H3.5c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H1.75a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875H3.5c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H1.75a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875H3.5c.465 0 .875.383.875.875v1.75Zm5.25-8.75a.9.9 0 0 1-.875.875H7a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875h1.75c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H7a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875h1.75c.465 0 .875.383.875.875v1.75Zm0 4.375a.9.9 0 0 1-.875.875H7a.881.881 0 0 1-.875-.875v-1.75c0-.492.383-.875.875-.875h1.75c.465 0 .875.383.875.875v1.75Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;border:none;box-shadow:0 8px 12px 0 #00000026;min-height:36px;padding:10px 28px 10px 10px;display:block;opacity:0.9 !important;font-weight:normal;font-size:14px;text-align:initial !important;cursor:grab !important;appearance:unset;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper *{cursor:grab !important}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper a{padding:0 !important}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper #wpforms-list-table-ext-edit-columns-cog{display:none}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper .sorting-indicators{display:none}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper .wpforms-locations-column-title{display:none}.wpforms-list-table-ext-page .wpforms-table-column-drag-helper .wpforms-locations-column-icon{display:block;width:12px;height:16px;opacity:0.7;background-image:url("../images/file-code.svg")}#wpforms-list-table-ext-edit-columns-select-container{position:absolute;right:28px}#wpforms-list-table-ext-edit-columns-select-container::after{content:'';display:block;clear:both}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper{width:240px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-form-outline{display:none}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list{position:relative;max-width:240px;margin-top:0}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list.open.open-up{bottom:unset}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-search{margin:15px;color:#50575e;width:calc( 100% - 30px);display:block}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-search::placeholder{color:#a7aaad}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items{padding-inline:0;border-bottom:1px solid #dcdcde;border-top:1px solid #dcdcde;margin-bottom:10px;margin-top:3px;padding-bottom:10px;padding-top:0}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items::-webkit-scrollbar{background:transparent;width:14px;height:14px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items::-webkit-scrollbar-track{background:transparent}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items::-webkit-scrollbar-thumb{box-shadow:inset 0 0 4px 4px rgba(0,0,0,0.05);background:transparent;border-radius:14px;border:solid 4px transparent}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items::-webkit-resizer,#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items::-webkit-scrollbar-button,#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items{scrollbar-color:rgba(0,0,0,0.05) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items.wpforms-multiselect-checkbox-items-no-search{border-top:none;margin-top:0}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover::-webkit-scrollbar{background:transparent;width:14px;height:14px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover::-webkit-scrollbar-track{background:transparent}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 4px 4px rgba(0,0,0,0.3);background:transparent;border-radius:14px;border:solid 4px transparent}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover::-webkit-resizer,#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover::-webkit-scrollbar-button,#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items:hover{scrollbar-color:rgba(0,0,0,0.3) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label{margin:0 15px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label:first-child{padding-top:15px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label span{width:180px;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label input[type='checkbox']:hover{border-color:#2271b1}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label input[type='checkbox']:hover:checked{background-color:#04558a}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label input[type='checkbox']:focus{border:2px solid #2271b1 !important;box-shadow:none !important}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items label input[type='checkbox']:focus:checked{background-color:#04558a !important;border:1px solid white !important;box-shadow:0 0 0 1px #04558a !important}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items .wpforms-multiselect-checkbox-no-results{margin:0 15px 5px 15px;color:#6a6f76;font-size:14px;line-height:16.7px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items .wpforms-multiselect-checkbox-optgroup{color:#8C8F94;font-weight:500;font-size:12px;line-height:19px;padding-left:15px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list .wpforms-multiselect-checkbox-items .wpforms-multiselect-checkbox-optgroup:last-of-type{border-top:1px solid #dcdcde;padding-top:10px}#wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-wrapper .wpforms-multiselect-checkbox-list #wpforms-list-table-ext-edit-columns-select-submit{margin:5px 15px 10px 15px;height:31px}#wpforms-list-table-ext-edit-columns-cog{outline:none;box-shadow:none;font-size:16px;color:#8b8f95;position:absolute;inset-inline-end:12px;background-color:#ffffff;top:10px;right:10px;padding:0}#wpforms-list-table-ext-edit-columns-cog.active{color:#046bab}#wpforms-list-table-ext-edit-columns-cog:hover:not(.active){color:#6a6f76}.wpforms-no-scroll{overflow:hidden !important}body.wpforms-loading,body.wpforms-loading *{cursor:wait !important}body.wpforms-loading:before{content:'';position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:transparent;z-index:9999999}@media screen and (max-width: 782px){.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags){position:relative}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags) td:not(.check-column):not(.column-primary){padding-left:35% !important}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags) td:not(.check-column):not(.column-primary):before{content:attr(data-colname) !important}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags) th.column-primary{width:calc( 100% - 44px) !important;padding-inline:10px}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags) td.column-primary{height:60px;position:relative;padding-top:12px;top:0;overflow:hidden;text-overflow:ellipsis}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags) td.column-primary>a strong{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags).is-expanded td:not(.check-column):not(.column-primary):first-of-type{margin-top:60px}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags).is-expanded td:not(.check-column):not(.column-primary):last-of-type{margin-bottom:20px}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags).is-expanded td:not(:first-of-type).column-primary{position:absolute;top:0;left:35px;width:calc(100% - 35px) !important}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags).is-expanded td:not(:first-of-type).column-primary{top:auto;left:46px;width:calc(100% - 57px) !important}}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags).is-expanded td:not(.column-primary):first-of-type{padding-top:90px}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags).is-expanded td.column-primary{height:80px !important}.wpforms-list-table-ext-page .wp-list-table tr:not(.inline-edit-row):not(.no-items):not(.wpforms-bulk-edit-tags) .row-actions{padding-left:4px}.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.check-column,.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.check-column{height:65px}.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.check-column.column-cb,.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.check-column.column-cb{padding-top:0;vertical-align:middle}.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.check-column.column-cb input,.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.check-column.column-cb input{margin:0;margin-inline:8px}.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) th:not(.check-column):not(.column-primary),.wpforms-list-table-ext-page .wp-list-table tr:not(.wpforms-bulk-edit-tags) td:not(.check-column):not(.column-primary){display:none}}.rtl .wpforms-list-table-ext-page .wpforms-table-column-drag-helper{background-position:left 10px center}.rtl .wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.left,.rtl .wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.left,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.left{right:0;left:auto}.rtl .wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.left.shadow,.rtl .wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.left.shadow,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.left.shadow{clip-path:polygon(-50% 0, 100% 0, 100% calc( 100% + 1px), -50% calc( 100% + 1px));box-shadow:-2px 0 6px 0 rgba(0,0,0,0.12)}.rtl .wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.right,.rtl .wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.right,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.right{right:auto;left:0}.rtl .wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.right.shadow,.rtl .wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.right.shadow,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.right.shadow{clip-path:polygon(0 0, 150% 0, 150% calc( 100% + 1px), 0 calc( 100% + 1px));box-shadow:2px 0 6px 0 rgba(0,0,0,0.12)}.rtl .wpforms-list-table-ext-page .wp-list-table thead .wpforms-table-cell-sticky.column-indicators,.rtl .wpforms-list-table-ext-page .wp-list-table tbody#the-list .wpforms-table-cell-sticky.column-indicators,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot .wpforms-table-cell-sticky.column-indicators{right:35px;left:auto}.rtl .wpforms-list-table-ext-page .wp-list-table thead th,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot th{padding-right:unset;padding-left:28px}.rtl .wpforms-list-table-ext-page .wp-list-table thead th:not(.wpforms-table-cell-sticky):not(.wpforms-table-column-not-draggable):not(.column-cog):hover,.rtl .wpforms-list-table-ext-page .wp-list-table tfoot th:not(.wpforms-table-cell-sticky):not(.wpforms-table-column-not-draggable):not(.column-cog):hover{background-position:left 8px top 12px}.rtl #wpforms-list-table-ext-edit-columns-cog{inset-inline-start:12px;inset-inline-end:unset;right:unset;left:10px}.rtl #wpforms-list-table-ext-edit-columns-select-container{right:unset;left:28px}.rtl #wpforms-list-table-ext-edit-columns-select-container .wpforms-multiselect-checkbox-optgroup{padding-left:unset;padding-right:15px;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin-notifications.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin-notifications.min.css new file mode 100644 index 0000000..99730e3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin-notifications.min.css @@ -0,0 +1 @@ +#wpforms-notifications{background:#ffffff 0 0 no-repeat padding-box;box-shadow:0 2px 4px 0 rgba(0,0,0,0.05);border-radius:6px;opacity:1;min-height:48px;margin:0 0 20px 0}#wpforms-notifications *{box-sizing:border-box}#wpforms-notifications .wpforms-notifications-header{display:flex;align-items:center;padding:10px 15px;border-bottom:1px solid #dcdcde}#wpforms-notifications .wpforms-notifications-header .wpforms-notifications-bell{position:relative;width:16px;height:20px;top:3px;margin-inline-end:10px}#wpforms-notifications .wpforms-notifications-header .wpforms-notifications-bell svg{fill:#a7aaad}#wpforms-notifications .wpforms-notifications-header .wpforms-notifications-circle{position:absolute;width:11px;height:11px;border-radius:50%;top:-4px;right:-1px;border:2px solid #ffffff;background-color:#d63638}#wpforms-notifications .wpforms-notifications-header .wpforms-notifications-title{font-size:14px;font-weight:600;font-style:normal;line-height:1;color:#2c3338}#wpforms-notifications .wpforms-notifications-body{position:relative}#wpforms-notifications .wpforms-notifications-messages{padding-block:15px;padding-inline:15px 100px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-message{display:none}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-message.current{display:block}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-title{color:#2c3338;font-size:17px;font-weight:600;line-height:25px;margin:0}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-content{font-size:14px;font-weight:400;line-height:20px;margin:5px 0 15px 0;color:#50575e}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-content p{font-size:inherit;line-height:inherit;margin:0}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-content p+p{margin-top:10px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons{margin-block:0;margin-inline:0 80px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons a{margin-block:0;margin-inline:0 10px;min-height:unset}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons .button-secondary{background-color:#f6f7f7;border-color:#056aab;color:#056aab}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons .button-secondary:hover,#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons .button-secondary:active,#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons .button-secondary:focus{background-color:#f0f0f1;border-color:#04558a;color:#04558a}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-buttons .button-secondary:focus{box-shadow:0 0 0 1px #04558a}#wpforms-notifications .wpforms-notifications-badge{display:inline-flex;justify-content:center;align-items:center;gap:5px;padding:6px 8px;margin-left:10px;border-radius:3px;background-color:#f6f6f6;color:#50575e;font-size:11px;font-weight:700;line-height:1;text-decoration:none;text-transform:uppercase}#wpforms-notifications .wpforms-notifications-badge svg{width:15px;height:13px}#wpforms-notifications .wpforms-notifications-badge:focus,#wpforms-notifications .wpforms-notifications-badge:hover{background-color:#f0f0f1;box-shadow:none}#wpforms-notifications .dismiss{position:absolute;top:15px;inset-inline-end:15px;width:14px;height:14px;fill:#a7aaad;cursor:pointer}#wpforms-notifications .dismiss:hover{fill:#d63638}#wpforms-notifications .navigation{position:absolute;bottom:15px;inset-inline-end:15px;width:64px;height:30px}#wpforms-notifications .navigation a{display:block;width:30px;height:30px;border:1px solid #7e8993;border-radius:3px;font-size:16px;line-height:1.625;text-align:center;cursor:pointer;background-color:#ffffff;color:#41454a}#wpforms-notifications .navigation a:hover{background-color:#f1f1f1}#wpforms-notifications .navigation .prev{float:left}#wpforms-notifications .navigation .next{float:right}#wpforms-notifications .navigation .disabled{border-color:#dddddd;color:#a0a5aa;cursor:default}#wpforms-notifications .navigation .disabled:hover{background-color:#ffffff}.lity-iframe .lity-content{margin:0 auto}@media screen and (max-width: 768px){#wpforms-notifications .wpforms-notifications-messages{padding-block:15px 10px;padding-inline:16px 50px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-message .wpforms-notifications-title{line-height:22px;margin-block:0 -2px;margin-inline:0 30px;min-height:24px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-message .wpforms-notifications-content{font-size:16px;line-height:22px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-message .wpforms-notifications-buttons{margin:0;padding-inline-end:40px}#wpforms-notifications .wpforms-notifications-messages .wpforms-notifications-message .wpforms-notifications-buttons a.button{margin-bottom:10px}#wpforms-notifications .navigation{bottom:20px;right:20px}}.rtl #wpforms-notifications .navigation .prev{float:right}.rtl #wpforms-notifications .navigation .next{float:left} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin-wp5.7-colors.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin-wp5.7-colors.min.css new file mode 100644 index 0000000..7e999f0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin-wp5.7-colors.min.css @@ -0,0 +1 @@ +.wpforms-admin-page input:focus,.wpforms-admin-page select:focus,.wpforms-admin-page textarea:focus{border:1px solid #2271b1 !important;box-shadow:0 0 0 1px #2271b1 !important}.wpforms-admin-page .wpforms-btn-blue{background-color:#2271b1;border-color:#2271b1}.wpforms-admin-page .wpforms-btn-blue{background-color:#2271b1;border-color:#2271b1}body div.jconfirm div.jconfirm-box input[type=text]:not(.choices__input):focus{border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.wpforms-admin-page .wpforms-btn-blue:hover{background-color:#135e96;border-color:#135e96}body div.jconfirm div.jconfirm-box .error{color:#d63638}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:#d63638}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:#d63638}#wpforms-entries-list .wp-list-table .delete:hover{color:#d63638}#wpforms-admin-addons .addon-item .status .status-active{color:#00a32a}#wpforms-admin-addons .addon-item .status .status-installed{color:#d63638}#wpforms-admin-addons .addon-item .actions .msg.error{color:#d63638}.addon-item .action-button button.status-installed .fa{color:#d63638}.addon-item .action-button button.status-active .fa{color:#00a32a}.addon-item .action-button button.loading .fa{color:#666}.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-process-msg.wpforms-error,.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-selectform-msg.wpforms-error{border-color:#d63638}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:#d63638}.wpforms-admin-content-geolocation .msg.error{border-left:4px solid #d63638}#wpforms-notifications .dismiss:hover{color:#d63638 !important}#wpforms-reset-filter .reset:focus,#wpforms-reset-filter .reset:hover{color:#d63638}.wpforms-dyk .wpforms-dyk-buttons button.wpforms-dismiss-button:hover{color:#d63638}#wpforms-admin-analytics .step .error,#wpforms-admin-smtp .step .error{color:#d63638}#wpforms-admin-addons #wpforms-admin-addons-list .list .addon-item .actions .msg.success{color:#00a32a}#wpforms-admin-about .wpforms-admin-about-section ul.list-features li .fa{color:#00a32a}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #00a32a}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{color:#00a32a}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#00a32a} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin.min.css new file mode 100644 index 0000000..197eb0c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin.min.css @@ -0,0 +1 @@ +.tooltipster-base.tooltipster-sidetip .tooltipster-content{font-size:14px;padding:8px 16px}.tooltipster-base.tooltipster-sidetip .tooltipster-arrow-border{display:none}.tooltipster-base.tooltipster-sidetip .tooltipster-arrow-background{border-width:6px;border-color:transparent}.tooltipster-base.tooltipster-sidetip .tooltipster-box{background:rgba(34,34,34,0.95);border:none}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background,.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{top:0}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-content,.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-content{text-align:center}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow,.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:6px;margin-left:-6px;width:12px}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background,.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{left:0}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-arrow,.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:12px;margin-top:-6px;width:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:rgba(34,34,34,0.95)}.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:rgba(34,34,34,0.95)}.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-6px}.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:rgba(34,34,34,0.95)}.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-6px}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:rgba(34,34,34,0.95)}.choices{position:relative;margin-bottom:24px}.choices ::-webkit-input-placeholder{color:#999999}.choices ::-moz-placeholder{color:#999999;opacity:1}.choices ::placeholder{color:#999999}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#bbbbbb;cursor:not-allowed;user-select:none}.choices [hidden]{display:none !important}.choices *{box-sizing:border-box}.choices.is-open .choices__inner{border-radius:4px 4px 0 0}.choices.is-open.is-flipped .choices__inner{border-radius:0 0 4px 4px}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{display:flex;flex-wrap:wrap;align-items:center;padding-top:0 !important}.choices[data-type*="select-one"] input.choices__input{display:block;width:calc(100% - 20px) !important;margin:10px !important;padding:7px 12px !important;box-sizing:border-box !important;border:1px solid #8c8f94 !important;border-radius:4px !important;background-color:#fff}.choices[data-type*="select-one"] input.choices__input:focus{border:1px solid #056aab !important;box-shadow:0 0 0 1px #056aab !important;outline:none !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;position:absolute;top:50%;inset-inline-end:0;margin-top:-10px;margin-inline-end:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0 0 0 2px #036aab}.choices[data-type*="select-one"] .choices__item[data-value=''] .choices__button{display:none}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"] .choices__inner{padding-right:24px}.choices[data-type*="select-multiple"] .choices__inner .choices__input{padding:0 4px !important;max-width:100%;background-color:transparent;line-height:22px}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-1.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:absolute;display:inline-block;vertical-align:baseline;margin-top:0;margin-bottom:0;margin-inline-start:5px;padding:0;background-color:transparent;background-image:url("../images/cross.svg");background-size:12px;background-position:center center;background-repeat:no-repeat;width:12px;height:12px;line-height:1;opacity:.75;border-radius:0;inset-inline-end:4px}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{width:100%;background-color:#ffffff;padding:4px 6px 0;border:1px solid #8c8f94;overflow:hidden;border-radius:4px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;vertical-align:baseline;width:100%;padding:0 16px 0 4px;font-size:0.875em}.choices__list--single .choices__item{width:100%;overflow:hidden;text-overflow:ellipsis;padding-inline-end:20px;white-space:nowrap;color:#2c3338}.choices__list--single .choices__item[data-value='']{padding-inline-end:0}.choices__list--multiple{display:inline;height:auto;overflow:auto}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;position:relative;align-items:center;border-radius:2px;padding-block:4px;padding-inline:7px 20px;font-size:.75em;line-height:1;font-weight:400;margin:0 6px 4px 0;background-color:#036aab;border:1px solid #036aab;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 10px)}.choices__list--multiple .choices__item.is-highlighted{background-color:#036aab}.is-disabled .choices__list--multiple .choices__item{background-color:#bbbbbb;border:1px solid #bbbbbb}.choices__list--dropdown{display:none;z-index:101;position:absolute;width:100%;background-color:#ffffff;border:1px solid #8c8f94;top:100%;margin-top:-1px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;overflow:hidden;overflow-wrap:break-word}.choices__list--dropdown.is-active{display:block}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;vertical-align:top;padding:10px;font-size:.875em}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f6f6f6}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__list--dropdown .choices__placeholder{display:none}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:4px 4px 0 0}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:.75em;text-transform:uppercase;padding:10px;border-top:1px solid #b4b6b9;border-bottom:1px solid #b4b6b9;color:#a6a6a6}.choices__group[data-value="hidden"]>.choices__heading{display:none}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;background-color:transparent;margin:0 0 2px 0 !important;border:0 !important;border-radius:0 !important;min-height:20px !important;padding:2px 4px !important;height:auto !important;min-width:1ch;width:1ch;vertical-align:middle}.choices__input::-webkit-search-cancel-button{display:none}.choices__input--hidden{clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;min-width:auto !important;word-wrap:normal !important}.choices .choices__inner input.choices__input:focus{outline:none !important;box-shadow:none !important;border:none !important}.choices__placeholder{opacity:.5}#wpforms-admin-form-embed-wizard .choices.is-open.is-flipped .choices__inner{border-radius:4px 4px 0 0}#wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{border-radius:inherit}#wpforms-admin-form-embed-wizard .choices[data-type*="select-one"]:after{border:none;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E) no-repeat center;background-size:16px 16px;cursor:pointer;width:16px;height:16px;top:13px;right:8px;margin-top:0}#wpforms-admin-form-embed-wizard .choices[data-type*="select-one"].is-flipped:after{transform:rotate(180deg)}body.rtl .choices[data-type*="select-multiple"] .choices__inner{padding-right:4px;padding-left:24px}body.rtl .choices__list--single{padding-right:4px;padding-left:16px}body.rtl .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}body.rtl .choices__list--dropdown .choices__item{text-align:right}body.rtl .choices__input{padding-right:2px !important;padding-left:0 !important}body.rtl .choices[data-type*="select-multiple"] .choices__button,body.rtl .choices[data-type*="text"] .choices__button{margin-inline-end:0;border-left:none}@media (min-width: 640px){body.rtl .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}body.rtl .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.wpforms-admin-page .choices:after{content:"\f347";position:absolute;top:calc( 50% - 6px);inset-inline-end:6px;font-family:dashicons, sans-serif;color:#50575e;border:none;width:16px;height:16px;line-height:1;z-index:2}.wpforms-admin-page .choices.is-open:after{margin-top:-1px;transform:rotate(180deg)}.wpforms-admin-page .choices[data-type*="select-multiple"] .choices__inner{cursor:pointer}.wpforms-admin-page .is-focused .choices__inner,.wpforms-admin-page .is-open .choices__inner{border-color:#056aab;box-shadow:0 0 0 1px #056aab;outline:none}.wpforms-admin-page .is-flipped.is-open .choices__inner{border-color:#056aab;box-shadow:0 0 0 1px #056aab;outline:none}.wpforms-admin-page .is-open .choices__list--dropdown{border-color:#056aab;border-top-color:#72757b;border-bottom:0;box-shadow:0 1px 0 1px #056aab}.wpforms-admin-page .is-open.is-flipped .choices__list--dropdown{border-top:0;border-bottom:1px solid #72757b;box-shadow:0 -1px 0 1px #056aab}.choices__inner{min-height:36px;padding-top:6px;line-height:1.2}div.wpforms-container.wpforms-edit-entry-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner{max-height:36px}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner .choices__list{overflow:hidden;display:block;max-height:24px}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"][aria-expanded="false"].choices__show-more:before{position:absolute;content:'\f11c';font-family:dashicons, sans-serif;top:7px;height:22px;line-height:22px;inset-inline-end:28px;text-align:center;font-size:14px;color:#a7aaad;box-sizing:border-box;pointer-events:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"] .choices__inner{padding-inline-end:40px}.wpforms-admin-page#wpforms-builder .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner{max-height:32px}.wpforms-admin-page#wpforms-builder .choices[data-type*="select-multiple"][aria-expanded="false"].choices__show-more:before{top:5px}.wpforms-admin-page .wpforms-btn{border:1px;border-style:solid;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-in-out}.wpforms-admin-page .wpforms-btn.inactive{cursor:no-drop;pointer-events:none;box-shadow:none;opacity:0.5}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-sm{font-size:13px;font-weight:500;padding:4px 10px;min-height:30px}.wpforms-admin-page .wpforms-btn-md{font-size:14px;font-weight:600;padding:7px 15px;min-height:36px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#ffffff}.wpforms-admin-page .wpforms-btn-orange:hover,.wpforms-admin-page .wpforms-btn-orange:active,.wpforms-admin-page .wpforms-btn-orange:focus{background-color:#cd6622;border-color:#cd6622;color:#ffffff}.wpforms-admin-page .wpforms-btn-orange:focus{box-shadow:0 0 0 2px #cd6622;border-color:#ffffff;outline:0}.wpforms-admin-page .wpforms-btn-red{background-color:#d63638;border-color:#d63638;color:#fff}.wpforms-admin-page .wpforms-btn-red:hover,.wpforms-admin-page .wpforms-btn-red:focus{background-color:#b32d2e;border-color:#b32d2e;color:#fff}.wpforms-admin-page .wpforms-btn-red:focus{box-shadow:0 0 0 1px #fff, 0 0 0 3px #b32d2e;outline:0}.wpforms-admin-page .wpforms-btn-blue{background-color:#056aab;border-color:#056aab;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue:hover,.wpforms-admin-page .wpforms-btn-blue:focus{background-color:#04558a;border-color:#04558a;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue:focus{box-shadow:0 0 0 2px #04558a;border-color:#ffffff;outline:0}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-bordered{background-color:transparent;border:1px solid #8c8f94;color:#50575e}.wpforms-admin-page .wpforms-btn-bordered:hover,.wpforms-admin-page .wpforms-btn-bordered:focus{background-color:#f0f0f1;border-color:#50575e;color:#2c3338}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f6f7f7;color:#50575e;border-color:#8c8f94}.wpforms-admin-page .wpforms-btn-light-grey:hover,.wpforms-admin-page .wpforms-btn-light-grey:focus{color:#2c3338;border-color:#50575e}.wpforms-admin-page .wpforms-btn-light-grey:focus{background-color:#f0f0f1;box-shadow:0 0 0 1px #50575e;outline:0}.wpforms-admin-page .wpforms-btn-trans-green{background-color:transparent;border:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}.wpforms-admin-page .wpforms-btn-green{background-color:#008a20;color:#ffffff;border-color:#008a20}.wpforms-admin-page .wpforms-btn-green:hover,.wpforms-admin-page .wpforms-btn-green:focus{background-color:#00a32a;color:#ffffff}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm .jconfirm-box-container .jconfirm-box{display:grid;grid-template-columns:repeat(2, 1fr);justify-items:center;animation:none;background:#ffffff;border-radius:6px;border-top-style:solid;border-top-width:4px;box-shadow:0 3px 6px rgba(0,0,0,0.15);padding-top:34px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons{grid-column:1 / -1}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default{border-top-width:0;padding-top:25px}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c{margin-bottom:20px}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c{font-size:44px;margin-bottom:-6px}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm{background-color:#e27730;border-color:#e27730}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover{background-color:#cd6622;border-color:#cd6622}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red{border-top-color:#d63638 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#d63638 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm{background-color:#d63638;border-color:#d63638}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover{background-color:#b32d2e;border-color:#b32d2e}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange{border-top-color:#e27730 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#e27730 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm{background-color:#e27730;border-color:#e27730}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover{background-color:#cd6622;border-color:#cd6622}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow{border-top-color:#ffb900 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c{color:#ffb900 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm{background-color:#ffb900;border-color:#ffb900}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover{background-color:#ffaa00;border-color:#ffaa00}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue{border-top-color:#0399ed !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#0399ed !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm{background-color:#0399ed;border-color:#0399ed}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover{background-color:#036aab;border-color:#036aab}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green{border-top-color:#00a32a !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#00a32a !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm{background-color:#00a32a;border-color:#00a32a}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover{background-color:#008a20;border-color:#008a20}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple{border-top-color:#7a30e2 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#7a30e2 !important}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm{background-color:#7a30e2;border-color:#7a30e2}body div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover{background-color:#5c24a9;border-color:#5c24a9}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{color:transparent;font-family:FontAwesome;height:14px;opacity:1;right:10px;top:10px;width:14px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after{color:#b0b2b3;content:"\f00d";font-size:16px;left:0;position:absolute;top:0}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after{color:#50575e !important}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c{margin:0 0 20px 0;padding:0;font-weight:600}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{font-size:47px;margin:0;-ms-transform:none !important;transform:none !important;-webkit-transition:none !important;transition:none !important}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title{margin-top:20px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title{color:#3c434a;display:block;line-height:30px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane{display:block;margin-bottom:20px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content{color:#3c434a;font-size:16px;line-height:24px;margin-bottom:0;overflow:inherit}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p{color:#50575e;font-size:18px;padding:0 20px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p{font-size:inherit;line-height:inherit;margin:0 0 16px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type{margin:0}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large{font-size:18px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small{font-size:14px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select{margin:10px 2px;width:calc(100% - 4px)}body div.jconfirm .jconfirm-box-container .jconfirm-box .already-purchased{display:block;grid-row:5;grid-column:1 / -1;color:#b0b2b3;font-size:14px;margin-top:15px;text-decoration:underline;text-align:center}body div.jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover{color:#50575e;text-decoration:underline}body div.jconfirm .jconfirm-box-container .jconfirm-box .discount-note{grid-row:4;grid-column:1 / -1;margin:25px 0 0 0;text-align:center}body div.jconfirm .jconfirm-box-container .jconfirm-box .discount-note p{background-color:#fcf9e8;color:#50575e;font-size:16px;margin:0 -30px;padding:22px 52px 12px 52px;position:relative}body div.jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after{top:-16px;background-color:#ffffff;border-radius:50%;color:#00a32a;content:"\f058";display:inline-block;font:normal normal normal 14px FontAwesome;font-size:26px;margin-right:-18px;padding:5px 6px;position:absolute;right:50%;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body div.jconfirm .jconfirm-box-container .jconfirm-box .discount-note span{color:#00a32a;font-weight:700}body div.jconfirm .jconfirm-box-container .jconfirm-box .discount-note a{color:#50575e;display:block;margin-top:12px}body div.jconfirm .jconfirm-box-container .jconfirm-box .feature-video{margin:30px 0 0 0}body div.jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video{margin:15px 0 10px 0}body div.jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input){display:block;width:99%;border:1px solid #d6d6d6;padding:10px !important;box-shadow:none;margin:10px 1px 1px 1px !important;line-height:1 !important;outline:0}body div.jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input):focus{border-color:#007cba;box-shadow:0 0 0 1px #007cba}body div.jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key{margin-top:20px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons{margin-top:-10px}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button{min-width:83px;background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;color:#50575e;font-size:16px;font-weight:600;line-height:20px;outline:none;padding:11px 17px;text-transform:none;margin:10px;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover{background:#e8e9e9;border-color:#c3c4c7}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled]{cursor:no-drop;pointer-events:none;opacity:.25}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm{color:#ffffff}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button{margin-left:0;margin-right:0}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block{display:block;margin:0 0 10px 0 !important;text-align:center;width:100%}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case{text-transform:none !important}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i{margin:0 10px 0 0}body div.jconfirm .jconfirm-box-container .jconfirm-box .error{color:#d63638;display:none}body div.jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description{font-size:13px;line-height:1.4;margin-top:15px}body div.jconfirm .jconfirm-box-container .jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm .jconfirm-box-container .jconfirm-box #wpforms-embed-shortcode:disabled{color:#333333}body div.jconfirm .jconfirm-box-container .jconfirm-box button[disabled]{cursor:no-drop}body div.jconfirm.jconfirm-wpforms-education .jconfirm-content-pane{height:auto !important;min-height:fit-content}.choices{font-size:16px;text-align:start}.choices input[type=text].choices__input:not(.wpforms-hidden){display:inline-block !important}body .jconfirm.has-video div.jconfirm-box-container .jconfirm-box{padding-bottom:0;padding-top:30px}body .jconfirm.has-video div.jconfirm-box-container .already-purchased{display:block;grid-row:4;grid-column:1 / 2;margin-top:0}body .jconfirm.has-video div.jconfirm-box-container .already-purchased:hover{color:#50575e}body .jconfirm.has-video div.jconfirm-box-container .discount-note{grid-row:5;margin:20px 0 0}body .jconfirm.has-video div.jconfirm-box-container .discount-note p{margin:0 -30px;padding:20px 52px;border-radius:0 0 6px 6px}body .jconfirm.has-video div.jconfirm-box-container .discount-note p:after{display:none}body .jconfirm.has-video div.jconfirm-box-container .feature-video,body .jconfirm.has-video div.jconfirm-box-container .pro-feature-video{grid-row:1 / span 4;grid-column-start:2;margin-top:0;margin-left:15px}body .jconfirm.has-video div.jconfirm-box-container .jconfirm-title-c,body .jconfirm.has-video div.jconfirm-box-container .jconfirm-content-pane,body .jconfirm.has-video div.jconfirm-box-container .jconfirm-buttons{grid-column:1 / 2}body .jconfirm.upgrade-modal .jconfirm-box-container div.jconfirm-box{padding-bottom:30px}body .jconfirm.upgrade-modal .jconfirm-box-container div.jconfirm-box .pro-feature-video{margin-bottom:0}body .jconfirm.upgrade-modal .jconfirm-box-container div.jconfirm-box .jconfirm-buttons{padding-bottom:0}@media screen and (max-width: 1023px){body .jconfirm.has-video div.jconfirm-box{grid-template-columns:repeat(1, 1fr)}body .jconfirm.has-video .feature-video,body .jconfirm.has-video .pro-feature-video{display:none}}.wpforms-admin-page .wpforms-alert{padding:16px;margin-bottom:18px;border:1px solid transparent}.wpforms-admin-page .wpforms-alert h4{margin-top:0;color:inherit}.wpforms-admin-page .wpforms-alert p{margin:0 0 15px 0}.wpforms-admin-page .wpforms-alert p:last-of-type{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-small{font-size:12px}.wpforms-admin-page .wpforms-alert.wpforms-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpforms-admin-page .wpforms-alert.wpforms-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wpforms-admin-page .wpforms-alert.wpforms-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wpforms-admin-page .wpforms-alert.wpforms-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.wpforms-badge{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;text-transform:uppercase;font-weight:700;text-align:center;line-height:6px;user-select:none;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}.wpforms-badge i{margin-right:5px}.wpforms-badge-lg{font-size:10px;letter-spacing:0.5px;padding:8px 10px}.wpforms-badge-sm{font-size:8px;letter-spacing:0.4px;padding:6px 8px}.wpforms-badge-inline{display:inline-block}.wpforms-badge-corner{position:absolute;right:0;top:0}.wpforms-badge-block{display:block;width:fit-content}.wpforms-badge-rounded{border-radius:3px}.wpforms-badge-rounded-bl{border-radius:0 0 0 3px}.wpforms-badge-square{border-radius:0}.wpforms-badge-silver,.wpforms-badge-platinum{color:#999999;background-color:#ededed}.wpforms-badge-titanium{color:#8c8f94;background-color:#e5e5e6}.wpforms-badge-steel{color:#9ba4af;background-color:#e7ecf2}.wpforms-badge-slate{color:#9ba4af;background-color:#dbe4ee}.wpforms-badge-stone{color:#999999;background-color:#444444}.wpforms-badge-orange{color:#e79055;background-color:#fdf2eb}.wpforms-badge-blue{color:#30abf0;background-color:#e6f4fe}.wpforms-badge-green{color:#30b450;background-color:#e5f6e9}.wpforms-badge-red{color:#dd595b;background-color:#fae6e7}.wpforms-badge-purple{color:#9b64e8;background-color:#faf5fe}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page a{color:#056aab}.wpforms-admin-page a:hover{color:#04558a}.wpforms-admin-page .row-actions .trash a,.wpforms-admin-page .row-actions .delete a{color:#d63638}.wpforms-admin-page .row-actions .trash a:hover,.wpforms-admin-page .row-actions .delete a:hover{color:#b32d2e}.wpforms-admin-page .button{color:#056aab;border-color:#056aab}.wpforms-admin-page .button[disabled]{color:#056aab !important;border-color:#056aab !important}.wpforms-admin-page .button:hover{color:#04558a;border-color:#04558a}.wpforms-admin-page .button:focus{color:#056aab;border-color:#056aab;box-shadow:0 0 0 1px #056aab}.wpforms-admin-page .button.button-primary{background-color:#056aab;border-color:#056aab;color:#ffffff}.wpforms-admin-page .button.button-primary:hover,.wpforms-admin-page .button.button-primary:focus{background-color:#04558a;border-color:#04558a;color:#ffffff}.wpforms-admin-page .button.button-primary:focus{border-color:#ffffff;box-shadow:0 0 0 2px #04558a}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;padding:0;outline:none}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label .fld,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label .fld{border:1px solid #2271b1;box-shadow:0 0 0 1px #2271b1;outline:none}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{opacity:.5}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-inline-end:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-hidden{display:none !important}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-page .lity{z-index:999999999;padding:20px}.wpforms-admin-page .lity-close{margin:10px}.wpforms-admin-page .lity-content{max-width:80vw;max-height:80vh}.wpforms-admin-page .lity-content img{max-height:80vh !important;max-width:80vw !important}.wpforms-admin-page input.choices__input{line-height:normal;box-shadow:none}.wpforms-admin-page input:focus,.wpforms-admin-page select:focus,.wpforms-admin-page textarea:focus{border:1px solid #016AAB !important;box-shadow:0 0 0 1px #016AAB !important;outline:none !important}.wpforms-admin-page a:focus{box-shadow:0 0 2px 1px #016AABCC}.wpforms-admin-page #poststuff #post-body.columns-2{margin-right:320px}.wpforms-admin-page #poststuff #post-body.columns-2 .postbox-container{margin-right:-320px;width:300px}.wpforms-admin-page .postbox{background:#ffffff;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,0.05);border-radius:4px}.wpforms-admin-page .postbox .hndle{cursor:default !important;border-color:#c3c4c7}.wpforms-admin-page .postbox #major-publishing-actions,.wpforms-admin-page .postbox .overlay{border-radius:0 0 4px 4px}.wpforms-admin-page .postbox #major-publishing-actions{border-top:1px solid #c3c4c7}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-wrap .notice.wpforms-notice-spam{margin-bottom:10px}.wpforms-tools-tab-action-scheduler .error,.wpforms-tools-tab-action-scheduler .updated{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-admin-content hr{border:none;border-top:1px solid #e4e4e4;margin:20px 0;background:none}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-admin-columns>div[class*="-column-"]{float:left}.wpforms-admin-columns .wpforms-admin-column-20{width:20%}.wpforms-admin-columns .wpforms-admin-column-33{width:33.33333%}.wpforms-admin-columns .wpforms-admin-column-40{width:40%}.wpforms-admin-columns .wpforms-admin-column-50{width:50%}.wpforms-admin-columns .wpforms-admin-column-60{width:60%}.wpforms-admin-columns .wpforms-admin-column-80{width:80%}.wpforms-admin-columns .wpforms-admin-column-last{float:right !important}.wpforms-admin-columns:after{content:"";display:table;clear:both}.lity-active,.lity-active body.wpforms-admin-page{overflow:scroll}@media screen and (max-width: 782px){.wpforms-admin-wrap .notice{margin:5px 10px 10px 10px !important}.wpforms-tools-tab-action-scheduler .error,.wpforms-tools-tab-action-scheduler .updated{margin:5px 10px 10px 10px !important}}.flatpickr-calendar select.flatpickr-monthDropdown-months,.flatpickr-calendar input.numInput{min-height:auto;padding:0}.flatpickr-calendar select.flatpickr-monthDropdown-months:focus,.flatpickr-calendar select.flatpickr-monthDropdown-months:hover,.flatpickr-calendar select.flatpickr-monthDropdown-months:active,.flatpickr-calendar input.numInput:focus,.flatpickr-calendar input.numInput:hover,.flatpickr-calendar input.numInput:active{border:none !important;box-shadow:none !important;outline:none !important;background:transparent !important}@media (max-width: 599px){.flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.rtl.wpforms-admin-page #wpcontent{padding-right:0 !important;padding-left:0 !important}.rtl.wpforms-admin-page #poststuff #post-body.columns-2{margin-right:0;margin-left:320px}.rtl.wpforms-admin-page #poststuff #post-body.columns-2 .postbox-container{margin-left:-320px;margin-right:unset;width:300px}#wpforms-header-temp{margin:0;position:absolute;top:-1px;left:20px;right:0;z-index:99}@media (max-width: 599px){#wpforms-header-temp{padding-top:50px}}#wpforms-header{display:flex;justify-content:space-between;align-items:center;border-top:3px solid #e27730;padding:22px 20px;box-sizing:border-box;height:111px}@media (max-width: 782px){#wpforms-header{height:101px}}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}#wpforms-header .wpforms-links{gap:30px;border-top:0}#wpforms-header.wpforms-header-show-screen-options .wpforms-links{padding-top:45px}@media (max-width: 782px){#wpforms-header .wpforms-links{display:none}}@media screen and (min-width: 1024px){#wpforms-notice-bar+#wpforms-header-temp{top:34px}}#wpforms-payments h1.page-title .wpforms-payments-overview-help{font-size:14px;font-weight:600;line-height:18px;margin-inline-start:auto}#wpforms-payments h1.page-title .wpforms-payments-overview-help a{align-items:center;color:#999c9e;display:flex;gap:6px;text-decoration:none}#wpforms-payments h1.page-title .wpforms-payments-overview-help a:is(:active,:focus,:hover){box-shadow:none;color:#50575e;outline:none}#wpforms-payments h1.page-title .wpforms-payments-overview-help a i{font-size:16px}body.wpforms-admin-page #wpbody-content{padding-bottom:200px}@media (max-width: 782px){body.wpforms-admin-page #wpbody-content{padding-bottom:0 !important}}body.wpforms-admin-page.wpforms_page_wpforms-entries #wpbody-content{padding-bottom:185px}body.wpforms-admin-page.wpforms_page_wpforms-entries #wpbody-content #wpforms-entries-single{margin-bottom:10px}body.wpforms-admin-page.wpforms_page_wpforms-entries #wpbody-content #wpforms_reports_widget_pro,body.wpforms-admin-page.wpforms_page_wpforms-entries #wpbody-content .wpforms-entries-list-upgrade{margin-bottom:50px}body.wpforms-admin-page.wpforms_page_wpforms-templates #wpbody-content{padding-bottom:215px}body.wpforms-admin-page.wpforms_page_wpforms-settings #wpbody-content{padding-bottom:150px}body.wpforms-admin-page.wpforms_page_wpforms-settings #wpbody-content .settings-lite-cta{margin-bottom:80px}body.wpforms-admin-page.wpforms_page_wpforms-settings #wpbody-content .wpforms-admin-settings-integrations{margin-bottom:80px}body.wpforms-admin-page.wpforms_page_wpforms-settings #wpbody-content .wpforms-admin-settings-integrations .settings-lite-cta{margin-bottom:0}body.wpforms-admin-page.wpforms_page_wpforms-tools #wpbody-content{padding-bottom:0}body.wpforms-admin-page.wpforms_page_wpforms-tools #wpbody-content #wpforms-tools{padding-bottom:230px}@media (max-width: 782px){body.wpforms-admin-page.wpforms_page_wpforms-tools #wpbody-content #wpforms-tools{padding-bottom:20px !important}}body.wpforms-admin-page.wpforms_page_wpforms-tools #wpbody-content #wpforms-tools.wpforms-tools-tab-action-scheduler,body.wpforms-admin-page.wpforms_page_wpforms-tools #wpbody-content #wpforms-tools.wpforms-tools-tab-logs{padding-bottom:185px}body.wpforms-admin-page.wpforms_page_wpforms-addons #wpbody-content,body.wpforms-admin-page.wpforms_page_wpforms-analytics #wpbody-content,body.wpforms-admin-page.wpforms_page_wpforms-smtp #wpbody-content,body.wpforms-admin-page.wpforms_page_wpforms-about #wpbody-content{padding-bottom:210px}body.wpforms-admin-page.wpforms_page_wpforms-addons #wpbody-content .wpforms-admin-about-section:last-child,body.wpforms-admin-page.wpforms_page_wpforms-analytics #wpbody-content .wpforms-admin-about-section:last-child,body.wpforms-admin-page.wpforms_page_wpforms-smtp #wpbody-content .wpforms-admin-about-section:last-child,body.wpforms-admin-page.wpforms_page_wpforms-about #wpbody-content .wpforms-admin-about-section:last-child{margin-bottom:20px}body.wpforms-admin-page.wpforms_page_wpforms-community #wpbody-content{padding-bottom:190px}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion{text-align:center;font-weight:400;font-size:13px;line-height:normal;color:#6a6f76;padding:30px 0;margin-bottom:20px}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion p{font-weight:600}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-links,body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-social{display:flex;justify-content:center;align-items:center}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-links{margin:10px 0;color:#6a6f76}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-links a{color:#056aab}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-links a:hover{color:#04558a}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-links span{color:#c3c4c7;padding:0 7px}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-social{gap:10px;margin:0}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-social li{margin-bottom:0}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-social li path{color:#6a6f76}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-social li:hover path{fill:#50575e}body.wpforms-admin-page #wpfooter .wpforms-footer-promotion-social a{display:block;height:16px}body.wpforms-admin-page #wpfooter #footer-left{color:#50575e;font-size:13px;font-style:normal;font-weight:400;line-height:normal}body.wpforms-admin-page #wpfooter #footer-left strong{font-weight:600}.wpforms-admin-wrap .page-title{display:flex !important;align-items:center;gap:20px;margin:0 0 20px 0;padding:15px 20px;color:#101517;background-color:#ffffff;font-size:22px;font-weight:400;line-height:30px}.wpforms-admin-wrap .page-title-action{transition-property:color, background-color, border-color, box-shadow;border-radius:4px !important}.wpforms-admin-wrap .page-title-action,.wpforms-admin-wrap .page-title-action:active{position:initial;display:inline-flex !important;align-items:center;gap:7px;margin:0;padding:6px 10px;font-size:13px;font-weight:600;line-height:normal}.wpforms-admin-wrap .page-title-action-icon{width:auto;height:12px;fill:#ffffff;opacity:0.75}.wpforms-payments-wrap .page-title{font-size:22px;line-height:30px}.wpforms-payments-wrap.wpforms-payments-wrap-payments .page-title{align-items:center;display:flex !important;gap:20px}.wpforms-payments-wrap .wpforms-payments-overview-help{font-size:14px;font-weight:600;line-height:18px;margin-inline-start:auto}.wpforms-payments-wrap .wpforms-payments-overview-help a{align-items:center;color:#999c9e;display:flex;gap:6px;text-decoration:none}.wpforms-payments-wrap .wpforms-payments-overview-help a:is(:active,:focus,:hover){box-shadow:none;color:#50575e;outline:none}.wpforms-payments-wrap .wpforms-payments-overview-help a i{font-size:16px}.wpforms-admin-tabs{display:flex;flex-wrap:wrap;gap:0 30px;margin:0 0 20px 0;padding:0 20px;background-color:#ffffff;list-style:none;font-size:14px;font-weight:400}@media (max-width: 767px){.wpforms-admin-tabs{flex-wrap:nowrap;overflow-x:scroll;padding:0 30px 0 20px;white-space:nowrap}.wpforms-admin-tabs::after{content:"\f11c";font-family:dashicons;position:absolute;top:0;inset-inline-end:0;bottom:0;background-color:#ffffff;width:36px;height:60px;box-shadow:0 0 20px -5px #00000030;clip-path:inset(0 0 0 -20px);color:#a7aaad;display:flex;justify-content:center;flex-direction:column;align-items:center;opacity:0;transition-property:opacity;transition-duration:0.15s;transition-timing-function:ease-out}.wpforms-admin-tabs.wpforms-admin-tabs--scrollable::after{opacity:1}}.wpforms-admin-tabs li{margin:0;padding:0}.wpforms-admin-tabs li a{display:block;padding:15px 0 12px 0;line-height:30px;border-bottom:3px solid #ffffff;box-shadow:none;color:#2c3338;text-decoration:none}.wpforms-admin-tabs li a:hover,.wpforms-admin-tabs li a:focus,.wpforms-admin-tabs li a.active:focus{color:#2c3338;border-color:#c3c4c7}.wpforms-admin-tabs li a.active{border-color:#e27730}.wpforms-admin-tabs li a:focus{box-shadow:none}.rtl .wpforms-admin-wrap .page-title-action,.rtl .wpforms-admin-wrap .page-title-action:active{flex-direction:row-reverse}#wpforms-flyout{position:fixed;z-index:99999;transition:all 0.2s ease-in-out;inset-inline-end:40px;bottom:40px;opacity:1}@media (max-width: 959px){#wpforms-flyout{display:none}}#wpforms-flyout .wpforms-flyout-head{display:block}#wpforms-flyout .wpforms-flyout-head img{width:54px;height:54px;display:block;border-radius:50%;border:3px solid #E1772F;overflow:hidden;box-shadow:0 3px 20px rgba(0,0,0,0.2);transition:all 0.2s ease-in-out}#wpforms-flyout .wpforms-flyout-head:hover img{box-shadow:0 3px 30px rgba(0,0,0,0.25)}#wpforms-flyout .wpforms-flyout-head .wpforms-flyout-label{opacity:0;transform:translateY(-50%) scale(0);margin-inline-end:-50px}#wpforms-flyout .wpforms-flyout-head:hover .wpforms-flyout-label{opacity:1;transform:translateY(-50%) scale(1);margin-inline-end:0}#wpforms-flyout .wpforms-flyout-head:focus{box-shadow:none}#wpforms-flyout .wpforms-flyout-head .wpforms-flyout-label{inset-inline-end:calc(100% + 15px)}#wpforms-flyout .wpforms-flyout-label{position:absolute;display:block;top:50%;inset-inline-end:calc(100% + 25px);transform:translateY(-50%);-moz-transform:translateY(-50%);-webkit-transform:translateY(-50%);color:#fff;background:#5F5E5E 0 0 no-repeat padding-box;font-size:12px;white-space:nowrap;padding:5px 10px;height:auto !important;line-height:initial;transition:all 0.2s ease-out;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}#wpforms-flyout .wpforms-flyout-item{position:absolute;inset-inline-start:10px;width:40px;height:40px;opacity:0;visibility:hidden;transition:all 0.2s ease-in-out;transform:scale(0);border-radius:50%;box-shadow:0 3px 20px rgba(0,0,0,0.2);background:#036AAB 0 0 no-repeat padding-box;text-align:center;vertical-align:middle}#wpforms-flyout .wpforms-flyout-item i{color:#ffffff;font-size:20px;line-height:40px;vertical-align:middle}#wpforms-flyout .wpforms-flyout-item.wpforms-flyout-item-0{bottom:75px}#wpforms-flyout .wpforms-flyout-item.wpforms-flyout-item-1{bottom:130px}#wpforms-flyout .wpforms-flyout-item.wpforms-flyout-item-2{bottom:185px}#wpforms-flyout .wpforms-flyout-item.wpforms-flyout-item-3{bottom:240px}#wpforms-flyout .wpforms-flyout-item.wpforms-flyout-item-4{bottom:295px}#wpforms-flyout .wpforms-flyout-item:hover{box-shadow:0 3px 30px rgba(0,0,0,0.25);background:#0096F0 0 0 no-repeat padding-box}#wpforms-flyout .wpforms-flyout-item:hover .wpforms-flyout-label{background:#444444 0 0 no-repeat padding-box}#wpforms-flyout.opened .wpforms-flyout-item{opacity:1;visibility:visible;transform:scale(1)}#wpforms-flyout.opened .wpforms-flyout-head .wpforms-flyout-label{display:none}#wpforms-flyout.opened .wpforms-flyout-item-0{transition:transform 0.2s 0ms, background-color 0.2s}#wpforms-flyout.opened .wpforms-flyout-item-1{transition:transform 0.2s 35ms, background-color 0.2s}#wpforms-flyout.opened .wpforms-flyout-item-2{transition:transform 0.2s 70ms, background-color 0.2s}#wpforms-flyout.opened .wpforms-flyout-item-3{transition:transform 0.2s 105ms, background-color 0.2s}#wpforms-flyout.opened .wpforms-flyout-item-4{transition:transform 0.2s 140ms, background-color 0.2s}#wpforms-flyout.out{opacity:0;visibility:hidden}.wpforms-admin-empty-state-container{color:#50575e;font-style:normal;padding:30px;text-align:center}.wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url(../images/empty-states/waving-hand-emoji.png);background-position:0 0;background-repeat:no-repeat;background-size:24px 24px;display:inline-block;padding-left:34px}.wpforms-admin-empty-state-container h2{color:#1d2327;font-family:inherit;font-size:24px;font-weight:600;line-height:29px;margin:0 0 10px}.wpforms-admin-empty-state-container h4{color:#32373c;font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;margin-block:0}.wpforms-admin-empty-state-container img{max-width:428px;width:100%;margin:30px auto}.wpforms-admin-empty-state-container p{font-family:inherit;font-size:16px;line-height:24px;margin-block:0;text-align:center}.wpforms-admin-empty-state-container.wpforms-admin-no-forms p:first-of-type{font-weight:600}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active{border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:16px;line-height:1.5;text-align:center;color:#ffffff;padding:15px 30px;margin:0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:hover,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:focus,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px;line-height:16px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms{font-family:'Helvetica Neue', sans-serif;background:rgba(255,255,255,0.5);border:1px solid #71d7d7;box-sizing:border-box;padding:20px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms img{max-width:240px;width:100%;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms p{font-family:inherit;font-weight:normal;font-size:14px;line-height:18px;text-align:center;color:#495157;max-width:450px;margin:20px auto 0}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a{color:inherit;text-decoration:underline;position:relative}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn{background:#525962;border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:12px;line-height:1.5;text-align:center;text-transform:uppercase;color:#ffffff;padding:7px 17px;margin:20px 0 0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:hover{text-decoration:none;background:#2b2c31}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-admin-no-forms-footer{font-size:12px;line-height:1.5;color:#6d7882}.wpforms-admin-empty-state-container.wpforms-admin-no-entries img{max-width:413px;display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments{max-width:640px;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-admin-no-payments img{display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-btn-lg{border-radius:4px;padding:14px 20px}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]){color:#056aab;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]):hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h2,.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h4{font-weight:500}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p{font-size:14px;color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p.wpforms-admin-no-forms-footer{color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates img{max-width:560px;border-radius:4px;box-shadow:0 5px 15px rgba(0,0,0,0.15)}#wpforms-reset-filter{clear:both;margin:20px 0;padding:10px;font-size:15px;text-align:center;background:#ffffff;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,0.04)}#wpforms-reset-filter .reset{cursor:pointer;color:#a7aaad;margin-left:3px}#wpforms-reset-filter .reset:focus,#wpforms-reset-filter .reset:hover{color:#dc3232}@media (max-width: 782px){#wpforms-reset-filter{margin-bottom:10px}}.wpforms-toggle-control{display:flex;align-items:center;margin:0 1px;line-height:1;color:#50575e;font-weight:500}.wpforms-toggle-control input[type=checkbox]{position:absolute;overflow:hidden;height:0;width:0;border:none !important;box-shadow:none !important;margin:0;min-width:0}.wpforms-toggle-control input[type=checkbox]:hover,.wpforms-toggle-control input[type=checkbox]:focus{border:none !important;box-shadow:none !important}.wpforms-toggle-control input[type=checkbox]:hover+label.wpforms-toggle-control-icon{background-color:#6a6f76}.wpforms-toggle-control input[type=checkbox]:focus+label.wpforms-toggle-control-icon{background-color:#6a6f76;box-shadow:0 0 0 1px #ffffff, 0 0 0 2px #8c8f94}.wpforms-toggle-control input[type=checkbox]:checked+label.wpforms-toggle-control-icon{background-color:#056aab}.wpforms-toggle-control input[type=checkbox]:checked+label.wpforms-toggle-control-icon:after{left:calc( 100% - 2px);transform:translateX(-100%)}.wpforms-toggle-control input[type=checkbox]:checked:hover+label.wpforms-toggle-control-icon{background-color:#04558a}.wpforms-toggle-control input[type=checkbox]:checked:focus+label.wpforms-toggle-control-icon{box-shadow:0 0 0 1px #ffffff, 0 0 0 2px #04558a}.wpforms-toggle-control input[type=checkbox]:disabled+label.wpforms-toggle-control-icon{opacity:0.5}.wpforms-toggle-control input[type=checkbox]:disabled:hover+label.wpforms-toggle-control-icon,.wpforms-toggle-control input[type=checkbox]:disabled:focus+label.wpforms-toggle-control-icon{box-shadow:none}.wpforms-toggle-control span,.wpforms-toggle-control label{display:inline-block;margin-bottom:0}.wpforms-toggle-control .wpforms-toggle-control-label{padding:0 10px;max-width:calc( 100% - 65px)}.wpforms-toggle-control .wpforms-toggle-control-status{color:#50575e;font-size:12px;line-height:17px;padding:0 10px}.wpforms-toggle-control .wpforms-toggle-control-icon{background-color:#8c8f94;border-radius:8.5px;cursor:pointer;display:inline-block;height:17px;position:relative;text-indent:-9999px;width:27px}.wpforms-toggle-control .wpforms-toggle-control-icon:after{background:#ffffff;border-radius:50%;content:"";height:13px;left:2px;position:absolute;top:2px;width:13px;transition:all 0.25s ease-out}.wpforms-toggle-control:hover input:checked+label.wpforms-toggle-control-icon{background-color:#215d8f}.wpforms-toggle-control:hover .wpforms-toggle-control-icon{background-color:#8c8f94}.wpforms-toggle-control.wpforms-important .wpforms-toggle-control-icon{background-color:#d63638}.wpforms-admin-settings .wpforms-setting-row .wpforms-toggle-desc{margin:8px 0 0}#wpforms-payments .wpforms-admin-content .wpforms-education-container-page .wpforms-setting-field,#wpforms-settings .wpforms-admin-content .wpforms-education-container-page .wpforms-setting-field,#wpforms-tools .wpforms-admin-content .wpforms-education-container-page .wpforms-setting-field{margin:0;max-width:none}#wpforms-payments .wpforms-admin-content .wpforms-education-page .wpforms-setting-field,#wpforms-settings .wpforms-admin-content .wpforms-education-page .wpforms-setting-field,#wpforms-tools .wpforms-admin-content .wpforms-education-page .wpforms-setting-field{margin:0;max-width:1000px}#wpforms-payments .wpforms-admin-content .wpforms-education-page,#wpforms-settings .wpforms-admin-content .wpforms-education-page,#wpforms-tools .wpforms-admin-content .wpforms-education-page{max-width:1000px;margin-bottom:30px;padding:0}#wpforms-payments .wpforms-admin-content .wpforms-education-page.wpforms-setting-row,#wpforms-settings .wpforms-admin-content .wpforms-education-page.wpforms-setting-row,#wpforms-tools .wpforms-admin-content .wpforms-education-page.wpforms-setting-row{padding:0}#wpforms-payments .wpforms-admin-content .wpforms-education-page .fa,#wpforms-settings .wpforms-admin-content .wpforms-education-page .fa,#wpforms-tools .wpforms-admin-content .wpforms-education-page .fa{font-family:FontAwesome}#wpforms-payments .wpforms-admin-content .wpforms-education-page-heading h4,#wpforms-settings .wpforms-admin-content .wpforms-education-page-heading h4,#wpforms-tools .wpforms-admin-content .wpforms-education-page-heading h4{margin-bottom:10px;display:flex;align-items:center;gap:10px}#wpforms-payments .wpforms-admin-content .wpforms-education-page-heading p,#wpforms-settings .wpforms-admin-content .wpforms-education-page-heading p,#wpforms-tools .wpforms-admin-content .wpforms-education-page-heading p{font-weight:400;font-size:14px;line-height:20px;color:#3c434a;margin-top:0}#wpforms-payments .wpforms-admin-content .wpforms-education-page-heading p .wpforms-upgrade-link,#wpforms-settings .wpforms-admin-content .wpforms-education-page-heading p .wpforms-upgrade-link,#wpforms-tools .wpforms-admin-content .wpforms-education-page-heading p .wpforms-upgrade-link{white-space:nowrap}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images{display:flex;gap:25px;margin:25px 0}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images figure,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images figure,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images figure{margin:0}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images figcaption,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images figcaption,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images figcaption{font-style:normal;font-weight:400;font-size:14px;line-height:17px;text-align:center;color:#50575e;margin-top:10px}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images-image,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images-image,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images-image{display:inline-block;position:relative;padding:5px;background-color:#ffffff;box-shadow:0 2px 5px 0 rgba(0,0,0,0.05);border-radius:3px}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images-image img,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images-image img,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images-image img{max-width:100%;display:block}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images-image .hover,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images-image .hover,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images-image .hover{position:absolute;opacity:0;height:calc(100% - 10px);width:calc(100% - 10px);top:0;left:0;border:5px solid #ffffff;background-color:rgba(0,0,0,0.15);background-image:url("../images/zoom.svg");background-repeat:no-repeat;background-position:center;background-size:50px;transition:all 0.3s;box-sizing:initial}#wpforms-payments .wpforms-admin-content .wpforms-education-page-images-image:hover .hover,#wpforms-settings .wpforms-admin-content .wpforms-education-page-images-image:hover .hover,#wpforms-tools .wpforms-admin-content .wpforms-education-page-images-image:hover .hover{opacity:1;transition:all 0.3s}#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps{max-width:986px;box-sizing:content-box;background:#ffffff;box-shadow:0 2px 4px rgba(0,0,0,0.05);border-radius:6px;padding:20px;overflow:auto}#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps p,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps p,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps p{font-weight:600;font-size:16px;line-height:16px;color:#32373c;margin-bottom:20px;margin-top:0}#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps ul,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps ul,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps ul{margin:0;margin-bottom:-20px}@media (min-width: 783px){#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps ul,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps ul,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps ul{display:flex;flex-wrap:wrap}}#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps ul li,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps ul li,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps ul li{font-weight:400;font-size:14px;line-height:20px;color:#50575e;margin-bottom:20px}@media (min-width: 783px){#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps ul li,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps ul li,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps ul li{flex:0 0 33.3333%}}#wpforms-payments .wpforms-admin-content .wpforms-education-page-caps ul li i,#wpforms-settings .wpforms-admin-content .wpforms-education-page-caps ul li i,#wpforms-tools .wpforms-admin-content .wpforms-education-page-caps ul li i{color:#008a20;margin-right:10px}#wpforms-payments .wpforms-admin-content .wpforms-education-page-button,#wpforms-settings .wpforms-admin-content .wpforms-education-page-button,#wpforms-tools .wpforms-admin-content .wpforms-education-page-button{margin-top:25px}#wpforms-payments .wpforms-admin-content .wpforms-education-page .msg,#wpforms-settings .wpforms-admin-content .wpforms-education-page .msg,#wpforms-tools .wpforms-admin-content .wpforms-education-page .msg{background:#ffffff;line-height:1.5em;font-size:14px;color:#444444;margin:20px 0 0 0;padding:10px;border:0}#wpforms-payments .wpforms-admin-content .wpforms-education-page .msg.error,#wpforms-settings .wpforms-admin-content .wpforms-education-page .msg.error,#wpforms-tools .wpforms-admin-content .wpforms-education-page .msg.error{border-left:4px solid #dc3232}#wpforms-payments .wpforms-admin-content .wpforms-education-page .msg.info,#wpforms-settings .wpforms-admin-content .wpforms-education-page .msg.info,#wpforms-tools .wpforms-admin-content .wpforms-education-page .msg.info{border-left:4px solid #22a0d0}#wpforms-tools .wpforms-admin-content .wpforms-education-page-heading h4{margin-top:6px;font-size:16px}@media screen and (max-width: 1023px){.wpforms-dyk{display:none !important}}.wpforms-dyk td{background-color:#ffffff;border-left:4px solid #056aab;border-top:1px solid #c3c4c7;padding:10px}.wpforms-dyk .wpforms-dyk-fbox{align-items:center;align-content:stretch;justify-content:flex-start;display:flex;opacity:1;transition:all .3s}.wpforms-dyk .wpforms-dyk-fbox.out{opacity:0;transform:scaleY(0)}.wpforms-dyk .wpforms-dyk-icon{width:41px;height:41px;margin-right:10px}.wpforms-dyk .wpforms-dyk-icon>svg,.wpforms-dyk .wpforms-dyk-bulb{width:25px;height:25px;margin-right:10px;border-radius:50%;fill:#ffffff;background-color:#056aab;padding:8px}.wpforms-dyk .wpforms-dyk-message{font-size:13px;font-weight:400;color:#50575e}.wpforms-dyk .wpforms-dyk-message strong{font-weight:600;color:#2c3338}.wpforms-dyk .wpforms-dyk-buttons{margin-left:auto;vertical-align:middle;min-width:280px;text-align:right}.wpforms-dyk .wpforms-dyk-buttons>a,.wpforms-dyk .wpforms-dyk-buttons>button{vertical-align:middle;margin-left:10px}.wpforms-dyk .wpforms-dyk-buttons .wpforms-dismiss-button{border:none;padding:0;background:0 0;color:#a7aaad;cursor:pointer;margin-left:6px}.wpforms-dyk .wpforms-dyk-buttons .wpforms-dismiss-button:before{background:0 0;content:"\f057";display:block;font:normal 16px/16px FontAwesome, sans-serif;speak:none;height:16px;text-align:center;width:16px;-webkit-font-smoothing:antialiased}.wpforms-dyk .wpforms-dyk-buttons .wpforms-dismiss-button:hover{color:#dc3232}.wpforms-dyk .wpforms-dyk-buttons .wpforms-dismiss-button:focus{outline:none}.wpforms-dyk .wpforms-dyk-buttons .learn-more{text-decoration:underline}.wpforms-dyk .wpforms-dyk-buttons .wpforms-btn-md{min-height:auto;font-size:14px}#wpforms-setting-row-email-heading .wpforms-setting-field{max-width:100%}.wpforms-smtp-education-notice{background:#ffffff;border-radius:3px;margin:30px 0 0;padding:18px 20px 18px 78px;position:relative}.wpforms-smtp-education-notice:before{content:'';display:block;width:38px;height:48px;position:absolute;left:20px;top:15px;background-image:url("../images/smtp/pattie.svg");background-size:100%}.wpforms-smtp-education-notice-title{font-weight:600;font-size:16px;line-height:20px}.wpforms-smtp-education-notice-description{font-weight:400;font-size:14px;line-height:17px;color:#6a6f76;margin-top:5px}.wpforms-smtp-education-notice-description a{color:#e27730;font-weight:600}.wpforms-smtp-education-notice-description a:hover{color:#cd6622}.wpforms-smtp-education-notice-dismiss-button{position:absolute;right:0;top:0;padding:5px;color:#a7aaad;cursor:pointer}.wpforms-smtp-education-notice-dismiss-button:hover{color:#787c82}.wpforms-loading-spinner{background-image:url("../images/spinner.svg");background-repeat:no-repeat;background-size:15px 15px;background-position:center;display:block;height:15px;margin:0 10px 0 0;vertical-align:-2px;width:15px;-webkit-animation:wpforms-spinner-rotation 0.8s linear infinite;-moz-animation:wpforms-spinner-rotation 0.8s linear infinite;-ms-animation:wpforms-spinner-rotation 0.8s linear infinite;-o-animation:wpforms-spinner-rotation 0.8s linear infinite;animation:wpforms-spinner-rotation 0.8s linear infinite}.wpforms-loading-spinner.wpforms-loading-white{background-image:url("../images/spinner-white.svg")}.wpforms-loading-spinner.wpforms-loading-blue{background-image:url("../images/spinner-blue.svg");background-size:14px 15px}.wpforms-loading-spinner.wpforms-loading-md{background-size:24px 24px;height:24px;width:24px}.wpforms-loading-spinner.wpforms-loading-lg{background-size:32px 32px;height:32px;width:32px}.wpforms-loading-spinner.wpforms-loading-inline{display:inline-block;margin:auto}@keyframes wpforms-spinner-rotation{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.wpforms-links{display:flex;padding:13px;padding-top:45px;align-items:center;gap:18px;border-top:1px solid #e8e9e9}.wpforms-links .wpforms-link{display:flex;align-items:center;gap:7px}.wpforms-links .wpforms-link{text-decoration:none;color:#6a6f76;line-height:normal}.wpforms-links .wpforms-link svg{width:auto;fill:#6a6f76;transition:fill 0.05s ease-in-out}.wpforms-links .wpforms-link-whats-new svg{height:17px}.wpforms-links .wpforms-link:hover{color:#2c3338}.wpforms-links .wpforms-link:hover svg{fill:#2c3338}.wpforms-dash-widget .wpforms-links{padding-top:13px}.wpforms-datepicker-popover-content .wpforms-datepicker-choices [type="radio"],.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .form-control{border:none;clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal}#wpforms-datepicker-popover-button{background:#ffffff;border-color:#8c8f94;color:#3c434a;display:flex;align-items:center;font-size:14px;gap:16px}#wpforms-datepicker-popover-button:hover{color:#056aab}#wpforms-datepicker-popover-button:focus-within,#wpforms-datepicker-popover-button:focus{color:#056aab;border-color:#056aab;box-shadow:0 0 0 1px #056aab}#wpforms-datepicker-popover-button::after{content:"";display:inline-block;height:5px;width:5px;border-style:solid;border-width:1.5px;border-color:transparent #787c82 #787c82 transparent;transform:rotate(45deg);margin-top:-5px}.wpforms-datepicker-popover{background:#ffffff;border-radius:6px;box-shadow:0 5px 15px rgba(0,0,0,0.15);display:none;margin-top:9px;position:absolute;z-index:30;right:0;width:416px;max-width:80vw}.wpforms-datepicker-popover-content{display:flex;flex-wrap:wrap}.wpforms-datepicker-popover-content .wpforms-datepicker-choices{flex-grow:1;padding:20px;margin:0;font-size:14px;line-height:14px;display:flex;flex-direction:column;justify-content:space-between;gap:15px}@media (min-width: 601px){.wpforms-datepicker-popover-content .wpforms-datepicker-choices{border-right:1px solid #ccd0d4;margin-right:4px}}@media (max-width: 600px){.wpforms-datepicker-popover-content .wpforms-datepicker-choices{border-bottom:1px solid #ccd0d4}}.wpforms-datepicker-popover-content .wpforms-datepicker-choices li{margin-bottom:0}.wpforms-datepicker-popover-content .wpforms-datepicker-choices label{display:block}.wpforms-datepicker-popover-content .wpforms-datepicker-choices label:not(.is-selected):hover{color:#1d2327}.wpforms-datepicker-popover-content .wpforms-datepicker-choices .is-selected{font-weight:600;color:#e27730}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar{padding:10px}@media (min-width: 601px){.wpforms-datepicker-popover-content .wpforms-datepicker-calendar{width:245px}}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar{box-shadow:none;width:100%}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar.inline{top:0}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar *{box-sizing:border-box}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-months{position:relative}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-months .flatpickr-next-month,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-months .flatpickr-prev-month{height:24px;width:24px;line-height:17px;padding:5px}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-months .flatpickr-next-month svg,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-months .flatpickr-prev-month svg{width:12px;height:12px;stroke:#2c3338;stroke-width:1.5px}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-month{height:24px}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month{font-size:14px;height:24px;padding:0}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .cur-year,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months{font-weight:400;min-height:24px;box-shadow:none}@media (max-width: 782px){#wpbody .wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .cur-year,#wpbody .wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months{font-size:inherit;height:auto}}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .cur-year:hover,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months:hover{background-color:#ffffff;color:#2c3338}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .cur-year:focus,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months:focus{border-width:0 !important;box-shadow:none !important;color:inherit}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .numInputWrapper span{right:-4px}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-current-month .numInputWrapper:hover{background-color:#ffffff}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-weekdays{height:32px}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-weekday{color:#787c82;font-weight:600;font-size:11px}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-rContainer,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-days,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .dayContainer{width:100%}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .dayContainer{max-width:100%;min-width:100%}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .today:is(:hover,:focus){color:inherit}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day{display:flex;align-items:center;height:auto;line-height:30px;margin:0;aspect-ratio:1;box-shadow:none;max-width:none;border-style:hidden}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day.inRange,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day:focus,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day:hover{background:#f0f0f1}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day.selected,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day.startRange,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day.endRange{background:#056aab;color:#ffffff}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-day.startRange+.endRange{box-shadow:none}.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .flatpickr-disabled,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .prevMonthDay,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .nextMonthDay,.wpforms-datepicker-popover-content .wpforms-datepicker-calendar .flatpickr-calendar .notAllowed{color:#c3c4c7}.wpforms-datepicker-popover-content .wpforms-datepicker-action{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;width:100%;border-top:1px solid #ccd0d4;padding:15px 20px}.wpforms-datepicker-popover-content .wpforms-datepicker-action button{box-shadow:none}.wpforms-datepicker-popover-content .wpforms-datepicker-action .button-secondary{border-style:hidden;background-color:#ffffff;color:#056aab}.wpforms-datepicker-popover-content .wpforms-datepicker-action .button-secondary:focus,.wpforms-datepicker-popover-content .wpforms-datepicker-action .button-secondary:hover{background-color:#ffffff;box-shadow:none;color:#04558a}.rtl .wpforms-datepicker-popover{left:0;right:auto}.wpforms-card-image-overlay{aspect-ratio:31/36;background-position:center;background-size:contain;border:1px solid #c3c4c7;border-radius:6px;display:flex;flex-direction:column;gap:10px;justify-content:center;order:-1;position:relative;transition:box-shadow .15s ease-in-out, border .15s ease-in-out;width:100%;padding:12px}.wpforms-card-image-overlay:before{background-color:#ffffff;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;border-radius:inherit;transition:opacity .15s ease-in-out}.wpforms-card-image-overlay .wpforms-btn{opacity:0;transition:all .05s ease-in-out, opacity .15s ease-in-out;width:100%;z-index:2}.wpforms-card-image-group .wpforms-setting-field label{align-items:center;color:#50575e;display:flex;font-size:14px;flex-wrap:wrap;gap:12px 10px;justify-content:center;text-align:center}.wpforms-card-image-group .wpforms-setting-field label:hover .wpforms-card-image-overlay{border:2px solid #ffffff;box-shadow:0 0 0 2px #50575e,0 2px 4px 2px rgba(0,0,0,0.07)}.wpforms-card-image-group .wpforms-setting-field label:hover .wpforms-card-image-overlay:before{opacity:.7}.wpforms-card-image-group .wpforms-setting-field label:hover .wpforms-card-image-overlay .wpforms-btn{opacity:1}.wpforms-card-image-group .wpforms-setting-field input[type=radio]{display:none}.wpforms-card-image-group .wpforms-setting-field input[type=radio]:checked+label{font-weight:500;color:#2c3338}.wpforms-card-image-group .wpforms-setting-field input[type=radio]:checked+label .wpforms-card-image-overlay{border:2px solid #ffffff;box-shadow:0 0 0 2px #e27730,0 2px 4px 2px rgba(0,0,0,0.07)}.wpforms-admin-single-navigation{display:flex;gap:20px;align-items:center;color:#50575e;font-size:14px;margin-inline-start:auto}@media (max-width: 600px){.wpforms-admin-single-navigation{display:none}}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-text{margin-right:-5px;color:#a7aaad}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons{display:flex;align-items:center;border:1px solid #8c8f94;border-radius:4px;overflow:hidden}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-admin-single-navigation-current{color:#32373c;flex:1;min-height:30px;min-width:30px;padding-inline:5px;border:1px solid #8c8f94;border-top:none;border-bottom:none}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey{min-height:30px;width:30px;background-color:#f0f0f1;border:none;text-decoration:none}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey:hover,.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey:focus{background:#dcdcde}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey.inactive{background:rgba(240,240,241,0.25);opacity:1;pointer-events:none}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey.inactive .dashicons{opacity:0.25}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey .dashicons{width:16px;font-size:16px;height:16px;color:#50575e}@media (max-width: 782px){.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-btn-grey{font-size:13px}}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons #wpforms-admin-single-navigation-prev-link,.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons #wpforms-admin-single-navigation-next-link,.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-admin-single-navigation-current{display:flex;flex-direction:row;justify-content:center;align-items:center}.wpforms-admin-single-navigation .wpforms-admin-single-navigation-buttons .wpforms-admin-single-navigation-current{width:100%;min-width:30px;padding:0 10px;text-decoration:none;background:#ffffff;font-size:14px;color:#50575e;box-sizing:border-box;z-index:1}.wpforms-overview-chart{background-color:#ffffff;border:1px solid #ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05);margin-bottom:20px;position:relative;overflow:hidden}.wpforms-overview-chart .spinner{background-color:#ffffff;background-position:center calc(50% - 12px);background-repeat:no-repeat;bottom:0;height:320px;left:0;margin:0;opacity:1;position:absolute;visibility:visible;width:100%;z-index:30}.wpforms-overview-chart-notice{background:radial-gradient(50% 50% at 50% 50%, rgba(0,0,0,0) 0, #fff 100%);bottom:0;height:320px;left:0;position:absolute;width:100%;z-index:20}.wpforms-overview-chart-notice-content{background:#ffffff;border-radius:6px;box-sizing:border-box;box-shadow:0 5px 25px rgba(0,0,0,0.15);left:50%;padding:20px;position:absolute;text-align:center;top:50%;transform:translate(-50%, -50%);width:Min(365px, 90%)}.wpforms-overview-chart-notice-content h2{font-size:20px;font-weight:600;line-height:1.3;margin-top:0;margin-bottom:10px}.wpforms-overview-chart-notice-content p{color:#787c82;font-size:14px;line-height:18px;margin:0}.wpforms-overview-chart-heading{background-color:#f6f6f6;border-bottom:1px solid #e8e9e9;color:#3c434a;font-size:14px;font-weight:600;line-height:17px;margin-block:0;padding:13px}.wpforms-overview-chart-canvas{background-color:#ffffff;box-sizing:border-box;height:324px;position:relative}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-button{background:#f6f7f7;border-color:#8c8f94;color:#50575e;padding:5px;width:32px}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-button:hover{color:#2c3338;border-color:#50575e;background:#f6f7f7}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-button:focus-within,.wpforms-overview-chart-settings .wpforms-dash-widget-settings-button:focus{color:#2c3338;border-color:#50575e;box-shadow:0 0 0 1px #50575e}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-button .dashicons{font-size:19px;line-height:17px;height:17px;width:17px}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-container{position:relative}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu{background:#ffffff;border-radius:6px;box-shadow:0 5px 15px rgba(0,0,0,0.15);display:none;margin-top:9px;width:140px;position:absolute;z-index:30;right:0;padding:10px}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu h4{font-size:11px;font-weight:600;line-height:13px;margin:0 0 8px;text-transform:uppercase}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu [type="radio"]{margin-top:0}@media (max-width: 782px){.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu [type="radio"]{height:16px;width:16px}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu [type="radio"]:checked::before{margin:2.5px}}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu-wrap{border-bottom:1px solid #dcdcde;margin-bottom:10px;padding-bottom:10px}.wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu-item:nth-child(n+2){margin-top:5px}.rtl .wpforms-overview-chart-settings .wpforms-dash-widget-settings-button{margin-left:5px;margin-right:0}.rtl .wpforms-overview-chart-settings .wpforms-dash-widget-settings-menu{left:0;right:auto}.wpforms-overview-top-bar{align-items:center;display:flex;gap:30px;justify-content:space-between;margin-bottom:20px}@media (max-width: 782px){.wpforms-overview-top-bar{flex-wrap:wrap}}.wpforms-overview-top-bar .button{line-height:17px;min-height:30px}.wpforms-overview-top-bar-heading{align-items:center;display:flex;gap:8px}.wpforms-overview-top-bar-heading h2{color:#3c434a;font-size:18px;font-weight:600;margin:0}.wpforms-overview-top-bar-heading .dashicons{cursor:pointer;padding:0}.wpforms-overview-top-bar-filter-form{position:relative}.wpforms-overview-top-bar-filters{display:flex;gap:10px;margin-inline-start:auto}.wpforms-overview-top-bar-filters .button{box-shadow:none}.wpforms-overview-top-bar-filters .wpforms-toggle-control{align-items:center;color:#50575e;display:flex;gap:10px;padding-inline-end:10px;margin:0}.wpforms-overview-top-bar-filters .wpforms-toggle-control .wpforms-toggle-control-icon::after{transition:none}.wpforms-overview-top-bar-filters .wpforms-toggle-control [type=checkbox]:checked+.wpforms-toggle-control-icon{background-color:#e27730}.wpforms-admin-wrap p.search-box{display:inline-flex;flex-wrap:wrap;gap:6px;height:auto;margin-top:11px;margin-bottom:7px;position:relative}.wpforms-admin-wrap p.search-box input,.wpforms-admin-wrap p.search-box select{margin:0}@media (max-width: 600px){.wpforms-admin-wrap p.search-box input,.wpforms-admin-wrap p.search-box select{min-width:100%}}.wpforms-admin-wrap p.search-box input[name="s"]{flex-grow:1;width:180px}.wpforms-admin-wrap p.search-box [type="submit"]{font-size:14px;line-height:17px}@media (max-width: 782px){.wpforms-admin-wrap p.search-box{width:100%}}.wpforms-admin-wrap .subsubsub{margin-top:20px}.wpforms-admin-wrap .tablenav{color:#3c434a;padding-top:3px}.wpforms-admin-wrap .tablenav .displaying-num{margin-inline-end:6px}.wpforms-admin-wrap .tablenav .paging-input{align-items:center;display:inline-flex;gap:4px}.wpforms-admin-wrap .tablenav .button{box-shadow:none}.wpforms-admin-wrap .tablenav .total-pages,.wpforms-admin-wrap .tablenav #table-paging{margin:0}.wpforms-admin-wrap .tablenav-pages .pagination-links{align-items:center;display:inline-flex;gap:4px}.wpforms-admin-wrap .tablenav-pages .current-page{border-radius:3px;width:38px;margin:0}.wpforms-admin-wrap .tablenav-pages .tablenav-paging-text{max-width:80px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-admin-wrap.wpforms-entries-spam-empty .tablenav{display:none}.wpforms-admin-wrap.wpforms-entries-spam-empty .subsubsub{margin-bottom:18px}.rtl .wpforms-admin-wrap .tablenav-pages .current-page{order:1}table.wpforms-table-list{border-color:#ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05)}table.wpforms-table-list td{line-height:16px;vertical-align:middle}table.wpforms-table-list td.column-name{font-weight:600;min-height:25px}table.wpforms-table-list td[data-colname]::before{box-sizing:border-box;padding-inline-end:10px}table.wpforms-table-list th{line-height:17px;text-transform:capitalize}table.wpforms-table-list tfoot th,table.wpforms-table-list thead th{border-color:#ccd0d4;color:#32373c;padding:9px 12px}table.wpforms-table-list tfoot td.check-column,table.wpforms-table-list thead td.check-column{border-color:#ccd0d4;padding-block:10px;width:1%}table.wpforms-table-list tbody td{padding:12px}table.wpforms-table-list tbody th.check-column{padding-block:14px;vertical-align:middle;width:1%}table.wpforms-table-list .check-column .label-covers-full-cell:hover+input[type="checkbox"]{box-shadow:none}table.wpforms-table-list button{cursor:pointer}table.wpforms-table-list .column-date span[title]{text-decoration:none}table.wpforms-table-list.striped>tbody>:nth-child(odd){background-color:#f6f6f6}table.wpforms-table-list.striped>tbody>tr.is-selected{background-color:rgba(34,113,177,0.12)}table.wpforms-table-list .sorted a,table.wpforms-table-list .sortable a{display:flex;padding:9px 17px 9px 12px}table.wpforms-table-list .sorting-indicator{inset-inline-start:15px;margin-inline-start:-10px;position:relative}table.wpforms-table-list .toggle-row{height:100%;top:0}table.wpforms-table-list .toggle-row::before{inset-inline-start:auto;inset-inline-end:4px;top:calc(50% - 11px)}@media (max-width: 1024px){table.wpforms-table-list.has-many-columns .check-column,table.wpforms-table-list.has-few-columns .check-column{vertical-align:top}table.wpforms-table-list.has-many-columns th.column-primary ~ th,table.wpforms-table-list.has-few-columns th.column-primary ~ th{display:none}table.wpforms-table-list.has-many-columns td.column-primary,table.wpforms-table-list.has-few-columns td.column-primary{display:block;position:relative;padding-inline-end:50px}table.wpforms-table-list.has-many-columns td.column-primary ~ td,table.wpforms-table-list.has-few-columns td.column-primary ~ td{display:none;padding:3px 8px 3px 35%}table.wpforms-table-list.has-many-columns td.column-primary .toggle-row,table.wpforms-table-list.has-few-columns td.column-primary .toggle-row{display:block}table.wpforms-table-list.has-many-columns td.column-primary>*,table.wpforms-table-list.has-few-columns td.column-primary>*{vertical-align:sub}table.wpforms-table-list.has-many-columns .is-expanded td:not(.column-primary):not(.hidden),table.wpforms-table-list.has-few-columns .is-expanded td:not(.column-primary):not(.hidden){display:block;position:relative;text-align:right}table.wpforms-table-list.has-many-columns .is-expanded td:not(.column-primary):nth-child(n+2),table.wpforms-table-list.has-few-columns .is-expanded td:not(.column-primary):nth-child(n+2){margin-bottom:10px}table.wpforms-table-list.has-many-columns .is-expanded td:not(.column-primary)[data-colname]::before,table.wpforms-table-list.has-few-columns .is-expanded td:not(.column-primary)[data-colname]::before{content:attr(data-colname);display:block;inset-inline-start:10px;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap;width:32%;text-align:left}}@media (max-width: 782px){table.wpforms-table-list tr .check-column:is(th,td){vertical-align:top}table.wpforms-table-list tr .check-column:is(th,td) [type="checkbox"]{height:16px;margin-bottom:0;width:16px}table.wpforms-table-list tr .check-column:is(th,td) [type="checkbox"]::before{height:20px;margin:-2px 0 0px -4px;width:20px}table.wpforms-table-list td.column-primary{display:block}table.wpforms-table-list td.column-primary>*{vertical-align:sub}table.wpforms-table-list .is-expanded td:not(.column-primary):nth-child(n+2){margin-bottom:10px}table.wpforms-table-list .is-expanded td:not(.column-primary)::before{margin-inline-start:2px}}table.forms .check-column .label-covers-full-cell:hover+input[type="checkbox"],table.action-scheduler .check-column .label-covers-full-cell:hover+input[type="checkbox"]{box-shadow:none}.wpforms-tabs-wrapper{padding:0 20px;margin-bottom:20px}.wpforms-tabs-wrapper .nav-tab-wrapper{padding-top:0}#wpforms-payments .nav-tab-wrapper .nav-tab{background:rgba(220,220,222,0.5);border:1px solid #c3c4c7;border-bottom:none;border-radius:3px 3px 0 0;padding:10px 12px;font-weight:600;font-size:13px;line-height:16px;color:#2d2d2d}#wpforms-payments .nav-tab-wrapper .nav-tab:hover,#wpforms-payments .nav-tab-wrapper .nav-tab:focus{background-color:#ffffff;box-shadow:none}#wpforms-payments .nav-tab-wrapper .nav-tab.nav-tab-active{background:#f0f0f1;border-bottom:1px solid #f0f0f1}@media (max-width: 781px){#wpforms-payments .nav-tab-wrapper{border-bottom:1px solid #c3c4c7}#wpforms-payments .nav-tab-wrapper .nav-tab{margin-bottom:-1px}}#wpforms-admin-about *,#wpforms-admin-about *::before,#wpforms-admin-about *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-about .wpforms-admin-about-section{margin:0 20px 20px;padding:30px;background:#ffffff;border:1px solid #dddddd;line-height:2}#wpforms-admin-about .wpforms-admin-about-section h1,#wpforms-admin-about .wpforms-admin-about-section h2,#wpforms-admin-about .wpforms-admin-about-section h3,#wpforms-admin-about .wpforms-admin-about-section h4,#wpforms-admin-about .wpforms-admin-about-section h5{margin-top:0;padding-top:0;line-height:1.6}#wpforms-admin-about .wpforms-admin-about-section h2{font-size:24px}#wpforms-admin-about .wpforms-admin-about-section h3{font-size:18px;margin-bottom:30px;color:#23282c}#wpforms-admin-about .wpforms-admin-about-section ul,#wpforms-admin-about .wpforms-admin-about-section p{font-size:16px}#wpforms-admin-about .wpforms-admin-about-section p{margin-bottom:20px}#wpforms-admin-about .wpforms-admin-about-section p.bigger{font-size:18px}#wpforms-admin-about .wpforms-admin-about-section p.smaller{font-size:14px}#wpforms-admin-about .wpforms-admin-about-section p:last-child{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section hr{margin:30px 0}#wpforms-admin-about .wpforms-admin-about-section figure{margin:0}#wpforms-admin-about .wpforms-admin-about-section figure img{width:100%}#wpforms-admin-about .wpforms-admin-about-section figure figcaption{font-size:14px;color:#888888;margin-top:5px;text-align:center;line-height:initial}#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-40{padding-left:15px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-40{width:100%;padding-left:0;padding-top:20px}}#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-60{padding-right:15px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-60{width:100%;padding-right:0}}#wpforms-admin-about .wpforms-admin-about-section ul.list-plain{margin-top:0;margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section ul.list-plain li{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section ul.list-features li .fa{color:#2a9b39;margin:0 8px 0 0}#wpforms-admin-about .wpforms-admin-about-section .fa-star{color:gold}#wpforms-admin-about .wpforms-admin-about-section .no-margin{margin:0 !important}#wpforms-admin-about .wpforms-admin-about-section .no-padding{padding:0 !important}#wpforms-admin-about .wpforms-admin-about-section .centered{text-align:center !important}#wpforms-admin-about .wpforms-admin-about-section-first-form{display:flex}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form{display:block !important}}#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-text{flex:1;padding-right:30px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-text{flex:none}}#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video iframe{border:1px solid #dddddd}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video iframe{max-width:100%}}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video{padding-top:20px}}#wpforms-admin-about .wpforms-admin-about-section-hero{padding:0}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main,#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-extra{padding:30px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-extra .wpforms-admin-column-50{float:none;width:100%}}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main{border-bottom:1px solid #dddddd}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main.no-border{border-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main p{color:#666}#wpforms-admin-about .wpforms-admin-about-section-hero h3.call-to-action{margin-bottom:-10px}#wpforms-admin-about .wpforms-admin-about-section-hero span.price-20-off{color:#6ab255}#wpforms-admin-about .wpforms-admin-about-section-squashed{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-squashed:not(:last-of-type){border-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-post h2{margin-bottom:-10px}#wpforms-admin-about .wpforms-admin-about-section-post h3{margin-bottom:15px}#wpforms-admin-about .wpforms-admin-about-section-post p:last-of-type{margin-bottom:30px}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20{padding-right:20px;width:auto}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20 img{width:270px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20{width:20%}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20 img{width:auto;max-width:100%}}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-80{padding-left:20px;width:calc(100% - 20px - 270px)}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-80{width:80%}}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link{padding:10px 15px;background-color:#df7739;color:#fff;border-radius:3px;text-decoration:none;margin-top:15px;font-size:14px}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link:hover,#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link:focus{background-color:#b85a1b;color:#fff}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link:focus{box-shadow:0 0 0 1px #fff, 0 0 0 3px #b85a1b;outline:0}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link .fa{color:#edba9e;vertical-align:middle;margin-left:8px}#wpforms-admin-about .wpforms-admin-about-section-table{background-color:#fafafa;overflow-x:auto}#wpforms-admin-about .wpforms-admin-about-section-table table{background-color:#ffffff;border-top:1px solid #dddddd;border-collapse:collapse}#wpforms-admin-about .wpforms-admin-about-section-table table tr td{border-bottom:1px solid #dddddd;border-right:1px solid #dddddd;padding:30px;vertical-align:top}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-table table tr td{padding:15px}}#wpforms-admin-about .wpforms-admin-about-section-table table tr td:last-of-type{border-right:0}#wpforms-admin-about .wpforms-admin-about-section-table table tr:last-child td{border-bottom:none}#wpforms-admin-about .wpforms-admin-about-section-table table p{background-repeat:no-repeat;background-size:15px auto;background-position:0 6px;margin:0}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-full{padding-left:30px;background-image:url(../images/about/icon-full.svg)}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-none{padding-left:30px;background-image:url(../images/about/icon-none.svg)}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-partial{padding-left:30px;background-position:-3px 0;background-size:23px auto;background-image:url(../images/about/icon-partial.svg)}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main{padding:0}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main h3{padding:30px 30px 30px 60px}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main .wpforms-admin-column-33:first-child h3{padding:30px}#wpforms-admin-about #wpforms-admin-addons{padding:0 30px}#wpforms-admin-about #wpforms-admin-addons .addon-container{padding:0 10px}#wpforms-admin-about #wpforms-admin-addons .addon-item .details{padding:20px}#wpforms-admin-about #wpforms-admin-addons .addon-item h5{margin-bottom:10px}#wpforms-admin-about #wpforms-admin-addons .addon-item img{padding:10px}#wpforms-admin-about #wpforms-admin-addons .addon-item img[src*="-mi"]{padding:13px}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.disabled,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.loading{cursor:default}.wpforms-addons-header{padding:15px 20px !important;background:#ffffff;margin-bottom:20px !important;display:flex !important;align-items:center;justify-content:space-between}@media (max-width: 599px){.wpforms-addons-header{flex-direction:column;align-items:flex-start}}.wpforms-addons-header-title{font-size:22px;font-weight:400;color:#101517;display:flex;gap:20px;align-items:center}@media (max-width: 599px){.wpforms-addons-header-title{margin-bottom:20px}}.wpforms-addons-header-search{position:relative}@media (max-width: 599px){.wpforms-addons-header-search{width:100%}}.wpforms-addons-header-search:before{font-family:FontAwesome, sans-serif;content:"\f002";color:#a7aaad;font-size:16px;text-align:center;position:absolute;left:10px;top:50%;transform:translateY(-50%)}.wpforms-addons-header-search #wpforms-addons-search{width:250px;height:36px;padding:10px 10px 10px 30px;font-size:14px;font-weight:400}.wpforms-addons-header-search #wpforms-addons-search::placeholder{color:#a7aaad}@media (max-width: 599px){.wpforms-addons-header-search #wpforms-addons-search{width:100%}}.wpforms-addons-list-section:first-child{margin-bottom:20px}.wpforms-addons-list-section-title{font-size:16px;font-weight:500;color:#101517;margin-bottom:20px;margin-top:0}.wpforms-addons-list{display:grid;grid-template-columns:repeat(auto-fill, minmax(400px, 1fr));grid-gap:20px}@media (max-width: 782px){.wpforms-addons-list{grid-template-columns:1fr}}.wpforms-addons-list-item{margin:0;height:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;align-items:flex-start;border-radius:6px;border:1px solid #c3c4c7;background:#ffffff;box-shadow:0 2px 4px 0 rgba(0,0,0,0.07)}.wpforms-addons-list-item-header{padding:20px;display:flex;gap:20px}.wpforms-addons-list-item-header img{width:80px;height:80px;max-width:80px !important;border:1px solid rgba(195,196,199,0.5);border-radius:6px}.wpforms-addons-list-item-header-meta-title{margin-bottom:5px;display:flex;align-items:center;gap:10px}@media (max-width: 600px){.wpforms-addons-list-item-header-meta-title{align-items:flex-start;flex-direction:column}}.wpforms-addons-list-item-header-meta-title a{color:#2c3338;font-size:16px;font-weight:500;line-height:22px;text-decoration-line:underline;text-underline-offset:2px}.wpforms-addons-list-item-header-meta-excerpt{color:#6a6f76;font-size:14px;font-weight:400;line-height:18px}.wpforms-addons-list-item-error-msg{color:#b32d2e;font-weight:500}.wpforms-addons-list-item-footer{padding:20px;display:flex;background:#f6f6f6;width:100%;justify-content:space-between;box-sizing:border-box;align-items:center;min-height:70px}.wpforms-addons-list-item-footer-missing .wpforms-toggle-control{display:none}.wpforms-addons-list-item-footer-active .wpforms-addons-list-item-footer-settings-link{display:block}.wpforms-addons-list-item-footer-with-error .wpforms-addons-list-item-footer-actions{display:none}.wpforms-addons-list-item-footer-settings-link{display:none}.wpforms-addons-list-item-footer-error{width:100%;color:#6a6f76}.wpforms-addons-list-item-footer-error p{margin:0}.wpforms-addons #wpforms-addons-list-section-all .wpforms-addons-list .wpforms-addons-list-item.has-badge{border:2px solid #8c8f94;box-shadow:0 2px 4px 0 rgba(0,0,0,0.15)}.wpforms-addons .wpforms-notice.notice-info{padding:20px;border:none;margin-bottom:20px;border-radius:6px;box-shadow:0 2px 4px 0 rgba(0,0,0,0.07)}.wpforms-addons .wpforms-notice.notice-info strong{color:#1d2327;font-size:20px;font-weight:500;line-height:18px}.wpforms-addons .wpforms-notice.notice-info p{margin-top:0;font-size:15px;font-weight:400;line-height:20px;color:rgba(44,51,56,0.8)}.wpforms-addons .wpforms-notice.notice-info p:last-child{margin-bottom:0}.wpforms-addons .wpforms-notice.notice-info p.notice-title{margin-bottom:0;color:#1d2327}.wpforms-addons .wpforms-notice.notice-info .notice-buttons{display:flex;gap:10px}@media (max-width: 782px){.wpforms-addons .wpforms-notice{margin:20px !important}}.wpforms-addons .wpforms-notice .wpforms-btn{box-sizing:border-box}.wpforms-addons #wpforms-addons-no-results{display:none;font-size:14px}.wpforms-addons .wpforms-addons-link{color:#a7aaad;text-align:center;font-size:13px;font-weight:400;line-height:20px;text-decoration-line:underline}.wpforms-addons .wpforms-addons-link:hover{color:#2c3338}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons #wpforms-admin-addons-list .list{display:flex;flex-wrap:wrap;align-items:stretch;margin-left:-20px;margin-right:-20px}#wpforms-admin-addons #wpforms-admin-addons-list .list .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons #wpforms-admin-addons-list .list .action-button button:hover,#wpforms-admin-addons #wpforms-admin-addons-list .list .action-button button:focus,#wpforms-admin-addons #wpforms-admin-addons-list .list .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons #wpforms-admin-addons-list .list .action-button button:focus{border-color:#2271b1;box-shadow:0 0 0 1px #2271b1;outline:none}#wpforms-admin-addons .addons-container{display:flex;flex-wrap:wrap;align-items:stretch;margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0;margin-top:-20px;clear:both}#wpforms-admin-addons .unlock-msg h4{margin:1.5em 0 8px}#wpforms-admin-addons .unlock-msg p{margin:0 0 1.5em}#wpforms-admin-addons #wpforms-admin-addons-search{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;vertical-align:middle;padding:2px 12px;margin:-2px 10px 0 0;width:200px;min-height:30px;margin-inline-start:auto}#wpforms-admin-addons #wpforms-admin-addons-search:focus{border-color:#bbb}#wpforms-admin-addons .addon-container{padding:0 20px;width:33.333333%;margin-bottom:20px}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:6px;margin:0;height:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 0 100px;font-size:16px}#wpforms-admin-addons .addon-item h5 a{color:#444;display:inline-block;margin:0 10px 10px 0}#wpforms-admin-addons .addon-item h5 a:hover{color:#006799}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{display:flex;align-items:center;background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;min-height:75px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;border:none;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;margin:0;z-index:99;padding:20px;display:flex;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .actions .msg p{margin:0}#wpforms-admin-addons .addon-item .actions .msg a,#wpforms-admin-addons .addon-item .actions .msg a:hover{color:inherit}#wpforms-admin-addons .addon-item .status{flex-grow:1}#wpforms-admin-addons .addon-item .status .status-missing,#wpforms-admin-addons .addon-item .status .status-go-to-url{color:#666}#wpforms-admin-addons .addon-item .status .status-installed{color:red}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button{width:140px}#wpforms-admin-addons .addon-item .wpforms-addon-recommended{background-color:#00a32a;border-radius:4px;color:#ffffff;font-size:10px;font-weight:700;line-height:1;padding:4px 5px;margin-bottom:5px;display:inline-block;position:relative;top:-2px;text-transform:uppercase;cursor:default}#wpforms-admin-addons .addon-item .wpforms-addon-recommended i{opacity:0.8}.addon-item .status{flex-grow:1}.addon-item .status .status-inactive{color:red}.addon-item .status .status-active{color:#2a9b39}.addon-item .upgrade-button{text-align:center}.addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}.addon-item .action-button button{cursor:pointer}.addon-item .action-button button .fa{margin-right:8px}.addon-item .action-button button .fa.fa-spinner{margin-right:0}.addon-item .action-button button.status-active .fa{color:#2a9b39}.addon-item .action-button button.status-inactive .fa{color:red}.addon-item .action-button button.status-missing .fa{color:#999}.addon-item .action-button button.disabled{cursor:default;pointer-events:none}.addon-item .action-button button.loading{cursor:default}.addon-item .action-button button.loading .fa{color:#666}.addon-item .action-button a{text-decoration:none}@media (min-width: 1250px){#wpforms-admin-community .item{width:calc(33.3333333% - 13.3333333px)}}@media (max-width: 1249px){#wpforms-admin-community .item{width:calc(50% - 10px)}}@media (max-width: 767px){#wpforms-admin-community .item{width:100%}}#wpforms-admin-community *,#wpforms-admin-community *::before,#wpforms-admin-community *::after{box-sizing:border-box}#wpforms-admin-community .items{display:flex;flex-wrap:wrap;gap:20px;padding:0 20px 20px 20px}#wpforms-admin-community .item{border:1px solid #DDDDDD;background-color:#ffffff;position:relative}#wpforms-admin-community .item-cover{width:100%;height:223px;position:relative;display:block}#wpforms-admin-community .item-img{width:auto;height:auto;max-width:100px;max-height:100px;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}#wpforms-admin-community .item-title{margin:17px 20px 10px 20px;font-size:16px}#wpforms-admin-community .item-description{margin:0 20px 98px 20px;font-size:14px}#wpforms-admin-community .item-footer{position:absolute;width:100%;bottom:0;padding:20px;border-top:1px solid #dddddd;background-color:#F7F7F7}.wpforms-constant-contact-wrap{font-size:16px;line-height:1.5;color:#444444}.wpforms-constant-contact-wrap .wpforms-admin-content{max-width:1000px}.wpforms-constant-contact-wrap .notice{display:none !important}.wpforms-constant-contact-wrap h2{font-size:20px;font-weight:700;line-height:1.2;margin:10px 0 20px}.wpforms-constant-contact-wrap p{font-size:inherit;line-height:inherit;margin:25px 0}.wpforms-constant-contact-wrap ul,.wpforms-constant-contact-wrap ol{margin-left:20px}.wpforms-constant-contact-wrap ul li,.wpforms-constant-contact-wrap ol li{margin-bottom:25px}.wpforms-constant-contact-wrap ul{list-style-type:disc}.wpforms-constant-contact-wrap hr{margin:25px 0}.wpforms-constant-contact-wrap a{color:#1856ed;transition:0.3s ease}.wpforms-constant-contact-wrap a:hover,.wpforms-constant-contact-wrap a:focus{color:#0f3592}.wpforms-constant-contact-wrap .logo-link{display:block;float:right;width:auto;margin-left:50px;border-radius:6px;overflow:hidden;margin-bottom:25px;max-width:100%}.wpforms-constant-contact-wrap .logo-link .logo{display:block;max-width:100%}.wpforms-constant-contact-wrap .button{background-color:#1856ed;border:0;border-radius:4px;color:#ffffff;font-size:16px;line-height:1.25;font-weight:600;padding:14px 30px;text-align:center;transition:0.3s ease;height:auto}.wpforms-constant-contact-wrap .button:hover,.wpforms-constant-contact-wrap .button:focus{background-color:#0f3592;color:#ffffff}.wpforms-constant-contact-wrap .dashicons{color:#19be19;font-size:26px;position:relative;top:-1px}.wpforms-constant-contact-wrap .bold-marker::marker{font-weight:bold}.wpforms-constant-contact-wrap .steps{display:flex;flex-wrap:wrap;margin-left:-15px;margin-right:-15px;margin-bottom:-25px;color:#777777;font-size:14px;line-height:1.14285714;text-align:center}.wpforms-constant-contact-wrap .step{box-sizing:border-box;width:50%;padding:0 15px;margin:0 0 25px}.wpforms-constant-contact-wrap .step-image-wrapper{position:relative;border:5px solid #ffffff;border-radius:4px;overflow:hidden}.wpforms-constant-contact-wrap .step-image-wrapper .hover{position:absolute;display:block;top:0;left:0;right:0;bottom:0;opacity:0;background-color:rgba(0,0,0,0.15);background-image:url(../images/zoom.svg);background-repeat:no-repeat;background-position:center;background-size:50px;transition:all 0.3s}.wpforms-constant-contact-wrap .step-image-wrapper .hover:hover{opacity:1}.wpforms-constant-contact-wrap .step img{max-width:100%;height:auto;display:block;box-sizing:border-box}.wpforms-constant-contact-wrap .step figcaption{margin-top:10px}@media only screen and (max-width: 767px){.wpforms-constant-contact-wrap .button{font-size:13px;padding:11px 15px}.wpforms-constant-contact-wrap .logo-link{float:none;margin-left:0;margin-right:0}.wpforms-constant-contact-wrap .logo-link .logo{margin:0 auto}.wpforms-constant-contact-wrap .steps .step{width:100%}}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;display:flex;flex-wrap:wrap;gap:8px;padding-bottom:15px;margin-bottom:10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;font-size:10px;text-transform:uppercase;width:100%}#wpforms-entries-list .form-details .form-details-title{display:flex;font-size:18px;font-weight:400;margin-block:0;margin-inline:0 auto}#wpforms-entries-list .form-details .form-details-title span{color:#6a6f76;margin-inline-start:8px}#wpforms-entries-list .form-details .form-selector{position:relative}#wpforms-entries-list .form-details .form-selector .toggle{margin-inline-start:5px;border-radius:50%;color:#a7aaad;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:30px;left:-103px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{display:flex;flex-wrap:wrap;gap:12px}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:1em;height:1em;font-size:16px}#wpforms-entries-list .search-box .wpforms-form-search-box-field{max-width:180px;vertical-align:top;margin:0 5px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-comparison{max-width:95px;vertical-align:top;margin:0 5px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-term{min-height:30px;line-height:normal;margin:0 5px 0 0}#wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector{min-height:30px;background-color:#fff;vertical-align:middle;max-width:210px;line-height:normal}#wpforms-entries-list .wpforms-filter-date button{margin:1px 8px 0 0;vertical-align:top}#wpforms-entries-list .tablenav.bottom .actions input{margin:0}#wpforms-entries-list .tablenav .actions{padding:0 10px 0 0}#wpforms-entries-list .wp-list-table .new-entries-notification td{padding:0;text-align:center}#wpforms-entries-list .wp-list-table .new-entries-notification td a{display:none;padding:10px;background-color:#d9edf7}#wpforms-entries-list .wp-list-table .wpforms-no-entries-found{position:sticky;left:10px;width:200px}#wpforms-entries-list .wp-list-table tbody td{padding:9px 10px 8px 10px}#wpforms-entries-list .wp-list-table .manage-column{min-width:120px;max-width:20vw}#wpforms-entries-list .wp-list-table .manage-column.check-column{width:35px;min-width:35px;max-width:35px}#wpforms-entries-list .wp-list-table .manage-column.column-graph{text-align:center}#wpforms-entries-list .wp-list-table .column-indicators{width:50px;min-width:50px;line-height:14px;text-align:center;white-space:nowrap;padding:9px 8px 8px 4px}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px}#wpforms-entries-list .wp-list-table .indicator-star{box-shadow:none;color:#c3c4c7;display:inline-block;line-height:14px;margin-inline-end:10px;vertical-align:middle}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#ffb900}#wpforms-entries-list .wp-list-table .indicator-read{border-radius:14px;box-shadow:inset 0 0 0 2.5px #a2c5dc;display:inline-block;height:14px;line-height:14px;transition:box-shadow 0.1s ease-in;vertical-align:middle;width:14px}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{box-shadow:inset 0 0 0 1.5px #c3c4c7}#wpforms-entries-list .wp-list-table .column-entry_id{min-width:110px}#wpforms-entries-list .wp-list-table .column-date{min-width:210px;text-wrap:balance}#wpforms-entries-list .wp-list-table td.column-date span{display:inline-block}#wpforms-entries-list .wp-list-table .column-type{width:120px}#wpforms-entries-list .wp-list-table .column-notes_count{min-width:125px}#wpforms-entries-list .wp-list-table .column-payment{width:100px;min-width:100px}#wpforms-entries-list .wp-list-table .column-payment>span{color:#a7aaad}#wpforms-entries-list .wp-list-table .column-payment [class*="payment-status-"]{align-items:center;display:grid;gap:10px;grid-template-columns:14px 1fr;white-space:nowrap}#wpforms-entries-list .wp-list-table .column-payment [class*="payment-status-"]:before{background-image:url(../images/payments/status/icon-n-a.svg);background-size:contain;background-position:center;background-repeat:no-repeat;content:'';display:inline-block;height:14px;width:14px}#wpforms-entries-list .wp-list-table .column-payment .payment-status-completed::before{background-image:url(../images/payments/status/icon-completed.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-pending::before{background-image:url(../images/payments/status/icon-pending.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-failed::before{background-image:url(../images/payments/status/icon-failed.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-refunded::before{background-image:url(../images/payments/status/icon-refunded.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-partrefund::before{background-image:url(../images/payments/status/icon-partrefund.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-cancelled::before{background-image:url(../images/payments/status/icon-cancelled.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-active::before{background-image:url(../images/payments/status/icon-active.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-processed::before{background-image:url(../images/payments/status/icon-processed.svg)}#wpforms-entries-list .wp-list-table .column-payment .payment-status-not-synced::before{background-image:url(../images/payments/status/icon-not-synced.svg)}#wpforms-entries-list .wp-list-table .column-actions{width:130px;min-width:130px;position:relative;white-space:nowrap}#wpforms-entries-list .wp-list-table.wpforms-entries-table-spam .column-actions{width:155px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover,#wpforms-entries-list .wp-list-table .trash:hover{color:red}#wpforms-entries-list #wpforms-list-table-ext-edit-columns-cog{top:9px}@media (max-width: 782px){#wpforms-entries-list .wpforms-entries-overview-table .wp-list-table tbody td.column-primary{padding-right:50px;line-height:25px}#wpforms-entries-list .wpforms-entries-overview-table .wp-list-table tbody td.column-primary>a{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}}#wpforms-entries-list .wpforms-dash-widget-chart-block{padding:12px 12px 0 8px;background-color:#ffffff;border:1px solid #e5e5e5;margin-top:20px;box-shadow:0 1px 1px rgba(0,0,0,0.04)}#wpforms-entries-list .wpforms-dash-widget-chart-block .wpforms-error-no-data-chart{border:none}#wpforms-entries-list #wpforms-dash-widget-chart-title{display:inline-block;margin-left:0;font-size:18px}#wpforms-entries-list .wpforms-dash-widget-block:first-child{margin-top:0}#wpforms-entries-list .wpforms-dash-widget-reset-chart{color:#d83638;opacity:1;vertical-align:text-bottom;margin:0 0 -1px 0}#wpforms-entries-list .wpforms-dash-widget-reset-chart:hover{color:#ad2b2c}#wpforms-entries-list .wpforms-dash-widget-reset-chart .dashicons{font-size:20px;height:1em;width:1em}#wpforms-entries-list #wpforms-dash-widget-timespan{margin:5px -12px 0 0}#wpforms-entries-list #wpforms-dash-widget-forms-list-block{overflow:visible}#wpforms-entries-list #wpforms-dash-widget-forms-list-table{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,0.04)}#wpforms-entries-list #wpforms-dash-widget-forms-list-table .wpforms-dash-widget-forms-list-columns td{padding:12px 20px;border-bottom:1px solid #e1e1e1}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tbody{border-top:0}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr{border-bottom:0}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr:first-child{border-top:0}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr:first-child td{border-top:0}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr:nth-child(even) td{background-color:#f9f9f9}#wpforms-entries-list #wpforms-dash-widget-forms-list-table td{text-align:left;padding:20px 20px;font-size:14px;border:none;color:#555;background-color:#fff}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr>td:nth-child(2){width:180px}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr>td:nth-child(3){width:60px;text-align:center}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr>td:nth-child(4){width:90px;text-align:center}#wpforms-entries-list #wpforms-dash-widget-forms-list-table tr>td:nth-child(5){width:60px;text-align:center;padding-top:0;padding-bottom:0}#wpforms-entries-list #wpforms-dash-widget-forms-list-table .wpforms-dash-widget-form-active td:first-child{border-left:3px solid #0073aa;padding-left:17px}#wpforms-entries-list #wpforms-dash-widget-forms-list-table .wpforms-dash-widget-form-active .wpforms-dash-widget-single-chart-btn{display:none !important}#wpforms-entries-list #wpforms-dash-widget-forms-list-table .wpforms-dash-widget-form-active .wpforms-dash-widget-reset-chart{display:inline-block !important;border:none;background:none;margin:0}#wpforms-entries-list #wpforms-dash-widget-forms-list-table .wpforms-dash-widget-forms-list-columns{background-color:#ffffff;border-bottom:1px solid #ddd}#wpforms-entries-list #wpforms-dash-widget-forms-list-table a{text-decoration:none}#wpforms-entries-list #wpforms-dash-widget-forms-list-table a:hover{text-decoration:none}#wpforms-entries-list #wpforms-dash-widget-forms-list-table .wpforms-dash-widget-form-title a{font-weight:600}@media screen and (max-width: 1024px){#wpforms-entries-list .column-indicators,#wpforms-entries-list .wp-list-table.entries td.column-indicators{display:none !important}}@media screen and (max-width: 782px){.wpforms_page_wpforms-entries .wpforms-admin-content{padding-left:10px;padding-right:10px}#wpforms-entries-list .wp-list-table{margin:0;width:100%;table-layout:auto}#wpforms-entries-list .wp-list-table tr:not(.inline-edit-row):not(.no-items) .indicators{display:none}#wpforms-entries-list .wp-list-table tr:not(.inline-edit-row):not(.no-items) .indicators+td:not(.column-primary){margin-top:0}#wpforms-entries-list .wp-list-table th.check-column,#wpforms-entries-list .wp-list-table td.check-column{height:45px}#wpforms-entries-list .wp-list-table th.column-actions,#wpforms-entries-list .wp-list-table td.column-actions{width:auto}#wpforms-entries-list .wp-list-table .column-date{text-wrap:normal}#wpforms-entries-list .wp-list-table.entries #the-list tr.no-items:last-child{position:relative}#wpforms-entries-list .wp-list-table.entries #the-list tr.no-items:last-child td{border-top:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4 !important;position:absolute;min-height:80px;width:100%;box-sizing:border-box;margin-top:-40px;padding:30px;background-color:#ffffff;font-size:16px}#wpforms-entries-list .form-details-actions{margin-top:15px}#wpforms-entries-list .form-details-actions a{margin-bottom:10px !important;font-size:16px}#wpforms-entries-list p.search-box{margin:0;width:auto}#wpforms-entries-list p.search-box select,#wpforms-entries-list p.search-box input,#wpforms-entries-list p.search-box button{max-width:24% !important;min-height:40px !important;margin-bottom:5px !important}}#wpforms-entries-table .tablenav .actions select{margin-right:5px}#wpforms-entries-table .tablenav .actions #doaction{margin-right:0}#wpforms-entries-table .wpforms-filter-date .wpforms-filter-date-selector{float:left;margin-right:5px}#wpforms-entries-table .wpforms-filter-date button{margin:0}#wpforms-entries-table .search-box .wpforms-form-search-box-field,#wpforms-entries-table .search-box .wpforms-form-search-box-comparison,#wpforms-entries-table .search-box .wpforms-form-search-box-term,#wpforms-entries-table .search-box button{float:left}@media (max-width: 782px){#wpforms-entries-table .search-box{position:relative;bottom:auto;width:100%;height:auto;clear:both}#wpforms-entries-table .search-box .wpforms-form-search-box-term,#wpforms-entries-table .wpforms-filter-date .wpforms-filter-date-selector{padding:3px 10px;min-height:40px}#wpforms-entries-table .tablenav.top{margin-bottom:10px}#wpforms-entries-table .tablenav .actions,#wpforms-entries-table .tablenav .wpforms-filter-date{display:block;margin-bottom:10px}}@media screen and (max-width: 400px){#wpforms-entries-table .tablenav.bottom .bulkactions{width:100%}}#wpforms-entries-table .wpforms-table-container{border:1px solid #ccd0d4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05);width:100%;overflow-x:auto;overflow-y:hidden;box-sizing:border-box}#wpforms-entries-table .wpforms-table-container .wpforms-table-list{border:none;box-shadow:none;border-radius:inherit;position:relative}@media (max-width: 782px){#wpforms-entries-table .wpforms-table-container table.wp-list-table td.column-primary{height:auto !important;padding-top:13px;padding-right:50px}#wpforms-entries-table .wpforms-table-container table.wp-list-table td.column-primary .toggle-row:before{top:0}#wpforms-entries-table .wpforms-table-container table.wp-list-table td.column-primary+td{margin-top:50px}#wpforms-entries-table .wpforms-table-container table.wp-list-table td.column-primary>div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}}body.rtl #wpforms-entries-list .wp-list-table div[data-field-type="phone"]{direction:ltr;unicode-bidi:embed;text-align:right}body.rtl #wpforms-entries-list .wp-list-table.has-many-columns .is-expanded td:not(.column-primary)[data-colname]::before,body.rtl #wpforms-entries-list .wp-list-table.has-few-columns .is-expanded td:not(.column-primary)[data-colname]::before{text-align:right}body.rtl #wpforms-entries-list .wp-list-table.has-many-columns .is-expanded td:not(.column-primary):not(.hidden),body.rtl #wpforms-entries-list .wp-list-table.has-few-columns .is-expanded td:not(.column-primary):not(.hidden){text-align:left}#wpforms-overview #wpforms-reset-filter{margin-top:0}#wpforms-overview .search-box input{max-width:165px}#wpforms-overview .search-box .button{margin-left:1px;font-size:14px;line-height:2}#wpforms-overview .subsubsub{margin:10px 0 -4px 0}#wpforms-overview .tablenav.top{margin-top:0;padding-top:8px}#wpforms-overview .tablenav>div,#wpforms-overview .tablenav>button{margin-bottom:10px}#wpforms-overview .wpforms-table-container{border:none}#wpforms-overview .wp-list-table{table-layout:auto;width:100%;max-width:100%;border:1px solid #ccd0d4}#wpforms-overview .wp-list-table.striped tbody>:nth-child(odd){background-color:#ffffff}#wpforms-overview .wp-list-table.striped tbody>:nth-child(even){background-color:#f6f6f6}#wpforms-overview .wp-list-table .manage-column{position:relative}#wpforms-overview .wp-list-table .manage-column>a{padding-right:0}#wpforms-overview .wp-list-table .column-name{width:auto}#wpforms-overview .wp-list-table .column-name>span>strong,#wpforms-overview .wp-list-table .column-name>a>strong{font-weight:600}#wpforms-overview .wp-list-table tbody .column-name>a{max-height:120px;overflow:hidden}#wpforms-overview .wp-list-table tbody .column-name .post-state{font-weight:500}#wpforms-overview .wp-list-table .column-id{width:65px}#wpforms-overview .wp-list-table .column-tags{width:300px}#wpforms-overview .wp-list-table .column-tags:before{content:'';display:block;width:300px}#wpforms-overview .wp-list-table .column-author{width:130px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:220px}#wpforms-overview .wp-list-table .column-locations{width:55px}#wpforms-overview .wp-list-table .column-cog{z-index:revert}#wpforms-overview .wp-list-table .column-entries{width:80px}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a{align-items:center;display:inline-flex;position:relative;gap:6px}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a svg{color:#8c8f94;width:16px;height:12px;transition-property:color;transition-duration:0.15s;transition-timing-function:ease-out}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a path{fill:currentColor}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a:hover{text-decoration:underline}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a:hover svg{color:#50575e}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a[data-title]::after{background-color:rgba(30,30,30,0.9);border-radius:2px;bottom:100%;box-sizing:border-box;content:attr(data-title);color:#fff;font-size:11px;left:calc( 50% - 88.5px);letter-spacing:-.3px;line-height:16px;opacity:0;padding:5px 8px;position:absolute;text-align:left;visibility:hidden;width:177px;transition-property:opacity;transition-duration:0.4s;transition-timing-function:ease-out}#wpforms-overview .wp-list-table .column-entries .wpforms-lite-connect-entries-count a[data-title]:hover::after{opacity:1;visibility:visible}#wpforms-overview .wp-list-table span.wpforms-locations-column-title{display:none}#wpforms-overview .wp-list-table span.wpforms-locations-column-icon{display:block;width:12px;height:16px;background-image:url("../images/file-code.svg")}#wpforms-overview .wp-list-table .locations .locations-list{display:none}#wpforms-overview .wp-list-table .wpforms-locations-pane td{padding:8px 11px 11px}#wpforms-overview .wp-list-table .wpforms-locations-pane td:before{content:'';display:block;width:100%;height:1px;background:#dcdcde;transform:translateY(-8px)}#wpforms-overview .wp-list-table .wpforms-locations-pane .wpforms-locations-pane-title{display:block;margin-bottom:0.3em;text-transform:uppercase;color:#50575e;font-size:12px;font-weight:600}#wpforms-overview .wp-list-table .wpforms-locations-pane .wpforms-locations-list-item{display:block;margin-bottom:0.3em}#wpforms-overview .wp-list-table .wpforms-locations-pane a.wpforms-locations-link{color:#a7aaad;font-style:italic;font-weight:normal;margin-left:2px}#wpforms-overview .wp-list-table .wpforms-locations-pane a.wpforms-locations-link i{margin-left:5px}#wpforms-overview .wp-list-table .wpforms-locations-pane a.wpforms-locations-link:hover{color:#50575e}#wpforms-overview .wp-list-table .wpforms-locations-pane .wpforms-locations-close{margin-top:0.4em}#wpforms-overview .choices:not(.is-focused) .choices__inner,#wpforms-overview .choices:not(.is-open) .choices__inner{border-color:#8c8f94}#wpforms-overview .choices__inner{min-height:30px;padding:1px !important;padding-inline-end:45px !important;align-items:center}#wpforms-overview .choices__inner .choices__item{margin:2px}#wpforms-overview .choices__inner .choices__input{margin:0 !important;background-image:none !important;cursor:text;line-height:26px}#wpforms-overview .choices__inner .choices__button{flex-shrink:0}#wpforms-overview .choices__inner .choices__arrow{position:absolute;z-index:2;width:24px;height:24px;inset-inline-end:1px;top:calc( 50% - 12px);background:#ffffff}#wpforms-overview .choices__list--dropdown .choices__item{padding:10px 12px}#wpforms-overview .wpforms-tags-filter{display:inline-flex;flex-wrap:nowrap;min-width:300px;margin-right:12px}#wpforms-overview .wpforms-tags-filter .choices{margin:0;flex-grow:10;max-width:25vw}#wpforms-overview .wpforms-tags-filter .choices:after{z-index:9}#wpforms-overview .wpforms-tags-filter .choices[aria-expanded="true"] .choices__inner{max-height:max-content;position:relative;z-index:9}#wpforms-overview .wpforms-tags-filter .choices[aria-expanded="true"] .choices__inner .choices__list{white-space:initial}#wpforms-overview .wpforms-tags-filter .choices[data-type*="select-multiple"][aria-expanded="false"].choices__show-more:before{top:4px !important;inset-inline-end:28px !important}#wpforms-overview .wpforms-tags-filter .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner{height:30px}#wpforms-overview .wpforms-tags-filter .choices__inner{max-height:30px;padding:2px 24px 2px 2px}#wpforms-overview .wpforms-tags-filter .choices__inner .choices__list{height:auto !important}#wpforms-overview .wpforms-tags-filter .choices__inner .choices__input{margin-left:4px !important}#wpforms-overview .wpforms-tags-filter select{width:calc( 100% - 50px);visibility:hidden}#wpforms-overview .wpforms-tags-filter input::placeholder{color:#32373c}#wpforms-overview .wpforms-tags-filter .button{margin-bottom:0;margin-inline-start:6px;height:30px}#wpforms-overview .wpforms-column-tags-links .wpforms-column-tags-edit{visibility:hidden;width:300px}#wpforms-overview .wpforms-column-tags-links .wpforms-column-tags-links-list{margin-bottom:2px}#wpforms-overview .wpforms-column-tags-form{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between}#wpforms-overview .wpforms-column-tags-form .choices{margin:0;flex-grow:10;width:250px}#wpforms-overview .wpforms-column-tags-form .choices.choices__show-more:before{top:4px !important;right:28px !important}#wpforms-overview .wpforms-column-tags-form .choices[aria-expanded="false"] .choices__inner{max-height:30px !important}#wpforms-overview .wpforms-column-tags-form i.dashicons{margin-left:8px;width:16px;height:16px;font-size:15px;cursor:pointer}#wpforms-overview .wpforms-column-tags-form i.dashicons.wpforms-column-tags-edit-cancel{color:#787c82}#wpforms-overview .wpforms-column-tags-form i.dashicons.wpforms-column-tags-edit-cancel:hover{color:#d63638}#wpforms-overview .wpforms-column-tags-form i.dashicons.wpforms-column-tags-edit-save{margin-left:6px;color:#00a32a}#wpforms-overview .wpforms-column-tags-form i.dashicons.wpforms-column-tags-edit-save:hover{color:#007017}#wpforms-overview .wpforms-column-tags-form i.wpforms-spinner{margin:-2px 0 0 6px;width:16px;min-width:16px;height:16px;background-size:14px 14px;background-position:center;visibility:visible}#wpforms-overview .wpforms-bulk-edit-tags{background:#ffffff}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-fbox{display:flex;justify-content:flex-start;align-items:flex-start}@media (max-width: 600px){#wpforms-overview .wpforms-bulk-edit-tags .wpforms-fbox{flex-wrap:wrap}}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-tags{margin-left:10px;width:310px}@media (max-width: 600px){#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-tags{width:100%;margin:0}}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms{width:calc( 90% - 720px)}@media (max-width: 600px){#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms{width:100% !important;margin-bottom:10px}}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .is-open .choices__list--dropdown{display:none}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .is-open .choices__inner{border-radius:4px}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__inner{cursor:default;min-height:140px;max-height:200px;align-items:start;overflow-y:auto;padding:5px 1px}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices[data-type*="select-multiple"]:after{display:none}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__input{display:none !important}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__list--multiple{display:block !important}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__list--multiple .choices__item{display:flex;flex-direction:row-reverse;width:fit-content;cursor:default;padding:3px 7px;background:none;color:#50575e;border:none;word-break:break-word}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__list--multiple .choices__item button{float:left;margin:0 7px 0 0;background:none;opacity:1}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__list--multiple .choices__item button:hover:before{color:#d63638}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-edit-forms .choices__list--multiple .choices__item button:before{font-family:dashicons, sans-serif;content:"\f153";width:13px;height:13px;font-size:14px;color:#787c82;text-indent:0;position:absolute;left:0;top:0}#wpforms-overview .wpforms-bulk-edit-tags.wpforms-row-form td{padding:10px}#wpforms-overview .wpforms-bulk-edit-tags.wpforms-row-buttons td{padding:10px}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-bulk-edit-tags-save{float:right}#wpforms-overview .wpforms-bulk-edit-tags .wpforms-bulk-edit-tags-save i{margin:0 4px 0 0}#wpforms-overview .wpforms-bulk-edit-tags.wpforms-row-message td{padding:0}#wpforms-overview .wpforms-bulk-edit-tags.wpforms-row-message .wpforms-message{padding:20px;text-align:center;border-top:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}#wpforms-overview .wpforms-manage-tags{margin-right:6px}@media (max-width: 430px){#wpforms-overview #doaction2{margin-right:35px}}body.toplevel_page_wpforms-overview [id^="__lpform_input"]{display:none !important}body.wpforms-manage-tags-modal{overflow:hidden;height:100vh}body.wpforms-manage-tags-modal .jconfirm .jconfirm-cell{overflow-y:auto;max-height:100vh;height:100vh;display:flex;justify-content:center;align-items:center}body.wpforms-manage-tags-modal .jconfirm .jconfirm-box-container .jconfirm-box{width:calc( 100% - 40px) !important;max-width:550px}body.wpforms-manage-tags-modal .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane{height:auto !important;min-height:fit-content;max-height:fit-content !important}body.wpforms-manage-tags-modal .wpforms-manage-tags-items{margin-top:25px;display:flex;justify-content:center;flex-wrap:wrap;overflow-wrap:anywhere}body.wpforms-manage-tags-modal .wpforms-manage-tags-items input{display:none}body.wpforms-manage-tags-modal .wpforms-manage-tags-items input+label{background:#f8f8f8 url("../images/trash.svg") no-repeat right 10px center;background-size:12px 14px;border:1px solid #f8f8f8;border-radius:3px;font-weight:400;font-size:14px;line-height:22px;padding:7px 30px 7px 10px;margin:0 10px 10px 0;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}body.wpforms-manage-tags-modal .wpforms-manage-tags-items input+label:hover{border-color:#a7aaad}body.wpforms-manage-tags-modal .wpforms-manage-tags-items input+label span{color:#777777}body.wpforms-manage-tags-modal .wpforms-manage-tags-items input:checked+label{background:#fff url("../images/trash-red.svg") no-repeat right 10px center;background-size:12px 14px;border-color:#d63638}body.wpforms-manage-tags-modal .wpforms-manage-tags-notice{background:#FCF9E8;border-radius:3px;font-size:14px;line-height:22px;text-align:center;color:#444444;padding:7px;margin:20px 0 10px 0}tr:hover .wpforms-column-tags-links .wpforms-column-tags-edit,.mobile .wpforms-column-tags-links .wpforms-column-tags-edit{visibility:visible !important}.branch-4-9 #wpforms-overview .search-box input{vertical-align:top;margin:0;height:28px}.branch-4-9 #wpforms-overview .search-box .button{font-size:13px}.branch-5-2 #wpforms-overview .actions{padding-top:0}.branch-5-2 #wpforms-overview .delete-all{margin-top:1px}.branch-5-2 #wpforms-overview .choices:not(.is-focused) .choices__inner,.branch-5-2 #wpforms-overview .choices:not(.is-open) .choices__inner{border-color:#dddddd}.branch-5-2 #wpforms-overview .wpforms-tags-filter .choices__inner{max-height:28px;min-height:28px}.branch-5-2 #wpforms-overview .wpforms-tags-filter .choices__list--multiple .choices__item{padding:3px 6px}@media screen and (max-width: 1280px){#wpforms-overview .wpforms-tags-filter{min-width:200px}#wpforms-overview .wp-list-table tr th:nth-child(5) ~ th:not(.column-entries):not(.column-created):not(.column-cog){display:none}#wpforms-overview .wp-list-table tr td:nth-child(5) ~ td:not(.column-entries):not(.column-created):not(.column-cog){display:none}}@media screen and (max-width: 960px){#wpforms-overview .choices__list--dropdown .choices__item--selectable.is-highlighted:after{display:none !important}#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) th,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) td{display:none}#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.check-column,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.column-name,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.column-created,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) th.column-entries,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.check-column,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.column-name,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.column-created,#wpforms-overview .wp-list-table tr:not(.wpforms-bulk-edit-tags) td.column-entries{display:table-cell}}@media screen and (max-width: 782px){.toplevel_page_wpforms-overview .wpforms-admin-content{padding-left:10px;padding-right:10px}#wpforms-overview{margin-bottom:24px}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-name>a{display:block;max-height:40px;overflow:hidden}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-name .row-actions{overflow:hidden;height:30px;gap:0}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-name .row-actions a{padding:4px}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items).is-expanded td:not(.hidden){overflow:visible !important}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items).is-expanded td:not(.check-column):not(.column-primary):first-of-type{margin-top:0 !important}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items).is-expanded td.column-name .row-actions{overflow:visible}#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-created,#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-entries,#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) th.column-created,#wpforms-overview .wp-list-table tr:not(.inline-edit-row):not(.no-items) th.column-entries{display:none}#wpforms-overview .wp-list-table tr.wpforms-locations-pane{display:none}#wpforms-overview .wp-list-table tr.is-expanded ~ tr.wpforms-locations-pane{display:table-row}#wpforms-overview .search-box{width:calc( 100% - 20px)}#wpforms-overview .search-box #wpforms-overview-search-term{width:100%;height:auto;max-width:100%;margin-bottom:10px}.branch-4-9 #wpforms-overview .search-box .button{margin-left:0;font-size:14px;line-height:normal}#wpforms-overview .tablenav.top{display:none}#wpforms-overview .tablenav.bottom .bulkactions{margin-bottom:10px}#wpforms-overview .tablenav.bottom .delete-all{margin-left:1px;margin-right:60px}#wpforms-overview .tablenav.bottom .displaying-num{top:16px}#wpforms-overview .tablenav-pages.one-page{margin-bottom:0;float:none}#wpforms-overview .tablenav-pages.one-page .displaying-num{top:12px}#wpforms-overview .subsubsub{margin:0 0 10px 0}#wpforms-overview .wpforms-tags-filter{vertical-align:top}#wpforms-overview .wpforms-tags-filter .choices{max-width:40vw;min-width:40vw}#wpforms-overview .wpforms-tags-filter .choices__inner{min-height:40px;max-height:40px}#wpforms-overview .wpforms-manage-tags{vertical-align:top;margin-right:80px}.branch-5-2 #wpforms-overview .wpforms-tags-filter .choices__inner{min-height:32px;max-height:32px}.branch-5-2 #wpforms-overview .bulkactions select,.branch-5-2 #wpforms-overview .bulkactions input{height:32px;margin-top:0;margin-bottom:0}.branch-5-2 #wpforms-overview .search-box .button{line-height:normal}}@media screen and (max-width: 600px){.tablenav.bottom .displaying-num{position:absolute}#wpforms-overview .wpforms-tags-filter{margin-right:3px}#wpforms-overview .wpforms-tags-filter .choices{min-width:52vw}#wpforms-overview .wpforms-manage-tags{margin-right:0}}#wpforms-payments.wpforms-payments-wrap-payment a{text-decoration:none}#wpforms-payments.wpforms-payments-wrap-payment .page-title{padding:14px 20px}#wpforms-payments.wpforms-payments-wrap-payment .hndle{color:#32373c}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-single-payment-tooltip{background-image:url(../images/payments/single/info-circle.svg);background-size:contain;height:14px;margin-top:2px;width:14px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-single-payment-tooltip-content{display:none}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions{align-items:center;background:#f6f6f6;border-top:1px solid #c3c4c7;display:flex;padding:10px 12px;min-height:30px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status{display:inline-flex;align-items:center;gap:5px;width:50%;font-size:14px;line-height:17px;color:#50575e;font-weight:400;padding-left:3px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .processed{color:#008a20}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .completed{color:#008a20}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .active{color:#008a20}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .cancelled{color:#50575e}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .not-synced{color:#50575e}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .failed{color:#d63638}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .pending{color:#bd8600}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .status .refunded{color:#50575e}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .wpforms-payment-action-status-value{font-weight:600;text-transform:capitalize}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .wpforms-payment-action-status-value.partrefund span{white-space:nowrap}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .actions{align-items:center;justify-content:end;display:flex;width:50%}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .actions .link{margin-right:10px;font-weight:400;font-size:13px;line-height:16px;text-decoration:none}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .actions .link:focus{outline:none;box-shadow:none}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions .actions .button{box-shadow:none}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info h2.hndle,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details h2.hndle,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields h2.hndle,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info h2.hndle{flex-wrap:wrap;gap:5px;justify-content:flex-start;padding:12px 15px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info h2.hndle span:first-child,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details h2.hndle span:first-child,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields h2.hndle span:first-child,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info h2.hndle span:first-child{font-size:16px;font-weight:600;line-height:20px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info h2.hndle span:nth-child(n+2)::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details h2.hndle span:nth-child(n+2)::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields h2.hndle span:nth-child(n+2)::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info h2.hndle span:nth-child(n+2)::before{content:"/";color:#a7aaad;margin-inline-end:5px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info h2.hndle .dashicons,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details h2.hndle .dashicons,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields h2.hndle .dashicons,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info h2.hndle .wpforms-payment-entry-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info h2.hndle .wpforms-payment-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details h2.hndle .wpforms-payment-entry-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details h2.hndle .wpforms-payment-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields h2.hndle .wpforms-payment-entry-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields h2.hndle .wpforms-payment-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info h2.hndle .wpforms-payment-entry-id,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info h2.hndle .wpforms-payment-id{color:#50575e;font-size:14px;font-weight:400;line-height:17px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside{padding:0;margin:0}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside p,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside p,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside p,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside p{padding:0;margin:0}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list{background-color:#dcdcde;display:flex;flex-wrap:wrap;gap:1px;margin:0}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card{flex-grow:1;margin:0;width:24%}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .is-amount .statcard-value,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .is-amount .statcard-value{word-break:break-all}@media (max-width: 1367px) and (min-width: 601px){#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card{width:49%}}@media (max-width: 600px){#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card{width:100%}}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card button,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card button{align-items:center;background-color:#ffffff;border-width:0;box-shadow:none;column-gap:15px;display:grid;justify-items:start;grid-template-columns:48px 1fr;grid-template-rows:repeat(2, auto);grid-template-areas:"image label" "image value";height:100%;outline:0;padding:15px;text-align:left;width:100%}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card button::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card button::before{background-size:contain;background-position:center;background-repeat:no-repeat;content:"";grid-area:image;height:48px;width:48px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .coupon::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .coupon::before{background-image:url(../images/payments/single/icon-coupon.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .cycle::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .cycle::before{background-image:url(../images/payments/single/icon-cycle.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .date::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .date::before{background-image:url(../images/payments/single/icon-date.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .lifetime-total::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .lifetime-total::before{background-image:url(../images/payments/single/icon-lifetime-total.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .total::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .total::before{background-image:url(../images/payments/single/icon-total.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .method::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .method::before{background-image:url(../images/payments/single/icon-method.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .one-time::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .one-time::before{background-image:url(../images/payments/single/icon-one-time.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .subscription::before,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .subscription::before{background-image:url(../images/payments/single/icon-subscription.svg)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-label,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-label{color:#787c82;font-size:14px;grid-area:label;line-height:17px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-value,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-value{display:flex;align-items:center;gap:5px;color:#50575e;font-weight:600;font-size:20px;grid-area:value;line-height:24px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-value span,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-value span{word-break:break-word}@media (max-width: 600px){#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-info .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-value,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-subscription-details .inside .wpforms-payments-details-list .wpforms-payments-details-stat-card .stat-card-value{font-size:18px}}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item{display:flex;flex-direction:row;background:#f6f6f6;padding:8px 12px 8px 15px}@media (max-width: 781px){#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item{flex-direction:column}}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item:nth-child(2n){background:#ffffff}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item:last-child{border-radius:4px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item .wpforms-payment-advanced-item-label{font-weight:600;width:20%}@media (max-width: 781px){#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item .wpforms-payment-advanced-item-label{width:100%}}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-advanced-info .inside .wpforms-payment-advanced-item .wpforms-payment-advanced-item-value{width:80%}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside{line-height:16px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .no-fields{padding:12px;margin:0}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-field-name{background:#f6f6f6;color:#32373c;font-weight:600;line-height:inherit;padding:10px 15px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-field-value{background:#fff;color:#50575e;padding:10px 15px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-field-value:last-child{border-radius:4px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .empty .wpforms-payment-entry-field-value{font-style:italic;color:#999}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload p.file-entry,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera p.file-entry{padding-left:12px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .wpforms-help-tooltip,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .wpforms-help-tooltip{line-height:16px;font-size:14px;margin-left:10px;color:#a6a6a6}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .wpforms-help-tooltip:hover,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .wpforms-help-tooltip:hover{color:#444}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .file-icon,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .file-icon{padding-right:10px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .file-icon img,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .file-icon img{vertical-align:middle}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .button-link-delete,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .button-link-delete{text-decoration:none}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .wpforms-trash-icon,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .wpforms-trash-icon{width:16px;height:16px;font-size:16px;color:#a00;margin-left:8px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload .wpforms-trash-icon:hover,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera .wpforms-trash-icon:hover{color:#dc3232}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload a,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera a{cursor:pointer}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-file-upload a.disabled,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-field-camera a.disabled{opacity:0.5}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block>.wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block>.wpforms-payment-entry-field-name{border-bottom:1px solid #dcdcde}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-repeater-row,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-layout-row,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-repeater-row,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-layout-row{display:flex;flex-wrap:nowrap;justify-content:space-between}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-repeater-row .wpforms-payment-entry-column,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-layout-row .wpforms-payment-entry-column,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-repeater-row .wpforms-payment-entry-column,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-layout-row .wpforms-payment-entry-column{width:var(--field-layout-column-width, auto)}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-repeater-row .wpforms-payment-entry-field .wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-layout-row .wpforms-payment-entry-field .wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-repeater-row .wpforms-payment-entry-field .wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-layout-row .wpforms-payment-entry-field .wpforms-payment-entry-field-name{display:none}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-repeater-row .wpforms-payment-entry-field:first-child .wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-repeater-block .wpforms-payment-entry-layout-row .wpforms-payment-entry-field:first-child .wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-repeater-row .wpforms-payment-entry-field:first-child .wpforms-payment-entry-field-name,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .inside .wpforms-payment-entry-layout-block .wpforms-payment-entry-layout-row .wpforms-payment-entry-field:first-child .wpforms-payment-entry-field-name{display:block}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:2px 0 0;font-size:12px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .wpforms-field-richtext .wpforms-payment-entry-field-value{max-width:100%;overflow:auto}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .wpforms-field-richtext .wpforms-payment-entry-field-value-richtext{width:calc(100% + 24px);height:0;margin:-8px -12px -11px -12px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-entry-fields .wpforms-field-richtext img{max-width:100%}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-details .inside,#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-actions .inside{margin:0;padding:0}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-details .button-delete{color:#d63638;border-color:#d63638}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-details .button-delete:hover{text-decoration:none}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta .dashicons,#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta .dashicons{color:#8c8f94;font-size:22px;height:22px;inset-inline-start:12px;position:absolute;text-decoration:none;top:5px;width:22px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta .dashicons.dashicons-marker,#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta .dashicons.dashicons-marker{color:#ffb900}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta{padding:5px 0}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta p{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:6px 12px 6.5px 42px;position:relative}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta strong{font-weight:600}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta .dashicons-wpforms{background-color:#8c8f94;-webkit-mask-image:url(../images/brand.svg);mask-image:url(../images/brand.svg)}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta{padding:0}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta p:last-of-type{border-bottom:0}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta strong{font-weight:600}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-actions-meta .dashicons{margin-right:3px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-logs .inside{margin-top:12px;padding-bottom:0}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-logs .inside .wpforms-payment-no-logs{display:flex;flex-direction:column;line-height:18px;padding-bottom:12px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-logs .inside .wpforms-payment-log-item{display:flex;flex-direction:column;background:#f6f6f6;border-radius:3px;padding:10px 12px;margin-bottom:12px}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-logs .inside .wpforms-payment-log-item .wpforms-payment-log-item-value{color:#50575e;font-size:13px;line-height:18px;word-wrap:break-word}#wpforms-payments.wpforms-payments-wrap-payment #wpforms-payment-logs .inside .wpforms-payment-log-item .wpforms-payment-log-item-date{color:#a7aaad;font-size:12px;line-height:18px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice{background:#fef8f5;border-radius:3px;border:1px solid rgba(226,119,48,0.5);box-shadow:0 1px 1px rgba(0,0,0,0.05);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:15px;gap:5px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice-title{font-weight:600;font-size:15px;line-height:18px}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice-description{align-items:center;font-weight:400;font-size:14px;line-height:17px;color:#32373c}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice-description a{color:#e27730;font-weight:600;text-decoration:none}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice-description a:hover{color:#cd6622}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice .wpforms-payment-single-education-notice-dismiss-button{z-index:2;position:absolute;right:0;top:0;padding:11px;color:#efb58f;cursor:pointer}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice .wpforms-payment-single-education-notice-dismiss-button:hover{color:#e27730}#wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice .wpforms-payment-single-education-notice-dismiss-button .dashicons{width:16px;height:16px;font-size:16px}#post-body-content .postbox{overflow:hidden}#post-body-content h2.hndle{flex-wrap:wrap;gap:5px;justify-content:flex-start;padding:12px 15px}#post-body-content h2.hndle span:first-child{font-size:16px;font-weight:500;line-height:20px}#post-body-content h2.hndle span:nth-child(n+2)::before{content:"/";color:#a7aaad;margin-inline-end:5px}#post-body-content h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#post-body-content h2.hndle .wpforms-payment-entry-id,#post-body-content h2.hndle .wpforms-payment-id{color:#50575e;font-size:14px;font-weight:400;line-height:17px}#post-body-content .inside{padding:0;margin:0}#post-body-content .inside p{padding:0;margin:0}.wpforms-subscription-payment-history{border-collapse:collapse;line-height:18px;text-transform:capitalize;width:100%}.wpforms-subscription-payment-history th,.wpforms-subscription-payment-history td{padding:10px}@media (min-width: 782px){.wpforms-subscription-payment-history th:first-of-type,.wpforms-subscription-payment-history td:first-of-type{padding-inline-start:15px}.wpforms-subscription-payment-history th:last-of-type,.wpforms-subscription-payment-history td:last-of-type{padding-inline-end:15px}}@media (max-width: 781px){.wpforms-subscription-payment-history th,.wpforms-subscription-payment-history td{padding:5px 15px}.wpforms-subscription-payment-history th:first-of-type,.wpforms-subscription-payment-history td:first-of-type{padding-block-start:15px}.wpforms-subscription-payment-history th:last-of-type,.wpforms-subscription-payment-history td:last-of-type{padding-block-end:15px}}.wpforms-subscription-payment-history th{color:#32373c;font-weight:600;text-align:start}.wpforms-subscription-payment-history thead{text-align:left;background:#f6f6f6}@media (max-width: 781px){.wpforms-subscription-payment-history thead{display:none}}.wpforms-subscription-payment-history tbody{color:#50575e}.wpforms-subscription-payment-history tbody tr.current{background:#e6f0f7;font-weight:500}.wpforms-subscription-payment-history tbody tr:nth-child(even):not(.current){background:#f6f6f6}.wpforms-subscription-payment-history tbody td:first-of-type a{color:#056aab;display:inline-flex}.wpforms-subscription-payment-history tbody td:first-of-type a::before{content:"#"}@media (max-width: 781px){.wpforms-subscription-payment-history tbody td{display:block}.wpforms-subscription-payment-history tbody td::before{content:attr(data-title) ": ";font-weight:500}}.rtl #wpforms-payments.wpforms-payments-wrap-payment .actions .link{margin-right:0;margin-left:10px}.rtl #wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-details-meta p{padding:6px 42px 6.5px 12px}.rtl #wpforms-payments.wpforms-payments-wrap-payment .wpforms-payment-single-education-notice .wpforms-payment-single-education-notice-dismiss-button{left:0;right:auto}.wpforms-payments-overview-stats{border:1px solid #c3c4c7;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05);margin-bottom:20px;overflow:hidden}.wpforms-payments-overview-stats .wpforms-overview-chart{box-shadow:none;border-width:0;border-radius:0;margin-bottom:0}.wpforms-payments-overview-stats .wpforms-overview-chart-canvas{height:329px}.wpforms-payments-overview-reports.doing-ajax{pointer-events:none}.wpforms-payments-overview-reports-legend{background-color:#dcdcde;display:flex;flex-wrap:wrap;gap:1px;margin:0;padding-top:1px}.wpforms-payments-overview-reports-statcard{flex-grow:1;margin:0;width:32%}@media (max-width: 1280px) and (min-width: 769px){.wpforms-payments-overview-reports-statcard{width:49%}}@media (max-width: 768px){.wpforms-payments-overview-reports-statcard{width:100%}}@media (min-width: 1368px){.wpforms-payments-overview-reports-statcard:nth-child(1):nth-last-child(4){width:24%}}@media (max-width: 1367px) and (min-width: 1281px){.wpforms-payments-overview-reports-statcard:nth-child(1):nth-last-child(4){width:49%}}@media (min-width: 1368px){.wpforms-payments-overview-reports-statcard:nth-child(2):nth-last-child(3){width:24%}}@media (max-width: 1367px) and (min-width: 1281px){.wpforms-payments-overview-reports-statcard:nth-child(2):nth-last-child(3){width:49%}}@media (min-width: 1368px){.wpforms-payments-overview-reports-statcard:nth-child(3):nth-last-child(2){width:24%}}@media (max-width: 1367px) and (min-width: 1281px){.wpforms-payments-overview-reports-statcard:nth-child(3):nth-last-child(2){width:49%}}@media (min-width: 1368px){.wpforms-payments-overview-reports-statcard:nth-child(4):nth-last-child(1){width:24%}}@media (max-width: 1367px) and (min-width: 1281px){.wpforms-payments-overview-reports-statcard:nth-child(4):nth-last-child(1){width:49%}}.wpforms-payments-overview-reports-statcard button{align-content:center;background-color:#fafafa;border-width:0;box-shadow:none;column-gap:15px;display:grid;grid-template-columns:48px 1fr auto;grid-template-rows:repeat(2, auto);grid-template-areas:"image label delta" "image value delta";height:100%;outline:0;padding:21px 20px;text-align:start;width:100%}.wpforms-payments-overview-reports-statcard button:not(.disabled){cursor:pointer}.wpforms-payments-overview-reports-statcard button:not(.disabled).is-selected,.wpforms-payments-overview-reports-statcard button:not(.disabled):hover{background-color:#ffffff}.wpforms-payments-overview-reports-statcard button::before{align-self:center;background-size:contain;background-position:center;background-repeat:no-repeat;content:"";grid-area:image;height:48px;width:48px}.wpforms-payments-overview-reports-statcard .total-payments::before{background-image:url(../images/payments/icon-total-payments.svg)}.is-ready .wpforms-payments-overview-reports-statcard .total-payments.is-selected{border-color:#056aab;box-shadow:inset 0 3px 0 #056aab}.wpforms-payments-overview-reports-statcard .total-sales::before{background-image:url(../images/payments/icon-total-sales.svg)}.is-ready .wpforms-payments-overview-reports-statcard .total-sales.is-selected{border-color:#389547;box-shadow:inset 0 3px 0 #389547}.wpforms-payments-overview-reports-statcard .total-refunded::before{background-image:url(../images/payments/icon-total-refunded.svg)}.is-ready .wpforms-payments-overview-reports-statcard .total-refunded.is-selected{border-color:#50575e;box-shadow:inset 0 3px 0 #50575e}.wpforms-payments-overview-reports-statcard .total-subscription::before{background-image:url(../images/payments/icon-total-subscription.svg)}.is-ready .wpforms-payments-overview-reports-statcard .total-subscription.is-selected{border-color:#e27730;box-shadow:inset 0 3px 0 #e27730}.wpforms-payments-overview-reports-statcard .total-renewal-subscription::before{background-image:url(../images/payments/icon-total-subscription.svg)}.is-ready .wpforms-payments-overview-reports-statcard .total-renewal-subscription.is-selected{border-color:#e27730;box-shadow:inset 0 3px 0 #e27730}.wpforms-payments-overview-reports-statcard .total-coupons::before{background-image:url(../images/payments/icon-total-coupons.svg)}.is-ready .wpforms-payments-overview-reports-statcard .total-coupons.is-selected{border-color:#e27730;box-shadow:inset 0 3px 0 #e27730}.wpforms-payments-overview-reports-statcard .statcard-label{color:#787c82;font-size:14px;grid-area:label;line-height:17px}.wpforms-payments-overview-reports-statcard .statcard-value{color:#50575e;font-weight:600;font-size:22px;grid-area:value;line-height:27px}.wpforms-payments-overview-reports-statcard .statcard-value span{color:#a7aaad;font-weight:400}@media (max-width: 600px){.wpforms-payments-overview-reports-statcard .statcard-value{font-size:18px}}.wpforms-payments-overview-reports-statcard .statcard-delta{align-self:center;background-color:#eaeaeb;border-radius:2px;color:#50575e;font-weight:600;font-size:11px;grid-area:delta;line-height:13px}.wpforms-payments-overview-reports-statcard .statcard-delta.is-calculated{padding:5px 7px}.wpforms-payments-overview-reports-statcard .statcard-delta.is-calculated::after{content:"%"}.wpforms-payments-overview-reports-statcard .statcard-delta:is(.is-upward,.is-downward)::before{background-image:url(../images/payments/chevron.svg);background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:11px;margin-inline-end:5px;vertical-align:middle;width:11px}.wpforms-payments-overview-reports-statcard .statcard-delta.is-downward::before{transform:rotate(180deg)}.wpforms-payments-overview-reports-statcard .is-amount .statcard-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-payments-overview-reports-statcard .upsell .statcard-delta{background-image:url(../images/payments/star.svg);background-repeat:no-repeat;background-size:contain;width:25px;height:25px}.wpforms-payments-wrap-payments ul.subsubsub{margin:0;line-height:30px}.wpforms-payments-wrap-payments #wpforms-reset-filter{border-color:#c3c4c7;border-radius:4px;margin-top:0}.wpforms-payments-wrap-payments #wpforms-reset-filter .reset{text-decoration:none;margin-inline:3px}@media (max-width: 1279px) and (min-width: 783px){.wpforms-payments-wrap-payments .search-box{justify-content:flex-start;margin-block:10px;width:100%}.wpforms-payments-wrap-payments .search-box #wpforms-payments-search-input{flex-grow:unset}}@media (max-width: 782px){.wpforms-payments-wrap-payments .search-box{margin-top:10px}}.wpforms-payments-wrap-payments .tablenav .actions .button,.wpforms-payments-wrap-payments .tablenav .wpforms-tablenav-filters .button{font-size:14px;line-height:1.67}@media (max-width: 1279px) and (min-width: 783px){.wpforms-payments-wrap-payments .tablenav{display:flex;flex-wrap:wrap;gap:3px;height:auto}}@media (max-width: 1279px) and (min-width: 783px){.wpforms-payments-wrap-payments .tablenav-pages{margin-left:auto}}@media (max-width: 782px){.wpforms-payments-wrap-payments .tablenav-pages{margin-top:10px}}.wpforms-payments-wrap-payments .wpforms-tablenav-filters{display:inline-flex;flex-wrap:wrap;float:left;gap:6px;margin:0 0 9px}@media (max-width: 1279px) and (min-width: 783px){.wpforms-payments-wrap-payments .wpforms-tablenav-filters{order:-1;width:100%}}@media (max-width: 782px){.wpforms-payments-wrap-payments .wpforms-tablenav-filters{width:100%}.wpforms-payments-wrap-payments .wpforms-tablenav-filters .button{margin-bottom:0}}@media (max-width: 600px){.wpforms-payments-wrap-payments .wpforms-tablenav-filters>*{width:100%}}.wpforms-table-list-payments .payment-placeholder-text-none{color:#a7aaad}.wpforms-table-list-payments td.column-title{word-break:break-word}.wpforms-table-list-payments td.column-status{padding:10px 11px;width:1%}.wpforms-table-list-payments td.column-status .wpforms-help-tooltip{background-image:url(../images/payments/icon-info.svg);background-repeat:no-repeat;background-size:contain;width:11px;height:11px}@media (max-width: 1100px) and (min-width: 1025px){.wpforms-table-list-payments.has-many-columns td.column-form{max-width:7ch}}@media (max-width: 1024px) and (min-width: 783px){.wpforms-table-list-payments.has-many-columns .column-form{max-width:100%}}@media (min-width: 783px){.wpforms-table-list-payments tbody tr{height:44px}.wpforms-table-list-payments .column-form{max-width:240px}}.wpforms-payment-status{align-items:center;border-radius:2px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;line-height:15px;padding:4px 8px;white-space:nowrap}.wpforms-payment-status.status-active{background-color:#dbf2df;color:#008a20}.wpforms-payment-status.status-cancelled{background-color:#ededee;color:#50575e}.wpforms-payment-status.status-completed{background-color:#dbf2df;color:#008a20}.wpforms-payment-status.status-failed{background-color:#f7d6d6;color:#d63638}.wpforms-payment-status.status-pending{background-color:#faf2d5;color:#bd8600}.wpforms-payment-status.status-processed{background-color:#ededee;color:#50575e}.wpforms-payment-status.status-not-synced{background-color:#ededee;color:#50575e}.wpforms-payment-status.status-refunded{background-color:#ededee;color:#50575e}.wpforms-payment-status.status-partrefund{background-color:#ededee;color:#50575e}.column-subscription .wpforms-subscription-status,.column-subscription .payment-placeholder-text-none{white-space:nowrap}.column-subscription .wpforms-subscription-status::before,.column-subscription .payment-placeholder-text-none::before{align-self:center;background-size:contain;background-position:center;background-repeat:no-repeat;display:inline-block;content:"";height:14px;width:14px;margin-inline-end:10px;position:relative;top:3px;background-image:url(../images/payments/status/icon-n-a.svg)}.column-subscription .wpforms-subscription-status.status-active::before,.column-subscription .payment-placeholder-text-none.status-active::before{background-image:url(../images/payments/status/icon-active.svg)}.column-subscription .wpforms-subscription-status.status-cancelled::before,.column-subscription .payment-placeholder-text-none.status-cancelled::before{background-image:url(../images/payments/status/icon-cancelled.svg)}.column-subscription .wpforms-subscription-status.status-completed::before,.column-subscription .payment-placeholder-text-none.status-completed::before{background-image:url(../images/payments/status/icon-completed.svg)}.column-subscription .wpforms-subscription-status.status-failed::before,.column-subscription .payment-placeholder-text-none.status-failed::before{background-image:url(../images/payments/status/icon-failed.svg)}.column-subscription .wpforms-subscription-status.status-pending::before,.column-subscription .payment-placeholder-text-none.status-pending::before{background-image:url(../images/payments/status/icon-pending.svg)}.column-subscription .wpforms-subscription-status.status-processed::before,.column-subscription .payment-placeholder-text-none.status-processed::before{background-image:url(../images/payments/status/icon-processed.svg)}.column-subscription .wpforms-subscription-status.status-not-synced::before,.column-subscription .payment-placeholder-text-none.status-not-synced::before{background-image:url(../images/payments/status/icon-not-synced.svg)}.column-subscription .wpforms-subscription-status.status-refunded::before,.column-subscription .payment-placeholder-text-none.status-refunded::before{background-image:url(../images/payments/status/icon-refunded.svg)}.column-subscription .wpforms-subscription-status.status-partrefund::before,.column-subscription .payment-placeholder-text-none.status-partrefund::before{background-image:url(../images/payments/status/icon-partrefund.svg)}.wpforms-payments-viewing-test-mode{background-color:#fef5f0;border:1px solid rgba(226,119,48,0.5);border-radius:4px;box-shadow:0px 1px 1px rgba(0,0,0,0.05);color:#e27730;display:flex;font-weight:600;gap:6px;justify-content:center;margin-bottom:20px;padding:10px}.wpforms-payments-viewing-test-mode::before{background-image:url(../images/payments/icon-exclamation.svg);background-size:contain;content:'';height:16px;margin-top:1px;width:16px}.wpforms-payments-viewing-test-mode p{margin-block:0;line-height:17px}@media (max-width: 782px){body.wpforms_page_wpforms-payments #wpbody-content{padding-bottom:0}}body.rtl .wpforms-tablenav-filters{float:right}.wpforms-admin-plugin-landing.wpforms-admin-wrap{width:700px;margin:0 auto;padding:0}.wpforms-admin-plugin-landing.wpforms-admin-wrap *,.wpforms-admin-plugin-landing.wpforms-admin-wrap *::before,.wpforms-admin-plugin-landing.wpforms-admin-wrap *::after{box-sizing:border-box}.wpforms-admin-plugin-landing.wpforms-admin-wrap section{margin:50px 0}.wpforms-admin-plugin-landing.wpforms-admin-wrap p{font-size:15px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .top{text-align:center}.wpforms-admin-plugin-landing.wpforms-admin-wrap .top img{margin-bottom:50px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .top h1{font-size:26px;font-weight:500;margin-bottom:25px;padding:0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .top p{font-size:16px;line-height:22px;color:#2c3338;margin:0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .top .updated{display:none}.wpforms-admin-plugin-landing.wpforms-admin-wrap .bottom{text-align:center !important;margin-top:-40px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .bottom p{color:#50575e;margin:0;font-weight:600}.wpforms-admin-plugin-landing.wpforms-admin-wrap .notice{display:none !important}.wpforms-admin-plugin-landing.wpforms-admin-wrap .loader{margin:0 auto;position:relative;text-indent:-9999em;border-top:4px solid #969696;border-right:4px solid #969696;border-bottom:4px solid #969696;border-left:4px solid #404040;transform:translateZ(0);animation:load8 1.1s infinite linear;background-color:transparent}.wpforms-admin-plugin-landing.wpforms-admin-wrap .loader,.wpforms-admin-plugin-landing.wpforms-admin-wrap .loader:after{display:block;border-radius:50%;width:50px;height:50px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot{display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot .cont{display:inline-block;position:relative;min-width:315px;margin-top:0;padding:5px;background-color:#ffffff;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,0.07)}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot .cont img{display:block;max-width:100%}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot .cont .hover{position:absolute;opacity:0;height:100%;width:100%;top:0;left:0;border:5px solid #ffffff;background-color:rgba(0,0,0,0.15);background-image:url("../images/zoom.svg");background-repeat:no-repeat;background-position:center;background-size:50px;transition:all 0.3s}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot .cont:hover .hover{opacity:1;transition:all 0.3s}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot ul{margin:0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot ul li{position:relative;margin-bottom:20px;padding:0;padding-inline-start:24px;font-size:15px;line-height:18px;color:#50575e;text-align:start}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot ul li:before{content:'';display:inline-block;position:absolute;inset-inline-start:0;width:14px;height:14px;background-image:url("../images/page-plugin/arrow-right.svg");background-repeat:no-repeat;background-size:14px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .screenshot ul li:first-child{margin-top:0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step{display:flex;align-items:center;overflow:hidden;margin:0 0 50px 0;border-radius:6px;border:1px solid #dcdcde;background-color:#f6f6f6;box-shadow:0 2px 4px 0 rgba(0,0,0,0.07)}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step:last-child{margin-bottom:36px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step>*{vertical-align:middle}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .num{display:inline-block;position:relative;width:100px;height:50px;text-align:center}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .loader{margin-top:-54px;transition:all .3s;opacity:1}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step div{display:inline-block;width:calc(100% - 100px);background-color:#ffffff;padding:25px;border-left:1px solid #dcdcde;text-align:start}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step h2{color:#2c3338;font-size:24px;font-weight:500;line-height:normal;margin:0 0 10px 0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step p{font-size:16px;line-height:22px;color:#50575e;margin:0 0 15px 0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .error{font-size:14px;color:#d63638;margin-bottom:0}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .button{padding:11px 17px;min-width:180px;height:auto;line-height:1.2;text-align:center;font-size:16px;font-weight:500;transition:all .3s;border-radius:4px}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .button.grey{background:#f6f6f6;border:1px solid #8c8f94;box-shadow:none;text-shadow:none;color:#50575e}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .button.disabled{cursor:default}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .link{text-decoration:none}.wpforms-admin-plugin-landing.wpforms-admin-wrap .step .hidden{opacity:0;transition:all .3s}.wpforms-admin-plugin-landing.wpforms-admin-wrap .grey{opacity:0.5}#wpforms-admin-smtp.wpforms-admin-plugin-landing .screenshot ul li:before{background-image:url("../images/smtp/arrow-right.svg")}@media (max-width: 767px){.wpforms-admin-plugin-landing{width:auto}.wpforms-admin-plugin-landing .top img{max-width:245px}.wpforms-admin-plugin-landing .screenshot{flex-direction:column}.wpforms-admin-plugin-landing .screenshot .cont{min-width:auto;margin:auto}.wpforms-admin-plugin-landing .screenshot ul{display:block;margin-left:0;max-width:none}.wpforms-admin-plugin-landing .step{flex-direction:column}.wpforms-admin-plugin-landing .step .num{display:block;width:100%;height:auto;margin:15px 0}.wpforms-admin-plugin-landing .step div{display:block;width:100%;border-left:none;border-top:1px solid #dcdcde}.wpforms-admin-plugin-landing .step div .button{text-wrap:auto}}@-webkit-keyframes load8{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes load8{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.wpforms-success-icon,.wpforms-warning-icon,.wpforms-error-icon{display:inline-block;vertical-align:middle;background-size:contain;background-position:center;background-repeat:no-repeat;height:17px;width:17px;margin-right:10px;margin-top:-3px}.wpforms-success-icon{background-image:url(../images/check-circle.svg)}.wpforms-warning-icon{background-image:url(../images/exclamation-triangle-orange.svg);height:15px}.wpforms-error-icon{background-image:url(../images/exclamation-circle.svg)}#wpforms-settings .wpforms-specific-note-wrap{background-color:#fcf9e8;border-radius:6px;padding:15px;box-shadow:0 0 0 1px #c3c4c7,0 2px 4px 0 rgba(0,0,0,0.07);margin-right:60px}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-lightbulb{float:left;width:14px;padding-top:1px}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-lightbulb svg path{fill:#f0c33c}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-content{margin-inline-start:25px;color:#2c3338;font-size:15px;line-height:22px}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-content p{margin-top:0}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-content>p{margin-bottom:1em}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-content>p:last-child{margin-bottom:0}#wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-content .wpforms-strong{font-weight:500}#wpforms-settings .wpforms-admin-settings-form .wpforms-btn[type="submit"]{position:relative;z-index:2}#wpforms-settings .wpforms-toggle-control-status{text-transform:uppercase}#wpforms-settings .wpforms-learn-more{display:inline-block}#wpforms-settings .wpforms-learn-more:after{content:'';display:inline-block;width:14px;height:15px;background-image:url(../images/dashicons-arrow-right-alt.svg);background-size:13px 13px;background-position:center;background-repeat:no-repeat;margin-left:4px;position:relative;top:3px}@media (max-width: 463px){#wpforms-settings #wpforms-settings-connect-btn{margin-top:10px}}.rtl #wpforms-settings .wpforms-specific-note-wrap .wpforms-specific-note-lightbulb{float:right}.rtl .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper{margin-right:0;margin-left:20px}.rtl .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper input[type=radio]{margin:1px 0 0 10px}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{padding:0 0 30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row input[type=password]:disabled{background:#ffffff;opacity:0.5;border:1px solid #8c8f94}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:5px !important}.wpforms-admin-settings .wpforms-setting-row:last-of-type{padding-bottom:30px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:0 0 15px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:30px 0;border-top:1px solid #dcdcde}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:25px 0 15px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading.specific-note{border-top:none;padding:0 0 30px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading:first-of-type{border:none}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field p{line-height:20px}.wpforms-admin-settings .wpforms-setting-row.tools textarea{margin-top:22px}.wpforms-admin-settings .wpforms-setting-row.tools .wpforms-toggle-control-status{text-transform:uppercase}.wpforms-admin-settings .wpforms-setting-row.tools .choices{margin-bottom:0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]:disabled{background:#FFFFFF;opacity:0.5;border:1px solid #8C8F94;border-radius:3px;cursor:not-allowed}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .disabled-desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .disabled-desc{margin-top:15px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license{line-height:17px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license strong{color:#3c4349;font-weight:600}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper{display:inline-block;position:relative}@media (max-width: 447px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper{width:100%}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper i::after{background-repeat:no-repeat;background-size:contain;background-position:center;content:'';height:15.5px;position:absolute;pointer-events:none;right:10px;top:calc(50% - 7.75px);width:15.5px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper input:not([value=""]){padding-right:35px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper input:not([value=""]).wpforms-setting-license-is-valid+i::after{background-image:url(../images/check-circle.svg)}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper input:not([value=""]).wpforms-setting-license-is-invalid{border-color:#d63638;color:#d63638}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper input:not([value=""]).wpforms-setting-license-is-invalid+i::after{background-image:url(../images/exclamation-circle.svg)}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper.wpforms-setting-license-block-ui{pointer-events:none}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper.wpforms-setting-license-block-ui input{background-color:rgba(255,255,255,0.5)}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper.wpforms-setting-license-block-ui input[disabled]{color:rgba(51,51,51,0.5)}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-license-wrapper.wpforms-setting-license-block-ui input:not([value=""]):not([disabled]){color:rgba(214,54,56,0.5)}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-field{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-field p{line-height:20px;width:100%}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-field p:nth-child(n+2){margin-top:0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-field hr{margin:10px 0;width:100%}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license #wpforms-setting-license-key{margin-right:0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license #wpforms-setting-license-key[disabled]{pointer-events:none}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{color:#6a6f76}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type strong{text-transform:capitalize;color:#50575e}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:1px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]:focus{border-color:#8c8f94 !important}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]:focus:checked{border-color:#056aab !important}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]:checked{border-color:#056aab}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]:disabled{opacity:0.5;border:1px solid #8c8f94}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{display:inline-block;text-align:center}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-top:5px}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper{align-items:flex-start;display:inline-flex;margin-right:20px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper:hover input[type=radio]{border:1px solid #056aab}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper:hover input[type=radio]:checked{border-color:#056aab;box-shadow:0 0 0 1px #056aab}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper:hover input[type=radio]:disabled{box-shadow:none}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field .wpforms-settings-field-radio-wrapper input[type=radio]{flex-shrink:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field{display:flex;flex-direction:column;flex-wrap:wrap;gap:5px}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-geolocation-field-provider .wpforms-setting-field,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-captcha-provider .wpforms-setting-field{display:flex;gap:20px;flex-wrap:wrap}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-geolocation-field-provider .wpforms-setting-field,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-captcha-provider .wpforms-setting-field{gap:15px;flex-direction:row}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-geolocation-field-provider .wpforms-setting-field .wpforms-settings-field-radio-wrapper,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-captcha-provider .wpforms-setting-field .wpforms-settings-field-radio-wrapper{flex:0 0 166px;margin-right:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-geolocation-field-provider .wpforms-setting-field label,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-captcha-provider .wpforms-setting-field label{margin-top:0}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-geolocation-field-provider .wpforms-setting-field .desc,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-captcha-provider .wpforms-setting-field .desc{flex:0 0 100%;margin-top:10px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-geolocation-field-provider .wpforms-setting-field .desc,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio#wpforms-setting-row-captcha-provider .wpforms-setting-field .desc{margin-top:5px}}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-render-engine .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 12px 0;border:1px solid #c3c4c7;border-radius:6px}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-render-engine .wpforms-setting-field input[type=radio]{display:none}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-render-engine .wpforms-setting-field input[type=radio]:checked+label:before{box-shadow:0 0 0 2px #e27730;border:2px solid #ffffff}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-render-engine .wpforms-setting-field .option-classic:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-render-engine .wpforms-setting-field .option-modern:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field{margin-left:0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field input[type=radio]{display:none}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field input[type=radio]:checked+label{box-shadow:0 0 0 2px #e27730,0 2px 4px 0 rgba(0,0,0,0.15)}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field label{width:166px;height:180px;padding:30px;text-align:center;color:#2c3338;font-size:16px;font-weight:600;background-color:#fff;border-radius:4px;box-shadow:0 0 0 1px #c3c4c7;transition:box-shadow 0.05s}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field label:hover,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field label:focus{box-shadow:0 0 0 2px #50575e}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field label:before{content:"";display:block;width:100%;height:80px;margin:0 0 20px 0;background-position:center center;background-repeat:no-repeat;background-size:auto 80px}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field .option-hcaptcha:before{background-image:url(../images/settings-captcha-hcaptcha.svg)}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field .option-recaptcha:before{background-image:url(../images/settings-captcha-recaptcha.svg)}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field .option-turnstile:before{background-image:url(../images/settings-captcha-cloudflare.svg)}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field .option-none:before{background-image:url(../images/settings-captcha-none.svg)}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field .desc{margin-top:30px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field{gap:30px 0;flex-direction:row}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-captcha-provider .wpforms-setting-field label{margin-top:0}}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url a.wpforms-copy-to-clipboard,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url a.wpforms-copy-to-clipboard,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url a.wpforms-copy-to-clipboard,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url a.wpforms-copy-to-clipboard{border:1px solid #8c8f94;color:#50575e;height:35px;width:36px;display:inline-flex;align-content:center;flex-wrap:wrap;text-align:center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url a.wpforms-copy-to-clipboard span,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url a.wpforms-copy-to-clipboard span,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url a.wpforms-copy-to-clipboard span,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url a.wpforms-copy-to-clipboard span{text-align:center;font-size:17px;margin:3px 0 0 -1px}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url a.wpforms-copy-to-clipboard span.dashicons-yes-alt,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url a.wpforms-copy-to-clipboard span.dashicons-yes-alt,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url a.wpforms-copy-to-clipboard span.dashicons-yes-alt,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url a.wpforms-copy-to-clipboard span.dashicons-yes-alt{color:#008a20}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url input[type=text]:disabled,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url input[type=text]:disabled,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url input[type=text]:disabled,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url input[type=text]:disabled{cursor:copy;background:#ffffff;opacity:0.5;border:1px solid #8c8f94}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url p,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url p,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url p,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url p{margin:10px 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url p:first-of-type,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url p:first-of-type,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-stripe-webhook-endpoint-url p:first-of-type,.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-square-webhook-endpoint-url p:first-of-type{margin-top:0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-recaptcha-type .wpforms-setting-field{padding-top:10px}.wpforms-admin-settings .wpforms-setting-row .wpforms-captcha-preview .wpforms-captcha-turnstile iframe{display:block !important;position:relative !important;visibility:inherit !important}.wpforms-admin-settings .wpforms-setting-row .wpforms-captcha-container iframe{margin:0 0 8px}.wpforms-admin-settings .wpforms-setting-row .wpforms-captcha-preview .desc,.wpforms-admin-settings .wpforms-setting-row .wpforms-captcha-placeholder .desc{margin:0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;width:Min(400px, 100%)}.wpforms-admin-settings .wpforms-setting-row .wpforms-setting-field .wpforms-color-picker{padding-inline-start:35px;padding-inline-end:8px;color:#50575e;letter-spacing:-.5px;font-size:13px;margin:0}.wpforms-admin-settings .wpforms-setting-row .wpforms-setting-field .minicolors-input-swatch{top:9px;inset-inline-start:10px;height:18px;width:18px;border-radius:2px;overflow:hidden;border-width:0;background:#ffffff}.wpforms-admin-settings .wpforms-setting-row .wpforms-setting-field .minicolors-swatch-color{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15)}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns{display:flex;flex-wrap:wrap}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-label{float:none;align-self:stretch;flex:0 0 200px;color:#2c3338}@media (max-width: 767px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-label{flex:0 0 100%}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-field{margin:0;flex:1}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-columns{margin:0;display:flex;gap:20px;flex-wrap:wrap}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-column{flex-basis:400px}@media (max-width: 767px){.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-column{flex-basis:100%}}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-columns .wpforms-setting-column>*{width:100%}.wpforms-admin-settings .wpforms-setting-row.submit,.wpforms-admin-settings .wpforms-setting-row.upgrade_to_pro{margin:0;padding:25px 0;border-bottom:none}.wpforms-admin-settings .wpforms-setting-row h5{margin:0 0 20px 0;font-size:16px;font-weight:600}.wpforms-admin-settings .wpforms-setting-row h4{margin:0;font-size:18px;font-weight:600;line-height:normal;color:#1d2327}.wpforms-admin-settings .wpforms-setting-row h3{margin:0 0 20px 0;font-size:24px;font-weight:600}.wpforms-admin-settings .wpforms-setting-row p{margin:10px 0 0;font-size:14px;line-height:20px;color:#2c3338}.wpforms-admin-settings .wpforms-setting-row p.desc{color:#6a6f76;line-height:20px}.wpforms-admin-settings .wpforms-setting-row p.desc.wpforms-captcha-preview-desc{margin:8px 0 0 0}.wpforms-admin-settings .wpforms-setting-row p.discount-note{font-style:italic;color:#6a6f76}.wpforms-admin-settings .wpforms-setting-row p.discount-note strong{color:green}.wpforms-admin-settings .wpforms-setting-row span.wpforms-settings-warning{display:block;color:#d63638;font-weight:600;line-height:20px;margin-top:5px}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password],.wpforms-admin-settings .wpforms-setting-row input[type=number],.wpforms-admin-settings .wpforms-setting-row select{background-color:#ffffff;border:1px solid #8c8f94;border-radius:4px;box-shadow:none;color:#2c3338;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:36px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=number]:focus,.wpforms-admin-settings .wpforms-setting-row select:focus{border-color:#056aab !important}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password],.wpforms-admin-settings .wpforms-setting-row input[type=number],.wpforms-admin-settings .wpforms-setting-row select{width:300px}}@media (max-width: 447px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password],.wpforms-admin-settings .wpforms-setting-row input[type=number],.wpforms-admin-settings .wpforms-setting-row select{max-width:300px;width:100%}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:disabled{background:#ffffff;opacity:0.5;border:1px solid #8c8f94}.wpforms-admin-settings .wpforms-setting-row select{padding:7px 24px 7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-admin-settings .wpforms-setting-row input[type=number]{width:100px}.wpforms-admin-settings .wpforms-setting-row button{margin-inline-end:10px}.wpforms-admin-settings .wpforms-setting-row button.choices__button{margin-right:0}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px;color:#333}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap .choicesjs-select[multiple] option{padding:1.5px 0 0 0}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap select{max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{max-width:100%;width:100%}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap select{max-width:100%}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0 10px 0 0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{color:#2c3338;display:flex;font-weight:600;gap:10px;line-height:20px;margin-top:8px}.wpforms-admin-settings .wpforms-setting-row-toggle .wpforms-toggle-control{height:25px;padding-top:8px}.wpforms-admin-settings .wpforms-settings-row-system-information{padding-bottom:30px;border-bottom:1px solid #dcdcde;margin-bottom:30px}.wpforms-admin-settings .wpforms-settings-row-test-ssl,.wpforms-admin-settings .wpforms-settings-row-recreate-tables{padding-bottom:0 !important;margin:30px 0}.wpforms-admin-settings .wpforms-settings-row-test-ssl .notice,.wpforms-admin-settings .wpforms-settings-row-recreate-tables .notice{display:block;margin:20px 0 0 0;padding:12px 15px 12px 20px}.wpforms-admin-settings .wpforms-settings-row-test-ssl .pre-error,.wpforms-admin-settings .wpforms-settings-row-recreate-tables .pre-error{margin:20px 0 0 0}.wpforms-admin-settings .wpforms-settings-row-test-ssl #wpforms-ssl-verify,.wpforms-admin-settings .wpforms-settings-row-test-ssl #wpforms-recreate-tables,.wpforms-admin-settings .wpforms-settings-row-recreate-tables #wpforms-ssl-verify,.wpforms-admin-settings .wpforms-settings-row-recreate-tables #wpforms-recreate-tables{margin-top:20px}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:820px;line-height:20px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0;clear:both}}.wpforms-admin-settings #wpforms-settings-providers{margin-bottom:30px}.wpforms-admin-settings #wpforms-tools-entries-export-notice{position:relative;margin:revert;margin-bottom:20px;border-left:4px solid #72ade6}.wpforms-admin-settings #wpforms-tools-entries-export-notice button{margin-inline-end:0}.wpforms-admin-settings p.submit{margin:0;padding:30px 0 20px 0;border-top:1px solid #e4e4e4}.wpforms-admin-settings .wpforms-notice{display:block;margin:20px 0 -15px;margin-left:0 !important;margin-right:0 !important;background:#fff;border:1px solid #c3c4c7;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,0.04);padding:1px 12px}.wpforms-admin-settings .wpforms-notice.wpforms-error{border-left-color:#dc3232}.wpforms-admin-settings .wpforms-notice.notice-success{border-left-color:#00a32a}.wpforms-admin-settings .wpforms-notice p{margin:0.5em 0 !important;padding:2px;color:#3c434a}.wpforms-admin-settings .info-area,.wpforms-admin-settings .pre-error{display:block;width:100%;max-width:1000px;height:450px;padding:20px;border-radius:4px;border:1px solid #8c8f94;box-shadow:none;background:#ffffff;font-family:Menlo, Monaco, monospace;font-size:12px;color:#2c3338;white-space:pre;overflow:auto}.wpforms-admin-settings .info-area{margin:20px 0}.wpforms-admin-settings .pre-error{height:auto;max-height:250px;margin-bottom:20px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome, sans-serif;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome, sans-serif;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:11px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings .wpforms-file-upload label{display:flex;gap:10px;flex-wrap:wrap}.wpforms-admin-settings .wpforms-file-upload label .fld{margin-right:0;border:1px solid #8c8f94;line-height:20px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-file-upload label .fld{max-width:300px}}.wpforms-admin-settings #wpforms-importer-forms .wpforms-setting-row{padding:0 !important}.wpforms-admin-settings #wpforms-importer-forms .wpforms-setting-row p:first-child{margin:0 0 30px 0}.wpforms-admin-settings #wpforms-importer-forms .wpforms-setting-row .checkbox-multiselect-columns{margin-bottom:30px}.wpforms-admin-settings #wpforms-importer-forms .wpforms-setting-row .checkbox-multiselect-columns label.checked:before{color:#056aab}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-tools-entries-export h5{clear:both;margin:20px 0 10px 0}.wpforms-admin-settings #wpforms-tools-entries-export label{clear:both;float:left;margin:3px 0 3px 0}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-toggle-all{margin-bottom:10px}.wpforms-admin-settings #wpforms-tools-entries-export .choicesjs-select-wrap{position:relative}.wpforms-admin-settings #wpforms-tools-entries-export .choicesjs-select-wrap .choices{margin-bottom:0}.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-selectform-spinner{position:absolute;top:6px;right:-30px}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-tools-export-date-selector-container{position:relative;max-width:400px;width:100%}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-tools-export-date-selector-container .wpforms-date-selector{cursor:pointer}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-tools-export-date-selector-container .wpforms-clear-datetime-field{position:absolute;right:11px;bottom:10.5px;padding:0;border:none;background-color:transparent;margin:0;color:#a7aaad;cursor:pointer}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-tools-export-date-selector-container .wpforms-clear-datetime-field:hover{color:#d63638}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-tools-export-date-selector-container .wpforms-clear-datetime-field i{font-size:16px}.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-options-search .wpforms-search-box-field{width:200px}.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-options-search .wpforms-search-box-comparison{width:140px}.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-options-search .wpforms-search-box-term{width:300px}@media (max-width: 782px){.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-options-search .wpforms-search-box-field,.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-options-search .wpforms-search-box-comparison,.wpforms-admin-settings #wpforms-tools-entries-export #wpforms-tools-entries-export-options-search .wpforms-search-box-term{display:block;width:300px;margin-bottom:10px}}.wpforms-admin-settings #wpforms-tools-entries-export section{margin-top:20px}.wpforms-admin-settings #wpforms-tools-entries-export iframe{width:0;height:0;visibility:hidden}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-btn-text{opacity:1;transition:all .5s}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-btn-spinner{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);opacity:0;transition:all .5s}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-btn-spinner-on{cursor:default;opacity:0.75;position:relative}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-btn-spinner-on .wpforms-btn-text{opacity:0 !important;transition:all .5s}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-btn-spinner-on .wpforms-btn-spinner{opacity:1 !important;transition:all .5s}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-btn-spinner-on:hover{background-color:#e27730;border-color:#e27730}.wpforms-admin-settings #wpforms-tools-entries-export .wpforms-tools-entries-export-notice-warning{background:#ffffff;border-style:solid;border-color:#f0c33c;border-width:0 0 0 4px;box-shadow:0 1px 1px rgba(0,0,0,0.04);line-height:1.5em;margin:10px 0 0 0;padding:10px}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px;margin-top:0}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:#dc3232}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}.wpforms-admin-settings .settings-lite-cta{background-color:#ffffff;border:1px solid #dcdcde;padding:25px 20px;margin:10px 0 0 0;position:relative}.wpforms-admin-settings .settings-lite-cta .dismiss{position:absolute;top:10px;right:10px;color:#a7aaad;font-size:16px}.wpforms-admin-settings .settings-lite-cta .dismiss:hover{color:#d63638}.wpforms-admin-settings .settings-lite-cta h5{margin:0 0 16px;font-size:18px;font-weight:700;color:#1d2327}.wpforms-admin-settings .settings-lite-cta h6{font-weight:700;font-size:14px;margin:0 0 16px}.wpforms-admin-settings .settings-lite-cta p{font-size:14px;margin:0 0 16px;color:#2c3338}.wpforms-admin-settings .settings-lite-cta p:last-of-type{margin:0}.wpforms-admin-settings .settings-lite-cta p a{color:#e27730}.wpforms-admin-settings .settings-lite-cta p a:hover{color:#b85a1b}.wpforms-admin-settings .settings-lite-cta ul{margin:0;padding:0;width:50%;float:left}@media (max-width: 600px){.wpforms-admin-settings .settings-lite-cta ul{width:100%;float:none}}.wpforms-admin-settings .settings-lite-cta ul li{margin:0;padding:0 0 2px 16px;color:#555;font-size:14px;position:relative}.wpforms-admin-settings .settings-lite-cta ul li:before{content:'+';position:absolute;top:-1px;left:0}.wpforms-admin-settings .settings-lite-cta .list{margin:0 0 16px 0;overflow:auto;max-width:900px}.wpforms-admin-settings .settings-lite-cta .green{color:#218900;font-weight:700}.wpforms-admin-settings .settings-lite-cta .fa-star{color:#ff982d}.wpforms-admin-settings .tablenav .tablenav-pages a,.wpforms-admin-settings .tablenav-pages-navspan{min-width:28px;height:auto}.rtl .wpforms-admin-settings .wpforms-setting-field{margin:0 200px 0 0}@media (max-width: 781px){.rtl .wpforms-admin-settings .wpforms-setting-field{margin:0;clear:both}}.rtl .wpforms-admin-settings .wpforms-setting-label{float:right}.rtl .wpforms-admin-settings #wpforms-tools-entries-export label{float:right}.wpforms-admin-wrap .wpforms-admin-settings .notice{margin-left:0 !important;margin-right:0 !important}#wpforms-tools.wpforms-tools-tab-import .wpforms-setting-row p:last-of-type,#wpforms-tools.wpforms-tools-tab-export .wpforms-setting-row p:last-of-type{margin-bottom:20px}#wpforms-tools.wpforms-tools-tab-import .wpforms-setting-row #wpforms-import,#wpforms-tools.wpforms-tools-tab-import .wpforms-setting-row #wpforms-import-other,#wpforms-tools.wpforms-tools-tab-import .wpforms-setting-row #wpforms-export-form,#wpforms-tools.wpforms-tools-tab-import .wpforms-setting-row #wpforms-export-template,#wpforms-tools.wpforms-tools-tab-export .wpforms-setting-row #wpforms-import,#wpforms-tools.wpforms-tools-tab-export .wpforms-setting-row #wpforms-import-other,#wpforms-tools.wpforms-tools-tab-export .wpforms-setting-row #wpforms-export-form,#wpforms-tools.wpforms-tools-tab-export .wpforms-setting-row #wpforms-export-template{margin-top:20px}#wpforms-tools.wpforms-tools-tab-import .wpforms-setting-row:last-of-type,#wpforms-tools.wpforms-tools-tab-export .wpforms-setting-row:last-of-type{padding-bottom:0}#wpforms-tools.wpforms-tools-tab-import .wpforms-settings-row-divider,#wpforms-tools.wpforms-tools-tab-export .wpforms-settings-row-divider{padding-bottom:30px;border-bottom:1px solid #dcdcde;margin-bottom:30px}#wpforms-tools.wpforms-tools-tab-import .wpforms-btn[aria-disabled="true"],#wpforms-tools.wpforms-tools-tab-export .wpforms-btn[aria-disabled="true"]{opacity:.5;pointer-events:none}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content h1{margin:0;padding:5px 0 0 0;font-size:18px;font-weight:600;line-height:normal;color:#101517}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content p{margin:10px 0 0 0;font-size:14px;font-weight:400;font-style:normal;line-height:20px;color:#2c3338}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content .wrap>p:last-of-type{margin-bottom:20px}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content #wpforms-reset-filter{margin-top:0}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content .search-box{margin:0 0 11px 0}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content .tablenav.top{padding:0;margin:11px 0}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content .tablenav.top .tablenav-pages{margin:0}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content .wrap{margin:0}#wpforms-tools.wpforms-tools-tab-action-scheduler .wpforms-admin-content .subsubsub{margin:10px 0 5px}@media screen and (max-width: 782px){#wpforms-tools.wpforms-tools-tab-action-scheduler .search-box{position:relative;bottom:auto;width:100%;height:auto;clear:both}}#wpforms-tools .wp-list-table{border-radius:4px;border-color:#ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,0.05)}#wpforms-tools .wp-list-table.striped tbody>:nth-child(odd){background-color:#f6f6f6}#wpforms-tools .wp-list-table .column-primary a strong{font-weight:600}@media (max-width: 781px){#wpforms-tools.wpforms-tools-tab-logs table.wp-list-table td.column-primary.hidden,#wpforms-tools.wpforms-tools-tab-action-scheduler table.wp-list-table td.column-primary.hidden{display:block}#wpforms-tools.wpforms-tools-tab-logs table.wp-list-table th.column-primary.hidden,#wpforms-tools.wpforms-tools-tab-action-scheduler table.wp-list-table th.column-primary.hidden{display:table-cell}}@media (max-width: 781px){#wpforms-tools.wpforms-tools-tab-logs .tablenav .tablenav-pages a,#wpforms-tools.wpforms-tools-tab-logs .tablenav-pages-navspan,#wpforms-tools.wpforms-tools-tab-action-scheduler .tablenav .tablenav-pages a,#wpforms-tools.wpforms-tools-tab-action-scheduler .tablenav-pages-navspan{min-width:44px;padding:12px 8px;font-size:18px;line-height:1}}.wpforms-admin-settings-access .choices[aria-expanded="false"] .choices__inner{max-height:36px}#wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}#wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}#wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}#wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}#wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}#wpforms-settings-providers .wpforms-settings-provider-logo img{background:#fff;border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}#wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}#wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}#wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}#wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;height:36px;border:1px solid #83c11f;border-radius:4px;font-size:16px;position:absolute;top:28px;right:0;gap:10px;align-items:center;justify-content:center;display:none}#wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:flex}#wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}#wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px;display:flex;justify-content:space-between;flex-wrap:wrap}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li .wpforms-alert{flex-basis:100%}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li .wpforms-alert .wpforms-alert-buttons-constant-contact-v3 .wpforms-constant-contact-v3-auth i{padding-inline-end:5px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label,#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date,#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:initial;overflow:hidden;text-overflow:ellipsis}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{flex:40%;padding-inline-end:10px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;flex:40%}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{flex:20%;padding-inline-start:10px;text-align:right}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #2271b1}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px;line-height:1.3}#wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,#wpforms-settings-providers .wpforms-settings-provider-accounts-connect-fields,#wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect p .wpforms-btn i,#wpforms-settings-providers .wpforms-settings-provider-accounts-connect-fields .wpforms-btn i,#wpforms-settings-providers .wpforms-settings-provider-accounts p .wpforms-btn i{padding-inline-end:5px}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect form .wpforms-settings-provider-accounts-connect-general-description{margin-bottom:10px;font-weight:600}@media (max-width: 640px){#wpforms-settings-providers .wpforms-settings-provider-info h3{margin-inline-end:36px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:initial;overflow:hidden;text-overflow:ellipsis;line-height:24px;margin-block-end:6px}#wpforms-settings-providers .wpforms-settings-provider-accounts{margin-left:40px;margin-top:15px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul .wpforms-clear:before,#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul .wpforms-clear:after{content:none}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label,#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date,#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{width:auto}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{width:100%;max-width:400px}#wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{width:26px;height:26px;top:16px}#wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator span{display:none}}.rtl #wpforms-settings-providers .wpforms-settings-provider-logo{float:right}.rtl #wpforms-settings-providers .wpforms-settings-provider-logo .fa{right:10px;left:auto}.rtl #wpforms-settings-providers .wpforms-settings-provider-logo img{margin:0 40px 0 0}.rtl #wpforms-settings-providers .wpforms-settings-provider-info{margin:0 160px 0 0}.rtl #wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{right:auto;left:0}.rtl #wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 160px 0 0}.rtl #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:right}.rtl #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{float:right}.rtl #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:left}.wpforms-card-image-group .wpforms-setting-field{display:grid;gap:20px;grid-template-columns:repeat(auto-fit, 155px);max-width:100%}.option-default .wpforms-card-image-overlay{background-image:url(../images/email/template-classic.svg)}.option-classic .wpforms-card-image-overlay{background-image:url(../images/email/template-classic.svg)}.option-compact .wpforms-card-image-overlay{background-image:url(../images/email/template-compact.svg)}.option-modern .wpforms-card-image-overlay{background-image:url(../images/email/template-modern.svg)}.option-elegant .wpforms-card-image-overlay{background-image:url(../images/email/template-elegant.svg)}.option-tech .wpforms-card-image-overlay{background-image:url(../images/email/template-tech.svg)}.option-none .wpforms-card-image-overlay{background-image:url(../images/email/template-plaintext.svg)}.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-field{display:grid;gap:10px;justify-content:start;justify-items:start}@media (min-width: 601px){.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-field :where(.desc,img){grid-column:1/4 span}}.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-field .desc{margin:0}.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-field .wpforms-btn{white-space:normal}.wpforms-admin-settings-email .wpforms-email-header-image.wpforms-setting-row .wpforms-setting-field img{margin-bottom:10px;width:auto}.wpforms-admin-settings-email .wpforms-email-header-image input[type="text"]{margin:0}@media (min-width: 601px){.wpforms-admin-settings-email .wpforms-email-header-image input[type="text"]{padding-inline-end:0;width:242px}}@media (max-width: 600px){.wpforms-admin-settings-email .wpforms-email-header-image input[type="text"]{max-width:300px}}.wpforms-admin-settings-email .wpforms-email-header-image .choices{margin-bottom:0;width:100%}@media (min-width: 601px){.wpforms-admin-settings-email .wpforms-email-header-image .choices{grid-column:1;grid-row:2}}@media (min-width: 961px){.wpforms-admin-settings-email .wpforms-email-header-image .choices{min-width:200px}}@media (max-width: 600px){.wpforms-admin-settings-email .wpforms-email-header-image .choices{max-width:300px}}.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-remove-image{background-color:#f6f7f7;color:#d63638;margin:0}.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-remove-image:hover{background-color:#d63638;border-color:#d63638;color:#ffffff}.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-remove-image:is(:focus-visible,:focus){box-shadow:0 0 0 1px #b32d2e;outline:0}.wpforms-admin-settings-email .wpforms-email-header-image .choices,.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-field input,.wpforms-admin-settings-email .wpforms-email-header-image .wpforms-setting-remove-image,.wpforms-admin-settings-email .wpforms-email-header-image [name="email-header-image-size"]{display:none}.wpforms-admin-settings-email .wpforms-email-header-image.has-external-image-url input[value]:not([value=""]){display:block}.wpforms-admin-settings-email .wpforms-email-header-image img+input+.choices{display:block}.wpforms-admin-settings-email .wpforms-email-header-image img+input+.choices+.wpforms-setting-remove-image{display:block}.wpforms-admin-settings-email .wpforms-email-header-image img+input+.choices+.wpforms-setting-remove-image+.wpforms-setting-upload-image{display:none}.wpforms-admin-settings-email .wpforms-email-header-image img+input+.wpforms-setting-remove-image{display:block}.wpforms-admin-settings-email .wpforms-email-header-image img+input+.wpforms-setting-remove-image+.wpforms-setting-upload-image{display:none}@media (max-width: 1280px) and (min-width: 601px){.wpforms-admin-settings-email .wpforms-email-header-image.has-external-image-url .wpforms-setting-remove-image{grid-column:1/4 span;grid-row:3}}.wpforms-admin-settings-email .wpforms-email-header-image:not([class*="has-image-size"]) img{height:0}.wpforms-admin-settings-email .wpforms-email-header-image.has-image-size-small img{max-height:120px;max-width:Min(280px, 100%)}.wpforms-admin-settings-email .wpforms-email-header-image.has-image-size-small img[style*="background-color"]{padding:20px;border-radius:4px}.wpforms-admin-settings-email .wpforms-email-header-image.has-image-size-medium img{max-height:180px;max-width:Min(410px, 100%)}.wpforms-admin-settings-email .wpforms-email-header-image.has-image-size-medium img[style*="background-color"]{padding:30px;border-radius:4px}.wpforms-admin-settings-email .wpforms-email-header-image.has-image-size-large img{max-height:240px;max-width:Min(580px, 100%)}.wpforms-admin-settings-email .wpforms-email-header-image.has-image-size-large img[style*="background-color"]{padding:40px;border-radius:4px}.wpforms-admin-settings-email .wpforms-setting-row [class^="notice-"]{background-color:#ffffff;border:1px solid #c3c4c7;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,0.04);padding:11px 15px}.wpforms-admin-settings-email .wpforms-setting-row [class^="notice-"] p{margin:0;line-height:18px}.wpforms-admin-settings-email .wpforms-setting-row .notice-info{border-left-color:#056aab}.wpforms-admin-settings-email .wpforms-setting-row .notice-warning{border-left-color:#dba617}.wpforms-admin-settings-email .email-appearance-mode-toggle .wpforms-setting-field{padding-top:8px}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme.legacy-template .notice-warning,.wpforms-admin-settings-email .wpforms-setting-row-color_scheme.education-modal .notice-warning{display:none}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .notice-warning{margin-top:20px;max-width:820px}@media (min-width: 783px){.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .notice-warning{margin-left:200px}}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field{display:grid;max-width:400px;row-gap:10px}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field label{color:#6a6f76}@media (min-width: 601px){.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field label{grid-row:2}}@media (max-width: 600px){.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field label:not(:last-child){padding-bottom:10px}}@media (min-width: 601px){.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field{grid-template-columns:repeat(4, 1fr)}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .wpforms-color-picker{border-color:transparent;width:100%}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .minicolors{border:1px solid #8c8f94}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .minicolors:first-of-type{border-end-start-radius:3px;border-start-start-radius:3px}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .minicolors:last-of-type{border-end-end-radius:3px;border-start-end-radius:3px}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .minicolors:not(:first-of-type){border-inline-start-width:0}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .minicolors:not(:first-of-type) .wpforms-color-picker{border-end-start-radius:0;border-start-start-radius:0}.wpforms-admin-settings-email .wpforms-setting-row-color_scheme .wpforms-setting-field .minicolors:not(:last-of-type) .wpforms-color-picker{border-end-end-radius:0;border-start-end-radius:0}}.wpforms-admin-settings-email .wpforms-setting-row.legacy-template,.wpforms-admin-settings-email .wpforms-setting-row.education-modal{width:max-content}.wpforms-admin-settings-email .wpforms-setting-row.legacy-template .minicolors,.wpforms-admin-settings-email .wpforms-setting-row.legacy-template .choicesjs-select-wrap,.wpforms-admin-settings-email .wpforms-setting-row.legacy-template.email-appearance-mode-toggle .wpforms-settings-field-radio-wrapper,.wpforms-admin-settings-email .wpforms-setting-row.education-modal .minicolors,.wpforms-admin-settings-email .wpforms-setting-row.education-modal .choicesjs-select-wrap,.wpforms-admin-settings-email .wpforms-setting-row.education-modal.email-appearance-mode-toggle .wpforms-settings-field-radio-wrapper{opacity:.5;pointer-events:none}.wpforms-admin-settings-email .wpforms-setting-row.legacy-template label{pointer-events:none}.wpforms-admin-settings-email .email-light-mode.wpforms-hide,.wpforms-admin-settings-email .email-dark-mode.wpforms-hide{display:none !important}.wpforms-admin-settings-payments .wpforms-admin-settings-form #wpforms-setting-row-currency .choices.is-open.is-flipped .choices__list--dropdown .choices__list{max-height:200px}.wpforms-admin-settings-payments .wpforms-setting-row:last-of-type{border-bottom:none}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-stripe-webhooks-communication .wpforms-setting-field,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-stripe-api-version .wpforms-setting-field,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-authorize_net-connection-status-live .wpforms-setting-field,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-authorize_net-connection-status-test .wpforms-setting-field{margin-top:8px}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-connection-status-sandbox .wpforms-square-connected,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-connection-status-production .wpforms-square-connected{margin-top:8px}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-connection-status-sandbox .wpforms-square-connected .wpforms-notice.notice-error,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-connection-status-production .wpforms-square-connected .wpforms-notice.notice-error{border-left-color:#d63638;margin:10px 0}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-id-sandbox,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-id-production{padding-bottom:0}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-id-sandbox.location-error .choices__inner,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-id-production.location-error .choices__inner{border-color:#d63638;box-shadow:0 0 0 1px #d63638}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-id-sandbox.location-error .choices__list--dropdown,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-id-production.location-error .choices__list--dropdown{border-color:#d63638;box-shadow:0 1px 0 1px #d63638}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-status-sandbox .wpforms-notice.notice-error,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-location-status-production .wpforms-notice.notice-error{border-left-color:#d63638}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-enabled{padding-bottom:10px}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-connect-status-sandbox,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-connect-status-production{padding-bottom:0}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-connect-status-sandbox .wpforms-notice.notice-error,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-connect-status-production .wpforms-notice.notice-error{margin:0 0 10px 0;border-left-color:#d63638}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-communication-status{padding-bottom:0}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-square-webhooks-communication-status .wpforms-notice.notice-warning{margin:-20px 0 20px 0;border-left-color:#036aab}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-paypal-commerce-connection-status-live p:not(.desc),.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-paypal-commerce-connection-status-sandbox p:not(.desc){margin-top:0}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-paypal-commerce-connection-status-live .wpforms-paypal-commerce-connected,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-paypal-commerce-connection-status-sandbox .wpforms-paypal-commerce-connected{display:block;margin-top:8px}.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-paypal-commerce-connection-status-live .wpforms-paypal-commerce-connected p,.wpforms-admin-settings-payments .wpforms-setting-row#wpforms-setting-row-paypal-commerce-connection-status-sandbox .wpforms-paypal-commerce-connected p{margin-top:10px}.wpforms-admin-settings-payments p.submit{border-top:1px solid #e4e4e4}.wpforms-admin-settings-payments .wpforms-status{display:flex;align-items:center;gap:10px}.wpforms-admin-settings-payments .wpforms-status:before{background-size:contain;background-position:center;background-repeat:no-repeat;content:"";height:17px;width:17px}.wpforms-admin-settings-payments .wpforms-status.wpforms-connected:before{background-image:url(../images/check-circle.svg)}.wpforms-admin-settings-payments .wpforms-status.wpforms-disconnected:before{background-image:url(../images/exclamation-circle.svg)}.wpforms-admin-settings-payments .wpforms-status.wpforms-warning:before{background-image:url(../images/exclamation-triangle.svg)}.wpforms-admin-settings-payments .wpforms-setting-row-toggle[id$="-sandbox-mode"] input[type=checkbox]:checked+label.wpforms-toggle-control-icon,.wpforms-admin-settings-payments .wpforms-setting-row-toggle[id$="-test-mode"] input[type=checkbox]:checked+label.wpforms-toggle-control-icon{background-color:#d63638}.wpforms-admin-settings-payments .wpforms-setting-row-toggle[id$="-sandbox-mode"] input[type=checkbox]:checked+label.wpforms-toggle-control-icon:hover,.wpforms-admin-settings-payments .wpforms-setting-row-toggle[id$="-test-mode"] input[type=checkbox]:checked+label.wpforms-toggle-control-icon:hover{background-color:#b32d2e}.wpforms-admin-settings-payments .wpforms-setting-row-toggle[id$="-sandbox-mode"] input[type=checkbox]:checked:focus+label.wpforms-toggle-control-icon,.wpforms-admin-settings-payments .wpforms-setting-row-toggle[id$="-test-mode"] input[type=checkbox]:checked:focus+label.wpforms-toggle-control-icon{box-shadow:0 0 0 1px #ffffff, 0 0 0 2px #d63638}body div.jconfirm .jconfirm-box-container .jconfirm-box .error.wpforms-square-webhooks-connect-error{margin-top:10px !important}body div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text]#wpforms-square-personal-access-token{margin-top:20px !important}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .wpforms-btn{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:flex;width:50%;margin:0 0 8px 0;padding:0;gap:5px}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding:20px 0 0 20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}.wpforms-wpcode{display:grid;grid-template-columns:1fr}.wpforms-wpcode .wpforms-wpcode-container{position:relative}.wpforms-wpcode .wpforms-wpcode-blur{filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}@media (max-width: 782px) and (min-width: 651px){.wpforms-wpcode .wpforms-wpcode-blur #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet{display:none}.wpforms-wpcode .wpforms-wpcode-blur #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet:nth-child(-n+4){display:flex}}@media (max-width: 650px){.wpforms-wpcode .wpforms-wpcode-blur #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet{display:none}.wpforms-wpcode .wpforms-wpcode-blur #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet:nth-child(-n+2){display:flex}}.wpforms-wpcode .wpforms-wpcode-popup{z-index:100;justify-self:center;align-self:start;margin:80px 0 0 0;height:fit-content;width:90%;max-width:730px;display:flex;padding:40px;flex-direction:column;align-items:center;border-radius:6px;background:#ffffff;box-shadow:0 5px 60px 0 rgba(0,0,0,0.2)}.wpforms-wpcode .wpforms-wpcode-popup .wpforms-wpcode-popup-title{color:#1d2327;text-align:center;width:100%;font-size:22px;font-weight:500;line-height:24px;margin-bottom:15px}.wpforms-wpcode .wpforms-wpcode-popup .wpforms-wpcode-popup-description{text-align:center;width:100%;color:#50575e;font-size:16px;font-weight:400;line-height:24px;margin-bottom:30px}.wpforms-wpcode .wpforms-wpcode-popup .wpforms-wpcode-popup-button{margin-bottom:15px}.wpforms-wpcode .wpforms-wpcode-popup .wpforms-wpcode-popup-link{color:#6a6f76;text-align:center;font-size:14px;font-weight:400;line-height:20px;text-decoration-line:underline}.wpforms-wpcode .wpforms-wpcode-popup .wpforms-wpcode-popup-link:hover{color:#2c3338}.wpforms-wpcode .wpforms-wpcode-blur,.wpforms-wpcode .wpforms-wpcode-popup{grid-row:1;grid-column:1}.wpforms-wpcode .wpforms-wpcode-header{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid #dcdcde}@media (max-width: 599px){.wpforms-wpcode .wpforms-wpcode-header{flex-direction:column;align-items:flex-start}}.wpforms-wpcode .wpforms-wpcode-header .wpforms-wpcode-header-search{position:relative;margin-left:30px}.wpforms-wpcode .wpforms-wpcode-header .wpforms-wpcode-header-search:before{font:normal normal normal 14px/1 FontAwesome, sans-serif;content:"\f002";color:#a7aaad;padding:12px;font-size:16px;left:0;position:absolute;top:50%;transform:translateY(-50%)}@media (max-width: 599px){.wpforms-wpcode .wpforms-wpcode-header .wpforms-wpcode-header-search{width:100%;margin-top:20px;margin-left:0}}.wpforms-wpcode .wpforms-wpcode-header #wpforms-wpcode-snippet-search{width:250px;height:36px;padding-left:30px}@media (max-width: 599px){.wpforms-wpcode .wpforms-wpcode-header #wpforms-wpcode-snippet-search{width:100%}}.wpforms-wpcode #wpforms-wpcode-snippets-list .list{display:grid;grid-template-columns:repeat(auto-fill, minmax(350px, 1fr));grid-gap:20px}@media (max-width: 599px){.wpforms-wpcode #wpforms-wpcode-snippets-list .list{grid-template-columns:repeat(auto-fill, minmax(280px, 1fr))}}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet{margin:0;height:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;align-items:flex-start;border-radius:6px;border:1px solid #c3c4c7;background:#ffffff;box-shadow:0 2px 4px 0 rgba(0,0,0,0.07)}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-header{width:100%;padding:20px}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-title{margin:0;padding-bottom:5px;color:#2c3338;font-size:16px;font-style:normal;font-weight:500;line-height:22px;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-note{color:#6a6f76;font-size:14px;font-weight:400;line-height:18px}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-footer{width:100%;display:flex;justify-content:space-between;align-items:center;background:#f6f6f6;padding:20px}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-badge{color:#008a20;font-size:10px;font-weight:700;line-height:10px;letter-spacing:0.5px;text-transform:uppercase}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-badge.wpforms-wpcode-installing-in-progress{color:#a7aaad}.wpforms-wpcode #wpforms-wpcode-snippets-list .list .wpforms-wpcode-snippet .wpforms-wpcode-snippet-button{text-align:center}.wpforms-wpcode #wpforms-wpcode-no-results{display:none;font-size:14px} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin/admin-form-templates.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin/admin-form-templates.min.css new file mode 100644 index 0000000..1250bc8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin/admin-form-templates.min.css @@ -0,0 +1 @@ +.wpforms-admin-page .wpforms-btn{border-width:1px;border-style:solid;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-in}.wpforms-admin-page .wpforms-btn.inactive{background-color:#c3c4c7;border-color:#c3c4c7;color:#3c434a;cursor:no-drop}.wpforms-admin-page .wpforms-btn .wpforms-button-icon,.wpforms-admin-page .wpforms-btn i{margin-inline-end:10px !important}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-sm{font-size:13px;font-weight:500;padding:0 10px;height:32px;line-height:30px}.wpforms-admin-page .wpforms-btn-md{font-size:14px;font-weight:600;line-height:17px;padding:10px 15px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#ffffff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#cd6622;border-color:#cd6622;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue{background-color:#036aab;border-color:#036aab;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue:hover{background-color:#215d8f;border-color:#215d8f;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue.wpforms-settings-keyword-filter-save-changes{font-weight:400;margin-right:8px}.wpforms-admin-page .wpforms-btn-blue.wpforms-settings-keyword-filter-save-changes .wpforms-loading-spinner{margin-left:0;margin-right:5px}.wpforms-admin-page .wpforms-btn-grey{background-color:#e8e9e9;border-color:#c3c4c7;color:#6a6f76}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#c3c4c7;border-color:#c3c4c7;color:#3c434a}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f6f7f7;border-color:#c3c4c7;color:#6a6f76}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#e8e9e9;border-color:#c3c4c7;color:#3c434a}.wpforms-admin-page .wpforms-btn-blue-borders,.wpforms-admin-page .wpforms-btn-light-grey-blue-borders{background-color:#f6f7f7;border-color:currentColor;color:#036aab}.wpforms-admin-page .wpforms-btn-blue-borders:hover,.wpforms-admin-page .wpforms-btn-light-grey-blue-borders:hover{background-color:#e8e9e9;color:#215d8f}.wpforms-admin-page .wpforms-btn-blue-borders:focus,.wpforms-admin-page .wpforms-btn-light-grey-blue-borders:focus{box-shadow:0 0 0 1px #215d8f;outline:0}.wpforms-admin-page .wpforms-btn-red-borders{background-color:#fcf0f1;border-color:currentColor;color:#d63638}.wpforms-admin-page .wpforms-btn-red-borders:focus{box-shadow:0 0 0 1px #b32d2e;outline:0}.wpforms-admin-page .wpforms-btn-red-borders:hover{color:#b32d2e;background-color:#f9e1e1}.wpforms-admin-page .wpforms-btn-purple{background-color:#faf5fe;border-color:#7a30e2;color:#7a30e2}.wpforms-admin-page .wpforms-btn-purple:hover,.wpforms-admin-page .wpforms-btn-purple:focus{background-color:#f5e9ff;border-color:#5c24a9;color:#5c24a9}.wpforms-admin-page .wpforms-btn-purple.wpforms-help-tooltip{color:#7a30e2}.wpforms-admin-page .wpforms-btn-purple-dark{background-color:#7a30e2;border-color:#7a30e2;color:#ffffff}.wpforms-admin-page .wpforms-btn-purple-dark:hover,.wpforms-admin-page .wpforms-btn-purple-dark:focus{background-color:#5c24a9;border-color:#5c24a9;color:#ffffff}.wpforms-admin-page .wpforms-dismiss-button{background:none;border:none;color:#b0b2b3;cursor:pointer;padding:3px}.wpforms-admin-page .wpforms-dismiss-button:hover{color:#6a6f76}.wpforms-admin-page .wpforms-dismiss-button:before{background:0 0;content:"\f153";display:block;font:normal 16px/16px dashicons, sans-serif;height:16px;speak:none;text-align:center;width:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms-admin-page .wpforms-dismiss-button.dashicons-no-alt:before{content:"\f335"}.wpforms-admin-page .wpforms-disabled{cursor:default;opacity:.5;pointer-events:none}.wpforms-admin-page .wpforms-inactive{cursor:default;opacity:.5}.wpforms-admin-page .wpforms-inactive:hover{pointer-events:none}.wpforms-admin-empty-state-container{color:#50575e;font-style:normal;padding:30px;text-align:center}.wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url(../images/empty-states/waving-hand-emoji.png);background-position:0 0;background-repeat:no-repeat;background-size:24px 24px;display:inline-block;padding-left:34px}.wpforms-admin-empty-state-container h2{color:#1d2327;font-family:inherit;font-size:24px;font-weight:600;line-height:29px;margin:0 0 10px}.wpforms-admin-empty-state-container h4{color:#32373c;font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;margin-block:0}.wpforms-admin-empty-state-container img{max-width:428px;width:100%;margin:30px auto}.wpforms-admin-empty-state-container p{font-family:inherit;font-size:16px;line-height:24px;margin-block:0;text-align:center}.wpforms-admin-empty-state-container.wpforms-admin-no-forms p:first-of-type{font-weight:600}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active{border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:16px;line-height:1.5;text-align:center;color:#ffffff;padding:15px 30px;margin:0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:hover,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:focus,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px;line-height:16px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms{font-family:'Helvetica Neue', sans-serif;background:rgba(255,255,255,0.5);border:1px solid #71d7d7;box-sizing:border-box;padding:20px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms img{max-width:240px;width:100%;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms p{font-family:inherit;font-weight:normal;font-size:14px;line-height:18px;text-align:center;color:#495157;max-width:450px;margin:20px auto 0}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a{color:inherit;text-decoration:underline;position:relative}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn{background:#525962;border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:12px;line-height:1.5;text-align:center;text-transform:uppercase;color:#ffffff;padding:7px 17px;margin:20px 0 0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:hover{text-decoration:none;background:#2b2c31}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-admin-no-forms-footer{font-size:12px;line-height:1.5;color:#6d7882}.wpforms-admin-empty-state-container.wpforms-admin-no-entries img{max-width:413px;display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments{max-width:640px;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-admin-no-payments img{display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-btn-lg{border-radius:4px;padding:14px 20px}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]){color:#056aab;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]):hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h2,.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h4{font-weight:500}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p{font-size:14px;color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p.wpforms-admin-no-forms-footer{color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates img{max-width:560px;border-radius:4px;box-shadow:0 5px 15px rgba(0,0,0,0.15)}#wpforms-panel-setup .wpforms-panel-content{align-items:stretch;border-radius:12px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;padding:0}#wpforms-setup-form-name{align-items:center;background-color:#f6f7f7;border-bottom:1px solid #dcdcde;display:flex;justify-content:space-between;overflow:hidden;padding:30px}#wpforms-setup-form-name label{display:inline-block;font-size:20px;font-weight:600;min-width:200px;padding:0}#wpforms-setup-name{display:inline-block;font-size:20px;height:50px;margin-inline-start:30px;padding:13px 10px;width:calc( 100% - 290px)}.wpforms-setup-title{font-size:20px;font-weight:600;margin:30px 30px 0 30px;color:#3c434a}.wpforms-setup-title .count{color:#b0b2b3}.wpforms-setup-desc{margin:10px 30px 30px 30px;color:#50575e;font-size:16px !important}.wpforms-setup-desc a{color:#50575e}.wpforms-setup-desc a:hover{color:#3c434a}.wpforms-setup-templates{align-items:stretch;border-top:1px solid #dcdcde;display:flex;flex-grow:2;justify-content:space-between;margin:0 30px;padding:0 0 30px 0}.wpforms-setup-templates-sidebar{border-inline-end:1px solid #dcdcde;padding-inline-end:30px;padding-top:30px;width:224px;box-sizing:content-box}#wpforms-setup-template-search{font-size:16px;font-weight:400;height:40px;line-height:20px;padding-inline-start:35px;width:100%;color:#3c434a;border:1px solid #c3c4c7;border-radius:4px;box-shadow:none}#wpforms-setup-template-search::placeholder{color:#b0b2b3;font-weight:400}#wpforms-setup-template-search:focus{border-color:#036aab;box-shadow:0 0 0 1px #036aab}.wpforms-setup-templates-search-wrap{position:relative}.wpforms-setup-templates-search-wrap i.fa{color:#b0b2b3;display:block;font-size:16px;inset-inline-start:10px;position:absolute;top:12px;width:16px}.wpforms-setup-templates-categories{margin-top:30px;width:224px;box-sizing:content-box}.wpforms-setup-templates-categories>li{color:#3c434a;cursor:pointer;font-size:14px;font-weight:600;line-height:16px;margin:0}.wpforms-setup-templates-categories>li div{border-radius:4px;padding:10px}.wpforms-setup-templates-categories>li div:hover{color:#3c434a;text-decoration:underline}.wpforms-setup-templates-categories>li div>span{float:inline-end;color:#50575e;opacity:0.5;font-weight:400}.wpforms-setup-templates-categories>li.divider{border-bottom:1px solid #dcdcde;margin:30px 0;padding:0}.wpforms-setup-templates-categories>li.active div{background:#ebf3fc;color:#0399ed;position:relative}.wpforms-setup-templates-categories>li.active div span{color:#0399ed;opacity:1;font-weight:600}.wpforms-setup-templates-categories>li.active div:hover{text-decoration:none}.wpforms-setup-templates-categories>li.active.opened .wpforms-setup-templates-subcategories{display:block}.wpforms-setup-templates-categories>li.active .chevron{color:#0399ed}.wpforms-setup-templates-categories>li i.chevron{display:none}.wpforms-setup-templates-categories>li:has(ul) i.chevron{display:inline-block;width:auto;position:relative;top:-1px;padding:0 5px;font-size:12px;color:#50575e}.wpforms-setup-templates-categories>li.opened i.chevron{transform:rotate(180deg)}.wpforms-setup-templates-categories>li.opened ul.wpforms-setup-templates-subcategories{display:block}.wpforms-setup-templates-subcategories{display:none}.wpforms-setup-templates-subcategories li{display:flex;justify-content:space-between;color:#50575e;cursor:pointer;font-size:14px;font-weight:400;line-height:18px;margin:0;padding-block:5px;padding-inline-end:10px;padding-inline-start:20px;position:relative}.wpforms-setup-templates-subcategories li:hover span:first-child{text-decoration:underline}.wpforms-setup-templates-subcategories li.active{color:#0399ed;font-weight:400}.wpforms-setup-templates-subcategories li.active span:last-child{color:#0399ed;font-weight:400;opacity:1}.wpforms-setup-templates-subcategories li i{color:#999c9e;position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:10px}.wpforms-setup-templates-subcategories li span:first-child{flex-grow:1;padding-inline-end:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-setup-templates-subcategories li span:last-child{min-width:32px;color:#50575e;opacity:0.5;font-weight:400;text-align:end}#wpforms-setup-templates-list{padding-top:30px;width:calc( 100% - 250px)}#wpforms-setup-templates-list .wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url(../../images/empty-states/waving-hand-emoji.png)}#wpforms-setup-templates-list .list{display:grid;grid-gap:30px;grid-template-columns:repeat(auto-fill, minmax(Max(200px, 260px), 1fr));padding-inline-start:30px}#wpforms-setup-templates-list .wpforms-template{border-radius:6px;height:100%;overflow:hidden;padding:0 0 15px;position:relative;box-shadow:0 0 0 1px #c3c4c7;transition:box-shadow 0.15s ease-in-out}#wpforms-setup-templates-list .wpforms-template:hover,#wpforms-setup-templates-list .wpforms-template.active{box-shadow:0 0 0 2px #50575e,0 3px 4px rgba(0,0,0,0.15);outline:none}#wpforms-setup-templates-list .wpforms-template:hover .wpforms-template-buttons,#wpforms-setup-templates-list .wpforms-template:hover .wpforms-template-favorite,#wpforms-setup-templates-list .wpforms-template:hover .wpforms-template-remove,#wpforms-setup-templates-list .wpforms-template.active .wpforms-template-buttons,#wpforms-setup-templates-list .wpforms-template.active .wpforms-template-favorite,#wpforms-setup-templates-list .wpforms-template.active .wpforms-template-remove{opacity:1}#wpforms-setup-templates-list .wpforms-template:hover .wpforms-badge,#wpforms-setup-templates-list .wpforms-template.active .wpforms-badge{opacity:0}#wpforms-setup-templates-list .wpforms-template.badge h3{padding-inline-end:45px}#wpforms-setup-templates-list .wpforms-template.selected{box-shadow:0 0 0 2px #e27730,0 3px 4px rgba(0,0,0,0.15)}#wpforms-setup-templates-list .wpforms-template .wpforms-template-thumbnail{background-color:#F5F9FD;border-bottom:1px solid #EBEEF1;overflow:hidden;padding:20px 54px 0}#wpforms-setup-templates-list .wpforms-template .wpforms-template-thumbnail>img{border-radius:2px 2px 0 0;box-shadow:0px 1px 4px rgba(0,0,0,0.1);display:block;margin:0 auto;max-width:100%}#wpforms-setup-templates-list .wpforms-template .wpforms-template-thumbnail .wpforms-template-thumbnail-placeholder{align-items:center;aspect-ratio:1;background:#fff;border-radius:2px 2px 0 0;box-shadow:0px 1px 4px rgba(0,0,0,0.1);display:flex;justify-content:center;margin:0 auto;max-width:350px;min-height:100%;width:100%}#wpforms-setup-templates-list .wpforms-template h3{font-size:16px;font-weight:600;line-height:18px;padding:20px 20px 2px;margin:0;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;color:#3c434a}#wpforms-setup-templates-list .wpforms-template .wpforms-template-favorite,#wpforms-setup-templates-list .wpforms-template .wpforms-template-remove{display:block;position:absolute;inset-inline-end:10px;top:10px;font-size:18px;line-height:18px;opacity:0;color:#aaaaaa;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}#wpforms-setup-templates-list .wpforms-template .wpforms-template-favorite:hover,#wpforms-setup-templates-list .wpforms-template .wpforms-template-remove:hover{color:#d63637;cursor:pointer;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}#wpforms-setup-templates-list .wpforms-template .wpforms-template-favorite .fa-heart,#wpforms-setup-templates-list .wpforms-template .wpforms-template-remove .fa-heart{color:#d63638}#wpforms-setup-templates-list .wpforms-template.selected h3{padding-inline-end:60px}#wpforms-setup-templates-list .wpforms-template.pro h3{padding-inline-end:40px}#wpforms-setup-templates-list .wpforms-template p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:#50575e;font-size:14px;line-height:18px;margin:10px 0 0;max-height:55px;min-height:45px;padding:0 20px}#wpforms-setup-templates-list .wpforms-template-upgrade-banner{background:rgba(226,119,48,0.08);border-radius:6px;display:flex;flex-direction:row;grid-column:1 / -1;justify-content:space-between;align-items:center;padding-inline-end:20px}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-content{padding:20px;width:80%;color:#3c434a}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-content h3{font-weight:600;font-size:16px;line-height:18px;margin-top:0;margin-bottom:5px}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-content p{font-weight:400;font-size:14px;line-height:18px;margin:0}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button{width:20%;text-align:end}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button a{min-height:13px}@media screen and (max-width: 1279px){#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button a{box-sizing:border-box;width:100%}}#wpforms-setup-templates-list .wpforms-templates-no-results{display:none;margin-inline-start:30px}#wpforms-setup-templates-list .wpforms-templates-no-results p{font-size:16px;line-height:40px;margin:0;color:#3c434a}.rtl #wpforms-setup-templates-list .wpforms-badge{border-radius:0 0 3px 0;left:0;right:auto}.wpforms-template-buttons{background-color:#ffffff;border-radius:6px;display:flex;opacity:0;padding:15px 15px 0;width:100%;align-items:flex-start;gap:10px;position:absolute;bottom:15px;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}.wpforms-template-buttons .wpforms-btn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:13px;line-height:16px;padding:11px 10px}.wpforms-template-buttons .visible{opacity:1}@media (max-width: 1439px){#wpforms-setup-name{width:calc( 100% - 250px)}}@media (max-width: 1369px){#wpforms-setup-templates-list .list{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 1279px){#wpforms-setup-templates-list .list{grid-template-columns:1fr}#wpforms-setup-templates-list .list .wpforms-template .wpforms-template-buttons{position:relative;bottom:0;margin:10px 0 0 0;opacity:1;padding:0 20px}#wpforms-setup-templates-list .list .wpforms-template p{min-height:auto}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner{flex-direction:column;padding:20px}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-content,#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button{width:100%}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-content{padding:0}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button{text-align:center;margin-top:20px}}#wpforms-form-templates{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif}#wpforms-form-templates h1.page-title{font-size:22px;font-weight:400;line-height:26px;color:#3c434a}#wpforms-form-templates .wpforms-setup-title{line-height:28px}#wpforms-form-templates .wpforms-setup-desc{font-weight:400;font-size:15px;line-height:22px;margin-top:3px}#wpforms-form-templates .wpforms-form-setup-content{align-items:stretch;display:flex;flex-direction:column;justify-content:flex-start;padding:0;margin:20px;background-color:#ffffff;min-height:100%;box-shadow:0 2px 4px rgba(0,0,0,0.05);border-radius:7px}#wpforms-form-templates .wpforms-form-setup-content #wpforms-setup-templates-list .wpforms-template{box-sizing:border-box}#wpforms-form-templates .wpforms-form-setup-content #wpforms-setup-templates-list .wpforms-template .wpforms-template-buttons{box-sizing:border-box}#wpforms-form-templates .wpforms-form-setup-content #wpforms-setup-templates-list .wpforms-template .wpforms-template-buttons .wpforms-btn{min-height:16px}@media (max-width: 1279px){#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-desc br{display:none}}@media screen and (max-width: 750px){#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-desc br{display:none}#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-templates{flex-direction:column}#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-templates .wpforms-setup-templates-sidebar{width:100%}#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-templates .wpforms-setup-templates-categories{width:100%;margin-bottom:30px}#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-templates #wpforms-setup-templates-list{width:100%;padding-top:0}#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-templates #wpforms-setup-templates-list .list{padding:0}#wpforms-form-templates .wpforms-form-setup-content .wpforms-setup-templates #wpforms-setup-templates-list .wpforms-template-upgrade-banner{margin-left:0}}.wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url("../../images/empty-states/waving-hand-emoji.png")} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin/admin-splash-modal.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin/admin-splash-modal.min.css new file mode 100644 index 0000000..5991019 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin/admin-splash-modal.min.css @@ -0,0 +1 @@ +#wpforms-splash-modal header{display:flex;align-items:center;gap:30px;padding:50px 120px}#wpforms-splash-modal header h2{color:#1d2327;font-size:24px;font-weight:700;margin:0 0 5px}#wpforms-splash-modal header img{max-width:80px !important;max-height:80px;border:4px solid #ffffff;border-radius:40px;box-shadow:0 5px 15px rgba(0,0,0,0.1)}#wpforms-splash-modal .wpforms-splash-notice{background-color:#fdf2eb;padding:15px 20px;margin:0 120px 50px;color:#2c3338;border-radius:6px}#wpforms-splash-modal .wpforms-splash-notice a{color:#e27730;font-weight:600;text-decoration:underline;text-decoration-color:rgba(226,119,48,0.35);text-underline-offset:2px;transition-property:border, background, color, text-decoration-color}#wpforms-splash-modal .wpforms-splash-notice a:hover,#wpforms-splash-modal .wpforms-splash-notice a:focus{color:#cd6622;text-decoration-color:rgba(226,119,48,0.75)}#wpforms-splash-modal .wpforms-splash-notice{background-color:#fdf2eb;padding:15px 20px;margin:25px 120px 75px;color:#2c3338;border-radius:6px}#wpforms-splash-modal .wpforms-splash-notice a{color:#e27730;font-weight:600;text-decoration:underline;text-decoration-color:rgba(226,119,48,0.35);text-underline-offset:2px;transition-property:border, background, color, text-decoration-color}#wpforms-splash-modal .wpforms-splash-notice a:hover,#wpforms-splash-modal .wpforms-splash-notice a:focus{color:#cd6622;text-decoration-color:rgba(226,119,48,0.75)}#wpforms-splash-modal main .wpforms-splash-section{display:flex;align-items:center;gap:50px;margin-bottom:50px;padding:0 120px}#wpforms-splash-modal main .wpforms-splash-section .wpforms-splash-badge{border-radius:3px;background-color:#edfaef;padding:8px 10px;color:#00ba37;text-align:center;font-size:10px;font-weight:700;line-height:10px;letter-spacing:0.5px;text-transform:uppercase;cursor:default}#wpforms-splash-modal main .wpforms-splash-section h3{color:#1d2327;font-size:28px;font-weight:500;line-height:36px;margin:15px 0 10px}#wpforms-splash-modal main .wpforms-splash-section p{line-height:25px !important;opacity:0.9}#wpforms-splash-modal main .wpforms-splash-section ul{list-style:revert;margin-left:2em}#wpforms-splash-modal main .wpforms-splash-section .wpforms-splash-section-buttons{display:flex;align-items:flex-start;gap:20px;margin-top:20px}#wpforms-splash-modal main .wpforms-splash-section .wpforms-splash-section-buttons .wpforms-btn{padding:10px 15px;font-size:14px;line-height:normal;font-weight:500}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-fifty-fifty .wpforms-splash-section-content{flex:1}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-fifty-fifty .wpforms-splash-section-image{flex:1}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-one-third-two-thirds .wpforms-splash-section-content{flex:2}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-one-third-two-thirds .wpforms-splash-section-image{flex:1}#wpforms-splash-modal main .wpforms-splash-section:nth-child(odd) .wpforms-splash-section-content{order:2}#wpforms-splash-modal main .wpforms-splash-section:nth-child(odd) .wpforms-splash-section-image{order:1}#wpforms-splash-modal main .wpforms-splash-section .wpforms-splash-section-image{flex:0 0 auto;align-self:center;justify-self:center}#wpforms-splash-modal main .wpforms-splash-section .wpforms-splash-section-image.wpforms-image-shadow-apply img{box-shadow:0 15px 50px 0 rgba(0,0,0,0.15)}#wpforms-splash-modal main .wpforms-splash-section .wpforms-splash-section-image.wpforms-image-shadow-yes img{max-width:calc(100% + 60px);margin:-18px 0 -38px -30px}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width{flex-direction:column;align-items:center;gap:0;text-align:center;padding:0;margin-bottom:75px}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-content,#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-image{flex:revert;order:revert}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-content{width:fit-content;background-color:#f6f7f7;padding:50px 120px}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-content .wpforms-splash-badge{background-color:#ffffff}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-content h3{font-size:32px}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-image{width:100%;background:linear-gradient(180deg, #f6f7f7 50%, #fff 50%)}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-image img{max-width:760px;padding:10px;background:#ffffff;border-radius:9px;box-shadow:0 15px 50px rgba(0,0,0,0.15)}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-buttons{justify-content:center}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width h3{margin-top:20px}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width p{font-size:18px !important;line-height:28px !important}#wpforms-splash-modal footer{display:flex;padding:50px 120px;align-items:center;gap:50px;background:#2c3338;box-shadow:0 2px 4px 0 rgba(0,0,0,0.05)}#wpforms-splash-modal footer h2{margin:0 0 10px;color:#ffffff;font-size:28px;font-weight:500;line-height:36px}#wpforms-splash-modal footer a{padding:11px 17px;font-size:16px;font-weight:500}#wpforms-splash-modal footer p{color:rgba(255,255,255,0.8) !important;line-height:25px !important;opacity:0.9}#wpforms-splash-modal .wpforms-btn{border:1px;border-style:solid;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}#wpforms-splash-modal .wpforms-btn.inactive{cursor:no-drop;pointer-events:none;box-shadow:none;opacity:0.5}#wpforms-splash-modal .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#ffffff}#wpforms-splash-modal .wpforms-btn-orange:hover,#wpforms-splash-modal .wpforms-btn-orange:active,#wpforms-splash-modal .wpforms-btn-orange:focus{background-color:#cd6622;border-color:#cd6622;color:#ffffff}#wpforms-splash-modal .wpforms-btn-orange:focus{box-shadow:0 0 0 2px #cd6622;border-color:#ffffff;outline:0}#wpforms-splash-modal .wpforms-btn-bordered{background-color:#ffffff;color:#50575e;border-color:#8c8f94}#wpforms-splash-modal .wpforms-btn-bordered:hover,#wpforms-splash-modal .wpforms-btn-bordered:focus{color:#2c3338;border-color:#50575e}#wpforms-splash-modal .wpforms-btn-bordered:focus{background-color:#ffffff;box-shadow:0 0 0 1px #50575e;outline:0}#wpforms-splash-modal .wpforms-btn-green{background-color:#008a20;color:#ffffff;border-color:#008a20}#wpforms-splash-modal .wpforms-btn-green:hover,#wpforms-splash-modal .wpforms-btn-green:focus{background-color:#00a32a;color:#ffffff}body.wpforms-splash-modal{overflow:hidden;margin-right:var(--wpforms-body-scrollbar-width)}body.wpforms-splash-modal #wpadminbar{width:calc( 100vw - var( --wpforms-body-scrollbar-width ))}body.wpforms-splash-modal .jconfirm{overflow:hidden;bottom:revert;min-height:100vh;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}body.wpforms-splash-modal .jconfirm .jconfirm-cell{vertical-align:top;overflow-y:auto;max-height:100vh;height:100vh;display:flex;justify-content:center;align-items:center}body.wpforms-splash-modal .jconfirm .jconfirm-cell::-webkit-scrollbar{background:transparent;width:15px;height:15px}body.wpforms-splash-modal .jconfirm .jconfirm-cell::-webkit-scrollbar-track{background:transparent}body.wpforms-splash-modal .jconfirm .jconfirm-cell::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.05);background:transparent;border-radius:15px;border:solid 4px transparent}body.wpforms-splash-modal .jconfirm .jconfirm-cell::-webkit-resizer,body.wpforms-splash-modal .jconfirm .jconfirm-cell::-webkit-scrollbar-button,body.wpforms-splash-modal .jconfirm .jconfirm-cell::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){body.wpforms-splash-modal .jconfirm .jconfirm-cell{scrollbar-color:rgba(0,0,0,0.05) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover::-webkit-scrollbar{background:transparent;width:15px;height:15px}body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover::-webkit-scrollbar-track{background:transparent}body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.3);background:transparent;border-radius:15px;border:solid 4px transparent}body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover::-webkit-resizer,body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover::-webkit-scrollbar-button,body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){body.wpforms-splash-modal .jconfirm .jconfirm-cell:hover{scrollbar-color:rgba(0,0,0,0.3) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}body.wpforms-splash-modal .jconfirm .jconfirm-cell .jc-bs3-container{padding-bottom:50px}body.wpforms-splash-modal .jconfirm .jconfirm-cell .jconfirm-holder{width:100%;padding:0 !important}body.wpforms-splash-modal .jconfirm.jconfirm-open .jconfirm-bg{position:sticky;height:100%}body.wpforms-splash-modal .jconfirm.jconfirm-open .jconfirm-scrollpane{margin-top:-100vh}body.wpforms-splash-modal .jconfirm.jconfirm-modern .jconfirm-bg{background-color:#72777c;opacity:0.75}body.wpforms-splash-modal .jconfirm-box{max-width:1000px;width:100% !important}body.wpforms-splash-modal .jconfirm-box-container{opacity:0;padding:0 50px}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box{border-radius:12px;box-shadow:0 15px 50px rgba(0,0,0,0.15)}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default{padding:0;transition-duration:initial !important}body.wpforms-splash-modal .jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:revert}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane{display:block;margin-bottom:0;max-height:none !important}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content{color:#3c434a;font-size:16px;line-height:24px;margin-bottom:0;overflow:inherit}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p{color:#50575e;font-size:16px;font-weight:400;line-height:22px;margin-block:0}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{top:20px;right:20px}body.wpforms-splash-modal div.jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after{font-size:20px}@media screen and (max-width: 1024px){#wpforms-splash-modal header,#wpforms-splash-modal footer{padding:50px}#wpforms-splash-modal main .wpforms-splash-section{padding:0 50px}#wpforms-splash-modal main .wpforms-splash-section.wpforms-splash-section-full-width .wpforms-splash-section-content{padding:50px}}@media screen and (max-width: 768px){body.wpforms-splash-modal .jconfirm{display:none}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/admin/edit-post-education.min.css b/wp-content/plugins/wpforms-lite/assets/css/admin/edit-post-education.min.css new file mode 100644 index 0000000..a2b9e17 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/admin/edit-post-education.min.css @@ -0,0 +1 @@ +.wpforms-edit-post-education-notice-body{padding-left:52px;min-height:40px;margin:0;position:relative}.wpforms-edit-post-education-notice-body p{margin:0}.wpforms-edit-post-education-notice-body:before{content:'';display:block;width:40px;height:40px;background-image:url("../../images/sullie-edit-post-education.svg");background-size:100%;position:absolute;left:0;top:0}.wpforms-hidden{display:none !important}.wpforms-edit-post-education-notice{position:relative;background:#FFFFFF;border:1px solid #C3C4C7;box-shadow:0 1px 1px rgba(0,0,0,0.05);padding:10px;font-size:14px;line-height:21px;display:flex;align-items:flex-start;margin:23px 0}.wpforms-edit-post-education-notice .notice-dismiss{position:static;margin-left:auto}.wpforms-edit-post-education-notice:not(.wpforms-hidden)+#postdivrich{margin-top:-20px}.is-distraction-free .interface-interface-skeleton__header:focus-within .wpforms-edit-post-education-notice .components-notice__actions,.is-distraction-free .interface-interface-skeleton__header:focus-within .wpforms-edit-post-education-notice .components-notice__content{transform:none !important}.components-notice-list .wpforms-edit-post-education-notice{background-color:#f0f6fc;border-top:0;border-left:4px solid #007cba;border-bottom:0;border-right:0;margin:0}.components-notice-list .wpforms-edit-post-education-notice-body{padding-right:150px;float:left}@media (max-width: 767px){.components-notice-list .wpforms-edit-post-education-notice-body{float:none;padding-right:0}.components-notice-list .components-notice__action.components-button.wpforms-edit-post-education-notice-guide-button{margin-left:52px}}@media (min-width: 768px){.components-notice-list .components-notice__action.components-button.wpforms-edit-post-education-notice-guide-button{position:absolute;right:60px;top:14px;margin:0}.components-notice-list .wpforms-edit-post-education-notice.components-notice .components-notice__dismiss{margin-top:14px}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-alerts.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-alerts.min.css new file mode 100644 index 0000000..a79ec10 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-alerts.min.css @@ -0,0 +1 @@ +.wpforms-admin-page .wpforms-alert{background-color:#ffffff;border:none;border-inline-start:4px solid #dcdcde;box-shadow:0 2px 2px rgba(0,0,0,0.05);color:#3c434a;font-size:14px;font-weight:400;line-height:18px;margin-bottom:20px;padding:10px}.wpforms-admin-page .wpforms-alert-dismissible{align-content:stretch;align-items:center;display:flex;justify-content:flex-start;margin:30px 15px 20px 15px;max-height:100px;opacity:1;overflow:hidden;transition-property:all;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms-admin-page .wpforms-alert-dismissible.out{margin-bottom:0;margin-top:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}.wpforms-admin-page .wpforms-alert-dismissible h4{margin:0 0 2px 0}.wpforms-admin-page .wpforms-alert-dismissible p{color:#3c434a}.wpforms-admin-page .wpforms-alert-buttons{display:flex;margin-inline-start:auto;padding-inline-start:10px}.wpforms-admin-page .wpforms-alert-buttons .wpforms-dismiss-button{color:rgba(68,68,68,0.35);margin-inline-start:7px;margin-inline-end:-3px}.wpforms-admin-page .wpforms-alert-buttons .wpforms-dismiss-button:hover{color:rgba(68,68,68,0.75)}.wpforms-admin-page .wpforms-alert h4{color:#3c434a;font-size:14px;font-weight:600;line-height:18px;margin:0 0 3px 0}.wpforms-admin-page .wpforms-alert p{line-height:18px;margin:0 0 10px 0}.wpforms-admin-page .wpforms-alert p:last-of-type{margin:0}.wpforms-admin-page .wpforms-alert p.wpforms-alert-heading{font-size:16px;font-weight:500;margin-bottom:3px !important}.wpforms-admin-page .wpforms-alert p.wpforms-alert-content{font-size:14px;font-weight:400;margin-bottom:0 !important}.wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-success{border-inline-start-color:#00a32a}.wpforms-admin-page .wpforms-alert.wpforms-alert-info{border-inline-start-color:#036aab}.wpforms-admin-page .wpforms-alert.wpforms-alert-warning{border-inline-start-color:#ffb900}.wpforms-admin-page .wpforms-alert.wpforms-alert-danger{border-inline-start-color:#d63638}.wpforms-admin-page .wpforms-alert.wpforms-alert-ai{border-inline-start-color:#7a30e2}.wpforms-admin-page .wpforms-alert.wpforms-alert-field-requirements .wpforms-alert-buttons{padding:10px 0 0 0}.wpforms-admin-page .wpforms-alert .wpforms-aside-left{float:left}.wpforms-admin-page .wpforms-alert .wpforms-aside-right{float:right}.wpforms-admin-page .wpforms-panel-content .wpforms-alert{box-shadow:none;overflow:auto}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-alert-success{background-color:#edfaef}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-alert-info{background-color:#f1f6fa}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-alert-warning{background-color:#fcf9e8}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-alert-danger{background-color:#fcf0f1}.wpforms-fullscreen-notice{background:#036aab;cursor:default;height:100%;min-width:0;padding:0 20px;overflow:scroll;position:fixed;z-index:100110;text-align:center;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.wpforms-fullscreen-notice img{height:130px;width:130px}.wpforms-fullscreen-notice img.sullie-icon{background-color:#f0f0f1;border:5px solid #ffffff;border-radius:50%;box-shadow:0 4px 8px rgba(0,0,0,0.15)}.wpforms-fullscreen-notice h3{color:#ffffff;font-weight:700;font-size:18px;line-height:22px;margin:25px 0 5px 0}.wpforms-fullscreen-notice p{color:#cce0ed;font-size:16px;font-weight:300;line-height:22px;margin:0;max-width:640px}.wpforms-fullscreen-notice a{color:#cce0ed}.wpforms-fullscreen-notice a:hover{color:#ffffff}.wpforms-fullscreen-notice .wpforms-fullscreen-notice-buttons{display:flex;flex-wrap:wrap;gap:25px;justify-content:center;margin-top:25px}.wpforms-fullscreen-notice .wpforms-fullscreen-notice-button{border-radius:4px;cursor:pointer;font-weight:500;font-size:16px;line-height:20px;height:auto;padding:10px 20px;text-decoration:none;text-shadow:none;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}.wpforms-fullscreen-notice .wpforms-fullscreen-notice-button-primary{background-color:#e27730;border:2px solid #e27730;box-shadow:0 2px 4px rgba(0,0,0,0.15);color:#ffffff}.wpforms-fullscreen-notice .wpforms-fullscreen-notice-button-primary:hover{background-color:#cd6622;border-color:#cd6622}.wpforms-fullscreen-notice .wpforms-fullscreen-notice-button-secondary{background-color:transparent;border:2px solid #ffffff;color:#ffffff;opacity:.5}.wpforms-fullscreen-notice .wpforms-fullscreen-notice-button-secondary:hover{opacity:1}.wpforms-fullscreen-notice .close,.wpforms-fullscreen-notice .dismiss{background-color:transparent;background-image:url("../../images/times-circle.svg");border:none;color:#81b5d5;cursor:pointer;height:31px;opacity:.5;overflow:hidden;position:absolute;inset-inline-end:20px;top:20px;width:31px;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}.wpforms-fullscreen-notice .close:hover,.wpforms-fullscreen-notice .dismiss:hover{opacity:1}.wpforms-fullscreen-notice .close:focus,.wpforms-fullscreen-notice .dismiss:focus{outline:none}.wpforms-fullscreen-notice-light{background:#e8e9e9}.wpforms-fullscreen-notice-light h3{color:#3c434a}.wpforms-fullscreen-notice-light p{color:#6a6f76}.wpforms-fullscreen-notice img{height:auto;width:auto;max-width:120px}@supports (display: grid){#wpforms-builder-ie-notice{display:none}}#wpforms-builder-abort-message h3{font-size:24px;line-height:24px;margin-bottom:20px}#wpforms-builder-abort-message img{width:400px;height:auto;margin:30px 30px 0 30px}#wpforms-builder-abort-message .wpforms-fullscreen-notice-button{text-transform:initial}#wpforms-builder-abort-message .waving-hand-emoji{display:inline-block;background-image:url("../../images/empty-states/waving-hand-emoji.png");background-repeat:no-repeat;background-size:24px 24px;background-position:0 0;padding-left:34px}@media (max-width: 640px){#wpforms-builder-abort-message img{width:250px}}@media (min-width: 1024px){#wpforms-builder-mobile-notice{display:none}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-basic.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-basic.min.css new file mode 100644 index 0000000..4ccc939 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-basic.min.css @@ -0,0 +1 @@ +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,::before,::after{box-sizing:border-box}html{line-height:1.15;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{margin:0;font-family:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:600}code,kbd,samp,pre{font-family:ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;margin:0}button,select{text-transform:none}button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type='search']{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{appearance:none;-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--wpforms-admin-bar-height: 0px}body{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:17px;overflow:hidden !important}a{color:#036aab}a:hover{color:#0399ed}button{font-size:14px}a,button{transition-duration:0.05s;transition-property:border, background, color;transition-timing-function:ease-in}a:focus,button:focus{box-shadow:none;outline:none}h1,h2,h3{font-weight:600;margin-bottom:10px;padding:0}h1{font-size:24px;margin-bottom:0}h2{font-size:18px}h3{font-size:16px}p{line-height:24px;margin:0 0 10px 0}ul{list-style:none;margin-block-end:0;margin-block-start:0;margin-inline-end:0;margin-inline-start:0;padding:0}li{margin-bottom:5px}#wpforms-builder{background:#ffffff;color:#3c434a;cursor:default;height:100%;margin:0 !important;min-width:0;overflow:hidden;position:fixed;z-index:100099;top:0;right:0;bottom:0;left:0}#wpforms-builder .fa-copy{font-weight:400}#wpforms-builder .fa-check,#wpforms-builder .fa-times{-webkit-text-stroke:1px currentColor}#wpforms-builder .fa-usd{-webkit-text-stroke:0.5px currentColor}#wpforms-builder .wpforms-clear:before{content:"";display:table}#wpforms-builder .wpforms-clear:after{clear:both;content:"";display:table}#wpforms-builder .note{color:#6a6f76;font-size:13px;line-height:18px}#wpforms-builder .secondary-text{color:#6a6f76;font-size:14px}#wpforms-builder a.secondary-text:hover{color:#3c434a}#wpforms-builder .hidden,#wpforms-builder .wpforms-hidden{display:none}#wpforms-builder .wpforms-hidden-strict{display:none !important}#wpforms-builder .wpforms-not-available{opacity:.6}#wpforms-builder .wpforms-one-half{float:left;width:calc( 50% - 10px)}.rtl #wpforms-builder .wpforms-one-half{float:right}#wpforms-builder .wpforms-one-half.last{float:right;margin-inline-end:0}.rtl #wpforms-builder .wpforms-one-half.last{float:left}#wpforms-builder .wpforms-one-half.wpforms-hide+.wpforms-one-half.last{float:left}.rtl #wpforms-builder .wpforms-one-half.wpforms-hide+.wpforms-one-half.last{float:right}#wpforms-builder .wpforms-one-third{float:left;margin-inline-end:20px;width:calc( 100%/3 - 13.33333px)}.rtl #wpforms-builder .wpforms-one-third{float:right}#wpforms-builder .wpforms-one-third.last{float:right;margin-inline-end:0}.rtl #wpforms-builder .wpforms-one-third.last{float:left}#wpforms-builder .wpforms-two-thirds{float:left;margin-inline-end:20px;width:calc( 66.66667% - 13.33333px)}.rtl #wpforms-builder .wpforms-two-thirds{float:right}#wpforms-builder .wpforms-help-tooltip:not(button){color:#b0b2b3;font-size:14px;margin:1px 0 0 8px}#wpforms-builder .wpforms-help-tooltip:not(button):hover{color:#6a6f76;cursor:help}#wpforms-builder .wpforms-help-tooltip:not(button):not(.wpforms-hidden){display:inline-block}#wpforms-builder .wpforms-panel-sidebar .wpforms-help-tooltip:not(button){color:#b0b6bd}#wpforms-builder .wpforms-panel-sidebar .wpforms-help-tooltip:not(button):hover{color:#86919e}#wpforms-builder label span.required{color:#d63638}.wpforms-columns{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:stretch;align-content:flex-start}.wpforms-columns.wpforms-columns-2 .wpforms-column{width:calc( 50% - 15px)}.wpforms-columns.wpforms-columns-3 .wpforms-column{width:calc( 100% / 3 - 20px)}.wpforms-columns.wpforms-columns-4 .wpforms-column{width:calc( 100% / 4 - 22.5px)}.wpforms-loading-spinner{background-image:url("../../images/spinner.svg");background-repeat:no-repeat;background-size:15px 15px;background-position:center;display:block;height:15px;margin:0 10px 0 0;vertical-align:-2px;width:15px;-webkit-animation:wpforms-spinner-rotation 0.8s linear infinite;-moz-animation:wpforms-spinner-rotation 0.8s linear infinite;-ms-animation:wpforms-spinner-rotation 0.8s linear infinite;-o-animation:wpforms-spinner-rotation 0.8s linear infinite;animation:wpforms-spinner-rotation 0.8s linear infinite}.wpforms-loading-spinner.wpforms-loading-white{background-image:url("../../images/spinner-white.svg")}.wpforms-loading-spinner.wpforms-loading-blue{background-image:url("../../images/spinner-blue.svg");background-size:14px 15px}.wpforms-loading-spinner.wpforms-loading-md{background-size:24px 24px;height:24px;width:24px}.wpforms-loading-spinner.wpforms-loading-lg{background-size:32px 32px;height:32px;width:32px}.wpforms-loading-spinner.wpforms-loading-inline{display:inline-block;margin:auto}@keyframes wpforms-spinner-rotation{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.rtl #wpforms-builder .wpforms-help-tooltip{margin:0 10px 0 0}input[type=text],input[type=number],input[type=email],input[type=url],input[type=password],input[type=search],input[type=tel],textarea,select{border:1px solid #c3c4c7;border-radius:4px;box-shadow:none;color:#3c434a;font-size:14px;height:32px;line-height:18px;margin:0;padding:6px 10px}input[type=text].readonly,input[type=text][readonly],input[type=text].disabled,input[type=text]:disabled,input[type=number].readonly,input[type=number][readonly],input[type=number].disabled,input[type=number]:disabled,input[type=email].readonly,input[type=email][readonly],input[type=email].disabled,input[type=email]:disabled,input[type=url].readonly,input[type=url][readonly],input[type=url].disabled,input[type=url]:disabled,input[type=password].readonly,input[type=password][readonly],input[type=password].disabled,input[type=password]:disabled,input[type=search].readonly,input[type=search][readonly],input[type=search].disabled,input[type=search]:disabled,input[type=tel].readonly,input[type=tel][readonly],input[type=tel].disabled,input[type=tel]:disabled,textarea.readonly,textarea[readonly],textarea.disabled,textarea:disabled,select.readonly,select[readonly],select.disabled,select:disabled{opacity:.5;cursor:default}input[type=text].readonly:focus,input[type=text][readonly]:focus,input[type=text].disabled:focus,input[type=text]:disabled:focus,input[type=number].readonly:focus,input[type=number][readonly]:focus,input[type=number].disabled:focus,input[type=number]:disabled:focus,input[type=email].readonly:focus,input[type=email][readonly]:focus,input[type=email].disabled:focus,input[type=email]:disabled:focus,input[type=url].readonly:focus,input[type=url][readonly]:focus,input[type=url].disabled:focus,input[type=url]:disabled:focus,input[type=password].readonly:focus,input[type=password][readonly]:focus,input[type=password].disabled:focus,input[type=password]:disabled:focus,input[type=search].readonly:focus,input[type=search][readonly]:focus,input[type=search].disabled:focus,input[type=search]:disabled:focus,input[type=tel].readonly:focus,input[type=tel][readonly]:focus,input[type=tel].disabled:focus,input[type=tel]:disabled:focus,textarea.readonly:focus,textarea[readonly]:focus,textarea.disabled:focus,textarea:disabled:focus,select.readonly:focus,select[readonly]:focus,select.disabled:focus,select:disabled:focus{box-shadow:none;outline:none;border:1px solid #c3c4c7}textarea{height:120px;resize:vertical}select{background:#fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 55%;background-size:16px 16px;cursor:pointer;min-height:32px;padding-inline-end:24px;vertical-align:middle;appearance:none;-webkit-appearance:none}select:hover{color:#3c434a}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #036aab}select::-ms-value{background:0 0;color:#3c434a}select:hover::-ms-value{color:#3c434a}select:focus::-ms-value{color:#3c434a}select::-ms-expand{display:none}.rtl select{background-position:left 5px top 55%}select[multiple]{background-image:none}select[multiple] option{padding:2px 0}input[type=checkbox],input[type=radio]{background:linear-gradient(180deg, #e8e9e9 0%, #fff 68.23%);border:1px solid #7e8993;border-radius:4px;clear:none;color:#3c434a;cursor:pointer;display:inline-block;height:16px;line-height:0;margin-bottom:1px;margin-inline-end:4px;margin-inline-start:1px;margin-top:-4px;min-width:16px;outline:0;padding:0 !important;text-align:center;vertical-align:middle;width:16px;appearance:none;-webkit-appearance:none;transition-property:border-color;transition-duration:0.05s;transition-timing-function:ease-out}input[type=checkbox]:checked::before,input[type=radio]:checked::before{display:inline-block;float:left;speak:never;vertical-align:middle;width:1rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23215D8F%27%2F%3E%3C%2Fsvg%3E");height:21px;margin-top:-3px;margin-inline-start:-4px;margin-inline-end:-4px;width:21px}input[type=checkbox]:checked::before svg path{fill:#215d8f}input[type=radio]{border-radius:50%;line-height:.7;margin-inline-end:4px}input[type=radio]:checked::before{background-color:#036aab;border-radius:50%;content:"";height:8px;line-height:1.1;margin:3px;width:8px}input[type=number]{width:100px}input:focus,select:focus,textarea:focus,.wpforms-smart-tags-widget-container:focus{border:1px solid #036aab;box-shadow:0 0 0 1px #036aab;outline:none}input.wpforms-error,select.wpforms-error,textarea.wpforms-error,.wpforms-smart-tags-widget-container:has(+.wpforms-error){border:1px solid #d63638 !important}input.wpforms-error:focus,select.wpforms-error:focus,textarea.wpforms-error:focus,.wpforms-smart-tags-widget-container:has(+.wpforms-error):focus{box-shadow:0 0 0 1px #d63638;outline:none}::-webkit-input-placeholder,::-moz-placeholder,:-ms-input-placeholder{color:#b0b2b3}.wpforms_page_wpforms-builder .choices{margin-bottom:0}.wpforms_page_wpforms-builder .choices .choices__inner{border:1px solid #c3c4c7;border-radius:4px;min-height:32px;padding-left:5px;padding-top:4px}.wpforms_page_wpforms-builder .choices .choices__item.choices__placeholder{color:#a7aaad;opacity:1}.wpforms-panel-field-colorpicker .minicolors .minicolors-input{height:32px;width:210px;border-radius:4px;font-style:normal;font-weight:400;font-size:14px;line-height:17px;text-transform:lowercase;padding-left:35px}[dir="rtl"] .wpforms-panel-field-colorpicker .minicolors .minicolors-input{padding-right:35px}.wpforms-panel-field-colorpicker .minicolors .minicolors-swatch{height:22px;width:22px;border-radius:2px;border:none;overflow:hidden;box-shadow:inset 0 0 1px rgba(0,0,0,0.1)}.wpforms-panel-field-colorpicker .minicolors .minicolors-swatch .minicolors-swatch-color{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15)}.wpforms-panel-field-number-wrapper{position:relative;display:inline-block;width:100%}.wpforms-panel-field-number-wrapper input[type=number]{width:100% !important}.wpforms-panel-field-number-wrapper:has(.wpforms-panel-field-number-unit) input[type=number]{padding-right:28px}.wpforms-panel-field-number-wrapper .wpforms-panel-field-number-unit{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#888;pointer-events:none;font-size:13px}.wpforms-panel-field-image_upload .wpforms-image-upload-control{display:flex;align-items:stretch;justify-content:space-between;gap:20px}.wpforms-panel-field-image_upload .wpforms-image-upload-control .wpforms-image-preview{display:flex;align-items:center;justify-content:center;width:50%;height:190px;padding:20px;border:1px solid #d9d9d9;border-radius:4px;background:none}.wpforms-panel-field-image_upload .wpforms-image-upload-control .wpforms-image-preview:has(img[src=""]){background-image:url("../../images/builder/image-upload-placeholder.svg");background-position:center;background-size:64px 49px;background-color:#E9EAEC;background-repeat:no-repeat}.wpforms-panel-field-image_upload .wpforms-image-upload-control .wpforms-image-preview img{max-width:174px;max-height:148px}.wpforms-panel-field-image_upload .wpforms-image-upload-control .wpforms-image-preview img[src=""]{display:none}.wpforms-panel-field-image_upload .wpforms-image-upload-control .wpforms-image-controls{width:50%}.wpforms-panel-field-image_upload .wpforms-image-upload-control .wpforms-image-controls .wpforms-image-control-group{margin-bottom:20px}.wpforms-admin-page .wpforms-btn{border-width:1px;border-style:solid;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-in}.wpforms-admin-page .wpforms-btn.inactive{background-color:#c3c4c7;border-color:#c3c4c7;color:#3c434a;cursor:no-drop}.wpforms-admin-page .wpforms-btn .wpforms-button-icon,.wpforms-admin-page .wpforms-btn i{margin-inline-end:10px !important}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-sm{font-size:13px;font-weight:500;padding:0 10px;height:32px;line-height:30px}.wpforms-admin-page .wpforms-btn-md{font-size:14px;font-weight:600;line-height:17px;padding:10px 15px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#ffffff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#cd6622;border-color:#cd6622;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue{background-color:#036aab;border-color:#036aab;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue:hover{background-color:#215d8f;border-color:#215d8f;color:#ffffff}.wpforms-admin-page .wpforms-btn-blue.wpforms-settings-keyword-filter-save-changes{font-weight:400;margin-right:8px}.wpforms-admin-page .wpforms-btn-blue.wpforms-settings-keyword-filter-save-changes .wpforms-loading-spinner{margin-left:0;margin-right:5px}.wpforms-admin-page .wpforms-btn-grey{background-color:#e8e9e9;border-color:#c3c4c7;color:#6a6f76}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#c3c4c7;border-color:#c3c4c7;color:#3c434a}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f6f7f7;border-color:#c3c4c7;color:#6a6f76}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#e8e9e9;border-color:#c3c4c7;color:#3c434a}.wpforms-admin-page .wpforms-btn-blue-borders,.wpforms-admin-page .wpforms-btn-light-grey-blue-borders{background-color:#f6f7f7;border-color:currentColor;color:#036aab}.wpforms-admin-page .wpforms-btn-blue-borders:hover,.wpforms-admin-page .wpforms-btn-light-grey-blue-borders:hover{background-color:#e8e9e9;color:#215d8f}.wpforms-admin-page .wpforms-btn-blue-borders:focus,.wpforms-admin-page .wpforms-btn-light-grey-blue-borders:focus{box-shadow:0 0 0 1px #215d8f;outline:0}.wpforms-admin-page .wpforms-btn-red-borders{background-color:#fcf0f1;border-color:currentColor;color:#d63638}.wpforms-admin-page .wpforms-btn-red-borders:focus{box-shadow:0 0 0 1px #b32d2e;outline:0}.wpforms-admin-page .wpforms-btn-red-borders:hover{color:#b32d2e;background-color:#f9e1e1}.wpforms-admin-page .wpforms-btn-purple{background-color:#faf5fe;border-color:#7a30e2;color:#7a30e2}.wpforms-admin-page .wpforms-btn-purple:hover,.wpforms-admin-page .wpforms-btn-purple:focus{background-color:#f5e9ff;border-color:#5c24a9;color:#5c24a9}.wpforms-admin-page .wpforms-btn-purple.wpforms-help-tooltip{color:#7a30e2}.wpforms-admin-page .wpforms-btn-purple-dark{background-color:#7a30e2;border-color:#7a30e2;color:#ffffff}.wpforms-admin-page .wpforms-btn-purple-dark:hover,.wpforms-admin-page .wpforms-btn-purple-dark:focus{background-color:#5c24a9;border-color:#5c24a9;color:#ffffff}.wpforms-admin-page .wpforms-dismiss-button{background:none;border:none;color:#b0b2b3;cursor:pointer;padding:3px}.wpforms-admin-page .wpforms-dismiss-button:hover{color:#6a6f76}.wpforms-admin-page .wpforms-dismiss-button:before{background:0 0;content:"\f153";display:block;font:normal 16px/16px dashicons, sans-serif;height:16px;speak:none;text-align:center;width:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms-admin-page .wpforms-dismiss-button.dashicons-no-alt:before{content:"\f335"}.wpforms-admin-page .wpforms-disabled{cursor:default;opacity:.5;pointer-events:none}.wpforms-admin-page .wpforms-inactive{cursor:default;opacity:.5}.wpforms-admin-page .wpforms-inactive:hover{pointer-events:none}.wpforms-context-menu{position:absolute;z-index:100000000;display:none}.wpforms-context-menu-selective-left .wpforms-context-menu-list-item-has-child .wpforms-context-menu-list{left:-195px}.wpforms-context-menu-list{padding:8px 0;border-radius:6px;box-shadow:0 10px 20px 0 rgba(0,0,0,0.2);background-color:#1d2327;width:200px}.wpforms-context-menu-list.wpforms-context-menu-list-selective .wpforms-context-menu-list-item-icon{visibility:hidden}.wpforms-context-menu-list.wpforms-context-menu-list-selective .wpforms-context-menu-list-item.wpforms-context-menu-list-item-active .wpforms-context-menu-list-item-icon{visibility:visible}.wpforms-context-menu-list-divider{margin:8px 0;border-top:1px solid rgba(255,255,255,0.1)}.wpforms-context-menu-list-item{padding:8px 15px;display:flex;align-items:center;color:#ffffff;gap:10px;font-size:13px;font-weight:400;line-height:17px;cursor:pointer;position:relative;margin:0;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}.wpforms-context-menu-list-item-inactive{opacity:.5;cursor:default}.wpforms-context-menu-list-item .wpforms-badge{margin-inline-start:auto;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}.wpforms-context-menu-list-item-icon{font-size:14px;line-height:14px;width:14px}.wpforms-context-menu-list-item-icon i{color:rgba(255,255,255,0.75) !important}.wpforms-context-menu-list-item-has-child .wpforms-context-menu-list{display:none;position:absolute;right:-195px;top:-8px}.wpforms-context-menu-list-item-has-child:hover .wpforms-context-menu-list{display:block}.wpforms-context-menu-list-item-has-child:after{content:'\f105';color:rgba(255,255,255,0.5);font-family:"FontAwesome", sans-serif;font-size:14px;font-weight:400;position:absolute;right:15px}.wpforms-context-menu-list-item:not(.wpforms-context-menu-list-item-inactive):hover{background-color:#036aab}.wpforms-context-menu-list-item:not(.wpforms-context-menu-list-item-inactive):hover .wpforms-badge{color:#30abf0;background-color:#e6f4fe}.wpforms-context-menu-list-item.wpforms-hidden+.wpforms-context-menu-list-divider{display:none}#wpforms-context-menu-container{position:relative}#wpforms-context-menu-container .wpforms-context-menu-dropdown{top:36px;right:-10px}.wpforms-field.selected.first-selected:hover .wpforms-field-helper{opacity:0 !important}.wpforms-field-multi-field-menu{position:absolute;top:15px;right:15px;z-index:100000000;opacity:0;visibility:hidden;transition:opacity 0.15s ease, visibility 0.15s ease}.wpforms-field.selected.first-selected:not(.wpforms-field-multi-drag)>.wpforms-field-multi-field-menu{opacity:1;visibility:visible}.wpforms-field-multi-field-menu .wpforms-context-menu-list{padding:8px 0;border-radius:6px;box-shadow:0 10px 20px 0 rgba(0,0,0,0.2);background-color:#1d2327;width:200px}.wpforms-field-multi-field-menu .wpforms-context-menu-list-divider{margin:8px 0;border-top:1px solid rgba(255,255,255,0.1);width:100%}.wpforms-field-multi-field-menu .wpforms-context-menu-list-item{padding:8px 15px;display:flex;align-items:center;color:#ffffff;gap:10px;font-size:13px;font-weight:400;line-height:17px;cursor:pointer;position:relative;margin:0;width:100%;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}.wpforms-field-multi-field-menu .wpforms-context-menu-list-item-icon{font-size:14px;line-height:14px;width:14px}.wpforms-field-multi-field-menu .wpforms-context-menu-list-item-icon i{color:rgba(255,255,255,0.75) !important}.wpforms-field-multi-field-menu .wpforms-context-menu-list-item:hover{background-color:#036aab}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field:has(.wpforms-field-multi-field-menu),.wpforms-panel-fields .wpforms-field-repeater .wpforms-layout-column .wpforms-field:has(.wpforms-field-multi-field-menu){overflow:visible}.wpforms-copy-toast{position:fixed;bottom:20px;right:20px;z-index:9999;opacity:0;transform:translateX(100%);transition:all 0.4s ease-in-out;pointer-events:none}.wpforms-copy-toast.wpforms-copy-toast-visible{opacity:1;transform:translateX(0)}.wpforms-copy-toast .wpforms-copy-toast-content{background:#79c2f4;color:#ffffff;padding:8px 15px;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.15);display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;min-width:200px}.wpforms-copy-toast .wpforms-copy-toast-content i{font-size:16px}.wpforms-badge{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;text-transform:uppercase;font-weight:700;text-align:center;line-height:6px;user-select:none;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}.wpforms-badge i{margin-right:5px}.wpforms-badge-lg{font-size:10px;letter-spacing:0.5px;padding:8px 10px}.wpforms-badge-sm{font-size:8px;letter-spacing:0.4px;padding:6px 8px}.wpforms-badge-inline{display:inline-block}.wpforms-badge-corner{position:absolute;right:0;top:0}.wpforms-badge-block{display:block;width:fit-content}.wpforms-badge-rounded{border-radius:3px}.wpforms-badge-rounded-bl{border-radius:0 0 0 3px}.wpforms-badge-square{border-radius:0}.wpforms-badge-silver,.wpforms-badge-platinum{color:#999999;background-color:#ededed}.wpforms-badge-titanium{color:#8c8f94;background-color:#e5e5e6}.wpforms-badge-steel{color:#9ba4af;background-color:#e7ecf2}.wpforms-badge-slate{color:#9ba4af;background-color:#dbe4ee}.wpforms-badge-stone{color:#999999;background-color:#444444}.wpforms-badge-orange{color:#e79055;background-color:#fdf2eb}.wpforms-badge-blue{color:#30abf0;background-color:#e6f4fe}.wpforms-badge-green{color:#30b450;background-color:#e5f6e9}.wpforms-badge-red{color:#dd595b;background-color:#fae6e7}.wpforms-badge-purple{color:#9b64e8;background-color:#faf5fe} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields-types.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields-types.min.css new file mode 100644 index 0000000..32c358c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields-types.min.css @@ -0,0 +1 @@ +.choices{position:relative;margin-bottom:24px}.choices ::-webkit-input-placeholder{color:#999999}.choices ::-moz-placeholder{color:#999999;opacity:1}.choices ::placeholder{color:#999999}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#bbbbbb;cursor:not-allowed;user-select:none}.choices [hidden]{display:none !important}.choices *{box-sizing:border-box}.choices.is-open .choices__inner{border-radius:4px 4px 0 0}.choices.is-open.is-flipped .choices__inner{border-radius:0 0 4px 4px}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{display:flex;flex-wrap:wrap;align-items:center;padding-top:0 !important}.choices[data-type*="select-one"] input.choices__input{display:block;width:calc(100% - 20px) !important;margin:10px !important;padding:7px 12px !important;box-sizing:border-box !important;border:1px solid #8c8f94 !important;border-radius:4px !important;background-color:#fff}.choices[data-type*="select-one"] input.choices__input:focus{border:1px solid #056aab !important;box-shadow:0 0 0 1px #056aab !important;outline:none !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../../images/cross-inverse.svg");padding:0;background-size:8px;position:absolute;top:50%;inset-inline-end:0;margin-top:-10px;margin-inline-end:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0 0 0 2px #036aab}.choices[data-type*="select-one"] .choices__item[data-value=''] .choices__button{display:none}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"] .choices__inner{padding-right:24px}.choices[data-type*="select-multiple"] .choices__inner .choices__input{padding:0 4px !important;max-width:100%;background-color:transparent;line-height:22px}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-1.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:absolute;display:inline-block;vertical-align:baseline;margin-top:0;margin-bottom:0;margin-inline-start:5px;padding:0;background-color:transparent;background-image:url("../../images/cross.svg");background-size:12px;background-position:center center;background-repeat:no-repeat;width:12px;height:12px;line-height:1;opacity:.75;border-radius:0;inset-inline-end:4px}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{width:100%;background-color:#ffffff;padding:4px 6px 0;border:1px solid #8c8f94;overflow:hidden;border-radius:4px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;vertical-align:baseline;width:100%;padding:0 16px 0 4px;font-size:0.875em}.choices__list--single .choices__item{width:100%;overflow:hidden;text-overflow:ellipsis;padding-inline-end:20px;white-space:nowrap;color:#2c3338}.choices__list--single .choices__item[data-value='']{padding-inline-end:0}.choices__list--multiple{display:inline;height:auto;overflow:auto}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;position:relative;align-items:center;border-radius:2px;padding-block:4px;padding-inline:7px 20px;font-size:.75em;line-height:1;font-weight:400;margin:0 6px 4px 0;background-color:#036aab;border:1px solid #036aab;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 10px)}.choices__list--multiple .choices__item.is-highlighted{background-color:#036aab}.is-disabled .choices__list--multiple .choices__item{background-color:#bbbbbb;border:1px solid #bbbbbb}.choices__list--dropdown{display:none;z-index:101;position:absolute;width:100%;background-color:#ffffff;border:1px solid #8c8f94;top:100%;margin-top:-1px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;overflow:hidden;overflow-wrap:break-word}.choices__list--dropdown.is-active{display:block}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;vertical-align:top;padding:10px;font-size:.875em}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f6f6f6}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__list--dropdown .choices__placeholder{display:none}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:4px 4px 0 0}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:.75em;text-transform:uppercase;padding:10px;border-top:1px solid #b4b6b9;border-bottom:1px solid #b4b6b9;color:#a6a6a6}.choices__group[data-value="hidden"]>.choices__heading{display:none}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;background-color:transparent;margin:0 0 2px 0 !important;border:0 !important;border-radius:0 !important;min-height:20px !important;padding:2px 4px !important;height:auto !important;min-width:1ch;width:1ch;vertical-align:middle}.choices__input::-webkit-search-cancel-button{display:none}.choices__input--hidden{clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;min-width:auto !important;word-wrap:normal !important}.choices .choices__inner input.choices__input:focus{outline:none !important;box-shadow:none !important;border:none !important}.choices__placeholder{opacity:.5}#wpforms-admin-form-embed-wizard .choices.is-open.is-flipped .choices__inner{border-radius:4px 4px 0 0}#wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{border-radius:inherit}#wpforms-admin-form-embed-wizard .choices[data-type*="select-one"]:after{border:none;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E) no-repeat center;background-size:16px 16px;cursor:pointer;width:16px;height:16px;top:13px;right:8px;margin-top:0}#wpforms-admin-form-embed-wizard .choices[data-type*="select-one"].is-flipped:after{transform:rotate(180deg)}body.rtl .choices[data-type*="select-multiple"] .choices__inner{padding-right:4px;padding-left:24px}body.rtl .choices__list--single{padding-right:4px;padding-left:16px}body.rtl .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}body.rtl .choices__list--dropdown .choices__item{text-align:right}body.rtl .choices__input{padding-right:2px !important;padding-left:0 !important}body.rtl .choices[data-type*="select-multiple"] .choices__button,body.rtl .choices[data-type*="text"] .choices__button{margin-inline-end:0;border-left:none}@media (min-width: 640px){body.rtl .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}body.rtl .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.wpforms-builder-provider .choices.is-flipped .choices__inner{border-radius:0 0 4px 4px !important}.wpforms-builder-provider .choices.is-flipped .choices__list--dropdown.is-active{border-bottom-left-radius:0;border-bottom-right-radius:0}.wpforms-builder-provider .choices.is-open .choices__inner{border:1px solid #036aab;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#fff url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEzIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMi4wMDM0IDYuMDAxNzJDMTIuMDAzNCA2LjA5Nzk0IDExLjk1NTMgNi4yMDYxOSAxMS44ODMyIDYuMjc4MzVMMTEuMjgxOCA2Ljg3OTczQzExLjIwOTYgNi45NTE4OSAxMS4xMDE0IDcgMTEuMDA1MiA3QzEwLjkwODkgNyAxMC44MDA3IDYuOTUxODkgMTAuNzI4NSA2Ljg3OTczTDYuMDAxNzIgMi4xNTI5MkwxLjI3NDkxIDYuODc5NzNDMS4yMDI3NSA2Ljk1MTg5IDEuMDk0NSA3IDAuOTk4MjgyIDdDMC44OTAwMzQgNyAwLjc5MzgxNCA2Ljk1MTg5IDAuNzIxNjUgNi44Nzk3M0wwLjEyMDI3NSA2LjI3ODM1QzAuMDQ4MTA5OSA2LjIwNjE5IDAgNi4wOTc5NCAwIDYuMDAxNzJDMCA1LjkwNTUgMC4wNDgxMDk5IDUuNzk3MjUgMC4xMjAyNzUgNS43MjUwOUw1LjcyNTA5IDAuMTIwMjc1QzUuNzk3MjUgMC4wNDgxMDk1IDUuOTA1NSAwIDYuMDAxNzIgMEM2LjA5Nzk0IDAgNi4yMDYxOSAwLjA0ODEwOTUgNi4yNzgzNSAwLjEyMDI3NUwxMS44ODMyIDUuNzI1MDlDMTEuOTU1MyA1Ljc5NzI1IDEyLjAwMzQgNS45MDU1IDEyLjAwMzQgNi4wMDE3MloiIGZpbGw9IiM3Nzc3NzciLz4KPC9zdmc+Cg==") no-repeat right 5px top 55%}.wpforms-builder-provider .choices.is-focused .choices__inner{border-color:#056aab;box-shadow:0 0 0 1px #056aab}.wpforms-builder-provider .choices .choices__inner{background:#fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 55%;background-size:16px 16px}.wpforms-builder-provider .choices .choices__inner .choices__list--multiple{display:inline !important}.wpforms-builder-provider .choices .choices__inner:has(.wpforms-error){border:1px solid #d63638}.wpforms-builder-provider .choices.is-open:has(.wpforms-error) .choices__inner,.wpforms-builder-provider .choices.is-open:has(.wpforms-error) .choices__list--dropdown,.wpforms-builder-provider .choices.is-focused:has(.wpforms-error) .choices__inner,.wpforms-builder-provider .choices.is-focused:has(.wpforms-error) .choices__list--dropdown{border-color:#d63638;box-shadow:0 0 0 1px #d63638}.wpforms-builder-provider .choices.is-open:has(.wpforms-error) .choices__list--dropdown,.wpforms-builder-provider .choices.is-focused:has(.wpforms-error) .choices__list--dropdown{box-shadow:0 1px 0 1px #d63638}.wpforms-builder-provider .choices.is-open.is-flipped:has(.wpforms-error) .choices__list--dropdown,.wpforms-builder-provider .choices.is-focused.is-flipped:has(.wpforms-error) .choices__list--dropdown{box-shadow:0 -1px 0 1px #d63638}.wpforms-builder-provider .choices[data-type*="select-one"]:has(.wpforms-error) input.choices__input{border:1px solid #d63638 !important}.wpforms-builder-provider .choices[data-type*="select-one"]:has(.wpforms-error) input.choices__input:focus{box-shadow:0 0 0 1px #d63638 !important}.wpforms-builder-provider .choices .choices__list--dropdown{transform:translate3d(0, 0, 0)}.wpforms-builder-provider .choices .choices__list--dropdown .choices__item{color:#777777}.wpforms-builder-provider .choices[data-type*="text"] .choices__button,.wpforms-builder-provider .choices[data-type*="select-multiple"] .choices__button{background-image:url("../../images/cross.svg");background-size:12px;width:12px;border:none}.wpforms-builder-provider .choices[data-type*="text"]:after,.wpforms-builder-provider .choices[data-type*="select-one"]:after,.wpforms-builder-provider .choices[data-type*="select-multiple"]:after{content:none}.wpforms-builder-provider .choices[data-type*="select-one"] input.choices__input{padding:5px 12px !important}.wpforms-builder-provider .choices[data-type*="select-one"] .choices__inner .choices__item{font-size:14px;margin-bottom:0}.wpforms-panel-fields .choices[data-type*="select-multiple"]:after,.wpforms-panel-fields .choices[data-type*="select-one"]:after{content:none}.wpforms-panel-fields .choices__inner{background:#fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 7px;background-size:16px 16px}.rtl .wpforms-panel-fields .choices__inner{background-position:left 5px top 7px}.wpforms-panel-fields .choices__list--single{font-size:inherit}.wpforms-panel-fields .choices-list{margin-bottom:0}.wpforms-panel-fields .choices-list li{display:grid;grid-template-columns:auto auto 1fr auto auto;flex-wrap:wrap;align-items:center;gap:10px;border-bottom:1px solid #ced7e0;margin:0;padding:10px 0;margin-inline:1px 2px}.wpforms-panel-fields .choices-list li:first-of-type{padding-top:1px}.wpforms-panel-fields .choices-list li:last-of-type{border:0;padding-bottom:1px}.wpforms-panel-fields .choices-list li i{display:inline-block;font-size:16px;margin-block:0;margin-inline-end:0;width:auto}.wpforms-panel-fields .choices-list li input[type=text]{display:inline-block;margin-block:0;margin-inline-end:0;width:100%}.wpforms-panel-fields .choices-list li input[type=text].value{display:none}.wpforms-panel-fields .choices-list li input[type=checkbox],.wpforms-panel-fields .choices-list li input[type=radio]{margin:0}.wpforms-panel-fields .choices-list .add,.wpforms-panel-fields .choices-list .remove,.wpforms-panel-fields .choices-list .move{line-height:1}.wpforms-panel-fields .choices-list .move i{color:#86919e;font-size:18px;position:relative;top:.5px}.wpforms-panel-fields .choices-list .move:hover{cursor:grab}.wpforms-panel-fields .choices-list .add:hover{color:#215d8f}.wpforms-panel-fields .choices-list .remove{color:#d63638}.wpforms-panel-fields .choices-list .remove:hover{color:#b32d2e}.wpforms-panel-fields .wpforms-field-option-row-choices .show-values li input[type=text].value{display:block;grid-column:span var(--wpforms-choices-input-columns, 1);grid-column-end:calc(3 + var(--wpforms-choices-input-columns, 1))}.wpforms-panel-fields .wpforms-field-option-row-choices .wpforms-alert{margin-bottom:4px}.wpforms-panel-fields .wpforms-field-option-payment-multiple li,.wpforms-panel-fields .wpforms-field-option-payment-checkbox li,.wpforms-panel-fields .wpforms-field-option-payment-select li{grid-template-columns:auto auto 2.4fr 1fr auto auto;--wpforms-choices-input-columns: 2}.wpforms-panel-fields .wpforms-field-option-payment-multiple li input[type=text].value,.wpforms-panel-fields .wpforms-field-option-payment-checkbox li input[type=text].value,.wpforms-panel-fields .wpforms-field-option-payment-select li input[type=text].value{display:inline-block;margin-block:0;margin-inline-end:0;margin-inline-start:0}.wpforms-panel-fields ul.primary-input{margin-bottom:0}.wpforms-panel-fields .wpforms-list-2-columns ul,.wpforms-panel-fields .wpforms-list-3-columns ul{display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:flex-start;margin-bottom:-15px}.wpforms-panel-fields .wpforms-list-2-columns .wpforms-user-registration-display-name-notice,.wpforms-panel-fields .wpforms-list-3-columns .wpforms-user-registration-display-name-notice{margin-top:15px}.wpforms-panel-fields .wpforms-list-2-columns ul.primary-input li{display:block;margin-right:15px;margin-bottom:15px;width:calc( 50% - 7.5px)}.wpforms-panel-fields .wpforms-list-2-columns ul.primary-input li:nth-child(2n){margin-right:0;padding-right:0}.wpforms-panel-fields .wpforms-list-3-columns ul.primary-input li{display:block;margin-right:15px;margin-bottom:15px;width:calc( 100% / 3 - 10px)}.wpforms-panel-fields .wpforms-list-3-columns ul.primary-input li:nth-child(3n+3){margin-right:0;padding-right:0}.wpforms-panel-fields .wpforms-list-inline ul.primary-input{margin-bottom:-15px}.wpforms-panel-fields .wpforms-list-inline ul.primary-input li{display:inline-block;margin-right:15px;margin-bottom:15px;max-width:calc( 50% - 15px)}.wpforms-panel-fields .wpforms-list-inline .wpforms-user-registration-display-name-notice{margin-top:30px}.wpforms-panel-fields .wpforms-field.wpforms-field-checkbox .primary-input li,.wpforms-panel-fields .wpforms-field.wpforms-field-radio .primary-input li,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-checkbox .primary-input li,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-multiple .primary-input li{word-break:break-word;line-height:20px}.wpforms-panel-fields .wpforms-field.wpforms-field-select .choices[data-type*="select-multiple"] .choices__inner{padding-top:8px !important;padding-bottom:4px}.wpforms-panel-fields .wpforms-field.wpforms-field-select .choices[data-type*="select-multiple"] .choices__inner .choices__list--multiple:empty+.choices__input{min-width:100% !important;text-overflow:ellipsis;white-space:nowrap}.wpforms-panel-fields .wpforms-field.wpforms-field-select .choices.is-disabled .choices__list--multiple .choices__item{grid-template-columns:initial}.wpforms-admin-page .choices:after{content:"\f347";position:absolute;top:calc( 50% - 6px);inset-inline-end:6px;font-family:dashicons, sans-serif;color:#50575e;border:none;width:16px;height:16px;line-height:1;z-index:2}.wpforms-admin-page .choices.is-open:after{margin-top:-1px;transform:rotate(180deg)}.wpforms-admin-page .choices[data-type*="select-multiple"] .choices__inner{cursor:pointer}.wpforms-admin-page .is-focused .choices__inner,.wpforms-admin-page .is-open .choices__inner{border-color:#056aab;box-shadow:0 0 0 1px #056aab;outline:none}.wpforms-admin-page .is-flipped.is-open .choices__inner{border-color:#056aab;box-shadow:0 0 0 1px #056aab;outline:none}.wpforms-admin-page .is-open .choices__list--dropdown{border-color:#056aab;border-top-color:#72757b;border-bottom:0;box-shadow:0 1px 0 1px #056aab}.wpforms-admin-page .is-open.is-flipped .choices__list--dropdown{border-top:0;border-bottom:1px solid #72757b;box-shadow:0 -1px 0 1px #056aab}.choices__inner{min-height:36px;padding-top:6px;line-height:1.2}div.wpforms-container.wpforms-edit-entry-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner{max-height:36px}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner .choices__list{overflow:hidden;display:block;max-height:24px}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"][aria-expanded="false"].choices__show-more:before{position:absolute;content:'\f11c';font-family:dashicons, sans-serif;top:7px;height:22px;line-height:22px;inset-inline-end:28px;text-align:center;font-size:14px;color:#a7aaad;box-sizing:border-box;pointer-events:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms-admin-page:not(.wpforms_page_wpforms-entries) .choices[data-type*="select-multiple"] .choices__inner{padding-inline-end:40px}.wpforms-admin-page#wpforms-builder .choices[data-type*="select-multiple"][aria-expanded="false"] .choices__inner{max-height:32px}.wpforms-admin-page#wpforms-builder .choices[data-type*="select-multiple"][aria-expanded="false"].choices__show-more:before{top:5px}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list.show-images .wpforms-image-upload{display:block}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .wpforms-image-upload{display:none}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload{grid-column:span var(--wpforms-choices-input-columns, 1);grid-column-end:calc(3 + var(--wpforms-choices-input-columns, 1))}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload .preview{background-color:#ffffff;border-radius:4px;display:block;padding:10px;position:relative;width:100%}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload .preview:empty{padding:0}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload .preview a{color:#d63638;display:block;position:absolute;right:10px;top:10px}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload .preview a:hover{color:#b32d2e}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload .preview a i{margin:0}.wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-option-row-choices .wpforms-image-upload .preview img{display:block;margin:0 auto;max-height:100px;max-width:100%}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-inline .primary-input li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-inline .primary-input li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-inline .primary-input li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-inline .primary-input li{vertical-align:top}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices{font-size:0}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices input,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices input,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices input,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices input{display:none}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices img,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices img,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices img,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices img{max-width:250px;width:100%}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices .wpforms-image-choices-label{font-size:14px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices li{margin-bottom:15px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices li>label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices li>label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices li>label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices li>label{width:100%}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern li.wpforms-selected label{border-color:#ffffff;box-shadow:0 2px 10px rgba(0,0,0,0.15)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-image:after{opacity:1}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern li.wpforms-selected .wpforms-image-choices-label{font-weight:600}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern img,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern img,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern img,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern img{display:inline;margin:0 auto}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern label{background-color:#ffffff;border:1px solid transparent;border-radius:4px;display:inline-block;margin:0 auto;padding:20px;text-align:center}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-image:after,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-image:after{background:url("../../images/builder/check-circle.svg") no-repeat;background-size:32px 32px;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,0.25);content:"";height:32px;left:50%;margin:-16px 0 0 -16px;opacity:0;position:absolute;top:50%;width:32px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-modern .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-modern .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-classic li.wpforms-selected label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-classic li.wpforms-selected label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-classic li.wpforms-selected label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-classic li.wpforms-selected label{border-color:#6a6f76;border-width:2px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-classic img,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-classic img,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-classic img,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-classic img{display:inline;margin:0 auto}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-classic label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-classic label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-classic label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-classic label{background-color:#ffffff;border:1px solid #ffffff;display:inline-block;margin:0 auto;padding:10px;text-align:center}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-classic label:hover,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-classic label:hover,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-classic label:hover,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-classic label:hover{border-color:#6a6f76}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-classic .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-classic .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-classic .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-classic .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-none img,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-none img,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-none img,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-none img{display:inline;margin:0}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-none label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-none label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-none label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-none label{display:inline;line-height:1;margin:0;padding:0}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-none label input,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-none label input,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-none label input,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-none label input{display:inline-block !important;margin-bottom:5px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-none .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-none .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-none .wpforms-image-choices-image,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-none .wpforms-image-choices-image{display:block}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-image-choices-none .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-image-choices-none .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-image-choices-none .wpforms-image-choices-label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-image-choices-none .wpforms-image-choices-label{margin-top:8px}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list.show-icons .wpforms-icon-select{display:flex}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .wpforms-icon-select{display:none;flex-direction:column;gap:10px;align-items:center;position:relative;padding:10px;border-radius:4px;background:#ffffff;color:#0399ed;font-size:14px;line-height:14px;cursor:pointer;grid-column:span var(--wpforms-choices-input-columns, 1);grid-column-end:calc(3 + var(--wpforms-choices-input-columns, 1))}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .wpforms-icon-select:hover .fa-edit{color:#3c434a}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .wpforms-icon-select span{color:#b0b6bd}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .fa-edit{position:absolute;top:10px;inset-inline-end:10px;border:none;background:transparent;color:#8c8f94}.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .ic-fa-brands,.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .ic-fa-regular,.wpforms-panel-fields .wpforms-panel-sidebar .choices-list .ic-fa-solid{margin-left:0;font-size:var(--wpforms-icon-choices-size-medium);line-height:var(--wpforms-icon-choices-size-medium);color:var(--wpforms-icon-choices-color)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices{margin-bottom:-15px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices li{min-width:120px;max-width:100%;margin-bottom:15px;text-align:center}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices label{cursor:pointer;width:100%}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices input,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices input,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices input,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices input{display:none}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices .wpforms-icon-choices-label,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices .wpforms-icon-choices-label,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices .wpforms-icon-choices-label,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices .wpforms-icon-choices-label{font-size:14px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block;margin-bottom:15px;color:#0399ed}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices .wpforms-icon-choices-icon i{color:var(--wpforms-icon-choices-color)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices-small .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices-small .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices-small .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices-small .wpforms-icon-choices-icon i{font-size:var(--wpforms-icon-choices-size-small);line-height:var(--wpforms-icon-choices-size-small);width:calc( var(--wpforms-icon-choices-size-small) * 1.25)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices-medium .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices-medium .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices-medium .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices-medium .wpforms-icon-choices-icon i{font-size:var(--wpforms-icon-choices-size-medium);line-height:var(--wpforms-icon-choices-size-medium);width:calc( var(--wpforms-icon-choices-size-medium) * 1.25)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices-large .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices-large .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices-large .wpforms-icon-choices-icon i,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices-large .wpforms-icon-choices-icon i{font-size:var(--wpforms-icon-choices-size-large);line-height:var(--wpforms-icon-choices-size-large);width:calc( var(--wpforms-icon-choices-size-large) * 1.25)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default,.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-default,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-modern,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-default,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-modern,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern{margin:0 1px -16px 1px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-bottom:17px}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon{padding:15px 20px 45px 20px;background-color:#ffffff;border-radius:6px;box-shadow:0 0 0 1px #c3c4c7;position:relative}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg{display:block;position:absolute;border-radius:6px;top:0;right:0;bottom:0;left:0}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern li{padding:20px 20px 15px 20px;box-shadow:0 0 0 1px #c3c4c7;border-radius:6px;background-color:#ffffff}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-classic li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-classic li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-classic li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-classic li{padding:20px 20px 15px 20px;background-color:#ffffff}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-none li,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-none li,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-none li,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-none li{text-align:initial}.wpforms-panel-fields .wpforms-field-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-none input,.wpforms-panel-fields .wpforms-field-radio ul.wpforms-icon-choices.wpforms-icon-choices-none input,.wpforms-panel-fields .wpforms-field-payment-multiple ul.wpforms-icon-choices.wpforms-icon-choices-none input,.wpforms-panel-fields .wpforms-field-payment-checkbox ul.wpforms-icon-choices.wpforms-icon-choices-none input{display:inline-block !important}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n),.wpforms-panel-fields .wpforms-field-radio.wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n),.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n),.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:17px;width:calc( 100% / 2 - 8.5px)}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n),.wpforms-panel-fields .wpforms-field-radio.wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n),.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n),.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:17px;width:calc( 100% / 3 - 11.33333px)}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-icon-choices,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-inline ul.wpforms-icon-choices,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-icon-choices,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-inline ul.wpforms-icon-choices{display:flex;flex-wrap:wrap}.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-checkbox.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-radio.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-multiple.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-panel-fields .wpforms-field-payment-checkbox.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:17px}.wpforms-panel-fields .wpforms-field-checkbox .description:not(:empty),.wpforms-panel-fields .wpforms-field-radio .description:not(:empty),.wpforms-panel-fields .wpforms-field-payment-multiple .description:not(:empty),.wpforms-panel-fields .wpforms-field-payment-checkbox .description:not(:empty){margin-top:15px}.wpforms-panel-fields .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-icon-choices-icon:after,.wpforms-panel-fields .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;position:absolute;bottom:15px;left:calc( 50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #c3c4c7;border-radius:3px;margin:15px auto 0}.wpforms-panel-fields .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-panel-fields .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-panel-fields .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-panel-fields .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before{content:"";box-sizing:border-box;position:absolute;z-index:1;left:calc( 50% - 6px);bottom:23px;display:block;width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-panel-fields .wpforms-field-radio .wpforms-icon-choices-default .wpforms-icon-choices-icon:after,.wpforms-panel-fields .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;position:absolute;bottom:15px;left:calc( 50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #c3c4c7;border-radius:50%;margin:15px auto 0}.wpforms-panel-fields .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-panel-fields .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-panel-fields .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-panel-fields .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:1;bottom:19px;left:calc( 50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-panel-fields .wpforms-field .choices[data-type*="select-multiple"] .choices__input{width:fit-content;vertical-align:top;font-size:16px}.wpforms-panel-fields .wpforms-field .choices[data-type*="select-one"] .choices__inner{display:block}.wpforms-panel-fields .wpforms-field .choices[data-type*="select-one"] .choices__list--single{padding-left:3px}.wpforms-panel-fields .wpforms-field .choices__inner{min-height:40px;padding-left:7px;padding-top:6px !important}.wpforms-panel-fields .wpforms-field .choices__inner input.choices__input{height:auto;padding-left:3px !important}.wpforms-panel-fields .wpforms-field .choices__inner,.wpforms-panel-fields .wpforms-field .choices__input{background-color:#ffffff;cursor:pointer;user-select:none}.wpforms-panel-fields .wpforms-field .choices__list:not(.choices__list--multiple) .choices__item.choices__placeholder,.wpforms-panel-fields .wpforms-field .choices__list:not(.choices__list--multiple) .choices__item.choices__item--selectable{line-height:18px;margin:4px 0;cursor:pointer;color:#a7aaad}.wpforms-panel-fields .wpforms-field-select.size-small .choices,.wpforms-panel-fields .wpforms-field-payment-select.size-small .choices{width:25%}.wpforms-panel-fields .wpforms-field-select .choices,.wpforms-panel-fields .wpforms-field-select.size-medium .choices,.wpforms-panel-fields .wpforms-field-payment-select .choices,.wpforms-panel-fields .wpforms-field-payment-select.size-medium .choices{min-width:250px;width:60%}.wpforms-panel-fields .wpforms-field-select.size-large .choices,.wpforms-panel-fields .wpforms-field-payment-select.size-large .choices{width:100%}.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled.size-small .primary-input,.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled.size-small .choices{width:calc( 25% - 85px) !important;min-width:165px}.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled.size-large .primary-input,.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled.size-large .choices{width:calc( 100% - 85px) !important}.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled .primary-input,.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled .choices{float:inline-start;width:calc( 60% - 85px);min-width:180px}.wpforms-panel-fields .wpforms-field-payment-select.payment-quantity-enabled .description{padding-top:5px;margin:0}@-moz-document url-prefix(){.wpforms-panel-fields .choices__item.choices__placeholder,.wpforms-panel-fields .choices__item.choices__item--selectable{margin-right:6px}}.wpforms-panel-fields .wpforms-field-option-name .format-selected-simple .wpforms-field-option-row-first,.wpforms-panel-fields .wpforms-field-option-name .format-selected-simple .wpforms-field-option-row-middle,.wpforms-panel-fields .wpforms-field-option-name .format-selected-simple .wpforms-field-option-row-last{display:none}.wpforms-panel-fields .wpforms-field-option-name .format-selected-first-last .wpforms-field-option-row-simple,.wpforms-panel-fields .wpforms-field-option-name .format-selected-first-last .wpforms-field-option-row-middle{display:none}.wpforms-panel-fields .wpforms-field-option-name .format-selected-first-middle-last .wpforms-field-option-row-simple{display:none}.wpforms-panel-fields .wpforms-field-name .format-selected input[type=text]{width:100%;min-width:initial}.wpforms-panel-fields .wpforms-field-name.size-small .format-selected{width:25%}.wpforms-panel-fields .wpforms-field-name .format-selected,.wpforms-panel-fields .wpforms-field-name.size-medium .format-selected{width:60%;min-width:250px}.wpforms-panel-fields .wpforms-field-name.size-large .format-selected{width:100%}.wpforms-panel-fields .wpforms-field-name .format-selected-first-last .wpforms-simple,.wpforms-panel-fields .wpforms-field-name .format-selected-first-last .wpforms-middle-name,.wpforms-panel-fields .wpforms-field-name .format-selected-first-middle-last .wpforms-simple,.wpforms-panel-fields .wpforms-field-name .format-selected-simple .wpforms-first-name,.wpforms-panel-fields .wpforms-field-name .format-selected-simple .wpforms-middle-name,.wpforms-panel-fields .wpforms-field-name .format-selected-simple .wpforms-last-name{display:none}.wpforms-panel-fields .wpforms-field-name .format-selected-first-last .wpforms-first-name{float:left;width:calc( 50% - 10px)}.wpforms-panel-fields .wpforms-field-name .format-selected-first-last .wpforms-last-name{float:right;width:calc( 50% - 10px)}.wpforms-panel-fields .wpforms-field-name .format-selected-first-middle-last .wpforms-first-name{float:left;margin-right:20px;width:calc( 40% - 20px)}.wpforms-panel-fields .wpforms-field-name .format-selected-first-middle-last .wpforms-middle-name{float:left;width:20%}.wpforms-panel-fields .wpforms-field-name .format-selected-first-middle-last .wpforms-last-name{float:right;width:calc( 40% - 20px)}.wpforms-panel-fields .wpforms-field-option .wpforms-field-option-row-allowlist,.wpforms-panel-fields .wpforms-field-option .wpforms-field-option-row-denylist{display:none}.wpforms-panel-fields .wpforms-field-option.wpforms-filter-allowlist .wpforms-field-option-row-allowlist,.wpforms-panel-fields .wpforms-field-option.wpforms-filter-denylist .wpforms-field-option-row-denylist{display:block;margin-top:-10px}.wpforms-panel-fields .wpforms-field .wpforms-confirm input[type=email],.wpforms-panel-fields .wpforms-field .wpforms-confirm input[type=password]{width:100%;min-width:initial}.wpforms-panel-fields .wpforms-field.size-large .wpforms-confirm{width:100%}.wpforms-panel-fields .wpforms-field .wpforms-confirm,.wpforms-panel-fields .wpforms-field.size-medium .wpforms-confirm{width:60%;min-width:250px}.wpforms-panel-fields .wpforms-field.size-small .wpforms-confirm{width:25%}.wpforms-panel-fields .wpforms-confirm-disabled .wpforms-confirm-confirmation,.wpforms-panel-fields .wpforms-confirm-disabled .wpforms-confirm-primary .wpforms-sub-label{display:none}.wpforms-panel-fields .wpforms-confirm-enabled .wpforms-confirm-primary{float:left;width:calc( 50% - 10px)}.wpforms-panel-fields .wpforms-confirm-enabled .wpforms-confirm-confirmation{float:right;width:calc( 50% - 10px)}.wpforms-panel-fields .wpforms-field-entry-preview .wpforms-entry-preview-notice{padding:20px;background:#fef8ee;border:1px solid #f0b849;border-radius:4px;word-break:break-word}.wpforms-panel-fields .wpforms-field-entry-preview .wpforms-field-duplicate{display:none}.wpforms-panel-fields .wpforms-field-entry-preview .wpforms-alert{margin-bottom:0}#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices .wpforms-help-tooltip,#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices .toggle-bulk-add-display,#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices .add,#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices .remove,#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices .move,#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices .default{display:none}#wpforms-panel-fields .wpforms-field-option-gdpr-checkbox .wpforms-field-option-row-choices li input[type=text]{width:calc( 100% - 2px);margin:0}.wpforms-panel-fields .wpforms-field-recaptcha{background-color:#f6f7f7;border-start-start-radius:25px;border-end-start-radius:25px;display:none;position:absolute;inset-inline-end:30px;top:49px;padding-inline-start:13px;padding-inline-end:30px}.wpforms-panel-fields .wpforms-field-recaptcha-wrap{align-items:center;display:flex;height:50px}.wpforms-panel-fields .wpforms-field-recaptcha-wrap-l{margin-inline-end:10px;margin-top:4px}.wpforms-panel-fields .wpforms-field-recaptcha-wrap-r{flex-grow:1}.wpforms-panel-fields .wpforms-field-hcaptcha-icon,.wpforms-panel-fields .wpforms-field-recaptcha-icon,.wpforms-panel-fields .wpforms-field-turnstile-icon{width:28px;height:auto}.wpforms-panel-fields .wpforms-field-hcaptcha-title,.wpforms-panel-fields .wpforms-field-recaptcha-title,.wpforms-panel-fields .wpforms-field-turnstile-title{font-weight:600;line-height:1;margin:0;font-size:13px}.wpforms-panel-fields .wpforms-field-recaptcha-desc{color:#6a6f76;line-height:15px;margin:0;overflow:hidden;white-space:nowrap}.wpforms-panel-fields .wpforms-field-recaptcha-desc-txt,.wpforms-panel-fields .wpforms-field-recaptcha-desc-icon{vertical-align:middle;font-size:12px}.wpforms-panel-fields .wpforms-field-recaptcha-desc-icon{color:#0399ed;width:14px;margin-inline-start:5px}.wpforms-panel-fields .wpforms-field-recaptcha-desc-icon path{fill:currentColor}.wpforms-panel-fields .wpforms-field-recaptcha-icon,.wpforms-panel-fields .wpforms-field-recaptcha-title,.wpforms-panel-fields .wpforms-field-turnstile-icon,.wpforms-panel-fields .wpforms-field-turnstile-title{display:none}.wpforms-panel-fields .wpforms-field-recaptcha.is-recaptcha .wpforms-field-hcaptcha-icon,.wpforms-panel-fields .wpforms-field-recaptcha.is-recaptcha .wpforms-field-hcaptcha-title,.wpforms-panel-fields .wpforms-field-recaptcha.is-recaptcha .wpforms-field-turnstile-icon,.wpforms-panel-fields .wpforms-field-recaptcha.is-recaptcha .wpforms-field-turnstile-title{display:none}.wpforms-panel-fields .wpforms-field-recaptcha.is-recaptcha .wpforms-field-recaptcha-icon,.wpforms-panel-fields .wpforms-field-recaptcha.is-recaptcha .wpforms-field-recaptcha-title{display:block}.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-turnstile-icon,.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-turnstile-title{display:block}.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-turnstile-icon{margin-bottom:3px}.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-recaptcha-icon,.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-recaptcha-title,.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-hcaptcha-icon,.wpforms-panel-fields .wpforms-field-recaptcha.is-turnstile .wpforms-field-hcaptcha-title{display:none}.wpforms-panel-fields .wpforms-field-option-row-questions li{grid-template-columns:1fr auto auto}.wpforms-panel-fields .wpforms-field-option-row-questions li input[type=text].value{display:block}.wpforms-panel-fields .wpforms-field-option-row-questions li input[type=text]:nth-of-type(2){grid-column:1}.wpforms-panel-fields .wpforms-field-captcha .format-selected-math input[type=text]{display:inline-block;width:70px}.wpforms-panel-fields .wpforms-field-captcha .format-selected-qa .wpforms-question{margin:0 0 5px 0}.wpforms-panel-fields .wpforms-field-captcha .format-selected-math .wpforms-question,.wpforms-panel-fields .wpforms-field-captcha .format-selected-qa .wpforms-equation{display:none}.wpforms-panel-fields .wpforms-field-option-row-min_max .wpforms-input-row{display:flex}.wpforms-panel-fields .wpforms-field-option-row-min_max .wpforms-input-row .minimum{margin-right:10px;width:50%}.wpforms-panel-fields .wpforms-field-option-row-min_max .wpforms-input-row .maximum{width:50%}.wpforms-panel-fields .wpforms-field-option-row-min_max .wpforms-input-row input{width:calc( 100% - 2px)}.wpforms-panel-fields .wpforms-field-option-row-default_value .wpforms-alert{margin-top:20px}.wpforms-panel-fields .wpforms-field-number-slider input[type=range]{background:#ffffff;border:1px solid #c3c4c7;border-radius:2em;height:10px;margin:10px 0;outline:none;padding:0;appearance:none;-webkit-appearance:none}.wpforms-panel-fields .wpforms-field-number-slider input[type=range]::-ms-track{color:transparent}.wpforms-panel-fields .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{background:#8c8f94;border-radius:100%;height:17px;width:17px;appearance:none;-webkit-appearance:none}.wpforms-panel-fields .wpforms-field-number-slider input[type=range]::-moz-range-thumb,.wpforms-panel-fields .wpforms-field-number-slider input[type=range]::-ms-thumb{background:#8c8f94;border-radius:100%;height:17px;width:17px}.wpforms-panel-fields .wpforms-field-number-slider .wpforms-number-slider-hint{color:#6a6f76;display:block;font-size:14px}.wpforms-field-option-internal-information .wpforms-field-option-row-description textarea,.wpforms-field-option-internal-information .wpforms-field-option-row-expanded-description textarea{height:160px;vertical-align:top}.wpforms-field-option-internal-information .note{margin-top:10px}.wpforms-panel-fields .wpforms-field.wpforms-field-internal-information{padding-bottom:0}.wpforms-panel-fields .wpforms-field.internal-information-editable .internal-information-wrap{margin-inline-end:55px;margin-bottom:15px}.wpforms-panel-fields .wpforms-field.internal-information-not-editable:hover>.wpforms-field-duplicate{display:none}.wpforms-panel-fields .wpforms-field.internal-information-not-editable{border:none !important;margin-bottom:15px}.wpforms-panel-fields .wpforms-field.internal-information-not-editable *{cursor:default}.wpforms-panel-fields .wpforms-field.internal-information-not-editable a{cursor:pointer}.wpforms-panel-fields .wpforms-field.internal-information-not-editable a *{cursor:pointer}.wpforms-panel-fields .wpforms-field.internal-information-not-editable.active{background-color:#ffffff}.wpforms-panel-fields .wpforms-field.internal-information-not-editable .wpforms-field-helper{display:none}.wpforms-panel-fields .wpforms-field.internal-information-not-editable .wpforms-field-delete{top:30px;inset-inline-end:30px;color:#6a6f76;font-size:24px;width:24px;height:24px;opacity:0.5;text-decoration:none;transition-duration:0.05s}.wpforms-panel-fields .wpforms-field.internal-information-not-editable .wpforms-field-delete:hover{color:inherit;opacity:1}.wpforms-panel-fields .wpforms-field.internal-information-not-editable .wpforms-field-delete i{font-family:dashicons;display:inline-block;font-size:1em;line-height:1;font-weight:400;font-style:normal;speak:none;text-rendering:auto;vertical-align:top;text-align:center;color:inherit}.wpforms-panel-fields .wpforms-field.internal-information-not-editable .wpforms-field-delete i::before{content:'\f335'}.wpforms-panel-fields .wpforms-field .internal-information-wrap{min-height:62px;background-color:#fdfaf2;border:1px solid rgba(0,0,0,0.07);border-radius:6px;padding-top:20px;padding-inline-end:40px;padding-inline-start:20px;box-shadow:0 1px 2px rgba(0,0,0,0.07)}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-lightbulb{float:inline-start;width:14px;padding-top:1px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content{margin-inline-start:30px;color:#444444;font-size:15px;line-height:22px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-heading .label-title{font-size:17px;line-height:22px;margin-bottom:10px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-description :last-child,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-expanded-description :last-child{margin-bottom:20px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-description .description,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-expanded-description .expanded-description{font-size:15px;line-height:22px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-description .description p,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-expanded-description .expanded-description p{line-height:22px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-description .description{color:#444444;clear:none;margin-top:0}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content hr{border:none;border-top:1px solid #ebe9e1;margin-top:19px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-expanded-description{margin-top:15px;display:none;border-top:1px solid #ebe9e1}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-expanded-description .expanded-description p{margin-bottom:0;margin-top:17px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description .wpforms-field-internal-information-checkbox-wrap,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description .wpforms-field-internal-information-checkbox-wrap{clear:both;margin-top:17px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description .wpforms-field-internal-information-checkbox-wrap .wpforms-field-internal-information-checkbox-input,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description .wpforms-field-internal-information-checkbox-wrap .wpforms-field-internal-information-checkbox-input{float:inline-start}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description .wpforms-field-internal-information-checkbox-wrap input[type=checkbox],.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description .wpforms-field-internal-information-checkbox-wrap input[type=checkbox]{margin-bottom:0}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description .wpforms-field-internal-information-checkbox-wrap .wpforms-field-internal-information-checkbox-label,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description .wpforms-field-internal-information-checkbox-wrap .wpforms-field-internal-information-checkbox-label{margin-inline-start:30px;position:relative;top:-2px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description a,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description a{color:#444;text-decoration:underline}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description a:hover,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description a:focus,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description a:hover,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description a:focus{text-decoration:none}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description ol,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description ol{list-style-type:revert}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description ul,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description ul{list-style-type:revert}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description ul,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .expanded-description ol,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description ul,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .description ol{margin-block:1em;margin-inline:0;padding-inline-start:1em}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button{clear:both}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button a{display:inline-block;background-color:#e6a700;color:white;padding:9px 14px;border-radius:4px;text-decoration:none;font-weight:600}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button a:hover{background-color:#d79500}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button .cta-button{margin-bottom:19px}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button .cta-button.cta-expand-description{padding-top:20px;border-top:1px solid #ebe9e1}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button .cta-expand-description a .icon{padding-inline-start:8px;position:relative;top:-1px;cursor:pointer}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button .cta-expand-description a .icon *{cursor:pointer}.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button .cta-expand-description.not-expanded span.icon.expanded,.wpforms-panel-fields .wpforms-field .internal-information-wrap .internal-information-content .wpforms-field-internal-information-row-cta-button .cta-expand-description.expanded span.icon.not-expanded{display:none}.internal-information-field-user-mode{padding:20px 20px 0 20px}.wpforms-field-internal-information .internal-information-lightbulb svg path{fill:#e6a700}.wpforms-field-internal-information .wpforms-field-delete svg path{fill:#6a6f76}.wpforms-field-internal-information .cta-button .icon.expanded svg,.wpforms-field-internal-information .cta-button .icon.not-expanded svg{width:10px;height:7px}.wpforms-field-internal-information .cta-button .icon.expanded svg path,.wpforms-field-internal-information .cta-button .icon.not-expanded svg path{fill:currentColor}.wpforms-panel-fields .wpforms-field-address.size-small .wpforms-address-scheme{width:25%}.wpforms-panel-fields .wpforms-field-address .wpforms-address-scheme,.wpforms-panel-fields .wpforms-field-address.size-medium .wpforms-address-scheme{width:60%;min-width:250px}.wpforms-panel-fields .wpforms-field-address.size-large .wpforms-address-scheme{width:100%}.wpforms-panel-fields .wpforms-field-address .wpforms-hide{display:none}.wpforms-panel-fields .wpforms-field-address .wpforms-address-scheme input[type=text],.wpforms-panel-fields .wpforms-field-address .wpforms-address-scheme select{width:100%;min-width:initial}.wpforms-panel-sidebar .wpforms-field-options.wpforms-tab-content.wpforms-content-editor-expanded{overflow:visible !important}.wpforms-panel-sidebar .wpforms-field-option.wpforms-field-has-tinymce.wpforms-content-editor-expanded .wpforms-expandable-editor{width:786px;position:fixed;z-index:99}.wpforms-panel-sidebar .wpforms-field-option.wpforms-field-has-tinymce.wpforms-content-editor-expanded .wpforms-expandable-editor .wp-core-ui.wp-editor-wrap{filter:drop-shadow(0px 2px 15px rgba(0,0,0,0.07))}.rtl .wpforms-panel-sidebar .wp-media-buttons .button{margin-right:0}.wpforms-panel-sidebar .mce-rtl .mce-flow-layout .mce-flow-layout-item>div{text-align:right}.wpforms-panel-sidebar-closed .wpforms-field-option.wpforms-content-editor-expanded .wpforms-expandable-editor{display:none}.wpforms-field-has-tinymce .wpforms-field-option-group .wpforms-field-option-group-inner{padding-bottom:5px}.wpforms-field-has-tinymce .mce-toolbar-grp{height:40px;overflow:hidden;padding-left:2px}.wpforms-field-has-tinymce .mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:2px;border-color:#b0b6bd}.wpforms-field-has-tinymce .mce-toolbar .mce-widget.mce-btn{margin-bottom:5px}.wpforms-field-has-tinymce .mce-toolbar .mce-ico{color:#6a6f76}.wpforms-field-has-tinymce .wpforms-field-option-row-content{margin-bottom:10px}.wpforms-field-has-tinymce .wpforms-field-option-row-content .quicktags-toolbar{border:1px solid #b0b6bd;border-bottom:none;border-start-start-radius:4px;background-color:#f6f7f7;height:37px;overflow:hidden}.wpforms-field-has-tinymce .wpforms-field-option-row-content textarea.wp-editor-area{border:solid 1px #b0b6bd;border-start-start-radius:0;border-start-end-radius:0;border-end-start-radius:4px;border-end-end-radius:4px;width:100%;margin-top:0}.wpforms-field-has-tinymce .wpforms-field-option-row-content textarea.wp-editor-area:focus{border-color:#b0b6bd;box-shadow:none}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons{display:flex;justify-content:space-between}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons button{height:32px;font-size:14px;line-height:17px;padding:0 9px;border-radius:4px}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons button svg{position:relative;top:2px;margin-right:4px}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons button .wpforms-expand-button-label{padding-left:4px}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .update-preview{display:none;background-color:#036aab;color:#ffffff;box-shadow:none;border-color:#036aab}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .update-preview:hover{background-color:#215d8f;border-color:#215d8f;color:#ffffff}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor{margin-inline-start:auto;color:#036aab;box-shadow:none;border-color:#036aab;background:rgba(255,255,255,0.5)}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor:hover{color:#024068;border-color:#024068;background:rgba(255,255,255,0.5)}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor svg{width:14px;height:14px}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor path{fill:currentColor}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor svg.collapse{display:none}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor svg.expand{display:inline-block}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor.wpforms-content-editor-expanded svg.collapse{display:inline-block}.wpforms-field-has-tinymce .wpforms-field-content-action-buttons .expand-editor.wpforms-content-editor-expanded svg.expand{display:none}.wpforms-field-has-tinymce .wp-media-buttons{padding-bottom:6px}.wpforms-field-has-tinymce .wp-media-buttons button.insert-media{color:#036aab;border-color:currentColor;border-radius:4px;background:rgba(255,255,255,0.5);vertical-align:top;box-shadow:none;min-height:30px;font-size:14px;padding:6px 10px 4px 6px;margin-bottom:6px;line-height:17px;height:unset}.wpforms-field-has-tinymce .wp-media-buttons button.insert-media:hover{color:#024068}.wpforms-field-has-tinymce .wp-media-buttons button.insert-media span.wp-media-buttons-icon{width:20px;height:20px;line-height:1;vertical-align:middle}.wpforms-field-has-tinymce .wp-media-buttons button:active{position:initial;margin-top:0px;margin-bottom:6px;top:0px}.wpforms-field-has-tinymce .wp-media-buttons>*:not(.insert-media){display:none !important}.wpforms-field-has-tinymce .wp-editor-tabs button{border-start-end-radius:4px;border-start-start-radius:4px;border-color:#b0b6bd;border-bottom-color:#f6f7f7;background:#f6f7f7;color:#8c8f94;position:relative}.wpforms-field-has-tinymce .wp-editor-tabs button:before,.wpforms-field-has-tinymce .wp-editor-tabs button:after{content:'';position:absolute;bottom:-1px;display:block;width:1px;height:50%;background-color:#b0b6bd}.wpforms-field-has-tinymce .wp-editor-tabs button:before{left:-1px}.wpforms-field-has-tinymce .wp-editor-tabs button:after{right:-1px}.wpforms-field-has-tinymce .tmce-active .wp-editor-tabs button.switch-html,.wpforms-field-has-tinymce .html-active .wp-editor-tabs button.switch-tmce{border-bottom-color:#b0b6bd;background-color:#e8e9e9}.wpforms-field-has-tinymce .html-active .wp-editor-container{border:none}.wpforms-field-has-tinymce .wp-editor-wrap.tmce-initialized>.wp-editor-container{border-width:0}.wpforms-field-has-tinymce .wp-editor-container,.wpforms-field-has-tinymce .mce-panel,.wpforms-field-has-tinymce .mce-container-body{border-radius:4px;border-color:#b0b6bd;background:#f6f7f7}.wpforms-field-has-tinymce .wp-editor-container.mce-statusbar,.wpforms-field-has-tinymce .mce-panel.mce-statusbar,.wpforms-field-has-tinymce .mce-container-body.mce-statusbar{border-start-start-radius:0}.wpforms-field-has-tinymce .wp-editor-container iframe,.wpforms-field-has-tinymce .mce-panel iframe,.wpforms-field-has-tinymce .mce-container-body iframe{max-height:57vh}.wpforms-field-has-tinymce .mce-first>.mce-container-body,.wpforms-field-has-tinymce .mce-first>.mce-container-body>.mce-toolbar-grp{border-radius:0;border-start-end-radius:4px}.wpforms-field-has-tinymce .mce-tinymce>.mce-container-body.mce-stack-layout{border-radius:4px}.wpforms-field-has-tinymce .wp-core-ui.wp-editor-wrap.tinymce-active>.mce-tinymce.mce-container.mce-panel>.mce-stack-layout{border:solid 1px #b0b6bd}.wpforms-field-has-tinymce .mce-statusbar,.wpforms-field-has-tinymce .mce-statusbar div{background-color:#ffffff;border-start-end-radius:0;border-start-start-radius:0;border-end-end-radius:4px;border-end-start-radius:4px}.wpforms-field-has-tinymce .mce-top-part::before{box-shadow:0 0 2px #b0b6bd !important}.wpforms-field-has-tinymce .wp-core-ui .ed_button.button{box-shadow:none}.wpforms-field-has-tinymce .wp-core-ui .ed_button.button:hover{border-color:#86919e}.wpforms-field-has-tinymce .wp-editor-tabs{position:absolute;bottom:0;inset-inline-end:0}.wpforms-panel-sidebar:not(.wpforms-content-editor-expanded) .wpforms-expandable-editor .quicktags-toolbar .ed_button:nth-last-child(-n+3){display:none}.tmce-initialized .mce-top-part.mce-container.mce-stack-layout-item.mce-first{border:1px solid #b0b6bd !important;border-radius:0;border-start-start-radius:4px;border-bottom-width:1px !important}.tmce-initialized .mce-top-part.mce-container.mce-stack-layout-item.mce-first{border-bottom:none !important}.tmce-initialized .mce-edit-area.mce-container.mce-panel.mce-stack-layout-item{border:1px solid #b0b6bd !important;border-top:none !important;border-bottom:none !important;border-radius:0}.tmce-initialized .mce-statusbar.mce-container.mce-panel.mce-stack-layout-item.mce-last{border:1px solid #b0b6bd !important;border-start-end-radius:0;border-start-start-radius:0;border-end-end-radius:4px;border-end-start-radius:4px;border-top:none}.media-modal p.description{line-height:1.5}.media-modal select{appearance:revert;background-color:white;background-image:none;padding:5px}.media-modal fieldset{border:none;padding:0;margin:0}.media-modal fieldset legend.legend-inline{margin-left:-2%}.media-modal fieldset .setting.align .button-group{margin-top:3px !important}.media-modal .attachments-browser .media-toolbar-secondary>.media-button.media-button-backToLibrary{margin-right:10px}.wpforms_page_wpforms-builder .mce-colorbutton-grid .mce-colorbtn-trans div{line-height:14px}.wpforms_page_wpforms-builder #wp-link .query-results{position:static;margin:auto}.wpforms_page_wpforms-builder #wp-link .link-target{margin-top:5px}.wpforms-panel-fields .wpforms-field-option-date-time .format-selected-time .wpforms-field-option-row-date{display:none}.wpforms-panel-fields .wpforms-field-option-date-time .format-selected-date .wpforms-field-option-row-time{display:none}.wpforms-panel-fields .wpforms-field-option-date-time.wpforms-date-type-dropdown option.datepicker-only{display:none}.wpforms-panel-fields .wpforms-field-option-date-time.wpforms-date-type-dropdown .wpforms-field-option-row-date .placeholder{display:none}.wpforms-panel-fields .wpforms-field-date-time .format-selected input[type=text]{width:100% !important;min-width:initial}.wpforms-panel-fields .wpforms-field-date-time.size-large .format-selected{width:100%}.wpforms-panel-fields .wpforms-field-date-time.size-medium .format-selected,.wpforms-panel-fields .wpforms-field-date-time .format-selected{width:60%;min-width:250px}.wpforms-panel-fields .wpforms-field-date-time.size-small .format-selected{width:25%;flex-direction:column}.wpforms-panel-fields .wpforms-field-date-time.size-small .format-selected.format-selected-date-time .wpforms-date-type-datepicker,.wpforms-panel-fields .wpforms-field-date-time.size-small .format-selected.format-selected-date-time .wpforms-time{width:100%}.wpforms-panel-fields .wpforms-field-date-time.size-small .format-selected .wpforms-date-type-dropdown+.wpforms-time{min-width:100%;width:100%}.wpforms-panel-fields .wpforms-field-date-time .format-selected-date .wpforms-time,.wpforms-panel-fields .wpforms-field-date-time .format-selected-date .wpforms-sub-label{display:none}.wpforms-panel-fields .wpforms-field-date-time .format-selected-time .wpforms-date,.wpforms-panel-fields .wpforms-field-date-time .format-selected-time .wpforms-sub-label{display:none}.wpforms-panel-fields .wpforms-field-date-time .format-selected-date-time{display:flex;flex-direction:row;gap:10px 20px}.wpforms-panel-fields .wpforms-field-date-time .format-selected-date-time .wpforms-date-type-datepicker{width:50%}.wpforms-panel-fields .wpforms-field-date-time .format-selected-date-time .wpforms-date-type-datepicker+.wpforms-time{width:50%}.wpforms-panel-fields .wpforms-field-date-time .wpforms-date-dropdown{align-items:center;display:flex;flex-wrap:wrap;column-gap:10px;min-width:60%}.wpforms-panel-fields .wpforms-field-date-time .wpforms-date-dropdown select{padding-inline:6px;width:calc( 100% / 3 - 20px / 3) !important;min-width:initial !important}.wpforms-panel-fields .wpforms-field-date-time .wpforms-date-type-dropdown{flex-grow:1}.wpforms-panel-fields .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-date-datepicker{display:none}.wpforms-panel-fields .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-time{flex:1;max-width:calc( 40% - 20px)}.wpforms-panel-fields .wpforms-field-date-time .wpforms-date-type-datepicker .wpforms-date-dropdown{display:none}@media screen and (max-width: 1140px){.wpforms-panel-fields .wpforms-field-date-time select{padding-left:10px;padding-right:10px;color:transparent !important}}.wpforms-panel-fields .wpforms-field-divider{padding-top:20px;min-height:82px;margin-top:40px}.wpforms-panel-fields .wpforms-field-divider:first-child{margin-top:0}.wpforms-panel-fields .wpforms-field-divider::before{content:'';display:block;height:1px;background-color:#dcdcde;position:absolute;top:0;left:15px;right:15px}.wpforms-panel-fields .wpforms-field-divider:hover::before,.wpforms-panel-fields .wpforms-field-divider:focus::before,.wpforms-panel-fields .wpforms-field-divider.active::before,.wpforms-panel-fields .wpforms-field-divider:first-child::before,.wpforms-panel-fields .wpforms-field-divider.hide_line::before{display:none}.wpforms-panel-fields .wpforms-field-divider label.label-title{font-size:18px;margin-top:10px}.wpforms-panel-fields .wpforms-field-divider .description{font-size:14px}.wpforms-panel-fields .wpforms-field-file-upload .wpforms-hide{display:none !important}.wpforms-panel-fields .wpforms-field-file-upload span.wpforms-file-upload-choose-file,.wpforms-panel-fields .wpforms-field-file-upload span.wpforms-file-upload-capture-camera{color:#6a6f76;text-decoration:underline}.wpforms-panel-fields .wpforms-field-file-upload .wpforms-file-upload-builder-modern{background:#f6f7f7;border:1px dashed #c3c4c7;border-radius:4px;color:#6a6f76;line-height:1.5;padding:25px;display:flex;flex-direction:column;justify-content:center;align-items:center}.wpforms-panel-fields .wpforms-field-file-upload .wpforms-file-upload-builder-modern svg{height:40px;margin-bottom:10px;opacity:.5;width:40px}.wpforms-panel-fields .wpforms-field-file-upload .wpforms-file-upload-builder-modern .modern-hint{color:rgba(0,0,0,0.35)}.wpforms-panel-fields .wpforms-field-file-upload.active .wpforms-file-upload-builder-modern{background:#ffffff}.wpforms-panel-fields .wpforms-field-file-upload .wpforms-file-upload-builder-classic input[type=file]{font-size:14px;line-height:16px;padding-top:8px}.wpforms-panel-fields .wpforms-field-file-upload .wpforms-file-upload-builder-classic span.wpforms-file-upload-capture-camera-classic{margin-top:20px;display:block}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password{position:relative}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-password-clean,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-password-clean{position:absolute;inset-inline-end:0;top:7px;padding:0;border:none;background-color:transparent;margin:0;color:#a7aaad;cursor:pointer}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-password-clean:hover,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-password-clean:hover{color:#d63638}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-password-clean i,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-password-clean i{font-size:16px;line-height:normal}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password_label,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password_label{margin-bottom:5px}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password,.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password_confirm,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password_confirm{width:100%;margin-bottom:0}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password input,.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password_confirm input,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password input,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password_confirm input{width:100%}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password input,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-protection_password_columns .wpforms-field-option-row-protection_password input{padding-inline-end:30px}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-error,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-error{color:#d63638}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-error-message,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-error-message{position:absolute;font-size:12px;margin:2px 0 0 1px}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"],.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"]{background-color:#8c8f94;border-color:#8c8f94}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"] button,.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"]:hover,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"] button,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"]:hover{cursor:not-allowed}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"] button:hover,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-file-upload-user-roles-select+.choices__list .choices__item[data-value="administrator"] button:hover{opacity:.75}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-user_roles_restrictions .choices__inner .choices__input,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-user_roles_restrictions .choices__inner .choices__input{display:none}.wpforms-panel-fields .wpforms-field-option-file-upload .sub-label,.wpforms-panel-fields .wpforms-field-option-camera .sub-label{display:block}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"],.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"]{opacity:.5}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"],.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"] *,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"],.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"] *{cursor:not-allowed}.wpforms-panel-fields .wpforms-field-option-file-upload .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"] i,.wpforms-panel-fields .wpforms-field-option-camera .wpforms-field-option-row-access_restrictions[post-submissions-disabled="1"] i{pointer-events:none}.wpforms-file-upload-camera-aspect-ratio,.wpforms-file-upload-camera-custom-ratio{display:none !important}.wpforms-panel-fields .wpforms-field-camera .label-title{margin-bottom:12px}.wpforms-panel-fields .wpforms-field-camera .wpforms-camera-button{border-width:1px;border-style:solid;border-radius:4px;cursor:pointer;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;display:inline-flex;align-items:center;gap:7px;padding:10px 15px 11px 15px;border-color:#c3c4c7;background-color:#ffffff;color:#6a6f76;font-size:14px;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-in}.wpforms-panel-fields .wpforms-field-camera .wpforms-camera-button svg{fill:#BBBBBB;width:16px;height:14px;flex-shrink:0;vertical-align:middle}.wpforms-panel-fields .wpforms-field-camera .wpforms-camera-link{color:#777777;text-decoration:underline;font-size:var(--wpforms-field-size-input-spacing)}.wpforms-panel-fields .wpforms-field-html .label-title .text{margin:0 0 15px 0}.wpforms-panel-fields .wpforms-field-html .label-title .text:empty{margin:0}.wpforms-panel-fields .wpforms-field-html .label-title .grey{color:#6a6f76}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons{overflow:hidden;text-align:center}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons.wpforms-pagebreak-buttons-left{text-align:left}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons.wpforms-pagebreak-buttons-left .wpforms-pagebreak-button{margin:0 20px 0 0}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons.wpforms-pagebreak-buttons-right{text-align:right}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons.wpforms-pagebreak-buttons-right .wpforms-pagebreak-button{margin:0 0 0 20px}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons.wpforms-pagebreak-buttons-split .wpforms-pagebreak-prev{float:left;margin:0}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-buttons.wpforms-pagebreak-buttons-split .wpforms-pagebreak-next{float:right;margin:0}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-button{background:#999c9e;border:none;border-radius:4px;color:#ffffff;cursor:pointer;display:inline-block;font-size:17px;font-weight:600;line-height:21px;margin:0 10px;min-width:85px;padding:10px 15px}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-button.wpforms-hidden{display:none}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-divider{height:30px;position:relative;text-align:center}.wpforms-panel-fields .wpforms-field-pagebreak .line{border-top:1px dashed #c3c4c7;display:block;left:0;position:absolute;top:50%;width:100%}.wpforms-panel-fields .wpforms-field-pagebreak.active .pagebreak-label{background-color:#f6f7f7}.wpforms-panel-fields .wpforms-field-pagebreak .pagebreak-label{background-color:#ffffff;display:inline-block;font-size:16px;font-weight:600;padding:5px 20px;position:relative;z-index:10}.wpforms-panel-fields .wpforms-field-pagebreak .pagebreak-label .wpforms-badge{margin-inline-start:15px;vertical-align:top;margin:-2px 0 0 10px}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-title{color:#6a6f76;font-weight:400}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-title:not(:empty):after{content:')'}.wpforms-panel-fields .wpforms-field-pagebreak .wpforms-pagebreak-title:not(:empty):before{content:'('}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal{border:none;margin:0 -15px 20px -15px;padding:0}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .wpforms-pagebreak-divider{background-color:#50575e;height:60px;padding-top:16px}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .pagebreak-label{background-color:#50575e;color:#e8e9e9;font-weight:400}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .wpforms-pagebreak-title{color:#dcdcde}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .wpforms-pagebreak-buttons{border:1px solid #ffffff;border-radius:6px;margin:0 15px 5px 15px;padding:15px}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal:hover,.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.active{border:none}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal:hover .wpforms-pagebreak-divider,.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal:hover .pagebreak-label,.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.active .wpforms-pagebreak-divider,.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.active .pagebreak-label{background-color:#6a6f76}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal:hover .wpforms-pagebreak-buttons{border:1px dashed #c3c4c7}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.active{background-color:#ffffff}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.active .wpforms-pagebreak-buttons{background-color:#f6f7f7;border:1px dashed #c3c4c7}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.selected{background-color:#ffffff}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.selected .wpforms-pagebreak-buttons{background-color:#f0f0f1;border:1px dashed #c3c4c7}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.wpforms-field-dragging .wpforms-pagebreak-buttons{margin-left:0;margin-right:0}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal.wpforms-field-dragging .wpforms-pagebreak-divider{border-radius:0 0 6px 6px}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .wpforms-field-delete{inset-inline-end:30px}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .wpforms-field-helper{bottom:66px;inset-inline-end:16px}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-normal .wpforms-badge{background-color:#3c434a;color:#a7aaad}.wpforms-panel-fields .wpforms-field-pagebreak.wpforms-pagebreak-bottom .wpforms-pagebreak-buttons{margin:0}.wpforms-panel-fields .wpforms-field-phone-input-container{position:relative}.wpforms-panel-fields .wpforms-field-phone-input-container[data-format="smart"] .wpforms-field-phone-country-container{display:flex}.wpforms-panel-fields .wpforms-field-phone-input-container[data-format="smart"] input.primary-input{padding-inline-start:52px}.wpforms-panel-fields .wpforms-field-phone-country-container{position:absolute;height:100%;top:0;padding:0 6px 0 8px;align-items:center;gap:6px;display:none}.wpforms-panel-fields .wpforms-field-phone-flag{height:11px;width:20px;box-shadow:0 0 1px 0 #888;background:url("../../images/phone/us-flag.png") no-repeat;background-size:100%}.wpforms-panel-fields .wpforms-field-phone-arrow{border-inline:calc( 5px / 2) solid transparent;border-top:4px solid #555}.wpforms-field.wpforms-field-content{padding:12px 15px}.wpforms-field-content-preview{min-height:16px;width:95%;color:#444444;word-break:break-word;font-size:16px;line-height:22px}.wpforms-field-content-preview .wpforms-field-content-preview-end{clear:both}.wpforms-field-content-preview h1,.wpforms-field-content-preview h2,.wpforms-field-content-preview h3,.wpforms-field-content-preview h4,.wpforms-field-content-preview h5,.wpforms-field-content-preview h6{margin:20px 0;padding:0;clear:unset}.wpforms-field-content-preview h1:first-child,.wpforms-field-content-preview h2:first-child,.wpforms-field-content-preview h3:first-child,.wpforms-field-content-preview h4:first-child,.wpforms-field-content-preview h5:first-child,.wpforms-field-content-preview h6:first-child{margin-top:0}.wpforms-field-content-preview h1{font-size:32px;line-height:40px}.wpforms-field-content-preview h2{font-size:28px;line-height:36px}.wpforms-field-content-preview h3{font-size:24px;line-height:32px}.wpforms-field-content-preview h4{font-size:20px;line-height:28px}.wpforms-field-content-preview h5{font-size:18px;line-height:26px}.wpforms-field-content-preview h6{font-size:16px;line-height:24px;text-transform:uppercase}.wpforms-field-content-preview p,.wpforms-field-content-preview blockquote,.wpforms-field-content-preview pre,.wpforms-field-content-preview table{margin:0 0 20px 0}.wpforms-field-content-preview li{margin:0 0 10px 0}.wpforms-field-content-preview a{text-decoration:underline}.wpforms-field-content-preview a:hover{text-decoration:none}.wpforms-field-content-preview code,.wpforms-field-content-preview pre{font-family:monospace;overflow:auto}.wpforms-field-content-preview del{text-decoration:line-through}.wpforms-field-content-preview ins{text-decoration:underline}.wpforms-field-content-preview small{font-size:smaller}.wpforms-field-content-preview dt{margin:5px 0}.wpforms-field-content-preview dd{margin-left:25px}.wpforms-field-content-preview abbr,.wpforms-field-content-preview acronym{text-decoration:underline dotted}.wpforms-field-content-preview ul{list-style:disc outside none !important;padding-inline-start:29px !important;margin-bottom:20px !important}.wpforms-field-content-preview ul ul{list-style-type:circle !important;margin-top:10px !important;margin-bottom:0 !important}.wpforms-field-content-preview ul ul ul{list-style-type:square !important}.wpforms-field-content-preview ul ol{margin-top:10px;margin-bottom:0}.wpforms-field-content-preview ul li{list-style:inherit !important;margin-bottom:10px !important}.wpforms-field-content-preview ol{list-style:decimal outside none;padding-inline-start:29px;margin-bottom:20px}.wpforms-field-content-preview ol ol{margin-top:10px;margin-bottom:0}.wpforms-field-content-preview ol ul{margin-top:10px !important;margin-bottom:0 !important}.wpforms-field-content-preview ol li{list-style:inherit}.wpforms-field-content-preview blockquote{border-left:4px solid rgba(0,0,0,0.15);padding-left:20px}.wpforms-field-content-preview blockquote:before,.wpforms-field-content-preview blockquote:after{display:none}.wpforms-field-content-preview table{width:100%;border-collapse:collapse;word-break:normal}.wpforms-field-content-preview table th,.wpforms-field-content-preview table td{padding:0.5em;border:1px solid}.wpforms-field-content-preview sup,.wpforms-field-content-preview sub{font-size:smaller;line-height:calc( 100% + 11px)}.wpforms-field-content-preview sup{vertical-align:super}.wpforms-field-content-preview sub{vertical-align:sub}.wpforms-field-content-preview h1,.wpforms-field-content-preview h2,.wpforms-field-content-preview h3,.wpforms-field-content-preview h4,.wpforms-field-content-preview h5,.wpforms-field-content-preview h6{margin:10px 0;font-weight:600}.wpforms-field-content-preview p{line-height:inherit}.wpforms-field-content-preview img{vertical-align:top}.wpforms-field-content-preview img{max-width:100%;height:auto}.wpforms-field-content-preview .alignleft{float:left;margin:0 30px 20px 0}.wpforms-field-content-preview .alignright{float:right;margin:0 0 20px 30px}.wpforms-field-content-preview .aligncenter{display:block;clear:both;text-align:center;margin:0 auto 20px}.wpforms-field-content-preview .alignnone{display:block;clear:both;margin:0 0 20px 0}.wpforms-field-content-preview .wp-caption-dt,.wpforms-field-content-preview .wp-caption-dd{margin:0}.wpforms-field-content-preview .wp-caption{position:relative;left:auto;right:auto;transform:none;max-width:100%}.wpforms-field-content-preview .wp-caption .wp-caption-text,.wpforms-field-content-preview .wp-caption .wp-caption-dd{text-align:center;font-size:14px;margin-top:0.5em}.wpforms-field-content-preview>:nth-last-child(2){margin-bottom:0}.size-medium .wpforms-field-content-preview,.wpforms-field-content-preview{width:60%}.size-small .wpforms-field-content-preview{width:25%}.size-large .wpforms-field-content-preview{width:95%}.wpforms-field .wpforms-layout-column .wpforms-field .wpforms-field-content-preview>*:first-child,.wpforms-field.wpforms-field-drag-to-column .wpforms-field-content-preview>*:first-child{padding-right:60px}.wpforms-panel-fields .wpforms-field-credit-card .format-selected input[type=text],.wpforms-panel-fields .wpforms-field-credit-card .format-selected select{width:100%;min-width:initial}.wpforms-panel-fields .wpforms-field-credit-card.size-large .format-selected{width:100%}.wpforms-panel-fields .wpforms-field-credit-card .format-selected,.wpforms-panel-fields .wpforms-field-credit-card.size-medium .format-selected{width:60%;min-width:250px}.wpforms-panel-fields .wpforms-field-credit-card.size-small .format-selected{width:25%}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-sub-label{margin:0 0 5px 1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-cardnumber{margin-right:115px}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-cardcvc{position:absolute;right:0;top:0;width:92px}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-cardname{margin-right:172px}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-expiration{position:absolute;right:0;top:0;width:150px}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-expiration span{float:left;padding-top:8px;text-align:center;width:16%}.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-cardmonth,.wpforms-panel-fields .wpforms-field-credit-card .wpforms-credit-card-cardyear{display:block;float:left;width:42%}.wpforms-panel-fields .wpforms-field-payment-single.payment-quantity-enabled .format-selected-single{display:flex;align-items:center;flex-wrap:wrap}.wpforms-panel-fields .wpforms-field-payment-single.payment-quantity-enabled .format-selected-single p.item-price{float:left;line-height:30px;width:calc( 60% - 85px)}.wpforms-panel-fields .wpforms-field-payment-single.payment-quantity-enabled .format-selected-single select.quantity-input{height:30px;min-height:30px;font-size:14px}.wpforms-panel-fields .wpforms-field-payment-single.payment-quantity-enabled .format-selected-single .description{padding-top:5px;margin:0;flex-basis:100%}.wpforms-panel-fields .wpforms-field-payment-single.payment-quantity-enabled.size-small p.item-price{width:calc( 25% - 85px);min-width:165px}.wpforms-panel-fields .wpforms-field-payment-single.payment-quantity-enabled.size-large p.item-price{width:calc( 100% - 85px)}.wpforms-panel-fields .wpforms-field-payment-single .single-item-user-defined-block{display:flex}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-single .primary-input,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-single .item-min-price,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-single .item-price-hidden,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-single .item-price-hidden-note,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-single .fa-exclamation-triangle{display:none}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-hidden .primary-input,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-hidden .item-min-price,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-hidden .fa-exclamation-triangle{display:none}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-hidden .item-price-hidden,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-hidden .item-price-hidden-note{display:block}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .primary-input,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .item-min-price{display:block}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .item-min-price{clear:both;color:#6a6f76;font-size:14px;margin:5px 0 0 0;display:block}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .item-price,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .item-price-hidden,.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .item-price-hidden-note{display:none}.wpforms-panel-fields .wpforms-field-payment-single .format-selected-user .fa-exclamation-triangle{font-size:16px;color:#ffb900;padding-left:20px;line-height:40px}.wpforms-panel-fields .wpforms-field-payment-single .item-price-hidden-note{color:#a7aaad;font-size:13px;margin:0}.wpforms-panel-fields .wpforms-field-payment-single .item-price{margin-bottom:0}.wpforms-panel-fields .wpforms-field-option-payment-single .wpforms-item-minimum-price-alert{margin-top:20px}.wpforms-panel-fields .wpforms-layout-column .min-price-warning .single-item-user-defined-block{margin-right:35px}.wpforms-order-summary-container{display:block;max-width:60%}.wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}table.wpforms-order-summary-preview tr th{font-weight:400;border:none}table.wpforms-order-summary-preview tr td,table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.size-large>.wpforms-order-summary-container,.wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.size-medium>.wpforms-order-summary-container,.wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-field-payment-total .wpforms-order-summary-container{display:none}.wpforms-field-payment-total.wpforms-summary-enabled .wpforms-order-summary-container{display:block}.wpforms-field-payment-total.wpforms-summary-enabled .wpforms-total-amount{display:none}.wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:#c3c4c7}.wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-order-summary-container table.wpforms-order-summary-preview tr td{padding-top:8px;padding-bottom:8px}.wpforms-order-summary-container table.wpforms-order-summary-preview tr td{color:#6a6f76;border-color:#c3c4c7}.wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:#3c434a;font-weight:600}.wpforms-field-option-richtext .wpforms-field-option-row-media_controls.wpforms-hide{display:none}.wpforms-panel-fields .wpforms-field-richtext label.label-title{min-height:20px}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap{min-width:250px}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .wp-editor-container{border-radius:4px 0 4px 4px;border-color:#cccccc;overflow:hidden}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .wp-switch-editor{border-radius:4px 4px 0 0;margin:0 0 0 5px;border-color:#cccccc;pointer-events:none;color:rgba(80,87,94,0.5)}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .wp-switch-editor.switch-tmce{background-color:#f5f5f5;border-bottom-color:transparent}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap textarea{width:100%;border:none;padding:0;margin:0;resize:none;cursor:pointer;border-radius:0}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-statusbar{border-radius:0 0 4px 4px;height:21px;background-color:#ffffff;border-color:#cccccc}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-statusbar .mce-i-resize{float:right}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-container-body{background-color:#f5f5f5}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-toolbar-grp{height:43px;display:block;background-image:url("../../images/richtext/tinymce-toolbar-full.png");background-repeat:no-repeat;background-position:left center;background-size:auto 38px;border-color:#cccccc;opacity:.5}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-toolbar-grp.wpforms-field-richtext-media-enabled{background-image:url("../../images/richtext/tinymce-toolbar-full-mb.png")}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-toolbar-grp.wpforms-field-richtext-toolbar-basic{background-image:url("../../images/richtext/tinymce-toolbar-basic.png")}.wpforms-panel-fields .wpforms-field-richtext .wpforms-richtext-wrap .mce-toolbar-grp.wpforms-field-richtext-toolbar-basic.wpforms-field-richtext-media-enabled{background-image:url("../../images/richtext/tinymce-toolbar-basic-mb.png")}.wpforms-field-option-row-choices ul.wpforms-ai-choices li:last-of-type{border-bottom:1px solid #ced7e0;padding-bottom:10px}.wpforms-field-option-row-ai_modal_button{margin-top:-10px}.wpforms-ai-modal-button{padding:6px 10px;font-size:14px;font-style:normal;font-weight:500;line-height:normal}.wpforms-ai-modal-button:before{content:'';display:inline-block;vertical-align:middle;width:16px;height:16px;background-image:url("../../images/integrations/ai/ai-feature.svg");background-size:16px 16px;margin-inline-end:8px;opacity:.85}.wpforms-ai-modal-button:hover:before{opacity:1}.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper{position:relative;display:flex;max-width:60%}.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .fa-exclamation-triangle{font-size:16px;color:#ffb900;position:absolute;top:calc( 50% - 8px);inset-inline-end:-36px}.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper input[type=text].wpforms-field-payment-coupon-input{cursor:pointer;width:auto;flex:1;min-width:80px !important}.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button{font-size:15px;line-height:18px;font-weight:500;cursor:pointer;border:0;margin-inline-start:20px;background-color:#999;color:#fff;padding:10px 15px;border-radius:4px;white-space:nowrap;max-width:250px;text-overflow:ellipsis;overflow:hidden}#wpforms-add-fields-payment-coupon.wpforms-add-fields-button-disabled{background-color:#036aab;cursor:no-drop}.wpforms-field-option-row-allowed_coupons .wpforms-alert{margin-top:20px}.wpforms-field-option-row-allowed_coupons .choices:not(.is-focused) .choices__inner{border:1px solid #b0b6bd}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper{max-width:calc(100% - 46px);flex-wrap:wrap;justify-content:flex-end;margin-bottom:-15px}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-input,.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-input,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button{margin-bottom:15px}@media screen and (max-width: 1280px){.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper{max-width:calc(100% - 30px);margin-bottom:-15px}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-input,.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-input,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button{margin-bottom:15px}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper .wpforms-field-payment-coupon-button{margin-inline-start:10px}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper .fa-exclamation-triangle,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column .wpforms-field-payment-coupon-wrapper .fa-exclamation-triangle{inset-inline-end:-15px}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column .wpforms-field-payment-coupon input[type=text].wpforms-field-payment-coupon-input,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column input[type=text].wpforms-field-payment-coupon-input{min-width:100% !important}}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column.wpforms-layout-column-100 .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column.wpforms-layout-column-100 .wpforms-field-payment-coupon-wrapper{max-width:60%}@media screen and (max-width: 1280px){.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column.wpforms-layout-column-100 .wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-coupon.wpforms-field-drag-to-column.wpforms-layout-column-100 .wpforms-field-payment-coupon-wrapper{max-width:60%}}.wpforms-field-layout .wpforms-field-layout-columns .wpforms-layout-column .wpforms-field.wpforms-field-payment-coupon .wpforms-field-payment-coupon-wrapper input[type=text].wpforms-field-payment-coupon-input{min-width:80px !important}table.wpforms-order-summary-preview .wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#d63638}.wpforms-panel-fields .wpforms-field-signature.size-medium .wpforms-signature-wrap{width:60%}.wpforms-panel-fields .wpforms-field-signature.size-small .wpforms-signature-wrap{width:25%}.wpforms-panel-fields .wpforms-field-layout .wpforms-field-layout-columns .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-signature-wrap,.wpforms-panel-fields .wpforms-field-repeater .wpforms-field-layout-columns .wpforms-layout-column .wpforms-field .wpforms-signature-wrap,.wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-repeater .wpforms-signature-wrap,.wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-layout:not(.wpforms-field-drag-to-column-100) .wpforms-signature-wrap{width:100%;min-width:100%}.wpforms-panel-fields .wpforms-field .wpforms-signature-wrap{border:1px solid #cccccc;border-radius:4px;position:relative;height:130px;background-color:#ffffff;min-width:250px}.wpforms-panel-fields .wpforms-field .wpforms-signature-wrap:before{content:"";left:20px;right:20px;bottom:30px;border-top:1px dashed #cccccc;position:absolute}.wpforms-panel-fields .wpforms-field-likert_scale table.single-row.modern tbody tr td:first-of-type{border-radius:0;border-start-start-radius:5px;border-end-end-radius:5px}.wpforms-panel-fields .wpforms-field-likert_scale table.modern th{font-size:14px;font-weight:400;padding:8px 5px;text-align:center;vertical-align:bottom;white-space:normal;word-break:break-word}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr:nth-child(odd) th,.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr:nth-child(odd) td{background-color:#eeeeee}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr th{font-size:16px;text-align:start;vertical-align:middle;padding-inline-start:10px;border-radius:0;border-start-start-radius:5px;border-end-start-radius:5px;line-height:1.2;word-break:break-word}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td{padding:10px 5px;vertical-align:middle;text-align:center;position:relative}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td:last-child{border-radius:0;border-end-end-radius:5px;border-start-end-radius:5px}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td label{display:block;width:100%;height:20px;position:relative;cursor:pointer}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td label:hover:after{border:1px solid #777777;box-shadow:0 0 0 1px #777777}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td label:after{content:"";position:absolute;top:0;left:50%;margin:0 0 0 -10px;width:20px;height:20px;background-color:#ffffff;border:1px solid #cccccc;border-radius:50%;box-sizing:border-box}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td input[type=radio].wpforms-error+label:after,.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td input[type=checkbox].wpforms-error+label:after{border:1px solid red}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td input[type=radio]:checked+label:after,.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td input[type=checkbox]:checked+label:after{background-color:green;border:0}.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td input[type=radio]:checked+label:before,.wpforms-panel-fields .wpforms-field-likert_scale table.modern tbody tr td input[type=checkbox]:checked+label:before{content:"";position:absolute;top:2px;left:50%;margin:0 0 0 -8px;width:16px;height:16px;background-image:url("../images/check.svg");background-size:contain;z-index:1;border:0}.wpforms-panel-fields .wpforms-field-likert_scale table.classic{border:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-likert_scale table.classic th{background-color:#eeeeee;font-size:14px;font-weight:400;padding:10px 5px;text-align:center;vertical-align:bottom;white-space:normal;word-break:break-word;border-inline-start:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-likert_scale table.classic th:first-of-type{border-inline-start:0}.wpforms-panel-fields .wpforms-field-likert_scale table.classic tbody tr:nth-child(odd) th,.wpforms-panel-fields .wpforms-field-likert_scale table.classic tbody tr:nth-child(odd) td{background-color:#f8f8f8}.wpforms-panel-fields .wpforms-field-likert_scale table.classic tbody tr th{background-color:#ffffff;font-size:15px;font-weight:600;text-align:start;vertical-align:middle;padding-inline-start:10px;border-top:1px solid #cccccc;position:relative;line-height:1.2;word-break:break-word}.wpforms-panel-fields .wpforms-field-likert_scale table.classic tbody tr td{background-color:#ffffff;padding:10px 5px;vertical-align:middle;text-align:center;border:1px solid #cccccc;position:relative}.wpforms-likert-scale-mobile-label{display:none}@media only screen and (max-width: 600px){form.wpforms-form .wpforms-field-likert_scale table{display:block}form.wpforms-form .wpforms-field-likert_scale table thead{display:block}form.wpforms-form .wpforms-field-likert_scale table thead tr{display:none}form.wpforms-form .wpforms-field-likert_scale table tbody{display:block}form.wpforms-form .wpforms-field-likert_scale table tbody tr{display:block;border:1px solid #ccc !important}form.wpforms-form .wpforms-field-likert_scale table tbody tr:nth-child(odd) td{background-color:transparent !important}form.wpforms-form .wpforms-field-likert_scale table tbody tr th{background-color:rgba(0,0,0,0.03) !important;display:block;font-weight:bold !important}form.wpforms-form .wpforms-field-likert_scale table tbody tr td{display:block;border:none !important;border-bottom:1px solid #eee !important;padding:10px 20px !important;font-size:14px}form.wpforms-form .wpforms-field-likert_scale table tbody tr td:last-child{border-radius:0 !important;border-bottom:none !important}form.wpforms-form .wpforms-field-likert_scale table tbody tr td label{display:none}form.wpforms-form .wpforms-field-likert_scale table.classic .wpforms-likert-scale-option{display:block}form.wpforms-form .wpforms-field-likert_scale table.modern tbody tr th{font-weight:bold;border-radius:0}form.wpforms-form .wpforms-field-likert_scale table.modern tbody tr td label{margin-inline-start:20px;width:20px}form.wpforms-form .wpforms-field-likert_scale .wpforms-likert-scale-mobile-flex{display:flex;justify-content:space-between;align-items:center}form.wpforms-form .wpforms-field-likert_scale .wpforms-likert-scale-mobile-label{display:block;text-align:start !important}}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern th{font-size:14px;font-weight:400;padding:10px 0;text-align:center;vertical-align:bottom;-webkit-border-before:revert;border-block-start:revert}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern th .not-likely{float:left;text-align:left}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern th .extremely-likely{float:right;text-align:right}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td{background-color:#ffffff;padding:0;vertical-align:middle;text-align:center;border:1px solid #cccccc;border-left:0;width:9.090909091%}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td:last-child{border-radius:0 5px 5px 0}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td:first-of-type{border-radius:5px 0 0 5px;border-left:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td label{display:block;width:100%;height:40px;font-weight:600;font-size:16px;line-height:40px;position:relative;cursor:pointer;color:#444444;border:0}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td label:hover{background-color:#f8f8f8}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td label:hover:after{box-shadow:0 0 0 2px #777777}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td label:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border:0}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td input[type=radio].wpforms-error+label:after{box-shadow:0 0 0 1px #cc0000}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td input[type=radio].wpforms-error+label:hover:after{box-shadow:0 0 0 2px #cc0000}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td input[type=radio]:checked+label{background-color:green;color:#ffffff}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td input[type=radio]:checked+label:after{border:none}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic{border:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic th{background-color:#eeeeee;font-size:14px;font-weight:400;padding:10px;text-align:center;vertical-align:bottom;-webkit-border-before:revert;border-block-start:revert}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic th .not-likely{float:left;text-align:left}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic th .extremely-likely{float:right;text-align:right}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic tbody tr td{background-color:#ffffff;padding:10px 5px;vertical-align:middle;text-align:center;border-top:1px solid #cccccc;position:relative;width:9.090909091%;color:#444444}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic tbody tr td input[type=radio],.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic tbody tr td label{display:block;margin:0 auto;text-align:center}.wpforms-panel-fields .wpforms-field-net_promoter_score table.classic tbody tr td label{margin-top:6px}.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.modern thead th .not-likely,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.modern thead th .not-likely,.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.classic thead th .not-likely,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.classic thead th .not-likely{float:right;text-align:right}.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.modern thead th .extremely-likely,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.modern thead th .extremely-likely,.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.classic thead th .extremely-likely,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.classic thead th .extremely-likely{float:left;text-align:left}.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td:first-of-type,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.modern tbody tr td:first-of-type,.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.classic tbody tr td:first-of-type,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.classic tbody tr td:first-of-type{border-radius:0 5px 5px 0;border-right:1px solid #cccccc;border-left:0}.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.modern tbody tr td:last-child,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.modern tbody tr td:last-child,.rtl .wpforms-panel-fields .wpforms-field-net_promoter_score table.classic tbody tr td:last-child,.wpforms-panel-fields .wpforms-field-net_promoter_score .rtl table.classic tbody tr td:last-child{border-radius:5px 0 0 5px;border-left:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list{margin-bottom:0}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list li,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list li{grid-template-columns:auto 1fr auto auto;border-bottom:1px solid #ced7e0;overflow:visible;padding:10px 0}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list li:first-of-type,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list li:first-of-type{padding-top:1px}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list li:last-of-type,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list li:last-of-type{padding-bottom:1px;border-bottom:0}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list li i,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list li i{font-size:16px;display:inline-block;margin-block:0;margin-inline-end:0}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list li .move:hover,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list li .move:hover{cursor:pointer}.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-columns .choices-list li .move i,.wpforms-panel-fields .wpforms-field-option-likert_scale .wpforms-field-option-row-rows .choices-list li .move i{margin:0;font-size:20px}.wpforms-panel-fields .wpforms-field-likert_scale table{width:100%;min-width:250px;border-collapse:collapse}.wpforms-panel-fields .wpforms-field-likert_scale table *,.wpforms-panel-fields .wpforms-field-likert_scale table *::before,.wpforms-panel-fields .wpforms-field-likert_scale table *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-panel-fields .wpforms-field-likert_scale table.modern input{display:none !important}.wpforms-panel-fields .wpforms-field-likert_scale table.modern label:hover:after{border:1px solid #cccccc !important;box-shadow:none !important}.wpforms-panel-fields .wpforms-field-likert_scale.size-medium table{max-width:65%}.wpforms-panel-fields .wpforms-field-likert_scale.size-small table{max-width:25%}.wpforms-panel-fields .wpforms-field-net_promoter_score table{width:100%;min-width:250px;border-collapse:initial;border-spacing:0}.wpforms-panel-fields .wpforms-field-net_promoter_score table *,.wpforms-panel-fields .wpforms-field-net_promoter_score table *::before,.wpforms-panel-fields .wpforms-field-net_promoter_score table *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern input{display:none !important}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern label:hover{background-color:initial !important}.wpforms-panel-fields .wpforms-field-net_promoter_score table.modern label:hover:after{box-shadow:none !important}.wpforms-panel-fields .wpforms-field-net_promoter_score.size-medium table{max-width:65%}.wpforms-panel-fields .wpforms-field-net_promoter_score.size-small table{max-width:25%}.wpforms-panel-fields .wpforms-field-drag-to-column:not(.wpforms-layout-column-100).wpforms-field-net_promoter_score table,.wpforms-panel-fields .wpforms-field-drag-to-column:not(.wpforms-layout-column-100).wpforms-field-likert_scale table,.wpforms-panel-fields .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field-net_promoter_score table,.wpforms-panel-fields .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field-likert_scale table{max-width:100%}.wpforms-rating-field{display:inline-flex;flex-direction:column;gap:6px}.wpforms-rating-field .wpforms-rating-field-icons{display:flex;flex-wrap:wrap;gap:5px;order:1}.wpforms-rating-field .wpforms-rating-field-labels{display:flex;justify-content:space-between;gap:10px;font-size:14px;order:2}.wpforms-rating-field .wpforms-rating-field-labels-position-above{order:0} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields.min.css new file mode 100644 index 0000000..474bfea --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-fields.min.css @@ -0,0 +1 @@ +.wpforms-panel-fields{width:100vw;height:100vh}.wpforms-panel-fields .wpforms-field-row:before{content:"";display:table}.wpforms-panel-fields .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-panel-fields #wpforms-hidden{display:none}.wpforms-panel-fields .wpforms-field-dragging{background-color:#f0f0f1;box-shadow:0 8px 12px 0 rgba(0,0,0,0.1)}.wpforms-panel-fields .wpforms-field-dragging.wpforms-field-multi-drag{overflow:visible !important}.wpforms-panel-fields .wpforms-field-dragging.wpforms-field-multi-drag:before,.wpforms-panel-fields .wpforms-field-dragging.wpforms-field-multi-drag:after{content:"";position:absolute;height:5px;border:1px dashed #c3c4c7;border-top:none;border-radius:0 0 6px 6px;background-color:#f0f0f1;box-shadow:0 8px 12px 0 rgba(0,0,0,0.1);z-index:10000}.wpforms-panel-fields .wpforms-field-dragging.wpforms-field-multi-drag:before{left:5px;right:5px;bottom:-6px}.wpforms-panel-fields .wpforms-field-dragging.wpforms-field-multi-drag:after{left:10px;right:10px;bottom:-11px}.wpforms-panel-fields .wpforms-field-drag-out,.wpforms-panel-fields .wpforms-field-drag-over{background:#036aab;border:none;border-radius:4px;color:#ffffff;display:block;overflow:hidden;padding:12px 14px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:172px;max-width:172px;z-index:10000;box-shadow:0 8px 12px 0 rgba(0,0,0,0.25)}.wpforms-panel-fields .wpforms-field-drag-out i,.wpforms-panel-fields .wpforms-field-drag-over i{color:rgba(255,255,255,0.65);margin:0 5px 0 0}.wpforms-panel-fields .wpforms-field-drag-placeholder{border:1px dashed #036aab;background-color:#EBF3FC80;border-radius:6px;margin:0 0 5px 0;width:100%;height:60px !important}.wpforms-panel-fields .wpforms-field-drag-placeholder.wpforms-field-drag-not-allowed{border-color:#b32d2e;background-color:#fcf0f1}.wpforms-panel-fields .wpforms-field-drag-not-allowed{cursor:not-allowed !important}.wpforms-panel-fields .wpforms-field-drag-pending{border:1px dashed #036aab;background-color:#EBF3FC80;border-radius:6px;margin:0 0 5px 0;text-align:center;width:100%;max-width:100%;color:rgba(0,0,0,0.7);box-shadow:none}.wpforms-panel-fields .wpforms-field-drag-pending i{font-size:18px;line-height:24px;color:rgba(0,0,0,0.7)}.wpforms-panel-fields .wpforms-field-drag-pending .wpforms-loading-spinner{margin-left:15px;width:18px;height:18px;vertical-align:-3px;background-size:18px 18px}.wpforms-panel-fields .wpforms-field-multi-drag{background-color:rgba(0,115,170,0.1);border:2px dashed #036aab;opacity:0;height:0;margin:0 !important}.wpforms-panel-fields .wpforms-field-multi-drag.first-selected:not(.wpforms-field-dragging),.wpforms-panel-fields .wpforms-field-multi-drag.selected:not(.wpforms-field-dragging){padding:0 !important;opacity:0 !important}.wpforms-panel-fields .wpforms-field-multi-drag.first-selected:not(.wpforms-field-dragging) .wpforms-layout-column,.wpforms-panel-fields .wpforms-field-multi-drag.selected:not(.wpforms-field-dragging) .wpforms-layout-column{padding:0 !important}.wpforms-panel-fields .wpforms-field-multi-drag+.wpforms-field-drag-placeholder{display:none !important}#wpforms-panel-fields .wpforms-panel-sidebar{position:absolute;top:calc( 124px + var( --wpforms-admin-bar-height ));bottom:0;inset-inline-start:95px;overflow:hidden;transition-property:top, width, inset-inline-start;transition-duration:0.25s, 0.15s, 0.15s;transition-timing-function:ease-out, ease-out, ease-in-out}#wpforms-panel-fields .wpforms-panel-sidebar .no-gap{margin-bottom:0}#wpforms-panel-fields .wpforms-panel-sidebar .sub-label{display:block;color:#86919e;font-size:12px;line-height:14px;margin:8px 0 0 1px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;gap:10px;margin-bottom:20px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns+.wpforms-field-options-columns{margin-top:-10px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns:last-child{margin-bottom:0}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns>.wpforms-field-options-column:first-child{margin-left:1px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns>.wpforms-field-options-column{flex-grow:1}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.wpforms-field-options-columns-2>.wpforms-field-options-column{max-width:calc( 100%/2 - 6px)}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.wpforms-field-options-columns-3>.wpforms-field-options-column{max-width:calc( 100%/3 - 9px)}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.wpforms-field-options-columns-4>.wpforms-field-options-column{max-width:calc( 100%/4 - 10px)}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.wpforms-field-options-columns-5>.wpforms-field-options-column{max-width:calc( 100%/5 - 10px)}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.wpforms-field-options-columns-6>.wpforms-field-options-column{max-width:calc( 100%/6 - 10px)}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.wpforms-field-options-columns-7>.wpforms-field-options-column{max-width:calc( 100%/7 - 11px);text-align:center}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.checkboxes-row>label{margin-top:0;max-width:24px}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns.checkboxes-row>label input{margin:1px 0 5px 0}#wpforms-panel-fields .wpforms-panel-sidebar .wpforms-field-options-columns select{display:block}#wpforms-field-options:before{background-color:#ebf3fc;border-bottom:1px solid #ced7e0;content:'';display:block;height:40px;inset-inline-start:115px;position:fixed;top:calc( 125px + var( --wpforms-admin-bar-height ));width:360px;z-index:10;transition-property:top, width, inset-inline-start;transition-duration:0.25s, 0.15s, 0.15s;transition-timing-function:ease-out, ease-out, ease-in-out}.wpforms-panel-sidebar-closed #wpforms-field-options:before{inset-inline-start:calc( 115px - 400px)}.wpforms-panel-fields .no-fields-preview{align-content:center;min-height:calc( 100vh - 294px - var( --wpforms-admin-bar-height ));padding-bottom:40px;padding-top:40px;position:relative;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.wpforms-panel-fields .no-fields-preview::before{background-image:url("../../images/empty-states/no-fields.svg");background-position:center center;background-repeat:no-repeat;background-size:371px 260px;content:"";display:block;height:260px;width:100%}.wpforms-panel-fields .no-fields-preview::after{background-image:url("../../images/builder/default-arrow.svg");background-repeat:no-repeat;background-size:97px 83px;content:"";height:83px;inset-inline-start:15px;position:absolute;top:10px;width:97px}.rtl .wpforms-panel-fields .no-fields-preview::after{transform:scale(-1, 1)}.wpforms-panel-fields .no-fields-preview h4{color:#3c434a;font-size:24px;font-weight:600;line-height:29px;margin:30px 0 10px}.wpforms-panel-fields .no-fields-preview p{color:#6a6f76;font-size:16px;font-weight:400;line-height:19px;margin:0}.wpforms-panel-fields .wpforms-title-desc{border-bottom:1px solid #dcdcde;margin:0 0 15px 0}.wpforms-panel-fields .wpforms-title-desc:hover{cursor:pointer}.wpforms-panel-fields .wpforms-title-desc .wpforms-form-name{font-size:28px;font-weight:600;line-height:28px;margin:0;padding:0}.wpforms-panel-fields .wpforms-title-desc .wpforms-form-desc{color:#6a6f76;display:block;font-size:14px;line-height:18px;margin:15px 0 15px 0}.wpforms-panel-fields .wpforms-title-desc .wpforms-title-desc-inner{padding-bottom:15px;padding-inline-end:200px}.wpforms-panel-fields .wpforms-field-wrap{margin:0px -15px;padding-top:5px;padding-bottom:19px}.wpforms-panel-fields .wpforms-field{border:1px dashed transparent;border-radius:6px;font-size:14px;margin:0 0 5px 0;padding:15px;position:relative;transition-property:border-color;transition-duration:0.25s;transition-timing-function:ease-in}.wpforms-panel-fields .wpforms-field:not(.wpforms-field-child-hovered):hover{border:1px dashed #c3c4c7;cursor:pointer}.wpforms-panel-fields .wpforms-field.active{background-color:#f6f7f7;border:1px dashed #c3c4c7}.wpforms-panel-fields .wpforms-field.selected{background-color:#f0f0f1;border:1px dashed #c3c4c7}.wpforms-panel-fields .wpforms-field.selected .wpforms-field-duplicate,.wpforms-panel-fields .wpforms-field.selected .wpforms-field-delete{display:none}.wpforms-panel-fields .wpforms-field .label-title{cursor:pointer;display:block;font-size:16px;font-weight:600;line-height:20px;margin:0 0 15px 0;padding-inline-end:60px;text-align:start;word-break:break-word}.wpforms-panel-fields .wpforms-field .label-title .required{color:#d63638;display:none}.wpforms-panel-fields .wpforms-field .label-title .hidden_text,.wpforms-panel-fields .wpforms-field .label-title .empty_text{display:none}.wpforms-panel-fields .wpforms-field .label-title .text{display:inline-block;vertical-align:top;margin-inline-end:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.wpforms-panel-fields .wpforms-field .label-title .text:has(~ .required ~ .wpforms-badge){max-width:calc( 100% - 75px)}.wpforms-panel-fields .wpforms-field .label-title .grey .wpforms-badge{margin-inline-start:15px}.wpforms-panel-fields .wpforms-field .label-title .wpforms-badge{vertical-align:top;margin-top:-1px}.wpforms-panel-fields .wpforms-field.label_empty>.label-title{color:#3c434a}.wpforms-panel-fields .wpforms-field.label_empty>.label-title .empty_text{display:inline;vertical-align:top;color:#ffb900;padding-right:5px}.wpforms-panel-fields .wpforms-field.label_empty>.label-title .hidden_text{display:none !important}.wpforms-panel-fields .wpforms-field.label_hide.label_empty>.label-title .text{color:#3c434a}.wpforms-panel-fields .wpforms-field.label_hide>.label-title{color:#777777}.wpforms-panel-fields .wpforms-field.label_hide>.label-title .hidden_text{display:inline;color:#777777;padding-inline-end:5px;vertical-align:top}.wpforms-panel-fields .wpforms-field.sublabel_hide .wpforms-sub-label{display:none}.wpforms-panel-fields .wpforms-field.required .label-title .required{display:inline-block;font-weight:300;margin-inline-start:5px;margin-inline-end:15px;vertical-align:top}.wpforms-panel-fields .wpforms-field.required .label-title .text{margin-inline-end:0}.wpforms-panel-fields .wpforms-field.required .label-title .text:has(~ .required ~ .wpforms-badge){max-width:calc( 100% - 90px)}.wpforms-panel-fields .wpforms-field.wpforms-field-radio .wpforms-other-input{margin-top:10px}.wpforms-panel-fields .wpforms-field .wpforms-sub-label{color:#a7aaad;display:block;font-size:14px;line-height:17px;margin-top:5px;margin-inline-start:1px;word-break:break-word}.wpforms-panel-fields .wpforms-field input[readonly],.wpforms-panel-fields .wpforms-field input[disabled],.wpforms-panel-fields .wpforms-field textarea[readonly],.wpforms-panel-fields .wpforms-field textarea[disabled],.wpforms-panel-fields .wpforms-field select[readonly],.wpforms-panel-fields .wpforms-field select[disabled]{background-color:#ffffff;border:1px solid #c3c4c7;box-shadow:none;color:#a7aaad;cursor:pointer;opacity:1}.wpforms-panel-fields .wpforms-field input[type=text],.wpforms-panel-fields .wpforms-field input[type=range],.wpforms-panel-fields .wpforms-field input[type=email],.wpforms-panel-fields .wpforms-field input[type=url],.wpforms-panel-fields .wpforms-field input[type=password],.wpforms-panel-fields .wpforms-field input[type=file],.wpforms-panel-fields .wpforms-field select,.wpforms-panel-fields .wpforms-field textarea{background-color:#ffffff;border:1px solid #c3c4c7;border-radius:4px;box-shadow:none;display:block;font-size:16px;height:40px;max-width:none;padding:6px 10px;width:60%;min-width:250px}.wpforms-panel-fields .wpforms-field textarea{height:110px;width:100%;min-width:100%}.wpforms-panel-fields .wpforms-field textarea[readonly],.wpforms-panel-fields .wpforms-field textarea[disabled]{resize:none}.wpforms-panel-fields .wpforms-field input[type=checkbox],.wpforms-panel-fields .wpforms-field input[type=radio]{margin-right:10px}.wpforms-panel-fields .wpforms-field select[multiple]{height:auto}.wpforms-panel-fields .wpforms-field select{padding-inline-end:24px;overflow:hidden !important;text-overflow:ellipsis}.wpforms-panel-fields .wpforms-field select>option{color:inherit;opacity:1}.wpforms-panel-fields .wpforms-field.readonly input,.wpforms-panel-fields .wpforms-field.readonly textarea,.wpforms-panel-fields .wpforms-field.readonly select,.wpforms-panel-fields .wpforms-field.readonly .choices,.wpforms-panel-fields .wpforms-field.readonly .wpforms-file-upload-builder-modern,.wpforms-panel-fields .wpforms-field.readonly .wpforms-camera-button,.wpforms-panel-fields .wpforms-field.readonly .wpforms-camera-link,.wpforms-panel-fields .wpforms-field.readonly .wpforms-richtext-wrap,.wpforms-panel-fields .wpforms-field.readonly .wpforms-rating-field-icons,.wpforms-panel-fields .wpforms-field.readonly .wpforms-image-choices,.wpforms-panel-fields .wpforms-field.readonly .wpforms-field-phone-flag,.wpforms-panel-fields .wpforms-field.readonly .wpforms-field-password-input-icon,.wpforms-panel-fields .wpforms-field.readonly .wpforms-geolocation-map,.wpforms-panel-fields .wpforms-field.readonly .wpforms-signature-wrap,.wpforms-panel-fields .wpforms-field.readonly .wpforms-square-cardnumber-wrapper,.wpforms-panel-fields .wpforms-field.readonly .wpforms-paypal-commerce-supported-cards,.wpforms-panel-fields .wpforms-field.readonly .disclaimer{opacity:0.5}.wpforms-panel-fields .wpforms-field.readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td{opacity:0.5}.wpforms-panel-fields .wpforms-field.size-small input[type=text],.wpforms-panel-fields .wpforms-field.size-small input[type=range],.wpforms-panel-fields .wpforms-field.size-small input[type=email],.wpforms-panel-fields .wpforms-field.size-small input[type=url],.wpforms-panel-fields .wpforms-field.size-small input[type=password],.wpforms-panel-fields .wpforms-field.size-small select{width:25%}.wpforms-panel-fields .wpforms-field.size-small textarea{height:60px}.wpforms-panel-fields .wpforms-field.size-large input[type=text],.wpforms-panel-fields .wpforms-field.size-large input[type=range],.wpforms-panel-fields .wpforms-field.size-large input[type=email],.wpforms-panel-fields .wpforms-field.size-large input[type=url],.wpforms-panel-fields .wpforms-field.size-large input[type=password],.wpforms-panel-fields .wpforms-field.size-large select{width:100%}.wpforms-panel-fields .wpforms-field.size-large textarea{height:300px}.wpforms-panel-fields .wpforms-field .wpforms-field-row{margin:0 0 10px 0;position:relative}.wpforms-panel-fields .wpforms-field .wpforms-field-row:last-of-type{margin:0}.wpforms-panel-fields .wpforms-field .wpforms-field-duplicate,.wpforms-panel-fields .wpforms-field .wpforms-field-delete{background-color:transparent;color:#6a6f76;font-size:16px;height:20px;opacity:0;position:absolute;inset-inline-end:40px;text-align:center;top:15px;width:20px;z-index:10;transition-property:all;transition-duration:0.25s;transition-timing-function:ease-in}.wpforms-panel-fields .wpforms-field .wpforms-field-duplicate:hover i,.wpforms-panel-fields .wpforms-field .wpforms-field-delete:hover i{color:#3c434a}.wpforms-panel-fields .wpforms-field .wpforms-field-delete{color:#d63638;inset-inline-end:15px}.wpforms-panel-fields .wpforms-field .wpforms-field-delete:hover i{color:#b32d2e}.wpforms-panel-fields .wpforms-field:not(.wpforms-field-child-hovered):hover>.wpforms-field-duplicate,.wpforms-panel-fields .wpforms-field:not(.wpforms-field-child-hovered):hover>.wpforms-field-delete,.wpforms-panel-fields .wpforms-field:not(.wpforms-field-child-hovered).active>.wpforms-field-duplicate,.wpforms-panel-fields .wpforms-field:not(.wpforms-field-child-hovered).active>.wpforms-field-delete{opacity:1}.wpforms-panel-fields .wpforms-field.wpforms-field-pagebreak .wpforms-field-duplicate{display:none}.wpforms-panel-fields .wpforms-field .wpforms-field-helper{background:#e8e9e9;border-inline-start:1px dashed #c3c4c7;border-end-end-radius:6px;border-start-start-radius:6px;border-top:1px dashed #c3c4c7;bottom:0;color:#a7aaad;font-size:11px;line-height:14px;font-weight:500;opacity:0;padding:9px;position:absolute;inset-inline-end:0;z-index:10;display:flex;justify-content:flex-end;align-items:center;transition-property:all;transition-duration:0.25s;transition-timing-function:ease-in}.wpforms-panel-fields .wpforms-field .wpforms-field-helper-edit{margin-inline-end:5px}.wpforms-panel-fields .wpforms-field .wpforms-field-helper-drag{position:relative;padding-inline-start:5px;margin-inline-end:5px}.wpforms-panel-fields .wpforms-field .wpforms-field-helper-drag:before{content:'';position:absolute;width:1px;height:calc( 100% - 6px);background:#a7aaad;inset-inline-start:0;top:3px}.wpforms-panel-fields .wpforms-field .wpforms-field-helper-hide{color:#a7aaad;margin-inline-start:5px;font-size:14px;width:14px;height:14px;text-align:center}.wpforms-panel-fields .wpforms-field .wpforms-field-helper-hide:hover{color:#6a6f76}.wpforms-panel-fields .wpforms-field-not-draggable .wpforms-field-helper-drag{display:none}.wpforms-panel-fields .wpforms-field:not(.wpforms-field-child-hovered):hover>.wpforms-field-helper{opacity:1}.wpforms-panel-fields .wpforms-field.wpforms-field-radio .wpforms-alert-dynamic,.wpforms-panel-fields .wpforms-field.wpforms-field-checkbox .wpforms-alert-dynamic,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-multiple .wpforms-alert-dynamic,.wpforms-panel-fields .wpforms-field.wpforms-field-payment-checkbox .wpforms-alert-dynamic{margin:15px 0 0 0}.wpforms-panel-fields .wpforms-field.wpforms-field-stick .wpforms-field-delete,.wpforms-panel-fields .wpforms-field.wpforms-field-stick .wpforms-field-helper{display:none !important}.wpforms-panel-fields .wpforms-field .description{clear:both;color:#6a6f76;font-size:14px;margin:5px 0 0 0;word-break:break-word}.wpforms-panel-fields .wpforms-field .description:empty{margin:0}.wpforms-panel-fields .wpforms-field .description.disclaimer{background-color:#ffffff;border:1px solid #c3c4c7;font-size:12px;height:125px;margin-top:15px;overflow-y:scroll;padding:10px 10px 0 10px}.wpforms-panel-fields .wpforms-field .description.disclaimer p{font-size:inherit;line-height:17px;margin:0 0 15px 0}.wpforms-panel-fields .wpforms-field .wpforms-field-hide-remaining{display:none !important}.wpforms-panel-fields .wpforms-field .wpforms-field-hide-remaining ~ *{display:none !important}.wpforms-panel-fields .ui-sortable-disabled .wpforms-field .wpforms-field-duplicate,.wpforms-panel-fields .ui-sortable-disabled .wpforms-field .wpforms-field-delete{cursor:no-drop}.wpforms-panel-fields .wpforms-field-submit{margin-bottom:0}.wpforms-panel-fields .wpforms-field-submit input[type=submit]{background:#999c9e;border:none;border-radius:4px;color:#ffffff;cursor:pointer;font-size:17px;font-weight:600;line-height:21px;padding:10px 15px}.wpforms-panel-fields .wpforms-field-submit input[type=submit]:focus{border:none;box-shadow:none}.wpforms-panel-fields .wpforms-field select.quantity-input{float:inline-start;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-panel-fields .wpforms-field-payment-single .price,.wpforms-panel-fields .wpforms-field-payment-single .wpforms-currency-symbol,.wpforms-panel-fields .wpforms-field-payment-checkbox .price,.wpforms-panel-fields .wpforms-field-payment-checkbox .wpforms-currency-symbol,.wpforms-panel-fields .wpforms-field-payment-multiple .price,.wpforms-panel-fields .wpforms-field-payment-multiple .wpforms-currency-symbol{white-space:nowrap}#wpforms-panel-fields .wpforms-tabs{background:#dfe7ef;border-bottom:1px solid #ced7e0;display:flex;flex-wrap:nowrap;inset-inline-start:95px;margin:0;padding:0;position:fixed;top:calc( 76px + var( --wpforms-admin-bar-height ));width:400px;z-index:11;transition-property:top, width, inset-inline-start;transition-duration:0.25s, 0.15s, 0.15s;transition-timing-function:ease-out}#wpforms-panel-fields .wpforms-tabs .active{background:#ebf3fc}#wpforms-panel-fields .wpforms-tabs li{margin:0;width:50%}#wpforms-panel-fields .wpforms-tabs a{color:#86919e;display:block;font-size:16px;font-weight:400;line-height:20px;overflow:hidden;padding:14px;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}#wpforms-panel-fields .wpforms-tabs a:hover{color:#3c434a;text-decoration:none}#wpforms-panel-fields .wpforms-tabs a:hover i{color:#3c434a}#wpforms-panel-fields .wpforms-tabs a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-panel-fields .wpforms-tabs a i{color:#86919e;font-size:16px;margin-inline-end:8px;transition:color 0.05s ease-in-out}#wpforms-panel-fields .wpforms-tabs a.active{pointer-events:none}#wpforms-panel-fields .wpforms-tabs a.active,#wpforms-panel-fields .wpforms-tabs a.active:hover{color:#3c434a;text-decoration:none}#wpforms-panel-fields .wpforms-tab-content{display:none;margin:40px 0 0 0;position:relative;height:calc( 100% - 40px);overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}#wpforms-panel-fields .wpforms-tab-content.wpforms-add-fields{display:block;margin-top:0;height:100%;scroll-behavior:smooth;padding-block-start:20px;padding-block-end:20px;padding-inline-start:20px;padding-inline-end:20px}#wpforms-panel-fields .wpforms-tab-content.wpforms-hide-options-groups{margin-top:0;height:100%}#wpforms-panel-fields .wpforms-tab-content.wpforms-hide-options-groups:before{display:none !important}#wpforms-panel-fields .wpforms-tab-content.wpforms-hide-options-groups .wpforms-field-option-group-toggle{display:none !important}.wpforms-add-fields-group{border-bottom:1px solid #ced7e0}.wpforms-add-fields-group:first-of-type{margin-top:-20px}.wpforms-add-fields-group:last-of-type{margin-bottom:0;padding-bottom:0}.wpforms-add-fields-group a{color:#3c434a;display:block;font-size:16px;font-weight:600;margin:0;outline:0;overflow:hidden;padding:20px 0;text-decoration:none}.wpforms-add-fields-group a:hover{text-decoration:none}.wpforms-add-fields-group a:active,.wpforms-add-fields-group a:focus{outline:0}.wpforms-add-fields-group a i{color:#86919e;float:right;transition-property:transform;transition-duration:0.4s;transition-timing-function:ease-out}.wpforms-add-fields-group a i.wpforms-angle-right{transform:rotate(-90deg)}.wpforms-add-fields-group .wpforms-add-fields-buttons{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:20px;overflow:hidden}.wpforms-add-fields-group button{background-color:#036aab;border:none;border-radius:4px;color:#ffffff;display:block;margin:16px 0 0 0;width:calc( 50% - 8px);overflow:hidden;padding-block:12px;padding-inline-start:12px;padding-inline-end:10px;text-align:start;text-overflow:ellipsis;white-space:nowrap}.wpforms-add-fields-group button:hover{background-color:#215d8f;cursor:pointer}.wpforms-add-fields-group button:disabled:hover,.wpforms-add-fields-group button.ui-draggable-disabled:hover{background-color:#036aab;cursor:no-drop}.wpforms-add-fields-group button:nth-child(1),.wpforms-add-fields-group button:nth-child(2){margin-top:0}.wpforms-add-fields-group button i{color:rgba(255,255,255,0.6);font-size:14px;display:inline-block;margin-inline-end:5px}.rtl .wpforms-add-fields-group a i{float:left}.rtl .wpforms-add-fields-group a i.wpforms-angle-right{transform:rotate(90deg)}.wpforms-panel .wpforms-search-fields-wrapper{position:relative}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-no-results{margin-top:20px;display:none}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-list{display:none;margin-top:20px}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-list .wpforms-add-fields-group:first-of-type{margin:0}.wpforms-panel .wpforms-search-fields-wrapper #wpforms-search-fields-input{font-size:14px;font-weight:400;height:40px;line-height:18px;padding-left:35px;padding-right:35px;width:100%;color:#3c434a;border:1px solid #b0b6bd;border-radius:4px;box-shadow:none}.wpforms-panel .wpforms-search-fields-wrapper #wpforms-search-fields-input::placeholder{color:#86919e;font-weight:400}.wpforms-panel .wpforms-search-fields-wrapper #wpforms-search-fields-input:focus{border-color:#036aab;box-shadow:0 0 0 1px #036aab}.wpforms-panel .wpforms-search-fields-wrapper #wpforms-search-fields-input::-webkit-search-cancel-button{display:none}.wpforms-panel .wpforms-search-fields-wrapper #wpforms-search-fields-input:hover::-webkit-search-cancel-button{-webkit-text-fill-color:#86919e}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-input-wrapper{position:relative}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-input-wrapper .wpforms-search-fields-input-close{display:none;color:#b0b6bd;padding:12px;font-size:16px;inset-inline-end:0;position:absolute;top:50%;transform:translateY(-50%);cursor:pointer;transition:0.05s ease}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-input-wrapper .wpforms-search-fields-input-close.active{display:block;width:auto}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-input-wrapper .wpforms-search-fields-input-close:hover{color:#86919e}.wpforms-panel .wpforms-search-fields-wrapper .wpforms-search-fields-input-wrapper:before{font:normal normal normal 14px/1 FontAwesome;content:"\f002";color:#b0b6bd;padding:12px;font-size:16px;inset-inline-start:0;position:absolute;top:50%;transform:translateY(-50%)}.wpforms-smart-tags-widget-container{position:relative;align-items:center;display:flex;margin-bottom:10px;border-radius:4px;border:1px solid #b0b6bd}.wpforms-smart-tags-widget-container:has(.wpforms-smart-tags-widget:focus),.wpforms-smart-tags-widget-container:has(.wpforms-show-smart-tags.active){border:1px solid #036aab;box-shadow:0 0 0 1px #036aab;outline:none}.wpforms-smart-tags-widget-container .insert-smart-tag-dropdown{height:266px;width:calc(100% - 10px);max-width:370px;right:-5px;margin-top:-5px;border-radius:6px;transition:opacity 150ms ease}.wpforms-smart-tags-widget-container .insert-smart-tag-dropdown.open-down{margin-top:13px}.wpforms-smart-tags-widget-container .insert-smart-tag-dropdown ul{max-height:none;margin-bottom:-1px}.wpforms-smart-tags-widget-container .insert-smart-tag-dropdown li:has(.heading){cursor:default;color:#a7aaad;font-size:12px;font-weight:500;text-transform:uppercase;background-color:#f6f7f7}.wpforms-smart-tags-widget-container:has(.wpforms-smart-tags-widget.wpforms-readonly) .wpforms-show-smart-tags{pointer-events:none}.wpforms-smart-tags-widget-container .wpforms-readonly{opacity:0.7;pointer-events:none}.wpforms-smart-tags-widget-original{display:none}.wpforms-show-smart-tags{display:flex;justify-content:center;align-items:center;width:32px;height:30px;cursor:pointer;background-color:#f6f7f7;border:1px solid #b0b6bd;border-left:none;border-radius:0 4px 4px 0;text-align:center;color:#b0b2b3}.wpforms-show-smart-tags i{margin-top:1px;pointer-events:none;font-size:16px}.wpforms-show-smart-tags:hover,.wpforms-show-smart-tags.active{color:#6a6f76}.wpforms-smart-tags-widget{width:100%;max-width:100%;box-sizing:border-box;outline:none;box-shadow:none;color:#3c434a;font-size:14px;line-height:21px;padding:6px 10px;margin:0;cursor:text}.wpforms-smart-tags-widget .tag{position:relative;display:inline-block;height:22px;background-color:#036aab;color:#ffffff;border-radius:2px;margin-bottom:2px;font-size:12px;line-height:14px;padding:4px 23px 4px 7px;margin-right:1px}.wpforms-smart-tags-widget .tag:focus-visible{outline:none;color:#036aab;background-color:#f2f8fb;box-shadow:inset 0 0 0 1px #036aab}.wpforms-smart-tags-widget .tag+.tag-edit-ok{margin-block-start:5px;margin-inline-end:9px;margin-block-end:0;margin-inline-start:-20px;opacity:0.5;color:#036aab;font-size:14px;height:12px;width:12px;cursor:pointer;vertical-align:top}.wpforms-smart-tags-widget .tag+.tag-edit-ok:hover{opacity:0.65}.wpforms-smart-tags-widget .tag:last-child{margin-right:0}.wpforms-smart-tags-widget .tag i{display:inline-block;position:absolute;top:4.5px;inset-inline-end:7px;opacity:0.4;height:12px;width:12px;color:#ffffff;cursor:pointer;font-size:13px}.wpforms-smart-tags-widget .tag i:hover{opacity:0.65}.wpforms-smart-tags-widget-textarea{height:120px;padding-inline-end:40px;overflow:auto;white-space:pre-wrap;word-wrap:break-word;resize:vertical}.wpforms-smart-tags-widget-textarea+.wpforms-show-smart-tags{position:absolute;top:0;inset-inline-end:0;border-radius:0 4px 0 4px;border:1px solid #e4e6e8;border-top:none;border-inline-end:none}.wpforms-smart-tags-widget-textarea::-webkit-scrollbar{background:transparent;width:15px;height:15px}.wpforms-smart-tags-widget-textarea::-webkit-scrollbar-track{background:transparent}.wpforms-smart-tags-widget-textarea::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0);background:transparent;border-radius:15px;border:solid 4px transparent}.wpforms-smart-tags-widget-textarea::-webkit-resizer,.wpforms-smart-tags-widget-textarea::-webkit-scrollbar-button,.wpforms-smart-tags-widget-textarea::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.wpforms-smart-tags-widget-textarea{scrollbar-color:rgba(0,0,0,0) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.wpforms-smart-tags-widget-textarea:hover::-webkit-scrollbar,.wpforms-smart-tags-widget-textarea:focus::-webkit-scrollbar{background:transparent;width:15px;height:15px}.wpforms-smart-tags-widget-textarea:hover::-webkit-scrollbar-track,.wpforms-smart-tags-widget-textarea:focus::-webkit-scrollbar-track{background:transparent}.wpforms-smart-tags-widget-textarea:hover::-webkit-scrollbar-thumb,.wpforms-smart-tags-widget-textarea:focus::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.5);background:transparent;border-radius:15px;border:solid 4px transparent}.wpforms-smart-tags-widget-textarea:hover::-webkit-resizer,.wpforms-smart-tags-widget-textarea:hover::-webkit-scrollbar-button,.wpforms-smart-tags-widget-textarea:hover::-webkit-scrollbar-corner,.wpforms-smart-tags-widget-textarea:focus::-webkit-resizer,.wpforms-smart-tags-widget-textarea:focus::-webkit-scrollbar-button,.wpforms-smart-tags-widget-textarea:focus::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.wpforms-smart-tags-widget-textarea:hover,.wpforms-smart-tags-widget-textarea:focus{scrollbar-color:rgba(0,0,0,0.5) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.wpforms-smart-tags-widget-input{position:relative;display:inline-block;padding:4px 10px;white-space:nowrap;overflow-y:hidden;overflow-x:auto;border-radius:4px 0 0 4px;border-right:1px solid #e4e6e8;background-color:#ffffff;scroll-padding-left:10px;scrollbar-width:none;-ms-overflow-style:none}.wpforms-smart-tags-widget-input+.wpforms-show-smart-tags{border:none;flex-shrink:0}.wpforms-smart-tags-widget-input .tag{line-height:22px;margin-bottom:0;padding:0 25px 0 7px}.wpforms-smart-tags-widget-input ::-webkit-scrollbar{display:none}.wpforms-panel-sidebar .wpforms-smart-tags-widget-input{height:30px}.wpforms-panel-sidebar .wpforms-smart-tags-widget-input+.wpforms-show-smart-tags{background:#f6f7f7;border-color:#e3e5e8}.wpforms-panel-sidebar .wpforms-smart-tags-widget-input+.wpforms-show-smart-tags i{color:#b0b6bd}.wpforms-panel-sidebar .wpforms-smart-tags-widget-input+.wpforms-show-smart-tags:hover i,.wpforms-panel-sidebar .wpforms-smart-tags-widget-input+.wpforms-show-smart-tags.active i{color:#86919e}.wpforms-panel-sidebar .wpforms-field-options-column .wpforms-smart-tags-widget-container{width:calc(100% - 2px)}.wpforms-panel-sidebar .wpforms-field-options-column .wpforms-builder-dropdown-list{width:370px;left:-192px}.wp-editor-wrap .mce-toolbar .mce-wpforms-smart-tags-mce-button.active{background:#f0f0f1;border-color:#50575e}.wp-editor-wrap .mce-toolbar .mce-wpforms-smart-tags-mce-button i{background-size:contain;background-repeat:no-repeat;background-position:center}.wp-editor-wrap .insert-smart-tag-dropdown{height:266px;width:100%;max-width:370px;left:85px;margin-top:-10px;border-radius:6px;transition:opacity 150ms ease}.wp-editor-wrap .insert-smart-tag-dropdown.open-down{margin-top:19px}.wp-editor-wrap .insert-smart-tag-dropdown ul{max-height:none;margin-bottom:-1px}.wp-editor-wrap .insert-smart-tag-dropdown li:has(.heading){color:#a7aaad;font-size:12px;font-weight:500;text-transform:uppercase;background-color:#f6f7f7}.wpforms-field-option-row .insert-smart-tag-dropdown{width:auto;left:-5px;right:-5px}.rtl .wpforms-smart-tags-widget-input{direction:rtl;text-align:right;border-radius:0 4px 4px 0;border-left:1px solid #e4e6e8;scroll-padding-right:10px}.rtl .wpforms-smart-tags-widget-input+.wpforms-show-smart-tags{border-radius:4px 0 0 4px}.rtl .wpforms-smart-tags-widget-input .tag{padding:0 7px 0 25px}.rtl .wpforms-smart-tags-widget-textarea .tag{padding:4px 7px 4px 23px}.rtl .wpforms-smart-tags-widget-textarea+.wpforms-show-smart-tags{border-radius:4px 0}.wpforms-field-option-row{margin-bottom:20px}.wpforms-field-option-row-description p.note{margin-top:-15px}.wpforms-field-option-row label{display:flex;font-size:14px;font-weight:400;line-height:17px;margin:0 0 8px 1px;vertical-align:text-top}.wpforms-field-option-row label.inline{display:inline-block;font-weight:400;margin:0 0 0 10px}.wpforms-field-option-row label.sub-label{display:block}.wpforms-field-option-row .after-label-description{margin-left:auto;color:#86919e;font-size:12px;text-decoration:none}.wpforms-field-option-row .after-label-description:hover{color:#6a6f76;text-decoration:underline}.wpforms-field-option-row input:not(:focus),.wpforms-field-option-row textarea:not(:focus),.wpforms-field-option-row select:not(:focus){border-color:#b0b6bd}.wpforms-field-option-row input[type=checkbox],.wpforms-field-option-row input[type=radio]{margin-inline-end:0}.wpforms-field-option-row input[type=text],.wpforms-field-option-row input[type=number],.wpforms-field-option-row textarea,.wpforms-field-option-row select{width:calc( 100% - 2px)}.wpforms-field-option-row input[type=text]+.wpforms-alert,.wpforms-field-option-row input[type=number]+.wpforms-alert,.wpforms-field-option-row textarea+.wpforms-alert,.wpforms-field-option-row select+.wpforms-alert{margin-top:10px}.wpforms-field-option-row input[type=text].has-before{float:right;width:95%}.wpforms-field-option-row .before-input{float:left;padding:7px 0 0 0;width:4%}.wpforms-field-option-row p{font-size:14px;margin:0}.wpforms-field-option-row .meta{font-weight:400}.wpforms-field-option-row span.id{color:#86919e;font-size:12px}.wpforms-field-option-row.wpforms-field-option-row-code textarea{font-family:monospace;font-size:12px;min-height:120px;direction:ltr}.wpforms-field-option-row.wpforms-field-option-row-limit_controls{align-items:center;display:flex}.wpforms-field-option-row.wpforms-field-option-row-limit_controls.wpforms-hide{display:none}.wpforms-field-option-row.wpforms-field-option-row-limit_controls input{margin-inline-end:10px}.wpforms-field-option-row.wpforms-field-option-row-date_disable_todays_date.wpforms-hide{display:none}.wpforms-field-option-row.color-picker-row{overflow:visible}.wpforms-field-option-row.color-picker-row .minicolors{width:100%}.wpforms-field-option-row.color-picker-row .minicolors .minicolors-swatch{height:22px;width:22px;border-radius:2px;border:none;overflow:hidden;box-shadow:inset 0 0 1px rgba(0,0,0,0.1)}.wpforms-field-option-row.color-picker-row .minicolors .minicolors-swatch .minicolors-swatch-color{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15)}.wpforms-field-option-row.color-picker-row .wpforms-color-picker{height:auto;padding-inline-start:35px !important}.wpforms-field-option-row .wpforms-confirm-disabled .wpforms-field-option-row-confirmation_placeholder,.wpforms-field-option-row .wpforms-confirm-disabled .wpforms-field-option-row-sublabel_hide{display:none}.wpforms-field-option-row .wpforms-field-options-quantity-columns{display:flex;gap:10px}.wpforms-field-option-row .wpforms-field-options-quantity-columns .wpforms-field-options-quantity-column{display:flex;flex-direction:column}.wpforms-field-option-row .wpforms-field-option-row-columns{display:flex;gap:10px;flex-direction:row}.wpforms-field-option-row .wpforms-field-option-row-columns-2>div{width:50%}#wpforms-field-options .no-fields.wpforms-alert{position:fixed;z-index:100;margin-top:-20px;margin-inline-start:20px;width:360px}.wpforms-field-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.wpforms-field-header label{margin:0}.wpforms-field-header .wpforms-toggle-control{gap:2px}#wpforms-panel-fields .layout-selector-display .layouts{background-color:#ffffff;border:1px solid #b0b6bd;border-radius:4px;display:flex;flex-wrap:wrap;margin:1px !important;padding:10px 5px 2px 5px;width:100% !important}#wpforms-panel-fields .layout-selector-display .layout-selector-display-layout{cursor:pointer;min-width:25%;padding:0 5px 5px 5px}#wpforms-panel-fields .layout-selector-display span{background-color:#b0b6bd;border:1px solid #ffffff;display:inline-block;height:30px;transition-property:background-color;transition-duration:0.25s;transition-timing-function:ease-in}#wpforms-panel-fields .layout-selector-display span.one-half{width:50%}#wpforms-panel-fields .layout-selector-display span.one-third{width:33.33333%}#wpforms-panel-fields .layout-selector-display span.two-third{width:66.66667%}#wpforms-panel-fields .layout-selector-display span.one-fourth{width:25%}#wpforms-panel-fields .layout-selector-display span.two-fourth{width:50%}#wpforms-panel-fields .layout-selector-display .layout-selector-display-layout:hover span,#wpforms-panel-fields .layout-selector-display .layout-selector-display-columns span:hover{background-color:#036aab}#wpforms-panel-fields .layout-selector-display .layout-selector-display-columns{min-width:100%;padding:0 5px 5px 5px}#wpforms-panel-fields .layout-selector-display .layout-selector-display-columns span{border:2px solid #ffffff;cursor:pointer;height:70px}.wpforms-icon-picker-jconfirm-box{border-top:none !important}.wpforms-icon-picker-jconfirm-content-pane{margin-bottom:15px !important;background-color:#f6f7f7;border-radius:6px}.wpforms-icon-picker-title .jconfirm-title{margin-top:0 !important}.wpforms-icon-picker-title .wpforms-icon-picker-description{display:block;margin:15px 0 25px 0;font-size:16px;line-height:22px;font-weight:normal}.wpforms-icon-picker-title input{width:100%;margin:10px auto;border:none;box-shadow:0 0 0 1px #c3c4c7;text-align:center;height:40px;border-radius:20px;transition:box-shadow 0.25s ease-in-out}.wpforms-icon-picker-title input:focus{box-shadow:0 0 0 2px #036aab}.wpforms-icon-picker-title input::placeholder{color:#b0b2b3}.wpforms-icon-picker-container .wpforms-icon-picker-icons{display:grid;grid-template-columns:repeat(5, 1fr);gap:22px;grid-auto-rows:min-content;padding:21px;min-height:368px}.wpforms-icon-picker-container .wpforms-icon-picker-icons li{background-color:#ffffff;box-shadow:0 0 0 1px #c3c4c7;border-radius:6px;display:flex;gap:10px;flex-direction:column;cursor:pointer;padding:10px;margin:0;transition:box-shadow 0.05s ease-in-out}.wpforms-icon-picker-container .wpforms-icon-picker-icons li:hover{box-shadow:0 0 0 2px #6a6f76,0 4px 4px rgba(0,0,0,0.1)}.wpforms-icon-picker-container .wpforms-icon-picker-icons li.selected{box-shadow:0 0 0 2px #e27730,0 4px 4px rgba(0,0,0,0.1)}.wpforms-icon-picker-container .wpforms-icon-picker-icons li.selected .ic-fa-solid,.wpforms-icon-picker-container .wpforms-icon-picker-icons li.selected .ic-fa-brands{color:#e27730}.wpforms-icon-picker-container .wpforms-icon-picker-icons li.selected span{color:#6a6f76}.wpforms-icon-picker-container .wpforms-icon-picker-icons li .ic-fa-brands,.wpforms-icon-picker-container .wpforms-icon-picker-icons li .ic-fa-regular,.wpforms-icon-picker-container .wpforms-icon-picker-icons li .ic-fa-solid{font-size:var(--wpforms-icon-choices-size-medium);line-height:var(--wpforms-icon-choices-size-medium);color:#6a6f76}.wpforms-icon-picker-container .wpforms-icon-picker-icons li span{font-size:13px;line-height:16px;color:#b0b2b3;font-weight:400;width:102px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wpforms-icon-picker-container .wpforms-icon-picker-pagination{overflow:hidden;height:0}.wpforms-icon-picker-container .wpforms-icon-picker-not-found{display:flex;align-items:center;justify-content:center;color:#6a6f76;position:absolute;top:0;right:0;bottom:0;left:0}.wpforms-icon-picker-container .wpforms-icon-picker-not-found.wpforms-hidden{display:none}.wpforms-icon-picker-container .wpforms-icon-picker-not-found strong{margin-left:5px}.smart-tags-list,.smart-tags-list-display{background-color:#ffffff;border:1px solid #b0b6bd;border-radius:4px;max-height:175px;overflow-x:hidden;overflow-y:auto;padding:0}.smart-tags-list li.heading,.smart-tags-list-display li.heading{padding:10px !important}.wpforms-panel-content .smart-tags-list,.wpforms-panel-content .smart-tags-list-display{border-color:#c3c4c7}.wpforms-toggle-control{align-items:flex-start;display:flex;gap:10px}.wpforms-toggle-control.wpforms-toggle-control-disabled{pointer-events:none;opacity:50%}.wpforms-toggle-control input[type=checkbox]{display:none;height:0;width:0}.wpforms-toggle-control input[type=checkbox]:checked+label.wpforms-toggle-control-icon{background-color:#036aab}.wpforms-toggle-control input[type=checkbox]:checked+label.wpforms-toggle-control-icon:after{inset-inline-start:calc( 100% - 13px - 2px)}.wpforms-toggle-control span,.wpforms-toggle-control label{align-items:flex-start;display:flex;gap:10px;margin:0;vertical-align:unset}.wpforms-toggle-control .wpforms-toggle-control-label:hover{cursor:pointer}.wpforms-toggle-control .wpforms-toggle-control-status{color:#86919e;font-size:12px;line-height:14px;margin:2px 5px}.wpforms-toggle-control .wpforms-toggle-control-icon{background-color:#b0b2b3;border-radius:8.5px;cursor:pointer;display:inline-block;height:17px;margin:0 1px;position:relative;text-indent:-9999px;width:27px;flex:0 0 auto}.wpforms-toggle-control .wpforms-toggle-control-icon:after{background:#ffffff;border-radius:50%;content:"";height:13px;inset-inline-start:2px;position:absolute;top:2px;width:13px;transition-property:all;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms-toggle-control .wpforms-help-tooltip{margin:1px 0 0 0 !important}.wpforms-toggle-control:hover input:checked+label.wpforms-toggle-control-icon{background-color:#215d8f}.wpforms-toggle-control:hover .wpforms-toggle-control-icon{background-color:#6a6f76}.wpforms-panel-sidebar .wpforms-toggle-control .wpforms-toggle-control-icon{background-color:#b0b6bd}.wpforms-panel-sidebar .wpforms-toggle-control:hover .wpforms-toggle-control-icon{background-color:#86919e}.wpforms-panel-sidebar .wpforms-toggle-control.wpforms-field-option-in-label-right .wpforms-toggle-control-label{color:#86919e;font-size:12px;line-height:14px;margin:2px 5px;max-width:initial}.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]){pointer-events:initial}.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:hover label,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:hover i,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:focus label,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:focus i,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:active label,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:active i{cursor:default !important;pointer-events:none}.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:hover .wpforms-toggle-control-icon,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:focus .wpforms-toggle-control-icon,.wpforms-panel-sidebar .wpforms-field-option-row.wpforms-disabled:has(.wpforms-toggle-control[title]) .wpforms-toggle-control[title]:active .wpforms-toggle-control-icon{cursor:default !important;background-color:#b0b6bd}.wpforms-panel-sidebar .wpforms-field-option-hidden .wpforms-field-option-row-label_hide.wpforms-disabled{pointer-events:none}.wpforms-field-option-group-toggle{color:#3c434a;display:block;font-size:15px;inset-inline-start:190px;margin:0;outline:0;overflow:hidden;padding:12px 12px 9px 12px;position:fixed;text-decoration:none;text-overflow:ellipsis;text-transform:capitalize;top:calc( 124px + var( --wpforms-admin-bar-height ));white-space:nowrap;z-index:11;transition-property:top, width, inset-inline-start;transition-duration:0.25s, 0.15s;transition-timing-function:ease-out}.wpforms-field-option-group-toggle:hover{color:#86919e}.wpforms-field-option-group-toggle.education-modal{opacity:.6}.wpforms-field-option-field-title{color:#3c434a;display:block;font-size:15px;font-weight:600;line-height:18px;margin:0 0 0 1px;outline:0;padding:20px 20px 0 20px;text-decoration:none}.wpforms-field-option-field-title span{color:#86919e;font-weight:400}.wpforms-field-option-field-title-notice{padding-block-start:20px;padding-block-end:0;padding-inline-start:20px;padding-inline-end:20px}.wpforms-field-option-field-title-notice .wpforms-educational-alert.wpforms-alert{margin:0;border-inline-start:none;border-radius:6px;box-shadow:0 2px 2px 0 rgba(0,0,0,0.05);padding:15px}.wpforms-field-option-field-title-notice .wpforms-educational-alert.wpforms-alert h4{font-size:15px;line-height:18px}.wpforms-field-option-field-title-notice .wpforms-educational-alert.wpforms-alert p{color:#6a6f76}.wpforms-field-option-field-title-notice .wpforms-educational-alert.wpforms-alert button{margin-top:10px}.wpforms-field-option-group-basic .wpforms-field-option-group-toggle{inset-inline-start:115px;max-width:83px}.wpforms-field-option-group-advanced .wpforms-field-option-group-toggle{inset-inline-start:192px;max-width:99px}.wpforms-field-option-group-conditionals .wpforms-field-option-group-toggle{inset-inline-start:281px;max-width:116px}.wpforms-panel-sidebar-closed .wpforms-field-option-group-basic .wpforms-field-option-group-toggle{inset-inline-start:calc( 115px - 400px);max-width:83px}.wpforms-panel-sidebar-closed .wpforms-field-option-group-advanced .wpforms-field-option-group-toggle{inset-inline-start:calc( 192px - 400px);max-width:99px}.wpforms-panel-sidebar-closed .wpforms-field-option-group-conditionals .wpforms-field-option-group-toggle{inset-inline-start:calc( 281px - 400px);max-width:116px}.wpforms-field-option-group .wpforms-field-option-group-inner{display:none;padding-block-start:20px;padding-block-end:20px;padding-inline-start:20px;padding-inline-end:20px}.wpforms-field-option-group.active .wpforms-field-option-group-toggle{border-bottom:3px solid #e27730;font-weight:600}.wpforms-field-option-group.active .wpforms-field-option-group-toggle:hover{color:#3c434a}.wpforms-field-option-group.active .wpforms-field-option-group-inner{display:block}.wpforms-field-is-pro .wpforms-field-option-group-inner{cursor:default;pointer-events:none}.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row input,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row select,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row textarea,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row .wpforms-toggle-control-icon,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row .choices,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row .choices-list .add,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row .choices-list .remove,.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-field-option-row .minicolors-sprite{opacity:.5}.wpforms-field-is-pro .wpforms-field-option-group-inner .wpforms-expandable-editor{opacity:.5} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-overlay.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-overlay.min.css new file mode 100644 index 0000000..bee35d1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-overlay.min.css @@ -0,0 +1 @@ +#wpforms-builder-overlay{background:radial-gradient(50% 50% at 50% 50%, #f6f7f7 37.5%, #e8e9e9 100%);cursor:default;height:100%;min-width:0;overflow:hidden;position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;transition-property:opacity;transition-duration:0.5s;transition-timing-function:ease-out;display:flex;flex-direction:column;justify-content:center;align-items:center}#wpforms-builder-overlay.fade-out{opacity:0}.wpforms-builder-overlay-content{text-align:center;position:relative;height:100px;width:100px}.wpforms-builder-overlay-content i{display:block;position:absolute;left:0;top:0}.wpforms-builder-overlay-content i.spinner{background-image:url("../../images/builder/loading-spinner.svg");border-radius:50%;height:100px;width:100px;-webkit-animation:wpforms-spinner-rotation 0.8s linear infinite;-moz-animation:wpforms-spinner-rotation 0.8s linear infinite;-ms-animation:wpforms-spinner-rotation 0.8s linear infinite;-o-animation:wpforms-spinner-rotation 0.8s linear infinite;animation:wpforms-spinner-rotation 0.8s linear infinite}.wpforms-builder-overlay-content i.avatar{background-color:#ffffff;background-image:url("../../images/builder/loading-avatar.svg");border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,0.15);height:80px;margin:10px;width:80px}@keyframes wpforms-spinner-rotation{from{transform:rotate(0deg)}to{transform:rotate(360deg)}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-panels.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-panels.min.css new file mode 100644 index 0000000..847cfda --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-panels.min.css @@ -0,0 +1 @@ +.wpforms-admin-empty-state-container{color:#50575e;font-style:normal;padding:30px;text-align:center}.wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url(../images/empty-states/waving-hand-emoji.png);background-position:0 0;background-repeat:no-repeat;background-size:24px 24px;display:inline-block;padding-left:34px}.wpforms-admin-empty-state-container h2{color:#1d2327;font-family:inherit;font-size:24px;font-weight:600;line-height:29px;margin:0 0 10px}.wpforms-admin-empty-state-container h4{color:#32373c;font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;margin-block:0}.wpforms-admin-empty-state-container img{max-width:428px;width:100%;margin:30px auto}.wpforms-admin-empty-state-container p{font-family:inherit;font-size:16px;line-height:24px;margin-block:0;text-align:center}.wpforms-admin-empty-state-container.wpforms-admin-no-forms p:first-of-type{font-weight:600}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active{border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:16px;line-height:1.5;text-align:center;color:#ffffff;padding:15px 30px;margin:0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:hover,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:focus,.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-btn:active:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-admin-no-forms .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px;line-height:16px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms{font-family:'Helvetica Neue', sans-serif;background:rgba(255,255,255,0.5);border:1px solid #71d7d7;box-sizing:border-box;padding:20px}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms img{max-width:240px;width:100%;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms p{font-family:inherit;font-weight:normal;font-size:14px;line-height:18px;text-align:center;color:#495157;max-width:450px;margin:20px auto 0}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a{color:inherit;text-decoration:underline;position:relative}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms a:hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn{background:#525962;border:none;border-radius:3px;font-family:inherit;font-weight:600;font-size:12px;line-height:1.5;text-align:center;text-transform:uppercase;color:#ffffff;padding:7px 17px;margin:20px 0 0;text-decoration:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:hover{text-decoration:none;background:#2b2c31}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-btn:focus{outline:none}.wpforms-admin-empty-state-container.wpforms-elementor-no-forms .wpforms-admin-no-forms-footer{font-size:12px;line-height:1.5;color:#6d7882}.wpforms-admin-empty-state-container.wpforms-admin-no-entries img{max-width:413px;display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments{max-width:640px;margin:0 auto}.wpforms-admin-empty-state-container.wpforms-admin-no-payments img{display:block}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-btn-lg{border-radius:4px;padding:14px 20px}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]){color:#056aab;text-decoration:underline}.wpforms-admin-empty-state-container.wpforms-admin-no-payments a:not([class]):hover{text-decoration:none}.wpforms-admin-empty-state-container.wpforms-admin-no-payments .wpforms-admin-no-forms-footer{margin-top:30px;font-size:14px}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h2,.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates h4{font-weight:500}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p{font-size:14px;color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates p.wpforms-admin-no-forms-footer{color:#50575e}.wpforms-admin-empty-state-container.wpforms-admin-no-user-templates img{max-width:560px;border-radius:4px;box-shadow:0 5px 15px rgba(0,0,0,0.15)}#wpforms-panel-setup .wpforms-panel-content{align-items:stretch;border-radius:12px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;padding:0}#wpforms-setup-form-name{align-items:center;background-color:#f6f7f7;border-bottom:1px solid #dcdcde;display:flex;justify-content:space-between;overflow:hidden;padding:30px}#wpforms-setup-form-name label{display:inline-block;font-size:20px;font-weight:600;min-width:200px;padding:0}#wpforms-setup-name{display:inline-block;font-size:20px;height:50px;margin-inline-start:30px;padding:13px 10px;width:calc( 100% - 290px)}.wpforms-setup-title{font-size:20px;font-weight:600;margin:30px 30px 0 30px;color:#3c434a}.wpforms-setup-title .count{color:#b0b2b3}.wpforms-setup-desc{margin:10px 30px 30px 30px;color:#50575e;font-size:16px !important}.wpforms-setup-desc a{color:#50575e}.wpforms-setup-desc a:hover{color:#3c434a}.wpforms-setup-templates{align-items:stretch;border-top:1px solid #dcdcde;display:flex;flex-grow:2;justify-content:space-between;margin:0 30px;padding:0 0 30px 0}.wpforms-setup-templates-sidebar{border-inline-end:1px solid #dcdcde;padding-inline-end:30px;padding-top:30px;width:224px;box-sizing:content-box}#wpforms-setup-template-search{font-size:16px;font-weight:400;height:40px;line-height:20px;padding-inline-start:35px;width:100%;color:#3c434a;border:1px solid #c3c4c7;border-radius:4px;box-shadow:none}#wpforms-setup-template-search::placeholder{color:#b0b2b3;font-weight:400}#wpforms-setup-template-search:focus{border-color:#036aab;box-shadow:0 0 0 1px #036aab}.wpforms-setup-templates-search-wrap{position:relative}.wpforms-setup-templates-search-wrap i.fa{color:#b0b2b3;display:block;font-size:16px;inset-inline-start:10px;position:absolute;top:12px;width:16px}.wpforms-setup-templates-categories{margin-top:30px;width:224px;box-sizing:content-box}.wpforms-setup-templates-categories>li{color:#3c434a;cursor:pointer;font-size:14px;font-weight:600;line-height:16px;margin:0}.wpforms-setup-templates-categories>li div{border-radius:4px;padding:10px}.wpforms-setup-templates-categories>li div:hover{color:#3c434a;text-decoration:underline}.wpforms-setup-templates-categories>li div>span{float:inline-end;color:#50575e;opacity:0.5;font-weight:400}.wpforms-setup-templates-categories>li.divider{border-bottom:1px solid #dcdcde;margin:30px 0;padding:0}.wpforms-setup-templates-categories>li.active div{background:#ebf3fc;color:#0399ed;position:relative}.wpforms-setup-templates-categories>li.active div span{color:#0399ed;opacity:1;font-weight:600}.wpforms-setup-templates-categories>li.active div:hover{text-decoration:none}.wpforms-setup-templates-categories>li.active.opened .wpforms-setup-templates-subcategories{display:block}.wpforms-setup-templates-categories>li.active .chevron{color:#0399ed}.wpforms-setup-templates-categories>li i.chevron{display:none}.wpforms-setup-templates-categories>li:has(ul) i.chevron{display:inline-block;width:auto;position:relative;top:-1px;padding:0 5px;font-size:12px;color:#50575e}.wpforms-setup-templates-categories>li.opened i.chevron{transform:rotate(180deg)}.wpforms-setup-templates-categories>li.opened ul.wpforms-setup-templates-subcategories{display:block}.wpforms-setup-templates-subcategories{display:none}.wpforms-setup-templates-subcategories li{display:flex;justify-content:space-between;color:#50575e;cursor:pointer;font-size:14px;font-weight:400;line-height:18px;margin:0;padding-block:5px;padding-inline-end:10px;padding-inline-start:20px;position:relative}.wpforms-setup-templates-subcategories li:hover span:first-child{text-decoration:underline}.wpforms-setup-templates-subcategories li.active{color:#0399ed;font-weight:400}.wpforms-setup-templates-subcategories li.active span:last-child{color:#0399ed;font-weight:400;opacity:1}.wpforms-setup-templates-subcategories li i{color:#999c9e;position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:10px}.wpforms-setup-templates-subcategories li span:first-child{flex-grow:1;padding-inline-end:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-setup-templates-subcategories li span:last-child{min-width:32px;color:#50575e;opacity:0.5;font-weight:400;text-align:end}#wpforms-setup-templates-list{padding-top:30px;width:calc( 100% - 250px)}#wpforms-setup-templates-list .wpforms-admin-empty-state-container .waving-hand-emoji{background-image:url(../../images/empty-states/waving-hand-emoji.png)}#wpforms-setup-templates-list .list{display:grid;grid-gap:30px;grid-template-columns:repeat(auto-fill, minmax(Max(200px, 260px), 1fr));padding-inline-start:30px}#wpforms-setup-templates-list .wpforms-template{border-radius:6px;height:100%;overflow:hidden;padding:0 0 15px;position:relative;box-shadow:0 0 0 1px #c3c4c7;transition:box-shadow 0.15s ease-in-out}#wpforms-setup-templates-list .wpforms-template:hover,#wpforms-setup-templates-list .wpforms-template.active{box-shadow:0 0 0 2px #50575e,0 3px 4px rgba(0,0,0,0.15);outline:none}#wpforms-setup-templates-list .wpforms-template:hover .wpforms-template-buttons,#wpforms-setup-templates-list .wpforms-template:hover .wpforms-template-favorite,#wpforms-setup-templates-list .wpforms-template:hover .wpforms-template-remove,#wpforms-setup-templates-list .wpforms-template.active .wpforms-template-buttons,#wpforms-setup-templates-list .wpforms-template.active .wpforms-template-favorite,#wpforms-setup-templates-list .wpforms-template.active .wpforms-template-remove{opacity:1}#wpforms-setup-templates-list .wpforms-template:hover .wpforms-badge,#wpforms-setup-templates-list .wpforms-template.active .wpforms-badge{opacity:0}#wpforms-setup-templates-list .wpforms-template.badge h3{padding-inline-end:45px}#wpforms-setup-templates-list .wpforms-template.selected{box-shadow:0 0 0 2px #e27730,0 3px 4px rgba(0,0,0,0.15)}#wpforms-setup-templates-list .wpforms-template .wpforms-template-thumbnail{background-color:#F5F9FD;border-bottom:1px solid #EBEEF1;overflow:hidden;padding:20px 54px 0}#wpforms-setup-templates-list .wpforms-template .wpforms-template-thumbnail>img{border-radius:2px 2px 0 0;box-shadow:0px 1px 4px rgba(0,0,0,0.1);display:block;margin:0 auto;max-width:100%}#wpforms-setup-templates-list .wpforms-template .wpforms-template-thumbnail .wpforms-template-thumbnail-placeholder{align-items:center;aspect-ratio:1;background:#fff;border-radius:2px 2px 0 0;box-shadow:0px 1px 4px rgba(0,0,0,0.1);display:flex;justify-content:center;margin:0 auto;max-width:350px;min-height:100%;width:100%}#wpforms-setup-templates-list .wpforms-template h3{font-size:16px;font-weight:600;line-height:18px;padding:20px 20px 2px;margin:0;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;color:#3c434a}#wpforms-setup-templates-list .wpforms-template .wpforms-template-favorite,#wpforms-setup-templates-list .wpforms-template .wpforms-template-remove{display:block;position:absolute;inset-inline-end:10px;top:10px;font-size:18px;line-height:18px;opacity:0;color:#aaaaaa;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}#wpforms-setup-templates-list .wpforms-template .wpforms-template-favorite:hover,#wpforms-setup-templates-list .wpforms-template .wpforms-template-remove:hover{color:#d63637;cursor:pointer;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}#wpforms-setup-templates-list .wpforms-template .wpforms-template-favorite .fa-heart,#wpforms-setup-templates-list .wpforms-template .wpforms-template-remove .fa-heart{color:#d63638}#wpforms-setup-templates-list .wpforms-template.selected h3{padding-inline-end:60px}#wpforms-setup-templates-list .wpforms-template.pro h3{padding-inline-end:40px}#wpforms-setup-templates-list .wpforms-template p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:#50575e;font-size:14px;line-height:18px;margin:10px 0 0;max-height:55px;min-height:45px;padding:0 20px}#wpforms-setup-templates-list .wpforms-template-upgrade-banner{background:rgba(226,119,48,0.08);border-radius:6px;display:flex;flex-direction:row;grid-column:1 / -1;justify-content:space-between;align-items:center;padding-inline-end:20px}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-content{padding:20px;width:80%;color:#3c434a}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-content h3{font-weight:600;font-size:16px;line-height:18px;margin-top:0;margin-bottom:5px}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-content p{font-weight:400;font-size:14px;line-height:18px;margin:0}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button{width:20%;text-align:end}#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button a{min-height:13px}@media screen and (max-width: 1279px){#wpforms-setup-templates-list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button a{box-sizing:border-box;width:100%}}#wpforms-setup-templates-list .wpforms-templates-no-results{display:none;margin-inline-start:30px}#wpforms-setup-templates-list .wpforms-templates-no-results p{font-size:16px;line-height:40px;margin:0;color:#3c434a}.rtl #wpforms-setup-templates-list .wpforms-badge{border-radius:0 0 3px 0;left:0;right:auto}.wpforms-template-buttons{background-color:#ffffff;border-radius:6px;display:flex;opacity:0;padding:15px 15px 0;width:100%;align-items:flex-start;gap:10px;position:absolute;bottom:15px;transition-property:all;transition-duration:0.15s;transition-timing-function:ease-out}.wpforms-template-buttons .wpforms-btn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:13px;line-height:16px;padding:11px 10px}.wpforms-template-buttons .visible{opacity:1}@media (max-width: 1439px){#wpforms-setup-name{width:calc( 100% - 250px)}}@media (max-width: 1369px){#wpforms-setup-templates-list .list{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 1279px){#wpforms-setup-templates-list .list{grid-template-columns:1fr}#wpforms-setup-templates-list .list .wpforms-template .wpforms-template-buttons{position:relative;bottom:0;margin:10px 0 0 0;opacity:1;padding:0 20px}#wpforms-setup-templates-list .list .wpforms-template p{min-height:auto}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner{flex-direction:column;padding:20px}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-content,#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button{width:100%}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-content{padding:0}#wpforms-setup-templates-list .list .wpforms-template-upgrade-banner .wpforms-template-upgrade-button{text-align:center;margin-top:20px}}#wpforms-panel-settings .wpforms-panel-sidebar-section{height:auto}#wpforms-panel-settings .wpforms-builder-settings-block{border:1px solid #c3c4c7;margin:0 0 20px 0;background-color:#ffffff}#wpforms-panel-settings .wpforms-builder-settings-block .wpforms-panel-field,#wpforms-panel-settings .wpforms-builder-settings-block .wpforms-field-map-table{padding:0 20px}#wpforms-panel-settings .wpforms-builder-settings-block .wpforms-panel-field:last-child{padding-bottom:20px}#wpforms-panel-settings .wpforms-builder-settings-block-header{display:flex;gap:20px;align-items:center;justify-content:space-between;background-color:#f6f7f7;border-bottom:1px solid #c3c4c7;font-size:16px;font-weight:600;line-height:20px;margin:0 0 -1px 0;padding:15px 15px 15px 20px}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-name-holder{width:calc( 100% - 65px)}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-name-edit{display:none;margin-bottom:-7px;margin-top:-6px;width:calc( 100% - 32px)}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-name-edit.active{display:inline-block}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-name-edit input{width:100%}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions{display:flex;justify-content:flex-end;min-width:180px;order:2}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-builder-settings-block-status{margin-inline-end:15px;border-radius:3px}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button .wpforms-status-label{font-style:normal}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button.wpforms-badge-green{border:1px solid #30b450}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button.wpforms-badge-green:hover{color:#008a20;border-color:currentColor}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button.wpforms-badge-silver{border:1px solid #c3c4c7}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button.wpforms-badge-silver:hover{color:#50575e;border-color:currentColor}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button:hover{cursor:pointer}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button i:first-child{position:relative;top:0.5px;margin-inline-end:4px;font-size:10px}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-actions .wpforms-status-button i:last-child{margin-inline-end:0}#wpforms-panel-settings .wpforms-builder-settings-block-header button{background-color:transparent;border:none;color:#999c9e;cursor:pointer;font-size:16px;line-height:1;margin-inline-end:10px;padding:0;appearance:none;-webkit-appearance:none}#wpforms-panel-settings .wpforms-builder-settings-block-header button:hover{color:#50575e}#wpforms-panel-settings .wpforms-builder-settings-block-header button.wpforms-builder-settings-block-delete{color:#d63638}#wpforms-panel-settings .wpforms-builder-settings-block-header button.wpforms-builder-settings-block-delete:hover{color:#b32d2e}#wpforms-panel-settings .wpforms-builder-settings-block-header button.wpforms-builder-settings-block-toggle .fa-chevron-circle-down::before{content:"\f105"}#wpforms-panel-settings .wpforms-builder-settings-block-header button.wpforms-builder-settings-block-toggle .fa-chevron-circle-up::before{content:"\f107"}#wpforms-panel-settings .wpforms-builder-settings-block-header button:last-of-type{margin-inline-end:0}#wpforms-panel-settings .wpforms-builder-settings-block-header .wpforms-builder-settings-block-edit{margin-inline-start:6px;font-size:15px}#wpforms-panel-settings .wpforms-builder-settings-block-content{margin-top:20px;padding-bottom:0}#wpforms-panel-settings .wpforms-builder-settings-block-default .wpforms-builder-settings-block-toggle{padding-inline-end:0}#wpforms-panel-settings .wpforms-builder-settings-block-default .wpforms-builder-settings-block-delete{display:none}#wpforms-panel-settings .wpforms-builder-settings-block-default.wpforms-confirmation .wpforms-conditional-block-panel{display:none}#wpforms-panel-settings .wpforms-panel-field-radio .row>label{margin-bottom:0}#wpforms-panel-settings .toggle-unfoldable-cont,#wpforms-panel-settings .unfoldable-cont{margin-inline-end:0}#wpforms-panel-settings .toggle-unfoldable-cont i{color:#b0b2b3;margin-inline-end:6px}#wpforms-panel-settings .toggle-unfoldable-cont span{color:#50575e}#wpforms-panel-settings .wpforms-panel-field-tinymce>label{margin-bottom:-20px;margin-inline-end:100px;position:relative;z-index:2}#wpforms-panel-settings .wpforms-panel-field-tinymce .toggle-smart-tag-display{float:none;margin-top:10px;display:inline-block}#wpforms-panel-settings .wpforms-panel-field-tinymce .smart-tags-list-display{margin-top:10px}#wpforms-panel-settings .wpforms-panel-field-tinymce .wp-editor-wrap .quicktags-toolbar{border:none;border-bottom:1px solid #dcdcde}#wpforms-panel-settings .wpforms-panel-field-tinymce .wp-editor-wrap textarea{border:none}#wpforms-panel-settings .wpforms-panel-field-tinymce .wp-editor-wrap textarea:focus{border:none;box-shadow:none}#wpforms-panel-settings .wpforms-panel-field-tinymce .quicktags-toolbar{border:1px solid #dcdcde;z-index:2}#wpforms-panel-settings .wpforms-panel-field-tinymce textarea{border-radius:0;border-top:0}#wpforms-panel-settings .wpforms-panel-field-tinymce textarea:focus{border:1px solid #dcdcde;border-top:0;box-shadow:none}#wpforms-panel-settings .wpforms-panel-field-warning label,#wpforms-panel-settings .wpforms-panel-field-warning input,#wpforms-panel-settings .wpforms-panel-field-warning .wpforms-smart-tags-widget-container,#wpforms-panel-settings .wpforms-panel-field-warning .wpforms-alert,#wpforms-panel-settings .wpforms-panel-field-warning .smart-tags-list-display{max-width:410px}#wpforms-panel-settings .wpforms-panel-field-warning .wpforms-alert-warning-wide{max-width:100%}#wpforms-panel-settings .wpforms-panel-field-warning label{position:relative}#wpforms-panel-settings .wpforms-panel-field-warning label:after{color:#ffb900;content:"\f071";font-family:FontAwesome;font-size:16px;position:absolute;inset-inline-end:-26px;top:35px}#wpforms-panel-settings .wpforms-panel-field-warning .wpforms-alert{margin-top:20px}#wpforms-panel-settings .wpforms-panel-field-confirmations-page-choicesjs-unflippable .is-flipped .choices__list--dropdown{top:100%;bottom:auto;margin-top:-1px;margin-bottom:0}#wpforms-panel-settings .wpforms-panel-content-also-available{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:32px;margin:0 0 -19px 1px;padding-top:1px}#wpforms-panel-settings .wpforms-panel-content-also-available-item{display:flex;flex-direction:column;align-items:center;margin:0;padding:20px;border-radius:6px;background:#ffffff;box-shadow:0 0 0 1px #c3c4c7;transition:box-shadow 0.15s ease-in-out}#wpforms-panel-settings .wpforms-panel-content-also-available-item:hover{box-shadow:0 0 0 2px #50575e,0 3px 4px rgba(0,0,0,0.15)}#wpforms-panel-settings .wpforms-panel-content-also-available-item-logo{margin:0 0 20px 0}#wpforms-panel-settings .wpforms-panel-content-also-available-item-logo img{display:flex;height:68px;width:68px;padding:10px 10px;border-radius:4px;border:1px solid #dcdcde}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info{display:flex;flex-direction:column;align-items:center;height:100%}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info h3{margin:0;color:#3c434a;font-size:16px;line-height:16px;font-weight:500}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info p{font-size:13px;line-height:18px;text-align:center;color:#50575e;margin:10px 0}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info a{display:block;margin:auto 0 0 0;font-size:14px;line-height:21px;text-decoration:none}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info a:hover{color:#215d8f;text-decoration:underline}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info a.wpforms-panel-content-also-available-item-upgrade-to-pro{color:#e27730}#wpforms-panel-settings .wpforms-panel-content-also-available-item-info a.wpforms-panel-content-also-available-item-upgrade-to-pro:hover{color:#cd6622}#wpforms-panel-settings .wpforms-panel-field-country-filter-body{max-width:100%}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-body>p{margin:0 0 20px}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-body .note{margin:0 0 10px;font-size:12px}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-body .wpforms-panel-field-keyword-filter-message{margin-top:20px}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-keywords-container{display:none}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-keywords-container .wpforms-panel-field{margin-bottom:10px}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-keywords-container .wpforms-panel-field textarea{height:200px}#wpforms-panel-settings .wpforms-panel-field-country-filter-block-row{display:flex;margin-top:10px;align-items:start;margin-bottom:20px}#wpforms-panel-settings .wpforms-panel-field-country-filter-block-row-action{max-width:125px;width:100%;margin:0}#wpforms-panel-settings .wpforms-panel-field-country-filter-block-row-separator{max-width:95px;width:100%;margin:0;text-align:center;font-style:italic;font-weight:400;font-size:14px;line-height:32px;color:#50575e;white-space:nowrap;display:block}#wpforms-panel-settings .wpforms-panel-field-country-filter-block-row-countries{min-width:230px;max-width:100%}#wpforms-panel-settings .wpforms-panel-field-keyword-filter-body .wpforms-alert{max-width:450px;margin:0 0 10px}#wpforms-panel-settings .wpforms-builder-provider-connections-error{color:#b32d2e;font-size:16px;background-color:#fcf0f1;border-radius:4px;width:fit-content;margin:0 auto;padding:7px 15px;line-height:24px;text-align:center}#wpforms-panel-settings .wpforms-builder-provider-connections-error a{color:inherit}@media (max-height: 864px){#wpforms-panel-settings .wpforms-panel-content-section-themes{position:unset}#wpforms-panel-settings .wpforms-panel-content-section-themes .wpforms-panel-content-section-themes-inner{height:auto;display:block}#wpforms-panel-settings .wpforms-panel-content-section-themes .wpforms-panel-content-section-themes-inner .wpforms-panel-content-section-themes-bottom{position:unset}}@media (max-width: 1082px){#wpforms-panel-settings .wpforms-panel-field-warning input{padding-inline-end:36px}#wpforms-panel-settings .wpforms-panel-field-warning label:after{inset-inline-end:11px}}.wpforms_page_wpforms-builder .jconfirm-box-container .wpforms-modal-content-box.jconfirm-box .jconfirm-content-pane{margin-bottom:15px;max-height:Min(calc(100vh - 135px), 544px);overflow-y:hidden}.wpforms-modal-content-box .jconfirm-content{height:100%}.wpforms-modal-content-box .jconfirm-content>div{display:flex;flex-direction:column;height:100%}.wpforms-modal-content-box .wpforms-modal-content{background-color:#f6f7f7;border-radius:4px;overflow-y:auto;padding:20px}.wpforms-modal-content-box .wpforms-modal-content::-webkit-scrollbar{width:3px}.wpforms-modal-content-box .wpforms-modal-content::-webkit-scrollbar-thumb{background-color:#6a6f76}.wpforms-modal-header{padding-bottom:30px;padding-top:5px;line-height:22px}.wpforms-modal-header h1{font-weight:500;margin-bottom:15px;margin-top:0}.wpforms-email-template-modal-content{gap:15px}.wpforms-email-template-modal-content .wpforms-card-image-overlay{aspect-ratio:31/36;background-position:center;background-size:contain;border:1px solid #c3c4c7;border-radius:6px;display:flex;flex-direction:column;gap:10px;justify-content:center;order:-1;position:relative;transition:box-shadow .15s ease-in-out, border .15s ease-in-out;width:100%;padding:12px}.wpforms-email-template-modal-content .wpforms-card-image-overlay:before{background-color:#ffffff;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;border-radius:inherit;transition:opacity .15s ease-in-out}.wpforms-email-template-modal-content .wpforms-card-image-overlay .wpforms-btn{opacity:0;transition:all .05s ease-in-out, opacity .15s ease-in-out;width:100%;z-index:2}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field label{align-items:center;color:#50575e;display:flex;font-size:14px;flex-wrap:wrap;gap:12px 10px;justify-content:center;text-align:center}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field label:hover .wpforms-card-image-overlay{border:2px solid #ffffff;box-shadow:0 0 0 2px #50575e,0 2px 4px 2px rgba(0,0,0,0.07)}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field label:hover .wpforms-card-image-overlay:before{opacity:.7}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field label:hover .wpforms-card-image-overlay .wpforms-btn{opacity:1}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field input[type=radio]{display:none}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field input[type=radio]:checked+label{font-weight:500;color:#2c3338}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field input[type=radio]:checked+label .wpforms-card-image-overlay{border:2px solid #ffffff;box-shadow:0 0 0 2px #e27730,0 2px 4px 2px rgba(0,0,0,0.07)}.wpforms-email-template-modal-content .wpforms-btn{border-width:1px;border-style:solid;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-in;align-items:center;justify-content:center}.wpforms-email-template-modal-content .wpforms-btn{display:flex}.wpforms-email-template-modal-content .wpforms-btn-md{font-size:13px;font-weight:600;line-height:13px;min-height:35px;padding:5px 15px}.wpforms-email-template-modal-content .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#ffffff}.wpforms-email-template-modal-content .wpforms-btn-orange:hover{background-color:#cd6622;border-color:#cd6622;color:#ffffff}.wpforms-email-template-modal-content .wpforms-btn-light-grey{background-color:#f6f7f7;border-color:#c3c4c7;color:#50575e}.wpforms-email-template-modal-content .wpforms-btn-light-grey:hover{background-color:#e8e9e9;border-color:#c3c4c7;color:#3c434a}.wpforms-email-template-modal-content .wpforms-card-image-group .wpforms-setting-field{display:grid;gap:20px 17px;grid-template-columns:repeat(5, 1fr)}.wpforms-email-template-modal-content .wpforms-card-image{position:relative}.wpforms-email-template-modal-content .wpforms-card-image:nth-child(5n+1):before{background:url(../../images/email/template-placeholder.svg) space;background-size:calc(20% - 13.5px);content:"";height:100%;inset-inline-start:0;opacity:.5;pointer-events:none;position:absolute;top:0;width:calc(500% + 68px)}.wpforms-card-image-overlay{padding:10px}.option-default .wpforms-card-image-overlay{background-image:url(../../images/email/template-classic.svg)}.option-classic .wpforms-card-image-overlay{background-image:url(../../images/email/template-classic.svg)}.option-compact .wpforms-card-image-overlay{background-image:url(../../images/email/template-compact.svg)}.option-modern .wpforms-card-image-overlay{background-image:url(../../images/email/template-modern.svg)}.option-elegant .wpforms-card-image-overlay{background-image:url(../../images/email/template-elegant.svg)}.option-tech .wpforms-card-image-overlay{background-image:url(../../images/email/template-tech.svg)}.option-none .wpforms-card-image-overlay{background-image:url(../../images/email/template-plaintext.svg)}.wpforms-builder-provider .wpforms-builder-provider-title{justify-content:flex-start;gap:20px;min-height:68px}.wpforms-builder-provider .wpforms-builder-provider-title button{margin-inline-start:auto}.wpforms-builder-provider .wpforms-builder-provider-title-spinner{color:#50575e;display:none;font-size:20px;line-height:20px}.wpforms-builder-provider .wpforms-builder-provider-connections>:last-child{margin-bottom:0}.wpforms-builder-provider .wpforms-builder-provider-connection{border:1px solid #c3c4c7;margin:0 0 20px 0}.wpforms-builder-provider .wpforms-builder-provider-connection>:last-child{margin-bottom:20px}.wpforms-builder-provider .wpforms-builder-provider-connection-title{background-color:#f6f7f7;border-bottom:1px solid #c3c4c7;font-size:16px;font-weight:600;line-height:20px;margin:0 0 -1px 0;padding:15px 20px 14px 20px}.wpforms-builder-provider .wpforms-builder-provider-connection-delete{background-color:transparent;border:none;color:#d63638;cursor:pointer;float:inline-end;font-size:16px;line-height:1;padding-right:0;padding-left:0;appearance:none;-webkit-appearance:none}.wpforms-builder-provider .wpforms-builder-provider-connection-block{margin:20px 0 0 0;padding:0 20px}.wpforms-builder-provider .wpforms-builder-provider-connection-block h3{font-size:16px;font-weight:600;line-height:20px;margin-bottom:10px;margin-inline-start:1px;margin-top:0;padding:0}.wpforms-builder-provider .wpforms-builder-provider-connection-block h4,.wpforms-builder-provider .wpforms-builder-provider-connection-block label{display:block;font-size:14px;font-weight:400;line-height:17px;margin-bottom:10px;margin-inline-start:1px;margin-top:0;padding:0}.wpforms-builder-provider .wpforms-builder-provider-connection-block p.description{color:#50575e;font-size:13px;line-height:18px;margin:5px 0 0 0;max-width:450px}.wpforms-builder-provider .wpforms-builder-provider-connection-block p.description.before{margin:0 0 10px 0}.wpforms-builder-provider .wpforms-builder-provider-connection-block:last-child{margin-bottom:20px}.wpforms-builder-provider input[type=text],.wpforms-builder-provider input[type=url],.wpforms-builder-provider select,.wpforms-builder-provider textarea,.wpforms-builder-provider .wpforms-builder-provider-connection-block .choices{max-width:450px;width:100%}.wpforms-builder-provider input[type=checkbox]+label,.wpforms-builder-provider input[type=radio]+label{display:inline-block;margin:0}.wpforms-builder-provider .wpforms-builder-provider-connection-setting{margin:20px 0 0 0;max-width:450px;padding:0}.wpforms-builder-provider .wpforms-builder-provider-connection-setting label{display:block;font-size:14px;font-weight:400;line-height:17px;margin-bottom:10px;margin-inline-start:1px;padding:0}.wpforms-builder-provider .wpforms-builder-provider-connection-setting label.wpforms-toggle-control-icon,.wpforms-builder-provider .wpforms-builder-provider-connection-setting label.wpforms-toggle-control-label{display:inline-block;margin:0}.wpforms-builder-provider .wpforms-builder-provider-connection-setting .text-btn-inlined{display:table}.wpforms-builder-provider .wpforms-builder-provider-connection-setting .text-btn-inlined>.text-btn-inlined-text{display:table-cell;padding-inline-end:10px;vertical-align:middle}.wpforms-builder-provider .wpforms-builder-provider-connection-setting .text-btn-inlined>.text-btn-inlined-btn{display:table-cell;vertical-align:middle}.wpforms-builder-provider .wpforms-builder-provider-connection-setting .wpforms-panel-field:only-child{margin-bottom:20px !important}.wpforms-builder-provider .wpforms-builder-provider-connection-setting .choices{margin-bottom:0}.wpforms-builder-provider .wpforms-builder-provider-connection-setting .choices[data-type*="select-multiple"] .choices__input:focus{border:none !important;box-shadow:none !important}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table{border:1px solid #c3c4c7;border-collapse:collapse;border-spacing:0;width:100%}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table thead{background-color:#f6f7f7;color:#50575e;font-size:14px}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table thead th{font-weight:400;padding:8px 10px;text-align:start}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td{width:50%}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.add button,.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.delete button{background:none;border:none;box-shadow:none;color:#036aab;height:auto;line-height:1;margin:0;padding:0}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.add button i,.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.delete button i{font-size:16px}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.add button:hover,.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.delete button:hover{color:#215d8f}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.delete button{color:#d63638}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table td.delete button:hover{color:#b32d2e}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table tbody td{border-top:1px solid #c3c4c7;padding-block:10px;padding-inline-start:10px;padding-inline-end:0}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table tbody td:last-of-type{padding-inline-end:10px}.wpforms-builder-provider .wpforms-builder-provider-connection-fields-table+p.description{max-width:100%}.wpforms-builder-provider .required{color:#d63638;font-weight:700;margin-inline-start:5px}.wpforms-builder-provider .wpforms-conditional-block{margin:20px 0 0 0;padding:0 20px}.wpforms-builder-provider .wpforms-builder-provider-connections-error{color:#b32d2e;font-size:16px;background-color:#fcf0f1;border-radius:4px;width:fit-content;margin:0 auto;padding:7px 15px;line-height:24px;text-align:center}.wpforms-builder-provider .wpforms-builder-provider-connections-error a{color:inherit}.wpforms-builder-provider.loading .wpforms-builder-provider-title .wpforms-builder-provider-title-spinner{display:inline}.wpforms-builder-provider.loading .wpforms-builder-provider-connections{opacity:.5;pointer-events:none}.wpforms-builder-provider-connections-default{padding:30px 50px 50px 50px;position:relative;text-align:center}.wpforms-builder-provider-title:has(button:not(.hidden))+.wpforms-builder-provider-connections-default::before{background:url("../../images/builder/default-arrow.svg") no-repeat 0 0;background-size:97px 81px;content:"";height:83px;position:absolute;inset-inline-end:60px;top:20px;transform:rotate(90deg);width:97px}.wpforms-builder-provider-connections-default img{border:1px solid #c3c4c7;border-radius:4px;height:140px;margin:0 0 30px 0;width:140px}.wpforms-builder-provider-connections-default h2:first-child{margin-top:0}.wpforms-builder-provider-connections-default p{font-size:16px;line-height:24px;max-width:615px;margin:0 auto 20px}.wpforms-provider-connections>:last-child{margin-bottom:0}.wpforms-provider-connections-header{background-color:#f6f7f7;padding:10px 20px}.wpforms-provider-connections-header h5{float:inline-start;font-size:18px;margin:0;padding:5px 0 0 0}.wpforms-provider-connection{border:1px solid #c3c4c7;margin:0 0 20px 0}.wpforms-provider-connection .wpforms-provider-connection-header{background-color:#f6f7f7;border-bottom:1px solid #c3c4c7;font-size:16px;font-weight:600;line-height:20px;margin:0 0 -1px 0;padding:15px 20px 14px 20px}.wpforms-provider-connection .wpforms-provider-connection-delete{background-color:transparent;border:none;color:#d63638;cursor:pointer;float:inline-end;font-size:16px;line-height:1;margin-top:-2px;appearance:none;-webkit-appearance:none}.wpforms-provider-connection .wpforms-provider-account-add input[type=text]{margin:0 0 10px 0;display:block}.wpforms-provider-connection .wpforms-provider-account-add button{border-width:1px;border-style:solid;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-in;font-size:13px;font-weight:500;padding:0 10px;height:32px;line-height:30px;background-color:#036aab;border-color:#036aab;color:#ffffff;display:block}.wpforms-provider-connection .wpforms-provider-account-add button:hover{background-color:#215d8f;border-color:#215d8f;color:#ffffff}.wpforms-provider-connection .wpforms-provider-account-add button .wpforms-loading-spinner.wpforms-loading-inline{margin-inline-end:8px;margin-inline-start:0;margin-top:-2px}.wpforms-provider-connection input[type=text],.wpforms-provider-connection select{max-width:450px;width:100%}.wpforms-provider-connection input[type=text]::before,.wpforms-provider-connection select::before{content:"";display:block;width:100%}.wpforms-provider-connection .wpforms-connection-block{margin:20px 0 0 0;padding:0 20px}.wpforms-provider-connection .wpforms-connection-block h3{font-size:16px;font-weight:600;line-height:20px;margin-bottom:10px;margin-inline-start:1px;margin-top:0;padding:0}.wpforms-provider-connection .wpforms-connection-block h4,.wpforms-provider-connection .wpforms-connection-block label{display:block;font-size:14px;font-weight:400;line-height:17px;margin-bottom:10px;margin-inline-start:1px;margin-top:0;padding:0}.wpforms-provider-connection .wpforms-connection-block:last-child{margin-bottom:20px}.wpforms-provider-connection .wpforms-connection-block .wpforms-loading-spinner.wpforms-loading-inline{margin-inline-start:20px;vertical-align:middle}.wpforms-provider-connection .wpforms-provider-groups-list p{font-size:12px;font-weight:700;text-transform:uppercase}.wpforms-provider-connection .wpforms-provider-groups-list span{display:block;font-size:13px;margin-bottom:4 5px}.wpforms-provider-connection .wpforms-provider-groups-list input{margin-inline-end:10px}.wpforms-provider-connection .wpforms-provider-fields table{border:1px solid #c3c4c7;border-collapse:collapse;border-spacing:0;width:100%}.wpforms-provider-connection .wpforms-provider-fields table select{width:100%}.wpforms-provider-connection .wpforms-provider-fields table thead{background-color:#f6f7f7;color:#50575e;font-size:14px}.wpforms-provider-connection .wpforms-provider-fields table thead th{font-weight:400;padding:8px 10px;text-align:start}.wpforms-provider-connection .wpforms-provider-fields table tbody td{border-top:1px solid #c3c4c7;padding:10px}.wpforms-provider-connection .required{color:#d63638;font-weight:700;margin-inline-start:5px}.wpforms-provider-connection .wpforms-conditional-block{margin:20px 0;padding:0 20px}.wpforms-provider-connection .wpforms-conditional-block .value input:disabled,.wpforms-provider-connection .wpforms-conditional-block .value select:disabled{background-color:#f0f0f1;cursor:not-allowed}.wpforms-provider-connection .wpforms-provider-options label.block{display:block;margin:0 0 5px 0}.wpforms-provider-connection .wpforms-provider-options input[type=text]{width:100%}.wpforms-panel-content-section-mailerlite .wpforms-builder-provider-connection-block:has(h4:first-child:last-child){display:none}.rtl .wpforms-builder-provider-title:has(button:not(.hidden))+.wpforms-builder-provider-connections-default::before{transform:scale(-1, 1) rotate(90deg)}.rtl .wpforms-builder-provider .choices.is-open .choices__inner,.rtl .wpforms-builder-provider .choices .choices__inner{background-position:left 5px top 55%}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default){display:flex;align-items:center;padding-inline-start:20px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default) img{position:unset;margin-right:15px;flex-shrink:0}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default) .wpforms-panel-sidebar-info{display:flex;flex-direction:column;justify-content:flex-end}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default) .wpforms-panel-sidebar-recommended{margin-top:5px;margin-inline-end:auto}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default) .wpforms-panel-sidebar-controls{margin-inline-start:auto;margin-left:auto}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default) .wpforms-panel-sidebar-controls .wpforms-toggle-arrow{margin-inline-start:10px;margin-left:10px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-sidebar-section:not(.wpforms-panel-sidebar-section-default) .wpforms-toggle-arrow{margin-left:auto}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-title{margin-bottom:20px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content h2{margin:20px 0}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content img{border:1px solid #c3c4c7;border-radius:4px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content select:disabled{cursor:default}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-panel-field-text input:disabled{background-color:#ffffff;opacity:0.5}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-alert-dismissible{margin-top:0;margin-right:0;margin-left:0}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-alert-icon{width:140px;height:140px;margin:30px auto 0 auto;display:block}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-panel-field-select .wpforms-required-field-error,#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-panel-field-text .wpforms-required-field-error{border-color:#d63638}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-panel-field-select .wpforms-required-field-error:focus,#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-panel-field-text .wpforms-required-field-error:focus{box-shadow:0 0 0 1px #d63638}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content{display:block;margin:30px auto 0 auto;width:100%;text-align:center;color:#3c434a}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content p{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;font-size:16px;line-height:24px;margin-bottom:10px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content p a.secondary-text{font-size:16px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content .wpforms-builder-payment-settings-learn-more{margin-bottom:20px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content .wpforms-builder-payment-settings-learn-more a.secondary-text{font-size:14px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content .wpforms-builder-payment-settings-error-title{color:#b32d2e;font-size:16px;background-color:#fcf0f1;border-radius:4px;width:fit-content;margin:0 auto 15px;padding:7px 15px;line-height:24px;text-align:center}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content .wpforms-builder-payment-settings-default-content .wpforms-builder-payment-settings-error-title a{color:inherit}#wpforms-builder #wpforms-panel-payments #wpforms-stripe-credit-card-alert,#wpforms-builder #wpforms-panel-payments #wpforms-square-credit-card-alert{margin:0;padding:0;background-color:#ffffff;border:none}#wpforms-builder #wpforms-panel-payments .wpforms-stripe-notice-info,#wpforms-builder #wpforms-panel-payments .wpforms-square-notice-info{color:#3c434a}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment{position:relative}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment+.wpforms-panel-content-section-payment{padding-top:20px;margin:20px 0;border-top:1px solid #dcdcde}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-subtitle{font-size:16px;font-style:normal;font-weight:500;line-height:20px;text-align:start;margin-top:0 !important}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-content{display:none}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment.wpforms-panel-content-section-payment-open .wpforms-panel-content-section-payment-button{display:inline-block}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-button{background:#036aab;display:none;padding:10px 20px;font-size:14px;line-height:17px;font-weight:500;color:#ffffff;text-decoration:none;border-radius:4px;position:absolute;inset-inline-end:0;top:20px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-button:hover{background-color:#215d8f}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan{border:1px solid #dcdcde}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan-head{background-color:#f6f7f7;padding:15px 20px;font-size:16px;font-weight:500;line-height:20px;text-align:start;display:flex;justify-content:space-between;white-space:nowrap}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan-head-title{width:80%;min-height:20px;overflow:hidden;text-overflow:ellipsis}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan-head-buttons{font-weight:400;color:#999c9e;display:flex;align-items:center}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan-head-buttons .fa{margin-inline-start:10px;cursor:pointer}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan-head-buttons .fa-trash-o{margin-inline-start:10px;color:#dc3232}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan-body{border-top:1px solid #dcdcde;padding:20px}#wpforms-builder #wpforms-panel-payments .wpforms-panel-content-section-payment-plan+.wpforms-panel-content-section-payment-plan{margin-top:20px}.wpforms-panels-toggle .wpforms-panel-revisions-button-spacer{margin-top:auto}.wpforms-panels-toggle .wpforms-panel-revisions-button{position:relative;width:55px;height:48px;margin:10px auto 20px auto;padding:11px 0;background-color:#282e32;border:1px solid #3c434a;border-radius:4px}.wpforms-panels-toggle .wpforms-panel-revisions-button:hover{background-color:#3c434a}.wpforms-panels-toggle .wpforms-panel-revisions-button:hover .fa{color:#ffffff;transition:color ease-in 0.05s}.wpforms-panels-toggle .wpforms-panel-revisions-button.active{background-color:#e27730;border-color:#e27730}.wpforms-panels-toggle .wpforms-panel-revisions-button .fa{margin-top:-1px;font-size:24px;line-height:24px;margin-bottom:0}.wpforms-panels-toggle .wpforms-panel-revisions-button .badge-exclamation{position:absolute;top:-5px;inset-inline-end:-5px;width:16px;height:16px;border-radius:8px;background:#d63638;box-shadow:0 0 0 2px #3c434a;display:flex;align-items:center;justify-content:center}.wpforms-panels-toggle .wpforms-undo-redo{display:flex;align-items:center;gap:8px;margin:0 auto}.wpforms-panels-toggle .wpforms-undo-redo button{width:24px;height:24px;padding:0;background-color:transparent;background-size:24px 24px;background-position:center;background-repeat:no-repeat;border:none;--button-path-color: #86919e}.wpforms-panels-toggle .wpforms-undo-redo button:hover{--button-path-color: #ffffff}.wpforms-panels-toggle .wpforms-undo-redo button:disabled{--button-path-color: #3c434a}#wpforms-panel-revisions .wpforms-revisions-header{margin:20px;border-bottom:1px solid #ced7e0}#wpforms-panel-revisions .wpforms-revisions-header h3{font-weight:600;font-size:15px;line-height:18px;color:#444444;margin:20px 0 5px 0}#wpforms-panel-revisions .wpforms-revisions-header p{font-weight:normal;font-size:12px;line-height:16px;color:#86919e;margin:5px 0 20px 0}#wpforms-panel-revisions .wpforms-revisions-notice{margin:20px;padding:10px;background-color:#ffffff;box-shadow:0 2px 2px rgba(0,0,0,0.05)}#wpforms-panel-revisions .wpforms-revisions-notice h2{margin:0;color:#444444;font-size:14px;line-height:17px}#wpforms-panel-revisions .wpforms-revisions-notice p{margin:5px 0 10px 0;color:#777777;font-size:14px;line-height:18px}#wpforms-panel-revisions .wpforms-revisions-notice.wpforms-revisions-notice-error{border-inline-start:4px solid #d63638}#wpforms-panel-revisions .wpforms-revisions-notice.wpforms-revisions-notice-warning{border-inline-start:4px solid #ffb900}#wpforms-panel-revisions .wpforms-revisions-content{margin:20px}#wpforms-panel-revisions .wpforms-revision-current-version a,#wpforms-panel-revisions .wpforms-revision a{display:flex;align-items:center;padding:15px;background-color:#e0e8f0;border:2px solid #e0e8f0;border-radius:4px;text-decoration:none}#wpforms-panel-revisions .wpforms-revision-current-version a:hover,#wpforms-panel-revisions .wpforms-revision a:hover{background-color:#ced7e0;border-color:#ced7e0}#wpforms-panel-revisions .wpforms-revision-current-version.active a,#wpforms-panel-revisions .wpforms-revision.active a{background-color:#ffffff;border:2px solid #e27730}#wpforms-panel-revisions .wpforms-revision{margin:0 0 0 10px;padding-top:20px;padding-inline-end:0;padding-inline-start:10px;border-inline-start:2px solid #e0e8f0;position:relative}#wpforms-panel-revisions .wpforms-revision.active a:before{content:"";position:absolute;top:calc( 50% + 5px);inset-inline-start:-6px;display:block;width:10px;height:10px;border:2px solid #e27730;border-radius:5px;background-color:#ffffff}#wpforms-panel-revisions .wpforms-revision.active a:after{content:"";position:absolute;top:calc( 50% + 9px);inset-inline-start:4px;display:block;width:6px;height:2px;background-color:#e27730}#wpforms-panel-revisions .wpforms-revision-gravatar{width:40px;height:40px;margin-inline-end:15px;border-radius:20px;overflow:hidden}#wpforms-panel-revisions .wpforms-revision-details p{margin:3px 0;line-height:16px}#wpforms-panel-revisions .wpforms-revision-created{font-size:12px;color:#6b6d6f}#wpforms-panel-revisions .wpforms-revision-created strong{font-weight:600;font-size:14px;color:#444444}#wpforms-panel-revisions .wpforms-revision-author{font-size:13px;color:#86919e}#wpforms-panel-revisions .wpforms-preview *{pointer-events:none}.wpforms-is-revision .wpforms-revision-notice{position:fixed;z-index:10;top:calc( 76px + var( --wpforms-admin-bar-height ));inset-inline-start:95px;inset-inline-end:0;height:40px;display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:#fdf6e7;box-shadow:0 0 3px 0 rgba(0,0,0,0.2);text-align:center;font-size:14px;line-height:16px;color:#444444;transition-property:top;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms-is-revision .wpforms-revision-notice p{margin:0}.wpforms-is-revision .wpforms-revision-notice a{color:#444444}.wpforms-is-revision .wpforms-revision-notice a:hover{color:#e27730}.wpforms-is-revision .wpforms-revision-notice .fa{margin:0 10px;font-size:16px;opacity:.35}.wpforms-is-revision .wpforms-panel-sidebar-content .wpforms-panel-sidebar,.wpforms-is-revision .wpforms-panel-sidebar-content .wpforms-panel-content-wrap,.wpforms-is-revision .wpforms-panel-full-content .wpforms-panel-content-wrap,.wpforms-is-revision #wpforms-panel-fields .wpforms-tabs{top:calc( 76px + var( --wpforms-admin-bar-height ) + 40px)}.wpforms-is-revision #wpforms-panel-fields .wpforms-panel-sidebar,.wpforms-is-revision .wpforms-field-option-group-toggle{top:calc( 124px + var( --wpforms-admin-bar-height ) + 40px)}.wpforms-is-revision #wpforms-field-options:before{top:calc( 125px + var( --wpforms-admin-bar-height ) + 40px)}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview p{margin:0}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview p.wpforms-panel-content-section-themes-preview-description{margin-bottom:20px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview p.wpforms-panel-content-section-themes-preview-description a{white-space:nowrap}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview .wpforms-builder-themes-preview-notice{margin-bottom:30px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview .wpforms-builder-themes-style-notice{position:relative;padding-inline-end:170px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview .wpforms-builder-themes-style-notice a{position:absolute;inset-inline-end:10px;bottom:calc(50% - 16px);padding:9px 10px;color:#777;text-decoration:none;display:inline-block;background:#fff;border:1px solid rgba(68,68,68,0.35);font-size:13px;border-radius:4px;line-height:1}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview .wpforms-builder-themes-style-notice a:hover{color:#86919e}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview{margin-top:0;position:relative;max-width:800px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview *{cursor:default;user-select:none;pointer-events:none}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-container-full{margin-top:0}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-container-full input[type=checkbox],#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-container-full input[type=radio]{margin-inline-end:0}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview #builder-themes-preview-default-name-container{padding-top:0}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-field-medium:not(textarea){max-width:396px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview textarea.wpforms-field-medium{height:151px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-field-row .wpforms-field-row-block.wpforms-one-half.wpforms-first{padding-inline-end:7px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-field-row .wpforms-field-row-block.wpforms-one-half:not(.wpforms-first){padding-inline-start:7px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-one-half{width:50%}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-submit-container{margin-top:18px}#wpforms-panel-settings .wpforms-panel-content-section-themes-preview #wpforms-builder-themes-preview .wpforms-submit-container button{pointer-events:none}#wpforms-panel-settings #wpforms-page-forms-fbst-notice{position:relative;padding-inline-end:170px}#wpforms-panel-settings #wpforms-page-forms-fbst-notice a{position:absolute;inset-inline-end:10px;bottom:calc(50% - 16px);padding:9px 10px;color:#777;text-decoration:none;display:inline-block;background:#fff;border:1px solid rgba(68,68,68,0.35);font-size:13px;border-radius:4px;line-height:1}#wpforms-panel-settings #wpforms-page-forms-fbst-notice a:hover{color:#86919e}#wpforms-builder-themes-sidebar{position:fixed;top:calc(76px + var(--wpforms-admin-bar-height));bottom:0;inset-inline-start:95px;width:400px;background:#EBF3FC;overflow:hidden;padding-bottom:50px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-head{height:46px;background-color:#e0e8f0;border-bottom:1px solid #ced7e0}#wpforms-builder-themes-sidebar #wpforms-builder-themes-back{background-color:transparent;border:none;color:#3c434a;width:auto;text-align:left;padding-top:15px;padding-bottom:15px;padding-inline:43px 15px;font-size:15px;font-weight:600;cursor:pointer;position:relative}#wpforms-builder-themes-sidebar #wpforms-builder-themes-back:hover{text-decoration:underline}#wpforms-builder-themes-sidebar #wpforms-builder-themes-back:before{content:'';position:absolute;inset-inline-start:20px;inset-inline-end:auto;background-image:url("../../images/builder/back.svg");background-size:13px 11px;width:13px;height:11px;top:50%;transform:translateY(-50%)}#wpforms-builder-themes-sidebar #wpforms-builder-themes-sidebar-tabs{margin:0 20px;border-bottom:1px solid #ced7e0;display:flex;align-items:center}#wpforms-builder-themes-sidebar #wpforms-builder-themes-sidebar-tabs a{display:block;position:relative;color:#444444;text-decoration:none;font-size:15px;padding:12px}#wpforms-builder-themes-sidebar #wpforms-builder-themes-sidebar-tabs a:hover{color:#86919e}#wpforms-builder-themes-sidebar #wpforms-builder-themes-sidebar-tabs a.active{font-weight:500;color:#444444}#wpforms-builder-themes-sidebar #wpforms-builder-themes-sidebar-tabs a.active:after{content:'';position:absolute;inset-inline-start:0;inset-inline-end:0;bottom:-1px;height:3px;background-color:#e27730}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content{padding-inline-end:6px;overflow-y:auto;scroll-behavior:smooth;scrollbar-gutter:stable;height:calc( 100% - 40px);padding:20px 20px 0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content.wpforms-is-mac{padding-inline-end:20px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-fields-row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:20px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-fields-row>.wpforms-panel-field{width:100%;margin-bottom:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-fields-row.wpforms-hidden{display:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-hidden{display:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-add-fields-group:last-child{border-bottom:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-number-input-wrapper{position:relative}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-number-input-wrapper:after{content:'px';position:absolute;inset-inline-end:10px;bottom:10px;width:12px;height:12px;color:#b0b6bd;font-size:12px;line-height:12px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-number-input-wrapper .wpforms-builder-themes-number-input{width:100%;padding-inline-end:26px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-number-input-wrapper .wpforms-builder-themes-number-input::-webkit-outer-spin-button,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-number-input-wrapper .wpforms-builder-themes-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-number-input-wrapper .wpforms-builder-themes-number-input{-moz-appearance:textfield}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content #wpforms-panel-field-themes-fieldTextColor-wrap .minicolors-position-left .minicolors-panel,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content #wpforms-panel-field-themes-labelErrorColor-wrap .minicolors-position-left .minicolors-panel,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content #wpforms-panel-field-themes-buttonTextColor-wrap .minicolors-position-left .minicolors-panel{left:-60px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors{width:100%}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors .minicolors-input{width:100%;padding-inline-start:30px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors .minicolors-swatch{width:20px;height:20px;top:6px;left:6px;border-radius:50%}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors .minicolors-swatch:after{border-radius:50%}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors .minicolors-swatch:hover{cursor:pointer}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors .minicolors-swatch .minicolors-swatch-color{border-radius:50%;box-shadow:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content input.minicolors-input.wpforms-builder-themes-disabled+.minicolors-swatch{opacity:0.5;pointer-events:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-bg-image-preview{width:100%;height:240px;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:inset 0 0 1px 1px rgba(0,0,0,0.15);border-radius:4px;margin-bottom:20px;cursor:pointer}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content button.wpforms-builder-themes-bg-image-choose,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content button.wpforms-builder-themes-bg-image-remove{width:auto;padding-inline-start:12px;padding-inline-end:12px;font-size:13px;font-weight:500;height:32px;padding:0 12px;line-height:32px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content button.wpforms-builder-themes-bg-image-remove{border:1px solid #d63638;background-color:#fcf0f1;color:#d63638}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content button.wpforms-builder-themes-bg-image-remove:hover,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content button.wpforms-builder-themes-bg-image-remove:focus{border-color:#b32d2e;color:#b32d2e;background-color:#f9e1e1}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content button.wpforms-builder-themes-bg-image-remove:focus{outline:1px solid #b32d2e}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-add-fields-group .wpforms-add-fields-buttons{display:block;margin-bottom:20px;overflow:visible}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-add-fields-group .wpforms-add-fields-buttons .wpforms-builder-themes-fields-row:last-child{margin-bottom:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control{margin-bottom:20px;min-height:190px;background-color:#ffffff;border-radius:4px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group{width:100%;max-height:190px;overflow-y:auto;border:1px solid #b0b6bd;border-radius:4px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button{display:flex;align-items:center;width:100%;margin:0;padding:12px;height:42px;font-size:13px;gap:12px;border-top:none;border-right:none;border-bottom:1px solid #dddddd;border-left:none;background-color:#ffffff;color:#1e1e1e;border-radius:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button:last-child{border-bottom:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button:hover{box-shadow:inset 0 0 0 8px #ffffff;cursor:pointer}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button:hover div{color:#036aab}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .wpforms-builder-themes-indicators{min-width:80px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator{min-width:20px;height:20px;width:20px;margin-inline-end:-9px;position:relative;border-radius:50%;box-shadow:inset 0 0 0 1px #0003;display:inline-block;padding:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator[data-index="0"]{z-index:5}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator[data-index="1"]{z-index:4}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator[data-index="2"]{z-index:3}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator[data-index="3"]{z-index:2}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator[data-index="4"]{z-index:1}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .component-color-indicator:last-child{margin-inline-end:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button.is-active{box-shadow:inset 0 0 0 3px #ffffff;background-color:#ebedef}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .wpforms-builder-themes-radio{flex-grow:1;text-align:left;color:#1e1e1e;overflow:hidden}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .wpforms-builder-themes-radio-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .wpforms-builder-themes-radio-disabled{position:relative;padding-right:40px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control .wpforms-builder-themes-radio-group button .wpforms-builder-themes-radio-disabled::after{content:'pro';position:absolute;text-transform:uppercase;background-color:#ededed;padding:6px 8px;border-radius:3px;font-size:8px;line-height:10px;font-weight:700;color:#999999;right:0;top:-3px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control-theme-name{margin-top:24px;margin-bottom:8px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control-delete{color:#d63638;text-decoration:underline;line-height:18px;padding:0;box-shadow:none;height:auto}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-control-delete:hover{box-shadow:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content #wpforms-panel-field-themes-themeName-wrap{margin-bottom:5px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content #wpforms-builder-themer-remove-theme{width:auto;background-color:transparent;padding:5px 0 0 0;color:#d63638;font-size:12px;margin-top:0}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content #wpforms-builder-themer-remove-theme:hover{color:#b32d2e;text-decoration:underline}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-after{display:block;color:#86919E;margin-left:0;margin-top:5px;line-height:18px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled-pro{opacity:.5;pointer-events:none;position:relative}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled input.wpforms-builder-themes-disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled select.wpforms-builder-themes-disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled-pro input.wpforms-builder-themes-disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled-pro select.wpforms-builder-themes-disabled{background-color:#ffffff;opacity:1}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled:before,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-disabled-pro:before{content:'';position:absolute;inset:0;pointer-events:auto}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content a.wpforms-builder-themes-pro-blocked{position:relative}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content a.wpforms-builder-themes-pro-blocked::after{content:'pro';position:absolute;text-transform:uppercase;background-color:#dbe4ee;padding:6px 8px;border-radius:3px;font-size:8px;line-height:10px;font-weight:700;color:#9BA4AF;right:27px;top:19px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-restricted{padding-top:20px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-builder-themes-restricted .wpforms-add-fields-group:nth-last-child(2){border-bottom:none}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content input[type=text],#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content input[type=number],#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content textarea,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content select{border-color:#b0b6bd}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content input[type=text]:disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content input[type=number]:disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content textarea:disabled,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content select:disabled{background-color:#ffffff}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group::-webkit-scrollbar{background:transparent;width:5px;height:5px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group::-webkit-scrollbar-track{background:transparent}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.1);background:transparent;border-radius:5px;border:solid -1px transparent}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group::-webkit-resizer,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group::-webkit-scrollbar-button,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group{scrollbar-color:rgba(0,0,0,0.1) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover::-webkit-scrollbar{background:transparent;width:5px;height:5px}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover::-webkit-scrollbar-track{background:transparent}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.4);background:transparent;border-radius:5px;border:solid -1px transparent}#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover::-webkit-resizer,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover::-webkit-scrollbar-button,#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){#wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content:not(.wpforms-is-mac) .wpforms-builder-themes-radio-group:hover{scrollbar-color:rgba(0,0,0,0.4) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal .wpforms-exclamation-circle{display:block;width:48px;height:48px;mask-image:url("../../images/exclamation-circle.svg");mask-size:48px 48px;margin:0 auto}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-type-orange .wpforms-exclamation-circle{background-color:#e27730}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-type-red .wpforms-exclamation-circle{background-color:#d63638}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal button[disabled]{opacity:.75 !important}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal .wpforms-theme-delete-text{margin:0 auto 10px auto !important}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector{height:540px;border-top-width:0}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .jconfirm-title{font-style:normal;font-weight:500;font-size:24px;line-height:22px;color:#3c434a;margin:0 0 10px 0 !important}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .jconfirm-title p{font-weight:400;font-size:16px;line-height:22px;margin:15px 0 0 0}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .jconfirm-closeIcon{width:12px;height:12px;background-size:12px 12px;background-repeat:no-repeat;background-image:url("../../images/cross-inverse.svg");opacity:.3}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .jconfirm-closeIcon:after{display:none}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .jconfirm-closeIcon:hover{opacity:.5}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .wpforms-builder-stock-photos-pictures-wrap{display:grid;grid-template-columns:repeat(5, 124px);grid-row-gap:20px;grid-column-gap:20px;justify-content:center;background-color:#f6f7f7;border-radius:4px;padding:20px}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .wpforms-builder-stock-photos-picture{width:124px;height:124px;border-radius:4px;position:relative;cursor:pointer;border:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15);background-size:cover;background-position:center;background-repeat:no-repeat;transition:box-shadow 0.15s ease-in-out}.jconfirm-modern .jconfirm-box-container .wpforms-builder-themes-modal.jconfirm-box.jconfirm-type-picture-selector .wpforms-builder-stock-photos-picture:hover{box-shadow:inset 0 0 0 1px #282e32,0 0 0 1px #282e32,0 2px 4px rgba(0,0,0,0.15)}.rtl #wpforms-panel-field-themes-fieldBackgroundColor-wrap .minicolors-position-left .minicolors-panel,.rtl #wpforms-panel-field-themes-labelColor-wrap .minicolors-position-left .minicolors-panel,.rtl #wpforms-panel-field-themes-buttonBackgroundColor-wrap .minicolors-position-left .minicolors-panel{left:-60px}.rtl #wpforms-panel-field-themes-buttonTextColor-wrap .minicolors-position-left .minicolors-panel,.rtl #wpforms-panel-field-themes-labelErrorColor-wrap .minicolors-position-left .minicolors-panel,.rtl #wpforms-panel-field-themes-buttonTextColor-wrap .minicolors-position-left .minicolors-panel,.rtl #wpforms-panel-field-themes-fieldTextColor-wrap .minicolors-position-left .minicolors-panel{left:0 !important}.rtl #wpforms-builder-themes-sidebar .wpforms-builder-themes-sidebar-content .wpforms-panel-field-colorpicker .minicolors .minicolors-input{padding-inline-start:10px} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-scrollbars.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-scrollbars.min.css new file mode 100644 index 0000000..e8959c5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-scrollbars.min.css @@ -0,0 +1 @@ +textarea::-webkit-scrollbar,.wpforms-panel-content-wrap::-webkit-scrollbar,.wpforms-panels-toggle::-webkit-scrollbar,.smart-tags-list::-webkit-scrollbar,.smart-tags-list-display::-webkit-scrollbar,#wpforms-panel-fields .wpforms-tab-content::-webkit-scrollbar,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar::-webkit-scrollbar,#wpforms-builder-help::-webkit-scrollbar,.wpforms-builder-themes-sidebar-content::-webkit-scrollbar,.wpforms-scrollbar-compact::-webkit-scrollbar{background:transparent;width:15px;height:15px}textarea::-webkit-scrollbar-track,.wpforms-panel-content-wrap::-webkit-scrollbar-track,.wpforms-panels-toggle::-webkit-scrollbar-track,.smart-tags-list::-webkit-scrollbar-track,.smart-tags-list-display::-webkit-scrollbar-track,#wpforms-panel-fields .wpforms-tab-content::-webkit-scrollbar-track,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar::-webkit-scrollbar-track,#wpforms-builder-help::-webkit-scrollbar-track,.wpforms-builder-themes-sidebar-content::-webkit-scrollbar-track,.wpforms-scrollbar-compact::-webkit-scrollbar-track{background:transparent}textarea::-webkit-scrollbar-thumb,.wpforms-panel-content-wrap::-webkit-scrollbar-thumb,.wpforms-panels-toggle::-webkit-scrollbar-thumb,.smart-tags-list::-webkit-scrollbar-thumb,.smart-tags-list-display::-webkit-scrollbar-thumb,#wpforms-panel-fields .wpforms-tab-content::-webkit-scrollbar-thumb,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar::-webkit-scrollbar-thumb,#wpforms-builder-help::-webkit-scrollbar-thumb,.wpforms-builder-themes-sidebar-content::-webkit-scrollbar-thumb,.wpforms-scrollbar-compact::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0);background:transparent;border-radius:15px;border:solid 4px transparent}textarea::-webkit-resizer,textarea::-webkit-scrollbar-button,textarea::-webkit-scrollbar-corner,.wpforms-panel-content-wrap::-webkit-resizer,.wpforms-panel-content-wrap::-webkit-scrollbar-button,.wpforms-panel-content-wrap::-webkit-scrollbar-corner,.wpforms-panels-toggle::-webkit-resizer,.wpforms-panels-toggle::-webkit-scrollbar-button,.wpforms-panels-toggle::-webkit-scrollbar-corner,.smart-tags-list::-webkit-resizer,.smart-tags-list::-webkit-scrollbar-button,.smart-tags-list::-webkit-scrollbar-corner,.smart-tags-list-display::-webkit-resizer,.smart-tags-list-display::-webkit-scrollbar-button,.smart-tags-list-display::-webkit-scrollbar-corner,#wpforms-panel-fields .wpforms-tab-content::-webkit-resizer,#wpforms-panel-fields .wpforms-tab-content::-webkit-scrollbar-button,#wpforms-panel-fields .wpforms-tab-content::-webkit-scrollbar-corner,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar::-webkit-resizer,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar::-webkit-scrollbar-button,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar::-webkit-scrollbar-corner,#wpforms-builder-help::-webkit-resizer,#wpforms-builder-help::-webkit-scrollbar-button,#wpforms-builder-help::-webkit-scrollbar-corner,.wpforms-builder-themes-sidebar-content::-webkit-resizer,.wpforms-builder-themes-sidebar-content::-webkit-scrollbar-button,.wpforms-builder-themes-sidebar-content::-webkit-scrollbar-corner,.wpforms-scrollbar-compact::-webkit-resizer,.wpforms-scrollbar-compact::-webkit-scrollbar-button,.wpforms-scrollbar-compact::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){textarea,.wpforms-panel-content-wrap,.wpforms-panels-toggle,.smart-tags-list,.smart-tags-list-display,#wpforms-panel-fields .wpforms-tab-content,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar,#wpforms-builder-help,.wpforms-builder-themes-sidebar-content,.wpforms-scrollbar-compact{scrollbar-color:rgba(0,0,0,0) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}textarea:hover::-webkit-scrollbar,textarea:focus::-webkit-scrollbar,.wpforms-panel-content-wrap:hover::-webkit-scrollbar,.wpforms-panel-content-wrap:focus::-webkit-scrollbar,.wpforms-panels-toggle:hover::-webkit-scrollbar,.wpforms-panels-toggle:focus::-webkit-scrollbar,.smart-tags-list:hover::-webkit-scrollbar,.smart-tags-list:focus::-webkit-scrollbar,.smart-tags-list-display:hover::-webkit-scrollbar,.smart-tags-list-display:focus::-webkit-scrollbar,#wpforms-panel-fields .wpforms-tab-content:hover::-webkit-scrollbar,#wpforms-panel-fields .wpforms-tab-content:focus::-webkit-scrollbar,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover::-webkit-scrollbar,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus::-webkit-scrollbar,#wpforms-builder-help:hover::-webkit-scrollbar,#wpforms-builder-help:focus::-webkit-scrollbar,.wpforms-builder-themes-sidebar-content:hover::-webkit-scrollbar,.wpforms-builder-themes-sidebar-content:focus::-webkit-scrollbar,.wpforms-scrollbar-compact:hover::-webkit-scrollbar,.wpforms-scrollbar-compact:focus::-webkit-scrollbar{background:transparent;width:15px;height:15px}textarea:hover::-webkit-scrollbar-track,textarea:focus::-webkit-scrollbar-track,.wpforms-panel-content-wrap:hover::-webkit-scrollbar-track,.wpforms-panel-content-wrap:focus::-webkit-scrollbar-track,.wpforms-panels-toggle:hover::-webkit-scrollbar-track,.wpforms-panels-toggle:focus::-webkit-scrollbar-track,.smart-tags-list:hover::-webkit-scrollbar-track,.smart-tags-list:focus::-webkit-scrollbar-track,.smart-tags-list-display:hover::-webkit-scrollbar-track,.smart-tags-list-display:focus::-webkit-scrollbar-track,#wpforms-panel-fields .wpforms-tab-content:hover::-webkit-scrollbar-track,#wpforms-panel-fields .wpforms-tab-content:focus::-webkit-scrollbar-track,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover::-webkit-scrollbar-track,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus::-webkit-scrollbar-track,#wpforms-builder-help:hover::-webkit-scrollbar-track,#wpforms-builder-help:focus::-webkit-scrollbar-track,.wpforms-builder-themes-sidebar-content:hover::-webkit-scrollbar-track,.wpforms-builder-themes-sidebar-content:focus::-webkit-scrollbar-track,.wpforms-scrollbar-compact:hover::-webkit-scrollbar-track,.wpforms-scrollbar-compact:focus::-webkit-scrollbar-track{background:transparent}textarea:hover::-webkit-scrollbar-thumb,textarea:focus::-webkit-scrollbar-thumb,.wpforms-panel-content-wrap:hover::-webkit-scrollbar-thumb,.wpforms-panel-content-wrap:focus::-webkit-scrollbar-thumb,.wpforms-panels-toggle:hover::-webkit-scrollbar-thumb,.wpforms-panels-toggle:focus::-webkit-scrollbar-thumb,.smart-tags-list:hover::-webkit-scrollbar-thumb,.smart-tags-list:focus::-webkit-scrollbar-thumb,.smart-tags-list-display:hover::-webkit-scrollbar-thumb,.smart-tags-list-display:focus::-webkit-scrollbar-thumb,#wpforms-panel-fields .wpforms-tab-content:hover::-webkit-scrollbar-thumb,#wpforms-panel-fields .wpforms-tab-content:focus::-webkit-scrollbar-thumb,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover::-webkit-scrollbar-thumb,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus::-webkit-scrollbar-thumb,#wpforms-builder-help:hover::-webkit-scrollbar-thumb,#wpforms-builder-help:focus::-webkit-scrollbar-thumb,.wpforms-builder-themes-sidebar-content:hover::-webkit-scrollbar-thumb,.wpforms-builder-themes-sidebar-content:focus::-webkit-scrollbar-thumb,.wpforms-scrollbar-compact:hover::-webkit-scrollbar-thumb,.wpforms-scrollbar-compact:focus::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px 5px rgba(0,0,0,0.5);background:transparent;border-radius:15px;border:solid 4px transparent}textarea:hover::-webkit-resizer,textarea:hover::-webkit-scrollbar-button,textarea:hover::-webkit-scrollbar-corner,textarea:focus::-webkit-resizer,textarea:focus::-webkit-scrollbar-button,textarea:focus::-webkit-scrollbar-corner,.wpforms-panel-content-wrap:hover::-webkit-resizer,.wpforms-panel-content-wrap:hover::-webkit-scrollbar-button,.wpforms-panel-content-wrap:hover::-webkit-scrollbar-corner,.wpforms-panel-content-wrap:focus::-webkit-resizer,.wpforms-panel-content-wrap:focus::-webkit-scrollbar-button,.wpforms-panel-content-wrap:focus::-webkit-scrollbar-corner,.wpforms-panels-toggle:hover::-webkit-resizer,.wpforms-panels-toggle:hover::-webkit-scrollbar-button,.wpforms-panels-toggle:hover::-webkit-scrollbar-corner,.wpforms-panels-toggle:focus::-webkit-resizer,.wpforms-panels-toggle:focus::-webkit-scrollbar-button,.wpforms-panels-toggle:focus::-webkit-scrollbar-corner,.smart-tags-list:hover::-webkit-resizer,.smart-tags-list:hover::-webkit-scrollbar-button,.smart-tags-list:hover::-webkit-scrollbar-corner,.smart-tags-list:focus::-webkit-resizer,.smart-tags-list:focus::-webkit-scrollbar-button,.smart-tags-list:focus::-webkit-scrollbar-corner,.smart-tags-list-display:hover::-webkit-resizer,.smart-tags-list-display:hover::-webkit-scrollbar-button,.smart-tags-list-display:hover::-webkit-scrollbar-corner,.smart-tags-list-display:focus::-webkit-resizer,.smart-tags-list-display:focus::-webkit-scrollbar-button,.smart-tags-list-display:focus::-webkit-scrollbar-corner,#wpforms-panel-fields .wpforms-tab-content:hover::-webkit-resizer,#wpforms-panel-fields .wpforms-tab-content:hover::-webkit-scrollbar-button,#wpforms-panel-fields .wpforms-tab-content:hover::-webkit-scrollbar-corner,#wpforms-panel-fields .wpforms-tab-content:focus::-webkit-resizer,#wpforms-panel-fields .wpforms-tab-content:focus::-webkit-scrollbar-button,#wpforms-panel-fields .wpforms-tab-content:focus::-webkit-scrollbar-corner,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover::-webkit-resizer,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover::-webkit-scrollbar-button,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover::-webkit-scrollbar-corner,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus::-webkit-resizer,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus::-webkit-scrollbar-button,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus::-webkit-scrollbar-corner,#wpforms-builder-help:hover::-webkit-resizer,#wpforms-builder-help:hover::-webkit-scrollbar-button,#wpforms-builder-help:hover::-webkit-scrollbar-corner,#wpforms-builder-help:focus::-webkit-resizer,#wpforms-builder-help:focus::-webkit-scrollbar-button,#wpforms-builder-help:focus::-webkit-scrollbar-corner,.wpforms-builder-themes-sidebar-content:hover::-webkit-resizer,.wpforms-builder-themes-sidebar-content:hover::-webkit-scrollbar-button,.wpforms-builder-themes-sidebar-content:hover::-webkit-scrollbar-corner,.wpforms-builder-themes-sidebar-content:focus::-webkit-resizer,.wpforms-builder-themes-sidebar-content:focus::-webkit-scrollbar-button,.wpforms-builder-themes-sidebar-content:focus::-webkit-scrollbar-corner,.wpforms-scrollbar-compact:hover::-webkit-resizer,.wpforms-scrollbar-compact:hover::-webkit-scrollbar-button,.wpforms-scrollbar-compact:hover::-webkit-scrollbar-corner,.wpforms-scrollbar-compact:focus::-webkit-resizer,.wpforms-scrollbar-compact:focus::-webkit-scrollbar-button,.wpforms-scrollbar-compact:focus::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){textarea:hover,textarea:focus,.wpforms-panel-content-wrap:hover,.wpforms-panel-content-wrap:focus,.wpforms-panels-toggle:hover,.wpforms-panels-toggle:focus,.smart-tags-list:hover,.smart-tags-list:focus,.smart-tags-list-display:hover,.smart-tags-list-display:focus,#wpforms-panel-fields .wpforms-tab-content:hover,#wpforms-panel-fields .wpforms-tab-content:focus,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:hover,.wpforms-panel:not(#wpforms-panel-fields) .wpforms-panel-sidebar:focus,#wpforms-builder-help:hover,#wpforms-builder-help:focus,.wpforms-builder-themes-sidebar-content:hover,.wpforms-builder-themes-sidebar-content:focus,.wpforms-scrollbar-compact:hover,.wpforms-scrollbar-compact:focus{scrollbar-color:rgba(0,0,0,0.5) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}#wpforms-panel-fields .wpforms-panel-sidebar-content .wpforms-tab-content{scrollbar-gutter:stable}#wpforms-panel-fields .wpforms-panel-sidebar-content .wpforms-tab-content.wpforms-add-fields,#wpforms-panel-fields .wpforms-panel-sidebar-content .wpforms-tab-content .wpforms-field-option-group-inner,#wpforms-panel-fields .wpforms-panel-sidebar-content .wpforms-tab-content .wpforms-field-option-field-title-notice{padding-inline-end:6px}.wpforms-panel .wpforms-panel-sidebar-content .wpforms-panel-content-wrap{scroll-behavior:smooth;scrollbar-gutter:stable;padding-inline-end:16px}.wpforms-builder-dropdown-list ul::-webkit-scrollbar{background:transparent;width:4px;height:4px}.wpforms-builder-dropdown-list ul::-webkit-scrollbar-track{background:transparent}.wpforms-builder-dropdown-list ul::-webkit-scrollbar-thumb{box-shadow:inset 0 0 4px 4px rgba(0,0,0,0);background:transparent;border-radius:4px;border:solid -1px transparent}.wpforms-builder-dropdown-list ul::-webkit-resizer,.wpforms-builder-dropdown-list ul::-webkit-scrollbar-button,.wpforms-builder-dropdown-list ul::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.wpforms-builder-dropdown-list ul{scrollbar-color:rgba(0,0,0,0) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}.wpforms-builder-dropdown-list ul:hover::-webkit-scrollbar{background:transparent;width:4px;height:4px}.wpforms-builder-dropdown-list ul:hover::-webkit-scrollbar-track{background:transparent}.wpforms-builder-dropdown-list ul:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 4px 4px rgba(0,0,0,0.5);background:transparent;border-radius:4px;border:solid -1px transparent}.wpforms-builder-dropdown-list ul:hover::-webkit-resizer,.wpforms-builder-dropdown-list ul:hover::-webkit-scrollbar-button,.wpforms-builder-dropdown-list ul:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){.wpforms-builder-dropdown-list ul:hover{scrollbar-color:rgba(0,0,0,0.5) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}@-moz-document url-prefix(){#wpforms-panel-fields .wpforms-panel-sidebar-content .wpforms-tab-content.wpforms-add-fields,#wpforms-panel-fields .wpforms-panel-sidebar-content .wpforms-tab-content .wpforms-field-option-group-inner{padding-inline-end:20px !important}.wpforms-panel .wpforms-panel-sidebar-content .wpforms-panel-content-wrap{padding-inline-end:30px !important}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-subsystems.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-subsystems.min.css new file mode 100644 index 0000000..a8acac1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-subsystems.min.css @@ -0,0 +1 @@ +.tooltipster-base.tooltipster-sidetip .tooltipster-content{font-size:14px;padding:8px 16px}.tooltipster-base.tooltipster-sidetip .tooltipster-arrow-border{display:none}.tooltipster-base.tooltipster-sidetip .tooltipster-arrow-background{border-width:6px;border-color:transparent}.tooltipster-base.tooltipster-sidetip .tooltipster-box{background:rgba(34,34,34,0.95);border:none}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background,.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{top:0}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-content,.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-content{text-align:center}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow,.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:6px;margin-left:-6px;width:12px}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background,.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{left:0}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-arrow,.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:12px;margin-top:-6px;width:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:rgba(34,34,34,0.95)}.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:rgba(34,34,34,0.95)}.tooltipster-base.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-6px}.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:rgba(34,34,34,0.95)}.tooltipster-base.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-6px}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:6px}.tooltipster-base.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:rgba(34,34,34,0.95)}.wpforms-admin-popup-container{background-color:rgba(0,0,0,0.5);display:none;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:100100}.wpforms-admin-popup{background-color:white;border-radius:6px;-moz-box-shadow:0 0 40px 0 rgba(0,0,0,0.2);-webkit-box-shadow:0 0 40px 0 rgba(0,0,0,0.2);box-shadow:0 0 40px 0 rgba(0,0,0,0.2);display:block !important;left:50%;max-width:550px;min-width:550px;position:absolute;text-align:center;top:50%;transform:translate(-50%, -50%);overflow:visible}.wpforms-admin-popup-content{padding:40px 50px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms-admin-popup-content h3{color:#3c434a;font-size:24px;font-weight:600;letter-spacing:0;margin:0 0 20px 0;text-align:center}.wpforms-admin-popup-content p{color:#6a6f76;font-size:16px;letter-spacing:0;line-height:22px;margin:0 0 15px 0;text-align:center}.wpforms-admin-popup-content p.no-gap{margin-bottom:0}.wpforms-admin-popup-content p.secondary{font-size:14px;line-height:17px}.wpforms-admin-popup-content p:last-of-type{margin-bottom:0}.wpforms-admin-popup-content b{font-weight:600}.wpforms-admin-popup-content select,.wpforms-admin-popup-content input[type=text]{border:1px solid #dcdcde;border-radius:4px;color:#6a6f76;font-size:14px;height:auto;line-height:21px;padding:8px 12px 8px 12px;vertical-align:middle;width:320px}.wpforms-admin-popup-content select:focus,.wpforms-admin-popup-content input[type=text]:focus{border-color:#036aab}.wpforms-admin-popup-content .choices__inner{padding:0;width:320px}.wpforms-admin-popup-content input[type=text].wpforms-admin-popup-shortcode{background:#f6f7f7;color:#3c434a;font-family:monospace;font-size:13px;font-style:normal;font-weight:400;line-height:15px;margin:20px 0 0 0;padding:12px 22px;text-align:center;width:100%}.wpforms-admin-popup-content a.wpforms-admin-popup-toggle{color:#6a6f76;text-decoration-line:underline}.wpforms-admin-popup-content a.wpforms-admin-popup-toggle:hover,.wpforms-admin-popup-content a.wpforms-admin-popup-toggle:focus{box-shadow:none;color:#3c434a}.wpforms-admin-popup-content iframe{height:253px;margin:20px 0 0 0;width:449px}.wpforms-admin-popup-close{color:#b0b2b3;cursor:pointer;display:block;font-size:16px !important;line-height:12px;position:absolute;inset-inline-end:10px;top:10px}.wpforms-admin-popup-close:hover{color:#6a6f76}.wpforms-admin-popup-btn{background-color:#e27730;border:none;border-radius:4px;box-shadow:none;color:#ffffff;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:19px;max-width:calc( 50% - 15px);width:calc( 50% - 15px);overflow:hidden;padding:10px 20px;text-align:center;text-decoration:none;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.wpforms-admin-popup-btn:hover{background-color:#cd6622}.wpforms-admin-popup-btn .dashicons-external{margin-inline-start:6px}.wpforms-admin-popup-btn[data-action="go"]{width:120px}.wpforms-admin-popup-btn:first-child{margin-inline-end:10px}.wpforms-admin-popup-btn:last-child{margin-inline-start:10px}.wpforms-admin-popup-btn:only-child{margin-left:0;margin-right:0}.wpforms-admin-popup-btn:disabled{cursor:default;opacity:.5}.wpforms-admin-popup-btn:disabled:hover{background-color:#e27730}.wpforms-admin-popup-bottom{margin:20px 0 0 0}.wpforms-admin-popup-flex{align-items:stretch;display:flex;flex-wrap:nowrap;justify-content:space-between}#wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{top:100%;bottom:auto;margin-top:-1px;margin-bottom:0}#wpforms-admin-form-embed-wizard .choices__list--single{color:#6a6f76;line-height:21px;padding:8px 12px 8px 12px;vertical-align:middle}#wpforms-admin-form-embed-wizard .choices__item{color:#6a6f76}#wpforms-admin-form-embed-wizard-shortcode-wrap{display:table;margin:0 auto}#wpforms-admin-form-embed-wizard-shortcode{inset-inline-start:15px;position:relative;width:400px}#wpforms-admin-form-embed-wizard-shortcode-copy{position:relative;inset-inline-end:25px;top:10px}#wpforms-admin-form-embed-wizard-shortcode-copy i{background:#ffffff;border:1px solid #c3c4c7;border-radius:3px;color:#a7aaad;cursor:pointer;padding:8px;width:32px;vertical-align:middle}#wpforms-admin-form-embed-wizard-shortcode-copy:hover i{border-color:#8c8f94;color:#3c434a}#wpforms-builder-help{background-color:#ffffff;display:block;height:100%;max-height:100vh;opacity:1;overflow-y:auto;position:fixed;width:100vw;z-index:100100;top:0;right:0;bottom:0;left:0}#wpforms-builder-help *{opacity:1}#wpforms-builder-help .wpforms-builder-help-docs{margin:0 0 25px 0}#wpforms-builder-help .wpforms-builder-help-docs li{margin:0;padding-bottom:14px;padding-inline-start:4px}#wpforms-builder-help .wpforms-builder-help-docs li i{color:#b0b2b3;font-size:16px;margin-inline-end:14px}#wpforms-builder-help .wpforms-builder-help-docs li a{border-bottom:1px solid transparent;color:#6a6f76;font-size:15px;text-decoration:none}#wpforms-builder-help .wpforms-builder-help-docs li a:hover{border-bottom:1px solid #79c2f4;color:#036aab}#wpforms-builder-help .wpforms-builder-help-docs .viewall{margin:10px 0 0 0}#wpforms-builder-help .wpforms-btn.wpforms-btn-md{font-size:15px;font-weight:600;min-height:auto;padding:11px 17px 11px 17px}#wpforms-builder-help-logo{height:50px;inset-inline-start:20px;position:fixed;top:20px;width:64px}#wpforms-builder-help-close{cursor:pointer;font-size:32px;height:28px;position:fixed;inset-inline-end:20px;top:20px;width:28px;transition-property:all;transition-duration:0.05s;transition-timing-function:ease-out}#wpforms-builder-help-close svg{height:100% !important;width:100% !important}#wpforms-builder-help-close svg path{fill:#a7aaad !important}#wpforms-builder-help-close:hover svg path{fill:#6a6f76 !important}#wpforms-builder-help-content{background-color:#ffffff;margin:0 auto 50px auto;width:700px}#wpforms-builder-help-content #wpforms-builder-help-search{background-color:#ffffff;padding:74px 0 50px 0;position:relative;text-align:center;top:0}#wpforms-builder-help-content #wpforms-builder-help-search input{background-image:none;background-position:22px center;background-repeat:no-repeat;background-size:20px 20px;border:1px solid #a7aaad;border-radius:25px;color:#3c434a;font-size:20px;letter-spacing:0;line-height:20px;min-height:48px;padding-block:10px;padding-inline-end:10px;padding-inline-start:54px;text-align:start;width:700px}#wpforms-builder-help-content #wpforms-builder-help-search input:focus{border:1px solid #036aab}#wpforms-builder-help-content #wpforms-builder-help-search input::placeholder{color:#b0b2b3}.rtl #wpforms-builder-help-content #wpforms-builder-help-search input{background-position:calc(100% - 22px) center}#wpforms-builder-help-content #wpforms-builder-help-search #wpforms-builder-help-search-clear{cursor:pointer;height:20px;inset-inline-start:22px;opacity:.7;position:absolute;top:89px;width:20px}#wpforms-builder-help-content #wpforms-builder-help-search #wpforms-builder-help-search-clear svg{height:100% !important;width:100% !important}#wpforms-builder-help-content #wpforms-builder-help-search #wpforms-builder-help-search-clear svg path{fill:#a7aaad !important}#wpforms-builder-help-content #wpforms-builder-help-search #wpforms-builder-help-search-clear:hover{opacity:1}#wpforms-builder-help-content #wpforms-builder-help-search.wpforms-empty #wpforms-builder-help-search-clear{display:none}#wpforms-builder-help-content #wpforms-builder-help-search.wpforms-empty input{background-image:url("../../images/search.svg")}#wpforms-builder-help-content .wpforms-builder-help-error{font-size:16px;font-weight:600;margin:220px 0 100px 0;text-align:center}#wpforms-builder-help-result .wpforms-builder-help-docs,#wpforms-builder-help-no-result .wpforms-builder-help-docs{margin:0 0 36px 0}#wpforms-builder-help-result span,#wpforms-builder-help-no-result span{color:#6a6f76;font-size:15px}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category{border-top:1px solid #dcdcde;margin:0}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category:last-child{border-bottom:1px solid #dcdcde}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category header{align-items:center;cursor:pointer;display:flex;flex-direction:row;justify-content:flex-start}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category header:hover span{color:#036aab}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category header i.wpforms-folder{color:#a7aaad;font-size:21px;margin-block:23px;margin-inline-end:11px}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category header i.wpforms-arrow{color:#c3c4c7;font-size:24px;margin-inline-start:auto;transition-property:transform;transition-duration:0.25s;transition-timing-function:ease-out}.rtl #wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category header i.wpforms-arrow{transform:scale(-1, 1)}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category header span{color:#3c434a;font-size:16px;font-weight:600}#wpforms-builder-help-categories .wpforms-builder-help-categories-toggle .wpforms-builder-help-category.opened i.wpforms-arrow{transform:rotate(90deg)}#wpforms-builder-help-footer{align-items:center;display:flex;flex-wrap:nowrap;justify-content:space-between;margin:50px 0 0 0}#wpforms-builder-help-footer .wpforms-builder-help-footer-block{border:1px solid #dcdcde;border-radius:6px;box-sizing:border-box;max-width:325px;padding:25px;text-align:center}#wpforms-builder-help-footer .wpforms-builder-help-footer-block i{color:#a7aaad;font-size:48px;margin:0 0 20px 0}#wpforms-builder-help-footer .wpforms-builder-help-footer-block h3{color:#3c434a;font-size:16px;margin:0 0 10px 0}#wpforms-builder-help-footer .wpforms-builder-help-footer-block p{color:#6a6f76;font-size:14px;margin:0 0 20px 0}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@media screen and (max-width: 750px){#wpforms-builder-help{display:none}}@media screen and (max-width: 1023px){.wpforms-dyk-row{display:none !important}}.wpforms-dyk .wpforms-dyk-fbox{align-content:stretch;align-items:center;background-color:#f1f6fa;border-inline-start:4px solid #036aab;display:flex;font-size:14px;gap:10px;justify-content:space-between;opacity:1;padding-block:12px;padding-inline-end:12px;padding-inline-start:20px;transition-property:all;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms-dyk .wpforms-dyk-fbox.out{opacity:0;transform:scaleY(0)}.wpforms-dyk .wpforms-dyk-message b{font-weight:700}.wpforms-dyk .wpforms-dyk-buttons{align-items:center;display:flex;gap:10px}.wpforms-dyk .wpforms-dyk-buttons .learn-more{text-decoration:underline}.wpforms-dyk .wpforms-dyk-buttons .learn-more:hover{color:#3c434a}.wpforms-dyk .wpforms-dyk-buttons .wpforms-btn-md{font-size:14px;min-height:auto}.wpforms-smtp-education-notice{background:#f0f0f1;border-radius:3px;margin:30px 0;padding-block:18px;padding-inline-end:100px;padding-inline-start:20px;position:relative}.wpforms-smtp-education-notice:after{content:'';display:block;width:97px;height:78px;position:absolute;bottom:0;inset-inline-end:0;background-image:url("../../images/smtp/pattie-2.svg");background-size:100%;z-index:1}.wpforms-smtp-education-notice-title{font-weight:600;font-size:16px;line-height:20px}.wpforms-smtp-education-notice-description{font-weight:400;font-size:14px;line-height:17px;color:#6a6f76;margin-top:5px}.wpforms-smtp-education-notice-description a{color:#e27730;font-weight:600}.wpforms-smtp-education-notice-description a:hover{color:#cd6622}.wpforms-smtp-education-notice-dismiss-button{z-index:2;position:absolute;inset-inline-end:0;top:0;padding:5px;color:#b0b2b3}.wpforms-smtp-education-notice-dismiss-button:before{content:none !important}.wpforms-smtp-education-notice-dismiss-button:hover{color:#6a6f76}@media (max-width: 1024px){.wpforms-smtp-education-notice{padding:18px 20px}.wpforms-smtp-education-notice::after{margin-top:-18px;position:relative;bottom:-18px;margin-inline-start:auto;inset-inline-end:auto}}.wpforms-educational-alert.wpforms-field-educational-alert{position:relative;padding:10px}.wpforms-educational-alert.wpforms-field-educational-alert .wpforms-dismiss-button{position:absolute;inset-inline-end:1px;top:2px}.wpforms-educational-alert.wpforms-field-educational-alert .wpforms-badge-block{margin-bottom:6px}.wpforms-educational-alert.wpforms-field-educational-alert h3{font-size:inherit;font-weight:500;line-height:normal;margin:0 0 3px}.wpforms-educational-alert.wpforms-field-educational-alert p{color:#6a6f76}.wpforms-educational-alert .wpforms-educational-badge{font-size:8px;font-style:normal;font-weight:700;line-height:10px;letter-spacing:0.4px;text-transform:uppercase;text-align:center;padding:5px 7px;border-radius:3px;background-color:#E5F6E9}.wpforms-educational-alert .wpforms-educational-badge-green{color:#30B450}.wpforms-educational-alert .wpforms-educational-badge+h4{margin-top:10px}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice{margin:30px 0 10px 0;align-items:flex-start;padding:0;background:#FDFAF2;border:1px solid rgba(0,0,0,0.07);box-shadow:0px 1px 2px rgba(0,0,0,0.07);border-radius:6px;overflow:hidden;max-height:none}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-message{padding:20px 20px 20px 50px;background-image:url("../../images/integrations/ai/bulb-orange.svg");background-size:14px 21px;background-repeat:no-repeat;background-position:20px 22px}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-message h3{margin-top:0;margin-bottom:4px;line-height:21px;font-size:17px}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-message p{margin:0;line-height:21px}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-message a{color:#e27730}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-message a:hover{color:#cd6622}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice.wpforms-alert-error{background:#fcf0f1}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice.wpforms-alert-error .wpforms-alert-message{background-image:url("../../images/integrations/ai/bulb-red.svg")}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-buttons{padding:20px}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-buttons button{padding:0;opacity:0.7}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-buttons button:before{content:'';background-image:url("../../images/integrations/ai/close.svg");background-size:12px 12px;width:12px;height:12px}.wpforms-admin-page .wpforms-panel-content .wpforms-alert.wpforms-pro-fields-notice .wpforms-alert-buttons button:hover{opacity:1}.wpforms-pdf-popup{position:fixed;bottom:16px;inset-inline-end:16px;width:280px;height:258px;padding:63px 30px 30px 30px;background-color:white;z-index:100109;text-align:center;box-shadow:5px 10px 30px -5px rgba(0,0,0,0.15);border-radius:12px}.wpforms-pdf-popup .wpforms-pdf-popup-content .icon{position:absolute;top:-26px;left:50%;transform:translateX(-50%)}.wpforms-pdf-popup .wpforms-pdf-popup-content .icon img{width:64px;height:69px}.wpforms-pdf-popup .wpforms-pdf-popup-content .close-popup{position:absolute;top:10px;inset-inline-end:11px;cursor:pointer;transform:scale(1.4);color:#bbbbbb}.wpforms-pdf-popup .wpforms-pdf-popup-content .badge{color:#30b450;text-transform:uppercase;font-weight:700;font-size:10px;line-height:100%}.wpforms-pdf-popup .wpforms-pdf-popup-content h2{font-weight:700;font-size:20px;line-height:100%;margin:8px}.wpforms-pdf-popup .wpforms-pdf-popup-content p{line-height:20px;margin-top:15px}.wpforms-pdf-popup .wpforms-pdf-popup-content button{margin-top:10px} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-third-party.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-third-party.min.css new file mode 100644 index 0000000..5ea9abe --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-third-party.min.css @@ -0,0 +1 @@ +.wpforms-screen-reader-element,.screen-reader-text{border:0 !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;margin:0 !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;word-wrap:normal !important}.wpforms_page_wpforms-builder #wpadminbar{display:none}.wpforms_page_wpforms-builder .flatpickr-calendar.open{z-index:100100}@media only screen and (max-width: 600px){.flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box{display:grid;grid-template-columns:repeat(2, 1fr);justify-items:center;animation:none;background:#ffffff;border-radius:6px;border-top-style:solid;border-top-width:4px;box-shadow:0 3px 6px rgba(0,0,0,0.15);padding-top:34px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons{grid-column:1 / -1}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default{border-top-width:0;padding-top:25px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c{margin-bottom:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default .jconfirm-title-c .jconfirm-icon-c{font-size:44px;margin-bottom:-6px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm{background-color:#e27730;border-color:#e27730}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-default button.btn-confirm:hover{background-color:#cd6622;border-color:#cd6622}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red{border-top-color:#d63638 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#d63638 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm{background-color:#d63638;border-color:#d63638}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red button.btn-confirm:hover{background-color:#b32d2e;border-color:#b32d2e}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange{border-top-color:#e27730 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#e27730 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm{background-color:#e27730;border-color:#e27730}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-orange button.btn-confirm:hover{background-color:#cd6622;border-color:#cd6622}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow{border-top-color:#ffb900 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow .jconfirm-title-c .jconfirm-icon-c{color:#ffb900 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm{background-color:#ffb900;border-color:#ffb900}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-yellow button.btn-confirm:hover{background-color:#ffaa00;border-color:#ffaa00}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue{border-top-color:#0399ed !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#0399ed !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm{background-color:#0399ed;border-color:#0399ed}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-blue button.btn-confirm:hover{background-color:#036aab;border-color:#036aab}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green{border-top-color:#00a32a !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#00a32a !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm{background-color:#00a32a;border-color:#00a32a}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-green button.btn-confirm:hover{background-color:#008a20;border-color:#008a20}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple{border-top-color:#7a30e2 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#7a30e2 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm{background-color:#7a30e2;border-color:#7a30e2}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-purple button.btn-confirm:hover{background-color:#5c24a9;border-color:#5c24a9}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{color:transparent;font-family:"FontAwesome";height:14px;opacity:1;inset-inline-end:10px;top:10px;width:14px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after{color:#b0b2b3;content:"\f00d";font-size:16px;inset-inline-start:0;position:absolute;top:0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover:after{color:#6a6f76 !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c{margin:0 0 20px 0;padding:0;font-weight:600}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{font-size:47px;margin:0;-ms-transform:none !important;-webkit-transform:none !important;transform:none !important;-webkit-transition:none !important;transition:none !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-icon-c+.jconfirm-title{margin-top:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title{color:#3c434a;display:block;line-height:30px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane{display:block;margin-bottom:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content{color:#3c434a;font-size:16px;line-height:24px;margin-bottom:0;overflow:inherit}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content.lite-upgrade p{color:#6a6f76;font-size:18px;padding:0 20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p{font-size:inherit;line-height:inherit;margin:0 0 16px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p:last-of-type{margin:0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.large{font-size:18px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.small{font-size:14px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.bold,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.bold,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content p.bold{font-weight:600}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong{font-weight:600}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=text],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=number],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=email],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=url],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=password],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=search],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type=tel],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content textarea,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content select{margin:10px 2px;width:calc( 100% - 4px)}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content .error,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content .error,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content .error{color:#d63638;font-size:14px;font-weight:600;line-height:1.4;margin-top:10px;display:none}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased{display:block;grid-row:5;grid-column:1 / -1;color:#b0b2b3;font-size:14px;margin-top:15px;text-decoration:underline;text-align:center}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .already-purchased:hover{color:#6a6f76;text-decoration:underline}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note{grid-row:4;grid-column:1 / -1;margin:25px 0 0 0;text-align:center;width:100%}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p{background-color:#fcf9e8;color:#6a6f76;font-size:16px;margin:0 -30px;padding:22px 52px 12px 52px;position:relative}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note p:after{background-color:#ffffff;border-radius:50%;color:#00a32a;content:"\f058";display:inline-block;font:normal normal normal 14px "FontAwesome";font-size:26px;margin-inline-end:-18px;padding:5px 6px;position:absolute;inset-inline-end:50%;text-rendering:auto;top:-16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note span,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note span,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note span{color:#00a32a;font-weight:700}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .discount-note a,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .discount-note a,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .discount-note a{color:#6a6f76;display:block;margin-top:12px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .feature-video,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .feature-video,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .feature-video{margin:30px 0 0 0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .pro-feature-video{margin:15px 0 10px 0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input),.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input),.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box input[type=text]:not(.choices__input){display:block;margin-top:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box #wpforms-edu-modal-license-key{margin-top:20px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons{margin-top:-10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button{background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;color:#6a6f76;font-size:16px;font-weight:600;line-height:20px;outline:none;padding:11px 17px;text-transform:none;margin:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button:hover{background:#e8e9e9;border-color:#c3c4c7}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button{min-width:83px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled],.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled],.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button[disabled]{cursor:no-drop;pointer-events:none}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-confirm{color:#ffffff}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai{background-color:#faf5fe;border-color:#7a30e2;color:#7a30e2;padding:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:hover,.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:focus,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:hover,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:focus,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:hover,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai:focus{background-color:#f5e9ff;border-color:#5c24a9;color:#5c24a9}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai::before,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai::before,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-fix-with-ai::before{content:'';display:inline-block;vertical-align:middle;width:16px;height:16px;background-image:url(../../images/integrations/ai/ai-feature.svg);background-size:16px 16px;margin-inline-end:8px;opacity:.85}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.hidden+button{margin-left:0;margin-right:0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-block{display:block;margin:0 0 10px 0 !important;text-align:center;width:100%}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn-normal-case{text-transform:none !important}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button i{margin-inline-end:10px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-providers-account-add-modal .jconfirm-content .description{font-size:13px;line-height:1.4;margin-top:15px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-content-pane,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-content-pane,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-content-pane{max-height:calc( 100vh - 333px);transition-property:max-height;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-title-c,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-title-c,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .jconfirm-title-c{margin-bottom:15px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-columns,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-columns,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-columns{margin:30px 0 0 0}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column{border:1px solid #c3c4c7;border-radius:4px}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li{border-bottom:1px solid #dcdcde;font-size:14px;line-height:30px;margin:0;padding:8px 10px;text-align:start;display:flex}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li:last-child,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li:last-child,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li:last-child{border-bottom:none}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span{margin-inline-start:auto}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i{background-color:#ebf3fc;border-radius:4px;color:#036aab;display:inline-block;font-style:normal;line-height:16px;margin-inline-start:5px;min-width:30px;padding:5px 10px;text-transform:capitalize}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i:empty,.block-editor-page .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i:empty,.elementor-editor-active .jconfirm .jconfirm-box-container .jconfirm-box.wpforms-builder-keyboard-shortcuts .wpforms-column li span i:empty{display:none}.wpforms_page_wpforms-builder .jconfirm.jconfirm-wpforms-education .jconfirm-content-pane,.block-editor-page .jconfirm.jconfirm-wpforms-education .jconfirm-content-pane,.elementor-editor-active .jconfirm.jconfirm-wpforms-education .jconfirm-content-pane{height:auto !important;min-height:fit-content}.wpforms_page_wpforms-builder .choices,.block-editor-page .choices,.elementor-editor-active .choices{font-size:16px;text-align:start}.wpforms_page_wpforms-builder .choices input[type=text].choices__input:not(.wpforms-hidden),.block-editor-page .choices input[type=text].choices__input:not(.wpforms-hidden),.elementor-editor-active .choices input[type=text].choices__input:not(.wpforms-hidden){display:inline-block !important}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-box,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-box,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-box{padding-bottom:0;padding-top:30px}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .already-purchased,.block-editor-page .jconfirm.has-video .jconfirm-box-container .already-purchased,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .already-purchased{grid-row:4;grid-column:1 / 2;display:block;margin-top:0}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .already-purchased:hover,.block-editor-page .jconfirm.has-video .jconfirm-box-container .already-purchased:hover,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .already-purchased:hover{color:#6a6f76}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .discount-note,.block-editor-page .jconfirm.has-video .jconfirm-box-container .discount-note,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .discount-note{grid-row:5;margin:20px 0 0}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .discount-note p,.block-editor-page .jconfirm.has-video .jconfirm-box-container .discount-note p,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .discount-note p{margin:0 -30px;padding:20px 52px;border-radius:0 0 6px 6px}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .discount-note p:after,.block-editor-page .jconfirm.has-video .jconfirm-box-container .discount-note p:after,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .discount-note p:after{display:none}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .feature-video,.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .pro-feature-video,.block-editor-page .jconfirm.has-video .jconfirm-box-container .feature-video,.block-editor-page .jconfirm.has-video .jconfirm-box-container .pro-feature-video,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .feature-video,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .pro-feature-video{grid-row:1 / span 4;grid-column-start:2;margin-top:0;margin-inline-start:15px}.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-title-c,.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-content-pane,.wpforms_page_wpforms-builder .jconfirm.has-video .jconfirm-box-container .jconfirm-buttons,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-title-c,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-content-pane,.block-editor-page .jconfirm.has-video .jconfirm-box-container .jconfirm-buttons,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-title-c,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-content-pane,.elementor-editor-active .jconfirm.has-video .jconfirm-box-container .jconfirm-buttons{grid-column:1 / 2}.wpforms_page_wpforms-builder .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box,.block-editor-page .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box,.elementor-editor-active .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box{padding-bottom:30px}.wpforms_page_wpforms-builder .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .pro-feature-video,.block-editor-page .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .pro-feature-video,.elementor-editor-active .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .pro-feature-video{margin-bottom:0}.wpforms_page_wpforms-builder .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.block-editor-page .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .jconfirm-buttons,.elementor-editor-active .jconfirm.upgrade-modal .jconfirm-box-container .jconfirm-box .jconfirm-buttons{padding-bottom:0}.wpforms_page_wpforms-builder.rtl .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.block-editor-page.rtl .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon,.elementor-editor-active.rtl .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{left:10px;right:auto}@media screen and (max-width: 1023px){.wpforms_page_wpforms-builder .jconfirm{display:none}}.wpforms_page_wpforms-builder .media-modal .edit-attachment,.wpforms_page_wpforms-builder .media-modal .delete-attachment{display:none} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/builder-ui-general.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-ui-general.min.css new file mode 100644 index 0000000..d83e51f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/builder-ui-general.min.css @@ -0,0 +1 @@ +#wpforms-builder .wpforms-toolbar{background:#ffffff;box-shadow:0 0 3px 0 rgba(0,0,0,0.2);height:76px;padding:0;position:fixed;text-align:center;top:var(--wpforms-admin-bar-height);width:100%;z-index:50;-webkit-transform:translateZ(0);transform:translateZ(0);transition-property:top;transition-duration:0.25s;transition-timing-function:ease-out}#wpforms-builder .wpforms-toolbar .wpforms-left{align-items:center;border-inline-end:1px solid #dcdcde;display:flex;height:100%;justify-content:center;inset-inline-start:0;position:absolute;top:0;width:95px}#wpforms-builder .wpforms-toolbar .wpforms-left img{height:45px;width:57px}#wpforms-builder .wpforms-toolbar .wpforms-center{display:flex;gap:5px;align-items:center;text-align:start;font-size:18px;line-height:1;font-weight:400;margin-inline-end:520px;margin-inline-start:114px;max-width:calc( 100% - 500px);height:100%}#wpforms-builder .wpforms-toolbar .wpforms-center-form-name-prefix{white-space:nowrap}#wpforms-builder .wpforms-toolbar .wpforms-center-form-name{cursor:pointer}#wpforms-builder .wpforms-toolbar .wpforms-center-form-name:hover{text-decoration:underline}#wpforms-builder .wpforms-toolbar .wpforms-center-form-template-badge{background-color:#fdf2eb;border-radius:3px;color:#e79055;font-size:10px;line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;padding:8px 10px;margin-left:5px}#wpforms-builder .wpforms-toolbar .wpforms-form-name{font-weight:600}#wpforms-builder .wpforms-toolbar .wpforms-right{align-items:center;display:flex;height:100%;justify-content:flex-end;position:absolute;inset-inline-end:0;top:0}#wpforms-builder .wpforms-toolbar .wpforms-right .wpforms-btn-toolbar{font-size:16px;font-weight:600;height:42px;line-height:40px;margin-inline-end:20px;padding:0 15px;text-decoration:none;text-transform:capitalize}#wpforms-builder .wpforms-toolbar .wpforms-right .wpforms-btn-toolbar#wpforms-help{margin-inline-end:18px}#wpforms-builder .wpforms-toolbar .wpforms-right .wpforms-btn-toolbar i{color:#a7aaad;margin-inline-end:8px}#wpforms-builder .wpforms-toolbar #wpforms-help,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container{background-color:transparent;border:none;padding:0}#wpforms-builder .wpforms-toolbar #wpforms-help i.fa,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container i.fa{margin-right:0 !important}#wpforms-builder .wpforms-toolbar #wpforms-help svg,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container svg{fill:#a7aaad;margin-top:13px}#wpforms-builder .wpforms-toolbar #wpforms-help .wpforms-context-menu-list-item-icon svg,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container .wpforms-context-menu-list-item-icon svg{width:14px;height:auto;margin:0}#wpforms-builder .wpforms-toolbar #wpforms-help .wpforms-context-menu-list-item-icon svg path,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container .wpforms-context-menu-list-item-icon svg path{fill:rgba(255,255,255,0.75)}#wpforms-builder .wpforms-toolbar #wpforms-help:hover>i.fa,#wpforms-builder .wpforms-toolbar #wpforms-help:hover>svg,#wpforms-builder .wpforms-toolbar #wpforms-help.wpforms-context-menu-active>i.fa,#wpforms-builder .wpforms-toolbar #wpforms-help.wpforms-context-menu-active>svg,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container:hover>i.fa,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container:hover>svg,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container.wpforms-context-menu-active>i.fa,#wpforms-builder .wpforms-toolbar #wpforms-context-menu-container.wpforms-context-menu-active>svg{color:#3c434a;fill:#3c434a}#wpforms-builder .wpforms-toolbar #wpforms-preview-btn:not(.wpforms-alone){border-end-end-radius:0;border-start-end-radius:0;margin-inline-end:-1px}#wpforms-builder .wpforms-toolbar #wpforms-embed{border-end-start-radius:0;border-start-start-radius:0}#wpforms-builder .wpforms-toolbar #wpforms-embed.wpforms-btn-light-grey-disabled{cursor:default}#wpforms-builder .wpforms-toolbar #wpforms-embed.wpforms-btn-light-grey-disabled:hover{background-color:#f6f7f7;border-color:#c3c4c7;color:#6a6f76}#wpforms-builder .wpforms-toolbar #wpforms-embed.wpforms-btn-light-grey-disabled>*{opacity:.35}#wpforms-builder .wpforms-toolbar #wpforms-save i{color:rgba(255,255,255,0.65)}#wpforms-builder .wpforms-toolbar #wpforms-exit{align-items:center;background-color:#ffffff;border-bottom:none;border-inline-start:1px solid #dcdcde;border-inline-end:none;border-top:none;color:#a7aaad;cursor:pointer;display:flex;font-size:26px;height:76px;justify-content:center;inset-inline-end:0;text-decoration:none;top:0;width:66px}#wpforms-builder .wpforms-toolbar #wpforms-exit:hover{background-color:#e8e9e9;color:#6a6f76}#wpforms-builder .wpforms-toolbar.empty .wpforms-center{display:none}#wpforms-builder .wpforms-toolbar.empty .wpforms-right #wpforms-embed,#wpforms-builder .wpforms-toolbar.empty .wpforms-right #wpforms-save,#wpforms-builder .wpforms-toolbar.empty .wpforms-right div,#wpforms-builder .wpforms-toolbar.empty .wpforms-right a{display:none}.wpforms-panels-toggle{display:flex;flex-direction:column;background:#282e32;color:#ffffff;min-height:calc( 100vh - 76px - var( --wpforms-admin-bar-height ));max-height:calc( 100vh - 76px - var( --wpforms-admin-bar-height ));inset-inline-start:0;margin-top:76px;margin-inline-end:-100px;overflow-x:hidden;overflow-y:auto;position:fixed;text-align:start;top:var(--wpforms-admin-bar-height);transform:translateZ(0);width:95px;z-index:15;transition-property:top;transition-duration:0.25s;transition-timing-function:ease-out}.wpforms-panels-toggle button{background:none;border:none;border-bottom:1px solid #3c434a;cursor:pointer;display:block;margin:0;padding:14px 10px;width:100%}.wpforms-panels-toggle button.active,.wpforms-panels-toggle button.active:hover{background-color:#e27730}.wpforms-panels-toggle button.active .fa,.wpforms-panels-toggle button.active:hover .fa{color:#ffffff}.wpforms-panels-toggle button:hover{background-color:#3c434a}.wpforms-panels-toggle button .fa{color:#8c8f94;display:block;font-size:26px;margin:0 auto 8px;text-align:center !important}.wpforms-panels-toggle button.wpforms-panel-fields-button .fa,.wpforms-panels-toggle button.wpforms-panel-payments-button .fa{font-size:28px}.wpforms-panels-toggle button .wpforms-loading-spinner{background-size:24px 24px;background-position:0;background-repeat:no-repeat;height:24px;width:24px;line-height:24px;vertical-align:0;margin:2px auto 8px auto;display:block}.wpforms-panels-toggle button span{color:#ffffff;display:block;font-size:14px;line-height:17px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpforms-panel{display:none}.wpforms-panel.active{display:block}.wpforms-panel-full-content .wpforms-panel-content-wrap,.wpforms-panel-sidebar-content .wpforms-panel-content-wrap{background-color:#6a6f76;bottom:0;inset-inline-start:95px;overflow:auto;padding-block-start:30px;padding-block-end:30px;padding-inline-start:30px;padding-inline-end:30px;position:fixed;inset-inline-end:0;top:calc( 76px + var( --wpforms-admin-bar-height ));z-index:10;transition-property:top, inset-inline-start;transition-duration:0.25s, 0.15s;transition-timing-function:ease-out, ease-in-out}.wpforms-panel-full-content .wpforms-panel-content,.wpforms-panel-sidebar-content .wpforms-panel-content{background-color:#ffffff;border-radius:12px;box-shadow:0 5px 30px rgba(0,0,0,0.2);min-height:100%;padding:30px;display:flex;flex-direction:column}.wpforms-panel-full-content .wpforms-panel-content .wpforms-bottom,.wpforms-panel-sidebar-content .wpforms-panel-content .wpforms-bottom{margin-bottom:0}.wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle-icon{align-items:center;background-image:url(../../images/builder/toggle-tab-bg.svg);background-size:100% 58px;background-repeat:no-repeat;border-radius:5px 5px 0 0;color:#86919e;display:flex;justify-content:left;font-size:20px;height:58px;inset-inline-start:495px;cursor:pointer;position:absolute;top:calc( 50% + 24px);width:15px;z-index:15;transition-property:inset-inline-start, width;transition-duration:0.15s;transition-timing-function:ease-in-out}.wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle-icon:hover{color:#3c434a}.wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle-icon:hover i{inset-inline-start:-6px}.rtl .wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle-icon{transform:scale(-1)}.wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle-icon i{inset-inline-start:-4px;position:relative;font-size:16px;transition-property:transform, inset-inline-start;transition-duration:0.15s;transition-timing-function:ease-in-out}.wpforms-panel-sidebar-content .wpforms-panel-content-wrap{inset-inline-start:495px}.wpforms-panel-sidebar-content .wpforms-panel-sidebar{background-color:#ebf3fc;bottom:0;inset-inline-start:95px;overflow:auto;position:fixed;top:calc( 76px + var( --wpforms-admin-bar-height ));width:400px}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar-toggle-vertical-line{position:absolute;border-inline-end:3px solid #ebf3fb;top:calc( 76px + var( --wpforms-admin-bar-height ));height:100%;inset-inline-start:95px;z-index:0;cursor:pointer;transition-property:z-index;transition-duration:0.15s;transition-timing-function:ease-in-out}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar-toggle-vertical-line:hover{z-index:15}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar-toggle-icon{justify-content:center;inset-inline-start:95px}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar-toggle-icon i{inset-inline-start:-1.5px;transform:rotate(180deg)}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar,#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar .wpforms-tabs{inset-inline-start:-305px}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-content-wrap{inset-inline-start:95px}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar-toggle:hover .wpforms-panel-sidebar-toggle-vertical-line{z-index:15}#wpforms-panel-fields .wpforms-panel-sidebar-content.wpforms-panel-sidebar-closed .wpforms-panel-sidebar-toggle:hover .wpforms-panel-sidebar-toggle-icon{width:18px}.wpforms-panel-corrupted-data .wpforms-panel-content-wrap{inset-inline-start:95px}.wpforms-panel-corrupted-data .wpforms-builder-preview-corrupted-data-content .wpforms-builder-corrupted-data-title{border-bottom:1px solid #dcdcde;padding-bottom:30px;margin:0 0 15px 0}.wpforms-panel-corrupted-data .wpforms-builder-preview-corrupted-data-content .wpforms-builder-corrupted-data-title h2{font-size:28px;font-weight:600;line-height:28px;margin:0 !important;padding:0}.wpforms-panel-corrupted-data .wpforms-builder-preview-corrupted-data-content p{color:#3c434a;font-size:15px;font-weight:400;line-height:22px;margin:0}.wpforms-panel-field{margin-bottom:20px;max-width:450px}.wpforms-panel-field.wide,.wpforms-panel-field.wpforms-panel-field-tinymce,.wpforms-panel-field.wpforms-panel-field-warning,.wpforms-panel-field[id$="-redirect-wrap"]{max-width:800px}.wpforms-panel-field input[type=text],.wpforms-panel-field textarea{width:100%}.wpforms-panel-field input[type=number]{width:20%}.wpforms-panel-field select{max-width:100%;width:100%}.wpforms-panel-field input[type=number]{height:auto}.wpforms-panel-field .row{clear:both;display:block;margin-bottom:6px;width:100%}.wpforms-panel-field label{display:block;font-size:14px;font-weight:400;margin:0 0 10px 0;vertical-align:text-top}.wpforms-panel-field label.inline{display:inline-block;font-weight:400;margin:0 0 0 10px}.wpforms-panel-field p{font-size:14px;margin:0}.wpforms-panel-field p.note{color:#6a6f76;font-size:12px;margin:5px 0 0 0}.wpforms-panel-field-anti-spam-disallowed-keys textarea{height:200px}.wpforms-panel-field .wpforms-panel-field-after{color:#6a6f76;margin-left:10px}.wpforms-panel-field.wpforms-panel-field-select label .wpforms-badge{margin-left:10px;vertical-align:middle}.wpforms-panel-fields-group .wpforms-panel-fields-group-title{font-size:16px;font-weight:600;line-height:19px;margin-bottom:5px}.wpforms-panel-fields-group .wpforms-panel-fields-group-description{color:#6a6f76;font-size:14px;line-height:17px;margin-bottom:20px}.wpforms-panel-fields-group .wpforms-panel-fields-group-inner{margin-bottom:20px}.wpforms-panel-fields-group .wpforms-panel-fields-group-border-top{border-top:1px solid #dcdcde;margin-bottom:20px;margin-top:20px}.wpforms-panel-fields-group .wpforms-panel-fields-group-border-bottom{border-top:1px solid #dcdcde;margin-bottom:20px;margin-top:20px}.wpforms-panel-fields-group.wpforms-builder-notifications-advanced .wpforms-panel-fields-group-border-top{margin:0 20px 10px}.wpforms-panel-fields-group.wpforms-builder-notifications-advanced.unfoldable .wpforms-panel-fields-group-title{padding:10px 20px}.wpforms-panel-fields-group.wpforms-builder-notifications-advanced.unfoldable .wpforms-panel-fields-group-title i{right:20px}.wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-border-top{margin-bottom:10px}.wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-title{cursor:pointer;font-size:16px;font-weight:600;margin-bottom:10px;padding:10px 0;position:relative}.wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-title i{color:#b0b2b3;position:absolute;right:0;top:calc( 50% - 7px);transition-property:transform;transition-duration:0.15s;transition-timing-function:ease-in}.wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-title i::before{content:"\f105"}.wpforms-panel-fields-group.unfoldable.opened .wpforms-panel-fields-group-title i{transform:rotate(90deg)}.wpforms-panel-content-section-general .wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-title{margin-bottom:0;padding-bottom:0}.wpforms-panel-content-section-general .wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-title i{top:calc( 50% - 2px)}.wpforms-panel-content-section-general .wpforms-panel-fields-group.unfoldable.opened .wpforms-panel-fields-group-title{margin-bottom:10px;padding:10px 0}.wpforms-panel-content-section-general .wpforms-panel-fields-group.unfoldable.opened .wpforms-panel-fields-group-title i{top:calc( 50% - 7px)}.rtl .wpforms-panel-fields-group.wpforms-builder-notifications-advanced .wpforms-panel-fields-group-title i{left:20px;right:auto}.rtl .wpforms-panel-fields-group .wpforms-panel-fields-group-title i{left:0;right:auto;transform:rotate(180deg)}.rtl .wpforms-panel-field .wpforms-panel-field-after{margin-left:0;margin-right:10px}.rtl .wpforms-panel-field label.inline{margin:0 10px 0 0}.wpforms-panel-sidebar-section{border-bottom:1px solid #ced7e0;color:#3c434a;display:block;font-size:16px;height:75px;line-height:18px;margin:0;outline:0;padding:17px 15px 17px 20px;position:relative;text-decoration:none}.wpforms-panel-sidebar-section:hover{background-color:#e0e8f0;color:#3c434a}.wpforms-panel-sidebar-section.icon{padding-block:28px;padding-inline-end:15px;padding-inline-start:79px}.wpforms-panel-sidebar-section.education-modal{opacity:.5}.wpforms-panel-sidebar-section.education-modal .wpforms-panel-sidebar-recommended{margin-inline-start:5px}.wpforms-panel-sidebar-section.default{display:none}.wpforms-panel-sidebar-section.active,.wpforms-panel-sidebar-section.active:hover{background-color:#036aab;color:#ffffff}.wpforms-panel-sidebar-section .fa-angle-right{color:#b0b6bd;float:inline-end;font-size:16px;line-height:16px;text-align:center;margin-inline-start:10px;margin-block-start:2px}.rtl .wpforms-panel-sidebar-section .fa-angle-right{transform:scale(-1, 1)}.wpforms-panel-sidebar-section .fa-check-circle-o{color:transparent;float:inline-end;margin-inline-start:20px}.wpforms-panel-sidebar-section .fa-check-circle-o:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23B0B6BD'%3E%3Cdefs/%3E%3Cpath d='M8 .25a7.75 7.75 0 100 15.5A7.75 7.75 0 008 .25zm0 1.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm4.38 4.1l-.72-.72c-.13-.16-.38-.16-.54 0L6.72 9.5 4.84 7.62a.36.36 0 00-.53 0l-.72.7c-.12.15-.12.4 0 .52l2.85 2.88c.15.15.37.15.53 0l5.4-5.35c.13-.15.13-.4 0-.53z'/%3E%3C/svg%3E");background-repeat:no-repeat}.wpforms-panel-sidebar-section.active .fa-angle-right{color:#ffffff}.wpforms-panel-sidebar-section.active .fa-check-circle-o:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23fff'%3E%3Cdefs/%3E%3Cpath d='M8 .25a7.75 7.75 0 100 15.5A7.75 7.75 0 008 .25zm0 1.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm4.38 4.1l-.72-.72c-.13-.16-.38-.16-.54 0L6.72 9.5 4.84 7.62a.36.36 0 00-.53 0l-.72.7c-.12.15-.12.4 0 .52l2.85 2.88c.15.15.37.15.53 0l5.4-5.35c.13-.15.13-.4 0-.53z'/%3E%3C/svg%3E")}.wpforms-panel-sidebar-section.active img{border-color:#005387}.wpforms-panel-sidebar-section img{border:1px solid #b0b6bd;border-radius:4px;inset-inline-start:20px;position:absolute;top:15px;width:44px}.wpforms-panel-sidebar-section .wpforms-panel-sidebar-recommended{background-color:#00a32a;border-radius:3px;color:#ffffff;font-size:9px;font-weight:700;line-height:1;padding:4px 5px 3px;margin-inline-end:10px;display:inline-block;text-transform:uppercase}.wpforms-panel-sidebar-section .wpforms-panel-sidebar-recommended i{opacity:0.8}.wpforms-panel-content-section{display:none}.wpforms-panel-content-section .illustration{height:260px;margin:0 auto 30px auto;width:350px}.wpforms-panel-content-section .illustration.illustration-marketing{background:url("../../images/builder/illustration-marketing.svg") no-repeat center center;background-size:313px 260px}.wpforms-panel-content-section .illustration.illustration-payments{background:url("../../images/builder/illustration-payments.svg") no-repeat center center;background-size:269px 255px}.wpforms-panel-content-section-title{border-bottom:1px solid #dcdcde;font-size:28px;font-weight:600;line-height:28px;margin-bottom:30px;padding:0 0 30px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.wpforms-panel-content-section-title button,.wpforms-panel-content-section-title .button{background-color:#036aab;border:none;border-radius:4px;box-shadow:none;color:#ffffff;cursor:pointer;font-size:14px;font-weight:600;height:auto;line-height:17px;padding:10px 15px;text-decoration:none;appearance:none;-webkit-appearance:none}.wpforms-panel-content-section-title button:hover,.wpforms-panel-content-section-title button:focus,.wpforms-panel-content-section-title .button:hover,.wpforms-panel-content-section-title .button:focus{background-color:#215d8f;color:#ffffff;box-shadow:none}.wpforms-panel-content-section-title button i,.wpforms-panel-content-section-title .button i{margin:0 10px 0 0}.wpforms-panel-content-section-title>a>i:before{cursor:pointer}.wpforms-panel-content-section-title .wpforms-help-tooltip{font-size:24px !important;vertical-align:1px}.wpforms-panel-content-section-description{border-bottom:1px solid #dcdcde;font-size:14px;font-weight:400;line-height:20px;margin-bottom:20px;overflow:hidden;padding-bottom:20px;position:relative;transition-property:all;transition-duration:0.25s;transition-timing-function:ease-in-out}.wpforms-panel-content-section-description.out{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0}.wpforms-panel-content-section-description p{line-height:20px;margin-bottom:0;margin-inline-end:30px}.wpforms-panel-content-section-description p:not(:first-of-type){margin-top:20px}.wpforms-panel-content-section-description .wpforms-dismiss-button{position:absolute;inset-inline-end:-3px;top:-3px}.wpforms-panel-content-section-default{position:relative}.wpforms-panel-content-section-default::after{background-image:url("../../images/builder/default-arrow.svg");background-repeat:no-repeat;background-size:97px 83px;content:"";height:83px;inset-inline-start:0;position:absolute;top:0;width:97px}.rtl .wpforms-panel-content-section-default::after{transform:scale(-1, 1)}.wpforms-panel-content-section-default,.wpforms-panel-content-section-info{align-content:center;min-height:calc( 100vh - var( --wpforms-admin-bar-height ) - 195px);padding:50px 0;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.wpforms-panel-content-section-default h5,.wpforms-panel-content-section-info h5{color:#3c434a;font-size:24px;font-weight:600;line-height:normal;margin:0 auto 10px auto;max-width:600px}.wpforms-panel-content-section-default p,.wpforms-panel-content-section-info p{color:#6a6f76;font-size:16px;margin:0 auto 20px auto;max-width:600px}.wpforms-panel-content-section-default p:last-of-type,.wpforms-panel-content-section-info p:last-of-type{margin:0 auto 0 auto}.wpforms-panel-content-section-default .wpforms-btn,.wpforms-panel-content-section-info .wpforms-btn{margin:20px auto}.wpforms-panel-field:last-child,.wpforms-builder-settings-block:last-child{margin-bottom:0 !important}.wpforms-panel-content-section-tabs-content-tab{display:none}.wpforms-panel-content-section-tabs-content-tab-active{display:block}.wpforms-panel-content-section-title .wpforms-toggle-control .wpforms-toggle-control-icon{width:48px;height:28px;border-radius:14px}.wpforms-panel-content-section-title .wpforms-toggle-control .wpforms-toggle-control-icon:after{width:22px;height:22px;top:3px;inset-inline-start:3px}.wpforms-panel-content-section-title .wpforms-toggle-control input[type=checkbox]:checked+label.wpforms-toggle-control-icon:after{inset-inline-start:calc(100% - 22px - 3px)}.wpforms-panel-content-section:has(.wpforms-panel-content-section-title+.wpforms-panel-content-section-tabs) .wpforms-panel-content-section-title{border-bottom:none;margin:0}.wpforms-panel-content-section:has(.wpforms-panel-content-section-title+.wpforms-panel-content-section-tabs) .wpforms-panel-content-section-tabs-content{padding:30px 0}.wpforms-panel-content-section-tabs-list{padding:0 30px;margin-left:-30px;margin-right:-30px;display:flex;align-items:center;gap:20px;font-weight:500;background-color:#f6f7f7;color:#6a6f76}.wpforms-panel-content-section-tabs-list a{text-decoration:none;color:inherit;display:block;line-height:18px;padding:10px 0;border-top:2px solid transparent;border-bottom:2px solid transparent}.wpforms-panel-content-section-tabs-list .wpforms-panel-content-section-tabs-list-item{margin:0}.wpforms-panel-content-section-tabs-list .wpforms-panel-content-section-tabs-list-item:hover{color:#3c434a}.wpforms-panel-content-section-tabs-list .wpforms-panel-content-section-tabs-list-item-active{color:#3c434a}.wpforms-panel-content-section-tabs-list .wpforms-panel-content-section-tabs-list-item-active a{border-bottom-color:#e27730}.wpforms-panel-content-section-tabs-list .wpforms-panel-content-section-tabs-list-item-end{margin-inline-start:auto}.wpforms-panel-content-section-tabs-list .wpforms-help{color:#a7aaad;border:none;line-height:20px;font-weight:500;padding:0}.wpforms-panel-content-section-tabs-list .wpforms-help i{margin-inline-end:7px !important}.wpforms-panel-content-section-tabs-list .wpforms-help i:before{font-size:16px;position:relative;top:1px}.wpforms-panel-content-section-tabs-list .wpforms-help:hover{background:transparent}.toggle-unfoldable-cont,.toggle-smart-tag-display{color:#86919e;float:inline-end;font-size:12px;margin-inline-end:2px;text-decoration:none;text-align:end;margin-inline-start:auto;max-width:150px}.toggle-unfoldable-cont:hover,.toggle-smart-tag-display:hover{color:#6a6f76}.toggle-unfoldable-cont:hover span,.toggle-smart-tag-display:hover span{text-decoration:underline}.toggle-unfoldable-cont i,.toggle-smart-tag-display i{font-size:14px;margin:0 5px}.unfoldable-cont{display:none;margin:0 2px 10px 1px}.unfoldable-cont .heading{font-size:14px;font-weight:600;margin:0 0 5px 0;display:flex;width:100%;align-items:flex-end}.unfoldable-cont .heading a{color:#86919e;display:inline-block;font-size:12px;font-weight:400;text-decoration:none;padding-inline-start:3px;margin-inline-start:auto;text-align:end;line-height:16px;margin-bottom:3px}.unfoldable-cont .heading a:hover{text-decoration:underline}.unfoldable-cont ul{background-color:#ffffff;border:1px solid #b0b6bd;border-radius:4px;display:none;margin:1px 1px 10px 1px !important;overflow:hidden;width:100% !important}.unfoldable-cont li{border-bottom:1px solid #dcdcde;list-style:none;margin:0 !important;padding:0 !important}.unfoldable-cont li:last-child{border-bottom:none}.unfoldable-cont li a{color:#215d8f;display:block;font-size:14px;line-height:17px;padding:10px;text-decoration:none}.unfoldable-cont li a:hover{background-color:#f6f7f7;color:#036aab;text-decoration:none}.unfoldable-cont textarea{border-radius:4px;color:#3c434a;display:block;font-size:14px;height:85px;line-height:21px;padding:8px 10px;width:100% !important}.unfoldable-cont button.wpforms-btn{margin-inline-start:1px;margin-top:10px}.wpforms-field-map-table{margin:0 0 10px 0;max-width:1040px}.wpforms-field-map-table h3{color:#3c434a;margin:0 0 8px 0}.wpforms-field-map-table table{width:100%;border-collapse:collapse}.wpforms-field-map-table table td{padding:0 10px 10px 0}.wpforms-field-map-table table td select,.wpforms-field-map-table table td input:not([type=checkbox]):not([type=radio]){max-width:100%;width:100% !important}.wpforms-field-map-table table td.key{width:50%}.wpforms-field-map-table table td.field{width:calc( 50% - 76px)}.wpforms-field-map-table table td.actions{width:42px}.wpforms-field-map-table table tr td:last-child{padding-right:0}.wpforms-field-map-table .actions i{display:inline-block;width:auto;font-size:16px}.wpforms-field-map-table .actions .remove{color:#d63638;margin-left:6px}.wpforms-field-map-table .actions .remove:hover{color:#ee5c5c}.wpforms-field-map-table tr:first-of-type .remove{display:none}.wpforms-builder-dropdown-list{position:absolute;display:flex;flex-direction:column;font-size:14px;font-style:normal;font-weight:400;z-index:100;width:370px;background:#ffffff;border-radius:4px;border:1px solid #6a6f76;box-shadow:0 4px 10px 0 rgba(0,0,0,0.15);visibility:visible;overflow:hidden;transition:visibility 0.05s, opacity 0.05s ease-in}.wpforms-builder-dropdown-list.closed{opacity:0;visibility:hidden}.wpforms-builder-dropdown-list .title{color:#3c434a;background:#f6f7f7;border-bottom:1px solid #dcdcde;padding:10px 12px;font-weight:500;text-decoration:none;cursor:default}.wpforms-builder-dropdown-list ul{display:flex;flex-direction:column;max-height:170px;overflow-x:hidden;overflow-y:auto}.wpforms-builder-dropdown-list ul li{display:flex;flex-direction:row;flex-shrink:0;gap:10px;justify-content:space-between;padding:10px 12px;background:#ffffff;margin:0;border-bottom:1px solid #e8e9e9;cursor:pointer;color:#6a6f76}.wpforms-builder-dropdown-list ul li:hover{color:#ffffff;background:#036aab}.wpforms-builder-dropdown-list ul li:hover .grey{color:#ffffff}.wpforms-builder-dropdown-list ul li .grey{color:#6a6f76}.wpforms-builder-dropdown-list .wpforms-builder-dropdown-list-search-container{position:relative;padding:10px;border-bottom:1px solid #dcdcde}.wpforms-builder-dropdown-list .wpforms-builder-dropdown-list-search-container input{width:100%}.wpforms-builder-dropdown-list .wpforms-builder-dropdown-list-search-container input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.wpforms-builder-dropdown-list .wpforms-builder-dropdown-list-search-container .wpforms-builder-dropdown-list-search-close{display:none;position:absolute;inset-inline-end:20px;top:50%;transform:translateY(-50%);cursor:pointer;color:#b0b2b3;font-size:16px}.wpforms-builder-dropdown-list .wpforms-builder-dropdown-list-search-container .wpforms-builder-dropdown-list-search-close.active{display:block}.wpforms-builder-dropdown-list .wpforms-builder-dropdown-list-search-container .wpforms-builder-dropdown-list-search-close:hover{color:#86919e}.wpforms-builder-dropdown-list .wpforms-no-results{display:none;padding:10px;color:#6a6f76}.wpforms-field-option-row .wpforms-builder-dropdown-list{left:-5px;width:auto;right:-5px}.wpforms-choices-list{border:1px solid #c3c4c7;border-radius:4px;max-height:177px;overflow-y:auto}.wpforms-choices-list .checkbox-item{display:flex;align-items:center}.wpforms-choices-list .checkbox-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.wpforms-choices-list .checkbox-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.wpforms-choices-list .checkbox-item:nth-child(odd){background-color:#f6f7f7}.wpforms-choices-list .checkbox-item:hover{background-color:#e8e9e9}.wpforms-choices-list .checkbox-item input[type="checkbox"]{display:none}.wpforms-choices-list .checkbox-item input[type="checkbox"]:focus+label::before{outline:2px solid #79c2f4;outline-offset:1px}.wpforms-choices-list .checkbox-item input[type="checkbox"]:checked+label::before{background-color:#036aab;border-color:#036aab;content:'✓';color:#ffffff;font-size:12px;font-weight:bold;text-align:center;line-height:16px}.wpforms-choices-list .checkbox-item input[type="checkbox"]:indeterminate+label::before{background-color:#0399ed;border-color:#0399ed;content:'-';color:#ffffff;font-size:14px;font-weight:bold;text-align:center;line-height:14px}.wpforms-choices-list .checkbox-item label{position:relative;padding:10px 0 10px 0;padding-inline-start:calc(18px + 10px + 10px);padding-inline-end:10px;cursor:pointer;display:inline-block;line-height:1.25rem;color:#1d2327;flex-grow:1;margin:unset}.wpforms-choices-list .checkbox-item label::before{content:"";position:absolute;inset-inline-start:10px;width:18px;height:18px;border:1px solid #c3c4c7;border-radius:4px;background-color:#ffffff;transition:background-color 0.2s ease, border-color 0.2s ease}.wpforms-chocolate-choices{display:grid;grid-template-columns:repeat(7, 1fr);gap:10px}.wpforms-chocolate-choices .choice-item{position:relative;height:32px}.wpforms-chocolate-choices .choice-item input[type="checkbox"]{opacity:0;position:absolute;width:0;height:0;cursor:pointer}.wpforms-chocolate-choices .choice-item input[type="checkbox"]:checked+label{background-color:#036aab;color:#ffffff;border-color:#036aab}.wpforms-chocolate-choices .choice-item input[type="checkbox"]:checked+label:hover{background-color:#215d8f;border-color:#215d8f}.wpforms-chocolate-choices .choice-item input[type="checkbox"]:focus-visible+label{outline:2px solid #4285f4;outline-offset:2px}.wpforms-chocolate-choices .choice-item label{display:flex;justify-content:center;align-items:center;text-align:center;width:100%;height:100%;padding:0.5rem;border:1px solid #c3c4c7;border-radius:4px;cursor:pointer;transition:background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out;user-select:none;box-sizing:border-box;background-color:#ffffff;color:#1d2327;font-size:0.875rem;line-height:1.2;word-break:break-word}.wpforms-chocolate-choices .choice-item label:hover{background-color:#f3f4f6}.wpforms-larger-icon-choice{position:relative}.wpforms-larger-icon-choice input[type="radio"]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.wpforms-larger-icon-choice input[type="radio"]:focus-visible+label{outline:3px solid #79c2f4;outline-offset:3px;border-color:#0399ed}.wpforms-larger-icon-choice input[type="radio"]:checked+label{color:#036aab;box-shadow:0 0 0 1px currentColor;border-color:currentColor;background-color:#f1f6fa}.wpforms-larger-icon-choice input[type="radio"]:checked+label span{color:inherit}.wpforms-larger-icon-choice input[type="radio"]:checked+label svg path{fill:currentColor}.wpforms-larger-icon-choice label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;height:120px;border-radius:6px;border:1px solid #c3c4c7;padding:20px;cursor:pointer;transition:border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;text-align:center;background-color:#ffffff;color:#a7aaad}.wpforms-larger-icon-choice label svg{height:32px}.wpforms-larger-icon-choice label svg path{fill:currentColor}.wpforms-larger-icon-choice label:hover{color:#6a6f76;box-shadow:0 0 0 1px currentColor;border-color:currentColor;background-color:#f6f7f7}.wpforms-larger-icon-choice label span{color:#3c434a;font-weight:500} diff --git a/wp-content/plugins/wpforms-lite/assets/css/builder/content-editor.min.css b/wp-content/plugins/wpforms-lite/assets/css/builder/content-editor.min.css new file mode 100644 index 0000000..072dacb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/builder/content-editor.min.css @@ -0,0 +1 @@ +.mce-content-body.wpforms-content-field-editor-body{font-family:sans-serif;color:#444444;background-color:#ffffff;word-break:break-word;font-size:16px;line-height:22px}.mce-content-body.wpforms-content-field-editor-body h1,.mce-content-body.wpforms-content-field-editor-body h2,.mce-content-body.wpforms-content-field-editor-body h3,.mce-content-body.wpforms-content-field-editor-body h4,.mce-content-body.wpforms-content-field-editor-body h5,.mce-content-body.wpforms-content-field-editor-body h6{margin:20px 0;padding:0;clear:unset}.mce-content-body.wpforms-content-field-editor-body h1:first-child,.mce-content-body.wpforms-content-field-editor-body h2:first-child,.mce-content-body.wpforms-content-field-editor-body h3:first-child,.mce-content-body.wpforms-content-field-editor-body h4:first-child,.mce-content-body.wpforms-content-field-editor-body h5:first-child,.mce-content-body.wpforms-content-field-editor-body h6:first-child{margin-top:0}.mce-content-body.wpforms-content-field-editor-body h1{font-size:32px;line-height:40px}.mce-content-body.wpforms-content-field-editor-body h2{font-size:28px;line-height:36px}.mce-content-body.wpforms-content-field-editor-body h3{font-size:24px;line-height:32px}.mce-content-body.wpforms-content-field-editor-body h4{font-size:20px;line-height:28px}.mce-content-body.wpforms-content-field-editor-body h5{font-size:18px;line-height:26px}.mce-content-body.wpforms-content-field-editor-body h6{font-size:16px;line-height:24px;text-transform:uppercase}.mce-content-body.wpforms-content-field-editor-body p,.mce-content-body.wpforms-content-field-editor-body blockquote,.mce-content-body.wpforms-content-field-editor-body pre,.mce-content-body.wpforms-content-field-editor-body table{margin:0 0 20px 0}.mce-content-body.wpforms-content-field-editor-body li{margin:0 0 10px 0}.mce-content-body.wpforms-content-field-editor-body a{text-decoration:underline}.mce-content-body.wpforms-content-field-editor-body a:hover{text-decoration:none}.mce-content-body.wpforms-content-field-editor-body code,.mce-content-body.wpforms-content-field-editor-body pre{font-family:monospace;overflow:auto}.mce-content-body.wpforms-content-field-editor-body del{text-decoration:line-through}.mce-content-body.wpforms-content-field-editor-body ins{text-decoration:underline}.mce-content-body.wpforms-content-field-editor-body small{font-size:smaller}.mce-content-body.wpforms-content-field-editor-body dt{margin:5px 0}.mce-content-body.wpforms-content-field-editor-body dd{margin-left:25px}.mce-content-body.wpforms-content-field-editor-body abbr,.mce-content-body.wpforms-content-field-editor-body acronym{text-decoration:underline dotted}.mce-content-body.wpforms-content-field-editor-body ul{list-style:disc outside none !important;padding-inline-start:29px !important;margin-bottom:20px !important}.mce-content-body.wpforms-content-field-editor-body ul ul{list-style-type:circle !important;margin-top:10px !important;margin-bottom:0 !important}.mce-content-body.wpforms-content-field-editor-body ul ul ul{list-style-type:square !important}.mce-content-body.wpforms-content-field-editor-body ul ol{margin-top:10px;margin-bottom:0}.mce-content-body.wpforms-content-field-editor-body ul li{list-style:inherit !important;margin-bottom:10px !important}.mce-content-body.wpforms-content-field-editor-body ol{list-style:decimal outside none;padding-inline-start:29px;margin-bottom:20px}.mce-content-body.wpforms-content-field-editor-body ol ol{margin-top:10px;margin-bottom:0}.mce-content-body.wpforms-content-field-editor-body ol ul{margin-top:10px !important;margin-bottom:0 !important}.mce-content-body.wpforms-content-field-editor-body ol li{list-style:inherit}.mce-content-body.wpforms-content-field-editor-body blockquote{border-left:4px solid rgba(0,0,0,0.15);padding-left:20px}.mce-content-body.wpforms-content-field-editor-body blockquote:before,.mce-content-body.wpforms-content-field-editor-body blockquote:after{display:none}.mce-content-body.wpforms-content-field-editor-body table{width:100%;border-collapse:collapse;word-break:normal}.mce-content-body.wpforms-content-field-editor-body table th,.mce-content-body.wpforms-content-field-editor-body table td{padding:0.5em;border:1px solid}.mce-content-body.wpforms-content-field-editor-body sup,.mce-content-body.wpforms-content-field-editor-body sub{font-size:smaller;line-height:calc( 100% + 11px)}.mce-content-body.wpforms-content-field-editor-body sup{vertical-align:super}.mce-content-body.wpforms-content-field-editor-body sub{vertical-align:sub}.mce-content-body.wpforms-content-field-editor-body h1,.mce-content-body.wpforms-content-field-editor-body h2,.mce-content-body.wpforms-content-field-editor-body h3,.mce-content-body.wpforms-content-field-editor-body h4,.mce-content-body.wpforms-content-field-editor-body h5,.mce-content-body.wpforms-content-field-editor-body h6{margin:10px 0;font-weight:600}.mce-content-body.wpforms-content-field-editor-body p{line-height:inherit}.mce-content-body.wpforms-content-field-editor-body img{vertical-align:top}.mce-content-body.wpforms-content-field-editor-body img{max-width:100%;height:auto}.mce-content-body.wpforms-content-field-editor-body .alignleft{float:left;margin:0 30px 20px 0}.mce-content-body.wpforms-content-field-editor-body .alignright{float:right;margin:0 0 20px 30px}.mce-content-body.wpforms-content-field-editor-body .aligncenter{display:block;clear:both;text-align:center;margin:0 auto 20px}.mce-content-body.wpforms-content-field-editor-body .alignnone{display:block;clear:both;margin:0 0 20px 0}.mce-content-body.wpforms-content-field-editor-body .wp-caption-dt,.mce-content-body.wpforms-content-field-editor-body .wp-caption-dd{margin:0}.mce-content-body.wpforms-content-field-editor-body .wp-caption{position:relative;left:auto;right:auto;transform:none;max-width:100%}.mce-content-body.wpforms-content-field-editor-body .wp-caption .wp-caption-text,.mce-content-body.wpforms-content-field-editor-body .wp-caption .wp-caption-dd{text-align:center;font-size:14px;margin-top:0.5em} diff --git a/wp-content/plugins/wpforms-lite/assets/css/challenge.min.css b/wp-content/plugins/wpforms-lite/assets/css/challenge.min.css new file mode 100644 index 0000000..39db29c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/challenge.min.css @@ -0,0 +1 @@ +#wpforms-welcome .challenge{border-radius:2px;box-shadow:0 0 50px 0 rgba(0,0,0,0.1);margin-bottom:30px;background:#444 url("../images/challenge/getting-started.png") center right no-repeat;background-size:contain}#wpforms-welcome .challenge .block{max-width:480px}#wpforms-welcome .challenge h1{color:#ffffff;text-align:left;margin:20px 0 22px}#wpforms-welcome .challenge h6{font-size:17px;font-weight:400;text-align:left;color:#cccccc;margin:0 0 34px}.wpforms-challenge{display:none;position:fixed;inset-inline-end:20px;bottom:0;width:230px;z-index:100110;border-top-left-radius:4px;border-top-right-radius:4px;box-shadow:0 0 30px rgba(0,0,0,0.15)}.wpforms-challenge p{font-size:14px;line-height:20px;margin:0 0 15px 0;color:#222222}.wpforms-challenge b{font-weight:600}.wpforms-challenge.frozen{pointer-events:none}.wpforms-challenge.wpforms-challenge-start{display:initial}.wpforms-challenge .wpforms-challenge-list-block{border-top-left-radius:4px;border-top-right-radius:4px;padding:26px 20px 20px 20px;background-color:white;overflow:hidden;position:relative;transition:all 0.3s;transition-timing-function:ease}.wpforms-challenge .wpforms-challenge-list-block .list-block-button{position:absolute;color:#b6b6b6;top:10px;cursor:pointer;width:16px;height:16px;background-size:16px 16px;background-position:center center;background-repeat:no-repeat;opacity:0.25;transition:0.3s;z-index:999}.wpforms-challenge .wpforms-challenge-list-block .list-block-button.toggle-list{display:none;inset-inline-end:30px;background-image:url(../images/challenge/chevron-circle-down-regular.svg)}.wpforms-challenge .wpforms-challenge-list-block .list-block-button.challenge-skip,.wpforms-challenge .wpforms-challenge-list-block .list-block-button.challenge-cancel{inset-inline-end:10px;background-image:url(../images/challenge/times-circle-regular.svg);color:#b6b6b6}.wpforms-challenge .wpforms-challenge-list-block .list-block-button:hover{opacity:0.5}.wpforms-challenge .wpforms-challenge-list-block.closed{padding:10px}.wpforms-challenge .wpforms-challenge-list-block.closed .list-block-button.toggle-list{transform:rotate(180deg)}.wpforms-challenge .wpforms-challenge-list-block.closed .wpforms-challenge-list{display:block}.wpforms-challenge .wpforms-challenge-list-block.closed .wpforms-challenge-list li{opacity:0;height:0;margin:0}.wpforms-challenge .wpforms-challenge-list-block.closed .wpforms-challenge-list .wpforms-challenge-item-completed{opacity:0 !important;height:0 !important}.wpforms-challenge .wpforms-challenge-list-block.closed .wpforms-challenge-list .wpforms-challenge-item-current{opacity:1;height:16px}.wpforms-challenge .wpforms-challenge-list-block.closed .wpforms-challenge-list .wpforms-challenge-item-current span:before{opacity:0;margin-left:-20px;transition:opacity 0s}.wpforms-challenge .wpforms-challenge-list-block.transition-back .wpforms-challenge-list li{transition:opacity 0.1s 0.2s, height 0.3s, margin 0.3s}.wpforms-challenge .wpforms-challenge-list-block.transition-back .wpforms-challenge-list li.wpforms-challenge-completed{transition:opacity 0.1s, height 0.3s, margin 0.3s}.wpforms-challenge .wpforms-challenge-list-block.transition-back .wpforms-challenge-list .wpforms-challenge-item-current span:before{transition:opacity 0.1s 0.2s}.wpforms-challenge .wpforms-challenge-list{list-style:none;margin:0;font-size:12px;line-height:16px;transition:all 0.3s;display:flex;flex-direction:column;gap:10px;justify-content:flex-start}.wpforms-challenge .wpforms-challenge-list li{transition:opacity 0.1s, height 0.3s, margin 0.3s;display:flex}.wpforms-challenge .wpforms-challenge-list li span:before{display:inline-block;font-family:FontAwesome;content:"\f1db";font-size:18px;color:#b6b6b6;margin-inline-end:8px;line-height:16px;vertical-align:bottom;border-radius:50%}.wpforms-challenge .wpforms-challenge-list li.wpforms-challenge-item-current{font-weight:bold;cursor:pointer}.wpforms-challenge .wpforms-challenge-list li.wpforms-challenge-item-current span:before{color:#df7739;content:'\f111';font-size:17.5px;line-height:1;text-indent:.5px}.wpforms-challenge .wpforms-challenge-list li.wpforms-challenge-item-completed{font-weight:initial;text-decoration:line-through;color:#777777}.wpforms-challenge .wpforms-challenge-list li.wpforms-challenge-item-completed span:before{color:#74ae5e;font-size:18px;background-color:white;content:"\f058"}.wpforms-challenge .wpforms-challenge-list li.wpforms-challenge-completed{opacity:0;height:0;margin-bottom:0;transition:opacity 0.1s 0.3s, height 0.3s, margin 0.3s}.wpforms-challenge .wpforms-challenge-list li.wpforms-challenge-completed span:before{opacity:0;margin-left:-20px}.wpforms-challenge .wpforms-challenge-list li .dashicons-yes{display:none;vertical-align:middle}.wpforms-challenge .wpforms-challenge-bar{background-color:#dddddd}.wpforms-challenge .wpforms-challenge-bar div{width:0;height:8px;border-radius:0;background-image:url(../images/challenge/bar-bg.png);background-size:auto 8px;background-repeat:repeat-x;animation:wpforms-challenge-bar-shift 1.5s linear infinite}@keyframes wpforms-challenge-bar-shift{0%{background-position-x:27px}100%{background-position-x:0}}.wpforms-challenge.paused .wpforms-challenge-bar div,.wpforms-challenge.wpforms-challenge-completed .wpforms-challenge-bar div{animation-play-state:paused}.wpforms-challenge.wpforms-challenge-completed .wpforms-challenge-block-timer p{color:#6ab255;opacity:1}.wpforms-challenge.wpforms-challenge-completed .wpforms-challenge-block-under-timer .wpforms-challenge-pause,.wpforms-challenge.wpforms-challenge-completed .wpforms-challenge-block-under-timer .wpforms-challenge-resume{display:none !important}.wpforms-challenge.wpforms-challenge-completed .wpforms-challenge-block-under-timer .wpforms-challenge-end{display:inline-block !important}.wpforms-challenge .wpforms-challenge-cancel,.wpforms-challenge .wpforms-challenge-skip{float:right;color:#909090;font-size:12px;font-weight:100}.wpforms-challenge .wpforms-btn{cursor:pointer;color:#ffffff;border-radius:2px}.wpforms-challenge .wpforms-btn-md{min-height:initial;font-size:11px;font-weight:600;line-height:15px;padding:5px 10px;border:none}.wpforms-challenge .wpforms-btn-orange{background-color:#df7739}.wpforms-challenge .wpforms-btn-orange:hover{background-color:#d06e2d}.wpforms-challenge .wpforms-btn-grey{background-color:#555555}.wpforms-challenge .wpforms-btn-grey:hover{background-color:#777777}.wpforms-challenge .wpforms-challenge-block-timer{padding:10px 0;background-color:#222222;box-sizing:border-box;display:flex;justify-content:center;gap:10px;align-items:center;line-height:20px}.wpforms-challenge .wpforms-challenge-block-timer img{width:40px;height:40px;border-radius:50%}.wpforms-challenge .wpforms-challenge-block-timer h3{font-size:15px;font-weight:600;color:#ffffff;margin:0}.wpforms-challenge .wpforms-challenge-block-timer p{font-size:14px;font-weight:300;color:#ffffff;opacity:0.6;margin:0}.wpforms-challenge .wpforms-challenge-block-under-timer{background-color:#2d2d2d;text-align:center;padding:10px;min-height:24.4px}@keyframes wpforms-challenge-dot-pulse{0%{box-shadow:0 0 0 0 rgba(223,119,57,0.6)}100%{box-shadow:0 0 0 10px rgba(223,119,57,0)}}span.wpforms-challenge-dot{display:inline-block;width:12px;height:12px !important;padding:0 !important;border:0 !important;border-radius:50%;background-color:#df7739;animation:wpforms-challenge-dot-pulse 1.5s infinite !important}span.wpforms-challenge-dot.wpforms-challenge-dot-step1{margin:0;margin-inline-start:20px;margin-inline-end:80px;position:absolute;inset-inline-end:1px}span.wpforms-challenge-dot.wpforms-challenge-dot-step2{margin-left:10px;vertical-align:-2px}span.wpforms-challenge-dot.wpforms-challenge-dot-step3{float:right;margin-top:5px}span.wpforms-challenge-dot.wpforms-challenge-dot-step3.wpforms-challenge-dot-completed{margin-top:2px;background:transparent}span.wpforms-challenge-dot.wpforms-challenge-dot-step4{margin-left:24px;vertical-align:middle}span.wpforms-challenge-dot.wpforms-challenge-dot-step5{margin:3px 10px}span.wpforms-challenge-dot.wpforms-challenge-dot-next{background-color:#3178a0;box-shadow:0 0 0 6px #eeeeee;animation:none !important}span.wpforms-challenge-dot.wpforms-challenge-dot-completed{background-color:#ffffff;width:16px !important;height:16px !important;box-shadow:none;position:relative;animation:none !important}span.wpforms-challenge-dot.wpforms-challenge-dot-completed.wpforms-challenge-dot-step1{position:absolute}span.wpforms-challenge-dot.wpforms-challenge-dot-completed:before{color:#74ae5e;font-size:18px;line-height:16px;width:14px;height:14px;background-color:#ffffff;content:"\f058";font-family:FontAwesome;position:absolute;border-radius:50%;left:0}.wp-editor-tools span.wpforms-challenge-dot.wpforms-challenge-dot-step5{margin-top:9px}.wpforms-challenge-tooltips{display:none}.wpforms-challenge-popup-container{display:none;background-color:rgba(112,128,144,0.6);height:100vh;width:100%;position:fixed;top:0;left:0;z-index:100100;overflow:hidden;overflow-y:scroll;transition:all .25s ease-out}.wpforms-challenge-popup{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);max-width:600px;border-radius:8px;overflow:hidden;background-color:white;box-shadow:0 0 40px 0 rgba(0,0,0,0.2);z-index:9999}.wpforms-challenge-popup-congrats{background:#fff url("../images/challenge/confetti.svg") repeat center}.wpforms-challenge-popup-header{width:100%;height:212px;border-top-left-radius:8px;border-top-right-radius:8px}.wpforms-challenge-popup-header-contact{background:#eee url("../images/challenge/popup-contact.png") no-repeat center;background-size:auto 57%}.wpforms-challenge-popup-footer{padding:40px;background:#f5f5f5}.wpforms-challenge-popup-footer h3{font-size:20px;line-height:24px;color:#2c3338;margin:0 0 20px}.wpforms-challenge-popup-footer h3 img{vertical-align:-4px;margin-left:2px}.wpforms-challenge-popup-footer p{font-weight:normal;font-size:16px;line-height:24px}.wpforms-challenge-popup-footer a.wpforms-challenge-popup-btn{margin-left:0 !important;background:#2271b1}.wpforms-challenge-popup-footer a.wpforms-challenge-popup-btn:hover{background:#215d8f}.wpforms-challenge-popup-content{padding:40px;-webkit-font-smoothing:antialiased}.wpforms-challenge-popup-content h3{color:#df7739;margin:0 0 10px 0;font-size:24px;font-weight:600;line-height:30px}.wpforms-challenge-popup-content h3 img{vertical-align:-6px;margin-left:6px;width:32px;height:32px}.wpforms-challenge-popup-content p{font-size:16px;margin:0 0 20px;color:#444444;line-height:28px}.wpforms-challenge-popup-content b{font-weight:600}.wpforms-challenge-popup-content .wpforms-challenge-contact-message{box-shadow:none;resize:none;margin-bottom:21px;width:100%;min-height:175px;padding:10px}.wpforms-challenge-popup-content label{font-size:13.8px;display:block;margin-bottom:23px}.wpforms-challenge-popup-content input[type=checkbox]{margin-right:8px}.wpforms-challenge-popup-content .rating-stars{color:#fdb72c;font-size:16px;font-weight:bold}.wpforms-challenge-popup-content select,.wpforms-challenge-popup-content input[type=text]{border-radius:4px;border:1px solid #d6d6d6;padding:8px 12px;width:320px;font-size:14px;line-height:21px;color:#777777;vertical-align:middle}.wpforms-challenge-popup-content select:focus,.wpforms-challenge-popup-content input[type=text]:focus{color:#777777}.wpforms-challenge-popup .wpforms-challenge-popup-close{display:block;width:24px;height:24px;font-size:24px;line-height:1;color:#a7aaad;position:absolute;right:0;margin:10px;background-color:#ffffff;border-radius:50%;cursor:pointer}.wpforms-challenge-popup .wpforms-challenge-popup-close:hover{color:#777777}.wpforms-challenge-popup .wpforms-challenge-popup-btn{display:inline-block;border-radius:4px;cursor:pointer;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;font-size:16px;font-weight:600;line-height:19px;padding:10px 20px;border:none;background-color:#df7739;color:#ffffff}.wpforms-challenge-popup .wpforms-challenge-popup-btn:hover{background-color:#b85a1b}.wpforms-challenge-popup .wpforms-challenge-popup-btn .dashicons-external{margin-left:6px}.wpforms-challenge-popup .wpforms-challenge-popup-btn:last-child{margin-left:20px}.wpforms-challenge-popup .wpforms-challenge-popup-btn.wpforms-challenge-popup-contact-btn{margin-left:0}.wpforms-challenge-popup .wpforms-challenge-popup-btn.wpforms-challenge-popup-rate-btn{margin-left:0}.wpforms-challenge-popup .wpforms-challenge-popup-btn:disabled{cursor:default;opacity:0.5}.wpforms-challenge-popup .wpforms-challenge-popup-btn:disabled:hover{background-color:#df7739}.wpforms-challenge-popup .wpforms-challenge-popup-flex{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:stretch}.wpforms-challenge-popup .wpforms-challenge-popup-flex *{margin:0 !important}.wpforms-challenge-popup.wpforms-challenge-popup-plain{border-radius:6px;max-width:550px;text-align:center}.wpforms-challenge-popup.wpforms-challenge-popup-plain .wpforms-challenge-popup-content{padding:60px 50px}.wpforms-challenge-popup.wpforms-challenge-popup-plain h3{text-align:center;font-weight:bold;font-size:24px;letter-spacing:0;color:#444444}.wpforms-challenge-popup.wpforms-challenge-popup-plain p{text-align:center;font-size:18px;letter-spacing:0;color:#777777}.wpforms-challenge-popup .wpforms-admin-popup-content{padding:60px 50px}@media all and (max-height: 900px){#wpforms-challenge-contact-popup{margin:50px 0 20px}}.wpforms-challenge-tooltip.tooltipster-sidetip{z-index:100099 !important}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:18px}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{top:0}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:18px}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{left:8px}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box{max-width:260px;background:white;border:none;border-radius:4px;box-shadow:0 5px 15px rgba(0,0,0,0.25)}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .tooltipster-content{color:#444444;padding:16px 20px 18px;text-align:center}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .tooltipster-content div *:first-child{margin-top:0 !important}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .tooltipster-content h3{font-size:16px;letter-spacing:0;line-height:18px;margin:0;color:#23282c}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .tooltipster-content p{font-size:14px;letter-spacing:0;line-height:18px;margin:10px 0 0;color:#444444}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .tooltipster-content a{color:#1d7bac}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .wpforms-challenge-done-btn{border-radius:3px;cursor:pointer;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;font-size:14px;font-weight:600;letter-spacing:0;padding:7px 18px;border:none;background-color:#df7739;color:#ffffff;display:block;margin:15px auto 0}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .wpforms-challenge-done-btn:hover{background-color:#b85a1b}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .wpforms-challenge-done-btn:disabled{cursor:default;opacity:0.5}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base .tooltipster-box .wpforms-challenge-done-btn:disabled:hover{background-color:#df7739}.wpforms-challenge-tooltip.tooltipster-sidetip .tooltipster-arrow-border{border:none}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base.tooltipster-top .tooltipster-arrow-background{border-top-color:white}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow-background{border-right-color:white}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:white}.wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-base.tooltipster-left .tooltipster-arrow-background{border-left-color:white}.wpforms-challenge-tooltip.tooltipster-sidetip.wpforms-hidden{display:none}.wpforms-builder-help-open .wpforms-challenge-frozen-tooltip.tooltipster-fade.tooltipster-show,.wpforms-builder-help-open .wpforms-challenge-tooltip.tooltipster-fade.tooltipster-show{opacity:0}.wpforms-ai-form-generator-active .wpforms-challenge-tooltip.tooltipster-fade.tooltipster-show{opacity:0}.wpforms-challenge-frozen-tooltip.tooltipster-fade.tooltipster-show{opacity:1;transition:opacity .5s ease-in-out;pointer-events:none}@media all and (max-width: 1023px){.wpforms-challenge-tooltip.tooltipster-sidetip,.wpforms-challenge{display:none !important}}.block-editor-page .edit-post-layout .components-notice-list>div{padding-left:50px}.block-editor-page .wpforms-challenge-dot-step5{position:absolute;top:75px;left:20px;z-index:9999}.block-editor-page .wpforms-challenge-tooltip.wpforms-challenge-tooltip-step5{width:260px !important;z-index:1000002 !important;margin-top:5px}.block-editor-page .wpforms-challenge-tooltip.wpforms-challenge-tooltip-step5.wpforms-challenge-tooltip-step5-hide{z-index:-1 !important}.block-editor-page .wpforms-challenge-tooltip.wpforms-challenge-tooltip-step5 .tooltipster-box{margin-top:10px}.block-editor-page .wpforms-challenge-tooltip.wpforms-challenge-tooltip-step5 .wpforms-challenge-tooltips-red-arrow{position:absolute;display:block;width:15px;height:42px;top:-65px;left:145px;background-image:url(../images/challenge/red-arrow.svg);background-size:15px 42px;background-repeat:no-repeat}.block-editor-page.is-fullscreen-mode .edit-post-layout .components-notice-list>div{padding-left:125px}.block-editor-page.is-fullscreen-mode .wpforms-challenge-dot-step5{left:75px}.block-editor-page.is-fullscreen-mode .wpforms-challenge-tooltip .wpforms-challenge-tooltips-red-arrow{left:105px}#wpforms-builder .wpforms-setup-title.core{display:inline-block;padding-right:15px;margin-right:0}.wpforms_page_wpforms-builder .wpforms-challenge{z-index:100099}.wpforms_page_wpforms-builder .wpforms-challenge-tooltip.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{left:0}.wpforms-invisible{opacity:0 !important}@media (max-width: 1024px){.wpforms-challenge,.wpforms-challenge *,.wpforms-challenge-dot,.wpforms-challenge-dot *,.wpforms-challenge-tooltips,.wpforms-challenge-tooltips *,.wpforms-challenge-tooltip,.wpforms-challenge-tooltip *,.wpforms-challenge-popup-container,.wpforms-challenge-popup-container *,#wpforms-welcome .challenge{display:none !important;visibility:hidden !important}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/choices.min.css b/wp-content/plugins/wpforms-lite/assets/css/choices.min.css new file mode 100644 index 0000000..f3ac9db --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/choices.min.css @@ -0,0 +1 @@ +div.wpforms-container .wpforms-form .choices{position:relative;margin-bottom:24px}div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{color:#999999}div.wpforms-container .wpforms-form .choices ::-moz-placeholder{color:#999999;opacity:1}div.wpforms-container .wpforms-form .choices ::placeholder{color:#999999}div.wpforms-container .wpforms-form .choices:focus{outline:none}div.wpforms-container .wpforms-form .choices:last-child{margin-bottom:0}div.wpforms-container .wpforms-form .choices.is-disabled .choices__inner,div.wpforms-container .wpforms-form .choices.is-disabled .choices__input{background-color:#bbbbbb;cursor:not-allowed;user-select:none}div.wpforms-container .wpforms-form .choices [hidden]{display:none !important}div.wpforms-container .wpforms-form .choices *{box-sizing:border-box}div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner{border-radius:0 0 4px 4px}div.wpforms-container .wpforms-form .choices[data-type*="select-one"]{cursor:pointer}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__inner{display:flex;flex-wrap:wrap;align-items:center;padding-top:0 !important}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input{display:block;width:calc(100% - 20px) !important;margin:10px !important;padding:7px 12px !important;box-sizing:border-box !important;border:1px solid #8c8f94 !important;border-radius:4px !important;background-color:#fff}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input:focus{border:1px solid #056aab !important;box-shadow:0 0 0 1px #056aab !important;outline:none !important}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;position:absolute;top:50%;inset-inline-end:0;margin-top:-10px;margin-inline-end:25px;height:20px;width:20px;border-radius:10em;opacity:.5}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{opacity:1}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{box-shadow:0 0 0 2px #036aab}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__item[data-value=''] .choices__button{display:none}div.wpforms-container .wpforms-form .choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}div.wpforms-container .wpforms-form .choices[data-type*="select-one"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:24px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input{padding:0 4px !important;max-width:100%;background-color:transparent;line-height:22px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-1.5px;pointer-events:none}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__inner{cursor:text}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{position:absolute;display:inline-block;vertical-align:baseline;margin-top:0;margin-bottom:0;margin-inline-start:5px;padding:0;background-color:transparent;background-image:url("../images/cross.svg");background-size:12px;background-position:center center;background-repeat:no-repeat;width:12px;height:12px;line-height:1;opacity:.75;border-radius:0;inset-inline-end:4px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:focus,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:focus{opacity:1}div.wpforms-container .wpforms-form .choices__inner{width:100%;background-color:#ffffff;padding:4px 6px 0;border:1px solid #8c8f94;overflow:hidden;border-radius:4px}div.wpforms-container .wpforms-form .choices__list{margin:0;padding-left:0;list-style:none}div.wpforms-container .wpforms-form .choices__list--single{display:inline-block;vertical-align:baseline;width:100%;padding:0 16px 0 4px;font-size:0.875em}div.wpforms-container .wpforms-form .choices__list--single .choices__item{width:100%;overflow:hidden;text-overflow:ellipsis;padding-inline-end:20px;white-space:nowrap;color:#2c3338}div.wpforms-container .wpforms-form .choices__list--single .choices__item[data-value='']{padding-inline-end:0}div.wpforms-container .wpforms-form .choices__list--multiple{display:inline;height:auto;overflow:auto}div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;position:relative;align-items:center;border-radius:2px;padding-block:4px;padding-inline:7px 20px;font-size:.75em;line-height:1;font-weight:400;margin:0 6px 4px 0;background-color:#036aab;border:1px solid #036aab;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 10px)}div.wpforms-container .wpforms-form .choices__list--multiple .choices__item.is-highlighted{background-color:#036aab}div.wpforms-container .wpforms-form .is-disabled .choices__list--multiple .choices__item{background-color:#bbbbbb;border:1px solid #bbbbbb}div.wpforms-container .wpforms-form .choices__list--dropdown{display:none;z-index:101;position:absolute;width:100%;background-color:#ffffff;border:1px solid #8c8f94;top:100%;margin-top:-1px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;overflow:hidden;overflow-wrap:break-word}div.wpforms-container .wpforms-form .choices__list--dropdown.is-active{display:block}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{position:relative;vertical-align:top;padding:10px;font-size:.875em}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f6f6f6}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__placeholder{display:none}div.wpforms-container .wpforms-form .is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form .choices__item{cursor:default}div.wpforms-container .wpforms-form .choices__item--selectable{cursor:pointer}div.wpforms-container .wpforms-form .choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}div.wpforms-container .wpforms-form .choices__heading{font-weight:600;font-size:.75em;text-transform:uppercase;padding:10px;border-top:1px solid #b4b6b9;border-bottom:1px solid #b4b6b9;color:#a6a6a6}.choices__group[data-value="hidden"]>div.wpforms-container .wpforms-form .choices__heading{display:none}div.wpforms-container .wpforms-form .choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}div.wpforms-container .wpforms-form .choices__button:focus{outline:none}div.wpforms-container .wpforms-form .choices__input{display:inline-block;background-color:transparent;margin:0 0 2px 0 !important;border:0 !important;border-radius:0 !important;min-height:20px !important;padding:2px 4px !important;height:auto !important;min-width:1ch;width:1ch;vertical-align:middle}div.wpforms-container .wpforms-form .choices__input::-webkit-search-cancel-button{display:none}div.wpforms-container .wpforms-form .choices__input--hidden{clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;min-width:auto !important;word-wrap:normal !important}div.wpforms-container .wpforms-form .choices .choices__inner input.choices__input:focus{outline:none !important;box-shadow:none !important;border:none !important}div.wpforms-container .wpforms-form .choices__placeholder{opacity:.5}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices.is-open.is-flipped .choices__inner{border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{border-radius:inherit}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"]:after{border:none;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E) no-repeat center;background-size:16px 16px;cursor:pointer;width:16px;height:16px;top:13px;right:8px;margin-top:0}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"].is-flipped:after{transform:rotate(180deg)}div.wpforms-container .wpforms-form .choices__list--dropdown{min-width:250px}div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="text"] .choices__button{border-left:1px solid rgba(0,0,0,0.25);cursor:not-allowed}div.wpforms-container .wpforms-form .choices ::placeholder,div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{opacity:1}div.wpforms-container .wpforms-form .choices{margin-bottom:0}body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:4px;padding-left:24px}body.rtl div.wpforms-container .wpforms-form .choices__list--single{padding-right:4px;padding-left:16px}body.rtl div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{text-align:right}body.rtl div.wpforms-container .wpforms-form .choices__input{padding-right:2px !important;padding-left:0 !important}body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,body.rtl div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{margin-inline-end:0;border-left:none}@media (min-width: 640px){body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/dashboard-widget.min.css b/wp-content/plugins/wpforms-lite/assets/css/dashboard-widget.min.css new file mode 100644 index 0000000..f60965c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/dashboard-widget.min.css @@ -0,0 +1 @@ +.wpforms-links{display:flex;padding:13px;padding-top:45px;align-items:center;gap:18px;border-top:1px solid #e8e9e9}.wpforms-links .wpforms-link{display:flex;align-items:center;gap:7px}.wpforms-links .wpforms-link{text-decoration:none;color:#6a6f76;line-height:normal}.wpforms-links .wpforms-link svg{width:auto;fill:#6a6f76;transition:fill 0.05s ease-in-out}.wpforms-links .wpforms-link-whats-new svg{height:17px}.wpforms-links .wpforms-link:hover{color:#2c3338}.wpforms-links .wpforms-link:hover svg{fill:#2c3338}.wpforms-dash-widget .wpforms-links{padding-top:13px}#wpforms_reports_widget_lite .inside,#wpforms_reports_widget_pro .inside{margin:0;padding:0}#wpforms_reports_widget_lite .wpforms-dash-widget-block h3,#wpforms_reports_widget_pro .wpforms-dash-widget-block h3{margin-bottom:0;font-weight:600;padding-top:1px}.wpforms-dash-widget .wpforms-dash-widget-content{position:relative}.wpforms-dash-widget button:focus{outline:none}.wpforms-dash-widget .wpforms-dash-widget-block{position:relative;padding:0 12px;margin-top:12px}#wpforms-entries-list .wpforms-dash-widget .wpforms-dash-widget-block:first-child{padding:0}#wpforms-entries-list .wpforms-dash-widget .wpforms-dash-widget-block:first-child h3{margin-top:0}#wpforms-entries-list .wpforms-dash-widget .wpforms-dash-widget-block:first-child .wpforms-dash-widget-settings{display:inline-block;float:right}.wpforms-dash-widget .wpforms-dash-widget-block.wpforms-dash-widget-block-title{background-color:#fafafa;margin-top:0;margin-bottom:-13px;padding-top:13px;padding-bottom:14px;display:flex;align-items:center;justify-content:space-between}.wpforms-dash-widget .wpforms-dash-widget-block h3{display:inline-block;line-height:2}.wpforms-dash-widget .wpforms-dash-widget-block p{margin-top:0;margin-bottom:0}.wpforms-dash-widget .wpforms-dash-widget-chart-block-container{position:relative}.wpforms-dash-widget #wpforms-dash-widget-chart-title{display:inline}#dashboard-widgets-wrap .wpforms-dash-widget #wpforms-dash-widget-chart-title{display:none}.wpforms-dash-widget .wpforms-dash-widget-settings #wpforms-dash-widget-timespan{color:#3c434a}.wpforms-dash-widget .wpforms-dash-widget-settings #wpforms-dash-widget-timespan:hover{color:#2271b1}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container{display:inline-block;position:relative;vertical-align:top;margin-left:7px}#wpforms-entries-list .wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container{margin-left:20px;margin-top:5px}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-button{background:#fafafa;color:#787c82;border-color:currentColor;padding:0 5px 0 6px}#wpforms-entries-list .wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-button{background-color:#fff}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-button:hover,.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-button:focus{color:#2271b1}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-button .dashicons{margin-top:4px}@media (max-width: 782px){.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-button .dashicons{margin-top:9px}}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu{top:auto;bottom:40px;display:none;position:absolute;background-color:#fff;width:160px;border-radius:3px;box-shadow:0 5px 15px rgba(0,0,0,0.15) !important;padding:10px;z-index:9999;right:0}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu.disabled *{cursor:not-allowed}#wpforms-entries-list .wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu,.postbox:first-child .wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu{top:40px;bottom:auto}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu .wpforms-dash-widget-settings-menu-wrap{border-bottom:1px solid #eee;line-height:2.4;font-size:13px;padding-bottom:5px}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu .wpforms-dash-widget-settings-menu-wrap h4{text-transform:uppercase !important;color:#3c434a !important;font-size:11px !important;font-weight:600 !important;line-height:13px !important;margin:0}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu .wpforms-dash-widget-settings-menu-wrap.color-scheme h4{margin-top:10px !important;margin-bottom:5px !important}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu .wpforms-dash-widget-settings-menu-wrap div{line-height:1.9}.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu button{margin-top:10px}.wpforms-dash-widget .wpforms-dash-widget-chart-block{border-bottom:1px solid #eee;height:291px;padding-bottom:12px;padding-inline-end:14px}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table{width:calc(100% + 24px);margin:0 -12px}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table tr.wpforms-dash-widget-form-active td .wpforms-dash-widget-single-chart-btn{display:none}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table tr.wpforms-dash-widget-form-active td #wpforms-dash-widget-reset-chart{display:block}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table tr.wpforms-dash-widget-form-active td:nth-child(1){border-left:3px solid #2271b1;font-weight:600;padding-left:9px}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table td{padding:10px 12px;background-color:#fff;border-top:1px solid #eee;font-size:14px}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table td:not(:first-child){text-align:right}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table td a.entry-list-link{text-decoration:none}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block table td a.entry-list-link:hover{color:#003d7e}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block .wpforms-dash-widget-forms-list-hidden-el{display:none}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block .wpforms-dash-widget-forms-more{background:#fff;display:block;margin:0 -12px;padding:9px 10px;line-height:1.6;border:none;border-top:1px solid #eee;width:calc(100% + 24px);cursor:pointer;text-align:left;color:#23282c;font-weight:600}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block .wpforms-dash-widget-forms-more:hover{color:#0073aa}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block .wpforms-dash-widget-forms-more:hover .dashicons{color:#0073aa}.wpforms-dash-widget .wpforms-dash-widget-forms-list-block .wpforms-dash-widget-forms-more .dashicons{float:right;color:#72777c}.wpforms-dash-widget .wpforms-dash-widget-recommended-plugin-block{display:flex;justify-content:space-between;align-items:center;padding:12px;border-top:1px solid #f3f3f3;color:#787c82;margin-top:0}.wpforms-dash-widget .wpforms-dash-widget-recommended-plugin-block strong{color:#3c434a}.wpforms-dash-widget .wpforms-dash-widget-recommended-plugin-block .sep{display:inline-block;margin:0 3px}.wpforms-dash-widget .wpforms-dash-widget-recommended-plugin-block .sep-vertical{color:#dddde0}.wpforms-dash-widget .wpforms-dash-widget-recommended-plugin-block p{margin:0}.wpforms-dash-widget .wpforms-dash-widget-recommended-plugin-block .action-links{display:inline-block}.wpforms-dash-widget .wpforms-dash-widget-dismiss-icon{border:0;color:#8c8f94;opacity:0.3;cursor:pointer;background:none;padding:0;margin:0}.wpforms-dash-widget .wpforms-dash-widget-dismiss-icon:hover{opacity:1}.wpforms-dash-widget .wpforms-dash-widget-dismiss-icon .dashicons{font-size:16px;height:1em;width:1em}.wpforms-dash-widget .wpforms-error{text-align:center}.wpforms-dash-widget .wpforms-error-no-data-chart{position:absolute;left:0;top:0;height:100%;width:100%;overflow:hidden;border-bottom:1px solid #f3f3f3;box-sizing:border-box;background:rgba(255,255,255,0);background:-moz-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgba(255,255,255,0)), color-stop(100%, white));background:-webkit-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-o-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-ms-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:radial-gradient(ellipse at center, rgba(255,255,255,0) 0%, white 100%)}.wpforms-dash-widget .wpforms-error-no-data-chart .wpforms-dash-widget-modal{position:absolute;top:calc(50% - 2em);left:50%;transform:translate(-50%, -50%);padding:1.5em 2em 2em 2em;box-shadow:0 0 25px 10px rgba(0,0,0,0.08);border-radius:3px;background-color:#fff;text-align:center;width:20em}.wpforms-dash-widget .wpforms-error-no-data-chart .wpforms-dash-widget-modal h2{padding:0;margin-bottom:5px;font-size:18px}.wpforms-dash-widget .wpforms-error-no-data-chart .wpforms-dash-widget-modal p{line-height:1.3}.wpforms-dash-widget .wpforms-error-no-data-forms-list{padding-top:12px;padding-bottom:24px}.wpforms-dash-widget .wpforms-dash-widget-block-no-forms{padding:20px 30px 30px;text-align:center}.wpforms-dash-widget .wpforms-dash-widget-block-no-forms .wpforms-dash-widget-block-sullie-logo{width:85px}.wpforms-dash-widget .wpforms-dash-widget-block-no-forms h2{font-size:16px;font-weight:600;padding:10px 0 0;line-height:1.3}.wpforms-dash-widget .wpforms-dash-widget-block-no-forms p{margin-top:8px;margin-bottom:20px}.wpforms-dash-widget .wpforms-dash-widget-block-no-forms a.button:first-of-type:not(:only-of-type){margin-right:9px}.wpforms-dash-widget .wpforms-dash-widget-modal{position:absolute;top:calc(50% - 2em);left:50%;transform:translate(-50%, -50%);padding:1.5em 2em 2em 2em;box-shadow:0 0 25px 10px rgba(0,0,0,0.08);border-radius:3px;background-color:#fff;text-align:center;width:20em}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade{position:absolute;left:0;top:0;height:100%;width:100%;overflow:hidden;border-bottom:1px solid #f3f3f3;box-sizing:border-box;background:rgba(255,255,255,0);background:-moz-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgba(255,255,255,0)), color-stop(100%, white));background:-webkit-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-o-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-ms-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:radial-gradient(ellipse at center, rgba(255,255,255,0) 0%, white 100%)}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-modal .wpforms-dash-widget-dismiss-chart-upgrade{position:absolute;width:16px;height:17px;right:5px;top:5px;color:#a0a5aa;text-decoration:none}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-modal .wpforms-dash-widget-dismiss-chart-upgrade .dashicons{width:16px;height:17px;font-style:normal;font-weight:normal;font-size:16px;line-height:17px}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-modal h2{margin-bottom:10px;font-size:20px;font-weight:600;color:#3c434a}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-modal p{margin:0 0 15px 0;color:#787c82;font-size:14px;line-height:18px}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-modal p:last-child{margin-bottom:0}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-upgrade-btn{background:#e27730;border-radius:3px;color:#fff;display:inline-block;padding:11px 15px;text-decoration:none;font-weight:600}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-upgrade-btn:hover,.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-upgrade-btn:focus{background-color:#b85a1b;color:#fff}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-upgrade-btn:focus{box-shadow:0 0 0 1px #fff, 0 0 0 3px #b85a1b;outline:0}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-site-link{color:#e27730;display:inline-block;margin-bottom:10px}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-block-upgrade .wpforms-dash-widget-site-link:hover{color:#b85a1b}.wpforms-dash-widget.wpforms-lite .wpforms-dash-widget-forms-list-block table td{padding-top:10px;padding-bottom:10px}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-reset-chart{border:0;color:#a0a5aa;vertical-align:baseline;cursor:pointer;background:none;padding:0 2px}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-reset-chart:hover{color:#d63638}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-reset-chart .dashicons{font-size:16px;height:1em;width:1em;margin-top:1px}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-forms-list-block table td.graph{padding:10px 0;width:40px}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-forms-list-block table button{cursor:pointer;height:24px;width:33px;padding:0;vertical-align:middle;margin:0 12px}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-forms-list-block table button.chart{background-color:white;color:#a7acb1;border:1px solid #a0a5aa;border-radius:3px;transition:border .1s ease-in}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-forms-list-block table button.chart:hover{border:1px solid currentColor;color:#2271b1}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-forms-list-block table button:hover{border-color:#666}.wpforms-dash-widget.wpforms-pro .wpforms-dash-widget-overlay{width:100%;position:absolute;top:0;right:0;bottom:0;left:0;background:#fff url(/wp-includes/images/spinner.gif) no-repeat center calc(50% - 12px);z-index:10}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect{width:100%;position:absolute;top:0;right:0;left:0;z-index:10;height:300px;background:rgba(255,255,255,0);background:-moz-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgba(255,255,255,0)), color-stop(100%, white));background:-webkit-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-o-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:-ms-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, white 100%);background:radial-gradient(ellipse at center, rgba(255,255,255,0) 0%, white 100%)}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect .wpforms-dash-widget-modal{border-radius:6px;padding:30px;min-width:calc( 100% - 200px);top:50%}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect img{width:40px;height:40px;margin:0 0 15px 0}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect h4{font-weight:600;font-size:20px;line-height:26px;margin-bottom:15px}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect p{font-weight:400;font-size:14px;line-height:18px;color:#787c82;margin:0}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect .wpforms-btn{background:#e27730;border-radius:3px;color:#ffffff;display:inline-block;font-weight:600;font-size:14px;line-height:20px;text-decoration:none;padding:10px 15px;margin-top:15px}.wpforms-dash-widget.wpforms-pro #wpforms-dash-widget-lite-connect .wpforms-btn:hover{background:#cd6622}.wpforms-hidden{display:none !important}.wpforms-dash-widget-no-graph.wpforms-dash-widget .wpforms-dash-widget-settings .wpforms-dash-widget-settings-container .wpforms-dash-widget-settings-menu{top:40px;bottom:auto} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/classic.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/classic.min.css new file mode 100644 index 0000000..d44cccb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/classic.min.css @@ -0,0 +1 @@ +body,.body{height:100% !important;margin:0;padding:0;width:100% !important;min-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased !important;-moz-osx-font-smoothing:grayscale !important}img{outline:none;text-decoration:none;-ms-interpolation-mode:bicubic;width:auto;max-width:100%;clear:both;display:block}a img{border:none}p{margin:0 0 10px 0}table{border-collapse:collapse;border-spacing:0}td{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;border-collapse:collapse !important}table,tr,td{padding:0;vertical-align:top}h1,h2,h3,h4,h5,h6{margin:0;padding:0}.ReadMsgBody,.ExternalClass{width:100%}.ExternalClass{width:100%}.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%}table,td{mso-table-lspace:0pt;mso-table-rspace:0pt}#outlook a{padding:0}img{-ms-interpolation-mode:bicubic}body,table,td,p,a,li,blockquote{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,table.body,h1,h2,h3,h4,h5,h6,p,td,th,a{color:#333333;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:normal;padding:0;margin:0;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}h1,h2,h3,h4,h5,h6{color:#444444;word-wrap:normal;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:bold;margin:0 0 7px 0;mso-line-height-rule:exactly;line-height:1.3;line-height:130%}h1.normal,h2.normal,h3.normal,h4.normal,h5.normal,h6.normal{font-weight:normal}h1{font-size:32px}h2{font-size:30px}h3{font-size:28px}h4{font-size:24px}h5{font-size:20px}h6{font-size:18px}body,table.body,p,td,th{font-size:14px;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}p{margin:0 0 7px 0;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}p.large,p.text-large{font-size:16px}p.bold,p.text-bold{font-weight:700}p a{margin:inherit}small{font-size:80%}center{width:100%}a{color:#e57722}a:visited{color:#e57722}a:hover,a:active{color:#904811}h1 a,h1 a:visited,h2 a,h2 a:visited,h3 a,h3 a:visited,h4 a,h4 a:visited,h5 a,h5 a:visited,h6 a,h6 a:visited{color:#e57722}table.text-center,th.text-center,td.text-center,h1.text-center,h2.text-center,h3.text-center,h4.text-center,h5.text-center,h6.text-center,p.text-center,span.text-center{text-align:center}table.text-left,th.text-left,td.text-left,h1.text-left,h2.text-left,h3.text-left,h4.text-left,h5.text-left,h6.text-left,p.text-left,span.text-left{text-align:left}table.text-right,th.text-right,td.text-right,h1.text-right,h2.text-right,h3.text-right,h4.text-right,h5.text-right,h6.text-right,p.text-right,span.text-right{text-align:right}table.primary,th.primary,td.primary,h1.primary,h2.primary,h3.primary,h4.primary,h5.primary,h6.primary,p.primary,span.primary{color:#333333}table.orange,th.orange,td.orange,h1.orange,h2.orange,h3.orange,h4.orange,h5.orange,h6.orange,p.orange,span.orange{color:#e27730}table.blue,th.blue,td.blue,h1.blue,h2.blue,h3.blue,h4.blue,h5.blue,h6.blue,p.blue,span.blue{color:#509fe2}span.text-center{display:block;width:100%;text-align:center}ol,ul{margin:0 0 7px 20px;padding:0}ol li,ul li{list-style-type:decimal;padding-top:5px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0 !important}.break-all{word-break:break-all !important}.break-all>a{word-break:break-all !important}.body,body{background-color:#e9eaec;text-align:center;padding:0 25px 0 25px}.container{margin:0 auto 0 auto}.header{line-height:1}.header .header-image{display:inline-block;vertical-align:middle;width:80%}.header img{display:inline-block !important;max-height:180px;vertical-align:middle}.header-wrapper.dark-mode{display:none}.content a,.content p,.content pre{-ms-word-break:break-word;word-break:break-word}.content pre{white-space:initial}.content .inline{display:inline-block}.content .smart-tag table:not(.wpforms-order-summary-preview){border-collapse:collapse;width:100%}.content .smart-tag table:not(.wpforms-order-summary-preview) td,.content .smart-tag table:not(.wpforms-order-summary-preview) th{border:1px solid currentColor;padding:5px !important}.content td>*:last-child{margin-bottom:0}.footer{color:#999999}.footer a{color:#999999;text-decoration:underline}.footer a:hover{color:#333333}h1,h2,h3,h4,h5,h6{color:#333333}.button-link{border-radius:3px;padding:7px 15px;text-decoration:none}.field-signature td.field-value{line-height:1}.field-rating td.field-value{line-height:1}tr:not(.smart-tag)>.field-value span{display:block}.field-repeater-name,.field-layout-name{font-size:22px}.field-file-upload .field-value .file-icon{display:inline-block;vertical-align:middle}.field-camera .field-value .file-icon{display:inline-block;vertical-align:middle}.field-richtext .field-value:only-child,.field-content .field-value:only-child{display:inline-block;width:100%}.field-richtext p .alignleft,.field-richtext li .alignleft,.field-content p .alignleft,.field-content li .alignleft{float:left;margin-right:16px;margin-top:8px;margin-bottom:8px}.field-richtext p .aligncenter,.field-richtext li .aligncenter,.field-content p .aligncenter,.field-content li .aligncenter{display:block;margin-left:auto;margin-right:auto}.field-richtext p .alignright,.field-richtext li .alignright,.field-content p .alignright,.field-content li .alignright{float:right;margin-left:16px;margin-top:8px;margin-bottom:8px}.field-richtext table,.field-content table{border-collapse:collapse;width:100%}.field-richtext table td,.field-richtext table th,.field-content table td,.field-content table th{border:1px solid currentColor;padding:5px !important}.field-rating .field-value{line-height:1.3 !important}.field-payment-total .wpforms-order-summary-container,.smart-tag .wpforms-order-summary-container{display:block;max-width:60%}.field-payment-total .wpforms-order-summary-container *,.smart-tag .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.field-payment-total table.wpforms-order-summary-preview,.smart-tag table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.field-payment-total table.wpforms-order-summary-preview tr td,.smart-tag table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.field-payment-total table.wpforms-order-summary-preview tr th,.smart-tag table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.field-payment-total table.wpforms-order-summary-preview tr td,.field-payment-total table.wpforms-order-summary-preview tr th,.smart-tag table.wpforms-order-summary-preview tr td,.smart-tag table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.field-payment-total .wpforms-order-summary-container,.smart-tag .wpforms-order-summary-container{max-width:100%}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview caption,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-placeholder-hidden,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview caption,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-placeholder-hidden,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-item-quantity-label-short{display:none}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#d63638 !important}.body-inner{padding-top:50px;padding-bottom:50px}.wrapper{max-width:660px}.wrapper-inner{background-color:#ffffff;border:1px solid #cccccc;padding:25px 30px 50px 30px}.header{text-align:center;padding:0 0 50px 0}.header .header-image{margin:0 auto 0 auto}.footer{font-size:12px;line-height:24px;text-align:center;padding-top:25px}body,table.body,h1,h2,h3,h4,h5,h6,p,td:not(.header),th,a{line-height:22px}.content .field-name{padding-top:25px;padding-bottom:7px}.content .field-value{padding-bottom:25px;border-bottom:1px solid #d9d9d9}.content .field-name.field-value{line-height:22px}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:0}.wpforms-layout-table>td{border-bottom:1px solid #d9d9d9}.wpforms-layout-table-display-blocks .wpforms-layout-table-row td.field-value,.wpforms-layout-table-display-columns .wpforms-layout-table-row td.field-value{padding-bottom:0}.wpforms-layout-table>td{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row{width:100%}.wpforms-layout-table .wpforms-layout-table-row .field-value{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row>tr>td{padding-right:20px}.wpforms-layout-table .wpforms-layout-table-row>tr>td:last-child{padding-right:0}.wpforms-layout-table-display-rows .wpforms-layout-table-row:not(.wpforms-first-row) td.field-name{display:none}.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-value{padding-bottom:15px}.wpforms-layout-table-display-rows .wpforms-layout-table-row:last-child .field-value{padding-bottom:0}.wpforms-layout-table-display-blocks .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value,.wpforms-layout-table-display-columns .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value{padding-bottom:0}.wpforms-layout-table .wpforms-layout-table-cell td{border:0 !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-payment-total,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-payment-total{display:block !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-order-summary-preview,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-order-summary-preview{display:none !important}.field-payment-total .wpforms-payment-total{display:none !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/compact.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/compact.min.css new file mode 100644 index 0000000..ee3adf7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/compact.min.css @@ -0,0 +1 @@ +body,.body{height:100% !important;margin:0;padding:0;width:100% !important;min-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased !important;-moz-osx-font-smoothing:grayscale !important}img{outline:none;text-decoration:none;-ms-interpolation-mode:bicubic;width:auto;max-width:100%;clear:both;display:block}a img{border:none}p{margin:0 0 10px 0}table{border-collapse:collapse;border-spacing:0}td{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;border-collapse:collapse !important}table,tr,td{padding:0;vertical-align:top}h1,h2,h3,h4,h5,h6{margin:0;padding:0}.ReadMsgBody,.ExternalClass{width:100%}.ExternalClass{width:100%}.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%}table,td{mso-table-lspace:0pt;mso-table-rspace:0pt}#outlook a{padding:0}img{-ms-interpolation-mode:bicubic}body,table,td,p,a,li,blockquote{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,table.body,h1,h2,h3,h4,h5,h6,p,td,th,a{color:#333333;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:normal;padding:0;margin:0;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}h1,h2,h3,h4,h5,h6{color:#444444;word-wrap:normal;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:bold;margin:0 0 15px 0;mso-line-height-rule:exactly;line-height:1.3;line-height:130%}h1.normal,h2.normal,h3.normal,h4.normal,h5.normal,h6.normal{font-weight:normal}h1{font-size:32px}h2{font-size:30px}h3{font-size:28px}h4{font-size:24px}h5{font-size:20px}h6{font-size:18px}body,table.body,p,td,th{font-size:15px;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}p{margin:0 0 15px 0;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}p.large,p.text-large{font-size:16px}p.bold,p.text-bold{font-weight:700}p a{margin:inherit}small{font-size:80%}center{width:100%}a{color:#e57722}a:visited{color:#e57722}a:hover,a:active{color:#904811}h1 a,h1 a:visited,h2 a,h2 a:visited,h3 a,h3 a:visited,h4 a,h4 a:visited,h5 a,h5 a:visited,h6 a,h6 a:visited{color:#e57722}table.text-center,th.text-center,td.text-center,h1.text-center,h2.text-center,h3.text-center,h4.text-center,h5.text-center,h6.text-center,p.text-center,span.text-center{text-align:center}table.text-left,th.text-left,td.text-left,h1.text-left,h2.text-left,h3.text-left,h4.text-left,h5.text-left,h6.text-left,p.text-left,span.text-left{text-align:left}table.text-right,th.text-right,td.text-right,h1.text-right,h2.text-right,h3.text-right,h4.text-right,h5.text-right,h6.text-right,p.text-right,span.text-right{text-align:right}table.primary,th.primary,td.primary,h1.primary,h2.primary,h3.primary,h4.primary,h5.primary,h6.primary,p.primary,span.primary{color:#333333}table.orange,th.orange,td.orange,h1.orange,h2.orange,h3.orange,h4.orange,h5.orange,h6.orange,p.orange,span.orange{color:#e27730}table.blue,th.blue,td.blue,h1.blue,h2.blue,h3.blue,h4.blue,h5.blue,h6.blue,p.blue,span.blue{color:#509fe2}span.text-center{display:block;width:100%;text-align:center}ol,ul{margin:0 0 15px 20px;padding:0}ol li,ul li{list-style-type:decimal;padding-top:5px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0 !important}.break-all{word-break:break-all !important}.break-all>a{word-break:break-all !important}.body,body{background-color:#e9eaec;text-align:center;padding:0 25px 0 25px}.container{margin:0 auto 0 auto}.header{line-height:1}.header .header-image{display:inline-block;vertical-align:middle;width:80%}.header img{display:inline-block !important;max-height:180px;vertical-align:middle}.header-wrapper.dark-mode{display:none}.content a,.content p,.content pre{-ms-word-break:break-word;word-break:break-word}.content pre{white-space:initial}.content .inline{display:inline-block}.content .smart-tag table:not(.wpforms-order-summary-preview){border-collapse:collapse;width:100%}.content .smart-tag table:not(.wpforms-order-summary-preview) td,.content .smart-tag table:not(.wpforms-order-summary-preview) th{border:1px solid currentColor;padding:5px !important}.content td>*:last-child{margin-bottom:0}.footer{color:#999999}.footer a{color:#999999;text-decoration:underline}.footer a:hover{color:#333333}h1,h2,h3,h4,h5,h6{color:#333333}.button-link{border-radius:3px;padding:7px 15px;text-decoration:none}.field-signature td.field-value{line-height:1}.field-rating td.field-value{line-height:1}tr:not(.smart-tag)>.field-value span{display:block}.field-repeater-name,.field-layout-name{font-size:22px}.field-file-upload .field-value .file-icon{display:inline-block;vertical-align:middle}.field-camera .field-value .file-icon{display:inline-block;vertical-align:middle}.field-richtext .field-value:only-child,.field-content .field-value:only-child{display:inline-block;width:100%}.field-richtext p .alignleft,.field-richtext li .alignleft,.field-content p .alignleft,.field-content li .alignleft{float:left;margin-right:16px;margin-top:8px;margin-bottom:8px}.field-richtext p .aligncenter,.field-richtext li .aligncenter,.field-content p .aligncenter,.field-content li .aligncenter{display:block;margin-left:auto;margin-right:auto}.field-richtext p .alignright,.field-richtext li .alignright,.field-content p .alignright,.field-content li .alignright{float:right;margin-left:16px;margin-top:8px;margin-bottom:8px}.field-richtext table,.field-content table{border-collapse:collapse;width:100%}.field-richtext table td,.field-richtext table th,.field-content table td,.field-content table th{border:1px solid currentColor;padding:5px !important}.field-rating .field-value{line-height:1.3 !important}.field-payment-total .wpforms-order-summary-container,.smart-tag .wpforms-order-summary-container{display:block;max-width:60%}.field-payment-total .wpforms-order-summary-container *,.smart-tag .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.field-payment-total table.wpforms-order-summary-preview,.smart-tag table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.field-payment-total table.wpforms-order-summary-preview tr td,.smart-tag table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.field-payment-total table.wpforms-order-summary-preview tr th,.smart-tag table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.field-payment-total table.wpforms-order-summary-preview tr td,.field-payment-total table.wpforms-order-summary-preview tr th,.smart-tag table.wpforms-order-summary-preview tr td,.smart-tag table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .field-payment-total table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .field-payment-total table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .smart-tag table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .smart-tag table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.field-payment-total table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.smart-tag table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.field-payment-total .wpforms-order-summary-container,.smart-tag .wpforms-order-summary-container{max-width:100%}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview caption,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-placeholder-hidden,.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-item-quantity-label-short,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview caption,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-placeholder-hidden,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview .wpforms-order-summary-item-quantity-label-short{display:none}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.smart-tag .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#d63638 !important}.body-inner{padding-top:25px;padding-bottom:25px}.wrapper{max-width:700px}.wrapper-inner{background-color:#ffffff;border:1px solid #cccccc;padding:5px 30px 30px 30px}.header{text-align:center;padding:0 0 25px 0}.header .header-image{margin:0 auto 0 auto}.footer{font-size:13px;line-height:24px;padding-top:25px}body,table.body,h1,h2,h3,h4,h5,h6,p,td:not(.header),th,a{line-height:20px}.content td{border-bottom:1px solid #d9d9d9;padding-top:25px;padding-bottom:25px}.content a{text-decoration:none}.content .field-name{min-width:113px;padding-right:10px}.is-rtl .content .field-name{padding-left:10px}.content .field-name:not(.field-value){line-height:22px}.content .field-value{vertical-align:middle}.content .field-name.field-value{line-height:20px}.content .wpforms-layout-table-row-display-rows ~ tr td{border-bottom:none;padding-top:0}.content .wpforms-layout-table-row-display-rows ~ tr td.field-name{opacity:0}.content .wpforms-layout-table-row-display-rows+tr td{border-top:1px solid #d9d9d9;padding-top:25px}.content .wpforms-layout-table-row-display-rows+tr td.field-name{opacity:1}.content .wpforms-layout-table-row-display-blocks ~ tr td{border-bottom:1px solid #d9d9d9;padding-top:25px}.content .wpforms-layout-table-row-display-blocks ~ tr td.field-name{opacity:1}.content .wpforms-layout-table-row ~ tr td.field-repeater-name{opacity:1;padding-top:25px;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9}.content .wpforms-layout-table-row ~ tr td.field-repeater-name+td{border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9}.field-payment-total .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:0}.wpforms-layout-table>td{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row{width:100%}.wpforms-layout-table .wpforms-layout-table-row .field-value{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row>tr>td{padding-right:20px}.wpforms-layout-table .wpforms-layout-table-row>tr>td:last-child{padding-right:0}.wpforms-layout-table-display-rows .wpforms-layout-table-row:not(.wpforms-first-row) td.field-name{display:none}.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-value{padding-bottom:15px}.wpforms-layout-table-display-rows .wpforms-layout-table-row:last-child .field-value{padding-bottom:0}.wpforms-layout-table-display-blocks .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value,.wpforms-layout-table-display-columns .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value{padding-bottom:0}.wpforms-layout-table .wpforms-layout-table-cell td{border:0 !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-payment-total,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-payment-total{display:block !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-order-summary-preview,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-order-summary-preview{display:none !important}.field-payment-total .wpforms-payment-total{display:none !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/corrupted-data-report.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/corrupted-data-report.min.css new file mode 100644 index 0000000..814731e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/corrupted-data-report.min.css @@ -0,0 +1 @@ +body,.body{height:100% !important;margin:0;padding:0;width:100% !important;min-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased !important;-moz-osx-font-smoothing:grayscale !important}img{outline:none;text-decoration:none;-ms-interpolation-mode:bicubic;width:auto;max-width:100%;clear:both;display:block}a img{border:none}p{margin:0 0 10px 0}table{border-collapse:collapse;border-spacing:0}td{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;border-collapse:collapse !important}table,tr,td{padding:0;vertical-align:top}h1,h2,h3,h4,h5,h6{margin:0;padding:0}.ReadMsgBody,.ExternalClass{width:100%}.ExternalClass{width:100%}.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%}table,td{mso-table-lspace:0pt;mso-table-rspace:0pt}#outlook a{padding:0}img{-ms-interpolation-mode:bicubic}body,table,td,p,a,li,blockquote{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,table.body,h1,h2,h3,h4,h5,h6,p,td,th,a{color:#444444;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:normal;padding:0;margin:0;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}h1,h2,h3,h4,h5,h6{color:#444444;word-wrap:normal;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:bold;margin:0 0 7px 0;mso-line-height-rule:exactly;line-height:1.3;line-height:130%}h1.normal,h2.normal,h3.normal,h4.normal,h5.normal,h6.normal{font-weight:normal}h1{font-size:32px}h2{font-size:30px}h3{font-size:28px}h4{font-size:24px}h5{font-size:20px}h6{font-size:18px}body,table.body,p,td,th{font-size:14px;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}p{margin:0 0 7px 0;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}p.large,p.text-large{font-size:16px}p.bold,p.text-bold{font-weight:700}p a{margin:inherit}small{font-size:80%}center{width:100%}a{color:#e27730}a:visited{color:#e27730}a:hover,a:active{color:#e27730}h1 a,h1 a:visited,h2 a,h2 a:visited,h3 a,h3 a:visited,h4 a,h4 a:visited,h5 a,h5 a:visited,h6 a,h6 a:visited{color:#e27730}table.text-center,th.text-center,td.text-center,h1.text-center,h2.text-center,h3.text-center,h4.text-center,h5.text-center,h6.text-center,p.text-center,span.text-center{text-align:center}table.text-left,th.text-left,td.text-left,h1.text-left,h2.text-left,h3.text-left,h4.text-left,h5.text-left,h6.text-left,p.text-left,span.text-left{text-align:left}table.text-right,th.text-right,td.text-right,h1.text-right,h2.text-right,h3.text-right,h4.text-right,h5.text-right,h6.text-right,p.text-right,span.text-right{text-align:right}table.primary,th.primary,td.primary,h1.primary,h2.primary,h3.primary,h4.primary,h5.primary,h6.primary,p.primary,span.primary{color:#333333}table.orange,th.orange,td.orange,h1.orange,h2.orange,h3.orange,h4.orange,h5.orange,h6.orange,p.orange,span.orange{color:#e27730}table.blue,th.blue,td.blue,h1.blue,h2.blue,h3.blue,h4.blue,h5.blue,h6.blue,p.blue,span.blue{color:#036aab}span.text-center{display:block;width:100%;text-align:center}ol,ul{margin:0 0 7px 20px;padding:0}ol li,ul li{list-style-type:decimal;padding-top:5px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0 !important}.break-all{word-break:break-all !important}.break-all>a{word-break:break-all !important}table.body,body{background-color:#f8f8f8;text-align:center}.wrapper{max-width:700px}.body-inner{box-sizing:border-box;padding-bottom:40px}.container{margin:0 auto 0 auto}.header{line-height:1;padding:30px;text-align:center}.header .header-image{display:inline-block;margin:0 auto 0 auto;max-width:260px;vertical-align:middle}.header img{display:inline-block !important;max-height:180px;vertical-align:middle}.header-wrapper.dark-mode{display:none}p,td{-webkit-hyphens:none;-moz-hyphens:none;hyphens:none}a,p,pre{-ms-word-break:break-word;word-break:break-word}.content p,.content li{font-size:16px;line-height:24px}.content p{margin-bottom:0}.content p+p{margin-top:24px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#444444}.content .corrupted-data-report-container>tbody>tr:last-child .corrupted-data-report-content{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.content .corrupted-data-report-content{background-color:#ffffff;border-top-left-radius:6px;border-top-right-radius:6px;padding:50px 30px}.content .corrupted-data-report-content .corrupted-data-report-content-inner div{max-width:600px;margin-left:auto;margin-right:auto}.corrupted-data-report-header{width:100%}.corrupted-data-report-header p{margin-bottom:15px}.corrupted-data-report-table{width:100%}.corrupted-data-report-table table{border:1px solid #dddddd}.corrupted-data-report-table table th,.corrupted-data-report-table table td{border:1px solid #dddddd;font-size:16px}.corrupted-data-report-table table th{background-color:#f8f8f8;font-weight:bold;padding:15px 20px;vertical-align:middle}.corrupted-data-report-table table td{padding:12px 20px}.corrupted-data-reports-count{color:#d63638;font-size:18px;font-weight:bold}.corrupted-data-reports-urls .corrupted-data-report-url-wrapper{padding:8px 0;border-bottom:1px solid #f0f0f0}.corrupted-data-reports-urls .corrupted-data-report-url-wrapper:first-child{padding-top:0}.corrupted-data-reports-urls>div:last-child{border-bottom:0;padding-bottom:0}.corrupted-data-reports-urls .corrupted-data-report-urls-more,.corrupted-data-reports-urls .corrupted-data-report-urls-empty{font-style:italic;color:#777777}.corrupted-data-reports-urls .corrupted-data-report-urls-more{margin-top:8px;font-size:12px}.corrupted-data-reports-urls .corrupted-data-report-urls-empty{font-size:14px}.corrupted-data-report-url-count{color:#777777;font-size:12px;margin-top:2px}.corrupted-data-report-recommendations{width:100%;margin-top:30px}.corrupted-data-report-recommendations h6{font-size:20px;line-height:24px;margin-bottom:24px}.corrupted-data-report-recommendations p{margin-bottom:15px}.corrupted-data-report-recommendations ol li{margin-bottom:20px}.footer{color:#777777;font-size:13px;line-height:20px;padding:20px 30px 20px 30px;text-align:center}.footer a{color:#777777;text-decoration:underline}.footer a:hover{color:#777777}.wpforms-layout-table>td{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row{width:100%}.wpforms-layout-table .wpforms-layout-table-row .field-value{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row>tr>td{padding-right:20px}.wpforms-layout-table .wpforms-layout-table-row>tr>td:last-child{padding-right:0}.wpforms-layout-table-display-rows .wpforms-layout-table-row:not(.wpforms-first-row) td.field-name{display:none}.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-value{padding-bottom:15px}.wpforms-layout-table-display-rows .wpforms-layout-table-row:last-child .field-value{padding-bottom:0}.wpforms-layout-table-display-blocks .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value,.wpforms-layout-table-display-columns .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value{padding-bottom:0}.wpforms-layout-table .wpforms-layout-table-cell td{border:0 !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-payment-total,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-payment-total{display:block !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-order-summary-preview,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-order-summary-preview{display:none !important}.field-payment-total .wpforms-payment-total{display:none !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/general.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/general.min.css new file mode 100644 index 0000000..8c8e4c5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/general.min.css @@ -0,0 +1 @@ +body,.body{height:100% !important;margin:0;padding:0;width:100% !important;min-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased !important;-moz-osx-font-smoothing:grayscale !important}img{outline:none;text-decoration:none;-ms-interpolation-mode:bicubic;width:auto;max-width:100%;clear:both;display:block}a img{border:none}p{margin:0 0 10px 0}table{border-collapse:collapse;border-spacing:0}td{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;border-collapse:collapse !important}table,tr,td{padding:0;vertical-align:top}h1,h2,h3,h4,h5,h6{margin:0;padding:0}.ReadMsgBody,.ExternalClass{width:100%}.ExternalClass{width:100%}.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%}table,td{mso-table-lspace:0pt;mso-table-rspace:0pt}#outlook a{padding:0}img{-ms-interpolation-mode:bicubic}body,table,td,p,a,li,blockquote{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,table.body,h1,h2,h3,h4,h5,h6,p,td,th,a{color:#444444;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;padding:0;margin:0;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}h1,h2,h3,h4,h5,h6{color:#444444;word-wrap:normal;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:bold;margin:0 0 15px 0;mso-line-height-rule:exactly;line-height:1.3;line-height:130%}h1.normal,h2.normal,h3.normal,h4.normal,h5.normal,h6.normal{font-weight:normal}h1{font-size:32px}h2{font-size:30px}h3{font-size:28px}h4{font-size:24px}h5{font-size:20px}h6{font-size:18px}body,table.body,p,td,th{font-size:14px;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}p{margin:0 0 15px 0;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}p.large,p.text-large{font-size:16px}p.bold,p.text-bold{font-weight:700}p a{margin:inherit}small{font-size:80%}center{width:100%}a{color:#1c75a6}a:visited{color:#1c75a6}a:hover,a:active{color:#0d374f}h1 a,h1 a:visited,h2 a,h2 a:visited,h3 a,h3 a:visited,h4 a,h4 a:visited,h5 a,h5 a:visited,h6 a,h6 a:visited{color:#1c75a6}table.text-center,th.text-center,td.text-center,h1.text-center,h2.text-center,h3.text-center,h4.text-center,h5.text-center,h6.text-center,p.text-center,span.text-center{text-align:center}table.text-left,th.text-left,td.text-left,h1.text-left,h2.text-left,h3.text-left,h4.text-left,h5.text-left,h6.text-left,p.text-left,span.text-left{text-align:left}table.text-right,th.text-right,td.text-right,h1.text-right,h2.text-right,h3.text-right,h4.text-right,h5.text-right,h6.text-right,p.text-right,span.text-right{text-align:right}table.primary,th.primary,td.primary,h1.primary,h2.primary,h3.primary,h4.primary,h5.primary,h6.primary,p.primary,span.primary{color:#e27730}table.orange,th.orange,td.orange,h1.orange,h2.orange,h3.orange,h4.orange,h5.orange,h6.orange,p.orange,span.orange{color:#e27730}table.blue,th.blue,td.blue,h1.blue,h2.blue,h3.blue,h4.blue,h5.blue,h6.blue,p.blue,span.blue{color:#509fe2}span.text-center{display:block;width:100%;text-align:center}ol,ul{margin:0 0 15px 20px;padding:0}ol li,ul li{list-style-type:decimal;padding-top:5px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0 !important}.break-all{word-break:break-all !important}.break-all>a{word-break:break-all !important}table.button{width:auto}table.button td{mso-line-height-rule:exactly;line-height:1;line-height:100%}table.button td.button-inner{padding:20px 0 20px 0}table.button table td{text-align:center;color:#ffffff;background:#e27730;border:1px solid #c45e1b;border-bottom:3px solid #c45e1b;mso-line-height-rule:exactly;line-height:1;line-height:100%}table.button table td a{font-family:Helvetica, Arial, sans-serif;font-size:16px;font-weight:bold;color:#ffffff;text-decoration:none;text-align:center;display:inline-block;padding:10px 16px 8px 16px;border:0 solid #c45e1b;mso-line-height-rule:exactly;line-height:1;line-height:100%}table.button:hover table tr td a,table.button:active table tr td a,table.button table tr td a:visited,table.button.tiny:hover table tr td a,table.button.tiny:active table tr td a,table.button.tiny table tr td a:visited,table.button.small:hover table tr td a,table.button.small:active table tr td a,table.button.small table tr td a:visited,table.button.large:hover table tr td a,table.button.large:active table tr td a,table.button.large table tr td a:visited{color:#ffffff;text-decoration:none !important}table.button.small table td,table.button.small table a{padding:5px 10px 5px 10px;font-size:12px}table.button.large table a{padding:14px 20px 12px 20px;font-size:20px}table.button.expand,table.button.full,table.button.expanded{width:100% !important}table.button.expand table,table.button.full table,table.button.expanded table{width:100% !important}table.button.expand table a,table.button.full table a,table.button.expanded table a{text-align:center;width:100%;padding-left:0;padding-right:0}table.button:hover table td,table.button:active table td{background:#c45e1b;color:#fefefe}table.button:hover table a,table.button:active table a{border:0 solid #c45e1b}table.button.blue table td{color:#ffffff;background:#509fe2;border:1px solid #2487db;border-bottom:3px solid #2487db}table.button.blue table a{color:#ffffff;border:0 solid #2487db}table.button.blue:hover table td,table.button.blue:active table td{color:#ffffff;background-color:#2487db}table.button.green table td{color:#ffffff;background:#74ae5e;border:1px solid #5c9049;border-bottom:3px solid #5c9049}table.button.green table a{color:#ffffff;border:0 solid #5c9049}table.button.green:hover table td,table.button.green:active table td{color:#ffffff;background-color:#5c9049}body,.body{background-color:#f1f1f1;text-align:center}.body-inner{text-align:center}.container{width:600px;margin:0 auto 0 auto;text-align:inherit}.header{text-align:center;padding:30px 30px 22px 30px}.header img{display:inline-block !important}.content{background-color:#ffffff;padding:60px 75px 45px 75px;border-top:3px solid #e27730;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;border-left:1px solid #dddddd}.aside{background-color:#f8f8f8;padding:50px 75px 35px 75px;border-top:1px solid #dddddd;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;border-left:1px solid #dddddd}.footer{padding:30px;color:#72777c;font-size:12px;text-align:center}.footer a{color:#72777c;text-decoration:underline}.footer a:hover{color:#444444}@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}a{text-decoration:none}@media only screen and (max-width: 599px){table.body .container{width:95% !important}.header{padding:15px 15px 12px 15px !important}.header img{width:200px !important;height:auto !important}.content,.aside{padding:30px 40px 20px 40px !important}.upsell-pro table.features td{width:100% !important;display:block !important}table.receipt-details td.receipt-details-inner{padding:30px 0px 20px 0px !important}}.wpforms-layout-table>td{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row{width:100%}.wpforms-layout-table .wpforms-layout-table-row .field-value{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row>tr>td{padding-right:20px}.wpforms-layout-table .wpforms-layout-table-row>tr>td:last-child{padding-right:0}.wpforms-layout-table-display-rows .wpforms-layout-table-row:not(.wpforms-first-row) td.field-name{display:none}.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-value{padding-bottom:15px}.wpforms-layout-table-display-rows .wpforms-layout-table-row:last-child .field-value{padding-bottom:0}.wpforms-layout-table-display-blocks .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value,.wpforms-layout-table-display-columns .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value{padding-bottom:0}.wpforms-layout-table .wpforms-layout-table-cell td{border:0 !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-payment-total,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-payment-total{display:block !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-order-summary-preview,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-order-summary-preview{display:none !important}.field-payment-total .wpforms-payment-total{display:none !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/partials/classic_media_queries.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/classic_media_queries.min.css new file mode 100644 index 0000000..60eee74 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/classic_media_queries.min.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: light){.header-wrapper.dark-mode{display:none !important}}@media (prefers-color-scheme: dark){.header-wrapper.dark-mode{display:table-row !important}.header-wrapper.dark-mode+.light-mode{display:none !important}}@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}@media only screen and (max-width: 599px){.body-inner{padding-top:25px !important;padding-bottom:25px !important}.wrapper-inner{padding:0 25px 25px 25px !important}.header{padding-bottom:25px !important}.header .has-image-size-small img{max-height:100px !important}.header .has-image-size-medium img{max-height:140px !important}.header .has-image-size-large img{max-height:180px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:10px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:7px !important}.wpforms-layout-table-display-blocks table:not(:first-child) .field-repeater-name{padding-top:25px !important}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/partials/compact_media_queries.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/compact_media_queries.min.css new file mode 100644 index 0000000..7b779c5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/compact_media_queries.min.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: light){.header-wrapper.dark-mode{display:none !important}}@media (prefers-color-scheme: dark){.header-wrapper.dark-mode{display:table-row !important}.header-wrapper.dark-mode+.light-mode{display:none !important}}@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}@media only screen and (max-width: 599px){.wrapper-inner{padding:0 25px 25px 25px !important}.header .has-image-size-small img{max-height:100px !important}.header .has-image-size-medium img{max-height:140px !important}.header .has-image-size-large img{max-height:180px !important}.content td{display:block}.content td.field-name{padding-bottom:0 !important;border-bottom:0 !important}.content td.field-value{padding-top:10px !important}.content td.field-repeater-name+.field-value{padding-top:0 !important}.content td td{display:table-cell}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/partials/media_queries.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/media_queries.min.css new file mode 100644 index 0000000..ede93cc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/media_queries.min.css @@ -0,0 +1 @@ +@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}a{text-decoration:none}@media only screen and (max-width: 599px){table.body .container{width:95% !important}.header{padding:15px 15px 12px 15px !important}.header img{width:200px !important;height:auto !important}.content,.aside{padding:30px 40px 20px 40px !important}.upsell-pro table.features td{width:100% !important;display:block !important}table.receipt-details td.receipt-details-inner{padding:30px 0px 20px 0px !important}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/partials/summary_media_queries.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/summary_media_queries.min.css new file mode 100644 index 0000000..e1e5543 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/partials/summary_media_queries.min.css @@ -0,0 +1 @@ +@media only screen and (max-width: 599px){.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-name{display:block !important}.wpforms-layout-table .wpforms-layout-table-row{display:block;width:100%}.wpforms-layout-table .wpforms-layout-table-row table,.wpforms-layout-table .wpforms-layout-table-row thead,.wpforms-layout-table .wpforms-layout-table-row tbody,.wpforms-layout-table .wpforms-layout-table-row tr,.wpforms-layout-table .wpforms-layout-table-row td,.wpforms-layout-table .wpforms-layout-table-row th{display:block;width:100% !important;padding-bottom:0 !important}.wpforms-layout-table .wpforms-layout-table-row tr{padding-top:0 !important}.wpforms-layout-table .wpforms-layout-table-row td.field-value{padding-bottom:25px !important}.wpforms-layout-table .wpforms-layout-table-row td.field-name{padding-bottom:10px !important}.wpforms-layout-table>td{padding-bottom:0 !important}}@media only screen and (max-width: 700px){.header .header-image{max-width:221px}.body-inner{padding-bottom:0 !important}.summary-content{border-radius:0 !important;padding:30px !important}.summary-header,.email-summaries-overview-wrapper{margin-bottom:30px !important}.email-summaries-overview h5{font-size:18px !important;line-height:26px !important}.email-summaries-overview p{font-size:14px !important;line-height:20px !important}.email-summaries .entry-count,.email-summaries .form-name{font-size:14px !important}.summary-notice h4{font-size:20px !important;line-height:30px !important}.summary-notification-block,.summary-info-block{border-radius:0 !important;padding:30px 30px 6px 30px !important}}@media only screen and (max-width: 320px){.email-summaries th{padding:15px !important}.email-summaries .form-name,.email-summaries .entry-count,.email-summaries .summary-trend{padding:12px !important}}@media (prefers-color-scheme: light){tr.dark-mode{display:none !important}}@media (prefers-color-scheme: dark){tr.dark-mode{display:table-row !important}tr.light-mode{display:none !important}body,table.body,.email-summaries th{background-color:#2d2f31 !important}.email-summaries td,.summary-header,.summary-content{background-color:#1f1f1f !important}body,table.body,h4,h6,p,td,th{color:#dddddd !important}.email-summaries th,.email-summaries td{border:1px solid #424446 !important}.email-summaries-overview{border:1px solid #424446 !important;background:#2d2f31 !important}.email-summaries-overview h5{color:#dddddd !important}.email-summaries-overview p{color:#999999 !important}.footer,.entry-count{color:#999999 !important}.footer a,.entry-count a{color:#999999 !important}.footer a:hover,.entry-count a:hover{color:#999999 !important}.summary-notice{color:#ffffff !important}.summary-notice h4,.summary-notice p{color:#ffffff !important}.summary-info-block{background-color:#383230 !important}.summary-notification-block{background-color:#2e353b !important}.summary-notification-block .summary-notice-content a{color:#3389bd !important}.button-blue a,.button-orange a{color:#ffffff !important}.button-blue-outline{border:1px solid #3389bd !important}.button-blue-outline a{color:#3389bd !important}}[data-ogsc] tr.dark-mode{display:table-row !important}[data-ogsc] tr.light-mode{display:none !important}[data-ogsc] body,[data-ogsc] table.body,[data-ogsc] .email-summaries th{background-color:#2d2f31 !important}[data-ogsc] .email-summaries td,[data-ogsc] .summary-header,[data-ogsc] .summary-content{background-color:#1f1f1f !important}[data-ogsc] body,[data-ogsc] table.body,[data-ogsc] h4,[data-ogsc] h6,[data-ogsc] p,[data-ogsc] td,[data-ogsc] th{color:#dddddd !important}[data-ogsc] .email-summaries th,[data-ogsc] .email-summaries td{border:1px solid #424446 !important}[data-ogsc] .email-summaries-overview{border:1px solid #424446 !important;background:#2d2f31 !important}[data-ogsc] .email-summaries-overview h5{color:#dddddd !important}[data-ogsc] .email-summaries-overview p{color:#999999 !important}[data-ogsc] .footer,[data-ogsc] .entry-count{color:#999999 !important}[data-ogsc] .footer a,[data-ogsc] .entry-count a{color:#999999 !important}[data-ogsc] .footer a:hover,[data-ogsc] .entry-count a:hover{color:#999999 !important}[data-ogsc] .summary-notice{color:#ffffff !important}[data-ogsc] .summary-notice h4,[data-ogsc] .summary-notice p{color:#ffffff !important}[data-ogsc] .summary-info-block{background-color:#383230 !important}[data-ogsc] .summary-notification-block{background-color:#2e353b !important}[data-ogsc] .summary-notification-block .summary-notice-content a{color:#3389bd !important}[data-ogsc] .button-blue a,[data-ogsc] .button-orange a{color:#ffffff !important}[data-ogsc] .button-blue-outline{border:1px solid #3389bd !important}[data-ogsc] .button-blue-outline a{color:#3389bd !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/emails/summary.min.css b/wp-content/plugins/wpforms-lite/assets/css/emails/summary.min.css new file mode 100644 index 0000000..2b5c602 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/emails/summary.min.css @@ -0,0 +1 @@ +body,.body{height:100% !important;margin:0;padding:0;width:100% !important;min-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased !important;-moz-osx-font-smoothing:grayscale !important}img{outline:none;text-decoration:none;-ms-interpolation-mode:bicubic;width:auto;max-width:100%;clear:both;display:block}a img{border:none}p{margin:0 0 10px 0}table{border-collapse:collapse;border-spacing:0}td{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;border-collapse:collapse !important}table,tr,td{padding:0;vertical-align:top}h1,h2,h3,h4,h5,h6{margin:0;padding:0}.ReadMsgBody,.ExternalClass{width:100%}.ExternalClass{width:100%}.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%}table,td{mso-table-lspace:0pt;mso-table-rspace:0pt}#outlook a{padding:0}img{-ms-interpolation-mode:bicubic}body,table,td,p,a,li,blockquote{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,table.body,h1,h2,h3,h4,h5,h6,p,td,th,a{color:#444444;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:normal;padding:0;margin:0;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}h1,h2,h3,h4,h5,h6{color:#444444;word-wrap:normal;font-family:-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;font-weight:bold;margin:0 0 7px 0;mso-line-height-rule:exactly;line-height:1.3;line-height:130%}h1.normal,h2.normal,h3.normal,h4.normal,h5.normal,h6.normal{font-weight:normal}h1{font-size:32px}h2{font-size:30px}h3{font-size:28px}h4{font-size:24px}h5{font-size:20px}h6{font-size:18px}body,table.body,p,td,th{font-size:14px;mso-line-height-rule:exactly;line-height:1.4;line-height:140%}p{margin:0 0 7px 0;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}p.large,p.text-large{font-size:16px}p.bold,p.text-bold{font-weight:700}p a{margin:inherit}small{font-size:80%}center{width:100%}a{color:#e27730}a:visited{color:#e27730}a:hover,a:active{color:#e27730}h1 a,h1 a:visited,h2 a,h2 a:visited,h3 a,h3 a:visited,h4 a,h4 a:visited,h5 a,h5 a:visited,h6 a,h6 a:visited{color:#e27730}table.text-center,th.text-center,td.text-center,h1.text-center,h2.text-center,h3.text-center,h4.text-center,h5.text-center,h6.text-center,p.text-center,span.text-center{text-align:center}table.text-left,th.text-left,td.text-left,h1.text-left,h2.text-left,h3.text-left,h4.text-left,h5.text-left,h6.text-left,p.text-left,span.text-left{text-align:left}table.text-right,th.text-right,td.text-right,h1.text-right,h2.text-right,h3.text-right,h4.text-right,h5.text-right,h6.text-right,p.text-right,span.text-right{text-align:right}table.primary,th.primary,td.primary,h1.primary,h2.primary,h3.primary,h4.primary,h5.primary,h6.primary,p.primary,span.primary{color:#333333}table.orange,th.orange,td.orange,h1.orange,h2.orange,h3.orange,h4.orange,h5.orange,h6.orange,p.orange,span.orange{color:#e27730}table.blue,th.blue,td.blue,h1.blue,h2.blue,h3.blue,h4.blue,h5.blue,h6.blue,p.blue,span.blue{color:#036aab}span.text-center{display:block;width:100%;text-align:center}ol,ul{margin:0 0 7px 20px;padding:0}ol li,ul li{list-style-type:decimal;padding-top:5px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0 !important}.break-all{word-break:break-all !important}.break-all>a{word-break:break-all !important}table.body,body{background-color:#f8f8f8;text-align:center}.wrapper{max-width:700px}.body-inner{box-sizing:border-box;padding-bottom:40px}.container{margin:0 auto 0 auto}.header{line-height:1;padding:30px;text-align:center}.header .header-image{display:inline-block;margin:0 auto 0 auto;max-width:260px;vertical-align:middle}.header img{display:inline-block !important;max-height:180px;vertical-align:middle}.header-wrapper.dark-mode{display:none}p,td{-webkit-hyphens:none;-moz-hyphens:none;hyphens:none}a,p,pre{-ms-word-break:break-word;word-break:break-word}.content p{font-size:16px;line-height:24px;margin-bottom:0}.content p+p{margin-top:24px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#444444}.button-container{text-align:center}.button-container .button-wrapper{border-spacing:24px;margin:0 auto}.button-wrapper{border-collapse:separate}.button{border-collapse:separate !important;border-radius:3px;line-height:16px;padding:11.5px 15px;vertical-align:middle}.button-link{color:#ffffff;line-height:16px;font-size:16px;font-weight:500;margin:0;text-decoration:none}.button-orange{background:#e27730;border:1px solid #e27730}.button-blue{background:#036aab;border:1px solid #036aab;color:#ffffff}.button-blue-outline{background:transparent;border:1px solid #036aab}.button-blue-outline a{color:#036aab}.content .summary-container>tbody>tr:last-child .summary-content{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.content .summary-content{background-color:#ffffff;border-top-left-radius:6px;border-top-right-radius:6px;padding:50px 30px}.content .summary-content .summary-content-inner div{max-width:600px;margin-left:auto;margin-right:auto}.content .summary-content .greeting{font-size:20px;line-height:24px;margin-bottom:24px}.content .summary-trend td{white-space:nowrap}.content .email-summaries-wrapper{margin-bottom:1px}.content .email-summaries-wrapper .summary-trend td{line-height:20px}.content .summary-header,.content .email-summaries-overview-wrapper{margin-bottom:50px}.content .email-summaries-overview{background:#f8f8f8;border:1px solid #dddddd;border-collapse:separate;border-radius:6px}.content .email-summaries-overview td{padding-bottom:20px;padding-top:20px;vertical-align:middle}.content .email-summaries-overview .overview-icon{vertical-align:top}.content .email-summaries-overview .overview-icon img{min-width:52px}.content .email-summaries-overview .overview-stats{width:90%;vertical-align:top}.content .email-summaries-overview .overview-stats h5{line-height:30px;margin-bottom:0}.content .email-summaries-overview .overview-stats p{color:#777777;line-height:22px}.content .email-summaries-overview .summary-trend td{font-size:16px;line-height:16px}.content .email-summaries-overview .summary-trend td img{min-width:14px}.content .email-summaries th{background-color:#f8f8f8;border:1px solid #dddddd;font-size:16px;font-weight:bold;line-height:16px;padding:15px 20px 15px 20px}.content .email-summaries td{border:1px solid #dddddd;padding:12px 20px 12px 20px;vertical-align:middle}.content .email-summaries .form-name{font-size:16px;line-height:24px;width:90%}.content .email-summaries .entry-count{color:#777777;font-size:16px;line-height:20px;text-align:center;vertical-align:middle;white-space:nowrap}.content .email-summaries .entry-count a{color:#777777;text-decoration:underline}.content .email-summaries .entry-count a:hover{color:#777777}.content .email-summaries .summary-trend td img{min-width:10px}.content .summary-trend table{border-collapse:separate}.content .summary-trend table tr td{padding:0;border:0 !important}.trend-upward td{color:#46b450 !important}.trend-downward td{color:#d63637 !important}.summary-notice{text-align:center}.summary-notice h4{line-height:36px;margin-bottom:16px}.summary-notice p{font-size:16px;line-height:24px}.summary-notice>td{padding:50px 50px 26px 50px}.summary-notice:last-child>td{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.summary-notice+.summary-notice{margin-top:1px}tr:last-child>.summary-notice-content,.summary-notice-icon{padding-bottom:24px}.summary-notice-divider{height:1px;font-size:0;line-height:1px}.summary-info-block{background-color:#f7f0ed}.summary-notification-block{background-color:#edf3f7}.summary-notification-block p a{color:#036aab}.footer{color:#777777;font-size:13px;line-height:20px;padding:20px 30px 20px 30px;text-align:center}.footer a{color:#777777;text-decoration:underline}.footer a:hover{color:#777777}[dir="rtl"] th{text-align:right}[dir="rtl"] th:first-child{border-left:0 !important}[dir="rtl"] th:last-child{border-right:0 !important}[dir="rtl"] .summary-content-inner{text-align:right}[dir="rtl"] .summary-trend td:last-child{padding-right:5px}[dir="rtl"] .email-summaries-overview .summary-trend,[dir="rtl"] .email-summaries-overview .overview-stats{padding-right:16px}[dir="rtl"] .email-summaries-overview .overview-icon{padding-right:20px}[dir="rtl"] .email-summaries-overview .summary-trend{padding-left:20px}[dir="ltr"] th{text-align:left}[dir="ltr"] th:first-child{border-right:0 !important}[dir="ltr"] th:last-child{border-left:0 !important}[dir="ltr"] .summary-content-inner{text-align:left}[dir="ltr"] .summary-trend td:last-child{padding-left:5px}[dir="ltr"] .email-summaries-overview .summary-trend,[dir="ltr"] .email-summaries-overview .overview-stats{padding-left:16px}[dir="ltr"] .email-summaries-overview .overview-icon{padding-left:20px}[dir="ltr"] .email-summaries-overview .summary-trend{padding-right:20px}.wpforms-layout-table>td{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row{width:100%}.wpforms-layout-table .wpforms-layout-table-row .field-value{padding-bottom:25px}.wpforms-layout-table .wpforms-layout-table-row>tr>td{padding-right:20px}.wpforms-layout-table .wpforms-layout-table-row>tr>td:last-child{padding-right:0}.wpforms-layout-table-display-rows .wpforms-layout-table-row:not(.wpforms-first-row) td.field-name{display:none}.wpforms-layout-table-display-rows .wpforms-layout-table-row .field-value{padding-bottom:15px}.wpforms-layout-table-display-rows .wpforms-layout-table-row:last-child .field-value{padding-bottom:0}.wpforms-layout-table-display-blocks .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value,.wpforms-layout-table-display-columns .wpforms-layout-table-row tr:last-child .wpforms-layout-table-cell .field-value{padding-bottom:0}.wpforms-layout-table .wpforms-layout-table-cell td{border:0 !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-payment-total,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-payment-total{display:block !important}.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-25 .field-payment-total .wpforms-order-summary-preview,.wpforms-layout-table .wpforms-layout-table-cell.wpforms-width-33 .field-payment-total .wpforms-order-summary-preview{display:none !important}.field-payment-total .wpforms-payment-total{display:none !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/form-embed-wizard.min.css b/wp-content/plugins/wpforms-lite/assets/css/form-embed-wizard.min.css new file mode 100644 index 0000000..c27e590 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/form-embed-wizard.min.css @@ -0,0 +1 @@ +@keyframes wpforms-dot-pulse{0%{box-shadow:0 0 0 0 rgba(223,119,57,0.6)}100%{box-shadow:0 0 0 10px rgba(223,119,57,0)}}span.wpforms-admin-form-embed-wizard-dot{display:inline-block;width:12px;height:12px !important;padding:0 !important;border:0 !important;border-radius:50%;background-color:#df7739;animation:wpforms-dot-pulse 1.5s infinite !important;margin:3px 10px}.wp-editor-tools span.wpforms-admin-form-embed-wizard-dot{margin-top:9px}.wpforms-admin-form-embed-wizard-tooltip{display:none}.wpforms-admin-form-embed-wizard.tooltipster-sidetip{z-index:100100 !important}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:18px}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:8px}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{top:0}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:18px}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{left:8px}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box{max-width:260px;background:white;border:none;border-radius:4px;box-shadow:0px 5px 15px rgba(0,0,0,0.25);-webkit-box-shadow:0px 5px 15px rgba(0,0,0,0.25);-moz-box-shadow:0px 5px 15px rgba(0,0,0,0.25)}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .tooltipster-content{color:#444444;padding:16px 20px 18px;text-align:center}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .tooltipster-content div *:first-child{margin-top:0 !important}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .tooltipster-content h3{font-size:16px;letter-spacing:0px;line-height:18px;margin:0;color:#23282C}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .tooltipster-content p{font-size:14px;letter-spacing:0px;line-height:18px;margin:10px 0 0;color:#444444}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .tooltipster-content a{color:#1D7BAC}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .wpforms-admin-form-embed-wizard-done-btn{border-radius:3px;cursor:pointer;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none;font-size:14px;font-weight:600;letter-spacing:0px;padding:7px 18px;border:none;background-color:#df7739;color:#ffffff;display:block;margin:15px auto 0}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .wpforms-admin-form-embed-wizard-done-btn:hover{background-color:#b85a1b}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .wpforms-admin-form-embed-wizard-done-btn:disabled{cursor:default;opacity:0.5}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-box .wpforms-admin-form-embed-wizard-done-btn:disabled:hover{background-color:#df7739}.wpforms-admin-form-embed-wizard.tooltipster-sidetip .tooltipster-arrow-border{border:none}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:white}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:white}.wpforms-admin-form-embed-wizard.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:white}.block-editor-page .edit-post-layout .components-notice-list>div{padding-left:50px}.block-editor-page .wpforms-admin-form-embed-wizard-dot{position:absolute;top:75px;left:20px;z-index:9999}.block-editor-page .wpforms-admin-form-embed-wizard{width:260px !important;z-index:99980 !important;margin-top:5px}.block-editor-page .wpforms-admin-form-embed-wizard .tooltipster-box{margin-top:10px}.block-editor-page .wpforms-admin-form-embed-wizard .wpforms-admin-form-embed-wizard-tooltips-red-arrow{position:absolute;display:block;width:15px;height:42px;top:-65px;left:145px;background-image:url(../images/challenge/red-arrow.svg);background-size:15px 42px;background-repeat:no-repeat}.block-editor-page.is-fullscreen-mode .edit-post-layout .components-notice-list>div{padding-left:125px}.block-editor-page.is-fullscreen-mode .wpforms-admin-form-embed-wizard-dot{left:75px}.block-editor-page.is-fullscreen-mode .wpforms-admin-form-embed-wizard .wpforms-admin-form-embed-wizard-tooltips-red-arrow{left:105px} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-base.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-base.min.css new file mode 100644 index 0000000..efa1888 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-base.min.css @@ -0,0 +1 @@ +.flatpickr-calendar .flatpickr-current-month select{display:initial}@media only screen and (max-width: 600px){.flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.wpforms-container .wpforms-form .wpforms-error-alert{border:1px solid #cccccc;text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-form .wpforms-error-alert{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-is-turnstile iframe{margin-left:-2px !important}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-container .wpforms-error-container,.wpforms-container noscript.wpforms-error-noscript{color:#990000}.wpforms-container label.wpforms-error{display:block;color:#990000;font-size:0.9em;float:none;cursor:default}.wpforms-container .wpforms-field input.wpforms-error,.wpforms-container .wpforms-field input.user-invalid,.wpforms-container .wpforms-field textarea.wpforms-error,.wpforms-container .wpforms-field textarea.user-invalid,.wpforms-container .wpforms-field select.wpforms-error,.wpforms-container .wpforms-field select.user-invalid,.wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #cc0000}.wpforms-container .wpforms-field-credit-card-expiration label.wpforms-error,.wpforms-container .wpforms-field-credit-card-code label.wpforms-error{display:none !important}.wpforms-container .wpforms-page-indicator{margin:0 0 20px 0;overflow:hidden}.wpforms-container .wpforms-page-indicator.circles{border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:15px 10px}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:left;margin:0 20px 0 0}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page:last-of-type{margin:0}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{height:40px;width:40px;border-radius:50%;display:inline-block;margin:0 10px 0 0;line-height:40px;text-align:center;background-color:#ddd;color:#666}.wpforms-container .wpforms-page-indicator.circles .active .wpforms-page-indicator-page-number{color:#fff}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page{float:left;text-align:center;line-height:1.2}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:block;text-indent:-9999px;height:6px;background-color:#ddd;margin:0 0 16px 0;position:relative}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-triangle{position:absolute;top:100%;left:50%;width:0;height:0;margin-left:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:transparent transparent transparent transparent}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:inline-block;padding:0 15px;font-size:16px}.wpforms-container .wpforms-page-indicator.progress{font-size:18px}.wpforms-container .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{display:block;width:100%;background-color:#ddd;height:18px;border-radius:10px;overflow:hidden;position:relative;margin:5px 0 0}.wpforms-container .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress{height:18px;position:absolute;left:0;top:0}div.wpforms-container .wpforms-notice{background-color:#fff;border:1px solid #ddd;border-left-width:12px;color:#333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}div.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;outline:none;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}div.wpforms-container .wpforms-notice .wpforms-delete:before,div.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}div.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}div.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}div.wpforms-container .wpforms-notice .wpforms-delete:hover,div.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}div.wpforms-container .wpforms-notice a{text-decoration:underline}div.wpforms-container .wpforms-notice p{margin:0 0 20px 0}div.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-info{border-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-success{border-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-warning{border-color:#ffdd57}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-error{border-color:#ff3860}div.wpforms-container-full .wpforms-notice .wpforms-notice-actions{margin-top:20px}div.wpforms-container-full .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}div.wpforms-container-full .wpforms-notice .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:active{color:#fff}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#ff3860}div.wpforms-container .wpforms-error-container.wpforms-error-styled-container{padding:10px 0;font-size:15px}div.wpforms-container .wpforms-error-container.wpforms-error-styled-container p{margin:0}.wpforms-preview-notice-links{line-height:2.4}.wpforms-container .wpforms-title{font-size:26px;margin:0 0 10px 0}.wpforms-container .wpforms-description{margin:0 0 10px 0}.wpforms-container .wpforms-submit-container{padding:10px 0 0 0;position:relative}.wpforms-container .wpforms-submit-spinner{margin-inline-start:0.5em;vertical-align:middle}.wpforms-container{margin-bottom:26px}.wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}div.wpforms-container .wpforms-form textarea{resize:vertical}.amp-form-submit-success .wpforms-field-container,.amp-form-submit-success .wpforms-submit-container{display:none}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap h3{width:100%;margin:10px 0 5px;font-weight:700;font-size:20px}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap img{margin-right:25px;width:initial}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-base-control{width:100%}div.wpforms-gutenberg-form-selector .wpforms-form input:disabled,div.wpforms-gutenberg-form-selector .wpforms-form textarea:disabled,div.wpforms-gutenberg-form-selector .wpforms-form select:disabled,div.wpforms-gutenberg-form-selector .wpforms-form button[type=submit]:disabled{cursor:not-allowed}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,div.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 2px 2px}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:2px 2px 0 0}div.wpforms-container .wpforms-form .choices .choices__inner{border-radius:2px;min-height:35px}div.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}div.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}body.rtl .wpforms-field-phone input[type=tel]{direction:ltr;unicode-bidi:embed;text-align:right}body.rtl .wpforms-container .wpforms-first{float:right}body.rtl .wpforms-container .wpforms-first+.wpforms-one-half{margin-right:4%;margin-left:0}body.rtl .wpforms-container.wpforms-edit-entry-container .wpforms-first+.wpforms-one-half{margin-right:0}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-container ul,.wpforms-container ul li{background:none;border:0;margin:0;list-style:none}.wpforms-container input.wpforms-field-medium,.wpforms-container select.wpforms-field-medium,.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.wpforms-container textarea.wpforms-field-medium{height:120px}.wpforms-container input.wpforms-field-small,.wpforms-container select.wpforms-field-small,.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.wpforms-container textarea.wpforms-field-small{height:70px}.wpforms-container input.wpforms-field-large,.wpforms-container select.wpforms-field-large,.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.wpforms-container textarea.wpforms-field-large{height:220px}.wpforms-container .wpforms-field{padding:10px 0;position:relative}.wpforms-container .wpforms-field-description,.wpforms-container .wpforms-field-limit-text{font-size:0.85em;margin:5px 0 0 0}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#fff;border:1px solid #ddd;padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.wpforms-container .wpforms-field-description-before,.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.wpforms-container .wpforms-field-label{display:block;font-weight:700;float:none;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.85em;float:none;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;word-break:break-word}.wpforms-container .wpforms-field-label.wpforms-label-hide,.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.wpforms-container .wpforms-required-label{color:#ff0000;font-weight:normal}.wpforms-container .wpforms-field-row{margin-bottom:8px;position:relative}.wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.wpforms-container .wpforms-field-row:before{content:"";display:table}.wpforms-container .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-container .wpforms-form .wpforms-field-address .wpforms-one-half:only-child{margin-left:0}.wpforms-container .wpforms-five-sixths,.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-four-fifths,.wpforms-container .wpforms-one-fifth,.wpforms-container .wpforms-one-fourth,.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-one-sixth,.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-three-fourths,.wpforms-container .wpforms-three-fifths,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths,.wpforms-container .wpforms-two-fifths,.wpforms-container .wpforms-two-sixths,.wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.wpforms-container .wpforms-one-third.wpforms-first,.wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.wpforms-container .wpforms-four-sixths.wpforms-first,.wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.wpforms-container .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-list-2-columns ul,.wpforms-container .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-list-3-columns ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wpforms-container .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-list-2-columns ul li{width:50%;display:block;padding-right:26px}.wpforms-container .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-list-3-columns ul li{width:33.3333%;display:block;padding-right:26px}.wpforms-container .wpforms-list-inline ul li{display:inline-block;margin-right:20px;vertical-align:top}.wpforms-container .wpforms-first-half{float:left;width:48%;clear:both}.wpforms-container .wpforms-last-half{float:right;width:48%;clear:none}.wpforms-container .wpforms-first-third{float:left;width:30.666666667%;clear:both}.wpforms-container .wpforms-middle-third{float:left;width:30.666666667%;margin-left:4%;clear:none}.wpforms-container .wpforms-last-third{float:right;width:30.666666667%;clear:none}.wpforms-container .wpforms-last{float:right !important;margin-right:0 !important;clear:none}.wpforms-container.inline-fields{overflow:visible}.wpforms-container.inline-fields .wpforms-field-container{display:table;width:calc(100% - 160px);float:left}.wpforms-container.inline-fields .wpforms-field{display:table-cell;padding-right:2%;vertical-align:top}.wpforms-container.inline-fields .wpforms-submit-container{float:right;width:160px}.wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.wpforms-container.inline-fields input.wpforms-field-medium,.wpforms-container.inline-fields select.wpforms-field-medium,.wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.wpforms-container input[type=date],.wpforms-container input[type=datetime],.wpforms-container input[type=datetime-local],.wpforms-container input[type=email],.wpforms-container input[type=month],.wpforms-container input[type=number],.wpforms-container input[type=password],.wpforms-container input[type=range],.wpforms-container input[type=search],.wpforms-container input[type=tel],.wpforms-container input[type=text],.wpforms-container input[type=time],.wpforms-container input[type=url],.wpforms-container input[type=week],.wpforms-container select,.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:none;font-family:inherit}.wpforms-container input[type=checkbox],.wpforms-container input[type=radio]{width:13px;height:13px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline}.wpforms-container amp-img>img{position:absolute}.wpforms-container .wpforms-recaptcha-container{padding:10px 0 20px 0;clear:both}.wpforms-container .wpforms-field-date-time-date-sep{display:inline-block;padding:0 5px}.wpforms-container .wpforms-field-date-time-date-year,.wpforms-container .wpforms-field-date-time-date-day,.wpforms-container .wpforms-field-date-time-date-month{display:inline-block;width:auto}.wpforms-container .wpforms-field-rating-item{padding:0 6px 0 0;margin:0;display:inline-block}.wpforms-container .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.wpforms-container .wpforms-field-rating-item.selected svg,.wpforms-container .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.wpforms-field-container .wpforms-field-date-time .wpforms-field-row{display:flex;flex-wrap:wrap;align-items:start;gap:10px 4%}.wpforms-field-container .wpforms-field-date-time .wpforms-field-row::before,.wpforms-field-container .wpforms-field-date-time .wpforms-field-row::after{position:absolute}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-date-dropdown-wrap{width:100%}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-field-row-block{flex:1;min-width:30%}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-sublabel{width:100%}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap{align-items:center;display:flex;flex-grow:1;flex-wrap:nowrap;margin:0 -6px 0 -6px}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small{width:calc( 25% + 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-medium{width:calc( 60% + 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-large{width:calc( 100% + 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap select{margin:0 6px 0 6px}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-day,.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-month{width:calc( 30% - 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-year{width:calc( 40% - 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-datepicker{width:clamp(50%, 100px, 100%)}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-datepicker+.wpforms-field-row-block{width:clamp(50%, 100px, 100%)}.wpforms-container .wpforms-datepicker-wrap{position:relative}.wpforms-container .wpforms-datepicker-wrap .wpforms-datepicker-clear{position:absolute;background-image:url(../../../pro/images/times-solid-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-color:#cccccc;background-size:8px;width:16px;height:16px;cursor:pointer;display:block;border-radius:50%;right:10px;top:50%;margin-top:-8px;transition:all 0.3s}.wpforms-container .wpforms-datepicker-wrap .wpforms-datepicker-clear:hover{background-color:red}.wpforms-container .wpforms-datepicker-wrap .wpforms-field-small+.wpforms-datepicker-clear{right:calc( 75% + 10px)}.wpforms-container .wpforms-datepicker-wrap .wpforms-field-medium+.wpforms-datepicker-clear{right:calc( 40% + 10px)}.wpforms-container .wpforms-field-rating-item{padding:0 6px 0 0;margin:0;display:inline-block}.wpforms-container .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.wpforms-container .wpforms-field-rating-item.selected svg,.wpforms-container .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.wpforms-container .wpforms-field-rating-wrapper{display:inline-block}.wpforms-container .wpforms-field-rating-labels{display:flex;justify-content:space-between;gap:10px}.wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.wpforms-container ul.wpforms-image-choices label input{top:50%}.wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px 5px 5px 5px}.wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background-color:#fff;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid #ddd}.wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background-color:#fff;display:inline-block;margin:0 auto;cursor:pointer;border:2px solid #fff;padding:10px;text-align:center}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border-color:#ddd}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:#666 !important}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-container ul.wpforms-icon-choices,.wpforms-container ul.wpforms-icon-choices *{box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.wpforms-container ul.wpforms-icon-choices+.wpforms-field-description,.wpforms-container ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.wpforms-container ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.wpforms-container ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.wpforms-container ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.wpforms-container ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form textarea.wpforms-field-small.wp-editor-area{height:100px}.wpforms-container .wpforms-form textarea.wpforms-field-medium.wp-editor-area{height:250px}.wpforms-container .wpforms-form textarea.wpforms-field-large.wp-editor-area{height:400px}.wpforms-container .wpforms-form textarea.wp-editor-area:focus{outline:none}.wpforms-container .wpforms-field-layout{padding:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#990000}.wpforms-container .wpforms-form .wpforms-field-pagebreak:empty{display:none}ul.wpforms-icon-choices,ul.wpforms-icon-choices *{box-sizing:border-box}ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}ul.wpforms-icon-choices+.wpforms-field-description,ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}ul.wpforms-icon-choices.wpforms-icon-choices-default li,ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}@media only screen and (max-width: 600px){.wpforms-container .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}.wpforms-container .wpforms-field{padding-right:1px;padding-left:1px}.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}.wpforms-container .wpforms-mobile-full{width:100%;margin-left:0;float:none}.wpforms-container .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-list-2-columns ul li,.wpforms-container .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-list-3-columns ul li{float:none;width:100%}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:none;display:block;margin:0 0 10px 0}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}.wpforms-container.inline-fields .wpforms-field-container,.wpforms-container.inline-fields .wpforms-field{display:block;width:100%}.wpforms-container.inline-fields .wpforms-submit-container{width:100%}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-full.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-full.min.css new file mode 100644 index 0000000..af25f7a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/classic/wpforms-full.min.css @@ -0,0 +1 @@ +div.wpforms-container-full,div.wpforms-container-full .wpforms-form *{background:none;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;list-style:none;outline:none;position:static;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}div.wpforms-container-full{margin-left:auto;margin-right:auto}div.wpforms-container-full .wpforms-form amp-img>img{position:absolute}div.wpforms-container-full .wpforms-form input,div.wpforms-container-full .wpforms-form label,div.wpforms-container-full .wpforms-form select,div.wpforms-container-full .wpforms-form button,div.wpforms-container-full .wpforms-form textarea{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;background:none;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}div.wpforms-container-full .wpforms-form textarea{max-width:100%;width:100%}div.wpforms-container-full .wpforms-form ul,div.wpforms-container-full .wpforms-form ul li{background:none !important;border:0 !important;margin:0 !important;padding:0 !important;list-style:none !important}div.wpforms-container-full .wpforms-form ul li{margin-bottom:5px !important}div.wpforms-container-full .wpforms-form ul li:last-of-type{margin-bottom:0 !important}div.wpforms-container-full .wpforms-form hr{border-top:1px solid #ccc;margin:0.5em auto}div.wpforms-container-full .wpforms-form fieldset{min-width:0}.flatpickr-calendar .flatpickr-current-month select{display:initial}@media only screen and (max-width: 600px){.flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.wpforms-container .wpforms-form .wpforms-error-alert{border:1px solid #cccccc;text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-form .wpforms-error-alert{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-is-turnstile iframe{margin-left:-2px !important}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}div.wpforms-container-full .wpforms-form input.wpforms-field-medium,div.wpforms-container-full .wpforms-form select.wpforms-field-medium,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium{max-width:60%}div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium{height:120px}div.wpforms-container-full .wpforms-form input.wpforms-field-small,div.wpforms-container-full .wpforms-form select.wpforms-field-small,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-small{max-width:25%}div.wpforms-container-full .wpforms-form textarea.wpforms-field-small{height:70px}div.wpforms-container-full .wpforms-form input.wpforms-field-large,div.wpforms-container-full .wpforms-form select.wpforms-field-large,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container-full .wpforms-form textarea.wpforms-field-large{height:220px}div.wpforms-container-full .wpforms-form .wpforms-field{padding:10px 0;clear:both}div.wpforms-container-full .wpforms-form .wpforms-field-description,div.wpforms-container-full .wpforms-form .wpforms-field-limit-text{font-size:13px;line-height:1.3;margin:8px 0 0 0;word-break:break-word;word-wrap:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description{background-color:#fff;border:1px solid #ddd;color:#444;padding:15px 15px 0;margin-top:15px;height:125px;overflow-y:scroll;overflow-x:hidden;font-size:12px}div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description p{color:#444;font-size:12px;line-height:18px;margin-bottom:15px}div.wpforms-container-full .wpforms-form .wpforms-field-description-before,div.wpforms-container-full .wpforms-form .wpforms-field-description.before{margin:0 0 8px 0}div.wpforms-container-full .wpforms-form .wpforms-field-label{display:block;font-weight:700;font-size:16px;float:none;line-height:1.3;margin:0 0 4px 0;padding:0;word-break:break-word;word-wrap:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-sublabel{display:block;font-size:13px;float:none;font-weight:400;line-height:1.3;margin:4px 0 0;padding:0;word-break:break-word;word-wrap:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-sublabel.before{margin:0 0 4px 0}div.wpforms-container-full .wpforms-form .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-size:16px;font-weight:400;line-height:1.3;word-break:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-label.wpforms-label-hide,div.wpforms-container-full .wpforms-form .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}div.wpforms-container-full .wpforms-form .wpforms-required-label{color:#ff0000;font-weight:400}div.wpforms-container-full .wpforms-form .wpforms-field-row{margin-bottom:8px;position:relative}div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}div.wpforms-container-full .wpforms-form .wpforms-field-row:before{content:"";display:table}div.wpforms-container-full .wpforms-form .wpforms-field-row:after{clear:both;content:"";display:table}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-one-half:only-child{margin-left:0}div.wpforms-container-full .wpforms-form .wpforms-five-sixths,div.wpforms-container-full .wpforms-form .wpforms-four-sixths,div.wpforms-container-full .wpforms-form .wpforms-four-fifths,div.wpforms-container-full .wpforms-form .wpforms-one-fifth,div.wpforms-container-full .wpforms-form .wpforms-one-fourth,div.wpforms-container-full .wpforms-form .wpforms-one-half,div.wpforms-container-full .wpforms-form .wpforms-one-sixth,div.wpforms-container-full .wpforms-form .wpforms-one-third,div.wpforms-container-full .wpforms-form .wpforms-three-fourths,div.wpforms-container-full .wpforms-form .wpforms-three-fifths,div.wpforms-container-full .wpforms-form .wpforms-three-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-fourths,div.wpforms-container-full .wpforms-form .wpforms-two-fifths,div.wpforms-container-full .wpforms-form .wpforms-two-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-thirds{float:left;margin-left:20px;clear:none}div.wpforms-container-full .wpforms-form .wpforms-one-half,div.wpforms-container-full .wpforms-form .wpforms-three-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-fourths{width:calc( 50% - 10px)}div.wpforms-container-full .wpforms-form .wpforms-one-third,div.wpforms-container-full .wpforms-form .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-third.wpforms-first,div.wpforms-container-full .wpforms-form .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}div.wpforms-container-full .wpforms-form .wpforms-four-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-four-sixths.wpforms-first,div.wpforms-container-full .wpforms-form .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}div.wpforms-container-full .wpforms-form .wpforms-one-fourth{width:calc( 25% - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-fourth.wpforms-first{width:25%}div.wpforms-container-full .wpforms-form .wpforms-three-fourths{width:calc( 75% - 20px)}div.wpforms-container-full .wpforms-form .wpforms-three-fourths.wpforms-first{width:75%}div.wpforms-container-full .wpforms-form .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}div.wpforms-container-full .wpforms-form .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}div.wpforms-container-full .wpforms-form .wpforms-first{clear:both !important;margin-left:0 !important}div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul li{width:50%;display:block;padding-right:26px !important}div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li{width:33.3333%;display:block;padding-right:26px !important}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-half{float:left;width:48%;clear:both}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-last-half{float:right;width:48%;clear:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-third{float:left;width:30.666666667%;clear:both}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-middle-third{float:left;width:30.666666667%;margin-left:4%;clear:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-last-third{float:right;width:30.666666667%;clear:none}div.wpforms-container-full .wpforms-form div.wpforms-last{float:right !important;margin-right:0 !important;clear:none}div.wpforms-container-full.inline-fields{overflow:visible}div.wpforms-container-full.inline-fields .wpforms-form{display:flex;align-items:flex-end}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-container{display:table;width:calc(100% - 160px);float:left}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field{display:table-cell;padding-right:2%;vertical-align:top}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit-container{float:right;width:160px;clear:none;padding-bottom:10px}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit{display:block;width:100%}div.wpforms-container-full.inline-fields .wpforms-form input.wpforms-field-medium,div.wpforms-container-full.inline-fields .wpforms-form select.wpforms-field-medium,div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-row.wpforms-field-medium{max-width:100%}div.wpforms-container-full .wpforms-form input[type=date],div.wpforms-container-full .wpforms-form input[type=datetime],div.wpforms-container-full .wpforms-form input[type=datetime-local],div.wpforms-container-full .wpforms-form input[type=email],div.wpforms-container-full .wpforms-form input[type=month],div.wpforms-container-full .wpforms-form input[type=number],div.wpforms-container-full .wpforms-form input[type=password],div.wpforms-container-full .wpforms-form input[type=range],div.wpforms-container-full .wpforms-form input[type=search],div.wpforms-container-full .wpforms-form input[type=tel],div.wpforms-container-full .wpforms-form input[type=text],div.wpforms-container-full .wpforms-form input[type=time],div.wpforms-container-full .wpforms-form input[type=url],div.wpforms-container-full .wpforms-form input[type=week],div.wpforms-container-full .wpforms-form select,div.wpforms-container-full .wpforms-form textarea{background-color:#fff;box-sizing:border-box;border-radius:2px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;display:block;float:none;font-size:16px;font-family:inherit;border:1px solid #ccc;padding:6px 10px;height:38px;width:100%;line-height:1.3}div.wpforms-container-full .wpforms-form textarea{min-height:38px;resize:vertical}div.wpforms-container-full .wpforms-form input[type=checkbox],div.wpforms-container-full .wpforms-form input[type=radio]{border:1px solid #ccc;background-color:#fff;width:14px;height:14px;margin:0 10px 0 3px;display:inline-block;vertical-align:baseline}div.wpforms-container-full .wpforms-form input[type=radio]{border-radius:50%}div.wpforms-container-full .wpforms-form select{max-width:100%;text-transform:none;white-space:nowrap}div.wpforms-container-full .wpforms-form select[multiple]{height:auto;overflow-y:scroll;background-image:none}div.wpforms-container-full .wpforms-form input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}div.wpforms-container-full .wpforms-form input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}div.wpforms-container-full .wpforms-form input[type=submit],div.wpforms-container-full .wpforms-form button[type=submit],div.wpforms-container-full .wpforms-form .wpforms-page-button{background-color:#eee;border:1px solid #ddd;color:#333;font-size:1em;font-family:inherit;padding:10px 15px}div.wpforms-container-full .wpforms-form .wpforms-page-button{font-size:0.9em;font-weight:400;margin:0 5px;min-width:90px;text-align:center}div.wpforms-container-full .wpforms-form input[type=submit]:hover,div.wpforms-container-full .wpforms-form input[type=submit]:focus,div.wpforms-container-full .wpforms-form input[type=submit]:active,div.wpforms-container-full .wpforms-form button[type=submit]:hover,div.wpforms-container-full .wpforms-form button[type=submit]:focus,div.wpforms-container-full .wpforms-form button[type=submit]:active,div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,div.wpforms-container-full .wpforms-form .wpforms-page-button:active,div.wpforms-container-full .wpforms-form .wpforms-page-button:focus{background-color:#ddd;border:1px solid #ccc;cursor:pointer}div.wpforms-container-full .wpforms-form input[type=submit]:disabled,div.wpforms-container-full .wpforms-form button[type=submit]:disabled,div.wpforms-container-full .wpforms-form .wpforms-page-button:disabled{background-color:#eee;border:1px solid #ddd;cursor:default;opacity:0.5}div.wpforms-container-full .wpforms-form input:focus,div.wpforms-container-full .wpforms-form textarea:focus,div.wpforms-container-full .wpforms-form select:focus,div.wpforms-container-full .wpforms-form .is-focused .choices__inner,div.wpforms-container-full .wpforms-form .is-open .choices__inner,div.wpforms-container-full .wpforms-form .is-open .choices__list--dropdown{border:1px solid #999;box-shadow:none}div.wpforms-container-full .wpforms-form input:disabled,div.wpforms-container-full .wpforms-form textarea:disabled,div.wpforms-container-full .wpforms-form select:disabled{background-color:#f9f9f9;border-color:#ddd;color:#999;cursor:not-allowed}div.wpforms-container-full .wpforms-error-container.wpforms-error-styled-container{padding:10px 0;font-size:15px}div.wpforms-container-full .wpforms-error-container.wpforms-error-styled-container .wpforms-error{padding:6px;border:1px solid #990000;border-left:5px solid}div.wpforms-container-full .wpforms-form .wpforms-error-container,div.wpforms-container-full .wpforms-form noscript.wpforms-error-noscript{color:#990000}div.wpforms-container-full .wpforms-form label.wpforms-error{display:block;color:#990000;font-size:12px;float:none;cursor:default;margin-top:8px}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #cc0000}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration label.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-code label.wpforms-error{display:none !important}.wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full{color:#333;margin:0 auto 24px;padding:15px 15px;overflow-wrap:break-word}.wpforms-confirmation-container-full iframe,div[submit-success]>.wpforms-confirmation-container-full iframe{width:100%;border:0}.wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message){background:#e0ffc7;border:1px solid #b4d39b;box-sizing:border-box}.wpforms-confirmation-container-full p,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p{color:#333333}.wpforms-confirmation-container-full p:last-of-type,div[submit-success]>.wpforms-confirmation-container-full p:last-of-type{margin:0}.amp-form-submit-success .wpforms-field-container,.amp-form-submit-success .wpforms-submit-container{display:none}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container{padding:10px 0 20px 0;clear:both}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile-invisible{padding:0}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .g-recaptcha,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .h-captcha,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .cf-turnstile{line-height:0;font-size:0}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .g-recaptcha iframe,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .h-captcha iframe,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .cf-turnstile iframe{position:relative !important}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container iframe{width:100%;max-width:100%}div.wpforms-container-full .wpforms-form .wpforms-title{font-size:26px;margin:0 0 10px 0}div.wpforms-container-full .wpforms-form .wpforms-description{margin:0 0 10px 0}div.wpforms-container-full .wpforms-form .wpforms-submit-container{padding:10px 0 0 0;clear:both;position:relative}div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{margin-inline-start:0.5em;display:inline-block;vertical-align:middle;max-width:26px}div.wpforms-container-full .wpforms-form .wpforms-field-pagebreak:empty{display:none}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-center{text-align:center}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-left{text-align:left}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-left .wpforms-page-button{margin:0 10px 0 0}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-right{text-align:right}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-right .wpforms-page-button{margin:0 0 0 10px}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-split .wpforms-page-prev{float:left;margin:0}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-split .wpforms-page-next{float:right;margin:0}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-number{margin-right:100px;width:calc( 100% - 120px)}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-code{position:absolute;right:0;top:0;width:110px}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-name{margin-right:170px}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration{position:absolute;right:0;top:0;width:160px}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration select{width:45%;float:left;display:block}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration span{float:left;width:10%;text-align:center;line-height:38px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{-webkit-appearance:none;appearance:none;height:10px;background:#fff;border:1px solid #CCC;border-radius:5px;outline:none;padding:0;margin:10px 0 5px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-track{color:transparent}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-moz-range-thumb{width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-thumb{width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint{font-size:13px}div.wpforms-container-full .wpforms-form .wpforms-field-stripe-credit-card-cardnumber,div.wpforms-container-full .wpforms-form input.wpforms-stripe-credit-card-hidden-input{background-color:#fff;box-sizing:border-box;border-radius:2px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;display:block;float:none;font-size:16px;border:1px solid #ccc;padding:8px 10px;height:38px;width:100%;line-height:1.3}div.wpforms-container-full .wpforms-form .wpforms-stripe-element-invalid{border:1px solid #cc0000 !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ul,div.wpforms-container-full .wpforms-form .wpforms-field-html ol{margin:0 0 20px !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ul li,div.wpforms-container-full .wpforms-form .wpforms-field-html ol li{margin:0 0 5px 0 !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ul li{list-style:disc !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ol li{list-style:decimal !important}div.wpforms-container-full .wpforms-form .wpforms-field-html li>ul,div.wpforms-container-full .wpforms-form .wpforms-field-html li>ol{margin:6px 0 0 20px !important}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row{display:flex;flex-wrap:wrap;align-items:start;gap:10px 12px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row::before,div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row::after{position:absolute}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;width:clamp(calc( 50% - 12px), 100px, 100%)}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-field-row-block{width:clamp(calc( 50% - 12px), 100px, 100%);flex:1;min-width:30%}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-date-dropdown-wrap{width:100%}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-sublabel{width:100%}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;margin:0 -6px 0 -6px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small{width:calc( 25% + 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small select{appearance:none;background-image:none;padding-left:5px;padding-right:5px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-medium{width:calc( 60% + 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-large{width:calc( 100% + 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap select{margin:0 6px 0 6px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row-block .wpforms-field-date-dropdown-wrap{width:100%}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-day,div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-month{width:calc( 30% - 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-year{width:calc( 40% - 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-datepicker{width:clamp(calc( 50% - 12px), 100px, 100%)}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-datepicker+.wpforms-field-row-block{width:clamp(50%, 100px, 100%)}div.wpforms-container-full .wpforms-datepicker-wrap{position:relative}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear{position:absolute;background-image:url("../../../pro/images/times-solid-white.svg") !important;background-position:50% 50% !important;background-repeat:no-repeat !important;background-color:#cccccc !important;background-size:8px !important;width:16px;height:16px;cursor:pointer;display:block;border-radius:50%;right:10px;top:50%;margin-top:-8px;transition:all 0.3s}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear:hover,div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear:focus{background-color:red !important}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-field-small+.wpforms-datepicker-clear{right:calc( 75% + 10px)}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-field-medium+.wpforms-datepicker-clear{right:calc( 40% + 10px)}div.wpforms-container-full .wpforms-form .wpforms-captcha-math input{display:inline-block;width:70px;vertical-align:inherit;margin:0 0 0 5px}div.wpforms-container-full .wpforms-form .wpforms-captcha-equation{font-size:16px}div.wpforms-container-full .wpforms-form .wpforms-captcha-question{margin:0 0 4px 0}div.wpforms-container-full .wpforms-form .wpforms-field-rating-item{padding-right:6px}div.wpforms-container-full .wpforms-form .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.selected svg,div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}div.wpforms-container-full .wpforms-form .wpforms-field-rating-wrapper{display:inline-block}div.wpforms-container-full .wpforms-form .wpforms-field-rating-labels{display:flex;justify-content:space-between;gap:10px}div.wpforms-container-full .wpforms-form .wpforms-field-layout{padding:0}div.wpforms-field-file-upload .wpforms-hide{display:none !important}div.wpforms-field-file-upload input[type=file]{font-style:normal;font-weight:400;font-size:16px;line-height:22px;padding:1px;height:auto;width:60%;border:none !important;box-shadow:none}div.wpforms-field-file-upload input[type=file]::-webkit-file-upload-button{padding:4px 12px;font-weight:400;font-size:14px;margin-right:10px;cursor:pointer;transition:all 0.15s ease-out}div.wpforms-field-file-upload input[type=file]:hover::-webkit-file-upload-button{background:#eeeeee}div.wpforms-field-file-upload p.wpforms-file-upload-capture-camera-classic{margin-top:20px;display:block}div.wpforms-field-file-upload p.wpforms-file-upload-capture-camera-classic a.camera{color:var(--wpforms-field-text-color);text-decoration:underline}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern{border:2px dashed rgba(0,0,0,0.1);background:rgba(0,0,0,0.02);padding:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern.wpforms-with-files{padding:5px;flex-direction:row;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern svg{height:50px;width:50px;color:#e27730}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-modern-title{font-weight:bold}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-modern-hint{color:rgba(0,0,0,0.1)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern.wpforms-highlighted{border-color:#e27730}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-text{display:flex;align-items:center;justify-content:center;flex-direction:column}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block{width:100px;height:100px;border:1px solid rgba(0,0,0,0.1);background:#fff;background-size:cover !important;margin:5px;position:relative;display:flex;align-items:center;justify-content:center;cursor:default}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block:hover .wpforms-overlay{opacity:1}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay{position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0.5);opacity:0}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close{position:absolute;right:5px;top:5px;cursor:pointer;display:block;width:18px;height:18px}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-title{position:absolute;font-size:12px;color:#fff;top:25px;bottom:10px;left:5px;right:5px;overflow-y:auto;line-height:16px}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-left,div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-right{height:18px;width:1px;background:#fff;position:absolute;display:block;z-index:1;right:9px}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-left{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-right{-webkit-transform:rotate(45deg);transform:rotate(45deg)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block svg{height:25px;width:25px;color:rgba(0,0,0,0.1)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-progress{height:5px;width:0;position:absolute;bottom:0;left:0;background:#e27730;transition:all 0.5s}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern input[type="file"]{display:none}.wpforms-container .wpforms-field-radio .wpforms-other-input{margin-top:16px}body div.wpforms-container-full .wpforms-camera-link{color:#036AAB;text-decoration:underline;font-size:16px}body div.wpforms-container-full .wpforms-camera-link:hover{text-decoration:none}body div.wpforms-container-full .wpforms-camera-link:focus{outline:2px solid #036AAB;outline-offset:2px;text-decoration:none}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button{display:inline-flex;align-items:center;gap:7px;line-height:100%;cursor:pointer;padding:0 15px;border:1px solid #ccc;height:41px;background-color:#fff;color:#333;font-size:16px}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button:hover,body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button:focus{border-color:#bbb}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button svg{fill:#bbb;width:1.1em;height:auto;flex-shrink:0;vertical-align:middle}body div.wpforms-container-full .wpforms-field-camera input[type="file"]{display:none}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file{display:none;align-items:center;gap:10px;color:#777777;font-size:15px}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file svg{fill:#D63638;cursor:pointer}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file svg:hover{opacity:.75}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file .wpforms-camera-remove-file{height:15px}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file.wpforms-camera-selected-file-active{display:inline-flex}body div.wpforms-container-full .wpforms-layout-column-33 .wpforms-camera-selected-file.wpforms-camera-selected-file-active{display:block}body div.wpforms-container-full .wpforms-layout-column-33 .wpforms-camera-selected-file.wpforms-camera-selected-file-active button{margin-left:5px}body div.wpforms-container-full div.wpforms-camera-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;z-index:999999}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions{justify-content:space-between;position:relative}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown{font-family:monospace;font-size:14px;color:#999999;flex:0 0 auto;font-weight:500;min-width:120px;text-align:left;white-space:nowrap}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{display:inline-block}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown div{display:inline}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:absolute;left:50%;transform:translateX(-50%)}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture{background-color:#D63638}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:hover{background-color:#b32d2e}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{width:48px;height:48px;border-radius:50%;background-color:#D63638;display:flex;align-items:center;justify-content:center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop:after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:18px;height:18px;background-color:#fff;border-radius:4px}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop:hover{background-color:#b32d2e}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button{border:none}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel{width:26px;background:url(../../../pro/images/camera-video.svg) no-repeat center}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop{background:url(../../../images/crop.svg) no-repeat center}body div.wpforms-container-full div.wpforms-camera-modal{background:#FFFFFF;max-width:100%;width:540px;height:440px;display:flex;flex-direction:column;border-radius:9px;box-shadow:-4px 5px 15px 0 rgba(0,0,0,0.15);overflow:hidden;position:relative;z-index:1000000}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{display:flex;height:62px;padding:16px 30px;justify-content:space-between;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-title{font-size:18px;font-weight:700;color:#444444}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close{cursor:pointer;width:12px;height:12px;display:flex;justify-content:center;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close svg{fill:#BBBBBB;width:12px;height:12px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:300px;background-color:#dedede;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{display:none;width:100%;height:auto;position:relative;overflow:hidden;justify-content:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview video{max-width:100%;height:auto;width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview .wpforms-camera-captured-photo{max-width:100%;height:auto;width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas{min-height:0;width:100%;height:100%;display:block}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-shade{outline-style:solid;outline-color:rgba(0,0,0,0.75)}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-image{max-width:100%;max-height:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle::after{width:8px !important;height:8px !important}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-selection{min-width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle{background-color:transparent;height:15px;position:absolute;width:15px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle[action=move]{height:100%;left:0;top:0;width:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-grid{position:absolute}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-grid[bordered]{border:2px solid #fff !important}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-error{display:none;padding:20px;text-align:center;color:#d63637;font-size:16px;line-height:1.5}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{height:78px;min-height:78px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e6e9ec}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-text{font-size:14px;color:#555}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{display:flex;width:100%;justify-content:space-between;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions button{border:none;outline:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture{width:48px;height:48px;border-radius:50%;background-color:#036AAB;display:flex;align-items:center;justify-content:center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:hover,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:focus{outline:none;background-color:#215d8f}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:disabled{opacity:.5;cursor:not-allowed}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown{position:absolute;left:50%;transform:translateX(-50%)}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{display:none;position:absolute;right:20px;width:24px;height:24px;background:url(../../../pro/images/camera-rotate.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#999999;font-size:24px;font-weight:500}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown svg{position:absolute;top:0;left:0;width:48px;height:48px;transform:rotate(-90deg)}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle{cx:24px;cy:24px;r:calc((48px - 4px) / 2);stroke-width:4px;fill:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle.bg{stroke:#dedede}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle.progress{stroke:#036AAB;stroke-linecap:round;transform-origin:24px 24px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown.animate circle.progress{animation:wpforms-camera-countdown 3s linear forwards}@keyframes wpforms-camera-countdown{0%{stroke-dasharray:0 calc(calc((48px - 4px) / 2) * 3.14159 * 2)}100%{stroke-dasharray:calc(calc((48px - 4px) / 2) * 3.14159 * 2) 0}}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons{display:flex;width:100%;justify-content:space-between;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button{border:none;outline:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button:focus{outline:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel{width:24px;height:24px;background:url(../../../pro/images/camera.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop{font-size:15px;padding:0 15px;background-color:#036AAB;color:#fff;border-radius:3px;height:41px;font-weight:500;line-height:100%;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept:hover,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept:focus,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop:hover,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop:focus{background-color:#215d8f}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop{visibility:hidden;width:24px;height:24px;background:url(../../../pro/images/crop.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop-cancel{width:24px;height:24px;background:url(../../../pro/images/cancel.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop-cancel:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel-video{width:24px;height:24px;background:url(../../../pro/images/trash.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel-video:hover{opacity:.75}body.wpforms-camera-modal-open{overflow:hidden;position:fixed;width:100%}@media only screen and (max-width: 767px) and (orientation: portrait){body div.wpforms-container-full div.wpforms-camera-modal{height:75vh;max-height:75vh;width:90vw;max-width:90vw}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{padding:20px 16px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:0;height:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{height:auto;width:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{padding:0 20px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip.wpforms-camera-flip-active{display:block}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{position:static}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{text-align:left}}@media only screen and (max-width: 1024px) and (orientation: landscape){body div.wpforms-container-full div.wpforms-camera-modal{flex-direction:row;width:80vw;max-width:90vw;height:75vh;max-height:75vh}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:0;height:100%;flex-grow:1}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{height:auto;width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview .wpforms-camera-captured-photo{object-fit:cover}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{flex-direction:column-reverse;height:100%;padding:20px 16px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-title{writing-mode:vertical-lr;transform:rotate(180deg);text-align:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{height:100%;flex-direction:row;padding:20px 0;width:78px;min-width:78px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{justify-content:center;display:flex;flex-direction:column-reverse}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:relative;left:auto;transform:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{left:calc(100% - 52px);top:20px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip.wpforms-camera-flip-active{display:block}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons{flex-direction:column-reverse;height:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop{transform:rotate(-90deg);transform-origin:center;width:max-content}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview{max-height:100%}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview video{max-height:100%;object-fit:cover}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview .wpforms-camera-captured-photo{object-fit:cover}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{height:100%}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:absolute;left:auto;top:50%;transform:translateY(-50%)}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{position:static}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown{min-width:auto}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{text-align:center}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown div{display:none !important}}@media only screen and (max-width: 767px){body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-video-countdown div{display:none !important}}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label input{top:50%}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-modern li{margin:5px 5px 5px 5px !important}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error){background-color:#fff;display:block;margin:0 auto;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error):hover,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error):focus{border:1px solid #ddd}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error){background-color:#fff;display:block;margin:0 auto;border:2px solid #fff;padding:10px;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error):hover,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error):focus{border-color:#ddd}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-image{display:block}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic li:has(input:checked) label{border-color:#666 !important}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices *{box-sizing:border-box}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices+.wpforms-field-description,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-page-indicator{margin:0 0 20px 0;overflow:hidden}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles{border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:15px 10px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:left;margin:0 20px 0 0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page:last-of-type{margin:0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{height:40px;width:40px;border-radius:50%;display:inline-block;margin:0 10px 0 0;line-height:40px;text-align:center;background-color:#ddd;color:#666}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .active .wpforms-page-indicator-page-number{color:#fff}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{float:left;text-align:center;font-size:16px;line-height:1.2}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:block;text-indent:-9999px;height:6px;background-color:#ddd;margin:0 0 16px 0;position:relative}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-triangle{position:absolute;top:100%;left:50%;width:0;height:0;margin-left:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:transparent transparent transparent transparent}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:inline-block;padding:0 15px;font-size:16px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress{font-size:18px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{display:block;width:100%;background-color:#ddd;height:18px;border-radius:10px;overflow:hidden;position:relative;margin:5px 0 0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress{height:18px;position:absolute;left:0;top:0}div.wpforms-container-full .wpforms-form .wpforms-field-select select>option{color:inherit}div.wpforms-container-full .wpforms-form .wpforms-field-select select>option.placeholder,div.wpforms-container-full .wpforms-form .wpforms-field-select select>option[disabled]{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:0}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:10px 8px}}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option{padding:8px 10px;box-shadow:0 1px 0 0 rgba(0,0,0,0.1)}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option.placeholder,div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option[disabled]{box-shadow:0 1px 0 0 rgba(0,0,0,0.2)}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option:checked{background-color:lightgrey}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select{text-indent:2px}}div.wpforms-container-full .wpforms-form .choices{font-size:16px;color:#333}div.wpforms-container-full .wpforms-form .choices .choices__list--single{font-size:1em;line-height:normal}div.wpforms-container-full .wpforms-form .choices.is-open.is-flipped .choices__inner,div.wpforms-container-full .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 2px 2px}div.wpforms-container-full .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,div.wpforms-container-full .wpforms-form .choices.is-open .choices__inner{border-radius:2px 2px 0 0}div.wpforms-container-full .wpforms-form .choices .choices__inner{min-height:38px;line-height:38px;border-radius:2px;padding-top:0}div.wpforms-container-full .wpforms-form .choices input.choices__input{display:inline-block;height:auto;line-height:1.3}div.wpforms-container-full .wpforms-form .choices ::-webkit-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .choices ::-moz-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .choices :-ms-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty+.choices__input{min-width:100% !important;text-overflow:ellipsis;padding-right:4px !important;margin-bottom:1px !important;white-space:nowrap}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner input[disabled]{opacity:1}div.wpforms-container-full .wpforms-notice{background-color:#fff;border:1px solid #ddd;border-left-width:12px;color:#333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}div.wpforms-container-full .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;outline:none;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}div.wpforms-container-full .wpforms-notice .wpforms-delete:before,div.wpforms-container-full .wpforms-notice .wpforms-delete:after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}div.wpforms-container-full .wpforms-notice .wpforms-delete:before{height:2px;width:50%}div.wpforms-container-full .wpforms-notice .wpforms-delete:after{height:50%;width:2px}div.wpforms-container-full .wpforms-notice .wpforms-delete:hover,div.wpforms-container-full .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}div.wpforms-container-full .wpforms-notice a{text-decoration:underline}div.wpforms-container-full .wpforms-notice p{margin:0 0 20px 0}div.wpforms-container-full .wpforms-notice p:last-of-type{margin-bottom:0}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-info{border-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-success{border-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-warning{border-color:#ffdd57}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-error{border-color:#ff3860}div.wpforms-container-full .wpforms-notice .wpforms-notice-actions{margin-top:20px}div.wpforms-container-full .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}div.wpforms-container-full .wpforms-notice .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:active{color:#fff}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#ff3860}div.wpforms-container-full .wpforms-form textarea.wpforms-field-small.wp-editor-area{height:100px}div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium.wp-editor-area{height:250px}div.wpforms-container-full .wpforms-form textarea.wpforms-field-large.wp-editor-area{height:400px}.wpforms-preview-notice-links{line-height:2.4}.wpforms-preview-notice{background-color:#fcf9e8;border:1px solid #f5e6ab;padding:15px;box-sizing:border-box;font-size:16px}.wpforms-preview-notice p{margin:0}div.wpforms-container-full{margin:24px auto}div.wpforms-container-full .wpforms-form h3{font-size:24px}div.wpforms-container-full .wpforms-form .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}div.wpforms-container-full .wpforms-form .wpforms-field-hidden{display:none;padding:0}div.wpforms-container-full .wpforms-form .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;width:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;word-wrap:normal !important}div.wpforms-container-full .wpforms-form .wpforms-limit-text{font-size:13px;display:block}body.rtl .wpforms-field-phone input[type=tel]{direction:ltr;unicode-bidi:embed;text-align:right}body.rtl .wpforms-container-full .wpforms-form .wpforms-first{float:right}body.rtl .wpforms-container-full .wpforms-form .wpforms-first+.wpforms-one-half{margin-right:4%;margin-left:0}div.wpforms-container-full .wpforms-form .wpforms-error-container ul li{list-style:inside !important}div.wpforms-container-full .wpforms-form .wpforms-error-container ol li{list-style:inside decimal !important}div.wpforms-container-full .wpforms-form .wpforms-error-container a{text-decoration:underline !important}div.wpforms-container-full .wpforms-form .wpforms-error-container del{text-decoration:line-through !important}div.wpforms-container-full .wpforms-form .wpforms-error-container blockquote{padding-left:20px;border-left:4px solid;font-style:italic}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-form .wpforms-order-summary-container *,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container *,.wpforms-confirmation-container-full .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .wpforms-form .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-form .wpforms-field-large>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .size-large>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-field-large>.wpforms-order-summary-container,.wpforms-confirmation-container-full .size-large>.wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .wpforms-form .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-form .wpforms-field-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .size-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-field-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-full .size-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.wpforms-container .wpforms-form .wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{font-size:16px}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:color-mix(in srgb, currentColor 25%, transparent)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total),.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total),.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total){color:color-mix(in srgb, currentColor 50%, transparent);border-color:color-mix(in srgb, currentColor 50%, transparent)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#990000;border-color:color-mix(in srgb, black 25%, transparent)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:currentColor;border-color:color-mix(in srgb, currentColor 25%, transparent)}.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{max-width:100%;margin-bottom:24px}.wpforms-confirmation-container-order-summary .wpforms-order-summary-container tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container tr td{color:color-mix(in srgb, currentColor 75%, transparent)}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}@media only screen and (max-width: 600px){div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-container,div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field{display:block;width:100%}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit-container{width:100%}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:none}div.wpforms-container-full .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}div.wpforms-container-full .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}div.wpforms-container-full .wpforms-form .wpforms-field>*{max-width:100%}div.wpforms-container-full .wpforms-form .wpforms-mobile-full{width:100% !important;margin-left:0 !important;float:none !important}div.wpforms-container-full .wpforms-form input.wpforms-field-medium,div.wpforms-container-full .wpforms-form select.wpforms-field-medium,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium,div.wpforms-container-full .wpforms-form input.wpforms-field-small,div.wpforms-container-full .wpforms-form select.wpforms-field-small,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-small,div.wpforms-container-full .wpforms-form input.wpforms-field-large,div.wpforms-container-full .wpforms-form select.wpforms-field-large,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li{float:none;width:100%}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{margin:0 10px 0 0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{margin:20px 0 15px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{width:30px;height:30px}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-base.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-base.min.css new file mode 100644 index 0000000..3deb630 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-base.min.css @@ -0,0 +1 @@ +.wpforms-container .wpforms-error-container,.wpforms-container .wpforms-error-noscript{color:#D63637}.wpforms-container .wpforms-error-styled-container{padding:15px 0}.wpforms-container .wpforms-error-styled-container p{margin:0}.wpforms-container .wpforms-error-styled-container+.wpforms-submit-container{margin-top:10px}.wpforms-container label.wpforms-error,.wpforms-container em.wpforms-error{display:block;color:#D63637;font-size:0.9em;font-style:normal;cursor:default;min-width:120px}.wpforms-container .wpforms-field input.wpforms-error,.wpforms-container .wpforms-field input.user-invalid,.wpforms-container .wpforms-field textarea.wpforms-error,.wpforms-container .wpforms-field textarea.user-invalid,.wpforms-container .wpforms-field select.wpforms-error,.wpforms-container .wpforms-field select.user-invalid{border:1px solid #D63637}.wpforms-container .wpforms-field input[type=checkbox].wpforms-error,.wpforms-container .wpforms-field input[type=checkbox].user-invalid,.wpforms-container .wpforms-field input[type=radio].wpforms-error,.wpforms-container .wpforms-field input[type=radio].user-invalid{border:none}.wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #D63637}.wpforms-container .wpforms-error-alert{border:1px solid rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-error-alert{color:#D63637;background-color:#f2dede;border-color:#f2dede}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.wpforms-container .wpforms-recaptcha-container{padding:0;clear:both}.wpforms-container .wpforms-recaptcha-container iframe{display:block;width:100%;max-width:100%}.wpforms-container .wpforms-recaptcha-container .g-recaptcha,.wpforms-container .wpforms-recaptcha-container .h-captcha,.wpforms-container .wpforms-recaptcha-container .cf-turnstile{padding:10px 0 0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile.wpforms-is-turnstile-invisible{padding:0;height:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile iframe{position:relative !important;visibility:inherit !important}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .cf-turnstile{padding:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .wpforms-error:first-of-type{margin-top:10px}.wpforms-container amp-img>img{position:absolute}.wpforms-container .amp-form-submit-success .wpforms-field-container,.wpforms-container .amp-form-submit-success .wpforms-submit-container{display:none}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}body.rtl .wpforms-container .wpforms-form input[type=tel]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=email]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=email]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=number]::-webkit-textfield-decoration-container{flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-datepicker-wrap .wpforms-datepicker-clear{right:auto;left:10px}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .ui-timepicker-list li{padding:3px 5px 3px 0 !important}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-field-medium+.wpforms-datepicker-clear{left:calc( 40% + 10px);right:auto}body.rtl .wpforms-container .wpforms-form .wpforms-field-file-upload .dz-remove{right:auto;left:0}body.rtl .wpforms-container .wpforms-form .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{margin-left:0;margin-right:10px}body.rtl .ui-timepicker-list li{padding:3px 5px 3px 0}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-email .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-address .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-password .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-name .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive-name-field}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row-responsive{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}@container wpforms-field-row-responsive-name-field (max-width: 260px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns,.wpforms-container .wpforms-form .wpforms-list-2-columns{container-type:inline-size;container-name:wpforms-field-2-columns-responsive}@container wpforms-field-2-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-form .wpforms-list-2-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-form .wpforms-list-2-columns ul li{width:100%}}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns,.wpforms-container .wpforms-form .wpforms-list-3-columns{container-type:inline-size;container-name:wpforms-field-3-columns-responsive}@container wpforms-field-3-columns-responsive (max-width: 480px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@container wpforms-field-3-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@media only screen and (max-width: 600px){div.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}div.wpforms-container .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container .wpforms-form .wpforms-mobile-full{width:100%;margin-left:0}div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{display:block;margin:0 0 10px 0}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}div.wpforms-container .wpforms-form.inline-fields .wpforms-field-container,div.wpforms-container .wpforms-form.inline-fields .wpforms-field{display:block;width:100%}div.wpforms-container .wpforms-form.inline-fields .wpforms-submit-container{width:100%}}.wpforms-container{margin-bottom:26px}.wpforms-container .wpforms-form *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-form .wpforms-field-label,.wpforms-container .wpforms-form .wpforms-field-sublabel,.wpforms-container .wpforms-form .wpforms-field-description,.wpforms-container .wpforms-form textarea,.wpforms-container .wpforms-form li,.wpforms-container .wpforms-form th{hyphens:auto}.wpforms-container ul,.wpforms-container ul li{background:none;border:0;margin:0}.wpforms-container .wpforms-title{font-size:24px;font-weight:700;margin:0 0 10px 0}.wpforms-container .wpforms-submit-container{clear:both;position:relative}.wpforms-container .wpforms-submit-spinner{margin-inline-start:15px;display:inline-block;vertical-align:middle}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-container .wpforms-notice{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);border-left-width:12px;color:#333333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:50%;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.wpforms-container .wpforms-notice .wpforms-delete:before,.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#ffffff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.wpforms-container .wpforms-notice .wpforms-delete:hover,.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.wpforms-container .wpforms-notice a{text-decoration:underline}.wpforms-container .wpforms-notice p{margin:0 0 20px 0}.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.wpforms-container .wpforms-notice .wpforms-notice-actions{margin-top:20px}.wpforms-container .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.wpforms-container .wpforms-notice .wpforms-notice-action:hover,.wpforms-container .wpforms-notice .wpforms-notice-action:focus,.wpforms-container .wpforms-notice .wpforms-notice-action:active{color:#ffffff}.wpforms-container .wpforms-notice.wpforms-info{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-success{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.wpforms-container .wpforms-notice.wpforms-warning{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.wpforms-container .wpforms-notice.wpforms-error{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#D63637}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}.wpforms-container input.wpforms-field-medium,.wpforms-container select.wpforms-field-medium,.wpforms-container .wpforms-field-row.wpforms-field-medium,.wp-core-ui div.wpforms-container input.wpforms-field-medium,.wp-core-ui div.wpforms-container select.wpforms-field-medium,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.wpforms-container input.wpforms-field-small,.wpforms-container select.wpforms-field-small,.wpforms-container .wpforms-field-row.wpforms-field-small,.wp-core-ui div.wpforms-container input.wpforms-field-small,.wp-core-ui div.wpforms-container select.wpforms-field-small,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.wpforms-container input.wpforms-field-large,.wpforms-container select.wpforms-field-large,.wpforms-container .wpforms-field-row.wpforms-field-large,.wp-core-ui div.wpforms-container input.wpforms-field-large,.wp-core-ui div.wpforms-container select.wpforms-field-large,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.wpforms-container fieldset,.wp-core-ui div.wpforms-container fieldset{display:block;border:none;margin:0;padding:0}.wpforms-container .wpforms-field,.wp-core-ui div.wpforms-container .wpforms-field{padding:15px 0;position:relative}.wpforms-container .wpforms-field.wpforms-field-hidden,.wp-core-ui div.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.wpforms-container .wpforms-field-description,.wpforms-container .wpforms-field-limit-text,.wp-core-ui div.wpforms-container .wpforms-field-description,.wp-core-ui div.wpforms-container .wpforms-field-limit-text{font-size:0.8em;margin:5px 0 0 0;word-break:break-word;word-wrap:break-word;line-height:1.3}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.wpforms-container .wpforms-field-description-before,.wpforms-container .wpforms-field-description.before,.wp-core-ui div.wpforms-container .wpforms-field-description-before,.wp-core-ui div.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.wpforms-container .wpforms-field-label,.wp-core-ui div.wpforms-container .wpforms-field-label{display:block;font-weight:700;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-label-inline,.wp-core-ui div.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-sublabel,.wp-core-ui div.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.8em;font-weight:400;font-style:normal;min-width:120px}.wpforms-container .wpforms-field-label.wpforms-label-hide,.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide,.wp-core-ui div.wpforms-container .wpforms-field-label.wpforms-label-hide,.wp-core-ui div.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.wpforms-container .wpforms-required-label,.wp-core-ui div.wpforms-container .wpforms-required-label{color:var(--wpforms-label-error-color);font-weight:normal}.wpforms-container input[type=date],.wpforms-container input[type=datetime],.wpforms-container input[type=datetime-local],.wpforms-container input[type=email],.wpforms-container input[type=month],.wpforms-container input[type=number],.wpforms-container input[type=password],.wpforms-container input[type=range],.wpforms-container input[type=search],.wpforms-container input[type=tel],.wpforms-container input[type=text],.wpforms-container input[type=time],.wpforms-container input[type=url],.wpforms-container input[type=week],.wpforms-container select,.wpforms-container textarea,.wp-core-ui div.wpforms-container input[type=date],.wp-core-ui div.wpforms-container input[type=datetime],.wp-core-ui div.wpforms-container input[type=datetime-local],.wp-core-ui div.wpforms-container input[type=email],.wp-core-ui div.wpforms-container input[type=month],.wp-core-ui div.wpforms-container input[type=number],.wp-core-ui div.wpforms-container input[type=password],.wp-core-ui div.wpforms-container input[type=range],.wp-core-ui div.wpforms-container input[type=search],.wp-core-ui div.wpforms-container input[type=tel],.wp-core-ui div.wpforms-container input[type=text],.wp-core-ui div.wpforms-container input[type=time],.wp-core-ui div.wpforms-container input[type=url],.wp-core-ui div.wpforms-container input[type=week],.wp-core-ui div.wpforms-container select,.wp-core-ui div.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;font-family:inherit;font-style:normal;font-weight:400;margin:0}.wpforms-container input[type=date]:read-only,.wpforms-container input[type=datetime]:read-only,.wpforms-container input[type=datetime-local]:read-only,.wpforms-container input[type=email]:read-only,.wpforms-container input[type=month]:read-only,.wpforms-container input[type=number]:read-only,.wpforms-container input[type=password]:read-only,.wpforms-container input[type=range]:read-only,.wpforms-container input[type=search]:read-only,.wpforms-container input[type=tel]:read-only,.wpforms-container input[type=text]:read-only,.wpforms-container input[type=time]:read-only,.wpforms-container input[type=url]:read-only,.wpforms-container input[type=week]:read-only,.wpforms-container select:read-only,.wpforms-container textarea:read-only,.wp-core-ui div.wpforms-container input[type=date]:read-only,.wp-core-ui div.wpforms-container input[type=datetime]:read-only,.wp-core-ui div.wpforms-container input[type=datetime-local]:read-only,.wp-core-ui div.wpforms-container input[type=email]:read-only,.wp-core-ui div.wpforms-container input[type=month]:read-only,.wp-core-ui div.wpforms-container input[type=number]:read-only,.wp-core-ui div.wpforms-container input[type=password]:read-only,.wp-core-ui div.wpforms-container input[type=range]:read-only,.wp-core-ui div.wpforms-container input[type=search]:read-only,.wp-core-ui div.wpforms-container input[type=tel]:read-only,.wp-core-ui div.wpforms-container input[type=text]:read-only,.wp-core-ui div.wpforms-container input[type=time]:read-only,.wp-core-ui div.wpforms-container input[type=url]:read-only,.wp-core-ui div.wpforms-container input[type=week]:read-only,.wp-core-ui div.wpforms-container select:read-only,.wp-core-ui div.wpforms-container textarea:read-only{cursor:default}.wpforms-container textarea,.wp-core-ui div.wpforms-container textarea{resize:vertical}.wpforms-container input[type=checkbox],.wpforms-container input[type=radio],.wp-core-ui div.wpforms-container input[type=checkbox],.wp-core-ui div.wpforms-container input[type=radio]{width:16px;height:16px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline;font-style:normal;font-weight:400}.wpforms-container .wpforms-five-sixths,.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-four-fifths,.wpforms-container .wpforms-one-fifth,.wpforms-container .wpforms-one-fourth,.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-one-sixth,.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-three-fourths,.wpforms-container .wpforms-three-fifths,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths,.wpforms-container .wpforms-two-fifths,.wpforms-container .wpforms-two-sixths,.wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.wpforms-container .wpforms-one-third.wpforms-first,.wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.wpforms-container .wpforms-four-sixths.wpforms-first,.wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.wpforms-container .wpforms-field{float:none;clear:both}.wpforms-container .wpforms-field.wpforms-five-sixths,.wpforms-container .wpforms-field.wpforms-four-sixths,.wpforms-container .wpforms-field.wpforms-four-fifths,.wpforms-container .wpforms-field.wpforms-one-fifth,.wpforms-container .wpforms-field.wpforms-one-fourth,.wpforms-container .wpforms-field.wpforms-one-half,.wpforms-container .wpforms-field.wpforms-one-sixth,.wpforms-container .wpforms-field.wpforms-one-third,.wpforms-container .wpforms-field.wpforms-three-fourths,.wpforms-container .wpforms-field.wpforms-three-fifths,.wpforms-container .wpforms-field.wpforms-three-sixths,.wpforms-container .wpforms-field.wpforms-two-fourths,.wpforms-container .wpforms-field.wpforms-two-fifths,.wpforms-container .wpforms-field.wpforms-two-sixths,.wpforms-container .wpforms-field.wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-field .wpforms-field-row{align-items:start;position:relative;display:flex;justify-content:space-between;margin-bottom:15px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block{padding:0 10px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:first-child{padding-inline-start:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:last-child{padding-inline-end:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{margin-right:auto;padding-right:10px}.wpforms-container .wpforms-field .wpforms-field-row:before{content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.wpforms-container .wpforms-field .wpforms-field-row>:only-child{width:100%}.wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{float:none;margin-left:0;clear:initial}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths{width:50%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths{width:33.33333%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{width:66.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth{width:25%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths{width:75%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth{width:20%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths{width:40%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths{width:60%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths{width:80%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth{width:16.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths{width:83.33333%}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul,.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{display:grid;gap:15px 30px}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul{grid-template-columns:repeat(2, 1fr)}.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{grid-template-columns:repeat(3, 1fr)}.wpforms-container .wpforms-field .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px}.wpforms-container.inline-fields{overflow:visible}.wpforms-container.inline-fields .wpforms-form{display:flex;justify-content:space-between}.wpforms-container.inline-fields .wpforms-field-container{display:flex;justify-content:space-between;width:calc( 100% - 175px)}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field{padding-right:7px;padding-left:8px}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:first-of-type{padding-left:0}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:last-of-type{padding-right:0}.wpforms-container.inline-fields .wpforms-field-row:first-of-type .wpforms-field-row-block:first-child{padding-left:0}.wpforms-container.inline-fields .wpforms-submit-container{width:160px;padding-bottom:16px;align-self:flex-end}.wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.wpforms-container.inline-fields input.wpforms-field-medium,.wpforms-container.inline-fields select.wpforms-field-medium,.wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.wpforms-container ul.wpforms-image-choices label input{top:50%}.wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #ffffff;border-radius:3px;padding:20px;transition:all 0.5s;text-align:center}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus,.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus-within{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#ffffff;background:var(--wpforms-button-background-color, #066aab);opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px !important}.wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid transparent;padding:10px;text-align:center}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):focus{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:rgba(0,0,0,0.7)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item input{vertical-align:middle}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{display:inline-block;margin-top:5px;margin-left:10px;vertical-align:middle}.wpforms-container ul.wpforms-icon-choices,.wpforms-container ul.wpforms-icon-choices *{box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.wpforms-container ul.wpforms-icon-choices+.wpforms-field-description,.wpforms-container ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.wpforms-container ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.wpforms-container ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.wpforms-container ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.wpforms-container ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .choices .choices__inner{border-radius:3px;min-height:35px}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 3px 3px}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:3px 3px 0 0}.wpforms-container textarea{line-height:1.3}.wpforms-container textarea.wpforms-field-small{height:70px}.wpforms-container textarea.wpforms-field-medium{height:120px}.wpforms-container textarea.wpforms-field-large{height:220px}.wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#D63637}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-full.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-full.min.css new file mode 100644 index 0000000..4144a8e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/modern/wpforms-full.min.css @@ -0,0 +1 @@ +.wpforms-container .wpforms-error-container,.wpforms-container .wpforms-error-noscript{color:#D63637}.wpforms-container .wpforms-error-styled-container{padding:15px 0}.wpforms-container .wpforms-error-styled-container p{margin:0}.wpforms-container .wpforms-error-styled-container+.wpforms-submit-container{margin-top:10px}.wpforms-container label.wpforms-error,.wpforms-container em.wpforms-error{display:block;color:#D63637;font-size:0.9em;font-style:normal;cursor:default;min-width:120px}.wpforms-container .wpforms-field input.wpforms-error,.wpforms-container .wpforms-field input.user-invalid,.wpforms-container .wpforms-field textarea.wpforms-error,.wpforms-container .wpforms-field textarea.user-invalid,.wpforms-container .wpforms-field select.wpforms-error,.wpforms-container .wpforms-field select.user-invalid{border:1px solid #D63637}.wpforms-container .wpforms-field input[type=checkbox].wpforms-error,.wpforms-container .wpforms-field input[type=checkbox].user-invalid,.wpforms-container .wpforms-field input[type=radio].wpforms-error,.wpforms-container .wpforms-field input[type=radio].user-invalid{border:none}.wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #D63637}.wpforms-container .wpforms-error-alert{border:1px solid rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-error-alert{color:#D63637;background-color:#f2dede;border-color:#f2dede}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.wpforms-container .wpforms-recaptcha-container{padding:0;clear:both}.wpforms-container .wpforms-recaptcha-container iframe{display:block;width:100%;max-width:100%}.wpforms-container .wpforms-recaptcha-container .g-recaptcha,.wpforms-container .wpforms-recaptcha-container .h-captcha,.wpforms-container .wpforms-recaptcha-container .cf-turnstile{padding:10px 0 0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile.wpforms-is-turnstile-invisible{padding:0;height:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile iframe{position:relative !important;visibility:inherit !important}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .cf-turnstile{padding:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .wpforms-error:first-of-type{margin-top:10px}.wpforms-container amp-img>img{position:absolute}.wpforms-container .amp-form-submit-success .wpforms-field-container,.wpforms-container .amp-form-submit-success .wpforms-submit-container{display:none}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}body.rtl .wpforms-container .wpforms-form input[type=tel]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=email]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=email]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=number]::-webkit-textfield-decoration-container{flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-datepicker-wrap .wpforms-datepicker-clear{right:auto;left:10px}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .ui-timepicker-list li{padding:3px 5px 3px 0 !important}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-field-medium+.wpforms-datepicker-clear{left:calc( 40% + 10px);right:auto}body.rtl .wpforms-container .wpforms-form .wpforms-field-file-upload .dz-remove{right:auto;left:0}body.rtl .wpforms-container .wpforms-form .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{margin-left:0;margin-right:10px}body.rtl .ui-timepicker-list li{padding:3px 5px 3px 0}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-email .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-address .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-password .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-name .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive-name-field}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row-responsive{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}@container wpforms-field-row-responsive-name-field (max-width: 260px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns,.wpforms-container .wpforms-form .wpforms-list-2-columns{container-type:inline-size;container-name:wpforms-field-2-columns-responsive}@container wpforms-field-2-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-form .wpforms-list-2-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-form .wpforms-list-2-columns ul li{width:100%}}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns,.wpforms-container .wpforms-form .wpforms-list-3-columns{container-type:inline-size;container-name:wpforms-field-3-columns-responsive}@container wpforms-field-3-columns-responsive (max-width: 480px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@container wpforms-field-3-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@media only screen and (max-width: 600px){div.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}div.wpforms-container .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container .wpforms-form .wpforms-mobile-full{width:100%;margin-left:0}div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{display:block;margin:0 0 10px 0}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}div.wpforms-container .wpforms-form.inline-fields .wpforms-field-container,div.wpforms-container .wpforms-form.inline-fields .wpforms-field{display:block;width:100%}div.wpforms-container .wpforms-form.inline-fields .wpforms-submit-container{width:100%}}.wpforms-container{margin-bottom:26px}.wpforms-container .wpforms-form *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-form .wpforms-field-label,.wpforms-container .wpforms-form .wpforms-field-sublabel,.wpforms-container .wpforms-form .wpforms-field-description,.wpforms-container .wpforms-form textarea,.wpforms-container .wpforms-form li,.wpforms-container .wpforms-form th{hyphens:auto}.wpforms-container ul,.wpforms-container ul li{background:none;border:0;margin:0}.wpforms-container .wpforms-title{font-size:24px;font-weight:700;margin:0 0 10px 0}.wpforms-container .wpforms-submit-container{clear:both;position:relative}.wpforms-container .wpforms-submit-spinner{margin-inline-start:15px;display:inline-block;vertical-align:middle}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-container .wpforms-notice{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);border-left-width:12px;color:#333333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:50%;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.wpforms-container .wpforms-notice .wpforms-delete:before,.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#ffffff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.wpforms-container .wpforms-notice .wpforms-delete:hover,.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.wpforms-container .wpforms-notice a{text-decoration:underline}.wpforms-container .wpforms-notice p{margin:0 0 20px 0}.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.wpforms-container .wpforms-notice .wpforms-notice-actions{margin-top:20px}.wpforms-container .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.wpforms-container .wpforms-notice .wpforms-notice-action:hover,.wpforms-container .wpforms-notice .wpforms-notice-action:focus,.wpforms-container .wpforms-notice .wpforms-notice-action:active{color:#ffffff}.wpforms-container .wpforms-notice.wpforms-info{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-success{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.wpforms-container .wpforms-notice.wpforms-warning{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.wpforms-container .wpforms-notice.wpforms-error{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#D63637}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}.wpforms-container input.wpforms-field-medium,.wpforms-container select.wpforms-field-medium,.wpforms-container .wpforms-field-row.wpforms-field-medium,.wp-core-ui div.wpforms-container input.wpforms-field-medium,.wp-core-ui div.wpforms-container select.wpforms-field-medium,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.wpforms-container input.wpforms-field-small,.wpforms-container select.wpforms-field-small,.wpforms-container .wpforms-field-row.wpforms-field-small,.wp-core-ui div.wpforms-container input.wpforms-field-small,.wp-core-ui div.wpforms-container select.wpforms-field-small,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.wpforms-container input.wpforms-field-large,.wpforms-container select.wpforms-field-large,.wpforms-container .wpforms-field-row.wpforms-field-large,.wp-core-ui div.wpforms-container input.wpforms-field-large,.wp-core-ui div.wpforms-container select.wpforms-field-large,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.wpforms-container fieldset,.wp-core-ui div.wpforms-container fieldset{display:block;border:none;margin:0;padding:0}.wpforms-container .wpforms-field,.wp-core-ui div.wpforms-container .wpforms-field{padding:15px 0;position:relative}.wpforms-container .wpforms-field.wpforms-field-hidden,.wp-core-ui div.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.wpforms-container .wpforms-field-description,.wpforms-container .wpforms-field-limit-text,.wp-core-ui div.wpforms-container .wpforms-field-description,.wp-core-ui div.wpforms-container .wpforms-field-limit-text{font-size:0.8em;margin:5px 0 0 0;word-break:break-word;word-wrap:break-word;line-height:1.3}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.wpforms-container .wpforms-field-description-before,.wpforms-container .wpforms-field-description.before,.wp-core-ui div.wpforms-container .wpforms-field-description-before,.wp-core-ui div.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.wpforms-container .wpforms-field-label,.wp-core-ui div.wpforms-container .wpforms-field-label{display:block;font-weight:700;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-label-inline,.wp-core-ui div.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-sublabel,.wp-core-ui div.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.8em;font-weight:400;font-style:normal;min-width:120px}.wpforms-container .wpforms-field-label.wpforms-label-hide,.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide,.wp-core-ui div.wpforms-container .wpforms-field-label.wpforms-label-hide,.wp-core-ui div.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.wpforms-container .wpforms-required-label,.wp-core-ui div.wpforms-container .wpforms-required-label{color:var(--wpforms-label-error-color);font-weight:normal}.wpforms-container input[type=date],.wpforms-container input[type=datetime],.wpforms-container input[type=datetime-local],.wpforms-container input[type=email],.wpforms-container input[type=month],.wpforms-container input[type=number],.wpforms-container input[type=password],.wpforms-container input[type=range],.wpforms-container input[type=search],.wpforms-container input[type=tel],.wpforms-container input[type=text],.wpforms-container input[type=time],.wpforms-container input[type=url],.wpforms-container input[type=week],.wpforms-container select,.wpforms-container textarea,.wp-core-ui div.wpforms-container input[type=date],.wp-core-ui div.wpforms-container input[type=datetime],.wp-core-ui div.wpforms-container input[type=datetime-local],.wp-core-ui div.wpforms-container input[type=email],.wp-core-ui div.wpforms-container input[type=month],.wp-core-ui div.wpforms-container input[type=number],.wp-core-ui div.wpforms-container input[type=password],.wp-core-ui div.wpforms-container input[type=range],.wp-core-ui div.wpforms-container input[type=search],.wp-core-ui div.wpforms-container input[type=tel],.wp-core-ui div.wpforms-container input[type=text],.wp-core-ui div.wpforms-container input[type=time],.wp-core-ui div.wpforms-container input[type=url],.wp-core-ui div.wpforms-container input[type=week],.wp-core-ui div.wpforms-container select,.wp-core-ui div.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;font-family:inherit;font-style:normal;font-weight:400;margin:0}.wpforms-container input[type=date]:read-only,.wpforms-container input[type=datetime]:read-only,.wpforms-container input[type=datetime-local]:read-only,.wpforms-container input[type=email]:read-only,.wpforms-container input[type=month]:read-only,.wpforms-container input[type=number]:read-only,.wpforms-container input[type=password]:read-only,.wpforms-container input[type=range]:read-only,.wpforms-container input[type=search]:read-only,.wpforms-container input[type=tel]:read-only,.wpforms-container input[type=text]:read-only,.wpforms-container input[type=time]:read-only,.wpforms-container input[type=url]:read-only,.wpforms-container input[type=week]:read-only,.wpforms-container select:read-only,.wpforms-container textarea:read-only,.wp-core-ui div.wpforms-container input[type=date]:read-only,.wp-core-ui div.wpforms-container input[type=datetime]:read-only,.wp-core-ui div.wpforms-container input[type=datetime-local]:read-only,.wp-core-ui div.wpforms-container input[type=email]:read-only,.wp-core-ui div.wpforms-container input[type=month]:read-only,.wp-core-ui div.wpforms-container input[type=number]:read-only,.wp-core-ui div.wpforms-container input[type=password]:read-only,.wp-core-ui div.wpforms-container input[type=range]:read-only,.wp-core-ui div.wpforms-container input[type=search]:read-only,.wp-core-ui div.wpforms-container input[type=tel]:read-only,.wp-core-ui div.wpforms-container input[type=text]:read-only,.wp-core-ui div.wpforms-container input[type=time]:read-only,.wp-core-ui div.wpforms-container input[type=url]:read-only,.wp-core-ui div.wpforms-container input[type=week]:read-only,.wp-core-ui div.wpforms-container select:read-only,.wp-core-ui div.wpforms-container textarea:read-only{cursor:default}.wpforms-container textarea,.wp-core-ui div.wpforms-container textarea{resize:vertical}.wpforms-container input[type=checkbox],.wpforms-container input[type=radio],.wp-core-ui div.wpforms-container input[type=checkbox],.wp-core-ui div.wpforms-container input[type=radio]{width:16px;height:16px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline;font-style:normal;font-weight:400}.wpforms-container .wpforms-five-sixths,.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-four-fifths,.wpforms-container .wpforms-one-fifth,.wpforms-container .wpforms-one-fourth,.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-one-sixth,.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-three-fourths,.wpforms-container .wpforms-three-fifths,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths,.wpforms-container .wpforms-two-fifths,.wpforms-container .wpforms-two-sixths,.wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.wpforms-container .wpforms-one-third.wpforms-first,.wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.wpforms-container .wpforms-four-sixths.wpforms-first,.wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.wpforms-container .wpforms-field{float:none;clear:both}.wpforms-container .wpforms-field.wpforms-five-sixths,.wpforms-container .wpforms-field.wpforms-four-sixths,.wpforms-container .wpforms-field.wpforms-four-fifths,.wpforms-container .wpforms-field.wpforms-one-fifth,.wpforms-container .wpforms-field.wpforms-one-fourth,.wpforms-container .wpforms-field.wpforms-one-half,.wpforms-container .wpforms-field.wpforms-one-sixth,.wpforms-container .wpforms-field.wpforms-one-third,.wpforms-container .wpforms-field.wpforms-three-fourths,.wpforms-container .wpforms-field.wpforms-three-fifths,.wpforms-container .wpforms-field.wpforms-three-sixths,.wpforms-container .wpforms-field.wpforms-two-fourths,.wpforms-container .wpforms-field.wpforms-two-fifths,.wpforms-container .wpforms-field.wpforms-two-sixths,.wpforms-container .wpforms-field.wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-field .wpforms-field-row{align-items:start;position:relative;display:flex;justify-content:space-between;margin-bottom:15px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block{padding:0 10px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:first-child{padding-inline-start:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:last-child{padding-inline-end:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{margin-right:auto;padding-right:10px}.wpforms-container .wpforms-field .wpforms-field-row:before{content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.wpforms-container .wpforms-field .wpforms-field-row>:only-child{width:100%}.wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{float:none;margin-left:0;clear:initial}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths{width:50%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths{width:33.33333%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{width:66.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth{width:25%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths{width:75%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth{width:20%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths{width:40%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths{width:60%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths{width:80%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth{width:16.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths{width:83.33333%}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul,.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{display:grid;gap:15px 30px}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul{grid-template-columns:repeat(2, 1fr)}.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{grid-template-columns:repeat(3, 1fr)}.wpforms-container .wpforms-field .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px}.wpforms-container.inline-fields{overflow:visible}.wpforms-container.inline-fields .wpforms-form{display:flex;justify-content:space-between}.wpforms-container.inline-fields .wpforms-field-container{display:flex;justify-content:space-between;width:calc( 100% - 175px)}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field{padding-right:7px;padding-left:8px}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:first-of-type{padding-left:0}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:last-of-type{padding-right:0}.wpforms-container.inline-fields .wpforms-field-row:first-of-type .wpforms-field-row-block:first-child{padding-left:0}.wpforms-container.inline-fields .wpforms-submit-container{width:160px;padding-bottom:16px;align-self:flex-end}.wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.wpforms-container.inline-fields input.wpforms-field-medium,.wpforms-container.inline-fields select.wpforms-field-medium,.wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.wpforms-container ul.wpforms-image-choices label input{top:50%}.wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #ffffff;border-radius:3px;padding:20px;transition:all 0.5s;text-align:center}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus,.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus-within{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#ffffff;background:var(--wpforms-button-background-color, #066aab);opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px !important}.wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid transparent;padding:10px;text-align:center}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):focus{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:rgba(0,0,0,0.7)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item input{vertical-align:middle}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{display:inline-block;margin-top:5px;margin-left:10px;vertical-align:middle}.wpforms-container-full ul.wpforms-icon-choices,.wpforms-container-full ul.wpforms-icon-choices *{box-sizing:border-box}.wpforms-container-full ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.wpforms-container-full ul.wpforms-icon-choices+.wpforms-field-description,.wpforms-container-full ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.wpforms-container-full ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.wpforms-container-full ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.wpforms-container-full ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.wpforms-container-full ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .choices .choices__inner{border-radius:3px;min-height:35px}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 3px 3px}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:3px 3px 0 0}.wpforms-container textarea{line-height:1.3}.wpforms-container textarea.wpforms-field-small{height:70px}.wpforms-container textarea.wpforms-field-medium{height:120px}.wpforms-container textarea.wpforms-field-large{height:220px}.wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#D63637}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}div.wpforms-container-full,div.wpforms-container-full *{background:none;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;outline:none;position:static;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}div.wpforms-container-full img,div.wpforms-container-full video,div.wpforms-container-full canvas,div.wpforms-container-full svg{overflow:clip}div.wpforms-container-full{margin-left:auto;margin-right:auto}div.wpforms-container-full:not(:empty){margin:24px auto;padding:var(--wpforms-container-padding);background-clip:padding-box;background-color:var(--wpforms-background-color);background-image:var(--wpforms-background-url);background-position:var(--wpforms-background-position);background-repeat:var(--wpforms-background-repeat);background-size:var(--wpforms-background-size);border-style:var(--wpforms-container-border-style);border-width:var(--wpforms-container-border-width);border-color:var(--wpforms-container-border-color);border-radius:var(--wpforms-container-border-radius);box-shadow:var(--wpforms-container-shadow-size-box-shadow)}div.wpforms-container-full input,div.wpforms-container-full label,div.wpforms-container-full select,div.wpforms-container-full button,div.wpforms-container-full textarea{margin:0;border:0;padding:0;vertical-align:middle;background:none;height:auto;box-sizing:border-box}div.wpforms-container-full h1,div.wpforms-container-full h2,div.wpforms-container-full h3,div.wpforms-container-full h4,div.wpforms-container-full h5,div.wpforms-container-full h6,div.wpforms-container-full small,div.wpforms-container-full sup,div.wpforms-container-full sub,div.wpforms-container-full dl,div.wpforms-container-full dt,div.wpforms-container-full dd,div.wpforms-container-full time,div.wpforms-container-full address,div.wpforms-container-full pre,div.wpforms-container-full code,div.wpforms-container-full blockquote,div.wpforms-container-full sup,div.wpforms-container-full sub,div.wpforms-container-full del{font-size:revert;font-weight:revert;margin:revert;padding:revert}div.wpforms-container-full sup,div.wpforms-container-full sub{position:relative}div.wpforms-container-full del{text-decoration:line-through}div.wpforms-container-full blockquote{padding-left:20px;border-left:4px solid}div.wpforms-container-full blockquote p{font-size:revert;font-weight:revert;font-style:italic}div.wpforms-container-full ul,div.wpforms-container-full ul li{background:none;border:0;margin:0;padding:0}div.wpforms-container-full ul li{margin-bottom:15px}div.wpforms-container-full ul li:last-of-type{margin-bottom:0}div.wpforms-container-full hr{border-top-width:var(--wpforms-field-border-size);border-top-style:var(--wpforms-field-border-style);border-top-color:var(--wpforms-field-border-color);margin:0.5em auto}div.wpforms-container-full fieldset{min-width:0}div.wpforms-container-full .wpforms-form .wpforms-head-container{margin:0;padding:0 0 35px 0}div.wpforms-container-full .wpforms-form .wpforms-title{font-weight:700;line-height:29px;color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-form .wpforms-description{font-style:normal;font-weight:300;font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-form .wpforms-submit-container{margin-top:var(--wpforms-button-size-margin-top)}div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{max-width:26px}body .wpforms-test{outline:2px solid red !important}div.wpforms-container-full .wpforms-form label.wpforms-error,div.wpforms-container-full .wpforms-form em.wpforms-error{font-weight:400;font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);margin-top:var(--wpforms-field-size-input-spacing);color:var(--wpforms-label-error-color);padding:0 0 0 5px;position:relative}div.wpforms-container-full .wpforms-form label.wpforms-error:before,div.wpforms-container-full .wpforms-form em.wpforms-error:before{-webkit-mask-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2217%22%20height%3D%2215%22%20viewBox%3D%220%200%2017%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.0264%2012.3086L9.46387%200.90625C8.97168%200.0585938%207.68652%200.03125%207.19434%200.90625L0.631836%2012.3086C0.139648%2013.1562%200.768555%2014.25%201.78027%2014.25H14.8779C15.8896%2014.25%2016.5186%2013.1836%2016.0264%2012.3086ZM8.34277%209.92969C9.02637%209.92969%209.60059%2010.5039%209.60059%2011.1875C9.60059%2011.8984%209.02637%2012.4453%208.34277%2012.4453C7.63184%2012.4453%207.08496%2011.8984%207.08496%2011.1875C7.08496%2010.5039%207.63184%209.92969%208.34277%209.92969ZM7.13965%205.41797C7.1123%205.22656%207.27637%205.0625%207.46777%205.0625H9.19043C9.38184%205.0625%209.5459%205.22656%209.51855%205.41797L9.32715%209.13672C9.2998%209.32812%209.16309%209.4375%208.99902%209.4375H7.65918C7.49512%209.4375%207.3584%209.32812%207.33105%209.13672L7.13965%205.41797Z%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E%0A");mask-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2217%22%20height%3D%2215%22%20viewBox%3D%220%200%2017%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.0264%2012.3086L9.46387%200.90625C8.97168%200.0585938%207.68652%200.03125%207.19434%200.90625L0.631836%2012.3086C0.139648%2013.1562%200.768555%2014.25%201.78027%2014.25H14.8779C15.8896%2014.25%2016.5186%2013.1836%2016.0264%2012.3086ZM8.34277%209.92969C9.02637%209.92969%209.60059%2010.5039%209.60059%2011.1875C9.60059%2011.8984%209.02637%2012.4453%208.34277%2012.4453C7.63184%2012.4453%207.08496%2011.8984%207.08496%2011.1875C7.08496%2010.5039%207.63184%209.92969%208.34277%209.92969ZM7.13965%205.41797C7.1123%205.22656%207.27637%205.0625%207.46777%205.0625H9.19043C9.38184%205.0625%209.5459%205.22656%209.51855%205.41797L9.32715%209.13672C9.2998%209.32812%209.16309%209.4375%208.99902%209.4375H7.65918C7.49512%209.4375%207.3584%209.32812%207.33105%209.13672L7.13965%205.41797Z%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E%0A");content:'';position:relative;display:inline-block;right:5px;top:1.5px;width:16px;height:14px;background-color:var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-sublabel+.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field-credit-card .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid:hover{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid:focus,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid:focus,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid:focus{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid{border:none;box-shadow:none}div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid:focus,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid:focus{border:none;box-shadow:none}div.wpforms-container-full .wpforms-form .wpforms-error-container{color:var(--wpforms-label-error-color);font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height)}div.wpforms-container-full .wpforms-form .wpforms-error-container ul li{list-style:inside !important}div.wpforms-container-full .wpforms-form .wpforms-error-container ol li{list-style:inside decimal !important}div.wpforms-container-full .wpforms-form .wpforms-error-container a{color:var(--wpforms-label-error-color);text-decoration:underline !important}div.wpforms-container-full .wpforms-form .wpforms-error-container a:hover{text-decoration:none !important}div.wpforms-container-full .wpforms-form .wpforms-error-container del{text-decoration:line-through !important}div.wpforms-container-full .wpforms-form .wpforms-error-container blockquote{padding-left:20px;border-left:4px solid;font-style:italic}div.wpforms-container-full .wpforms-form .wpforms-error-container.wpforms-error-styled-container{padding:15px 0}div.wpforms-container-full .wpforms-form .wpforms-error-container.wpforms-error-styled-container .wpforms-error{padding:11px;border:1px solid var(--wpforms-label-error-color);border-left:5px solid}div.wpforms-container-full .wpforms-form .wpforms-error-alert{color:var(--wpforms-label-error-color);border-color:transparent;border-radius:var(--wpforms-field-border-radius);font-size:var(--wpforms-label-size-sublabel-font-size);padding:var(--wpforms-field-size-input-spacing);background:linear-gradient(90deg, var(--wpforms-label-error-color) -3000%, transparent 500%)}div.wpforms-container-full .wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full{color:#333333;margin:0 auto 24px;padding:15px;overflow-wrap:break-word}div.wpforms-container-full .wpforms-confirmation-container-full ul,div.wpforms-container-full .wpforms-confirmation-container-full ol,div[submit-success]>.wpforms-confirmation-container-full ul,div[submit-success]>.wpforms-confirmation-container-full ol{padding-left:30px}div.wpforms-container-full .wpforms-confirmation-container-full ul li,div.wpforms-container-full .wpforms-confirmation-container-full ol li,div[submit-success]>.wpforms-confirmation-container-full ul li,div[submit-success]>.wpforms-confirmation-container-full ol li{margin-bottom:5px}div.wpforms-container-full .wpforms-confirmation-container-full p,div[submit-success]>.wpforms-confirmation-container-full p{margin:0 0 15px 0}div.wpforms-container-full .wpforms-confirmation-container-full p:last-child,div[submit-success]>.wpforms-confirmation-container-full p:last-child{margin:0}div.wpforms-container-full .wpforms-confirmation-container-full iframe,div[submit-success]>.wpforms-confirmation-container-full iframe{width:100%;border:0}div.wpforms-container-full .wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message){background:#e0ffc7;border:1px solid #b4d39b;box-sizing:border-box}div.wpforms-container-full .wpforms-confirmation-container-full p,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p{color:#333333}div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview{color:inherit;border-color:#b4d39b}div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview td,div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview th,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview td,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview th{border-top-color:#b4d39b}div.wpforms-container-full .wpforms-form amp-img>img{position:absolute}div.wpforms-container-full .wpforms-form .wpforms-limit-text{font-size:13px;display:block}.wpforms-screen-reader-announce{color:transparent !important;position:absolute !important;bottom:0 !important}body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{transform:rotate(180deg)}body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{margin:0 0 0 10px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{margin:0 0 0 15px}body.rtl div.wpforms-container-full .wpforms-form em.wpforms-error{padding:0 5px 0 0}body.rtl div.wpforms-container-full .wpforms-form em.wpforms-error:before{left:5px;right:auto}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices__list--single .choices__item{padding-right:0;padding-left:15px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner{padding:0 7px 0 24px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single{padding:0 4px 0 16px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"]:after{right:auto;left:12px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"]:after{right:auto;left:12px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button{right:auto;left:0;margin-right:0;margin-left:25px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"] .choices__button{margin-right:5px;border-right:none}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select{background-position:calc(0% + 12px) 50%,calc(0% + 17px) 50%;padding:0 12px 0 24px}div.wpforms-container-full .wpforms-field-description,div.wpforms-container-full .wpforms-field-limit-text,.wp-core-ui div.wpforms-container-full .wpforms-field-description,.wp-core-ui div.wpforms-container-full .wpforms-field-limit-text{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);color:var(--wpforms-label-sublabel-color);margin:var(--wpforms-field-size-sublabel-spacing) 0 0 0}div.wpforms-container-full .wpforms-field-description ul,div.wpforms-container-full .wpforms-field-description ol,.wp-core-ui div.wpforms-container-full .wpforms-field-description ul,.wp-core-ui div.wpforms-container-full .wpforms-field-description ol{padding-left:15px}div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description{color:var(--wpforms-field-text-color);margin-top:var(--wpforms-field-size-input-spacing);font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);background-color:var(--wpforms-field-background-color);border-radius:var(--wpforms-field-border-radius);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:var(--wpforms-field-size-padding-h)}div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description p,.wp-core-ui div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description p{color:inherit;font-size:inherit;line-height:inherit;margin-bottom:15px}div.wpforms-container-full .wpforms-field-description-before,div.wpforms-container-full .wpforms-field-description.before,.wp-core-ui div.wpforms-container-full .wpforms-field-description-before,.wp-core-ui div.wpforms-container-full .wpforms-field-description.before{margin:0 0 var(--wpforms-field-size-input-spacing) 0}div.wpforms-container-full .wpforms-field-row+.wpforms-field-description,.wp-core-ui div.wpforms-container-full .wpforms-field-row+.wpforms-field-description{margin-top:0}div.wpforms-container-full .wpforms-field-row+.wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container-full .wpforms-field-row+.wpforms-field-description.wpforms-disclaimer-description{margin-top:0}div.wpforms-container-full .wpforms-field-label,.wp-core-ui div.wpforms-container-full .wpforms-field-label{margin:0 0 var(--wpforms-field-size-input-spacing) 0;padding:0;font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-field-label-inline,.wp-core-ui div.wpforms-container-full .wpforms-field-label-inline{font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height)}div.wpforms-container-full .wpforms-field-sublabel,.wp-core-ui div.wpforms-container-full .wpforms-field-sublabel{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);margin:var(--wpforms-field-size-sublabel-spacing) 0 0 0;padding:0;color:var(--wpforms-label-sublabel-color)}div.wpforms-container-full .wpforms-field-sublabel.before,.wp-core-ui div.wpforms-container-full .wpforms-field-sublabel.before{margin:0 0 var(--wpforms-field-size-sublabel-spacing) 0}div.wpforms-container-full .wpforms-field-label-inline,.wp-core-ui div.wpforms-container-full .wpforms-field-label-inline{color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-required-label,.wp-core-ui div.wpforms-container-full .wpforms-required-label{font-weight:400}div.wpforms-container-full input[type=date],div.wpforms-container-full input[type=datetime],div.wpforms-container-full input[type=datetime-local],div.wpforms-container-full input[type=email],div.wpforms-container-full input[type=month],div.wpforms-container-full input[type=number],div.wpforms-container-full input[type=password],div.wpforms-container-full input[type=range],div.wpforms-container-full input[type=search],div.wpforms-container-full input[type=tel],div.wpforms-container-full input[type=text],div.wpforms-container-full input[type=time],div.wpforms-container-full input[type=url],div.wpforms-container-full input[type=week],div.wpforms-container-full select,div.wpforms-container-full textarea,.wp-core-ui div.wpforms-container-full input[type=date],.wp-core-ui div.wpforms-container-full input[type=datetime],.wp-core-ui div.wpforms-container-full input[type=datetime-local],.wp-core-ui div.wpforms-container-full input[type=email],.wp-core-ui div.wpforms-container-full input[type=month],.wp-core-ui div.wpforms-container-full input[type=number],.wp-core-ui div.wpforms-container-full input[type=password],.wp-core-ui div.wpforms-container-full input[type=range],.wp-core-ui div.wpforms-container-full input[type=search],.wp-core-ui div.wpforms-container-full input[type=tel],.wp-core-ui div.wpforms-container-full input[type=text],.wp-core-ui div.wpforms-container-full input[type=time],.wp-core-ui div.wpforms-container-full input[type=url],.wp-core-ui div.wpforms-container-full input[type=week],.wp-core-ui div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full textarea{background-color:var(--wpforms-field-background-color);background-clip:padding-box;border-radius:var(--wpforms-field-border-radius);color:var(--wpforms-field-text-color);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:0 var(--wpforms-field-size-padding-h);font-size:var(--wpforms-field-size-font-size);line-height:100%;box-shadow:none;transition:border 0.15s, box-shadow 0.15s}div.wpforms-container-full input[type=date]:focus,div.wpforms-container-full input[type=datetime]:focus,div.wpforms-container-full input[type=datetime-local]:focus,div.wpforms-container-full input[type=email]:focus,div.wpforms-container-full input[type=month]:focus,div.wpforms-container-full input[type=number]:focus,div.wpforms-container-full input[type=password]:focus,div.wpforms-container-full input[type=range]:focus,div.wpforms-container-full input[type=search]:focus,div.wpforms-container-full input[type=tel]:focus,div.wpforms-container-full input[type=text]:focus,div.wpforms-container-full input[type=time]:focus,div.wpforms-container-full input[type=url]:focus,div.wpforms-container-full input[type=week]:focus,div.wpforms-container-full select:focus,div.wpforms-container-full textarea:focus,.wp-core-ui div.wpforms-container-full input[type=date]:focus,.wp-core-ui div.wpforms-container-full input[type=datetime]:focus,.wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus,.wp-core-ui div.wpforms-container-full input[type=email]:focus,.wp-core-ui div.wpforms-container-full input[type=month]:focus,.wp-core-ui div.wpforms-container-full input[type=number]:focus,.wp-core-ui div.wpforms-container-full input[type=password]:focus,.wp-core-ui div.wpforms-container-full input[type=range]:focus,.wp-core-ui div.wpforms-container-full input[type=search]:focus,.wp-core-ui div.wpforms-container-full input[type=tel]:focus,.wp-core-ui div.wpforms-container-full input[type=text]:focus,.wp-core-ui div.wpforms-container-full input[type=time]:focus,.wp-core-ui div.wpforms-container-full input[type=url]:focus,.wp-core-ui div.wpforms-container-full input[type=week]:focus,.wp-core-ui div.wpforms-container-full select:focus,.wp-core-ui div.wpforms-container-full textarea:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full input[type=date]:focus:invalid,div.wpforms-container-full input[type=datetime]:focus:invalid,div.wpforms-container-full input[type=datetime-local]:focus:invalid,div.wpforms-container-full input[type=email]:focus:invalid,div.wpforms-container-full input[type=month]:focus:invalid,div.wpforms-container-full input[type=number]:focus:invalid,div.wpforms-container-full input[type=password]:focus:invalid,div.wpforms-container-full input[type=range]:focus:invalid,div.wpforms-container-full input[type=search]:focus:invalid,div.wpforms-container-full input[type=tel]:focus:invalid,div.wpforms-container-full input[type=text]:focus:invalid,div.wpforms-container-full input[type=time]:focus:invalid,div.wpforms-container-full input[type=url]:focus:invalid,div.wpforms-container-full input[type=week]:focus:invalid,div.wpforms-container-full select:focus:invalid,div.wpforms-container-full textarea:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=date]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=datetime]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=email]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=month]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=number]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=password]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=range]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=search]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=tel]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=text]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=time]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=url]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=week]:focus:invalid,.wp-core-ui div.wpforms-container-full select:focus:invalid,.wp-core-ui div.wpforms-container-full textarea:focus:invalid{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;color:var(--wpforms-field-text-color)}div.wpforms-container-full input[type=date][disabled],div.wpforms-container-full input[type=datetime][disabled],div.wpforms-container-full input[type=datetime-local][disabled],div.wpforms-container-full input[type=email][disabled],div.wpforms-container-full input[type=month][disabled],div.wpforms-container-full input[type=number][disabled],div.wpforms-container-full input[type=password][disabled],div.wpforms-container-full input[type=range][disabled],div.wpforms-container-full input[type=search][disabled],div.wpforms-container-full input[type=tel][disabled],div.wpforms-container-full input[type=text][disabled],div.wpforms-container-full input[type=time][disabled],div.wpforms-container-full input[type=url][disabled],div.wpforms-container-full input[type=week][disabled],div.wpforms-container-full select[disabled],div.wpforms-container-full textarea[disabled],.wp-core-ui div.wpforms-container-full input[type=date][disabled],.wp-core-ui div.wpforms-container-full input[type=datetime][disabled],.wp-core-ui div.wpforms-container-full input[type=datetime-local][disabled],.wp-core-ui div.wpforms-container-full input[type=email][disabled],.wp-core-ui div.wpforms-container-full input[type=month][disabled],.wp-core-ui div.wpforms-container-full input[type=number][disabled],.wp-core-ui div.wpforms-container-full input[type=password][disabled],.wp-core-ui div.wpforms-container-full input[type=range][disabled],.wp-core-ui div.wpforms-container-full input[type=search][disabled],.wp-core-ui div.wpforms-container-full input[type=tel][disabled],.wp-core-ui div.wpforms-container-full input[type=text][disabled],.wp-core-ui div.wpforms-container-full input[type=time][disabled],.wp-core-ui div.wpforms-container-full input[type=url][disabled],.wp-core-ui div.wpforms-container-full input[type=week][disabled],.wp-core-ui div.wpforms-container-full select[disabled],.wp-core-ui div.wpforms-container-full textarea[disabled]{color:var(--wpforms-field-text-color);opacity:0.5}div.wpforms-container-full input[type=date]::-webkit-input-placeholder,div.wpforms-container-full input[type=datetime]::-webkit-input-placeholder,div.wpforms-container-full input[type=datetime-local]::-webkit-input-placeholder,div.wpforms-container-full input[type=email]::-webkit-input-placeholder,div.wpforms-container-full input[type=month]::-webkit-input-placeholder,div.wpforms-container-full input[type=number]::-webkit-input-placeholder,div.wpforms-container-full input[type=password]::-webkit-input-placeholder,div.wpforms-container-full input[type=range]::-webkit-input-placeholder,div.wpforms-container-full input[type=search]::-webkit-input-placeholder,div.wpforms-container-full input[type=tel]::-webkit-input-placeholder,div.wpforms-container-full input[type=text]::-webkit-input-placeholder,div.wpforms-container-full input[type=time]::-webkit-input-placeholder,div.wpforms-container-full input[type=url]::-webkit-input-placeholder,div.wpforms-container-full input[type=week]::-webkit-input-placeholder,div.wpforms-container-full select::-webkit-input-placeholder,div.wpforms-container-full textarea::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=date]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime-local]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=email]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=month]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=number]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=password]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=range]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=search]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=tel]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=text]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=time]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=url]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=week]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full select::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full textarea::-webkit-input-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}div.wpforms-container-full input[type=date]::-moz-placeholder,div.wpforms-container-full input[type=datetime]::-moz-placeholder,div.wpforms-container-full input[type=datetime-local]::-moz-placeholder,div.wpforms-container-full input[type=email]::-moz-placeholder,div.wpforms-container-full input[type=month]::-moz-placeholder,div.wpforms-container-full input[type=number]::-moz-placeholder,div.wpforms-container-full input[type=password]::-moz-placeholder,div.wpforms-container-full input[type=range]::-moz-placeholder,div.wpforms-container-full input[type=search]::-moz-placeholder,div.wpforms-container-full input[type=tel]::-moz-placeholder,div.wpforms-container-full input[type=text]::-moz-placeholder,div.wpforms-container-full input[type=time]::-moz-placeholder,div.wpforms-container-full input[type=url]::-moz-placeholder,div.wpforms-container-full input[type=week]::-moz-placeholder,div.wpforms-container-full select::-moz-placeholder,div.wpforms-container-full textarea::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=date]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime-local]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=email]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=month]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=number]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=password]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=range]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=search]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=tel]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=text]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=time]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=url]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=week]::-moz-placeholder,.wp-core-ui div.wpforms-container-full select::-moz-placeholder,.wp-core-ui div.wpforms-container-full textarea::-moz-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}div.wpforms-container-full input[type=date]:-moz-placeholder,div.wpforms-container-full input[type=datetime]:-moz-placeholder,div.wpforms-container-full input[type=datetime-local]:-moz-placeholder,div.wpforms-container-full input[type=email]:-moz-placeholder,div.wpforms-container-full input[type=month]:-moz-placeholder,div.wpforms-container-full input[type=number]:-moz-placeholder,div.wpforms-container-full input[type=password]:-moz-placeholder,div.wpforms-container-full input[type=range]:-moz-placeholder,div.wpforms-container-full input[type=search]:-moz-placeholder,div.wpforms-container-full input[type=tel]:-moz-placeholder,div.wpforms-container-full input[type=text]:-moz-placeholder,div.wpforms-container-full input[type=time]:-moz-placeholder,div.wpforms-container-full input[type=url]:-moz-placeholder,div.wpforms-container-full input[type=week]:-moz-placeholder,div.wpforms-container-full select:-moz-placeholder,div.wpforms-container-full textarea:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=date]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime-local]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=email]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=month]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=number]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=password]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=range]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=search]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=tel]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=text]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=time]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=url]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=week]:-moz-placeholder,.wp-core-ui div.wpforms-container-full select:-moz-placeholder,.wp-core-ui div.wpforms-container-full textarea:-moz-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}div.wpforms-container-full textarea,.wp-core-ui div.wpforms-container-full textarea{width:100%}div.wpforms-container-full input,div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full input,.wp-core-ui div.wpforms-container-full select{height:var(--wpforms-field-size-input-height)}div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full select{appearance:none;display:block;max-width:100%;width:100%;text-transform:none;text-shadow:none;white-space:nowrap;line-height:unset;padding-block:0;padding-inline-end:24px;padding-inline-start:12px;min-height:var(--wpforms-field-size-input-height);vertical-align:middle;cursor:pointer}div.wpforms-container-full select,div.wpforms-container-full select:disabled,.wp-core-ui div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full select:disabled{background-image:linear-gradient(45deg, transparent 50%, var(--wpforms-field-border-color-spare) 50%),linear-gradient(135deg, var(--wpforms-field-border-color-spare) 50%, transparent 50%);background-position:calc( 100% - 17px) 50%,calc( 100% - 12px) 50%;background-size:5px 5px, 5px 5px;background-repeat:no-repeat}.rtl div.wpforms-container-full select,.rtl div.wpforms-container-full select:disabled,.rtl .wp-core-ui div.wpforms-container-full select,.rtl .wp-core-ui div.wpforms-container-full select:disabled{background-position:12px 50%, 17px 50%}div.wpforms-container-full select>option,.wp-core-ui div.wpforms-container-full select>option{color:var(--wpforms-field-text-color)}div.wpforms-container-full select>option.placeholder,div.wpforms-container-full select>option[disabled],.wp-core-ui div.wpforms-container-full select>option.placeholder,.wp-core-ui div.wpforms-container-full select>option[disabled]{color:var(--wpforms-field-text-color);opacity:0.5}div.wpforms-container-full select:not([multiple])>option,.wp-core-ui div.wpforms-container-full select:not([multiple])>option{background:var(--wpforms-field-menu-color)}div.wpforms-container-full select:not([multiple])>option:not(.placeholder):checked,.wp-core-ui div.wpforms-container-full select:not([multiple])>option:not(.placeholder):checked{font-weight:bold}div.wpforms-container-full select[multiple],.wp-core-ui div.wpforms-container-full select[multiple]{height:auto;overflow-y:scroll;background-image:none}div.wpforms-container-full select[multiple]>option:not(.placeholder):checked,.wp-core-ui div.wpforms-container-full select[multiple]>option:not(.placeholder):checked{background:var(--wpforms-button-background-color);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color))}div.wpforms-container-full input[type=number]:read-only,.wp-core-ui div.wpforms-container-full input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}div.wpforms-container-full input[type=number]:read-only::-webkit-inner-spin-button,.wp-core-ui div.wpforms-container-full input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}div.wpforms-container-full input[type=submit],div.wpforms-container-full button[type=submit],div.wpforms-container-full .wpforms-page-button,.wp-core-ui div.wpforms-container-full input[type=submit],.wp-core-ui div.wpforms-container-full button[type=submit],.wp-core-ui div.wpforms-container-full .wpforms-page-button{height:var(--wpforms-button-size-height);background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));border-radius:var(--wpforms-button-border-radius);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color);border-width:var(--wpforms-button-border-size);box-shadow:none;color:var(--wpforms-button-text-color);padding:0 var(--wpforms-button-size-padding-h);font-family:inherit;font-weight:500;font-size:var(--wpforms-button-size-font-size);line-height:100%;cursor:pointer;transition:all 0.15s ease-in-out;position:relative;text-decoration:none}div.wpforms-container-full input[type=submit]:not(:hover):not(:active),div.wpforms-container-full button[type=submit]:not(:hover):not(:active),div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active),.wp-core-ui div.wpforms-container-full input[type=submit]:not(:hover):not(:active),.wp-core-ui div.wpforms-container-full button[type=submit]:not(:hover):not(:active),.wp-core-ui div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active){background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));color:var(--wpforms-button-text-color)}div.wpforms-container-full input[type=submit]:hover,div.wpforms-container-full input[type=submit]:active,div.wpforms-container-full button[type=submit]:hover,div.wpforms-container-full button[type=submit]:active,div.wpforms-container-full .wpforms-page-button:hover,div.wpforms-container-full .wpforms-page-button:active,.wp-core-ui div.wpforms-container-full input[type=submit]:hover,.wp-core-ui div.wpforms-container-full input[type=submit]:active,.wp-core-ui div.wpforms-container-full button[type=submit]:hover,.wp-core-ui div.wpforms-container-full button[type=submit]:active,.wp-core-ui div.wpforms-container-full .wpforms-page-button:hover,.wp-core-ui div.wpforms-container-full .wpforms-page-button:active{background:linear-gradient(0deg, rgba(0,0,0,0.2), rgba(0,0,0,0.2)),var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color))}div.wpforms-container-full input[type=submit].wpforms-opacity-hover:hover,div.wpforms-container-full input[type=submit].wpforms-opacity-hover:active,div.wpforms-container-full button[type=submit].wpforms-opacity-hover:hover,div.wpforms-container-full button[type=submit].wpforms-opacity-hover:active,div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:hover,div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:active,.wp-core-ui div.wpforms-container-full input[type=submit].wpforms-opacity-hover:hover,.wp-core-ui div.wpforms-container-full input[type=submit].wpforms-opacity-hover:active,.wp-core-ui div.wpforms-container-full button[type=submit].wpforms-opacity-hover:hover,.wp-core-ui div.wpforms-container-full button[type=submit].wpforms-opacity-hover:active,.wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:hover,.wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:active{background:none;opacity:.75}div.wpforms-container-full input[type=submit]:focus,div.wpforms-container-full button[type=submit]:focus,div.wpforms-container-full .wpforms-page-button:focus,.wp-core-ui div.wpforms-container-full input[type=submit]:focus,.wp-core-ui div.wpforms-container-full button[type=submit]:focus,.wp-core-ui div.wpforms-container-full .wpforms-page-button:focus{outline:none}div.wpforms-container-full input[type=submit]:focus:after,div.wpforms-container-full button[type=submit]:focus:after,div.wpforms-container-full .wpforms-page-button:focus:after,.wp-core-ui div.wpforms-container-full input[type=submit]:focus:after,.wp-core-ui div.wpforms-container-full button[type=submit]:focus:after,.wp-core-ui div.wpforms-container-full .wpforms-page-button:focus:after{content:"";position:absolute;border:2px solid var(--wpforms-button-background-color);border-radius:calc( var( --wpforms-button-border-radius ) + 2px);top:calc( -4px - var( --wpforms-button-border-size, 1px ));right:calc( -4px - var( --wpforms-button-border-size, 1px ));bottom:calc( -4px - var( --wpforms-button-border-size, 1px ));left:calc( -4px - var( --wpforms-button-border-size, 1px ))}div.wpforms-container-full input[type=submit]:disabled,div.wpforms-container-full input[type=submit]:disabled:hover,div.wpforms-container-full input[type=submit].wpforms-disabled,div.wpforms-container-full button[type=submit]:disabled,div.wpforms-container-full button[type=submit]:disabled:hover,div.wpforms-container-full button[type=submit].wpforms-disabled,div.wpforms-container-full .wpforms-page-button:disabled,div.wpforms-container-full .wpforms-page-button:disabled:hover,div.wpforms-container-full .wpforms-page-button.wpforms-disabled,.wp-core-ui div.wpforms-container-full input[type=submit]:disabled,.wp-core-ui div.wpforms-container-full input[type=submit]:disabled:hover,.wp-core-ui div.wpforms-container-full input[type=submit].wpforms-disabled,.wp-core-ui div.wpforms-container-full button[type=submit]:disabled,.wp-core-ui div.wpforms-container-full button[type=submit]:disabled:hover,.wp-core-ui div.wpforms-container-full button[type=submit].wpforms-disabled,.wp-core-ui div.wpforms-container-full .wpforms-page-button:disabled,.wp-core-ui div.wpforms-container-full .wpforms-page-button:disabled:hover,.wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-disabled{background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));cursor:default}div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=date]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=datetime]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=datetime-local]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=email]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=month]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=number]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=password]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=range]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=search]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=tel]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=text]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=time]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=url]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=week]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) select:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) textarea:disabled{cursor:not-allowed;opacity:0.5}div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=checkbox]:disabled:before,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=checkbox]:disabled:after,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=radio]:disabled:before,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=radio]:disabled:after{cursor:not-allowed;opacity:0.5}div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit]:disabled:hover,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit].wpforms-disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit]:disabled:hover,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit].wpforms-disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button:disabled:hover,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button.wpforms-disabled{opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row{margin-bottom:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:last-child,div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:only-child{margin-bottom:0 !important}div.wpforms-container-full input[type=checkbox],div.wpforms-container-full input[type=radio]{position:relative;display:inline-block;background:none;height:calc( var( --wpforms-field-size-checkbox-size ) - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ));width:calc( var( --wpforms-field-size-checkbox-size ) - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ));margin:0 0 0 2px;border:none;box-shadow:none;vertical-align:middle;opacity:1;appearance:none}div.wpforms-container-full input[type=checkbox]:before,div.wpforms-container-full input[type=checkbox]:after,div.wpforms-container-full input[type=radio]:before,div.wpforms-container-full input[type=radio]:after{content:'';position:absolute;left:-2px;top:-2px;width:var(--wpforms-field-size-checkbox-size);height:var(--wpforms-field-size-checkbox-size);box-sizing:content-box;cursor:pointer}div.wpforms-container-full input[type=checkbox]:before,div.wpforms-container-full input[type=radio]:before{border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color);background-clip:padding-box;background-image:none;border-radius:3px}div.wpforms-container-full input[type=checkbox]+label,div.wpforms-container-full input[type=radio]+label{display:inline;position:relative;padding-inline-start:12px;font-size:var(--wpforms-label-size-font-size);cursor:pointer;vertical-align:middle}div.wpforms-container-full input[type=checkbox]:checked:before,div.wpforms-container-full input[type=radio]:checked:before{margin:0;border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full input[type=checkbox]:focus,div.wpforms-container-full input[type=radio]:focus{outline:none}div.wpforms-container-full input[type=checkbox]:focus:before,div.wpforms-container-full input[type=radio]:focus:before{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full input[type=checkbox]:checked:after{border-top:none;border-right:none;height:calc( var( --wpforms-field-size-checkbox-size ) * 0.6);border-left:4px solid var(--wpforms-button-background-color);border-bottom:4px solid var(--wpforms-button-background-color);background-color:transparent;transform:translate(0, 1px) scale(0.5) rotate(-45deg);left:calc( -4px + var( --wpforms-field-border-size, 1px ));top:calc( -3px + var( --wpforms-field-border-size, 1px ))}div.wpforms-container-full input[type=radio]{border-radius:50%}div.wpforms-container-full input[type=radio]:before{border-radius:50%}div.wpforms-container-full input[type=radio]:checked:after{border:1px solid transparent;border-radius:50%;background-color:var(--wpforms-button-background-color);transform:scale(0.5);-moz-transform:scale(0.47);left:calc( -3px + var( --wpforms-field-border-size, 1px ));top:calc( -3px + var( --wpforms-field-border-size, 1px ))}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul{display:grid;grid-template-columns:repeat(1, auto);padding:0;gap:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li{height:unset;line-height:var(--wpforms-field-size-checkbox-size);display:flex;align-items:flex-start;margin:0}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input{min-width:var(--wpforms-field-size-checkbox-size);margin-top:calc((var(--wpforms-label-size-font-size) * 1.3 - var(--wpforms-field-size-checkbox-size)) / 1.5)}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label{padding-inline-start:12px;margin:0;line-height:1.3}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label .wpforms-currency-symbol{white-space:nowrap}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ol{display:block;padding-left:15px}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ol li{display:list-item;margin-bottom:10px}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-2-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr))}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-3-columns ul{grid-template-columns:repeat(3, minmax(0, 1fr))}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-inline ul{display:inline-flex;flex-wrap:wrap}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-other-input{margin-top:16px}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label{display:block;overflow:hidden;position:relative;border-width:var(--wpforms-field-border-size);border-color:transparent;border-style:solid}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label .wpforms-image-choices-label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label .wpforms-image-choices-label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-label{font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-label-color);margin-top:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item img,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item img{border-radius:calc( var( --wpforms-field-border-radius ) / 2);overflow:hidden}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label{border-radius:var(--wpforms-field-border-radius)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label:hover,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label:hover{border-color:var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label{border-width:var(--wpforms-field-border-size)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:hover{box-shadow:0 0 0 1px var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:focus,div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:focus-within{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label.wpforms-field-label-inline-empty .wpforms-image-choices-label{margin-top:0}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item.wpforms-selected .wpforms-image-choices-image:after,div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item:has(input:checked) .wpforms-image-choices-image:after{background-color:var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item.wpforms-selected label:hover,div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item:has(input:checked) label:hover{border-color:var(--wpforms-button-background-color);box-shadow:0 0 20px 0 rgba(0,0,0,0.1),0 0 0 1px var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item .wpforms-image-choices-image img{border-radius:calc( var( --wpforms-field-border-radius ) / 2)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item label:focus,div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item label:focus-within{border-color:var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item.wpforms-selected label,div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item:has(input:checked) label{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label{padding:2px}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-image{display:inline-block;margin-bottom:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label input{margin-top:0}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-label{margin-top:0}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices{margin:0 !important;gap:22px}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-small svg{height:calc( 32px * var( --wpforms-field-size-icon-size ))}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-medium svg{height:calc( 48px * var( --wpforms-field-size-icon-size ))}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-large svg{height:calc( 64px * var( --wpforms-field-size-icon-size ))}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item{width:auto;margin:0 !important}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item label{width:100%}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item svg{fill:var(--wpforms-icon-choices-color);max-width:100%}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item .wpforms-icon-choices-label{font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);margin-top:var(--wpforms-field-size-input-spacing);color:var(--wpforms-label-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{background-color:transparent;border-radius:var(--wpforms-field-border-radius);border-width:clamp(1px, var(--wpforms-field-border-size), 6px);border-style:solid;border-color:var(--wpforms-field-border-color);margin-bottom:calc( var( --wpforms-field-size-input-spacing ) - 5px);overflow:hidden;box-shadow:none;padding:var(--wpforms-field-size-input-spacing) calc( var( --wpforms-field-size-input-spacing ) + 5px) calc( 2 * var( --wpforms-field-size-input-spacing ) + var( --wpforms-field-size-checkbox-size )) calc( var( --wpforms-field-size-input-spacing ) + 5px)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:after{width:var(--wpforms-field-size-checkbox-size);height:var(--wpforms-field-size-checkbox-size);margin-top:var(--wpforms-field-size-input-spacing);bottom:var(--wpforms-field-size-input-spacing);left:50%;transform:translateX(-50%);background-color:var(--wpforms-field-background-color);box-shadow:0 0 0 1px var(--wpforms-field-border-color);opacity:1 !important}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{background-color:transparent;border-radius:calc( var( --wpforms-field-border-radius ) / 1.5)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{box-shadow:none;border-radius:var(--wpforms-field-border-radius);border-width:clamp(1px, var(--wpforms-field-border-size), 6px);border-style:solid;border-color:var(--wpforms-field-border-color);padding:var(--wpforms-field-size-input-spacing);background-color:transparent !important}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label.wpforms-field-label-inline-empty .wpforms-icon-choices-icon{margin-bottom:0}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 clamp(1px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color),0 1px 10px rgba(0,0,0,0.15);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{border-radius:var(--wpforms-field-border-radius);background-color:transparent !important;padding:20px 20px 15px 20px}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label.wpforms-field-label-inline-empty .wpforms-icon-choices-icon{margin-bottom:5px}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none .wpforms-icon-choices-icon{margin-bottom:var(--wpforms-field-size-input-spacing)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none input{margin-top:0;vertical-align:middle}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none .wpforms-icon-choices-label{padding-left:8px;vertical-align:middle;margin-top:2px}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{transform:translateX(-50%) scale(0.5);background-color:var(--wpforms-icon-choices-color);box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);-moz-transform:translateX(-50%) scale(0.49)}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{border-top:none;border-right:none;height:calc( var( --wpforms-field-size-checkbox-size ) * 0.6);border-left:4px solid var(--wpforms-icon-choices-color);border-bottom:4px solid var(--wpforms-icon-choices-color);background-color:transparent;transform:scale(0.6) translate(-10%, -50%) rotate(-45deg);box-shadow:none}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}div.wpforms-container-full .wpforms-form .wpforms-field-divider{border-top-width:var(--wpforms-field-border-size);border-top-style:solid;border-top-color:var(--wpforms-field-border-color);margin-top:30px;padding:0px}div.wpforms-container-full .wpforms-form .wpforms-field-divider:first-child{margin-top:0;border-top:none}div.wpforms-container-full .wpforms-form .wpforms-field-divider-hide_line{border-top:none}div.wpforms-container-full .wpforms-form .wpforms-field-divider h3{color:var(--wpforms-label-color);padding-top:var(--wpforms-field-size-input-spacing);font-size:calc( 1.5 * var( --wpforms-label-size-font-size ));font-weight:bold}div.wpforms-container-full .wpforms-form .wpforms-field-divider:has(>.wpforms-field-description) h3{margin-bottom:5px}div.wpforms-container-full .wpforms-form .wpforms-field-divider+.wpforms-field-divider{margin-top:45px}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-row.wpforms-without-state .wpforms-field-row-block.wpforms-first{width:100%;padding:0;margin-bottom:0}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-row.wpforms-without-state .wpforms-field-row-block:not(.wpforms-first){display:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select{padding-inline-start:14px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:0;overflow:auto}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:10px 12px;line-height:1}}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option{padding:10px 14px;box-shadow:0 1px 0 0 rgba(0,0,0,0.1)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option.placeholder,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option[disabled]{box-shadow:0 1px 0 0 rgba(0,0,0,0.2)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices{font-size:var(--wpforms-field-size-font-size);line-height:19px;color:var(--wpforms-field-text-color);margin-bottom:5px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__input--cloned{background-color:transparent}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner{background-color:var(--wpforms-field-background-color);background-clip:padding-box;min-height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 24px 0 7px;border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);border-radius:var(--wpforms-field-border-radius);cursor:pointer}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single{padding:0 16px 0 4px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single .choices__item--selectable{background-color:transparent;font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-field-text-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single .choices__item--selectable.choices__placeholder{opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple{display:inline !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty{display:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty+.choices__input{margin-left:4px !important;min-width:100% !important;text-overflow:ellipsis;padding-right:20px !important;white-space:nowrap}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple .choices__item{position:relative;top:-1.5px;background-color:var(--wpforms-button-background-color);border:1px solid var(--wpforms-button-background-color);border-radius:calc( max( var( --wpforms-field-border-radius ), 6px ) / 2);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color));margin:0 6px 6px 0;line-height:1}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__list--dropdown{background:var(--wpforms-field-menu-color) !important;color:var(--wpforms-field-text-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:var(--wpforms-button-background-color);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color))}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices input.choices__input{display:inline-block;padding:0 !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] input.choices__input{background:none !important;margin:5px !important;padding:5px !important;width:calc( 100% - 10px) !important;border:0 !important;box-shadow:none !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices ::-webkit-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices ::-moz-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices :-ms-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button{opacity:0.7;background-image:linear-gradient(45deg, transparent 44%, var(--wpforms-field-border-color-spare) 44%, var(--wpforms-field-border-color-spare) 56%, transparent 56%),linear-gradient(135deg, transparent 44%, var(--wpforms-field-border-color-spare) 44%, var(--wpforms-field-border-color-spare) 56%, transparent 56%);background-position:50% 50%, 50% 50%;background-size:8px 8px, 8px 8px;background-repeat:no-repeat}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button:hover{opacity:1}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"]:after,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"]:after{width:0;height:0;right:12px;background:none;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--wpforms-field-border-color-spare)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"].is-open:after,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"].is-open:after{border-top:5px solid transparent;border-bottom:5px solid var(--wpforms-field-border-color-spare)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-focused .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open .choices__list--dropdown{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:before{content:'';position:absolute;height:3px;background:var(--wpforms-field-background-color);width:calc( 100% - 2px);left:1px;right:1px;z-index:100000000000;opacity:1;border-radius:0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped):before{top:unset;bottom:1px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped) .choices__inner{border-radius:var(--wpforms-field-border-radius) var(--wpforms-field-border-radius) 0 0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped) .choices__list--dropdown{border-radius:0 0 var(--wpforms-field-border-radius) var(--wpforms-field-border-radius);margin-top:0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped:before{top:1px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped .choices__inner{border-radius:0 0 var(--wpforms-field-border-radius) var(--wpforms-field-border-radius)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped .choices__list--dropdown{border-radius:var(--wpforms-field-border-radius) var(--wpforms-field-border-radius) 0 0;margin-bottom:0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices .choices__inner{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices:hover .choices__inner{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-focused .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-open .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-open .choices__list--dropdown{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{appearance:none;height:calc( var( --wpforms-field-size-input-height ) / 4);padding:0;margin-top:calc( var( --wpforms-field-size-input-spacing ) + var( --wpforms-field-size-input-height ) / 4);margin-bottom:calc( var( --wpforms-field-size-input-height ) / 4);border-radius:var(--wpforms-field-border-radius);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:first-child{margin-top:calc( var( --wpforms-field-size-input-height ) * 0.25)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:focus:invalid{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;color:var(--wpforms-field-text-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-runnable-track{height:calc( var( --wpforms-field-size-input-height ) / 4);box-shadow:none}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-moz-range-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);color:var(--wpforms-label-sublabel-color);padding:var(--wpforms-field-size-sublabel-spacing) 0 0 0;margin:0}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint b,div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint strong{color:var(--wpforms-label-sublabel-color)}div.wpforms-container-full .wpforms-form textarea{line-height:1.3;min-height:var(--wpforms-field-size-input-height);padding:var(--wpforms-field-size-padding-h);resize:vertical}div.wpforms-container-full .wpforms-form textarea.wpforms-field-small{height:calc( var( --wpforms-field-size-input-height ) * 2.26)}div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium{height:calc( var( --wpforms-field-size-input-height ) * 2.8)}div.wpforms-container-full .wpforms-form textarea.wpforms-field-large{height:calc( var( --wpforms-field-size-input-height ) * 5.1)}div.wpforms-container-full .wpforms-form textarea:focus{color:var(--wpforms-field-text-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.wpforms-container .wpforms-form .wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{font-size:var(--wpforms-field-size-font-size)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-style:var(--wpforms-field-border-style);border-width:var(--wpforms-field-border-size);border-radius:var(--wpforms-field-border-radius)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top-style:var(--wpforms-field-border-style);border-top-width:var(--wpforms-field-border-size)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:var(--wpforms-field-border-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{color:var(--wpforms-label-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{color:var(--wpforms-label-sublabel-color);border-top-color:var(--wpforms-field-border-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:var(--wpforms-label-error-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:var(--wpforms-label-color)}.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{max-width:100%;margin-bottom:24px}@container wpforms-field-row-responsive (max-width: 200px){div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:var(--wpforms-field-size-input-spacing)}}@container wpforms-field-row-responsive-300px (max-width: 300px){div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:var(--wpforms-field-size-input-spacing)}}@media only screen and (max-width: 768px){div.wpforms-container-full:not(:empty){padding:calc( min( var( --wpforms-container-padding ), 40px ))}}@media only screen and (max-width: 600px){div.wpforms-container-full:not(:empty){padding:calc( min( var( --wpforms-container-padding ), 20px ))}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{margin:20px 0 20px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{width:30px;height:30px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:none}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-dashicons.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-dashicons.min.css new file mode 100644 index 0000000..503ea0f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-dashicons.min.css @@ -0,0 +1 @@ +@font-face{font-family:'WPForms';src:url("../../fonts/wpforms.woff2") format("woff2");font-weight:normal;font-style:normal}.dashicons-wpforms{font-family:'WPForms'}.dashicons-wpforms:before{content:'\f298'} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-form-preview.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-form-preview.min.css new file mode 100644 index 0000000..2f5c550 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-form-preview.min.css @@ -0,0 +1 @@ +.wpforms-preview-notice{box-sizing:border-box;padding:15px;background-color:#fcf9e8;border:1px solid #f5e6ab;color:var(--wpforms-field-text-color);font-size:16px}.wpforms-preview-notice p{margin:0} diff --git a/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-no-styles.min.css b/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-no-styles.min.css new file mode 100644 index 0000000..0511227 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/frontend/wpforms-no-styles.min.css @@ -0,0 +1 @@ +.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/ai-forms.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/ai-forms.min.css new file mode 100644 index 0000000..72e1171 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/ai-forms.min.css @@ -0,0 +1 @@ +#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate:hover,#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate.selected{box-shadow:0 0 0 2px #5c24a9,0 3px 4px rgba(0,0,0,0.15)}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-thumbnail{background-color:#faf5fe}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-name-wrap{display:flex;max-height:40px}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-name-wrap .wpforms-template-name{padding-right:10px}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-name-wrap .wpforms-badge{box-sizing:border-box;opacity:1;font-size:8px;padding:6px 8px;height:18px;margin-top:20px}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-generate.wpforms-inactive{color:#ffffff;background-color:#7a30e2;margin:0;pointer-events:all;cursor:default}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-generate.wpforms-inactive:hover{background-color:#7a30e2;color:#ffffff}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-generate.wpforms-inactive:focus{box-shadow:none}#wpforms-panel-ai-form .wpforms-panel-sidebar{z-index:20;overflow:hidden}#wpforms-panel-ai-form .wpforms-panel-sidebar-header{border-bottom:1px solid #ced7e0}#wpforms-panel-ai-form .wpforms-btn-back-to-templates{background-color:transparent;border:none;color:#3c434a;width:auto;text-align:left;padding:15px 15px 15px 43px;font-size:15px;font-weight:600;cursor:pointer;position:relative}#wpforms-panel-ai-form .wpforms-btn-back-to-templates:hover{text-decoration:underline}#wpforms-panel-ai-form .wpforms-btn-back-to-templates:before{content:'';position:absolute;left:20px;background-image:url("../../../images/integrations/ai/back.svg");background-size:13px 11px;width:13px;height:11px;top:50%;transform:translateY(-50%)}#wpforms-panel-ai-form .wpforms-panel-content-wrap{overflow-x:hidden}#wpforms-panel-ai-form .wpforms-panel-content.wpforms-panel-fields{width:100%;height:auto;padding:15px}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-panel-empty-state{min-height:485px;height:calc( 100vh - 200px - var( --wpforms-admin-bar-height ));display:flex;flex-direction:column;justify-content:center;align-items:center}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-panel-empty-state::before{background-image:url("../../../images/integrations/ai/ai-form-empty-state.svg");background-position:center center;background-repeat:no-repeat;background-size:568px 284px;content:"";display:block;height:284px;width:100%}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-panel-empty-state h4{color:#3c434a;font-size:24px;font-weight:600;line-height:29px;margin:30px 0 10px}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-panel-empty-state p{color:#6a6f76;font-size:16px;font-weight:400;line-height:19px;margin:0;text-align:center;max-width:600px}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-title{font-size:28px;line-height:28px;padding:15px 0 30px 0;margin:0 15px 15px 15px;border-bottom:1px solid #dcdcde}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field{margin:0;min-height:128px;position:relative}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field:has(>.placeholder.fade-out){min-height:0}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field:has(.wpforms-ai-form-generator-hidden){display:none}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .placeholder{border-radius:4px;width:calc( 100% - 30px);height:98px;margin:15px;background:linear-gradient(92deg, #fcfcfc 50%, #f8f8f8 100%);position:absolute;top:0;left:0}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .placeholder.fade-out{animation:fade-out .25s ease-in;background:transparent}@keyframes fade-out{0%{opacity:1}100%{opacity:0;background:transparent}}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field{cursor:default;opacity:0}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field.fade-in{animation:fade-in .25s ease-in;background:transparent;opacity:1}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field:hover{border-color:transparent}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field:hover.wpforms-field-divider:not(:empty)::before{display:revert}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field:hover.wpforms-pagebreak-normal .wpforms-pagebreak-buttons{border-color:transparent}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field:hover.wpforms-pagebreak-normal .wpforms-pagebreak-divider{background-color:#626262}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field:hover.wpforms-pagebreak-normal .wpforms-pagebreak-divider span:not(.wpforms-badge){background-color:#626262}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field .wpforms-field:empty::before{display:none}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field label,#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field input,#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field select,#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field textarea,#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-field button{cursor:default}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-pagebreak-normal .wpforms-pagebreak-divider{margin:0 -15px}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-submit{width:fit-content;pointer-events:none;background:#999c9e;border:none;border-radius:4px;color:#ffffff;cursor:pointer;font-size:17px;font-weight:600;line-height:21px;padding:10px 15px;margin:20px 15px 15px 15px}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-addons-notice{display:flex;align-items:center;margin:20px 15px 15px 15px}#wpforms-panel-ai-form .wpforms-panel-content .wpforms-ai-form-generator-preview-addons-notice .wpforms-alert-message a{color:#3c434a;font-weight:600;text-decoration:underline}#wpforms-panel-ai-form .wpforms-panel-content.wpforms-quiz-graded-type-selected .wpforms-quiz-field-included .primary-input li:has(input[checked]):after{content:'✓'}#wpforms-panel-ai-form .wpforms-panel-content.wpforms-quiz-graded-type-selected .wpforms-quiz-field-included .primary-input li:has(input[checked]).wpforms-selected:after{margin-inline-start:5px}wpforms-ai-chat:has(textarea){--wpforms-ai-chat-input-height: 54px;--wpforms-ai-chat-message-list-offset: 79px}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list{height:calc( 100% - var( --wpforms-ai-chat-input-height, 54px ) - var( --wpforms-ai-chat-message-list-offset, 41px ));max-height:calc( 100% - var( --wpforms-ai-chat-input-height, 54px ) - var( --wpforms-ai-chat-message-list-offset, 41px ))}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list.wpforms-scrollbar-compact{scrollbar-gutter:stable}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list.wpforms-scrollbar-compact .wpforms-chat-item-error .wpforms-chat-item-content{width:400px;max-width:400px}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-question{width:auto;max-width:410px;font-weight:600}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-answer .wpforms-chat-item-content h4,wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-warning .wpforms-chat-item-content h4,wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-error .wpforms-chat-item-content h4{line-height:22px;margin:0}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-answer .wpforms-chat-item-content .wpforms-ai-chat-answer-buttons,wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-warning .wpforms-chat-item-content .wpforms-ai-chat-answer-buttons,wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-error .wpforms-chat-item-content .wpforms-ai-chat-answer-buttons{margin-top:10px}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-pre-message .wpforms-ai-chat-answer-buttons{display:none}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-answer:last-child{margin-bottom:20px}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list .wpforms-chat-item-content{position:relative}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-inactive .wpforms-chat-item-answer:not(.active) .wpforms-chat-item-content{pointer-events:none}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-input{padding:35px 40px;height:calc( var( --wpforms-ai-chat-input-height, 54px ) + var( --wpforms-ai-chat-message-list-offset, 50px ));max-height:calc( var( --wpforms-ai-chat-input-height, 54px ) + var( --wpforms-ai-chat-message-list-offset, 50px ))}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-input .wpforms-ai-chat-send,wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-input .wpforms-ai-chat-stop{inset-inline-end:41px;bottom:38px}wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-input textarea{margin-top:6px !important}wpforms-ai-chat[mode="forms"]{height:calc( 100% - 50px);--wpforms-ai-chat-message-list-offset: 40px}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-list{padding:20px 20px 0 19px !important}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-list .wpforms-ai-chat-header h3.wpforms-ai-chat-header-title{font-weight:600}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-list .wpforms-ai-chat-header .wpforms-ai-chat-header-description a{display:block;line-height:24px;margin-top:5px}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-list.wpforms-scrollbar-compact{padding:20px 6px 0 19px !important}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-list .wpforms-ai-chat-divider{border-top:none;margin:0 0 40px 0}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-list .wpforms-chat-item-answer p{margin:0}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-input{padding:20px}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-input .wpforms-ai-chat-send,wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-input .wpforms-ai-chat-stop{inset-inline-end:20px;bottom:19px}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-message-input textarea{margin-top:unset !important}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-restaurant{background-image:url("../../../images/integrations/ai/icon-restaurant.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-ticket{background-image:url("../../../images/integrations/ai/icon-ticket.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-design{background-image:url("../../../images/integrations/ai/icon-design.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-stop{background-image:url("../../../images/integrations/ai/icon-stop-sign.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-pizza{background-image:url("../../../images/integrations/ai/icon-pizza.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-market{background-image:url("../../../images/integrations/ai/icon-market.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-quiz-capitals{background-image:url("../../../images/integrations/ai/icon-capitals.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-quiz-learn{background-image:url("../../../images/integrations/ai/icon-learn.svg")}wpforms-ai-chat[mode="forms"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-sample-quiz-business{background-image:url("../../../images/integrations/ai/icon-business.svg")}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description{font-size:16px;color:#3c434a;line-height:24px}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description a{color:#036aab;font-size:15px}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description a:hover,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description a:focus{color:#0399ed}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-question{background-color:#0399ed}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-spinner{background:#dfe7ef}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer .wpforms-chat-item-content,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning .wpforms-chat-item-content{background:#dfe7ef;border:2px solid transparent;cursor:pointer;transition-property:border-color;transition-duration:0.15s;transition-timing-function:ease-out}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer .wpforms-chat-item-content:hover,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning .wpforms-chat-item-content:hover{border-color:#86919e}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer .wpforms-chat-item-content h4,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning .wpforms-chat-item-content h4{font-weight:600}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer .wpforms-ai-chat-answer-buttons button span,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning .wpforms-ai-chat-answer-buttons button span{font-weight:600}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer:not(.active) .wpforms-ai-chat-answer-buttons,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning:not(.active) .wpforms-ai-chat-answer-buttons{border-top:1px solid #ced7e0}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer:not(.active) .wpforms-ai-chat-answer-buttons button,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning:not(.active) .wpforms-ai-chat-answer-buttons button{opacity:0.5;pointer-events:none}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer:not(.active) .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-buttons-response .wpforms-ai-chat-answer-button.dislike,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning:not(.active) .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-buttons-response .wpforms-ai-chat-answer-button.dislike{background-image:url("../../../images/integrations/ai/thumbs-down-inactive.svg")}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer:not(.active) .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-buttons-response button,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning:not(.active) .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-buttons-response button{opacity:1;color:#b0b6bd}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer:not(.active) .wpforms-ai-chat-answer-action,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning:not(.active) .wpforms-ai-chat-answer-action{background:#86919e;color:#ffffff}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer.active .wpforms-chat-item-content,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning.active .wpforms-chat-item-content{background:#ffffff;border-color:#ffffff}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer.active .wpforms-chat-item-content:hover,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning.active .wpforms-chat-item-content:hover{cursor:default}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer.active .wpforms-ai-chat-answer-buttons button,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-warning.active .wpforms-ai-chat-answer-buttons button{opacity:1}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-error .wpforms-chat-item-content{background:#ffffff}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-error .wpforms-chat-item-content h4{font-weight:600}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-error .wpforms-chat-item-content span a{color:#3c434a}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-error .wpforms-chat-item-content span a:hover{color:#6a6f76}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-list .wpforms-chat-item-answer-waiting .wpforms-chat-item-spinner{color:#86919e}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-input{border-top:1px solid #ced7e0;background:#dfe7ef}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-input textarea{font-size:15px}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-input textarea::placeholder{color:#b0b6bd}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-input textarea:not(:focus){border-color:#b0b6bd}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-message-input textarea:focus{border:1px solid #036aab;box-shadow:0 2px 2px 0 rgba(0,0,0,0.07),0 0 0 1px #036aab}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-send,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-stop{background-color:#036aab}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-send:hover,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-send:focus,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-stop:hover,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-stop:focus{background-color:#215d8f}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-welcome-screen-sample-prompts li{border-bottom:1px solid #ced7e0}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-welcome-screen-sample-prompts li:last-child{border-bottom:none}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-welcome-screen-sample-prompts li::after{background-image:url("../../../images/integrations/ai/icon-send-blue.svg")}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-welcome-screen-sample-prompts li:hover a{color:#036aab}wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-welcome-screen-sample-prompts li a:hover,wpforms-ai-chat.wpforms-ai-chat-blue .wpforms-ai-chat-welcome-screen-sample-prompts li a:focus{color:#036aab;text-decoration:underline}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box.wpforms-ai-forms-install-addons-modal .jconfirm-checkbox{grid-column:1 / -1;margin:5px 0 10px 0;color:#6a6f76;vertical-align:center}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box.wpforms-ai-forms-install-addons-modal .jconfirm-checkbox input[type="checkbox"]{border-color:#a6a6a6;background:#ffffff}.wpforms_page_wpforms-builder .jconfirm .jconfirm-box.wpforms-ai-forms-addons-installed-modal .jconfirm-buttons{margin-top:0} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/chat-element.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/chat-element.min.css new file mode 100644 index 0000000..9178ab8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/chat-element.min.css @@ -0,0 +1 @@ +wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-answer-buttons .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#ffffff}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-answer-buttons .wpforms-btn-orange:hover{background-color:#cd6622;border-color:#cd6622;color:#ffffff}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-answer-buttons .wpforms-btn-sm{font-size:13px;font-weight:500;padding:0 10px;height:32px;line-height:30px}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-flag{background-image:url("../../../images/integrations/ai/flag-usa.svg")}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-clover{background-image:url("../../../images/integrations/ai/leaf-maple.svg")}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-thumbs-up{background-image:url("../../../images/integrations/ai/thumbs-up.svg")}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-globe{background-image:url("../../../images/integrations/ai/globe-americas.svg")}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-palm{background-image:url("../../../images/integrations/ai/tree-palm.svg")}wpforms-ai-chat[mode="choices"] .wpforms-ai-chat-welcome-screen-sample-prompts i.wpforms-ai-chat-shop{background-image:url("../../../images/integrations/ai/store.svg")}wpforms-ai-chat{display:block;max-height:100%;height:100%;overflow:hidden}wpforms-ai-chat .wpforms-ai-chat{display:block;max-height:100%;height:100%;overflow:hidden}wpforms-ai-chat .wpforms-ai-chat-message-list{margin:0;padding:40px 40px 20px 40px;display:flex;flex-direction:column;overflow:auto;height:calc( 100% - 134px);max-height:calc( 100% - 134px)}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-chat-item-answer:last-child{margin-bottom:40px}wpforms-ai-chat .wpforms-ai-chat-message-list.wpforms-scrollbar-compact{padding-right:25px;padding-bottom:20px}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-chat-item-question{width:410px;margin-bottom:20px;margin-inline-start:auto;display:flex;height:fit-content;padding:15px 20px 15px 20px;color:#ffffff;gap:10px;border-radius:24px;border-start-end-radius:0;font-weight:500;font-size:15px;line-height:22px;overflow-wrap:anywhere}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-chat-item-question div>h4:first-child{margin-block-start:0}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item.wpforms-chat-item-text{white-space:pre-line}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header h3.wpforms-ai-chat-header-title{font-weight:600;font-size:24px;line-height:30px;margin:0 0 10px}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header h3.wpforms-ai-chat-header-title:after{content:'';display:inline-block;vertical-align:top;width:16px;height:16px;background-image:url("../../../images/integrations/ai/ai-feature.svg");background-size:16px 16px;opacity:.85;margin-left:2px}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description{color:#6a6f76}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description a{color:#a7aaad}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description a:hover,wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-message-item .wpforms-ai-chat-header .wpforms-ai-chat-header-description a:focus{color:#3c434a}wpforms-ai-chat .wpforms-ai-chat-message-list .wpforms-ai-chat-divider{border-top:1px solid #dcdcde;margin:40px 0}wpforms-ai-chat .wpforms-ai-chat-message-input{display:flex;height:134px;position:relative;padding:40px;background-color:#f6f7f7}wpforms-ai-chat .wpforms-ai-chat-message-input input[type="text"],wpforms-ai-chat .wpforms-ai-chat-message-input textarea{padding:10px 15px;padding-inline-end:54px;width:100%;height:54px;min-height:54px;font-size:16px;box-shadow:0 2px 2px 0 rgba(0,0,0,0.07);border-radius:6px}wpforms-ai-chat .wpforms-ai-chat-message-input input[type="text"]::placeholder,wpforms-ai-chat .wpforms-ai-chat-message-input textarea::placeholder{color:#a7aaad}wpforms-ai-chat .wpforms-ai-chat-message-input input[type="text"]:disabled,wpforms-ai-chat .wpforms-ai-chat-message-input textarea:disabled{background-color:#ffffff;opacity:1}wpforms-ai-chat .wpforms-ai-chat-message-input input[type="text"]:focus,wpforms-ai-chat .wpforms-ai-chat-message-input textarea:focus{border:1px solid #6a6f76;box-shadow:0 2px 2px 0 rgba(0,0,0,0.07),0 0 0 1px #6a6f76}wpforms-ai-chat .wpforms-ai-chat-message-input textarea{line-height:22px;padding:15px 40px 15px 15px;overflow-x:hidden}wpforms-ai-chat .wpforms-ai-chat-message-input textarea::-webkit-scrollbar{background:transparent;width:10px;height:10px}wpforms-ai-chat .wpforms-ai-chat-message-input textarea::-webkit-scrollbar-track{background:transparent}wpforms-ai-chat .wpforms-ai-chat-message-input textarea::-webkit-scrollbar-thumb{box-shadow:inset 0 0 2px 2px rgba(0,0,0,0);background:transparent;border-radius:10px;border:solid 3px transparent}wpforms-ai-chat .wpforms-ai-chat-message-input textarea::-webkit-resizer,wpforms-ai-chat .wpforms-ai-chat-message-input textarea::-webkit-scrollbar-button,wpforms-ai-chat .wpforms-ai-chat-message-input textarea::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){wpforms-ai-chat .wpforms-ai-chat-message-input textarea{scrollbar-color:rgba(0,0,0,0) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover::-webkit-scrollbar{background:transparent;width:10px;height:10px}wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover::-webkit-scrollbar-track{background:transparent}wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.5);background:transparent;border-radius:10px;border:solid 3px transparent}wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover::-webkit-resizer,wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover::-webkit-scrollbar-button,wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover::-webkit-scrollbar-corner{display:none}@-moz-document url-prefix(){wpforms-ai-chat .wpforms-ai-chat-message-input textarea:hover{scrollbar-color:rgba(0,0,0,0.5) transparent;scrollbar-gutter:initial !important;scrollbar-width:thin}}wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-send{background-image:url("../../../images/integrations/ai/icon-send.svg");background-size:16px}wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-stop{background-image:url("../../../images/integrations/ai/icon-stop.svg");background-size:14px}wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-send,wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-stop{position:absolute;inset-inline-end:40px;bottom:40px;height:32px;width:32px;border:none;border-radius:4px;cursor:pointer;padding:0;margin:11px;background-repeat:no-repeat;background-position:center}wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-send.wpforms-hidden,wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-stop.wpforms-hidden{display:none}wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-send:dir(rtl),wpforms-ai-chat .wpforms-ai-chat-message-input .wpforms-ai-chat-stop:dir(rtl){transform:scaleX(-1)}wpforms-ai-chat .wpforms-ai-chat-answer-buttons{border-top:1px solid rgba(220,220,222,0.5);padding-top:20px;display:flex;gap:15px;justify-content:space-between;align-items:center}wpforms-ai-chat .wpforms-ai-chat-answer-buttons button.wpforms-ai-chat-answer-action,wpforms-ai-chat .wpforms-ai-chat-answer-buttons a.wpforms-ai-chat-answer-learn-more{border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 10px;border:none;text-decoration:none}wpforms-ai-chat .wpforms-ai-chat-answer-buttons button.wpforms-ai-chat-answer-action span,wpforms-ai-chat .wpforms-ai-chat-answer-buttons a.wpforms-ai-chat-answer-learn-more span{font-size:14px;font-weight:500}wpforms-ai-chat .wpforms-ai-chat-answer-buttons button.wpforms-ai-chat-answer-action::before{content:'';display:inline-block;width:12px;height:14px;background-image:url("../../../images/integrations/ai/insert.svg");background-size:12px 14px;opacity:.65}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-buttons-response{display:flex;gap:12px;align-items:center}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button{background-color:transparent;border:none;padding:0;margin:0;line-height:16px;cursor:pointer}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.dislike{width:18px;height:16px;background-image:url("../../../images/integrations/ai/thumbs-down.svg");background-size:18px 16px}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.dislike:hover,wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.dislike:focus{background-image:url("../../../images/integrations/ai/thumbs-down-hover.svg")}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.dislike.clicked{background-image:url("../../../images/integrations/ai/thumbs-down-solid.svg");cursor:default}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.refresh{color:#8c8f94;font-size:16px}wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.refresh:hover,wpforms-ai-chat .wpforms-ai-chat-answer-buttons .wpforms-ai-chat-answer-button.refresh:focus{color:#d63638}wpforms-ai-chat .wpforms-chat-item-answer-waiting{display:flex;gap:5px;margin:0 0 20px 0}wpforms-ai-chat .wpforms-chat-item-answer-waiting:before{content:'';display:inline-block;vertical-align:middle;width:32px;height:32px;background-image:url("../../../images/integrations/ai/ai-answer-icon.svg");background-size:32px 32px}wpforms-ai-chat .wpforms-chat-item-answer-waiting .wpforms-chat-item-spinner{height:50px;width:82px;display:flex;justify-content:center;align-items:center;color:#a7aaad;background-color:#f6f7f7;border-radius:0 24px 24px 24px}wpforms-ai-chat .wpforms-chat-item-answer,wpforms-ai-chat .wpforms-chat-item-notice,wpforms-ai-chat .wpforms-chat-item-warning,wpforms-ai-chat .wpforms-chat-item-error{gap:8px;display:flex;font-size:15px;line-height:15px;text-align:left;margin:0 0 20px 0;height:fit-content}wpforms-ai-chat .wpforms-chat-item-answer:before,wpforms-ai-chat .wpforms-chat-item-notice:before,wpforms-ai-chat .wpforms-chat-item-warning:before,wpforms-ai-chat .wpforms-chat-item-error:before{content:'';display:inline-block;vertical-align:middle;max-width:32px;width:100%;height:32px;background-image:url("../../../images/integrations/ai/ai-answer-icon.svg");background-size:32px 32px;background-repeat:no-repeat}wpforms-ai-chat .wpforms-chat-item-answer>div,wpforms-ai-chat .wpforms-chat-item-notice>div,wpforms-ai-chat .wpforms-chat-item-warning>div,wpforms-ai-chat .wpforms-chat-item-error>div{flex-grow:1;padding:20px;display:flex;flex-direction:column;color:#3c434a;background-color:#f6f7f7;gap:10px;border-radius:24px;border-start-start-radius:0}wpforms-ai-chat .wpforms-chat-item-answer>div h4,wpforms-ai-chat .wpforms-chat-item-notice>div h4,wpforms-ai-chat .wpforms-chat-item-warning>div h4,wpforms-ai-chat .wpforms-chat-item-error>div h4{font-size:15px;font-weight:500;margin:5px 0;text-align:start}wpforms-ai-chat .wpforms-chat-item-answer>div ol,wpforms-ai-chat .wpforms-chat-item-notice>div ol,wpforms-ai-chat .wpforms-chat-item-warning>div ol,wpforms-ai-chat .wpforms-chat-item-error>div ol{display:flex;flex-direction:column;list-style:decimal;align-items:flex-start;gap:15px;padding-inline-start:20px;margin:10px 0;line-height:22px}wpforms-ai-chat .wpforms-chat-item-answer>div ol li,wpforms-ai-chat .wpforms-chat-item-notice>div ol li,wpforms-ai-chat .wpforms-chat-item-warning>div ol li,wpforms-ai-chat .wpforms-chat-item-error>div ol li{margin:0;word-break:break-all}wpforms-ai-chat .wpforms-chat-item-answer>div>span,wpforms-ai-chat .wpforms-chat-item-notice>div>span,wpforms-ai-chat .wpforms-chat-item-warning>div>span,wpforms-ai-chat .wpforms-chat-item-error>div>span{line-height:22px;text-align:start}wpforms-ai-chat .wpforms-chat-item-answer>div>span.wpforms-ai-chat-answer-footer-learn-more,wpforms-ai-chat .wpforms-chat-item-notice>div>span.wpforms-ai-chat-answer-footer-learn-more,wpforms-ai-chat .wpforms-chat-item-warning>div>span.wpforms-ai-chat-answer-footer-learn-more,wpforms-ai-chat .wpforms-chat-item-error>div>span.wpforms-ai-chat-answer-footer-learn-more{font-weight:500}wpforms-ai-chat .wpforms-chat-item-answer>div a.wpforms-chat-element-learn-more,wpforms-ai-chat .wpforms-chat-item-notice>div a.wpforms-chat-element-learn-more,wpforms-ai-chat .wpforms-chat-item-warning>div a.wpforms-chat-element-learn-more,wpforms-ai-chat .wpforms-chat-item-error>div a.wpforms-chat-element-learn-more{color:#7a30e2}wpforms-ai-chat .wpforms-chat-item-answer>div a.wpforms-chat-element-learn-more:hover,wpforms-ai-chat .wpforms-chat-item-answer>div a.wpforms-chat-element-learn-more:focus,wpforms-ai-chat .wpforms-chat-item-notice>div a.wpforms-chat-element-learn-more:hover,wpforms-ai-chat .wpforms-chat-item-notice>div a.wpforms-chat-element-learn-more:focus,wpforms-ai-chat .wpforms-chat-item-warning>div a.wpforms-chat-element-learn-more:hover,wpforms-ai-chat .wpforms-chat-item-warning>div a.wpforms-chat-element-learn-more:focus,wpforms-ai-chat .wpforms-chat-item-error>div a.wpforms-chat-element-learn-more:hover,wpforms-ai-chat .wpforms-chat-item-error>div a.wpforms-chat-element-learn-more:focus{color:#5c24a9}wpforms-ai-chat .wpforms-chat-item-answer>div pre,wpforms-ai-chat .wpforms-chat-item-notice>div pre,wpforms-ai-chat .wpforms-chat-item-warning>div pre,wpforms-ai-chat .wpforms-chat-item-error>div pre{font-size:0.9em;line-height:2em;max-width:490px;overflow-x:auto;overflow-y:hidden;margin:10px 0;padding:10px;background-color:#eaeaea;border-left:3px solid #dcdcde}wpforms-ai-chat .wpforms-chat-item-error:before{background-image:url("../../../images/integrations/ai/ai-error-icon.svg")}wpforms-ai-chat .wpforms-chat-item-error>div{background-color:#fcf0f1}wpforms-ai-chat .wpforms-chat-item-error>div h4{color:#d63638;margin:0}wpforms-ai-chat .wpforms-chat-item-warning:before{background-image:url("../../../images/integrations/ai/ai-warning-icon.svg")}wpforms-ai-chat .wpforms-chat-item-warning>div{background-color:#fcf6e5}wpforms-ai-chat .wpforms-chat-item-warning>div h4{color:#444444;margin:0}wpforms-ai-chat .wpforms-chat-item-notice{margin-top:0}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts{display:flex;flex-direction:column;gap:10px;margin:40px 0}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li{display:flex;align-items:center;gap:15px;margin-bottom:0;padding-bottom:10px;border-bottom:1px solid rgba(220,220,222,0.5)}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li:last-child{padding-bottom:0;border-bottom:none}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li::after{content:'';width:16px;height:16px;margin-inline-start:auto;opacity:0}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li:hover{cursor:pointer}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li:hover a{text-decoration:underline}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li:hover::after{opacity:1}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li a{font-size:15px;line-height:22px;color:#3c434a;text-decoration:none}wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts i{width:20px;height:20px;background-size:20px 20px;display:inline-block} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/form-templates-page.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/form-templates-page.min.css new file mode 100644 index 0000000..aded772 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/form-templates-page.min.css @@ -0,0 +1 @@ +#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate:hover,#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate.selected{box-shadow:0 0 0 2px #5c24a9,0 3px 4px rgba(0,0,0,0.15)}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-thumbnail{background-color:#faf5fe}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-name-wrap{display:flex;max-height:40px}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-name-wrap .wpforms-template-name{padding-right:10px}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-name-wrap .wpforms-badge{box-sizing:border-box;opacity:1;font-size:8px;padding:6px 8px;height:18px;margin-top:20px}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-generate.wpforms-inactive{color:#ffffff;background-color:#7a30e2;margin:0;pointer-events:all;cursor:default}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-generate.wpforms-inactive:hover{background-color:#7a30e2;color:#ffffff}#wpforms-setup-templates-list .wpforms-template#wpforms-template-generate .wpforms-template-generate.wpforms-inactive:focus{box-shadow:none} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/modal.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/modal.min.css new file mode 100644 index 0000000..859e578 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/ai/modal.min.css @@ -0,0 +1 @@ +.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-chat-item-question{background-color:#7a30e2}.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-send,.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-stop{background-color:#7a30e2}.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-send:hover,.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-send:focus,.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-stop:hover,.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-stop:focus{background-color:#5c24a9}.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li::after{background-image:url("../../../images/integrations/ai/icon-send-purple.svg")}.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li:hover a{color:#5c24a9}.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li a:hover,.jconfirm-wpforms-ai-purple wpforms-ai-chat .wpforms-ai-chat-welcome-screen-sample-prompts li a:focus{color:#5c24a9;text-decoration:underline}body .jconfirm.jconfirm-wpforms-ai-modal{background:rgba(114,119,124,0.75);backdrop-filter:blur(2px)}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box{border:none;box-shadow:0 10px 50px 0 rgba(0,0,0,0.15);padding:0}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-content-pane{margin:0;overflow:hidden;transition-property:height, max-height;transition-duration:0.05s;transition-timing-function:ease-in-out}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content{overflow:hidden;height:100%}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content>div{height:100%;overflow:hidden}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content input[type="text"]{margin:0;width:100%}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-content-pane .jconfirm-content strong{font-weight:500}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon{opacity:0.8;top:17px;inset-inline-end:24px !important;inset-inline-start:auto;z-index:200}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:after{content:'';background-image:url("../../../images/integrations/ai/close.svg");background-size:13px 13px;background-position:center;background-repeat:no-repeat;width:14px;height:14px}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .jconfirm-closeIcon:hover{opacity:1}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar{position:absolute;z-index:100;top:0;right:0;left:0;height:46px;padding:0;transition:background-color 0.15s ease, border-bottom 0.15s ease;background-color:transparent;border-bottom:1px solid transparent}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar.scrolled{background-color:#f8f8f8;border-bottom:1px solid #ddd}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin{position:absolute;top:16px;inset-inline-end:53px;width:14px;height:14px;cursor:pointer;opacity:0.8;z-index:100;color:#bbb}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin.not-allowed:hover{cursor:not-allowed}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin:after{display:inline-block;content:'';background-image:url("../../../images/integrations/ai/pin-chat.svg");background-size:14px 12px;width:14px;height:12px}body .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin:hover{opacity:1}body .jconfirm.jconfirm-wpforms-ai-modal.pinned{background:transparent;backdrop-filter:blur(0.8px);box-shadow:0 0 30px 0 rgba(0,0,0,0.15);width:500px;z-index:49;position:fixed;bottom:0;inset-inline-start:initial;inset-inline-end:0}body .jconfirm.jconfirm-wpforms-ai-modal.pinned a{white-space:nowrap}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder{inset-inline-end:0;bottom:0;padding-top:0 !important;padding-bottom:0 !important;padding-inline:0;height:10%}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box{margin:0;width:100%;height:100vh;border-radius:0;grid-template-rows:1fr}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .jconfirm-content-pane{height:calc( 100vh - 76px) !important;max-height:100vh !important}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .jconfirm-content-pane .wpforms-ai-chat-welcome-screen{padding-top:35px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .jconfirm-closeIcon{top:16px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-modal-top-bar{background-color:#f8f8f8;border-bottom:1px solid #ddd}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin{top:16px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin:after{background-image:url("../../../images/integrations/ai/unpin-chat.svg");background-size:14px;width:14px;height:14px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-list{padding:30px;height:calc( 100% - 114px);max-height:none}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-list.wpforms-scrollbar-compact{padding-right:17px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-list .wpforms-ai-chat-divider{margin:30px 0}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-list .wpforms-chat-item-question{max-width:280px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-list .wpforms-chat-item-answer:last-child{margin-bottom:0}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-list pre{max-width:358px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-input{padding:30px;height:114px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-input textarea{margin-top:0 !important}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-input .wpforms-ai-chat-send,body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box .wpforms-ai-chat-message-input .wpforms-ai-chat-stop{bottom:30px}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-list{height:calc( 100% - var( --wpforms-ai-chat-input-height, 54px ) - var( --wpforms-ai-chat-message-list-offset, 41px ) + 17px)}body .jconfirm.jconfirm-wpforms-ai-modal.pinned .jconfirm-holder .jconfirm-box wpforms-ai-chat:has(textarea) .wpforms-ai-chat-message-input{height:calc( var( --wpforms-ai-chat-input-height, 54px ) + var( --wpforms-ai-chat-message-list-offset, 50px ) - 17px)}body .jconfirm.jconfirm-wpforms-ai-modal.pinned.with-wpadminbar .jconfirm-holder .jconfirm-box .jconfirm-content-pane{height:calc( 100vh - 106px) !important}body.rtl .jconfirm.jconfirm-wpforms-ai-modal .jconfirm-box-container .jconfirm-box .wpforms-ai-modal-top-bar .wpforms-ai-modal-pin:after{transform:scaleX(-1)} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/choices.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/choices.min.css new file mode 100644 index 0000000..cc0c7cb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/choices.min.css @@ -0,0 +1 @@ +div.wpforms-container .wpforms-form .choices{position:relative;margin-bottom:24px}div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{color:#999999}div.wpforms-container .wpforms-form .choices ::-moz-placeholder{color:#999999;opacity:1}div.wpforms-container .wpforms-form .choices ::placeholder{color:#999999}div.wpforms-container .wpforms-form .choices:focus{outline:none}div.wpforms-container .wpforms-form .choices:last-child{margin-bottom:0}div.wpforms-container .wpforms-form .choices.is-disabled .choices__inner,div.wpforms-container .wpforms-form .choices.is-disabled .choices__input{background-color:#bbbbbb;cursor:not-allowed;user-select:none}div.wpforms-container .wpforms-form .choices [hidden]{display:none !important}div.wpforms-container .wpforms-form .choices *{box-sizing:border-box}div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner{border-radius:0 0 4px 4px}div.wpforms-container .wpforms-form .choices[data-type*="select-one"]{cursor:pointer}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__inner{display:flex;flex-wrap:wrap;align-items:center;padding-top:0 !important}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input{display:block;width:calc(100% - 20px) !important;margin:10px !important;padding:7px 12px !important;box-sizing:border-box !important;border:1px solid #8c8f94 !important;border-radius:4px !important;background-color:#fff}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input:focus{border:1px solid #056aab !important;box-shadow:0 0 0 1px #056aab !important;outline:none !important}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;position:absolute;top:50%;inset-inline-end:0;margin-top:-10px;margin-inline-end:25px;height:20px;width:20px;border-radius:10em;opacity:.5}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{opacity:1}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{box-shadow:0 0 0 2px #036aab}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__item[data-value=''] .choices__button{display:none}div.wpforms-container .wpforms-form .choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}div.wpforms-container .wpforms-form .choices[data-type*="select-one"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:24px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input{padding:0 4px !important;max-width:100%;background-color:transparent;line-height:22px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-1.5px;pointer-events:none}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__inner{cursor:text}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{position:absolute;display:inline-block;vertical-align:baseline;margin-top:0;margin-bottom:0;margin-inline-start:5px;padding:0;background-color:transparent;background-image:url("../images/cross.svg");background-size:12px;background-position:center center;background-repeat:no-repeat;width:12px;height:12px;line-height:1;opacity:.75;border-radius:0;inset-inline-end:4px}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:focus,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:hover,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:focus{opacity:1}div.wpforms-container .wpforms-form .choices__inner{width:100%;background-color:#ffffff;padding:4px 6px 0;border:1px solid #8c8f94;overflow:hidden;border-radius:4px}div.wpforms-container .wpforms-form .choices__list{margin:0;padding-left:0;list-style:none}div.wpforms-container .wpforms-form .choices__list--single{display:inline-block;vertical-align:baseline;width:100%;padding:0 16px 0 4px;font-size:0.875em}div.wpforms-container .wpforms-form .choices__list--single .choices__item{width:100%;overflow:hidden;text-overflow:ellipsis;padding-inline-end:20px;white-space:nowrap;color:#2c3338}div.wpforms-container .wpforms-form .choices__list--single .choices__item[data-value='']{padding-inline-end:0}div.wpforms-container .wpforms-form .choices__list--multiple{display:inline;height:auto;overflow:auto}div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;position:relative;align-items:center;border-radius:2px;padding-block:4px;padding-inline:7px 20px;font-size:.75em;line-height:1;font-weight:400;margin:0 6px 4px 0;background-color:#036aab;border:1px solid #036aab;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 10px)}div.wpforms-container .wpforms-form .choices__list--multiple .choices__item.is-highlighted{background-color:#036aab}div.wpforms-container .wpforms-form .is-disabled .choices__list--multiple .choices__item{background-color:#bbbbbb;border:1px solid #bbbbbb}div.wpforms-container .wpforms-form .choices__list--dropdown{display:none;z-index:101;position:absolute;width:100%;background-color:#ffffff;border:1px solid #8c8f94;top:100%;margin-top:-1px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;overflow:hidden;overflow-wrap:break-word}div.wpforms-container .wpforms-form .choices__list--dropdown.is-active{display:block}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{position:relative;vertical-align:top;padding:10px;font-size:.875em}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f6f6f6}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}div.wpforms-container .wpforms-form .choices__list--dropdown .choices__placeholder{display:none}div.wpforms-container .wpforms-form .is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form .choices__item{cursor:default}div.wpforms-container .wpforms-form .choices__item--selectable{cursor:pointer}div.wpforms-container .wpforms-form .choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}div.wpforms-container .wpforms-form .choices__heading{font-weight:600;font-size:.75em;text-transform:uppercase;padding:10px;border-top:1px solid #b4b6b9;border-bottom:1px solid #b4b6b9;color:#a6a6a6}.choices__group[data-value="hidden"]>div.wpforms-container .wpforms-form .choices__heading{display:none}div.wpforms-container .wpforms-form .choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}div.wpforms-container .wpforms-form .choices__button:focus{outline:none}div.wpforms-container .wpforms-form .choices__input{display:inline-block;background-color:transparent;margin:0 0 2px 0 !important;border:0 !important;border-radius:0 !important;min-height:20px !important;padding:2px 4px !important;height:auto !important;min-width:1ch;width:1ch;vertical-align:middle}div.wpforms-container .wpforms-form .choices__input::-webkit-search-cancel-button{display:none}div.wpforms-container .wpforms-form .choices__input--hidden{clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;min-width:auto !important;word-wrap:normal !important}div.wpforms-container .wpforms-form .choices .choices__inner input.choices__input:focus{outline:none !important;box-shadow:none !important;border:none !important}div.wpforms-container .wpforms-form .choices__placeholder{opacity:.5}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices.is-open.is-flipped .choices__inner{border-radius:4px 4px 0 0}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{border-radius:inherit}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"]:after{border:none;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E) no-repeat center;background-size:16px 16px;cursor:pointer;width:16px;height:16px;top:13px;right:8px;margin-top:0}div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"].is-flipped:after{transform:rotate(180deg)}div.wpforms-container .wpforms-form .choices__list--dropdown{min-width:250px}div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="text"] .choices__button{border-left:1px solid rgba(0,0,0,0.25);cursor:not-allowed}div.wpforms-container .wpforms-form .choices ::placeholder,div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{opacity:1}div.wpforms-container .wpforms-form .choices{margin-bottom:0}body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:4px;padding-left:24px}body.rtl div.wpforms-container .wpforms-form .choices__list--single{padding-right:4px;padding-left:16px}body.rtl div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{text-align:right}body.rtl div.wpforms-container .wpforms-form .choices__input{padding-right:2px !important;padding-left:0 !important}body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,body.rtl div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{margin-inline-end:0;border-left:none}@media (min-width: 640px){body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{background-image:url("../../../images/cross.svg")}div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button{background-image:url("../../../images/cross-inverse.svg")}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices{position:relative;margin-bottom:24px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{color:#999999}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices ::-moz-placeholder{color:#999999;opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices ::placeholder{color:#999999}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices:focus{outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices:last-child{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-disabled .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-disabled .choices__input{background-color:#bbbbbb;cursor:not-allowed;user-select:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices [hidden]{display:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices *{box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:4px 4px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner{border-radius:0 0 4px 4px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"]{cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__inner{display:flex;flex-wrap:wrap;align-items:center;padding-top:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input{display:block;width:calc(100% - 20px) !important;margin:10px !important;padding:7px 12px !important;box-sizing:border-box !important;border:1px solid #8c8f94 !important;border-radius:4px !important;background-color:#fff}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] input.choices__input:focus{border:1px solid #056aab !important;box-shadow:0 0 0 1px #056aab !important;outline:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;position:absolute;top:50%;inset-inline-end:0;margin-top:-10px;margin-inline-end:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button:focus{box-shadow:0 0 0 2px #036aab}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__item[data-value=''] .choices__button{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:24px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner .choices__input{padding:0 4px !important;max-width:100%;background-color:transparent;line-height:22px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:currentColor transparent transparent transparent;border-width:5px;position:absolute;inset-inline-end:11.5px;top:50%;margin-top:-1.5px;pointer-events:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent currentColor transparent;margin-top:-7.5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__inner{cursor:text}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{position:absolute;display:inline-block;vertical-align:baseline;margin-top:0;margin-bottom:0;margin-inline-start:5px;padding:0;background-color:transparent;background-image:url("../images/cross.svg");background-size:12px;background-position:center center;background-repeat:no-repeat;width:12px;height:12px;line-height:1;opacity:.75;border-radius:0;inset-inline-end:4px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button:focus{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__inner{width:100%;background-color:#ffffff;padding:4px 6px 0;border:1px solid #8c8f94;overflow:hidden;border-radius:4px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list{margin:0;padding-left:0;list-style:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--single{display:inline-block;vertical-align:baseline;width:100%;padding:0 16px 0 4px;font-size:0.875em}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--single .choices__item{width:100%;overflow:hidden;text-overflow:ellipsis;padding-inline-end:20px;white-space:nowrap;color:#2c3338}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--single .choices__item[data-value='']{padding-inline-end:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--multiple{display:inline;height:auto;overflow:auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;position:relative;align-items:center;border-radius:2px;padding-block:4px;padding-inline:7px 20px;font-size:.75em;line-height:1;font-weight:400;margin:0 6px 4px 0;background-color:#036aab;border:1px solid #036aab;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 10px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--multiple .choices__item.is-highlighted{background-color:#036aab}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .is-disabled .choices__list--multiple .choices__item{background-color:#bbbbbb;border:1px solid #bbbbbb}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown{display:none;z-index:101;position:absolute;width:100%;background-color:#ffffff;border:1px solid #8c8f94;top:100%;margin-top:-1px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;overflow:hidden;overflow-wrap:break-word}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown.is-active{display:block}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{position:relative;vertical-align:top;padding:10px;font-size:.875em}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f6f6f6}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown .choices__placeholder{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:4px 4px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__item{cursor:default}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__item--selectable{cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__heading{font-weight:600;font-size:.75em;text-transform:uppercase;padding:10px;border-top:1px solid #b4b6b9;border-bottom:1px solid #b4b6b9;color:#a6a6a6}.et-db #et-boc .et-l .et_pb_module .choices__group[data-value="hidden"]>div.wpforms-container .wpforms-form .choices__heading{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__button:focus{outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__input{display:inline-block;background-color:transparent;margin:0 0 2px 0 !important;border:0 !important;border-radius:0 !important;min-height:20px !important;padding:2px 4px !important;height:auto !important;min-width:1ch;width:1ch;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__input::-webkit-search-cancel-button{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__input--hidden{clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;min-width:auto !important;word-wrap:normal !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices .choices__inner input.choices__input:focus{outline:none !important;box-shadow:none !important;border:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__placeholder{opacity:.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices.is-open.is-flipped .choices__inner{border-radius:4px 4px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .is-flipped .choices__list--dropdown{border-radius:inherit}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"]:after{border:none;background:#fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23777%22%2F%3E%3C%2Fsvg%3E) no-repeat center;background-size:16px 16px;cursor:pointer;width:16px;height:16px;top:13px;right:8px;margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form #wpforms-admin-form-embed-wizard .choices[data-type*="select-one"].is-flipped:after{transform:rotate(180deg)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices__list--dropdown{min-width:250px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="select-multiple"] .choices__button,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-disabled[data-type*="text"] .choices__button{border-left:1px solid rgba(0,0,0,0.25);cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices ::placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices ::-webkit-input-placeholder{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__inner{padding-right:4px;padding-left:24px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices__list--single{padding-right:4px;padding-left:16px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item{text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices__input{padding-right:2px !important;padding-left:0 !important}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{margin-inline-end:0;border-left:none}@media (min-width: 640px){.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container .wpforms-form .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-disabled .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-disabled .choices__input{background-color:#f9f9f9;border-color:#dddddd;cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-multiple"] .choices__button,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="text"] .choices__button{background-image:url("../../../images/cross.svg")}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices[data-type*="select-one"] .choices__button{background-image:url("../../../images/cross-inverse.svg");cursor:not-allowed} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-base.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-base.min.css new file mode 100644 index 0000000..293c754 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-base.min.css @@ -0,0 +1 @@ +.flatpickr-calendar .flatpickr-current-month select{display:initial}@media only screen and (max-width: 600px){.flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.wpforms-container .wpforms-form .wpforms-error-alert,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-error-alert{border:1px solid #cccccc;text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-form .wpforms-error-alert{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-is-turnstile iframe{margin-left:-2px !important}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-container .wpforms-error-container,.wpforms-container noscript.wpforms-error-noscript{color:#990000}.wpforms-container label.wpforms-error{display:block;color:#990000;font-size:0.9em;float:none;cursor:default}.wpforms-container .wpforms-field input.wpforms-error,.wpforms-container .wpforms-field input.user-invalid,.wpforms-container .wpforms-field textarea.wpforms-error,.wpforms-container .wpforms-field textarea.user-invalid,.wpforms-container .wpforms-field select.wpforms-error,.wpforms-container .wpforms-field select.user-invalid,.wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #cc0000}.wpforms-container .wpforms-field-credit-card-expiration label.wpforms-error,.wpforms-container .wpforms-field-credit-card-code label.wpforms-error{display:none !important}.wpforms-container .wpforms-page-indicator{margin:0 0 20px 0;overflow:hidden}.wpforms-container .wpforms-page-indicator.circles{border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:15px 10px}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:left;margin:0 20px 0 0}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page:last-of-type{margin:0}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{height:40px;width:40px;border-radius:50%;display:inline-block;margin:0 10px 0 0;line-height:40px;text-align:center;background-color:#ddd;color:#666}.wpforms-container .wpforms-page-indicator.circles .active .wpforms-page-indicator-page-number{color:#fff}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page{float:left;text-align:center;line-height:1.2}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:block;text-indent:-9999px;height:6px;background-color:#ddd;margin:0 0 16px 0;position:relative}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-triangle{position:absolute;top:100%;left:50%;width:0;height:0;margin-left:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:transparent transparent transparent transparent}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:inline-block;padding:0 15px;font-size:16px}.wpforms-container .wpforms-page-indicator.progress{font-size:18px}.wpforms-container .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{display:block;width:100%;background-color:#ddd;height:18px;border-radius:10px;overflow:hidden;position:relative;margin:5px 0 0}.wpforms-container .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress{height:18px;position:absolute;left:0;top:0}div.wpforms-container .wpforms-notice{background-color:#fff;border:1px solid #ddd;border-left-width:12px;color:#333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}div.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;outline:none;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}div.wpforms-container .wpforms-notice .wpforms-delete:before,div.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}div.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}div.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}div.wpforms-container .wpforms-notice .wpforms-delete:hover,div.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}div.wpforms-container .wpforms-notice a{text-decoration:underline}div.wpforms-container .wpforms-notice p{margin:0 0 20px 0}div.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-info{border-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-success{border-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-warning{border-color:#ffdd57}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-error{border-color:#ff3860}div.wpforms-container-full .wpforms-notice .wpforms-notice-actions{margin-top:20px}div.wpforms-container-full .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}div.wpforms-container-full .wpforms-notice .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:active{color:#fff}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#ff3860}div.wpforms-container .wpforms-error-container.wpforms-error-styled-container{padding:10px 0;font-size:15px}div.wpforms-container .wpforms-error-container.wpforms-error-styled-container p{margin:0}.wpforms-preview-notice-links{line-height:2.4}.wpforms-container .wpforms-title{font-size:26px;margin:0 0 10px 0}.wpforms-container .wpforms-description{margin:0 0 10px 0}.wpforms-container .wpforms-submit-container{padding:10px 0 0 0;position:relative}.wpforms-container .wpforms-submit-spinner{margin-inline-start:0.5em;vertical-align:middle}.wpforms-container{margin-bottom:26px}.wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}div.wpforms-container .wpforms-form textarea{resize:vertical}.amp-form-submit-success .wpforms-field-container,.amp-form-submit-success .wpforms-submit-container{display:none}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap h3{width:100%;margin:10px 0 5px;font-weight:700;font-size:20px}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap img{margin-right:25px;width:initial}.edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-base-control{width:100%}div.wpforms-gutenberg-form-selector .wpforms-form input:disabled,div.wpforms-gutenberg-form-selector .wpforms-form textarea:disabled,div.wpforms-gutenberg-form-selector .wpforms-form select:disabled,div.wpforms-gutenberg-form-selector .wpforms-form button[type=submit]:disabled{cursor:not-allowed}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,div.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 2px 2px}div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:2px 2px 0 0}div.wpforms-container .wpforms-form .choices .choices__inner{border-radius:2px;min-height:35px}div.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}div.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}body.rtl .wpforms-field-phone input[type=tel]{direction:ltr;unicode-bidi:embed;text-align:right}body.rtl .wpforms-container .wpforms-first{float:right}body.rtl .wpforms-container .wpforms-first+.wpforms-one-half{margin-right:4%;margin-left:0}body.rtl .wpforms-container.wpforms-edit-entry-container .wpforms-first+.wpforms-one-half{margin-right:0}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-container ul,.wpforms-container ul li{background:none;border:0;margin:0;list-style:none}.wpforms-container input.wpforms-field-medium,.wpforms-container select.wpforms-field-medium,.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.wpforms-container textarea.wpforms-field-medium{height:120px}.wpforms-container input.wpforms-field-small,.wpforms-container select.wpforms-field-small,.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.wpforms-container textarea.wpforms-field-small{height:70px}.wpforms-container input.wpforms-field-large,.wpforms-container select.wpforms-field-large,.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.wpforms-container textarea.wpforms-field-large{height:220px}.wpforms-container .wpforms-field{padding:10px 0;position:relative}.wpforms-container .wpforms-field-description,.wpforms-container .wpforms-field-limit-text{font-size:0.85em;margin:5px 0 0 0}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#fff;border:1px solid #ddd;padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.wpforms-container .wpforms-field-description-before,.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.wpforms-container .wpforms-field-label{display:block;font-weight:700;float:none;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.85em;float:none;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;word-break:break-word}.wpforms-container .wpforms-field-label.wpforms-label-hide,.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.wpforms-container .wpforms-required-label{color:#ff0000;font-weight:normal}.wpforms-container .wpforms-field-row{margin-bottom:8px;position:relative}.wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.wpforms-container .wpforms-field-row:before{content:"";display:table}.wpforms-container .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-container .wpforms-form .wpforms-field-address .wpforms-one-half:only-child{margin-left:0}.wpforms-container .wpforms-five-sixths,.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-four-fifths,.wpforms-container .wpforms-one-fifth,.wpforms-container .wpforms-one-fourth,.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-one-sixth,.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-three-fourths,.wpforms-container .wpforms-three-fifths,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths,.wpforms-container .wpforms-two-fifths,.wpforms-container .wpforms-two-sixths,.wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.wpforms-container .wpforms-one-third.wpforms-first,.wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.wpforms-container .wpforms-four-sixths.wpforms-first,.wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.wpforms-container .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-list-2-columns ul,.wpforms-container .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-list-3-columns ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wpforms-container .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-list-2-columns ul li{width:50%;display:block;padding-right:26px}.wpforms-container .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-list-3-columns ul li{width:33.3333%;display:block;padding-right:26px}.wpforms-container .wpforms-list-inline ul li{display:inline-block;margin-right:20px;vertical-align:top}.wpforms-container .wpforms-first-half{float:left;width:48%;clear:both}.wpforms-container .wpforms-last-half{float:right;width:48%;clear:none}.wpforms-container .wpforms-first-third{float:left;width:30.666666667%;clear:both}.wpforms-container .wpforms-middle-third{float:left;width:30.666666667%;margin-left:4%;clear:none}.wpforms-container .wpforms-last-third{float:right;width:30.666666667%;clear:none}.wpforms-container .wpforms-last{float:right !important;margin-right:0 !important;clear:none}.wpforms-container.inline-fields{overflow:visible}.wpforms-container.inline-fields .wpforms-field-container{display:table;width:calc(100% - 160px);float:left}.wpforms-container.inline-fields .wpforms-field{display:table-cell;padding-right:2%;vertical-align:top}.wpforms-container.inline-fields .wpforms-submit-container{float:right;width:160px}.wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.wpforms-container.inline-fields input.wpforms-field-medium,.wpforms-container.inline-fields select.wpforms-field-medium,.wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.wpforms-container input[type=date],.wpforms-container input[type=datetime],.wpforms-container input[type=datetime-local],.wpforms-container input[type=email],.wpforms-container input[type=month],.wpforms-container input[type=number],.wpforms-container input[type=password],.wpforms-container input[type=range],.wpforms-container input[type=search],.wpforms-container input[type=tel],.wpforms-container input[type=text],.wpforms-container input[type=time],.wpforms-container input[type=url],.wpforms-container input[type=week],.wpforms-container select,.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:none;font-family:inherit}.wpforms-container input[type=checkbox],.wpforms-container input[type=radio]{width:13px;height:13px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline}.wpforms-container amp-img>img{position:absolute}.wpforms-container .wpforms-recaptcha-container{padding:10px 0 20px 0;clear:both}.wpforms-container .wpforms-field-date-time-date-sep{display:inline-block;padding:0 5px}.wpforms-container .wpforms-field-date-time-date-year,.wpforms-container .wpforms-field-date-time-date-day,.wpforms-container .wpforms-field-date-time-date-month{display:inline-block;width:auto}.wpforms-container .wpforms-field-rating-item{padding:0 6px 0 0;margin:0;display:inline-block}.wpforms-container .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.wpforms-container .wpforms-field-rating-item.selected svg,.wpforms-container .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.wpforms-field-container .wpforms-field-date-time .wpforms-field-row{display:flex;flex-wrap:wrap;align-items:start;gap:10px 4%}.wpforms-field-container .wpforms-field-date-time .wpforms-field-row::before,.wpforms-field-container .wpforms-field-date-time .wpforms-field-row::after{position:absolute}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-date-dropdown-wrap{width:100%}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-field-row-block{flex:1;min-width:30%}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-sublabel{width:100%}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap{align-items:center;display:flex;flex-grow:1;flex-wrap:nowrap;margin:0 -6px 0 -6px}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small{width:calc( 25% + 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-medium{width:calc( 60% + 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-large{width:calc( 100% + 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap select{margin:0 6px 0 6px}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-day,.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-month{width:calc( 30% - 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-year{width:calc( 40% - 12px)}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-datepicker{width:clamp(50%, 100px, 100%)}.wpforms-field-container .wpforms-field-date-time .wpforms-date-type-datepicker+.wpforms-field-row-block{width:clamp(50%, 100px, 100%)}.wpforms-container .wpforms-datepicker-wrap{position:relative}.wpforms-container .wpforms-datepicker-wrap .wpforms-datepicker-clear{position:absolute;background-image:url(../../../pro/images/times-solid-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-color:#cccccc;background-size:8px;width:16px;height:16px;cursor:pointer;display:block;border-radius:50%;right:10px;top:50%;margin-top:-8px;transition:all 0.3s}.wpforms-container .wpforms-datepicker-wrap .wpforms-datepicker-clear:hover{background-color:red}.wpforms-container .wpforms-datepicker-wrap .wpforms-field-small+.wpforms-datepicker-clear{right:calc( 75% + 10px)}.wpforms-container .wpforms-datepicker-wrap .wpforms-field-medium+.wpforms-datepicker-clear{right:calc( 40% + 10px)}.wpforms-container .wpforms-field-rating-item{padding:0 6px 0 0;margin:0;display:inline-block}.wpforms-container .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.wpforms-container .wpforms-field-rating-item.selected svg,.wpforms-container .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.wpforms-container .wpforms-field-rating-wrapper{display:inline-block}.wpforms-container .wpforms-field-rating-labels{display:flex;justify-content:space-between;gap:10px}.wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.wpforms-container ul.wpforms-image-choices label input{top:50%}.wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px 5px 5px 5px}.wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background-color:#fff;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid #ddd}.wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background-color:#fff;display:inline-block;margin:0 auto;cursor:pointer;border:2px solid #fff;padding:10px;text-align:center}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border-color:#ddd}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:#666 !important}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-container ul.wpforms-icon-choices,.wpforms-container ul.wpforms-icon-choices *{box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.wpforms-container ul.wpforms-icon-choices+.wpforms-field-description,.wpforms-container ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.wpforms-container ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.wpforms-container ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.wpforms-container ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.wpforms-container ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form textarea.wpforms-field-small.wp-editor-area{height:100px}.wpforms-container .wpforms-form textarea.wpforms-field-medium.wp-editor-area{height:250px}.wpforms-container .wpforms-form textarea.wpforms-field-large.wp-editor-area{height:400px}.wpforms-container .wpforms-form textarea.wp-editor-area:focus{outline:none}.wpforms-container .wpforms-field-layout{padding:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#990000}.wpforms-container .wpforms-form .wpforms-field-pagebreak:empty{display:none}ul.wpforms-icon-choices,ul.wpforms-icon-choices *{box-sizing:border-box}ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}ul.wpforms-icon-choices+.wpforms-field-description,ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}ul.wpforms-icon-choices.wpforms-icon-choices-default li,ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}@media only screen and (max-width: 600px){.wpforms-container .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}.wpforms-container .wpforms-field{padding-right:1px;padding-left:1px}.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}.wpforms-container .wpforms-mobile-full{width:100%;margin-left:0;float:none}.wpforms-container .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-list-2-columns ul li,.wpforms-container .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-list-3-columns ul li{float:none;width:100%}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:none;display:block;margin:0 0 10px 0}.wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}.wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}.wpforms-container.inline-fields .wpforms-field-container,.wpforms-container.inline-fields .wpforms-field{display:block;width:100%}.wpforms-container.inline-fields .wpforms-submit-container{width:100%}}.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month select{display:initial}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-error-alert{border:1px solid #cccccc;text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-error-alert{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.et-db #et-boc .et-l .et_pb_module div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.et-db #et-boc .et-l .et_pb_module .wpforms-is-turnstile iframe{margin-left:-2px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-hidden{display:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container noscript.wpforms-error-noscript{color:#990000}.et-db #et-boc .et-l .et_pb_module .wpforms-container label.wpforms-error{display:block;color:#990000;font-size:0.9em;float:none;cursor:default}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field textarea.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field textarea.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field select.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field select.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #cc0000}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-credit-card-expiration label.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-credit-card-code label.wpforms-error{display:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator{margin:0 0 20px 0;overflow:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles{border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:15px 10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:left;margin:0 20px 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page:last-of-type{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{height:40px;width:40px;border-radius:50%;display:inline-block;margin:0 10px 0 0;line-height:40px;text-align:center;background-color:#ddd;color:#666}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles .active .wpforms-page-indicator-page-number{color:#fff}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page{float:left;text-align:center;line-height:1.2}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:block;text-indent:-9999px;height:6px;background-color:#ddd;margin:0 0 16px 0;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-triangle{position:absolute;top:100%;left:50%;width:0;height:0;margin-left:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:transparent transparent transparent transparent}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:inline-block;padding:0 15px;font-size:16px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.progress{font-size:18px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{display:block;width:100%;background-color:#ddd;height:18px;border-radius:10px;overflow:hidden;position:relative;margin:5px 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress{height:18px;position:absolute;left:0;top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice{background-color:#fff;border:1px solid #ddd;border-left-width:12px;color:#333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;outline:none;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice a{text-decoration:underline}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice p{margin:0 0 20px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info{border-color:#3273dc}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success{border-color:#23d160}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning{border-color:#ffdd57}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error{border-color:#ff3860}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-actions{margin-top:20px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action:active{color:#fff}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#ff3860}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-error-container.wpforms-error-styled-container{padding:10px 0;font-size:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-error-container.wpforms-error-styled-container p{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-preview-notice-links{line-height:2.4}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-title{font-size:26px;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-description{margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-submit-container{padding:10px 0 0 0;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-submit-spinner{margin-inline-start:0.5em;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container{margin-bottom:26px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form textarea{resize:vertical}.et-db #et-boc .et-l .et_pb_module .amp-form-submit-success .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module .amp-form-submit-success .wpforms-submit-container{display:none}.et-db #et-boc .et-l .et_pb_module .edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap h3{width:100%;margin:10px 0 5px;font-weight:700;font-size:20px}.et-db #et-boc .et-l .et_pb_module .edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap img{margin-right:25px;width:initial}.et-db #et-boc .et-l .et_pb_module .edit-post-visual-editor .wpforms-gutenberg-form-selector-wrap .components-base-control{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-gutenberg-form-selector .wpforms-form input:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-gutenberg-form-selector .wpforms-form textarea:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-gutenberg-form-selector .wpforms-form select:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-gutenberg-form-selector .wpforms-form button[type=submit]:disabled{cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 2px 2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:2px 2px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices .choices__inner{border-radius:2px;min-height:35px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-field-phone input[type=tel]{direction:ltr;unicode-bidi:embed;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-first{float:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-first+.wpforms-one-half{margin-right:4%;margin-left:0}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container.wpforms-edit-entry-container .wpforms-first+.wpforms-one-half{margin-right:0}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:before{content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:after{clear:both;content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul li{background:none;border:0;margin:0;list-style:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-medium{height:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-small{height:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-large{height:220px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field{padding:10px 0;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-limit-text{font-size:0.85em;margin:5px 0 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#fff;border:1px solid #ddd;padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label{display:block;font-weight:700;float:none;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-sublabel{display:block;font-size:0.85em;float:none;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;word-break:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label.wpforms-label-hide,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-required-label{color:#ff0000;font-weight:normal}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row{margin-bottom:8px;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row:before{content:"";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row:after{clear:both;content:"";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-address .wpforms-one-half:only-child{margin-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third.wpforms-first,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths.wpforms-first,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul li{width:50%;display:block;padding-right:26px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul li{width:33.3333%;display:block;padding-right:26px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul li{display:inline-block;margin-right:20px;vertical-align:top}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-first-half{float:left;width:48%;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-last-half{float:right;width:48%;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-first-third{float:left;width:30.666666667%;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-middle-third{float:left;width:30.666666667%;margin-left:4%;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-last-third{float:right;width:30.666666667%;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-last{float:right !important;margin-right:0 !important;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields{overflow:visible}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container{display:table;width:calc(100% - 160px);float:left}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field{display:table-cell;padding-right:2%;vertical-align:top}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit-container{float:right;width:160px}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=date],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=month],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=search],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=time],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=week],.et-db #et-boc .et-l .et_pb_module .wpforms-container select,.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea{display:block;width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:none;font-family:inherit}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=radio]{width:13px;height:13px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline}.et-db #et-boc .et-l .et_pb_module .wpforms-container amp-img>img{position:absolute}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container{padding:10px 0 20px 0;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-date-time-date-sep{display:inline-block;padding:0 5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-date-time-date-year,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-date-time-date-day,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-date-time-date-month{display:inline-block;width:auto}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-item{padding:0 6px 0 0;margin:0;display:inline-block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-item.selected svg,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-row{display:flex;flex-wrap:wrap;align-items:start;gap:10px 4%}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-row::before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-row::after{position:absolute}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-date-dropdown-wrap{width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-field-row-block{flex:1;min-width:30%}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-sublabel{width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap{align-items:center;display:flex;flex-grow:1;flex-wrap:nowrap;margin:0 -6px 0 -6px}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small{width:calc( 25% + 12px)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-medium{width:calc( 60% + 12px)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-large{width:calc( 100% + 12px)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-dropdown-wrap select{margin:0 6px 0 6px}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-day,.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-month{width:calc( 30% - 12px)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-field-date-time-date-year{width:calc( 40% - 12px)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-date-type-datepicker{width:clamp(50%, 100px, 100%)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-container .wpforms-field-date-time .wpforms-date-type-datepicker+.wpforms-field-row-block{width:clamp(50%, 100px, 100%)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-datepicker-wrap{position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-datepicker-wrap .wpforms-datepicker-clear{position:absolute;background-image:url(../../../pro/images/times-solid-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-color:#cccccc;background-size:8px;width:16px;height:16px;cursor:pointer;display:block;border-radius:50%;right:10px;top:50%;margin-top:-8px;transition:all 0.3s}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-datepicker-wrap .wpforms-datepicker-clear:hover{background-color:red}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-datepicker-wrap .wpforms-field-small+.wpforms-datepicker-clear{right:calc( 75% + 10px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-datepicker-wrap .wpforms-field-medium+.wpforms-datepicker-clear{right:calc( 40% + 10px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-item{padding:0 6px 0 0;margin:0;display:inline-block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-item.selected svg,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-wrapper{display:inline-block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-rating-labels{display:flex;justify-content:space-between;gap:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-image-choices label input{top:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px 5px 5px 5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background-color:#fff;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid #ddd}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background-color:#fff;display:inline-block;margin:0 auto;cursor:pointer;border:2px solid #fff;padding:10px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border-color:#ddd}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:#666 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices *{box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices+.wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form textarea.wpforms-field-small.wp-editor-area{height:100px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form textarea.wpforms-field-medium.wp-editor-area{height:250px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form textarea.wpforms-field-large.wp-editor-area{height:400px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form textarea.wp-editor-area:focus{outline:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-layout{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .size-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .size-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#990000}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-pagebreak:empty{display:none}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices *{box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices+.wpforms-field-description,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-camera-link,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field label,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field{padding-right:1px;padding-left:1px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-mobile-full{width:100%;margin-left:0;float:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul li{float:none;width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:none;display:block;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit-container{width:100%}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-full.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-full.min.css new file mode 100644 index 0000000..a6594d6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-classic-full.min.css @@ -0,0 +1 @@ +div.wpforms-container-full,div.wpforms-container-full .wpforms-form *{background:none;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;list-style:none;outline:none;position:static;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}div.wpforms-container-full{margin-left:auto;margin-right:auto}div.wpforms-container-full .wpforms-form amp-img>img{position:absolute}div.wpforms-container-full .wpforms-form input,div.wpforms-container-full .wpforms-form label,div.wpforms-container-full .wpforms-form select,div.wpforms-container-full .wpforms-form button,div.wpforms-container-full .wpforms-form textarea{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;background:none;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}div.wpforms-container-full .wpforms-form textarea{max-width:100%;width:100%}div.wpforms-container-full .wpforms-form ul,div.wpforms-container-full .wpforms-form ul li{background:none !important;border:0 !important;margin:0 !important;padding:0 !important;list-style:none !important}div.wpforms-container-full .wpforms-form ul li{margin-bottom:5px !important}div.wpforms-container-full .wpforms-form ul li:last-of-type{margin-bottom:0 !important}div.wpforms-container-full .wpforms-form hr{border-top:1px solid #ccc;margin:0.5em auto}div.wpforms-container-full .wpforms-form fieldset{min-width:0}.flatpickr-calendar .flatpickr-current-month select{display:initial}@media only screen and (max-width: 600px){.flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.wpforms-container .wpforms-form .wpforms-error-alert,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-error-alert{border:1px solid #cccccc;text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-form .wpforms-error-alert{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-is-turnstile iframe{margin-left:-2px !important}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}div.wpforms-container-full .wpforms-form input.wpforms-field-medium,div.wpforms-container-full .wpforms-form select.wpforms-field-medium,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium{max-width:60%}div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium{height:120px}div.wpforms-container-full .wpforms-form input.wpforms-field-small,div.wpforms-container-full .wpforms-form select.wpforms-field-small,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-small{max-width:25%}div.wpforms-container-full .wpforms-form textarea.wpforms-field-small{height:70px}div.wpforms-container-full .wpforms-form input.wpforms-field-large,div.wpforms-container-full .wpforms-form select.wpforms-field-large,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container-full .wpforms-form textarea.wpforms-field-large{height:220px}div.wpforms-container-full .wpforms-form .wpforms-field{padding:10px 0;clear:both}div.wpforms-container-full .wpforms-form .wpforms-field-description,div.wpforms-container-full .wpforms-form .wpforms-field-limit-text{font-size:13px;line-height:1.3;margin:8px 0 0 0;word-break:break-word;word-wrap:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description{background-color:#fff;border:1px solid #ddd;color:#444;padding:15px 15px 0;margin-top:15px;height:125px;overflow-y:scroll;overflow-x:hidden;font-size:12px}div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description p{color:#444;font-size:12px;line-height:18px;margin-bottom:15px}div.wpforms-container-full .wpforms-form .wpforms-field-description-before,div.wpforms-container-full .wpforms-form .wpforms-field-description.before{margin:0 0 8px 0}div.wpforms-container-full .wpforms-form .wpforms-field-label{display:block;font-weight:700;font-size:16px;float:none;line-height:1.3;margin:0 0 4px 0;padding:0;word-break:break-word;word-wrap:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-sublabel{display:block;font-size:13px;float:none;font-weight:400;line-height:1.3;margin:4px 0 0;padding:0;word-break:break-word;word-wrap:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-sublabel.before{margin:0 0 4px 0}div.wpforms-container-full .wpforms-form .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-size:16px;font-weight:400;line-height:1.3;word-break:break-word}div.wpforms-container-full .wpforms-form .wpforms-field-label.wpforms-label-hide,div.wpforms-container-full .wpforms-form .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}div.wpforms-container-full .wpforms-form .wpforms-required-label{color:#ff0000;font-weight:400}div.wpforms-container-full .wpforms-form .wpforms-field-row{margin-bottom:8px;position:relative}div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}div.wpforms-container-full .wpforms-form .wpforms-field-row:before{content:"";display:table}div.wpforms-container-full .wpforms-form .wpforms-field-row:after{clear:both;content:"";display:table}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-one-half:only-child{margin-left:0}div.wpforms-container-full .wpforms-form .wpforms-five-sixths,div.wpforms-container-full .wpforms-form .wpforms-four-sixths,div.wpforms-container-full .wpforms-form .wpforms-four-fifths,div.wpforms-container-full .wpforms-form .wpforms-one-fifth,div.wpforms-container-full .wpforms-form .wpforms-one-fourth,div.wpforms-container-full .wpforms-form .wpforms-one-half,div.wpforms-container-full .wpforms-form .wpforms-one-sixth,div.wpforms-container-full .wpforms-form .wpforms-one-third,div.wpforms-container-full .wpforms-form .wpforms-three-fourths,div.wpforms-container-full .wpforms-form .wpforms-three-fifths,div.wpforms-container-full .wpforms-form .wpforms-three-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-fourths,div.wpforms-container-full .wpforms-form .wpforms-two-fifths,div.wpforms-container-full .wpforms-form .wpforms-two-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-thirds{float:left;margin-left:20px;clear:none}div.wpforms-container-full .wpforms-form .wpforms-one-half,div.wpforms-container-full .wpforms-form .wpforms-three-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-fourths{width:calc( 50% - 10px)}div.wpforms-container-full .wpforms-form .wpforms-one-third,div.wpforms-container-full .wpforms-form .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-third.wpforms-first,div.wpforms-container-full .wpforms-form .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}div.wpforms-container-full .wpforms-form .wpforms-four-sixths,div.wpforms-container-full .wpforms-form .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-four-sixths.wpforms-first,div.wpforms-container-full .wpforms-form .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}div.wpforms-container-full .wpforms-form .wpforms-one-fourth{width:calc( 25% - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-fourth.wpforms-first{width:25%}div.wpforms-container-full .wpforms-form .wpforms-three-fourths{width:calc( 75% - 20px)}div.wpforms-container-full .wpforms-form .wpforms-three-fourths.wpforms-first{width:75%}div.wpforms-container-full .wpforms-form .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}div.wpforms-container-full .wpforms-form .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}div.wpforms-container-full .wpforms-form .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}div.wpforms-container-full .wpforms-form .wpforms-first{clear:both !important;margin-left:0 !important}div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul li{width:50%;display:block;padding-right:26px !important}div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li{width:33.3333%;display:block;padding-right:26px !important}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-half{float:left;width:48%;clear:both}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-last-half{float:right;width:48%;clear:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-third{float:left;width:30.666666667%;clear:both}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-middle-third{float:left;width:30.666666667%;margin-left:4%;clear:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-last-third{float:right;width:30.666666667%;clear:none}div.wpforms-container-full .wpforms-form div.wpforms-last{float:right !important;margin-right:0 !important;clear:none}div.wpforms-container-full.inline-fields{overflow:visible}div.wpforms-container-full.inline-fields .wpforms-form{display:flex;align-items:flex-end}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-container{display:table;width:calc(100% - 160px);float:left}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field{display:table-cell;padding-right:2%;vertical-align:top}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit-container{float:right;width:160px;clear:none;padding-bottom:10px}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit{display:block;width:100%}div.wpforms-container-full.inline-fields .wpforms-form input.wpforms-field-medium,div.wpforms-container-full.inline-fields .wpforms-form select.wpforms-field-medium,div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-row.wpforms-field-medium{max-width:100%}div.wpforms-container-full .wpforms-form input[type=date],div.wpforms-container-full .wpforms-form input[type=datetime],div.wpforms-container-full .wpforms-form input[type=datetime-local],div.wpforms-container-full .wpforms-form input[type=email],div.wpforms-container-full .wpforms-form input[type=month],div.wpforms-container-full .wpforms-form input[type=number],div.wpforms-container-full .wpforms-form input[type=password],div.wpforms-container-full .wpforms-form input[type=range],div.wpforms-container-full .wpforms-form input[type=search],div.wpforms-container-full .wpforms-form input[type=tel],div.wpforms-container-full .wpforms-form input[type=text],div.wpforms-container-full .wpforms-form input[type=time],div.wpforms-container-full .wpforms-form input[type=url],div.wpforms-container-full .wpforms-form input[type=week],div.wpforms-container-full .wpforms-form select,div.wpforms-container-full .wpforms-form textarea{background-color:#fff;box-sizing:border-box;border-radius:2px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;display:block;float:none;font-size:16px;font-family:inherit;border:1px solid #ccc;padding:6px 10px;height:38px;width:100%;line-height:1.3}div.wpforms-container-full .wpforms-form textarea{min-height:38px;resize:vertical}div.wpforms-container-full .wpforms-form input[type=checkbox],div.wpforms-container-full .wpforms-form input[type=radio]{border:1px solid #ccc;background-color:#fff;width:14px;height:14px;margin:0 10px 0 3px;display:inline-block;vertical-align:baseline}div.wpforms-container-full .wpforms-form input[type=radio]{border-radius:50%}div.wpforms-container-full .wpforms-form select{max-width:100%;text-transform:none;white-space:nowrap}div.wpforms-container-full .wpforms-form select[multiple]{height:auto;overflow-y:scroll;background-image:none}div.wpforms-container-full .wpforms-form input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}div.wpforms-container-full .wpforms-form input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}div.wpforms-container-full .wpforms-form input[type=submit],div.wpforms-container-full .wpforms-form button[type=submit],div.wpforms-container-full .wpforms-form .wpforms-page-button{background-color:#eee;border:1px solid #ddd;color:#333;font-size:1em;font-family:inherit;padding:10px 15px}div.wpforms-container-full .wpforms-form .wpforms-page-button{font-size:0.9em;font-weight:400;margin:0 5px;min-width:90px;text-align:center}div.wpforms-container-full .wpforms-form input[type=submit]:hover,div.wpforms-container-full .wpforms-form input[type=submit]:focus,div.wpforms-container-full .wpforms-form input[type=submit]:active,div.wpforms-container-full .wpforms-form button[type=submit]:hover,div.wpforms-container-full .wpforms-form button[type=submit]:focus,div.wpforms-container-full .wpforms-form button[type=submit]:active,div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,div.wpforms-container-full .wpforms-form .wpforms-page-button:active,div.wpforms-container-full .wpforms-form .wpforms-page-button:focus{background-color:#ddd;border:1px solid #ccc;cursor:pointer}div.wpforms-container-full .wpforms-form input[type=submit]:disabled,div.wpforms-container-full .wpforms-form button[type=submit]:disabled,div.wpforms-container-full .wpforms-form .wpforms-page-button:disabled{background-color:#eee;border:1px solid #ddd;cursor:default;opacity:0.5}div.wpforms-container-full .wpforms-form input:focus,div.wpforms-container-full .wpforms-form textarea:focus,div.wpforms-container-full .wpforms-form select:focus,div.wpforms-container-full .wpforms-form .is-focused .choices__inner,div.wpforms-container-full .wpforms-form .is-open .choices__inner,div.wpforms-container-full .wpforms-form .is-open .choices__list--dropdown{border:1px solid #999;box-shadow:none}div.wpforms-container-full .wpforms-form input:disabled,div.wpforms-container-full .wpforms-form textarea:disabled,div.wpforms-container-full .wpforms-form select:disabled{background-color:#f9f9f9;border-color:#ddd;color:#999;cursor:not-allowed}div.wpforms-container-full .wpforms-error-container.wpforms-error-styled-container{padding:10px 0;font-size:15px}div.wpforms-container-full .wpforms-error-container.wpforms-error-styled-container .wpforms-error{padding:6px;border:1px solid #990000;border-left:5px solid}div.wpforms-container-full .wpforms-form .wpforms-error-container,div.wpforms-container-full .wpforms-form noscript.wpforms-error-noscript{color:#990000}div.wpforms-container-full .wpforms-form label.wpforms-error{display:block;color:#990000;font-size:12px;float:none;cursor:default;margin-top:8px}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #cc0000}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration label.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-code label.wpforms-error{display:none !important}.wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full{color:#333;margin:0 auto 24px;padding:15px 15px;overflow-wrap:break-word}.wpforms-confirmation-container-full iframe,div[submit-success]>.wpforms-confirmation-container-full iframe{width:100%;border:0}.wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message){background:#e0ffc7;border:1px solid #b4d39b;box-sizing:border-box}.wpforms-confirmation-container-full p,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p{color:#333333}.wpforms-confirmation-container-full p:last-of-type,div[submit-success]>.wpforms-confirmation-container-full p:last-of-type{margin:0}.amp-form-submit-success .wpforms-field-container,.amp-form-submit-success .wpforms-submit-container{display:none}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container{padding:10px 0 20px 0;clear:both}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile-invisible{padding:0}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .g-recaptcha,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .h-captcha,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .cf-turnstile{line-height:0;font-size:0}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .g-recaptcha iframe,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .h-captcha iframe,div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .cf-turnstile iframe{position:relative !important}div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container iframe{width:100%;max-width:100%}div.wpforms-container-full .wpforms-form .wpforms-title{font-size:26px;margin:0 0 10px 0}div.wpforms-container-full .wpforms-form .wpforms-description{margin:0 0 10px 0}div.wpforms-container-full .wpforms-form .wpforms-submit-container{padding:10px 0 0 0;clear:both;position:relative}div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{margin-inline-start:0.5em;display:inline-block;vertical-align:middle;max-width:26px}div.wpforms-container-full .wpforms-form .wpforms-field-pagebreak:empty{display:none}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-center{text-align:center}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-left{text-align:left}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-left .wpforms-page-button{margin:0 10px 0 0}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-right{text-align:right}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-right .wpforms-page-button{margin:0 0 0 10px}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-split .wpforms-page-prev{float:left;margin:0}div.wpforms-container-full .wpforms-form .wpforms-pagebreak-split .wpforms-page-next{float:right;margin:0}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-number{margin-right:100px;width:calc( 100% - 120px)}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-code{position:absolute;right:0;top:0;width:110px}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-name{margin-right:170px}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration{position:absolute;right:0;top:0;width:160px}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration select{width:45%;float:left;display:block}div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration span{float:left;width:10%;text-align:center;line-height:38px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{-webkit-appearance:none;appearance:none;height:10px;background:#fff;border:1px solid #CCC;border-radius:5px;outline:none;padding:0;margin:10px 0 5px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-track{color:transparent}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-moz-range-thumb{width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-thumb{width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint{font-size:13px}div.wpforms-container-full .wpforms-form .wpforms-field-stripe-credit-card-cardnumber,div.wpforms-container-full .wpforms-form input.wpforms-stripe-credit-card-hidden-input{background-color:#fff;box-sizing:border-box;border-radius:2px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;display:block;float:none;font-size:16px;border:1px solid #ccc;padding:8px 10px;height:38px;width:100%;line-height:1.3}div.wpforms-container-full .wpforms-form .wpforms-stripe-element-invalid{border:1px solid #cc0000 !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ul,div.wpforms-container-full .wpforms-form .wpforms-field-html ol{margin:0 0 20px !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ul li,div.wpforms-container-full .wpforms-form .wpforms-field-html ol li{margin:0 0 5px 0 !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ul li{list-style:disc !important}div.wpforms-container-full .wpforms-form .wpforms-field-html ol li{list-style:decimal !important}div.wpforms-container-full .wpforms-form .wpforms-field-html li>ul,div.wpforms-container-full .wpforms-form .wpforms-field-html li>ol{margin:6px 0 0 20px !important}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row{display:flex;flex-wrap:wrap;align-items:start;gap:10px 12px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row::before,div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row::after{position:absolute}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;width:clamp(calc( 50% - 12px), 100px, 100%)}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-field-row-block{width:clamp(calc( 50% - 12px), 100px, 100%);flex:1;min-width:30%}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-date-dropdown-wrap{width:100%}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-sublabel{width:100%}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;margin:0 -6px 0 -6px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small{width:calc( 25% + 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small select{appearance:none;background-image:none;padding-left:5px;padding-right:5px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-medium{width:calc( 60% + 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-large{width:calc( 100% + 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap select{margin:0 6px 0 6px}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row-block .wpforms-field-date-dropdown-wrap{width:100%}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-day,div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-month{width:calc( 30% - 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-year{width:calc( 40% - 12px)}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-datepicker{width:clamp(calc( 50% - 12px), 100px, 100%)}div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-datepicker+.wpforms-field-row-block{width:clamp(50%, 100px, 100%)}div.wpforms-container-full .wpforms-datepicker-wrap{position:relative}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear{position:absolute;background-image:url("../../../pro/images/times-solid-white.svg") !important;background-position:50% 50% !important;background-repeat:no-repeat !important;background-color:#cccccc !important;background-size:8px !important;width:16px;height:16px;cursor:pointer;display:block;border-radius:50%;right:10px;top:50%;margin-top:-8px;transition:all 0.3s}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear:hover,div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear:focus{background-color:red !important}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-field-small+.wpforms-datepicker-clear{right:calc( 75% + 10px)}div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-field-medium+.wpforms-datepicker-clear{right:calc( 40% + 10px)}div.wpforms-container-full .wpforms-form .wpforms-captcha-math input{display:inline-block;width:70px;vertical-align:inherit;margin:0 0 0 5px}div.wpforms-container-full .wpforms-form .wpforms-captcha-equation{font-size:16px}div.wpforms-container-full .wpforms-form .wpforms-captcha-question{margin:0 0 4px 0}div.wpforms-container-full .wpforms-form .wpforms-field-rating-item{padding-right:6px}div.wpforms-container-full .wpforms-form .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.selected svg,div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}div.wpforms-container-full .wpforms-form .wpforms-field-rating-wrapper{display:inline-block}div.wpforms-container-full .wpforms-form .wpforms-field-rating-labels{display:flex;justify-content:space-between;gap:10px}div.wpforms-container-full .wpforms-form .wpforms-field-layout{padding:0}div.wpforms-field-file-upload .wpforms-hide{display:none !important}div.wpforms-field-file-upload input[type=file]{font-style:normal;font-weight:400;font-size:16px;line-height:22px;padding:1px;height:auto;width:60%;border:none !important;box-shadow:none}div.wpforms-field-file-upload input[type=file]::-webkit-file-upload-button{padding:4px 12px;font-weight:400;font-size:14px;margin-right:10px;cursor:pointer;transition:all 0.15s ease-out}div.wpforms-field-file-upload input[type=file]:hover::-webkit-file-upload-button{background:#eeeeee}div.wpforms-field-file-upload p.wpforms-file-upload-capture-camera-classic{margin-top:20px;display:block}div.wpforms-field-file-upload p.wpforms-file-upload-capture-camera-classic a.camera{color:var(--wpforms-field-text-color);text-decoration:underline}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern{border:2px dashed rgba(0,0,0,0.1);background:rgba(0,0,0,0.02);padding:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern.wpforms-with-files{padding:5px;flex-direction:row;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern svg{height:50px;width:50px;color:#e27730}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-modern-title{font-weight:bold}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-modern-hint{color:rgba(0,0,0,0.1)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern.wpforms-highlighted{border-color:#e27730}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-text{display:flex;align-items:center;justify-content:center;flex-direction:column}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block{width:100px;height:100px;border:1px solid rgba(0,0,0,0.1);background:#fff;background-size:cover !important;margin:5px;position:relative;display:flex;align-items:center;justify-content:center;cursor:default}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block:hover .wpforms-overlay{opacity:1}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay{position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0.5);opacity:0}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close{position:absolute;right:5px;top:5px;cursor:pointer;display:block;width:18px;height:18px}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-title{position:absolute;font-size:12px;color:#fff;top:25px;bottom:10px;left:5px;right:5px;overflow-y:auto;line-height:16px}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-left,div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-right{height:18px;width:1px;background:#fff;position:absolute;display:block;z-index:1;right:9px}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-left{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-right{-webkit-transform:rotate(45deg);transform:rotate(45deg)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block svg{height:25px;width:25px;color:rgba(0,0,0,0.1)}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-progress{height:5px;width:0;position:absolute;bottom:0;left:0;background:#e27730;transition:all 0.5s}div.wpforms-field-file-upload .wpforms-file-upload-builder-modern input[type="file"]{display:none}.wpforms-container .wpforms-field-radio .wpforms-other-input{margin-top:16px}body div.wpforms-container-full .wpforms-camera-link{color:#036AAB;text-decoration:underline;font-size:16px}body div.wpforms-container-full .wpforms-camera-link:hover{text-decoration:none}body div.wpforms-container-full .wpforms-camera-link:focus{outline:2px solid #036AAB;outline-offset:2px;text-decoration:none}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button{display:inline-flex;align-items:center;gap:7px;line-height:100%;cursor:pointer;padding:0 15px;border:1px solid #ccc;height:41px;background-color:#fff;color:#333;font-size:16px}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button:hover,body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button:focus{border-color:#bbb}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button svg{fill:#bbb;width:1.1em;height:auto;flex-shrink:0;vertical-align:middle}body div.wpforms-container-full .wpforms-field-camera input[type="file"]{display:none}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file{display:none;align-items:center;gap:10px;color:#777777;font-size:15px}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file svg{fill:#D63638;cursor:pointer}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file svg:hover{opacity:.75}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file .wpforms-camera-remove-file{height:15px}body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file.wpforms-camera-selected-file-active{display:inline-flex}body div.wpforms-container-full .wpforms-layout-column-33 .wpforms-camera-selected-file.wpforms-camera-selected-file-active{display:block}body div.wpforms-container-full .wpforms-layout-column-33 .wpforms-camera-selected-file.wpforms-camera-selected-file-active button{margin-left:5px}body div.wpforms-container-full div.wpforms-camera-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;z-index:999999}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions{justify-content:space-between;position:relative}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown{font-family:monospace;font-size:14px;color:#999999;flex:0 0 auto;font-weight:500;min-width:120px;text-align:left;white-space:nowrap}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{display:inline-block}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown div{display:inline}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:absolute;left:50%;transform:translateX(-50%)}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture{background-color:#D63638}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:hover{background-color:#b32d2e}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{width:48px;height:48px;border-radius:50%;background-color:#D63638;display:flex;align-items:center;justify-content:center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop:after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:18px;height:18px;background-color:#fff;border-radius:4px}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop:hover{background-color:#b32d2e}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button{border:none}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel{width:26px;background:url(../../../pro/images/camera-video.svg) no-repeat center}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop{background:url(../../../images/crop.svg) no-repeat center}body div.wpforms-container-full div.wpforms-camera-modal{background:#FFFFFF;max-width:100%;width:540px;height:440px;display:flex;flex-direction:column;border-radius:9px;box-shadow:-4px 5px 15px 0 rgba(0,0,0,0.15);overflow:hidden;position:relative;z-index:1000000}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{display:flex;height:62px;padding:16px 30px;justify-content:space-between;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-title{font-size:18px;font-weight:700;color:#444444}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close{cursor:pointer;width:12px;height:12px;display:flex;justify-content:center;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close svg{fill:#BBBBBB;width:12px;height:12px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:300px;background-color:#dedede;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{display:none;width:100%;height:auto;position:relative;overflow:hidden;justify-content:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview video{max-width:100%;height:auto;width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview .wpforms-camera-captured-photo{max-width:100%;height:auto;width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas{min-height:0;width:100%;height:100%;display:block}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-shade{outline-style:solid;outline-color:rgba(0,0,0,0.75)}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-image{max-width:100%;max-height:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle::after{width:8px !important;height:8px !important}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-selection{min-width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle{background-color:transparent;height:15px;position:absolute;width:15px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle[action=move]{height:100%;left:0;top:0;width:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-grid{position:absolute}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-grid[bordered]{border:2px solid #fff !important}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-error{display:none;padding:20px;text-align:center;color:#d63637;font-size:16px;line-height:1.5}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{height:78px;min-height:78px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e6e9ec}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-text{font-size:14px;color:#555}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{display:flex;width:100%;justify-content:space-between;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions button{border:none;outline:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture{width:48px;height:48px;border-radius:50%;background-color:#036AAB;display:flex;align-items:center;justify-content:center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:hover,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:focus{outline:none;background-color:#215d8f}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:disabled{opacity:.5;cursor:not-allowed}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown{position:absolute;left:50%;transform:translateX(-50%)}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{display:none;position:absolute;right:20px;width:24px;height:24px;background:url(../../../pro/images/camera-rotate.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#999999;font-size:24px;font-weight:500}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown svg{position:absolute;top:0;left:0;width:48px;height:48px;transform:rotate(-90deg)}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle{cx:24px;cy:24px;r:calc((48px - 4px) / 2);stroke-width:4px;fill:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle.bg{stroke:#dedede}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle.progress{stroke:#036AAB;stroke-linecap:round;transform-origin:24px 24px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown.animate circle.progress{animation:wpforms-camera-countdown 3s linear forwards}@keyframes wpforms-camera-countdown{0%{stroke-dasharray:0 calc(calc((48px - 4px) / 2) * 3.14159 * 2)}100%{stroke-dasharray:calc(calc((48px - 4px) / 2) * 3.14159 * 2) 0}}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons{display:flex;width:100%;justify-content:space-between;align-items:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button{border:none;outline:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button:focus{outline:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel{width:24px;height:24px;background:url(../../../pro/images/camera.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop{font-size:15px;padding:0 15px;background-color:#036AAB;color:#fff;border-radius:3px;height:41px;font-weight:500;line-height:100%;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept:hover,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept:focus,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop:hover,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop:focus{background-color:#215d8f}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop{visibility:hidden;width:24px;height:24px;background:url(../../../pro/images/crop.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop-cancel{width:24px;height:24px;background:url(../../../pro/images/cancel.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop-cancel:hover{opacity:.75}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel-video{width:24px;height:24px;background:url(../../../pro/images/trash.svg) no-repeat center;cursor:pointer}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel-video:hover{opacity:.75}body.wpforms-camera-modal-open{overflow:hidden;position:fixed;width:100%}@media only screen and (max-width: 767px) and (orientation: portrait){body div.wpforms-container-full div.wpforms-camera-modal{height:75vh;max-height:75vh;width:90vw;max-width:90vw}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{padding:20px 16px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:0;height:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{height:auto;width:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{padding:0 20px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip.wpforms-camera-flip-active{display:block}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{position:static}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{text-align:left}}@media only screen and (max-width: 1024px) and (orientation: landscape){body div.wpforms-container-full div.wpforms-camera-modal{flex-direction:row;width:80vw;max-width:90vw;height:75vh;max-height:75vh}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:0;height:100%;flex-grow:1}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{height:auto;width:auto}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview .wpforms-camera-captured-photo{object-fit:cover}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{flex-direction:column-reverse;height:100%;padding:20px 16px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-title{writing-mode:vertical-lr;transform:rotate(180deg);text-align:center}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{height:100%;flex-direction:row;padding:20px 0;width:78px;min-width:78px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{justify-content:center;display:flex;flex-direction:column-reverse}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:relative;left:auto;transform:none}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{left:calc(100% - 52px);top:20px}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip.wpforms-camera-flip-active{display:block}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons{flex-direction:column-reverse;height:100%}body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept,body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop{transform:rotate(-90deg);transform-origin:center;width:max-content}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview{max-height:100%}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview video{max-height:100%;object-fit:cover}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview .wpforms-camera-captured-photo{object-fit:cover}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{height:100%}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:absolute;left:auto;top:50%;transform:translateY(-50%)}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{position:static}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown{min-width:auto}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{text-align:center}body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown div{display:none !important}}@media only screen and (max-width: 767px){body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-video-countdown div{display:none !important}}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label input{top:50%}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-modern li{margin:5px 5px 5px 5px !important}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error){background-color:#fff;display:block;margin:0 auto;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error):hover,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error):focus{border:1px solid #ddd}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error){background-color:#fff;display:block;margin:0 auto;border:2px solid #fff;padding:10px;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error):hover,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error):focus{border-color:#ddd}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-image{display:block}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic li:has(input:checked) label{border-color:#666 !important}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices *{box-sizing:border-box}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices+.wpforms-field-description,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}div.wpforms-container-full .wpforms-form .wpforms-page-indicator{margin:0 0 20px 0;overflow:hidden}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles{border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:15px 10px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:left;margin:0 20px 0 0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page:last-of-type{margin:0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{height:40px;width:40px;border-radius:50%;display:inline-block;margin:0 10px 0 0;line-height:40px;text-align:center;background-color:#ddd;color:#666}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .active .wpforms-page-indicator-page-number{color:#fff}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{float:left;text-align:center;font-size:16px;line-height:1.2}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:block;text-indent:-9999px;height:6px;background-color:#ddd;margin:0 0 16px 0;position:relative}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-triangle{position:absolute;top:100%;left:50%;width:0;height:0;margin-left:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:transparent transparent transparent transparent}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:inline-block;padding:0 15px;font-size:16px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress{font-size:18px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{display:block;width:100%;background-color:#ddd;height:18px;border-radius:10px;overflow:hidden;position:relative;margin:5px 0 0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress{height:18px;position:absolute;left:0;top:0}div.wpforms-container-full .wpforms-form .wpforms-field-select select>option{color:inherit}div.wpforms-container-full .wpforms-form .wpforms-field-select select>option.placeholder,div.wpforms-container-full .wpforms-form .wpforms-field-select select>option[disabled]{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:0}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:10px 8px}}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option{padding:8px 10px;box-shadow:0 1px 0 0 rgba(0,0,0,0.1)}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option.placeholder,div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option[disabled]{box-shadow:0 1px 0 0 rgba(0,0,0,0.2)}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option:checked{background-color:lightgrey}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select{text-indent:2px}}div.wpforms-container-full .wpforms-form .choices{font-size:16px;color:#333}div.wpforms-container-full .wpforms-form .choices .choices__list--single{font-size:1em;line-height:normal}div.wpforms-container-full .wpforms-form .choices.is-open.is-flipped .choices__inner,div.wpforms-container-full .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 2px 2px}div.wpforms-container-full .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,div.wpforms-container-full .wpforms-form .choices.is-open .choices__inner{border-radius:2px 2px 0 0}div.wpforms-container-full .wpforms-form .choices .choices__inner{min-height:38px;line-height:38px;border-radius:2px;padding-top:0}div.wpforms-container-full .wpforms-form .choices input.choices__input{display:inline-block;height:auto;line-height:1.3}div.wpforms-container-full .wpforms-form .choices ::-webkit-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .choices ::-moz-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .choices :-ms-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty+.choices__input{min-width:100% !important;text-overflow:ellipsis;padding-right:4px !important;margin-bottom:1px !important;white-space:nowrap}div.wpforms-container-full .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner input[disabled]{opacity:1}div.wpforms-container-full .wpforms-notice{background-color:#fff;border:1px solid #ddd;border-left-width:12px;color:#333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}div.wpforms-container-full .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;outline:none;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}div.wpforms-container-full .wpforms-notice .wpforms-delete:before,div.wpforms-container-full .wpforms-notice .wpforms-delete:after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}div.wpforms-container-full .wpforms-notice .wpforms-delete:before{height:2px;width:50%}div.wpforms-container-full .wpforms-notice .wpforms-delete:after{height:50%;width:2px}div.wpforms-container-full .wpforms-notice .wpforms-delete:hover,div.wpforms-container-full .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}div.wpforms-container-full .wpforms-notice a{text-decoration:underline}div.wpforms-container-full .wpforms-notice p{margin:0 0 20px 0}div.wpforms-container-full .wpforms-notice p:last-of-type{margin-bottom:0}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-info{border-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-success{border-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-warning{border-color:#ffdd57}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action,div.wpforms-container-full .wpforms-notice.wpforms-error{border-color:#ff3860}div.wpforms-container-full .wpforms-notice .wpforms-notice-actions{margin-top:20px}div.wpforms-container-full .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}div.wpforms-container-full .wpforms-notice .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice .wpforms-notice-action:active{color:#fff}div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:hover,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:focus,div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#ff3860}div.wpforms-container-full .wpforms-form textarea.wpforms-field-small.wp-editor-area{height:100px}div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium.wp-editor-area{height:250px}div.wpforms-container-full .wpforms-form textarea.wpforms-field-large.wp-editor-area{height:400px}.wpforms-preview-notice-links{line-height:2.4}.wpforms-preview-notice{background-color:#fcf9e8;border:1px solid #f5e6ab;padding:15px;box-sizing:border-box;font-size:16px}.wpforms-preview-notice p{margin:0}div.wpforms-container-full{margin:24px auto}div.wpforms-container-full .wpforms-form h3{font-size:24px}div.wpforms-container-full .wpforms-form .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}div.wpforms-container-full .wpforms-form .wpforms-field-hidden{display:none;padding:0}div.wpforms-container-full .wpforms-form .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;width:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;word-wrap:normal !important}div.wpforms-container-full .wpforms-form .wpforms-limit-text{font-size:13px;display:block}body.rtl .wpforms-field-phone input[type=tel]{direction:ltr;unicode-bidi:embed;text-align:right}body.rtl .wpforms-container-full .wpforms-form .wpforms-first{float:right}body.rtl .wpforms-container-full .wpforms-form .wpforms-first+.wpforms-one-half{margin-right:4%;margin-left:0}div.wpforms-container-full .wpforms-form .wpforms-error-container ul li{list-style:inside !important}div.wpforms-container-full .wpforms-form .wpforms-error-container ol li{list-style:inside decimal !important}div.wpforms-container-full .wpforms-form .wpforms-error-container a{text-decoration:underline !important}div.wpforms-container-full .wpforms-form .wpforms-error-container del{text-decoration:line-through !important}div.wpforms-container-full .wpforms-form .wpforms-error-container blockquote{padding-left:20px;border-left:4px solid;font-style:italic}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-form .wpforms-order-summary-container *,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container *,.wpforms-confirmation-container-full .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .wpforms-form .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-form .wpforms-field-large>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .size-large>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-field-large>.wpforms-order-summary-container,.wpforms-confirmation-container-full .size-large>.wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .wpforms-form .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-form .wpforms-field-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .size-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-field-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-full .size-medium>.wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.wpforms-container .wpforms-form .wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{font-size:16px}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:color-mix(in srgb, currentColor 25%, transparent)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total),.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total),.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total){color:color-mix(in srgb, currentColor 50%, transparent);border-color:color-mix(in srgb, currentColor 50%, transparent)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#990000;border-color:color-mix(in srgb, black 25%, transparent)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:currentColor;border-color:color-mix(in srgb, currentColor 25%, transparent)}.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{max-width:100%;margin-bottom:24px}.wpforms-confirmation-container-order-summary .wpforms-order-summary-container tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container tr td{color:color-mix(in srgb, currentColor 75%, transparent)}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}@media only screen and (max-width: 600px){div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-container,div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field{display:block;width:100%}div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit-container{width:100%}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:none}div.wpforms-container-full .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}div.wpforms-container-full .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}div.wpforms-container-full .wpforms-form .wpforms-field>*{max-width:100%}div.wpforms-container-full .wpforms-form .wpforms-mobile-full{width:100% !important;margin-left:0 !important;float:none !important}div.wpforms-container-full .wpforms-form input.wpforms-field-medium,div.wpforms-container-full .wpforms-form select.wpforms-field-medium,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium,div.wpforms-container-full .wpforms-form input.wpforms-field-small,div.wpforms-container-full .wpforms-form select.wpforms-field-small,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-small,div.wpforms-container-full .wpforms-form input.wpforms-field-large,div.wpforms-container-full .wpforms-form select.wpforms-field-large,div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li{float:none;width:100%}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{margin:0 10px 0 0}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{margin:20px 0 15px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{width:30px;height:30px}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form *{background:none;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;list-style:none;outline:none;position:static;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full{margin-left:auto;margin-right:auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form amp-img>img{position:absolute}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form button,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;background:none;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea{max-width:100%;width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul li{background:none !important;border:0 !important;margin:0 !important;padding:0 !important;list-style:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul li{margin-bottom:5px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul li:last-of-type{margin-bottom:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form hr{border-top:1px solid #ccc;margin:0.5em auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form fieldset{min-width:0}.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month select{display:initial}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month .numInputWrapper{width:calc(6ch - 14px)}.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp,.et-db #et-boc .et-l .et_pb_module .flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-error-alert{border:1px solid #cccccc;text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-error-alert{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.et-db #et-boc .et-l .et_pb_module div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.et-db #et-boc .et-l .et_pb_module .wpforms-is-turnstile iframe{margin-left:-2px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-hidden{display:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:before{content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:after{clear:both;content:" ";display:table}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium{max-width:60%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium{height:120px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-small{max-width:25%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-small{height:70px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-large{height:220px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field{padding:10px 0;clear:both}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-limit-text{font-size:13px;line-height:1.3;margin:8px 0 0 0;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description{background-color:#fff;border:1px solid #ddd;color:#444;padding:15px 15px 0;margin-top:15px;height:125px;overflow-y:scroll;overflow-x:hidden;font-size:12px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-description.wpforms-disclaimer-description p{color:#444;font-size:12px;line-height:18px;margin-bottom:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-description.before{margin:0 0 8px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-label{display:block;font-weight:700;font-size:16px;float:none;line-height:1.3;margin:0 0 4px 0;padding:0;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-sublabel{display:block;font-size:13px;float:none;font-weight:400;line-height:1.3;margin:4px 0 0;padding:0;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-sublabel.before{margin:0 0 4px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-size:16px;font-weight:400;line-height:1.3;word-break:break-word}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-label.wpforms-label-hide,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-required-label{color:#ff0000;font-weight:400}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row{margin-bottom:8px;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row:before{content:"";display:table}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row:after{clear:both;content:"";display:table}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-one-half:only-child{margin-left:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-fourths{width:calc( 50% - 10px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-third.wpforms-first,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-four-sixths.wpforms-first,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-fourth{width:calc( 25% - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-fourth.wpforms-first{width:25%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-fourths{width:calc( 75% - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-fourths.wpforms-first{width:75%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-first{clear:both !important;margin-left:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul li{width:50%;display:block;padding-right:26px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li{width:33.3333%;display:block;padding-right:26px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-half{float:left;width:48%;clear:both}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-last-half{float:right;width:48%;clear:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-first-third{float:left;width:30.666666667%;clear:both}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-middle-third{float:left;width:30.666666667%;margin-left:4%;clear:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-last-third{float:right;width:30.666666667%;clear:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form div.wpforms-last{float:right !important;margin-right:0 !important;clear:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields{overflow:visible}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form{display:flex;align-items:flex-end}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-container{display:table;width:calc(100% - 160px);float:left}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field{display:table-cell;padding-right:2%;vertical-align:top}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit-container{float:right;width:160px;clear:none;padding-bottom:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-row.wpforms-field-medium{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=date],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=datetime],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=email],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=month],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=number],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=password],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=range],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=search],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=tel],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=text],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=time],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=url],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=week],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea{background-color:#fff;box-sizing:border-box;border-radius:2px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;display:block;float:none;font-size:16px;font-family:inherit;border:1px solid #ccc;padding:6px 10px;height:38px;width:100%;line-height:1.3}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea{min-height:38px;resize:vertical}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=checkbox],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=radio]{border:1px solid #ccc;background-color:#fff;width:14px;height:14px;margin:0 10px 0 3px;display:inline-block;vertical-align:baseline}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=radio]{border-radius:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select{max-width:100%;text-transform:none;white-space:nowrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select[multiple]{height:auto;overflow-y:scroll;background-image:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=submit],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form button[type=submit],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-button{background-color:#eee;border:1px solid #ddd;color:#333;font-size:1em;font-family:inherit;padding:10px 15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-button{font-size:0.9em;font-weight:400;margin:0 5px;min-width:90px;text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=submit]:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=submit]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=submit]:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form button[type=submit]:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form button[type=submit]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form button[type=submit]:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-button:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-button:focus{background-color:#ddd;border:1px solid #ccc;cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form button[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-button:disabled{background-color:#eee;border:1px solid #ddd;cursor:default;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .is-focused .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .is-open .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .is-open .choices__list--dropdown{border:1px solid #999;box-shadow:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select:disabled{background-color:#f9f9f9;border-color:#ddd;color:#999;cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-error-container.wpforms-error-styled-container{padding:10px 0;font-size:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-error-container.wpforms-error-styled-container .wpforms-error{padding:6px;border:1px solid #990000;border-left:5px solid}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form noscript.wpforms-error-noscript{color:#990000}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form label.wpforms-error{display:block;color:#990000;font-size:12px;float:none;cursor:default;margin-top:8px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #cc0000}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration label.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-code label.wpforms-error{display:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full{color:#333;margin:0 auto 24px;padding:15px 15px;overflow-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full iframe,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full iframe{width:100%;border:0}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message){background:#e0ffc7;border:1px solid #b4d39b;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full p,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p{color:#333333}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full p:last-of-type,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full p:last-of-type{margin:0}.et-db #et-boc .et-l .et_pb_module .amp-form-submit-success .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module .amp-form-submit-success .wpforms-submit-container{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container{padding:10px 0 20px 0;clear:both}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile-invisible{padding:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .g-recaptcha,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .h-captcha,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .cf-turnstile{line-height:0;font-size:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .g-recaptcha iframe,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .h-captcha iframe,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container.wpforms-is-turnstile .cf-turnstile iframe{position:relative !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-recaptcha-container iframe{width:100%;max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-title{font-size:26px;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-description{margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-submit-container{padding:10px 0 0 0;clear:both;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{margin-inline-start:0.5em;display:inline-block;vertical-align:middle;max-width:26px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-pagebreak:empty{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-center{text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-left{text-align:left}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-left .wpforms-page-button{margin:0 10px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-right{text-align:right}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-right .wpforms-page-button{margin:0 0 0 10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-split .wpforms-page-prev{float:left;margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-pagebreak-split .wpforms-page-next{float:right;margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-number{margin-right:100px;width:calc( 100% - 120px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-code{position:absolute;right:0;top:0;width:110px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-name{margin-right:170px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration{position:absolute;right:0;top:0;width:160px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration select{width:45%;float:left;display:block}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration span{float:left;width:10%;text-align:center;line-height:38px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{-webkit-appearance:none;appearance:none;height:10px;background:#fff;border:1px solid #CCC;border-radius:5px;outline:none;padding:0;margin:10px 0 5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-track{color:transparent}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-moz-range-thumb{width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-thumb{width:17px;height:17px;background:#B5B5B5;cursor:pointer;border-radius:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint{font-size:13px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-stripe-credit-card-cardnumber,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-stripe-credit-card-hidden-input{background-color:#fff;box-sizing:border-box;border-radius:2px;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;display:block;float:none;font-size:16px;border:1px solid #ccc;padding:8px 10px;height:38px;width:100%;line-height:1.3}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-stripe-element-invalid{border:1px solid #cc0000 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html ol{margin:0 0 20px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html ol li{margin:0 0 5px 0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html ul li{list-style:disc !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html ol li{list-style:decimal !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html li>ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-html li>ol{margin:6px 0 0 20px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row{display:flex;flex-wrap:wrap;align-items:start;gap:10px 12px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row::before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row::after{position:absolute}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;width:clamp(calc( 50% - 12px), 100px, 100%)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown+.wpforms-field-row-block{width:clamp(calc( 50% - 12px), 100px, 100%);flex:1;min-width:30%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-date-dropdown-wrap{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-dropdown .wpforms-field-sublabel{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;margin:0 -6px 0 -6px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small{width:calc( 25% + 12px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-small select{appearance:none;background-image:none;padding-left:5px;padding-right:5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-medium{width:calc( 60% + 12px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap.wpforms-field-large{width:calc( 100% + 12px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-dropdown-wrap select{margin:0 6px 0 6px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-row-block .wpforms-field-date-dropdown-wrap{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-day,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-month{width:calc( 30% - 12px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-field-date-time-date-year{width:calc( 40% - 12px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-datepicker{width:clamp(calc( 50% - 12px), 100px, 100%)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-date-time .wpforms-date-type-datepicker+.wpforms-field-row-block{width:clamp(50%, 100px, 100%)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-datepicker-wrap{position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear{position:absolute;background-image:url("../../../pro/images/times-solid-white.svg") !important;background-position:50% 50% !important;background-repeat:no-repeat !important;background-color:#cccccc !important;background-size:8px !important;width:16px;height:16px;cursor:pointer;display:block;border-radius:50%;right:10px;top:50%;margin-top:-8px;transition:all 0.3s}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-datepicker-clear:focus{background-color:red !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-field-small+.wpforms-datepicker-clear{right:calc( 75% + 10px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-datepicker-wrap .wpforms-field-medium+.wpforms-datepicker-clear{right:calc( 40% + 10px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-captcha-math input{display:inline-block;width:70px;vertical-align:inherit;margin:0 0 0 5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-captcha-equation{font-size:16px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-captcha-question{margin:0 0 4px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-rating-item{padding-right:6px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-rating svg{cursor:pointer;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;opacity:0.60}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.selected svg,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.hover svg{-webkit-transform:scale(1.3);transform:scale(1.3);opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-rating-wrapper{display:inline-block}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-rating-labels{display:flex;justify-content:space-between;gap:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout{padding:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-hide{display:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload input[type=file]{font-style:normal;font-weight:400;font-size:16px;line-height:22px;padding:1px;height:auto;width:60%;border:none !important;box-shadow:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload input[type=file]::-webkit-file-upload-button{padding:4px 12px;font-weight:400;font-size:14px;margin-right:10px;cursor:pointer;transition:all 0.15s ease-out}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload input[type=file]:hover::-webkit-file-upload-button{background:#eeeeee}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload p.wpforms-file-upload-capture-camera-classic{margin-top:20px;display:block}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload p.wpforms-file-upload-capture-camera-classic a.camera{color:var(--wpforms-field-text-color);text-decoration:underline}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern{border:2px dashed rgba(0,0,0,0.1);background:rgba(0,0,0,0.02);padding:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern.wpforms-with-files{padding:5px;flex-direction:row;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern svg{height:50px;width:50px;color:#e27730}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-modern-title{font-weight:bold}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-modern-hint{color:rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern.wpforms-highlighted{border-color:#e27730}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-text{display:flex;align-items:center;justify-content:center;flex-direction:column}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block{width:100px;height:100px;border:1px solid rgba(0,0,0,0.1);background:#fff;background-size:cover !important;margin:5px;position:relative;display:flex;align-items:center;justify-content:center;cursor:default}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block:hover .wpforms-overlay{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay{position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0.5);opacity:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close{position:absolute;right:5px;top:5px;cursor:pointer;display:block;width:18px;height:18px}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-title{position:absolute;font-size:12px;color:#fff;top:25px;bottom:10px;left:5px;right:5px;overflow-y:auto;line-height:16px}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-left,.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-right{height:18px;width:1px;background:#fff;position:absolute;display:block;z-index:1;right:9px}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-left{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-overlay .wpforms-close .wpforms-close-right{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block svg{height:25px;width:25px;color:rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern .wpforms-preview-block .wpforms-progress{height:5px;width:0;position:absolute;bottom:0;left:0;background:#e27730;transition:all 0.5s}.et-db #et-boc .et-l .et_pb_module div.wpforms-field-file-upload .wpforms-file-upload-builder-modern input[type="file"]{display:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio .wpforms-other-input{margin-top:16px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-camera-link{color:#036AAB;text-decoration:underline;font-size:16px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-camera-link:hover{text-decoration:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-camera-link:focus{outline:2px solid #036AAB;outline-offset:2px;text-decoration:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button{display:inline-flex;align-items:center;gap:7px;line-height:100%;cursor:pointer;padding:0 15px;border:1px solid #ccc;height:41px;background-color:#fff;color:#333;font-size:16px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button:hover,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button:focus{border-color:#bbb}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-button svg{fill:#bbb;width:1.1em;height:auto;flex-shrink:0;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera input[type="file"]{display:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file{display:none;align-items:center;gap:10px;color:#777777;font-size:15px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file svg{fill:#D63638;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file svg:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file .wpforms-camera-remove-file{height:15px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-field-camera .wpforms-camera-selected-file.wpforms-camera-selected-file-active{display:inline-flex}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-layout-column-33 .wpforms-camera-selected-file.wpforms-camera-selected-file-active{display:block}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full .wpforms-layout-column-33 .wpforms-camera-selected-file.wpforms-camera-selected-file-active button{margin-left:5px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;z-index:999999}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions{justify-content:space-between;position:relative}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown{font-family:monospace;font-size:14px;color:#999999;flex:0 0 auto;font-weight:500;min-width:120px;text-align:left;white-space:nowrap}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{display:inline-block}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown div{display:inline}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:absolute;left:50%;transform:translateX(-50%)}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture{background-color:#D63638}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:hover{background-color:#b32d2e}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{width:48px;height:48px;border-radius:50%;background-color:#D63638;display:flex;align-items:center;justify-content:center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop:after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:18px;height:18px;background-color:#fff;border-radius:4px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop:hover{background-color:#b32d2e}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button{border:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel{width:26px;background:url(../../../pro/images/camera-video.svg) no-repeat center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop{background:url(../../../images/crop.svg) no-repeat center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal{background:#FFFFFF;max-width:100%;width:540px;height:440px;display:flex;flex-direction:column;border-radius:9px;box-shadow:-4px 5px 15px 0 rgba(0,0,0,0.15);overflow:hidden;position:relative;z-index:1000000}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{display:flex;height:62px;padding:16px 30px;justify-content:space-between;align-items:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-title{font-size:18px;font-weight:700;color:#444444}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close{cursor:pointer;width:12px;height:12px;display:flex;justify-content:center;align-items:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close svg{fill:#BBBBBB;width:12px;height:12px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-close:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:300px;background-color:#dedede;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{display:none;width:100%;height:auto;position:relative;overflow:hidden;justify-content:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview video{max-width:100%;height:auto;width:auto}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview .wpforms-camera-captured-photo{max-width:100%;height:auto;width:auto}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas{min-height:0;width:100%;height:100%;display:block}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-shade{outline-style:solid;outline-color:rgba(0,0,0,0.75)}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-image{max-width:100%;max-height:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle::after{width:8px !important;height:8px !important}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-selection{min-width:auto}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle{background-color:transparent;height:15px;position:absolute;width:15px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-handle[action=move]{height:100%;left:0;top:0;width:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-grid{position:absolute}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview cropper-canvas cropper-grid[bordered]{border:2px solid #fff !important}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-error{display:none;padding:20px;text-align:center;color:#d63637;font-size:16px;line-height:1.5}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{height:78px;min-height:78px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e6e9ec}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-text{font-size:14px;color:#555}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{display:flex;width:100%;justify-content:space-between;align-items:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions button{border:none;outline:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture{width:48px;height:48px;border-radius:50%;background-color:#036AAB;display:flex;align-items:center;justify-content:center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:hover,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:focus{outline:none;background-color:#215d8f}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture:disabled{opacity:.5;cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown{position:absolute;left:50%;transform:translateX(-50%)}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{display:none;position:absolute;right:20px;width:24px;height:24px;background:url(../../../pro/images/camera-rotate.svg) no-repeat center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#999999;font-size:24px;font-weight:500}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown svg{position:absolute;top:0;left:0;width:48px;height:48px;transform:rotate(-90deg)}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle{cx:24px;cy:24px;r:calc((48px - 4px) / 2);stroke-width:4px;fill:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle.bg{stroke:#dedede}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown circle.progress{stroke:#036AAB;stroke-linecap:round;transform-origin:24px 24px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown.animate circle.progress{animation:wpforms-camera-countdown 3s linear forwards}@keyframes wpforms-camera-countdown{0%{stroke-dasharray:0 calc(calc((48px - 4px) / 2) * 3.14159 * 2)}100%{stroke-dasharray:calc(calc((48px - 4px) / 2) * 3.14159 * 2) 0}}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons{display:flex;width:100%;justify-content:space-between;align-items:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button{border:none;outline:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons button:focus{outline:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel{width:24px;height:24px;background:url(../../../pro/images/camera.svg) no-repeat center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop{font-size:15px;padding:0 15px;background-color:#036AAB;color:#fff;border-radius:3px;height:41px;font-weight:500;line-height:100%;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept:hover,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept:focus,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop:hover,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop:focus{background-color:#215d8f}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop{visibility:hidden;width:24px;height:24px;background:url(../../../pro/images/crop.svg) no-repeat center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop-cancel{width:24px;height:24px;background:url(../../../pro/images/cancel.svg) no-repeat center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-crop-cancel:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel-video{width:24px;height:24px;background:url(../../../pro/images/trash.svg) no-repeat center;cursor:pointer}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-cancel-video:hover{opacity:.75}.et-db #et-boc .et-l .et_pb_module body.wpforms-camera-modal-open{overflow:hidden;position:fixed;width:100%}@media only screen and (max-width: 767px) and (orientation: portrait){.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal{height:75vh;max-height:75vh;width:90vw;max-width:90vw}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{padding:20px 16px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:0;height:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{height:auto;width:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{padding:0 20px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip.wpforms-camera-flip-active{display:block}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{position:static}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video .wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{text-align:left}}@media only screen and (max-width: 1024px) and (orientation: landscape){.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal{flex-direction:row;width:80vw;max-width:90vw;height:75vh;max-height:75vh}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content{min-height:0;height:100%;flex-grow:1}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview{height:auto;width:auto}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-content .wpforms-camera-preview .wpforms-camera-captured-photo{object-fit:cover}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header{flex-direction:column-reverse;height:100%;padding:20px 16px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-header .wpforms-camera-modal-title{writing-mode:vertical-lr;transform:rotate(180deg);text-align:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer{height:100%;flex-direction:row;padding:20px 0;width:78px;min-width:78px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{justify-content:center;display:flex;flex-direction:column-reverse}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:relative;left:auto;transform:none}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{left:calc(100% - 52px);top:20px}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip.wpforms-camera-flip-active{display:block}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons{flex-direction:column-reverse;height:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-buttons .wpforms-camera-accept-crop{transform:rotate(-90deg);transform-origin:center;width:max-content}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview{max-height:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview video{max-height:100%;object-fit:cover}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-preview .wpforms-camera-captured-photo{object-fit:cover}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions{height:100%}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-capture,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-countdown,.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-stop{position:absolute;left:auto;top:50%;transform:translateY(-50%)}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-flip{position:static}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown{min-width:auto}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown span{text-align:center}.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal-overlay.wpforms-camera-format-video div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-modal-actions .wpforms-camera-video-countdown div{display:none !important}}@media only screen and (max-width: 767px){.et-db #et-boc .et-l .et_pb_module body div.wpforms-container-full div.wpforms-camera-modal .wpforms-camera-modal-footer .wpforms-camera-video-countdown div{display:none !important}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices label input{top:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-modern li{margin:5px 5px 5px 5px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error){background-color:#fff;display:block;margin:0 auto;border:1px solid #fff;border-radius:3px;padding:20px 20px 18px 20px;transition:all 0.5s;text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error):hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:not(.wpforms-error):focus{border:1px solid #ddd}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#fff;background:green;opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error){background-color:#fff;display:block;margin:0 auto;border:2px solid #fff;padding:10px;text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error):hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:not(.wpforms-error):focus{border-color:#ddd}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic li:has(input:checked) label{border-color:#666 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices *{box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices+.wpforms-field-description,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator{margin:0 0 20px 0;overflow:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles{border-top:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;padding:15px 10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{float:left;margin:0 20px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page:last-of-type{margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{height:40px;width:40px;border-radius:50%;display:inline-block;margin:0 10px 0 0;line-height:40px;text-align:center;background-color:#ddd;color:#666}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .active .wpforms-page-indicator-page-number{color:#fff}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{float:left;text-align:center;font-size:16px;line-height:1.2}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:block;text-indent:-9999px;height:6px;background-color:#ddd;margin:0 0 16px 0;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-triangle{position:absolute;top:100%;left:50%;width:0;height:0;margin-left:-5px;border-style:solid;border-width:6px 5px 0 5px;border-color:transparent transparent transparent transparent}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:inline-block;padding:0 15px;font-size:16px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress{font-size:18px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{display:block;width:100%;background-color:#ddd;height:18px;border-radius:10px;overflow:hidden;position:relative;margin:5px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress{height:18px;position:absolute;left:0;top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-select select>option{color:inherit}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-select select>option.placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-select select>option[disabled]{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:0}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:10px 8px}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option{padding:8px 10px;box-shadow:0 1px 0 0 rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option.placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option[disabled]{box-shadow:0 1px 0 0 rgba(0,0,0,0.2)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select[multiple]>option:checked{background-color:lightgrey}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-classic select{text-indent:2px}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices{font-size:16px;color:#333}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices .choices__list--single{font-size:1em;line-height:normal}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices.is-open.is-flipped .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 2px 2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices.is-open .choices__inner{border-radius:2px 2px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices .choices__inner{min-height:38px;line-height:38px;border-radius:2px;padding-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices input.choices__input{display:inline-block;height:auto;line-height:1.3}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices ::-webkit-input-placeholder{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices ::-moz-placeholder{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .choices :-ms-input-placeholder{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty+.choices__input{min-width:100% !important;text-overflow:ellipsis;padding-right:4px !important;margin-bottom:1px !important;white-space:nowrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner input[disabled]{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice{background-color:#fff;border:1px solid #ddd;border-left-width:12px;color:#333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;outline:none;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete:after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice a{text-decoration:underline}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice p{margin:0 0 20px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice p:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info{border-color:#3273dc}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success{border-color:#23d160}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning{border-color:#ffdd57}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error{border-color:#ff3860}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-actions{margin-top:20px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice .wpforms-notice-action:active{color:#fff}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#ff3860}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-small.wp-editor-area{height:100px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium.wp-editor-area{height:250px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-large.wp-editor-area{height:400px}.et-db #et-boc .et-l .et_pb_module .wpforms-preview-notice-links{line-height:2.4}.et-db #et-boc .et-l .et_pb_module .wpforms-preview-notice{background-color:#fcf9e8;border:1px solid #f5e6ab;padding:15px;box-sizing:border-box;font-size:16px}.et-db #et-boc .et-l .et_pb_module .wpforms-preview-notice p{margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full{margin:24px auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form h3{font-size:24px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-hidden{display:none;padding:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0) !important;height:1px !important;width:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;word-wrap:normal !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-limit-text{font-size:13px;display:block}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-field-phone input[type=tel]{direction:ltr;unicode-bidi:embed;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container-full .wpforms-form .wpforms-first{float:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container-full .wpforms-form .wpforms-first+.wpforms-one-half{margin-right:4%;margin-left:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container ul li{list-style:inside !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container ol li{list-style:inside decimal !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container a{text-decoration:underline !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container del{text-decoration:line-through !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container blockquote{padding-left:20px;border-left:4px solid;font-style:italic}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container{display:block;max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container *,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container *,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .size-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .size-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-field-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .size-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .size-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .size-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-field-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .size-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container{font-size:16px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:color-mix(in srgb, currentColor 25%, transparent)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total),.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total),.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td:not(.wpforms-order-summary-preview-total){color:color-mix(in srgb, currentColor 50%, transparent);border-color:color-mix(in srgb, currentColor 50%, transparent)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#990000;border-color:color-mix(in srgb, black 25%, transparent)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:currentColor;border-color:color-mix(in srgb, currentColor 25%, transparent)}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container{max-width:100%;margin-bottom:24px}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container tr td{color:color-mix(in srgb, currentColor 75%, transparent)}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-camera-link,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field label,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-field{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.inline-fields .wpforms-form .wpforms-submit-container{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field>*{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-mobile-full{width:100% !important;margin-left:0 !important;float:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-list-3-columns ul li{float:none;width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{margin:0 10px 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{margin:20px 0 15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{width:30px;height:30px}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-base.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-base.min.css new file mode 100644 index 0000000..fea1fa3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-base.min.css @@ -0,0 +1 @@ +.wpforms-container .wpforms-error-container,.wpforms-container .wpforms-error-noscript{color:#D63637}.wpforms-container .wpforms-error-styled-container{padding:15px 0}.wpforms-container .wpforms-error-styled-container p{margin:0}.wpforms-container .wpforms-error-styled-container+.wpforms-submit-container{margin-top:10px}.wpforms-container label.wpforms-error,.wpforms-container em.wpforms-error{display:block;color:#D63637;font-size:0.9em;font-style:normal;cursor:default;min-width:120px}.wpforms-container .wpforms-field input.wpforms-error,.wpforms-container .wpforms-field input.user-invalid,.wpforms-container .wpforms-field textarea.wpforms-error,.wpforms-container .wpforms-field textarea.user-invalid,.wpforms-container .wpforms-field select.wpforms-error,.wpforms-container .wpforms-field select.user-invalid{border:1px solid #D63637}.wpforms-container .wpforms-field input[type=checkbox].wpforms-error,.wpforms-container .wpforms-field input[type=checkbox].user-invalid,.wpforms-container .wpforms-field input[type=radio].wpforms-error,.wpforms-container .wpforms-field input[type=radio].user-invalid{border:none}.wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #D63637}.wpforms-container .wpforms-error-alert,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-alert{border:1px solid rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-error-alert{color:#D63637;background-color:#f2dede;border-color:#f2dede}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.wpforms-container .wpforms-recaptcha-container{padding:0;clear:both}.wpforms-container .wpforms-recaptcha-container iframe{display:block;width:100%;max-width:100%}.wpforms-container .wpforms-recaptcha-container .g-recaptcha,.wpforms-container .wpforms-recaptcha-container .h-captcha,.wpforms-container .wpforms-recaptcha-container .cf-turnstile{padding:10px 0 0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile.wpforms-is-turnstile-invisible{padding:0;height:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile iframe{position:relative !important;visibility:inherit !important}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .cf-turnstile{padding:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .wpforms-error:first-of-type{margin-top:10px}.wpforms-container amp-img>img{position:absolute}.wpforms-container .amp-form-submit-success .wpforms-field-container,.wpforms-container .amp-form-submit-success .wpforms-submit-container{display:none}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}body.rtl .wpforms-container .wpforms-form input[type=tel]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=email]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=email]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=number]::-webkit-textfield-decoration-container{flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-datepicker-wrap .wpforms-datepicker-clear{right:auto;left:10px}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .ui-timepicker-list li{padding:3px 5px 3px 0 !important}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-field-medium+.wpforms-datepicker-clear{left:calc( 40% + 10px);right:auto}body.rtl .wpforms-container .wpforms-form .wpforms-field-file-upload .dz-remove{right:auto;left:0}body.rtl .wpforms-container .wpforms-form .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{margin-left:0;margin-right:10px}body.rtl .ui-timepicker-list li{padding:3px 5px 3px 0}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-email .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-address .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-password .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-name .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive-name-field}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row-responsive{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}@container wpforms-field-row-responsive-name-field (max-width: 260px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns,.wpforms-container .wpforms-form .wpforms-list-2-columns{container-type:inline-size;container-name:wpforms-field-2-columns-responsive}@container wpforms-field-2-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-form .wpforms-list-2-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-form .wpforms-list-2-columns ul li{width:100%}}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns,.wpforms-container .wpforms-form .wpforms-list-3-columns{container-type:inline-size;container-name:wpforms-field-3-columns-responsive}@container wpforms-field-3-columns-responsive (max-width: 480px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@container wpforms-field-3-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@media only screen and (max-width: 600px){div.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}div.wpforms-container .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container .wpforms-form .wpforms-mobile-full{width:100%;margin-left:0}div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{display:block;margin:0 0 10px 0}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}div.wpforms-container .wpforms-form.inline-fields .wpforms-field-container,div.wpforms-container .wpforms-form.inline-fields .wpforms-field{display:block;width:100%}div.wpforms-container .wpforms-form.inline-fields .wpforms-submit-container{width:100%}}.wpforms-container{margin-bottom:26px}.wpforms-container .wpforms-form *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-form .wpforms-field-label,.wpforms-container .wpforms-form .wpforms-field-sublabel,.wpforms-container .wpforms-form .wpforms-field-description,.wpforms-container .wpforms-form textarea,.wpforms-container .wpforms-form li,.wpforms-container .wpforms-form th{hyphens:auto}.wpforms-container ul,.wpforms-container ul li{background:none;border:0;margin:0}.wpforms-container .wpforms-title{font-size:24px;font-weight:700;margin:0 0 10px 0}.wpforms-container .wpforms-submit-container{clear:both;position:relative}.wpforms-container .wpforms-submit-spinner{margin-inline-start:15px;display:inline-block;vertical-align:middle}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-container .wpforms-notice{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);border-left-width:12px;color:#333333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:50%;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.wpforms-container .wpforms-notice .wpforms-delete:before,.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#ffffff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.wpforms-container .wpforms-notice .wpforms-delete:hover,.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.wpforms-container .wpforms-notice a{text-decoration:underline}.wpforms-container .wpforms-notice p{margin:0 0 20px 0}.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.wpforms-container .wpforms-notice .wpforms-notice-actions{margin-top:20px}.wpforms-container .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.wpforms-container .wpforms-notice .wpforms-notice-action:hover,.wpforms-container .wpforms-notice .wpforms-notice-action:focus,.wpforms-container .wpforms-notice .wpforms-notice-action:active{color:#ffffff}.wpforms-container .wpforms-notice.wpforms-info{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-success{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.wpforms-container .wpforms-notice.wpforms-warning{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.wpforms-container .wpforms-notice.wpforms-error{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#D63637}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}.wpforms-container input.wpforms-field-medium,.wpforms-container select.wpforms-field-medium,.wpforms-container .wpforms-field-row.wpforms-field-medium,.wp-core-ui div.wpforms-container input.wpforms-field-medium,.wp-core-ui div.wpforms-container select.wpforms-field-medium,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.wpforms-container input.wpforms-field-small,.wpforms-container select.wpforms-field-small,.wpforms-container .wpforms-field-row.wpforms-field-small,.wp-core-ui div.wpforms-container input.wpforms-field-small,.wp-core-ui div.wpforms-container select.wpforms-field-small,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.wpforms-container input.wpforms-field-large,.wpforms-container select.wpforms-field-large,.wpforms-container .wpforms-field-row.wpforms-field-large,.wp-core-ui div.wpforms-container input.wpforms-field-large,.wp-core-ui div.wpforms-container select.wpforms-field-large,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.wpforms-container fieldset,.wp-core-ui div.wpforms-container fieldset{display:block;border:none;margin:0;padding:0}.wpforms-container .wpforms-field,.wp-core-ui div.wpforms-container .wpforms-field{padding:15px 0;position:relative}.wpforms-container .wpforms-field.wpforms-field-hidden,.wp-core-ui div.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.wpforms-container .wpforms-field-description,.wpforms-container .wpforms-field-limit-text,.wp-core-ui div.wpforms-container .wpforms-field-description,.wp-core-ui div.wpforms-container .wpforms-field-limit-text{font-size:0.8em;margin:5px 0 0 0;word-break:break-word;word-wrap:break-word;line-height:1.3}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.wpforms-container .wpforms-field-description-before,.wpforms-container .wpforms-field-description.before,.wp-core-ui div.wpforms-container .wpforms-field-description-before,.wp-core-ui div.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.wpforms-container .wpforms-field-label,.wp-core-ui div.wpforms-container .wpforms-field-label{display:block;font-weight:700;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-label-inline,.wp-core-ui div.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-sublabel,.wp-core-ui div.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.8em;font-weight:400;font-style:normal;min-width:120px}.wpforms-container .wpforms-field-label.wpforms-label-hide,.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide,.wp-core-ui div.wpforms-container .wpforms-field-label.wpforms-label-hide,.wp-core-ui div.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.wpforms-container .wpforms-required-label,.wp-core-ui div.wpforms-container .wpforms-required-label{color:var(--wpforms-label-error-color);font-weight:normal}.wpforms-container input[type=date],.wpforms-container input[type=datetime],.wpforms-container input[type=datetime-local],.wpforms-container input[type=email],.wpforms-container input[type=month],.wpforms-container input[type=number],.wpforms-container input[type=password],.wpforms-container input[type=range],.wpforms-container input[type=search],.wpforms-container input[type=tel],.wpforms-container input[type=text],.wpforms-container input[type=time],.wpforms-container input[type=url],.wpforms-container input[type=week],.wpforms-container select,.wpforms-container textarea,.wp-core-ui div.wpforms-container input[type=date],.wp-core-ui div.wpforms-container input[type=datetime],.wp-core-ui div.wpforms-container input[type=datetime-local],.wp-core-ui div.wpforms-container input[type=email],.wp-core-ui div.wpforms-container input[type=month],.wp-core-ui div.wpforms-container input[type=number],.wp-core-ui div.wpforms-container input[type=password],.wp-core-ui div.wpforms-container input[type=range],.wp-core-ui div.wpforms-container input[type=search],.wp-core-ui div.wpforms-container input[type=tel],.wp-core-ui div.wpforms-container input[type=text],.wp-core-ui div.wpforms-container input[type=time],.wp-core-ui div.wpforms-container input[type=url],.wp-core-ui div.wpforms-container input[type=week],.wp-core-ui div.wpforms-container select,.wp-core-ui div.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;font-family:inherit;font-style:normal;font-weight:400;margin:0}.wpforms-container input[type=date]:read-only,.wpforms-container input[type=datetime]:read-only,.wpforms-container input[type=datetime-local]:read-only,.wpforms-container input[type=email]:read-only,.wpforms-container input[type=month]:read-only,.wpforms-container input[type=number]:read-only,.wpforms-container input[type=password]:read-only,.wpforms-container input[type=range]:read-only,.wpforms-container input[type=search]:read-only,.wpforms-container input[type=tel]:read-only,.wpforms-container input[type=text]:read-only,.wpforms-container input[type=time]:read-only,.wpforms-container input[type=url]:read-only,.wpforms-container input[type=week]:read-only,.wpforms-container select:read-only,.wpforms-container textarea:read-only,.wp-core-ui div.wpforms-container input[type=date]:read-only,.wp-core-ui div.wpforms-container input[type=datetime]:read-only,.wp-core-ui div.wpforms-container input[type=datetime-local]:read-only,.wp-core-ui div.wpforms-container input[type=email]:read-only,.wp-core-ui div.wpforms-container input[type=month]:read-only,.wp-core-ui div.wpforms-container input[type=number]:read-only,.wp-core-ui div.wpforms-container input[type=password]:read-only,.wp-core-ui div.wpforms-container input[type=range]:read-only,.wp-core-ui div.wpforms-container input[type=search]:read-only,.wp-core-ui div.wpforms-container input[type=tel]:read-only,.wp-core-ui div.wpforms-container input[type=text]:read-only,.wp-core-ui div.wpforms-container input[type=time]:read-only,.wp-core-ui div.wpforms-container input[type=url]:read-only,.wp-core-ui div.wpforms-container input[type=week]:read-only,.wp-core-ui div.wpforms-container select:read-only,.wp-core-ui div.wpforms-container textarea:read-only{cursor:default}.wpforms-container textarea,.wp-core-ui div.wpforms-container textarea{resize:vertical}.wpforms-container input[type=checkbox],.wpforms-container input[type=radio],.wp-core-ui div.wpforms-container input[type=checkbox],.wp-core-ui div.wpforms-container input[type=radio]{width:16px;height:16px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline;font-style:normal;font-weight:400}.wpforms-container .wpforms-five-sixths,.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-four-fifths,.wpforms-container .wpforms-one-fifth,.wpforms-container .wpforms-one-fourth,.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-one-sixth,.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-three-fourths,.wpforms-container .wpforms-three-fifths,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths,.wpforms-container .wpforms-two-fifths,.wpforms-container .wpforms-two-sixths,.wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.wpforms-container .wpforms-one-third.wpforms-first,.wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.wpforms-container .wpforms-four-sixths.wpforms-first,.wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.wpforms-container .wpforms-field{float:none;clear:both}.wpforms-container .wpforms-field.wpforms-five-sixths,.wpforms-container .wpforms-field.wpforms-four-sixths,.wpforms-container .wpforms-field.wpforms-four-fifths,.wpforms-container .wpforms-field.wpforms-one-fifth,.wpforms-container .wpforms-field.wpforms-one-fourth,.wpforms-container .wpforms-field.wpforms-one-half,.wpforms-container .wpforms-field.wpforms-one-sixth,.wpforms-container .wpforms-field.wpforms-one-third,.wpforms-container .wpforms-field.wpforms-three-fourths,.wpforms-container .wpforms-field.wpforms-three-fifths,.wpforms-container .wpforms-field.wpforms-three-sixths,.wpforms-container .wpforms-field.wpforms-two-fourths,.wpforms-container .wpforms-field.wpforms-two-fifths,.wpforms-container .wpforms-field.wpforms-two-sixths,.wpforms-container .wpforms-field.wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-field .wpforms-field-row{align-items:start;position:relative;display:flex;justify-content:space-between;margin-bottom:15px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block{padding:0 10px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:first-child{padding-inline-start:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:last-child{padding-inline-end:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{margin-right:auto;padding-right:10px}.wpforms-container .wpforms-field .wpforms-field-row:before{content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.wpforms-container .wpforms-field .wpforms-field-row>:only-child{width:100%}.wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{float:none;margin-left:0;clear:initial}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths{width:50%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths{width:33.33333%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{width:66.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth{width:25%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths{width:75%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth{width:20%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths{width:40%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths{width:60%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths{width:80%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth{width:16.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths{width:83.33333%}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul,.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{display:grid;gap:15px 30px}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul{grid-template-columns:repeat(2, 1fr)}.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{grid-template-columns:repeat(3, 1fr)}.wpforms-container .wpforms-field .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px}.wpforms-container.inline-fields{overflow:visible}.wpforms-container.inline-fields .wpforms-form{display:flex;justify-content:space-between}.wpforms-container.inline-fields .wpforms-field-container{display:flex;justify-content:space-between;width:calc( 100% - 175px)}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field{padding-right:7px;padding-left:8px}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:first-of-type{padding-left:0}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:last-of-type{padding-right:0}.wpforms-container.inline-fields .wpforms-field-row:first-of-type .wpforms-field-row-block:first-child{padding-left:0}.wpforms-container.inline-fields .wpforms-submit-container{width:160px;padding-bottom:16px;align-self:flex-end}.wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.wpforms-container.inline-fields input.wpforms-field-medium,.wpforms-container.inline-fields select.wpforms-field-medium,.wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.wpforms-container ul.wpforms-image-choices label input{top:50%}.wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #ffffff;border-radius:3px;padding:20px;transition:all 0.5s;text-align:center}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus,.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus-within{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#ffffff;background:var(--wpforms-button-background-color, #066aab);opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px !important}.wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid transparent;padding:10px;text-align:center}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):focus{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:rgba(0,0,0,0.7)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item input{vertical-align:middle}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{display:inline-block;margin-top:5px;margin-left:10px;vertical-align:middle}.wpforms-container ul.wpforms-icon-choices,.wpforms-container ul.wpforms-icon-choices *{box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.wpforms-container ul.wpforms-icon-choices+.wpforms-field-description,.wpforms-container ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.wpforms-container ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.wpforms-container ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.wpforms-container ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.wpforms-container ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .choices .choices__inner{border-radius:3px;min-height:35px}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 3px 3px}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:3px 3px 0 0}.wpforms-container textarea{line-height:1.3}.wpforms-container textarea.wpforms-field-small{height:70px}.wpforms-container textarea.wpforms-field-medium{height:120px}.wpforms-container textarea.wpforms-field-large{height:220px}.wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#D63637}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-noscript{color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-styled-container{padding:15px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-styled-container p{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-styled-container+.wpforms-submit-container{margin-top:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container label.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container em.wpforms-error{display:block;color:#D63637;font-size:0.9em;font-style:normal;cursor:default;min-width:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field textarea.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field textarea.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field select.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field select.user-invalid{border:1px solid #D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=checkbox].wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=checkbox].user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=radio].wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=radio].user-invalid{border:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-alert{border:1px solid rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-alert{color:#D63637;background-color:#f2dede;border-color:#f2dede}.et-db #et-boc .et-l .et_pb_module div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container{padding:0;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container iframe{display:block;width:100%;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container .cf-turnstile{padding:10px 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile.wpforms-is-turnstile-invisible{padding:0;height:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile iframe{position:relative !important;visibility:inherit !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .cf-turnstile,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .cf-turnstile,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .cf-turnstile{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .wpforms-error:first-of-type,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .wpforms-error:first-of-type,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .wpforms-error:first-of-type{margin-top:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container amp-img>img{position:absolute}.et-db #et-boc .et-l .et_pb_module .wpforms-container .amp-form-submit-success .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .amp-form-submit-success .wpforms-submit-container{display:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-preview-notice-links{line-height:2.4}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=tel]{direction:ltr;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=url]{direction:ltr;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=url]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=email]{direction:ltr;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=email]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=number]::-webkit-textfield-decoration-container{flex-direction:row-reverse}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-datepicker-wrap .wpforms-datepicker-clear{right:auto;left:10px}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .ui-timepicker-list li{padding:3px 5px 3px 0 !important}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-field-medium+.wpforms-datepicker-clear{left:calc( 40% + 10px);right:auto}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-file-upload .dz-remove{right:auto;left:0}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{margin-left:0;margin-right:10px}.et-db #et-boc .et-l .et_pb_module body.rtl .ui-timepicker-list li{padding:3px 5px 3px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-email .wpforms-field-row,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-address .wpforms-field-row,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-password .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-name .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive-name-field}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row-responsive{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}@container wpforms-field-row-responsive-name-field (max-width: 260px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-2-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-2-columns{container-type:inline-size;container-name:wpforms-field-2-columns-responsive}@container wpforms-field-2-columns-responsive (max-width: 320px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-2-columns ul{grid-template-columns:1fr !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-2-columns ul li{width:100%}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns{container-type:inline-size;container-name:wpforms-field-3-columns-responsive}@container wpforms-field-3-columns-responsive (max-width: 480px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@container wpforms-field-3-columns-responsive (max-width: 320px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-mobile-full{width:100%;margin-left:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{display:block;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form.inline-fields .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form.inline-fields .wpforms-field{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form.inline-fields .wpforms-submit-container{width:100%}}.et-db #et-boc .et-l .et_pb_module .wpforms-container{margin-bottom:26px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form *{word-break:break-word;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-sublabel,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form th{hyphens:auto}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul li{background:none;border:0;margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-title{font-size:24px;font-weight:700;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-submit-container{clear:both;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-submit-spinner{margin-inline-start:15px;display:inline-block;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-hidden{display:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:before{content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:after{clear:both;content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);border-left-width:12px;color:#333333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:50%;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#ffffff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice a{text-decoration:underline}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice p{margin:0 0 20px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-actions{margin-top:20px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action:active{color:#ffffff}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info{border-color:#3273dc}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action{border-color:#3273dc}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success{border-color:#23d160}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action{border-color:#23d160}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning{border-color:#ffdd57}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action{border-color:#ffdd57}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error{border-color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action{border-color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-preview-notice-links{line-height:2.4}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container fieldset,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container fieldset{display:block;border:none;margin:0;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field{padding:15px 0;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-field-hidden,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-limit-text,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-limit-text{font-size:0.8em;margin:5px 0 0 0;word-break:break-word;word-wrap:break-word;line-height:1.3}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.wpforms-disclaimer-description p,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-label{display:block;font-weight:700;font-style:normal;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label-inline,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;font-style:normal;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-sublabel,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.8em;font-weight:400;font-style:normal;min-width:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label.wpforms-label-hide,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-label.wpforms-label-hide,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-required-label,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-required-label{color:var(--wpforms-label-error-color);font-weight:normal}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=date],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=month],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=search],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=time],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=week],.et-db #et-boc .et-l .et_pb_module .wpforms-container select,.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=date],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=email],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=month],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=number],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=password],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=range],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=search],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=tel],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=text],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=time],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=url],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=week],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;font-family:inherit;font-style:normal;font-weight:400;margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=date]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime-local]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=email]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=month]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=number]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=password]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=range]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=search]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=tel]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=text]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=time]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=url]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=week]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container select:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=date]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime-local]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=email]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=month]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=number]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=password]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=range]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=search]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=tel]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=text]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=time]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=url]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=week]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container textarea:read-only{cursor:default}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container textarea{resize:vertical}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=radio],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=radio]{width:16px;height:16px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline;font-style:normal;font-weight:400}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third.wpforms-first,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths.wpforms-first,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field{float:none;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-thirds{float:left;margin-left:20px;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row{align-items:start;position:relative;display:flex;justify-content:space-between;margin-bottom:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block{padding:0 10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:first-child{padding-inline-start:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:last-child{padding-inline-end:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{margin-right:auto;padding-right:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:before{content:"";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:after{clear:both;content:"";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row>:only-child{width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{float:none;margin-left:0;clear:initial}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths{width:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths{width:33.33333%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{width:66.66667%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth{width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths{width:75%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth{width:20%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths{width:40%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths{width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths{width:80%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth{width:16.66667%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths{width:83.33333%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-3-columns ul{display:grid;gap:15px 30px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-2-columns ul{grid-template-columns:repeat(2, 1fr)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-3-columns ul{grid-template-columns:repeat(3, 1fr)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields{overflow:visible}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-form{display:flex;justify-content:space-between}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container{display:flex;justify-content:space-between;width:calc( 100% - 175px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container .wpforms-field{padding-right:7px;padding-left:8px}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container .wpforms-field:first-of-type{padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container .wpforms-field:last-of-type{padding-right:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-row:first-of-type .wpforms-field-row-block:first-child{padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit-container{width:160px;padding-bottom:16px;align-self:flex-end}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-image-choices label input{top:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #ffffff;border-radius:3px;padding:20px;transition:all 0.5s;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus-within{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#ffffff;background:var(--wpforms-button-background-color, #066aab);opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid transparent;padding:10px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):focus{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:rgba(0,0,0,0.7)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item input{vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{display:inline-block;margin-top:5px;margin-left:10px;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices *{box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices+.wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices .choices__inner{border-radius:3px;min-height:35px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 3px 3px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:3px 3px 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea{line-height:1.3}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-small{height:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-medium{height:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-large{height:220px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .size-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .size-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-camera-link,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field label,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-full.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-full.min.css new file mode 100644 index 0000000..cd80351 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/divi/wpforms-modern-full.min.css @@ -0,0 +1 @@ +.wpforms-container .wpforms-error-container,.wpforms-container .wpforms-error-noscript{color:#D63637}.wpforms-container .wpforms-error-styled-container{padding:15px 0}.wpforms-container .wpforms-error-styled-container p{margin:0}.wpforms-container .wpforms-error-styled-container+.wpforms-submit-container{margin-top:10px}.wpforms-container label.wpforms-error,.wpforms-container em.wpforms-error{display:block;color:#D63637;font-size:0.9em;font-style:normal;cursor:default;min-width:120px}.wpforms-container .wpforms-field input.wpforms-error,.wpforms-container .wpforms-field input.user-invalid,.wpforms-container .wpforms-field textarea.wpforms-error,.wpforms-container .wpforms-field textarea.user-invalid,.wpforms-container .wpforms-field select.wpforms-error,.wpforms-container .wpforms-field select.user-invalid{border:1px solid #D63637}.wpforms-container .wpforms-field input[type=checkbox].wpforms-error,.wpforms-container .wpforms-field input[type=checkbox].user-invalid,.wpforms-container .wpforms-field input[type=radio].wpforms-error,.wpforms-container .wpforms-field input[type=radio].user-invalid{border:none}.wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #D63637}.wpforms-container .wpforms-error-alert,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-alert{border:1px solid rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.wpforms-container .wpforms-error-alert{color:#D63637;background-color:#f2dede;border-color:#f2dede}div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.wpforms-container .wpforms-recaptcha-container{padding:0;clear:both}.wpforms-container .wpforms-recaptcha-container iframe{display:block;width:100%;max-width:100%}.wpforms-container .wpforms-recaptcha-container .g-recaptcha,.wpforms-container .wpforms-recaptcha-container .h-captcha,.wpforms-container .wpforms-recaptcha-container .cf-turnstile{padding:10px 0 0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile.wpforms-is-turnstile-invisible{padding:0;height:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile iframe{position:relative !important;visibility:inherit !important}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .cf-turnstile,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .g-recaptcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .h-captcha,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .cf-turnstile{padding:0}.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .wpforms-error:first-of-type,.wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .wpforms-error:first-of-type{margin-top:10px}.wpforms-container amp-img>img{position:absolute}.wpforms-container .amp-form-submit-success .wpforms-field-container,.wpforms-container .amp-form-submit-success .wpforms-submit-container{display:none}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}body.rtl .wpforms-container .wpforms-form input[type=tel]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=url]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=email]{direction:ltr;text-align:right}body.rtl .wpforms-container .wpforms-form input[type=email]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form input[type=number]::-webkit-textfield-decoration-container{flex-direction:row-reverse}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-datepicker-wrap .wpforms-datepicker-clear{right:auto;left:10px}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .ui-timepicker-list li{padding:3px 5px 3px 0 !important}body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-field-medium+.wpforms-datepicker-clear{left:calc( 40% + 10px);right:auto}body.rtl .wpforms-container .wpforms-form .wpforms-field-file-upload .dz-remove{right:auto;left:0}body.rtl .wpforms-container .wpforms-form .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{margin-left:0;margin-right:10px}body.rtl .ui-timepicker-list li{padding:3px 5px 3px 0}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-email .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-address .wpforms-field-row,.wpforms-container .wpforms-form .wpforms-field.wpforms-field-password .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}.wpforms-container .wpforms-form .wpforms-field.wpforms-field-name .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive-name-field}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row-responsive{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}@container wpforms-field-row-responsive-name-field (max-width: 260px){.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns,.wpforms-container .wpforms-form .wpforms-list-2-columns{container-type:inline-size;container-name:wpforms-field-2-columns-responsive}@container wpforms-field-2-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-form .wpforms-list-2-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.wpforms-container .wpforms-form .wpforms-list-2-columns ul li{width:100%}}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns,.wpforms-container .wpforms-form .wpforms-list-3-columns{container-type:inline-size;container-name:wpforms-field-3-columns-responsive}@container wpforms-field-3-columns-responsive (max-width: 480px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@container wpforms-field-3-columns-responsive (max-width: 320px){.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@media only screen and (max-width: 600px){div.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}div.wpforms-container .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-large,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-small,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-medium,div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-large{max-width:100%}div.wpforms-container .wpforms-form .wpforms-mobile-full{width:100%;margin-left:0}div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-2-columns ul li,div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,div.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{display:block;margin:0 0 10px 0}div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}div.wpforms-container .wpforms-form.inline-fields .wpforms-field-container,div.wpforms-container .wpforms-form.inline-fields .wpforms-field{display:block;width:100%}div.wpforms-container .wpforms-form.inline-fields .wpforms-submit-container{width:100%}}.wpforms-container{margin-bottom:26px}.wpforms-container .wpforms-form *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-form .wpforms-field-label,.wpforms-container .wpforms-form .wpforms-field-sublabel,.wpforms-container .wpforms-form .wpforms-field-description,.wpforms-container .wpforms-form textarea,.wpforms-container .wpforms-form li,.wpforms-container .wpforms-form th{hyphens:auto}.wpforms-container ul,.wpforms-container ul li{background:none;border:0;margin:0}.wpforms-container .wpforms-title{font-size:24px;font-weight:700;margin:0 0 10px 0}.wpforms-container .wpforms-submit-container{clear:both;position:relative}.wpforms-container .wpforms-submit-spinner{margin-inline-start:15px;display:inline-block;vertical-align:middle}.wpforms-container .wpforms-hidden{display:none !important}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-container .wpforms-notice{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);border-left-width:12px;color:#333333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:50%;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.wpforms-container .wpforms-notice .wpforms-delete:before,.wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#ffffff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.wpforms-container .wpforms-notice .wpforms-delete:hover,.wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.wpforms-container .wpforms-notice a{text-decoration:underline}.wpforms-container .wpforms-notice p{margin:0 0 20px 0}.wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.wpforms-container .wpforms-notice .wpforms-notice-actions{margin-top:20px}.wpforms-container .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.wpforms-container .wpforms-notice .wpforms-notice-action:hover,.wpforms-container .wpforms-notice .wpforms-notice-action:focus,.wpforms-container .wpforms-notice .wpforms-notice-action:active{color:#ffffff}.wpforms-container .wpforms-notice.wpforms-info{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action{border-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.wpforms-container .wpforms-notice.wpforms-success{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action{border-color:#23d160}.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.wpforms-container .wpforms-notice.wpforms-warning{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action{border-color:#ffdd57}.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.wpforms-container .wpforms-notice.wpforms-error{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action{border-color:#D63637}.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#D63637}.wpforms-container .wpforms-preview-notice-links{line-height:2.4}.wpforms-container input.wpforms-field-medium,.wpforms-container select.wpforms-field-medium,.wpforms-container .wpforms-field-row.wpforms-field-medium,.wp-core-ui div.wpforms-container input.wpforms-field-medium,.wp-core-ui div.wpforms-container select.wpforms-field-medium,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.wpforms-container input.wpforms-field-small,.wpforms-container select.wpforms-field-small,.wpforms-container .wpforms-field-row.wpforms-field-small,.wp-core-ui div.wpforms-container input.wpforms-field-small,.wp-core-ui div.wpforms-container select.wpforms-field-small,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.wpforms-container input.wpforms-field-large,.wpforms-container select.wpforms-field-large,.wpforms-container .wpforms-field-row.wpforms-field-large,.wp-core-ui div.wpforms-container input.wpforms-field-large,.wp-core-ui div.wpforms-container select.wpforms-field-large,.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.wpforms-container fieldset,.wp-core-ui div.wpforms-container fieldset{display:block;border:none;margin:0;padding:0}.wpforms-container .wpforms-field,.wp-core-ui div.wpforms-container .wpforms-field{padding:15px 0;position:relative}.wpforms-container .wpforms-field.wpforms-field-hidden,.wp-core-ui div.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.wpforms-container .wpforms-field-description,.wpforms-container .wpforms-field-limit-text,.wp-core-ui div.wpforms-container .wpforms-field-description,.wp-core-ui div.wpforms-container .wpforms-field-limit-text{font-size:0.8em;margin:5px 0 0 0;word-break:break-word;word-wrap:break-word;line-height:1.3}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p,.wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.wpforms-container .wpforms-field-description-before,.wpforms-container .wpforms-field-description.before,.wp-core-ui div.wpforms-container .wpforms-field-description-before,.wp-core-ui div.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.wpforms-container .wpforms-field-label,.wp-core-ui div.wpforms-container .wpforms-field-label{display:block;font-weight:700;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-label-inline,.wp-core-ui div.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;font-style:normal;word-break:break-word;word-wrap:break-word}.wpforms-container .wpforms-field-sublabel,.wp-core-ui div.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.8em;font-weight:400;font-style:normal;min-width:120px}.wpforms-container .wpforms-field-label.wpforms-label-hide,.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide,.wp-core-ui div.wpforms-container .wpforms-field-label.wpforms-label-hide,.wp-core-ui div.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.wpforms-container .wpforms-required-label,.wp-core-ui div.wpforms-container .wpforms-required-label{color:var(--wpforms-label-error-color);font-weight:normal}.wpforms-container input[type=date],.wpforms-container input[type=datetime],.wpforms-container input[type=datetime-local],.wpforms-container input[type=email],.wpforms-container input[type=month],.wpforms-container input[type=number],.wpforms-container input[type=password],.wpforms-container input[type=range],.wpforms-container input[type=search],.wpforms-container input[type=tel],.wpforms-container input[type=text],.wpforms-container input[type=time],.wpforms-container input[type=url],.wpforms-container input[type=week],.wpforms-container select,.wpforms-container textarea,.wp-core-ui div.wpforms-container input[type=date],.wp-core-ui div.wpforms-container input[type=datetime],.wp-core-ui div.wpforms-container input[type=datetime-local],.wp-core-ui div.wpforms-container input[type=email],.wp-core-ui div.wpforms-container input[type=month],.wp-core-ui div.wpforms-container input[type=number],.wp-core-ui div.wpforms-container input[type=password],.wp-core-ui div.wpforms-container input[type=range],.wp-core-ui div.wpforms-container input[type=search],.wp-core-ui div.wpforms-container input[type=tel],.wp-core-ui div.wpforms-container input[type=text],.wp-core-ui div.wpforms-container input[type=time],.wp-core-ui div.wpforms-container input[type=url],.wp-core-ui div.wpforms-container input[type=week],.wp-core-ui div.wpforms-container select,.wp-core-ui div.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;font-family:inherit;font-style:normal;font-weight:400;margin:0}.wpforms-container input[type=date]:read-only,.wpforms-container input[type=datetime]:read-only,.wpforms-container input[type=datetime-local]:read-only,.wpforms-container input[type=email]:read-only,.wpforms-container input[type=month]:read-only,.wpforms-container input[type=number]:read-only,.wpforms-container input[type=password]:read-only,.wpforms-container input[type=range]:read-only,.wpforms-container input[type=search]:read-only,.wpforms-container input[type=tel]:read-only,.wpforms-container input[type=text]:read-only,.wpforms-container input[type=time]:read-only,.wpforms-container input[type=url]:read-only,.wpforms-container input[type=week]:read-only,.wpforms-container select:read-only,.wpforms-container textarea:read-only,.wp-core-ui div.wpforms-container input[type=date]:read-only,.wp-core-ui div.wpforms-container input[type=datetime]:read-only,.wp-core-ui div.wpforms-container input[type=datetime-local]:read-only,.wp-core-ui div.wpforms-container input[type=email]:read-only,.wp-core-ui div.wpforms-container input[type=month]:read-only,.wp-core-ui div.wpforms-container input[type=number]:read-only,.wp-core-ui div.wpforms-container input[type=password]:read-only,.wp-core-ui div.wpforms-container input[type=range]:read-only,.wp-core-ui div.wpforms-container input[type=search]:read-only,.wp-core-ui div.wpforms-container input[type=tel]:read-only,.wp-core-ui div.wpforms-container input[type=text]:read-only,.wp-core-ui div.wpforms-container input[type=time]:read-only,.wp-core-ui div.wpforms-container input[type=url]:read-only,.wp-core-ui div.wpforms-container input[type=week]:read-only,.wp-core-ui div.wpforms-container select:read-only,.wp-core-ui div.wpforms-container textarea:read-only{cursor:default}.wpforms-container textarea,.wp-core-ui div.wpforms-container textarea{resize:vertical}.wpforms-container input[type=checkbox],.wpforms-container input[type=radio],.wp-core-ui div.wpforms-container input[type=checkbox],.wp-core-ui div.wpforms-container input[type=radio]{width:16px;height:16px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline;font-style:normal;font-weight:400}.wpforms-container .wpforms-five-sixths,.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-four-fifths,.wpforms-container .wpforms-one-fifth,.wpforms-container .wpforms-one-fourth,.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-one-sixth,.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-three-fourths,.wpforms-container .wpforms-three-fifths,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths,.wpforms-container .wpforms-two-fifths,.wpforms-container .wpforms-two-sixths,.wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-one-half,.wpforms-container .wpforms-three-sixths,.wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.wpforms-container .wpforms-one-third,.wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.wpforms-container .wpforms-one-third.wpforms-first,.wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.wpforms-container .wpforms-four-sixths,.wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.wpforms-container .wpforms-four-sixths.wpforms-first,.wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.wpforms-container .wpforms-field{float:none;clear:both}.wpforms-container .wpforms-field.wpforms-five-sixths,.wpforms-container .wpforms-field.wpforms-four-sixths,.wpforms-container .wpforms-field.wpforms-four-fifths,.wpforms-container .wpforms-field.wpforms-one-fifth,.wpforms-container .wpforms-field.wpforms-one-fourth,.wpforms-container .wpforms-field.wpforms-one-half,.wpforms-container .wpforms-field.wpforms-one-sixth,.wpforms-container .wpforms-field.wpforms-one-third,.wpforms-container .wpforms-field.wpforms-three-fourths,.wpforms-container .wpforms-field.wpforms-three-fifths,.wpforms-container .wpforms-field.wpforms-three-sixths,.wpforms-container .wpforms-field.wpforms-two-fourths,.wpforms-container .wpforms-field.wpforms-two-fifths,.wpforms-container .wpforms-field.wpforms-two-sixths,.wpforms-container .wpforms-field.wpforms-two-thirds{float:left;margin-left:20px;clear:none}.wpforms-container .wpforms-field .wpforms-field-row{align-items:start;position:relative;display:flex;justify-content:space-between;margin-bottom:15px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block{padding:0 10px}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:first-child{padding-inline-start:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:last-child{padding-inline-end:0}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{margin-right:auto;padding-right:10px}.wpforms-container .wpforms-field .wpforms-field-row:before{content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:after{clear:both;content:"";display:table}.wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.wpforms-container .wpforms-field .wpforms-field-row>:only-child{width:100%}.wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{float:none;margin-left:0;clear:initial}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths{width:50%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths{width:33.33333%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{width:66.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth{width:25%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths{width:75%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth{width:20%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths{width:40%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths{width:60%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths{width:80%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth{width:16.66667%}.wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths{width:83.33333%}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul,.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{display:grid;gap:15px 30px}.wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.wpforms-container .wpforms-field .wpforms-list-2-columns ul{grid-template-columns:repeat(2, 1fr)}.wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.wpforms-container .wpforms-field .wpforms-list-3-columns ul{grid-template-columns:repeat(3, 1fr)}.wpforms-container .wpforms-field .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px}.wpforms-container.inline-fields{overflow:visible}.wpforms-container.inline-fields .wpforms-form{display:flex;justify-content:space-between}.wpforms-container.inline-fields .wpforms-field-container{display:flex;justify-content:space-between;width:calc( 100% - 175px)}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field{padding-right:7px;padding-left:8px}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:first-of-type{padding-left:0}.wpforms-container.inline-fields .wpforms-field-container .wpforms-field:last-of-type{padding-right:0}.wpforms-container.inline-fields .wpforms-field-row:first-of-type .wpforms-field-row-block:first-child{padding-left:0}.wpforms-container.inline-fields .wpforms-submit-container{width:160px;padding-bottom:16px;align-self:flex-end}.wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.wpforms-container.inline-fields input.wpforms-field-medium,.wpforms-container.inline-fields select.wpforms-field-medium,.wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.wpforms-container ul.wpforms-image-choices label input{top:50%}.wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #ffffff;border-radius:3px;padding:20px;transition:all 0.5s;text-align:center}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus,.wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus-within{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#ffffff;background:var(--wpforms-button-background-color, #066aab);opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px !important}.wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid transparent;padding:10px;text-align:center}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):focus{border:1px solid rgba(0,0,0,0.25)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:rgba(0,0,0,0.7)}.wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item img{display:inline-block;margin:0 auto;max-width:100%}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item input{vertical-align:middle}.wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{display:inline-block;margin-top:5px;margin-left:10px;vertical-align:middle}.wpforms-container-full ul.wpforms-icon-choices,.wpforms-container-full ul.wpforms-icon-choices *{box-sizing:border-box}.wpforms-container-full ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.wpforms-container-full ul.wpforms-icon-choices+.wpforms-field-description,.wpforms-container-full ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.wpforms-container-full ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.wpforms-container-full ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.wpforms-container-full ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.wpforms-container-full ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .choices .choices__inner{border-radius:3px;min-height:35px}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 3px 3px}.wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:3px 3px 0 0}.wpforms-container textarea{line-height:1.3}.wpforms-container textarea.wpforms-field-small{height:70px}.wpforms-container textarea.wpforms-field-medium{height:120px}.wpforms-container textarea.wpforms-field-large{height:220px}.wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.wpforms-container .size-large>.wpforms-order-summary-container,.wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.wpforms-container .size-medium>.wpforms-order-summary-container,.wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#D63637}.wpforms-field.wpf-disable-field select,.wpforms-field.wpf-disable-field textarea,.wpforms-field.wpf-disable-field button,.wpforms-field.wpf-disable-field input[type=text],.wpforms-field.wpf-disable-field input[type=number],.wpforms-field.wpf-disable-field input[type=email],.wpforms-field.wpf-disable-field input[type=url],.wpforms-field.wpf-disable-field input[type=tel],.wpforms-field.wpf-disable-field input[type=password],.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpf-disable-field input[type=range],.wpforms-field.wpf-disable-field input[type=file],.wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.wpforms-field.wpf-disable-field .wpforms-uploader,.wpforms-field.wpf-disable-field .choices,.wpforms-field.wpf-disable-field .wpforms-image-choices-image,.wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.wpforms-field.wpf-disable-field .mce-tinymce,.wpforms-field.wpf-disable-field .iti__selected-country,.wpforms-field.wpf-disable-field .StripeElement,.wpforms-field.wpf-disable-field .wpforms-stripe-element,.wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.wpforms-field.wpf-disable-field .wpforms-geolocation-map,.wpforms-field.wpf-disable-field .wpforms-signature-wrap,.wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpf-disable-field .wpforms-camera-link,.wpforms-field.wpforms-field-readonly select,.wpforms-field.wpforms-field-readonly textarea,.wpforms-field.wpforms-field-readonly button,.wpforms-field.wpforms-field-readonly input[type=text],.wpforms-field.wpforms-field-readonly input[type=number],.wpforms-field.wpforms-field-readonly input[type=email],.wpforms-field.wpforms-field-readonly input[type=url],.wpforms-field.wpforms-field-readonly input[type=tel],.wpforms-field.wpforms-field-readonly input[type=password],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=range],.wpforms-field.wpforms-field-readonly input[type=file],.wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.wpforms-field.wpforms-field-readonly .wpforms-uploader,.wpforms-field.wpforms-field-readonly .choices,.wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.wpforms-field.wpforms-field-readonly .mce-tinymce,.wpforms-field.wpforms-field-readonly .iti__selected-country,.wpforms-field.wpforms-field-readonly .StripeElement,.wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.wpforms-field.wpf-disable-field input[type=radio],.wpforms-field.wpf-disable-field input[type=checkbox],.wpforms-field.wpforms-field-readonly input[type=radio],.wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.wpforms-field.wpf-disable-field label,.wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.wpforms-field.wpf-disable-field .iti__country-container,.wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.wpforms-field.wpf-disable-field .iti__country-container button,.wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}div.wpforms-container-full,div.wpforms-container-full *,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full *{background:none;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;outline:none;position:static;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}div.wpforms-container-full img,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full img,div.wpforms-container-full video,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full video,div.wpforms-container-full canvas,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full canvas,div.wpforms-container-full svg,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full svg{overflow:clip}div.wpforms-container-full{margin-left:auto;margin-right:auto}div.wpforms-container-full:not(:empty){margin:24px auto;padding:var(--wpforms-container-padding);background-clip:padding-box;background-color:var(--wpforms-background-color);background-image:var(--wpforms-background-url);background-position:var(--wpforms-background-position);background-repeat:var(--wpforms-background-repeat);background-size:var(--wpforms-background-size);border-style:var(--wpforms-container-border-style);border-width:var(--wpforms-container-border-width);border-color:var(--wpforms-container-border-color);border-radius:var(--wpforms-container-border-radius);box-shadow:var(--wpforms-container-shadow-size-box-shadow)}div.wpforms-container-full input,div.wpforms-container-full label,div.wpforms-container-full select,div.wpforms-container-full button,div.wpforms-container-full textarea{margin:0;border:0;padding:0;vertical-align:middle;background:none;height:auto;box-sizing:border-box}div.wpforms-container-full h1,div.wpforms-container-full h2,div.wpforms-container-full h3,div.wpforms-container-full h4,div.wpforms-container-full h5,div.wpforms-container-full h6,div.wpforms-container-full small,div.wpforms-container-full sup,div.wpforms-container-full sub,div.wpforms-container-full dl,div.wpforms-container-full dt,div.wpforms-container-full dd,div.wpforms-container-full time,div.wpforms-container-full address,div.wpforms-container-full pre,div.wpforms-container-full code,div.wpforms-container-full blockquote,div.wpforms-container-full sup,div.wpforms-container-full sub,div.wpforms-container-full del{font-size:revert;font-weight:revert;margin:revert;padding:revert}div.wpforms-container-full sup,div.wpforms-container-full sub{position:relative}div.wpforms-container-full del{text-decoration:line-through}div.wpforms-container-full blockquote{padding-left:20px;border-left:4px solid}div.wpforms-container-full blockquote p{font-size:revert;font-weight:revert;font-style:italic}div.wpforms-container-full ul,div.wpforms-container-full ul li{background:none;border:0;margin:0;padding:0}div.wpforms-container-full ul li{margin-bottom:15px}div.wpforms-container-full ul li:last-of-type{margin-bottom:0}div.wpforms-container-full hr{border-top-width:var(--wpforms-field-border-size);border-top-style:var(--wpforms-field-border-style);border-top-color:var(--wpforms-field-border-color);margin:0.5em auto}div.wpforms-container-full fieldset{min-width:0}div.wpforms-container-full .wpforms-form .wpforms-head-container{margin:0;padding:0 0 35px 0}div.wpforms-container-full .wpforms-form .wpforms-title{font-weight:700;line-height:29px;color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-form .wpforms-description{font-style:normal;font-weight:300;font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-form .wpforms-submit-container{margin-top:var(--wpforms-button-size-margin-top)}div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{max-width:26px}body .wpforms-test{outline:2px solid red !important}div.wpforms-container-full .wpforms-form label.wpforms-error,div.wpforms-container-full .wpforms-form em.wpforms-error{font-weight:400;font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);margin-top:var(--wpforms-field-size-input-spacing);color:var(--wpforms-label-error-color);padding:0 0 0 5px;position:relative}div.wpforms-container-full .wpforms-form label.wpforms-error:before,div.wpforms-container-full .wpforms-form em.wpforms-error:before{-webkit-mask-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2217%22%20height%3D%2215%22%20viewBox%3D%220%200%2017%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.0264%2012.3086L9.46387%200.90625C8.97168%200.0585938%207.68652%200.03125%207.19434%200.90625L0.631836%2012.3086C0.139648%2013.1562%200.768555%2014.25%201.78027%2014.25H14.8779C15.8896%2014.25%2016.5186%2013.1836%2016.0264%2012.3086ZM8.34277%209.92969C9.02637%209.92969%209.60059%2010.5039%209.60059%2011.1875C9.60059%2011.8984%209.02637%2012.4453%208.34277%2012.4453C7.63184%2012.4453%207.08496%2011.8984%207.08496%2011.1875C7.08496%2010.5039%207.63184%209.92969%208.34277%209.92969ZM7.13965%205.41797C7.1123%205.22656%207.27637%205.0625%207.46777%205.0625H9.19043C9.38184%205.0625%209.5459%205.22656%209.51855%205.41797L9.32715%209.13672C9.2998%209.32812%209.16309%209.4375%208.99902%209.4375H7.65918C7.49512%209.4375%207.3584%209.32812%207.33105%209.13672L7.13965%205.41797Z%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E%0A");mask-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2217%22%20height%3D%2215%22%20viewBox%3D%220%200%2017%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.0264%2012.3086L9.46387%200.90625C8.97168%200.0585938%207.68652%200.03125%207.19434%200.90625L0.631836%2012.3086C0.139648%2013.1562%200.768555%2014.25%201.78027%2014.25H14.8779C15.8896%2014.25%2016.5186%2013.1836%2016.0264%2012.3086ZM8.34277%209.92969C9.02637%209.92969%209.60059%2010.5039%209.60059%2011.1875C9.60059%2011.8984%209.02637%2012.4453%208.34277%2012.4453C7.63184%2012.4453%207.08496%2011.8984%207.08496%2011.1875C7.08496%2010.5039%207.63184%209.92969%208.34277%209.92969ZM7.13965%205.41797C7.1123%205.22656%207.27637%205.0625%207.46777%205.0625H9.19043C9.38184%205.0625%209.5459%205.22656%209.51855%205.41797L9.32715%209.13672C9.2998%209.32812%209.16309%209.4375%208.99902%209.4375H7.65918C7.49512%209.4375%207.3584%209.32812%207.33105%209.13672L7.13965%205.41797Z%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E%0A");content:'';position:relative;display:inline-block;right:5px;top:1.5px;width:16px;height:14px;background-color:var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-sublabel+.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field-credit-card .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid:hover{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid:focus,div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid:focus,div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid:focus{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid{border:none;box-shadow:none}div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid:focus,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error:focus,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid:hover,div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid:focus{border:none;box-shadow:none}div.wpforms-container-full .wpforms-form .wpforms-error-container{color:var(--wpforms-label-error-color);font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height)}div.wpforms-container-full .wpforms-form .wpforms-error-container ul li{list-style:inside !important}div.wpforms-container-full .wpforms-form .wpforms-error-container ol li{list-style:inside decimal !important}div.wpforms-container-full .wpforms-form .wpforms-error-container a{color:var(--wpforms-label-error-color);text-decoration:underline !important}div.wpforms-container-full .wpforms-form .wpforms-error-container a:hover{text-decoration:none !important}div.wpforms-container-full .wpforms-form .wpforms-error-container del{text-decoration:line-through !important}div.wpforms-container-full .wpforms-form .wpforms-error-container blockquote{padding-left:20px;border-left:4px solid;font-style:italic}div.wpforms-container-full .wpforms-form .wpforms-error-container.wpforms-error-styled-container{padding:15px 0}div.wpforms-container-full .wpforms-form .wpforms-error-container.wpforms-error-styled-container .wpforms-error{padding:11px;border:1px solid var(--wpforms-label-error-color);border-left:5px solid}div.wpforms-container-full .wpforms-form .wpforms-error-alert{color:var(--wpforms-label-error-color);border-color:transparent;border-radius:var(--wpforms-field-border-radius);font-size:var(--wpforms-label-size-sublabel-font-size);padding:var(--wpforms-field-size-input-spacing);background:linear-gradient(90deg, var(--wpforms-label-error-color) -3000%, transparent 500%)}div.wpforms-container-full .wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full{color:#333333;margin:0 auto 24px;padding:15px;overflow-wrap:break-word}div.wpforms-container-full .wpforms-confirmation-container-full ul,div.wpforms-container-full .wpforms-confirmation-container-full ol,div[submit-success]>.wpforms-confirmation-container-full ul,div[submit-success]>.wpforms-confirmation-container-full ol{padding-left:30px}div.wpforms-container-full .wpforms-confirmation-container-full ul li,div.wpforms-container-full .wpforms-confirmation-container-full ol li,div[submit-success]>.wpforms-confirmation-container-full ul li,div[submit-success]>.wpforms-confirmation-container-full ol li{margin-bottom:5px}div.wpforms-container-full .wpforms-confirmation-container-full p,div[submit-success]>.wpforms-confirmation-container-full p{margin:0 0 15px 0}div.wpforms-container-full .wpforms-confirmation-container-full p:last-child,div[submit-success]>.wpforms-confirmation-container-full p:last-child{margin:0}div.wpforms-container-full .wpforms-confirmation-container-full iframe,div[submit-success]>.wpforms-confirmation-container-full iframe{width:100%;border:0}div.wpforms-container-full .wpforms-confirmation-container-full,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message){background:#e0ffc7;border:1px solid #b4d39b;box-sizing:border-box}div.wpforms-container-full .wpforms-confirmation-container-full p,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p{color:#333333}div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview{color:inherit;border-color:#b4d39b}div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview td,div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview th,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview td,div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview th{border-top-color:#b4d39b}div.wpforms-container-full .wpforms-form amp-img>img{position:absolute}div.wpforms-container-full .wpforms-form .wpforms-limit-text{font-size:13px;display:block}.wpforms-screen-reader-announce{color:transparent !important;position:absolute !important;bottom:0 !important}body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{transform:rotate(180deg)}body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{margin:0 0 0 10px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{margin:0 0 0 15px}body.rtl div.wpforms-container-full .wpforms-form em.wpforms-error{padding:0 5px 0 0}body.rtl div.wpforms-container-full .wpforms-form em.wpforms-error:before{left:5px;right:auto}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices__list--single .choices__item{padding-right:0;padding-left:15px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner{padding:0 7px 0 24px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single{padding:0 4px 0 16px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"]:after{right:auto;left:12px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"]:after{right:auto;left:12px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button{right:auto;left:0;margin-right:0;margin-left:25px}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"] .choices__button{margin-right:5px;border-right:none}body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select{background-position:calc(0% + 12px) 50%,calc(0% + 17px) 50%;padding:0 12px 0 24px}div.wpforms-container-full .wpforms-field-description,div.wpforms-container-full .wpforms-field-limit-text,.wp-core-ui div.wpforms-container-full .wpforms-field-description,.wp-core-ui div.wpforms-container-full .wpforms-field-limit-text{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);color:var(--wpforms-label-sublabel-color);margin:var(--wpforms-field-size-sublabel-spacing) 0 0 0}div.wpforms-container-full .wpforms-field-description ul,div.wpforms-container-full .wpforms-field-description ol,.wp-core-ui div.wpforms-container-full .wpforms-field-description ul,.wp-core-ui div.wpforms-container-full .wpforms-field-description ol{padding-left:15px}div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description{color:var(--wpforms-field-text-color);margin-top:var(--wpforms-field-size-input-spacing);font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);background-color:var(--wpforms-field-background-color);border-radius:var(--wpforms-field-border-radius);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:var(--wpforms-field-size-padding-h)}div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description p,.wp-core-ui div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description p{color:inherit;font-size:inherit;line-height:inherit;margin-bottom:15px}div.wpforms-container-full .wpforms-field-description-before,div.wpforms-container-full .wpforms-field-description.before,.wp-core-ui div.wpforms-container-full .wpforms-field-description-before,.wp-core-ui div.wpforms-container-full .wpforms-field-description.before{margin:0 0 var(--wpforms-field-size-input-spacing) 0}div.wpforms-container-full .wpforms-field-row+.wpforms-field-description,.wp-core-ui div.wpforms-container-full .wpforms-field-row+.wpforms-field-description{margin-top:0}div.wpforms-container-full .wpforms-field-row+.wpforms-field-description.wpforms-disclaimer-description,.wp-core-ui div.wpforms-container-full .wpforms-field-row+.wpforms-field-description.wpforms-disclaimer-description{margin-top:0}div.wpforms-container-full .wpforms-field-label,.wp-core-ui div.wpforms-container-full .wpforms-field-label{margin:0 0 var(--wpforms-field-size-input-spacing) 0;padding:0;font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-field-label-inline,.wp-core-ui div.wpforms-container-full .wpforms-field-label-inline{font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height)}div.wpforms-container-full .wpforms-field-sublabel,.wp-core-ui div.wpforms-container-full .wpforms-field-sublabel{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);margin:var(--wpforms-field-size-sublabel-spacing) 0 0 0;padding:0;color:var(--wpforms-label-sublabel-color)}div.wpforms-container-full .wpforms-field-sublabel.before,.wp-core-ui div.wpforms-container-full .wpforms-field-sublabel.before{margin:0 0 var(--wpforms-field-size-sublabel-spacing) 0}div.wpforms-container-full .wpforms-field-label-inline,.wp-core-ui div.wpforms-container-full .wpforms-field-label-inline{color:var(--wpforms-label-color)}div.wpforms-container-full .wpforms-required-label,.wp-core-ui div.wpforms-container-full .wpforms-required-label{font-weight:400}div.wpforms-container-full input[type=date],div.wpforms-container-full input[type=datetime],div.wpforms-container-full input[type=datetime-local],div.wpforms-container-full input[type=email],div.wpforms-container-full input[type=month],div.wpforms-container-full input[type=number],div.wpforms-container-full input[type=password],div.wpforms-container-full input[type=range],div.wpforms-container-full input[type=search],div.wpforms-container-full input[type=tel],div.wpforms-container-full input[type=text],div.wpforms-container-full input[type=time],div.wpforms-container-full input[type=url],div.wpforms-container-full input[type=week],div.wpforms-container-full select,div.wpforms-container-full textarea,.wp-core-ui div.wpforms-container-full input[type=date],.wp-core-ui div.wpforms-container-full input[type=datetime],.wp-core-ui div.wpforms-container-full input[type=datetime-local],.wp-core-ui div.wpforms-container-full input[type=email],.wp-core-ui div.wpforms-container-full input[type=month],.wp-core-ui div.wpforms-container-full input[type=number],.wp-core-ui div.wpforms-container-full input[type=password],.wp-core-ui div.wpforms-container-full input[type=range],.wp-core-ui div.wpforms-container-full input[type=search],.wp-core-ui div.wpforms-container-full input[type=tel],.wp-core-ui div.wpforms-container-full input[type=text],.wp-core-ui div.wpforms-container-full input[type=time],.wp-core-ui div.wpforms-container-full input[type=url],.wp-core-ui div.wpforms-container-full input[type=week],.wp-core-ui div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full textarea{background-color:var(--wpforms-field-background-color);background-clip:padding-box;border-radius:var(--wpforms-field-border-radius);color:var(--wpforms-field-text-color);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:0 var(--wpforms-field-size-padding-h);font-size:var(--wpforms-field-size-font-size);line-height:100%;box-shadow:none;transition:border 0.15s, box-shadow 0.15s}div.wpforms-container-full input[type=date]:focus,div.wpforms-container-full input[type=datetime]:focus,div.wpforms-container-full input[type=datetime-local]:focus,div.wpforms-container-full input[type=email]:focus,div.wpforms-container-full input[type=month]:focus,div.wpforms-container-full input[type=number]:focus,div.wpforms-container-full input[type=password]:focus,div.wpforms-container-full input[type=range]:focus,div.wpforms-container-full input[type=search]:focus,div.wpforms-container-full input[type=tel]:focus,div.wpforms-container-full input[type=text]:focus,div.wpforms-container-full input[type=time]:focus,div.wpforms-container-full input[type=url]:focus,div.wpforms-container-full input[type=week]:focus,div.wpforms-container-full select:focus,div.wpforms-container-full textarea:focus,.wp-core-ui div.wpforms-container-full input[type=date]:focus,.wp-core-ui div.wpforms-container-full input[type=datetime]:focus,.wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus,.wp-core-ui div.wpforms-container-full input[type=email]:focus,.wp-core-ui div.wpforms-container-full input[type=month]:focus,.wp-core-ui div.wpforms-container-full input[type=number]:focus,.wp-core-ui div.wpforms-container-full input[type=password]:focus,.wp-core-ui div.wpforms-container-full input[type=range]:focus,.wp-core-ui div.wpforms-container-full input[type=search]:focus,.wp-core-ui div.wpforms-container-full input[type=tel]:focus,.wp-core-ui div.wpforms-container-full input[type=text]:focus,.wp-core-ui div.wpforms-container-full input[type=time]:focus,.wp-core-ui div.wpforms-container-full input[type=url]:focus,.wp-core-ui div.wpforms-container-full input[type=week]:focus,.wp-core-ui div.wpforms-container-full select:focus,.wp-core-ui div.wpforms-container-full textarea:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full input[type=date]:focus:invalid,div.wpforms-container-full input[type=datetime]:focus:invalid,div.wpforms-container-full input[type=datetime-local]:focus:invalid,div.wpforms-container-full input[type=email]:focus:invalid,div.wpforms-container-full input[type=month]:focus:invalid,div.wpforms-container-full input[type=number]:focus:invalid,div.wpforms-container-full input[type=password]:focus:invalid,div.wpforms-container-full input[type=range]:focus:invalid,div.wpforms-container-full input[type=search]:focus:invalid,div.wpforms-container-full input[type=tel]:focus:invalid,div.wpforms-container-full input[type=text]:focus:invalid,div.wpforms-container-full input[type=time]:focus:invalid,div.wpforms-container-full input[type=url]:focus:invalid,div.wpforms-container-full input[type=week]:focus:invalid,div.wpforms-container-full select:focus:invalid,div.wpforms-container-full textarea:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=date]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=datetime]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=email]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=month]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=number]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=password]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=range]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=search]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=tel]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=text]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=time]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=url]:focus:invalid,.wp-core-ui div.wpforms-container-full input[type=week]:focus:invalid,.wp-core-ui div.wpforms-container-full select:focus:invalid,.wp-core-ui div.wpforms-container-full textarea:focus:invalid{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;color:var(--wpforms-field-text-color)}div.wpforms-container-full input[type=date][disabled],div.wpforms-container-full input[type=datetime][disabled],div.wpforms-container-full input[type=datetime-local][disabled],div.wpforms-container-full input[type=email][disabled],div.wpforms-container-full input[type=month][disabled],div.wpforms-container-full input[type=number][disabled],div.wpforms-container-full input[type=password][disabled],div.wpforms-container-full input[type=range][disabled],div.wpforms-container-full input[type=search][disabled],div.wpforms-container-full input[type=tel][disabled],div.wpforms-container-full input[type=text][disabled],div.wpforms-container-full input[type=time][disabled],div.wpforms-container-full input[type=url][disabled],div.wpforms-container-full input[type=week][disabled],div.wpforms-container-full select[disabled],div.wpforms-container-full textarea[disabled],.wp-core-ui div.wpforms-container-full input[type=date][disabled],.wp-core-ui div.wpforms-container-full input[type=datetime][disabled],.wp-core-ui div.wpforms-container-full input[type=datetime-local][disabled],.wp-core-ui div.wpforms-container-full input[type=email][disabled],.wp-core-ui div.wpforms-container-full input[type=month][disabled],.wp-core-ui div.wpforms-container-full input[type=number][disabled],.wp-core-ui div.wpforms-container-full input[type=password][disabled],.wp-core-ui div.wpforms-container-full input[type=range][disabled],.wp-core-ui div.wpforms-container-full input[type=search][disabled],.wp-core-ui div.wpforms-container-full input[type=tel][disabled],.wp-core-ui div.wpforms-container-full input[type=text][disabled],.wp-core-ui div.wpforms-container-full input[type=time][disabled],.wp-core-ui div.wpforms-container-full input[type=url][disabled],.wp-core-ui div.wpforms-container-full input[type=week][disabled],.wp-core-ui div.wpforms-container-full select[disabled],.wp-core-ui div.wpforms-container-full textarea[disabled]{color:var(--wpforms-field-text-color);opacity:0.5}div.wpforms-container-full input[type=date]::-webkit-input-placeholder,div.wpforms-container-full input[type=datetime]::-webkit-input-placeholder,div.wpforms-container-full input[type=datetime-local]::-webkit-input-placeholder,div.wpforms-container-full input[type=email]::-webkit-input-placeholder,div.wpforms-container-full input[type=month]::-webkit-input-placeholder,div.wpforms-container-full input[type=number]::-webkit-input-placeholder,div.wpforms-container-full input[type=password]::-webkit-input-placeholder,div.wpforms-container-full input[type=range]::-webkit-input-placeholder,div.wpforms-container-full input[type=search]::-webkit-input-placeholder,div.wpforms-container-full input[type=tel]::-webkit-input-placeholder,div.wpforms-container-full input[type=text]::-webkit-input-placeholder,div.wpforms-container-full input[type=time]::-webkit-input-placeholder,div.wpforms-container-full input[type=url]::-webkit-input-placeholder,div.wpforms-container-full input[type=week]::-webkit-input-placeholder,div.wpforms-container-full select::-webkit-input-placeholder,div.wpforms-container-full textarea::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=date]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime-local]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=email]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=month]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=number]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=password]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=range]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=search]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=tel]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=text]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=time]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=url]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full input[type=week]::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full select::-webkit-input-placeholder,.wp-core-ui div.wpforms-container-full textarea::-webkit-input-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}div.wpforms-container-full input[type=date]::-moz-placeholder,div.wpforms-container-full input[type=datetime]::-moz-placeholder,div.wpforms-container-full input[type=datetime-local]::-moz-placeholder,div.wpforms-container-full input[type=email]::-moz-placeholder,div.wpforms-container-full input[type=month]::-moz-placeholder,div.wpforms-container-full input[type=number]::-moz-placeholder,div.wpforms-container-full input[type=password]::-moz-placeholder,div.wpforms-container-full input[type=range]::-moz-placeholder,div.wpforms-container-full input[type=search]::-moz-placeholder,div.wpforms-container-full input[type=tel]::-moz-placeholder,div.wpforms-container-full input[type=text]::-moz-placeholder,div.wpforms-container-full input[type=time]::-moz-placeholder,div.wpforms-container-full input[type=url]::-moz-placeholder,div.wpforms-container-full input[type=week]::-moz-placeholder,div.wpforms-container-full select::-moz-placeholder,div.wpforms-container-full textarea::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=date]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime-local]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=email]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=month]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=number]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=password]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=range]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=search]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=tel]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=text]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=time]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=url]::-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=week]::-moz-placeholder,.wp-core-ui div.wpforms-container-full select::-moz-placeholder,.wp-core-ui div.wpforms-container-full textarea::-moz-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}div.wpforms-container-full input[type=date]:-moz-placeholder,div.wpforms-container-full input[type=datetime]:-moz-placeholder,div.wpforms-container-full input[type=datetime-local]:-moz-placeholder,div.wpforms-container-full input[type=email]:-moz-placeholder,div.wpforms-container-full input[type=month]:-moz-placeholder,div.wpforms-container-full input[type=number]:-moz-placeholder,div.wpforms-container-full input[type=password]:-moz-placeholder,div.wpforms-container-full input[type=range]:-moz-placeholder,div.wpforms-container-full input[type=search]:-moz-placeholder,div.wpforms-container-full input[type=tel]:-moz-placeholder,div.wpforms-container-full input[type=text]:-moz-placeholder,div.wpforms-container-full input[type=time]:-moz-placeholder,div.wpforms-container-full input[type=url]:-moz-placeholder,div.wpforms-container-full input[type=week]:-moz-placeholder,div.wpforms-container-full select:-moz-placeholder,div.wpforms-container-full textarea:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=date]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=datetime-local]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=email]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=month]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=number]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=password]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=range]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=search]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=tel]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=text]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=time]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=url]:-moz-placeholder,.wp-core-ui div.wpforms-container-full input[type=week]:-moz-placeholder,.wp-core-ui div.wpforms-container-full select:-moz-placeholder,.wp-core-ui div.wpforms-container-full textarea:-moz-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}div.wpforms-container-full textarea,.wp-core-ui div.wpforms-container-full textarea{width:100%}div.wpforms-container-full input,div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full input,.wp-core-ui div.wpforms-container-full select{height:var(--wpforms-field-size-input-height)}div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full select{appearance:none;display:block;max-width:100%;width:100%;text-transform:none;text-shadow:none;white-space:nowrap;line-height:unset;padding-block:0;padding-inline-end:24px;padding-inline-start:12px;min-height:var(--wpforms-field-size-input-height);vertical-align:middle;cursor:pointer}div.wpforms-container-full select,div.wpforms-container-full select:disabled,.wp-core-ui div.wpforms-container-full select,.wp-core-ui div.wpforms-container-full select:disabled{background-image:linear-gradient(45deg, transparent 50%, var(--wpforms-field-border-color-spare) 50%),linear-gradient(135deg, var(--wpforms-field-border-color-spare) 50%, transparent 50%);background-position:calc( 100% - 17px) 50%,calc( 100% - 12px) 50%;background-size:5px 5px, 5px 5px;background-repeat:no-repeat}.rtl div.wpforms-container-full select,.rtl div.wpforms-container-full select:disabled,.rtl .wp-core-ui div.wpforms-container-full select,.rtl .wp-core-ui div.wpforms-container-full select:disabled{background-position:12px 50%, 17px 50%}div.wpforms-container-full select>option,.wp-core-ui div.wpforms-container-full select>option{color:var(--wpforms-field-text-color)}div.wpforms-container-full select>option.placeholder,div.wpforms-container-full select>option[disabled],.wp-core-ui div.wpforms-container-full select>option.placeholder,.wp-core-ui div.wpforms-container-full select>option[disabled]{color:var(--wpforms-field-text-color);opacity:0.5}div.wpforms-container-full select:not([multiple])>option,.wp-core-ui div.wpforms-container-full select:not([multiple])>option{background:var(--wpforms-field-menu-color)}div.wpforms-container-full select:not([multiple])>option:not(.placeholder):checked,.wp-core-ui div.wpforms-container-full select:not([multiple])>option:not(.placeholder):checked{font-weight:bold}div.wpforms-container-full select[multiple],.wp-core-ui div.wpforms-container-full select[multiple]{height:auto;overflow-y:scroll;background-image:none}div.wpforms-container-full select[multiple]>option:not(.placeholder):checked,.wp-core-ui div.wpforms-container-full select[multiple]>option:not(.placeholder):checked{background:var(--wpforms-button-background-color);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color))}div.wpforms-container-full input[type=number]:read-only,.wp-core-ui div.wpforms-container-full input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}div.wpforms-container-full input[type=number]:read-only::-webkit-inner-spin-button,.wp-core-ui div.wpforms-container-full input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}div.wpforms-container-full input[type=submit],div.wpforms-container-full button[type=submit],div.wpforms-container-full .wpforms-page-button,.wp-core-ui div.wpforms-container-full input[type=submit],.wp-core-ui div.wpforms-container-full button[type=submit],.wp-core-ui div.wpforms-container-full .wpforms-page-button{height:var(--wpforms-button-size-height);background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));border-radius:var(--wpforms-button-border-radius);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color);border-width:var(--wpforms-button-border-size);box-shadow:none;color:var(--wpforms-button-text-color);padding:0 var(--wpforms-button-size-padding-h);font-family:inherit;font-weight:500;font-size:var(--wpforms-button-size-font-size);line-height:100%;cursor:pointer;transition:all 0.15s ease-in-out;position:relative;text-decoration:none}div.wpforms-container-full input[type=submit]:not(:hover):not(:active),div.wpforms-container-full button[type=submit]:not(:hover):not(:active),div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active),.wp-core-ui div.wpforms-container-full input[type=submit]:not(:hover):not(:active),.wp-core-ui div.wpforms-container-full button[type=submit]:not(:hover):not(:active),.wp-core-ui div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active){background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));color:var(--wpforms-button-text-color)}div.wpforms-container-full input[type=submit]:hover,div.wpforms-container-full input[type=submit]:active,div.wpforms-container-full button[type=submit]:hover,div.wpforms-container-full button[type=submit]:active,div.wpforms-container-full .wpforms-page-button:hover,div.wpforms-container-full .wpforms-page-button:active,.wp-core-ui div.wpforms-container-full input[type=submit]:hover,.wp-core-ui div.wpforms-container-full input[type=submit]:active,.wp-core-ui div.wpforms-container-full button[type=submit]:hover,.wp-core-ui div.wpforms-container-full button[type=submit]:active,.wp-core-ui div.wpforms-container-full .wpforms-page-button:hover,.wp-core-ui div.wpforms-container-full .wpforms-page-button:active{background:linear-gradient(0deg, rgba(0,0,0,0.2), rgba(0,0,0,0.2)),var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color))}div.wpforms-container-full input[type=submit].wpforms-opacity-hover:hover,div.wpforms-container-full input[type=submit].wpforms-opacity-hover:active,div.wpforms-container-full button[type=submit].wpforms-opacity-hover:hover,div.wpforms-container-full button[type=submit].wpforms-opacity-hover:active,div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:hover,div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:active,.wp-core-ui div.wpforms-container-full input[type=submit].wpforms-opacity-hover:hover,.wp-core-ui div.wpforms-container-full input[type=submit].wpforms-opacity-hover:active,.wp-core-ui div.wpforms-container-full button[type=submit].wpforms-opacity-hover:hover,.wp-core-ui div.wpforms-container-full button[type=submit].wpforms-opacity-hover:active,.wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:hover,.wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:active{background:none;opacity:.75}div.wpforms-container-full input[type=submit]:focus,div.wpforms-container-full button[type=submit]:focus,div.wpforms-container-full .wpforms-page-button:focus,.wp-core-ui div.wpforms-container-full input[type=submit]:focus,.wp-core-ui div.wpforms-container-full button[type=submit]:focus,.wp-core-ui div.wpforms-container-full .wpforms-page-button:focus{outline:none}div.wpforms-container-full input[type=submit]:focus:after,div.wpforms-container-full button[type=submit]:focus:after,div.wpforms-container-full .wpforms-page-button:focus:after,.wp-core-ui div.wpforms-container-full input[type=submit]:focus:after,.wp-core-ui div.wpforms-container-full button[type=submit]:focus:after,.wp-core-ui div.wpforms-container-full .wpforms-page-button:focus:after{content:"";position:absolute;border:2px solid var(--wpforms-button-background-color);border-radius:calc( var( --wpforms-button-border-radius ) + 2px);top:calc( -4px - var( --wpforms-button-border-size, 1px ));right:calc( -4px - var( --wpforms-button-border-size, 1px ));bottom:calc( -4px - var( --wpforms-button-border-size, 1px ));left:calc( -4px - var( --wpforms-button-border-size, 1px ))}div.wpforms-container-full input[type=submit]:disabled,div.wpforms-container-full input[type=submit]:disabled:hover,div.wpforms-container-full input[type=submit].wpforms-disabled,div.wpforms-container-full button[type=submit]:disabled,div.wpforms-container-full button[type=submit]:disabled:hover,div.wpforms-container-full button[type=submit].wpforms-disabled,div.wpforms-container-full .wpforms-page-button:disabled,div.wpforms-container-full .wpforms-page-button:disabled:hover,div.wpforms-container-full .wpforms-page-button.wpforms-disabled,.wp-core-ui div.wpforms-container-full input[type=submit]:disabled,.wp-core-ui div.wpforms-container-full input[type=submit]:disabled:hover,.wp-core-ui div.wpforms-container-full input[type=submit].wpforms-disabled,.wp-core-ui div.wpforms-container-full button[type=submit]:disabled,.wp-core-ui div.wpforms-container-full button[type=submit]:disabled:hover,.wp-core-ui div.wpforms-container-full button[type=submit].wpforms-disabled,.wp-core-ui div.wpforms-container-full .wpforms-page-button:disabled,.wp-core-ui div.wpforms-container-full .wpforms-page-button:disabled:hover,.wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-disabled{background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));cursor:default}div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=date]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=datetime]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=datetime-local]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=email]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=month]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=number]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=password]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=range]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=search]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=tel]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=text]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=time]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=url]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=week]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) select:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) textarea:disabled{cursor:not-allowed;opacity:0.5}div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=checkbox]:disabled:before,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=checkbox]:disabled:after,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=radio]:disabled:before,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=radio]:disabled:after{cursor:not-allowed;opacity:0.5}div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit]:disabled:hover,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit].wpforms-disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit]:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit]:disabled:hover,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit].wpforms-disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button:disabled,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button:disabled:hover,div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button.wpforms-disabled{opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row{margin-bottom:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:last-child,div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:only-child{margin-bottom:0 !important}div.wpforms-container-full input[type=checkbox],div.wpforms-container-full input[type=radio]{position:relative;display:inline-block;background:none;height:calc( var( --wpforms-field-size-checkbox-size ) - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ));width:calc( var( --wpforms-field-size-checkbox-size ) - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ));margin:0 0 0 2px;border:none;box-shadow:none;vertical-align:middle;opacity:1;appearance:none}div.wpforms-container-full input[type=checkbox]:before,div.wpforms-container-full input[type=checkbox]:after,div.wpforms-container-full input[type=radio]:before,div.wpforms-container-full input[type=radio]:after{content:'';position:absolute;left:-2px;top:-2px;width:var(--wpforms-field-size-checkbox-size);height:var(--wpforms-field-size-checkbox-size);box-sizing:content-box;cursor:pointer}div.wpforms-container-full input[type=checkbox]:before,div.wpforms-container-full input[type=radio]:before{border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color);background-clip:padding-box;background-image:none;border-radius:3px}div.wpforms-container-full input[type=checkbox]+label,div.wpforms-container-full input[type=radio]+label{display:inline;position:relative;padding-inline-start:12px;font-size:var(--wpforms-label-size-font-size);cursor:pointer;vertical-align:middle}div.wpforms-container-full input[type=checkbox]:checked:before,div.wpforms-container-full input[type=radio]:checked:before{margin:0;border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full input[type=checkbox]:focus,div.wpforms-container-full input[type=radio]:focus{outline:none}div.wpforms-container-full input[type=checkbox]:focus:before,div.wpforms-container-full input[type=radio]:focus:before{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full input[type=checkbox]:checked:after{border-top:none;border-right:none;height:calc( var( --wpforms-field-size-checkbox-size ) * 0.6);border-left:4px solid var(--wpforms-button-background-color);border-bottom:4px solid var(--wpforms-button-background-color);background-color:transparent;transform:translate(0, 1px) scale(0.5) rotate(-45deg);left:calc( -4px + var( --wpforms-field-border-size, 1px ));top:calc( -3px + var( --wpforms-field-border-size, 1px ))}div.wpforms-container-full input[type=radio]{border-radius:50%}div.wpforms-container-full input[type=radio]:before{border-radius:50%}div.wpforms-container-full input[type=radio]:checked:after{border:1px solid transparent;border-radius:50%;background-color:var(--wpforms-button-background-color);transform:scale(0.5);-moz-transform:scale(0.47);left:calc( -3px + var( --wpforms-field-border-size, 1px ));top:calc( -3px + var( --wpforms-field-border-size, 1px ))}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul{display:grid;grid-template-columns:repeat(1, auto);padding:0;gap:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li{height:unset;line-height:var(--wpforms-field-size-checkbox-size);display:flex;align-items:flex-start;margin:0}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input{min-width:var(--wpforms-field-size-checkbox-size);margin-top:calc((var(--wpforms-label-size-font-size) * 1.3 - var(--wpforms-field-size-checkbox-size)) / 1.5)}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label{padding-inline-start:12px;margin:0;line-height:1.3}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label .wpforms-currency-symbol,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label .wpforms-currency-symbol{white-space:nowrap}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ol,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ol{display:block;padding-left:15px}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ol li,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ul li,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ol li{display:list-item;margin-bottom:10px}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-checkbox-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-multiplechoice-2-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-2-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr))}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-checkbox-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-multiplechoice-3-columns ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-3-columns ul{grid-template-columns:repeat(3, minmax(0, 1fr))}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-inline ul,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-inline ul{display:inline-flex;flex-wrap:wrap}div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-other-input,div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-other-input{margin-top:16px}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label{display:block;overflow:hidden;position:relative;border-width:var(--wpforms-field-border-size);border-color:transparent;border-style:solid}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label .wpforms-image-choices-label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label .wpforms-image-choices-label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-label{font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-label-color);margin-top:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item img,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item img{border-radius:calc( var( --wpforms-field-border-radius ) / 2);overflow:hidden}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label{border-radius:var(--wpforms-field-border-radius)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label:hover,div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label:hover{border-color:var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label{border-width:var(--wpforms-field-border-size)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:hover{box-shadow:0 0 0 1px var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:focus,div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:focus-within{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label.wpforms-field-label-inline-empty .wpforms-image-choices-label{margin-top:0}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item.wpforms-selected .wpforms-image-choices-image:after,div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item:has(input:checked) .wpforms-image-choices-image:after{background-color:var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item.wpforms-selected label:hover,div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item:has(input:checked) label:hover{border-color:var(--wpforms-button-background-color);box-shadow:0 0 20px 0 rgba(0,0,0,0.1),0 0 0 1px var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item .wpforms-image-choices-image img{border-radius:calc( var( --wpforms-field-border-radius ) / 2)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item label:focus,div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item label:focus-within{border-color:var(--wpforms-button-background-color)}div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item.wpforms-selected label,div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item:has(input:checked) label{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label{padding:2px}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-image{display:inline-block;margin-bottom:var(--wpforms-field-size-input-spacing)}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label input{margin-top:0}div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-label{margin-top:0}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices{margin:0 !important;gap:22px}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-small svg{height:calc( 32px * var( --wpforms-field-size-icon-size ))}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-medium svg{height:calc( 48px * var( --wpforms-field-size-icon-size ))}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-large svg{height:calc( 64px * var( --wpforms-field-size-icon-size ))}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item{width:auto;margin:0 !important}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item label{width:100%}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item svg{fill:var(--wpforms-icon-choices-color);max-width:100%}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item .wpforms-icon-choices-label{font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);margin-top:var(--wpforms-field-size-input-spacing);color:var(--wpforms-label-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{background-color:transparent;border-radius:var(--wpforms-field-border-radius);border-width:clamp(1px, var(--wpforms-field-border-size), 6px);border-style:solid;border-color:var(--wpforms-field-border-color);margin-bottom:calc( var( --wpforms-field-size-input-spacing ) - 5px);overflow:hidden;box-shadow:none;padding:var(--wpforms-field-size-input-spacing) calc( var( --wpforms-field-size-input-spacing ) + 5px) calc( 2 * var( --wpforms-field-size-input-spacing ) + var( --wpforms-field-size-checkbox-size )) calc( var( --wpforms-field-size-input-spacing ) + 5px)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:after{width:var(--wpforms-field-size-checkbox-size);height:var(--wpforms-field-size-checkbox-size);margin-top:var(--wpforms-field-size-input-spacing);bottom:var(--wpforms-field-size-input-spacing);left:50%;transform:translateX(-50%);background-color:var(--wpforms-field-background-color);box-shadow:0 0 0 1px var(--wpforms-field-border-color);opacity:1 !important}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{background-color:transparent;border-radius:calc( var( --wpforms-field-border-radius ) / 1.5)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{box-shadow:none;border-radius:var(--wpforms-field-border-radius);border-width:clamp(1px, var(--wpforms-field-border-size), 6px);border-style:solid;border-color:var(--wpforms-field-border-color);padding:var(--wpforms-field-size-input-spacing);background-color:transparent !important}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label.wpforms-field-label-inline-empty .wpforms-icon-choices-icon{margin-bottom:0}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 clamp(1px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color),0 1px 10px rgba(0,0,0,0.15);border-color:var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{border-radius:var(--wpforms-field-border-radius);background-color:transparent !important;padding:20px 20px 15px 20px}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label.wpforms-field-label-inline-empty .wpforms-icon-choices-icon{margin-bottom:5px}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none .wpforms-icon-choices-icon{margin-bottom:var(--wpforms-field-size-input-spacing)}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none input{margin-top:0;vertical-align:middle}div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none .wpforms-icon-choices-label{padding-left:8px;vertical-align:middle;margin-top:2px}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{transform:translateX(-50%) scale(0.5);background-color:var(--wpforms-icon-choices-color);box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);-moz-transform:translateX(-50%) scale(0.49)}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{border-top:none;border-right:none;height:calc( var( --wpforms-field-size-checkbox-size ) * 0.6);border-left:4px solid var(--wpforms-icon-choices-color);border-bottom:4px solid var(--wpforms-icon-choices-color);background-color:transparent;transform:scale(0.6) translate(-10%, -50%) rotate(-45deg);box-shadow:none}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,#wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}div.wpforms-container-full .wpforms-form .wpforms-field-divider{border-top-width:var(--wpforms-field-border-size);border-top-style:solid;border-top-color:var(--wpforms-field-border-color);margin-top:30px;padding:0px}div.wpforms-container-full .wpforms-form .wpforms-field-divider:first-child{margin-top:0;border-top:none}div.wpforms-container-full .wpforms-form .wpforms-field-divider-hide_line{border-top:none}div.wpforms-container-full .wpforms-form .wpforms-field-divider h3{color:var(--wpforms-label-color);padding-top:var(--wpforms-field-size-input-spacing);font-size:calc( 1.5 * var( --wpforms-label-size-font-size ));font-weight:bold}div.wpforms-container-full .wpforms-form .wpforms-field-divider:has(>.wpforms-field-description) h3{margin-bottom:5px}div.wpforms-container-full .wpforms-form .wpforms-field-divider+.wpforms-field-divider{margin-top:45px}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-row.wpforms-without-state .wpforms-field-row-block.wpforms-first{width:100%;padding:0;margin-bottom:0}div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-row.wpforms-without-state .wpforms-field-row-block:not(.wpforms-first){display:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select{padding-inline-start:14px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:0;overflow:auto}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:10px 12px;line-height:1}}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option{padding:10px 14px;box-shadow:0 1px 0 0 rgba(0,0,0,0.1)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option.placeholder,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option[disabled]{box-shadow:0 1px 0 0 rgba(0,0,0,0.2)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices{font-size:var(--wpforms-field-size-font-size);line-height:19px;color:var(--wpforms-field-text-color);margin-bottom:5px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__input--cloned{background-color:transparent}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner{background-color:var(--wpforms-field-background-color);background-clip:padding-box;min-height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 24px 0 7px;border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);border-radius:var(--wpforms-field-border-radius);cursor:pointer}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single{padding:0 16px 0 4px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single .choices__item--selectable{background-color:transparent;font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-field-text-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single .choices__item--selectable.choices__placeholder{opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple{display:inline !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty{display:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty+.choices__input{margin-left:4px !important;min-width:100% !important;text-overflow:ellipsis;padding-right:20px !important;white-space:nowrap}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple .choices__item{position:relative;top:-1.5px;background-color:var(--wpforms-button-background-color);border:1px solid var(--wpforms-button-background-color);border-radius:calc( max( var( --wpforms-field-border-radius ), 6px ) / 2);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color));margin:0 6px 6px 0;line-height:1}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__list--dropdown{background:var(--wpforms-field-menu-color) !important;color:var(--wpforms-field-text-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:var(--wpforms-button-background-color);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color))}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices input.choices__input{display:inline-block;padding:0 !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] input.choices__input{background:none !important;margin:5px !important;padding:5px !important;width:calc( 100% - 10px) !important;border:0 !important;box-shadow:none !important}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices ::-webkit-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices ::-moz-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices :-ms-input-placeholder{color:inherit;opacity:0.5}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button{opacity:0.7;background-image:linear-gradient(45deg, transparent 44%, var(--wpforms-field-border-color-spare) 44%, var(--wpforms-field-border-color-spare) 56%, transparent 56%),linear-gradient(135deg, transparent 44%, var(--wpforms-field-border-color-spare) 44%, var(--wpforms-field-border-color-spare) 56%, transparent 56%);background-position:50% 50%, 50% 50%;background-size:8px 8px, 8px 8px;background-repeat:no-repeat}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button:hover{opacity:1}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"]:after,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"]:after{width:0;height:0;right:12px;background:none;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--wpforms-field-border-color-spare)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"].is-open:after,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"].is-open:after{border-top:5px solid transparent;border-bottom:5px solid var(--wpforms-field-border-color-spare)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-focused .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open .choices__list--dropdown{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:before{content:'';position:absolute;height:3px;background:var(--wpforms-field-background-color);width:calc( 100% - 2px);left:1px;right:1px;z-index:100000000000;opacity:1;border-radius:0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped):before{top:unset;bottom:1px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped) .choices__inner{border-radius:var(--wpforms-field-border-radius) var(--wpforms-field-border-radius) 0 0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped) .choices__list--dropdown{border-radius:0 0 var(--wpforms-field-border-radius) var(--wpforms-field-border-radius);margin-top:0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped:before{top:1px}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped .choices__inner{border-radius:0 0 var(--wpforms-field-border-radius) var(--wpforms-field-border-radius)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped .choices__list--dropdown{border-radius:var(--wpforms-field-border-radius) var(--wpforms-field-border-radius) 0 0;margin-bottom:0}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices .choices__inner{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices:hover .choices__inner{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-focused .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-open .choices__inner,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-open .choices__list--dropdown{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{appearance:none;height:calc( var( --wpforms-field-size-input-height ) / 4);padding:0;margin-top:calc( var( --wpforms-field-size-input-spacing ) + var( --wpforms-field-size-input-height ) / 4);margin-bottom:calc( var( --wpforms-field-size-input-height ) / 4);border-radius:var(--wpforms-field-border-radius);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:first-child{margin-top:calc( var( --wpforms-field-size-input-height ) * 0.25)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:focus:invalid{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;color:var(--wpforms-field-text-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-runnable-track{height:calc( var( --wpforms-field-size-input-height ) / 4);box-shadow:none}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-moz-range-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);color:var(--wpforms-label-sublabel-color);padding:var(--wpforms-field-size-sublabel-spacing) 0 0 0;margin:0}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint b,div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint strong{color:var(--wpforms-label-sublabel-color)}div.wpforms-container-full .wpforms-form textarea{line-height:1.3;min-height:var(--wpforms-field-size-input-height);padding:var(--wpforms-field-size-padding-h);resize:vertical}div.wpforms-container-full .wpforms-form textarea.wpforms-field-small{height:calc( var( --wpforms-field-size-input-height ) * 2.26)}div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium{height:calc( var( --wpforms-field-size-input-height ) * 2.8)}div.wpforms-container-full .wpforms-form textarea.wpforms-field-large{height:calc( var( --wpforms-field-size-input-height ) * 5.1)}div.wpforms-container-full .wpforms-form textarea:focus{color:var(--wpforms-field-text-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.wpforms-container .wpforms-form .wpforms-order-summary-container,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{font-size:var(--wpforms-field-size-font-size)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-style:var(--wpforms-field-border-style);border-width:var(--wpforms-field-border-size);border-radius:var(--wpforms-field-border-radius)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top-style:var(--wpforms-field-border-style);border-top-width:var(--wpforms-field-border-size)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:var(--wpforms-field-border-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{color:var(--wpforms-label-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{color:var(--wpforms-label-sublabel-color);border-top-color:var(--wpforms-field-border-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:var(--wpforms-label-error-color)}.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:var(--wpforms-label-color)}.wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.wpforms-confirmation-container-full .wpforms-order-summary-container{max-width:100%;margin-bottom:24px}@container wpforms-field-row-responsive (max-width: 200px){div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:var(--wpforms-field-size-input-spacing)}}@container wpforms-field-row-responsive-300px (max-width: 300px){div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:var(--wpforms-field-size-input-spacing)}}@media only screen and (max-width: 768px){div.wpforms-container-full:not(:empty){padding:calc( min( var( --wpforms-container-padding ), 40px ))}}@media only screen and (max-width: 600px){div.wpforms-container-full:not(:empty){padding:calc( min( var( --wpforms-container-padding ), 20px ))}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{margin:20px 0 20px}div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{width:30px;height:30px}div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-noscript{color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-styled-container{padding:15px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-styled-container p{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-styled-container+.wpforms-submit-container{margin-top:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container label.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container em.wpforms-error{display:block;color:#D63637;font-size:0.9em;font-style:normal;cursor:default;min-width:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field textarea.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field textarea.user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field select.wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field select.user-invalid{border:1px solid #D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=checkbox].wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=checkbox].user-invalid,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=radio].wpforms-error,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field input[type=radio].user-invalid{border:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-has-error .choices__inner{border:1px solid #D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-alert{border:1px solid rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);padding:10px 15px;font-size:14px;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-error-alert{color:#D63637;background-color:#f2dede;border-color:#f2dede}.et-db #et-boc .et-l .et_pb_module div[style*="z-index: 2147483647"] div[style*="border-width: 11px"][style*="position: absolute"][style*="pointer-events: none"]{border-style:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-screen-reader-element{position:absolute !important;clip:rect(0, 0, 0, 0);height:1px;width:1px;border:0;overflow:hidden;word-wrap:normal !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-hp{display:none !important;position:absolute !important;left:-9000px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container{padding:0;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container iframe{display:block;width:100%;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container .cf-turnstile{padding:10px 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile.wpforms-is-turnstile-invisible{padding:0;height:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile iframe{position:relative !important;visibility:inherit !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .cf-turnstile,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .cf-turnstile,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .g-recaptcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .h-captcha,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .cf-turnstile{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-v3 .wpforms-error:first-of-type,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-turnstile-invisible .wpforms-error:first-of-type,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-recaptcha-container.wpforms-is-recaptcha-type-invisible .wpforms-error:first-of-type{margin-top:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container amp-img>img{position:absolute}.et-db #et-boc .et-l .et_pb_module .wpforms-container .amp-form-submit-success .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .amp-form-submit-success .wpforms-submit-container{display:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-preview-notice-links{line-height:2.4}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=tel]{direction:ltr;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=url]{direction:ltr;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=url]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=email]{direction:ltr;text-align:right}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=email]::-webkit-textfield-decoration-container{display:flex;flex-direction:row-reverse}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form input[type=number]::-webkit-textfield-decoration-container{flex-direction:row-reverse}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-datepicker-wrap .wpforms-datepicker-clear{right:auto;left:10px}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .ui-timepicker-list li{padding:3px 5px 3px 0 !important}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-date-time .wpforms-field-medium+.wpforms-datepicker-clear{left:calc( 40% + 10px);right:auto}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-field-file-upload .dz-remove{right:auto;left:0}.et-db #et-boc .et-l .et_pb_module body.rtl .wpforms-container .wpforms-form .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{margin-left:0;margin-right:10px}.et-db #et-boc .et-l .et_pb_module body.rtl .ui-timepicker-list li{padding:3px 5px 3px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-email .wpforms-field-row,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-address .wpforms-field-row,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-password .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field.wpforms-field-name .wpforms-field-row{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive-name-field}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row-responsive{flex-wrap:wrap;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}@container wpforms-field-row-responsive-name-field (max-width: 260px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block{width:100%;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:15px}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-2-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-2-columns{container-type:inline-size;container-name:wpforms-field-2-columns-responsive}@container wpforms-field-2-columns-responsive (max-width: 320px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-2-columns ul{grid-template-columns:1fr !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-2-columns ul li{width:100%}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns{container-type:inline-size;container-name:wpforms-field-3-columns-responsive}@container wpforms-field-3-columns-responsive (max-width: 480px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@container wpforms-field-3-columns-responsive (max-width: 320px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field>*{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field{padding-right:1px;padding-left:1px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-mobile-full{width:100%;margin-left:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-field:not(.wpforms-field-phone):not(.wpforms-field-select-style-modern):not(.wpforms-field-radio):not(.wpforms-field-checkbox):not(.wpforms-field-layout):not(.wpforms-field-repeater){overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-3-columns ul{grid-template-columns:1fr !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-2-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-checkbox-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-multiplechoice-3-columns ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-list-3-columns ul li{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{display:block;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{width:30px;height:30px;line-height:30px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page{width:100% !important;padding:5px 10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-number{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page.active{font-weight:700}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form.inline-fields .wpforms-field-container,.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form.inline-fields .wpforms-field{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container .wpforms-form.inline-fields .wpforms-submit-container{width:100%}}.et-db #et-boc .et-l .et_pb_module .wpforms-container{margin-bottom:26px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form *{word-break:break-word;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-sublabel,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form li,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form th{hyphens:auto}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container ul li{background:none;border:0;margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-title{font-size:24px;font-weight:700;margin:0 0 10px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-submit-container{clear:both;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-submit-spinner{margin-inline-start:15px;display:inline-block;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-hidden{display:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:before{content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-clear:after{clear:both;content:" ";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);border-left-width:12px;color:#333333;font-size:16px;line-height:1.5;margin-bottom:30px;padding:20px 36px 20px 26px;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:50%;cursor:pointer;display:inline-block;height:20px;margin:0;padding:0;vertical-align:top;width:20px;position:absolute;right:10px;top:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:after{background-color:#ffffff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:before{height:2px;width:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:after{height:50%;width:2px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-delete:focus{background-color:rgba(10,10,10,0.3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice a{text-decoration:underline}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice p{margin:0 0 20px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice p:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-actions{margin-top:20px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action{border:2px solid;margin-right:20px;padding:5px;text-decoration:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice .wpforms-notice-action:active{color:#ffffff}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info{border-color:#3273dc}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action{border-color:#3273dc}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-info .wpforms-notice-action:active{background-color:#3273dc}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success{border-color:#23d160}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action{border-color:#23d160}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-success .wpforms-notice-action:active{background-color:#23d160}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning{border-color:#ffdd57}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action{border-color:#ffdd57}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-warning .wpforms-notice-action:active{background-color:#ffdd57;color:inherit}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error{border-color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action{border-color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:hover,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-notice.wpforms-error .wpforms-notice-action:active{background-color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-preview-notice-links{line-height:2.4}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select.wpforms-field-small,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small{max-width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wpforms-container select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-row.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select.wpforms-field-large,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container fieldset,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container fieldset{display:block;border:none;margin:0;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field{padding:15px 0;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-field-hidden,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field.wpforms-field-hidden{display:none;padding:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-limit-text,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-limit-text{font-size:0.8em;margin:5px 0 0 0;word-break:break-word;word-wrap:break-word;line-height:1.3}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description{background-color:#ffffff;border:1px solid rgba(0,0,0,0.25);padding:15px 15px 0;height:125px;overflow-y:scroll;overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.wpforms-disclaimer-description p,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description.wpforms-disclaimer-description p{margin:0 0 15px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-description.before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-description.before{font-size:0.85em;margin:0 0 5px 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-label{display:block;font-weight:700;font-style:normal;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label-inline,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-label-inline{display:inline;vertical-align:baseline;font-weight:400;font-style:normal;word-break:break-word;word-wrap:break-word}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-sublabel,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-sublabel{display:block;font-size:0.8em;font-weight:400;font-style:normal;min-width:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-label.wpforms-label-hide,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-label.wpforms-label-hide,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-field-sublabel.wpforms-sublabel-hide{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;overflow:hidden}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-required-label,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container .wpforms-required-label{color:var(--wpforms-label-error-color);font-weight:normal}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=date],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=month],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=search],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=time],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=week],.et-db #et-boc .et-l .et_pb_module .wpforms-container select,.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=date],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=email],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=month],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=number],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=password],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=range],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=search],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=tel],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=text],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=time],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=url],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=week],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container textarea{display:block;width:100%;box-sizing:border-box;font-family:inherit;font-style:normal;font-weight:400;margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=date]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=datetime-local]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=email]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=month]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=number]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=password]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=range]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=search]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=tel]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=text]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=time]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=url]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=week]:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container select:read-only,.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=date]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=datetime-local]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=email]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=month]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=number]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=password]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=range]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=search]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=tel]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=text]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=time]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=url]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=week]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container select:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container textarea:read-only{cursor:default}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container textarea{resize:vertical}.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-container input[type=radio],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container input[type=radio]{width:16px;height:16px;margin:2px 10px 0 3px;display:inline-block;vertical-align:baseline;font-style:normal;font-weight:400}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds{float:left;margin-left:20px;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fourths{width:calc( 50% - 10px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths{width:calc( 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-third.wpforms-first,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-sixths.wpforms-first{width:calc( 100% / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds{width:calc( 2 * 100% / 3 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-sixths.wpforms-first,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-thirds.wpforms-first{width:calc( 2 * 100% / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth{width:calc( 25% - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fourth.wpforms-first{width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths{width:calc( 75% - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fourths.wpforms-first{width:75%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth{width:calc( 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-fifth.wpforms-first{width:calc( 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths{width:calc( 2 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-two-fifths.wpforms-first{width:calc( 2 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths{width:calc( 3 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-three-fifths.wpforms-first{width:calc( 3 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths{width:calc( 4 * 100% / 5 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-four-fifths.wpforms-first{width:calc( 4 * 100% / 5)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth{width:calc( 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-one-sixth.wpforms-first{width:calc( 100% / 6)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths{width:calc( 5 * 100% / 6 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-five-sixths.wpforms-first{width:calc( 5 * 100% / 6)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-first{clear:both !important;margin-left:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field{float:none;clear:both}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field.wpforms-two-thirds{float:left;margin-left:20px;clear:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row{align-items:start;position:relative;display:flex;justify-content:space-between;margin-bottom:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block{padding:0 10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:first-child{padding-inline-start:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:last-child{padding-inline-end:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block:only-child{margin-right:auto;padding-right:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:before{content:"";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:after{clear:both;content:"";display:table}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row>:only-child{width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{float:none;margin-left:0;clear:initial}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-half,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fourths{width:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-third,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-sixths{width:33.33333%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-sixths,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-thirds{width:66.66667%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fourth{width:25%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fourths{width:75%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-fifth{width:20%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-two-fifths{width:40%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-three-fifths{width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-four-fifths{width:80%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-one-sixth{width:16.66667%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-field-row .wpforms-five-sixths{width:83.33333%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-3-columns ul{display:grid;gap:15px 30px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-2-columns ul{grid-template-columns:repeat(2, 1fr)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-3-columns ul{grid-template-columns:repeat(3, 1fr)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field .wpforms-list-inline ul li{display:inline-block;vertical-align:top;margin-right:20px}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields{overflow:visible}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-form{display:flex;justify-content:space-between}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container{display:flex;justify-content:space-between;width:calc( 100% - 175px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container .wpforms-field{padding-right:7px;padding-left:8px}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container .wpforms-field:first-of-type{padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-container .wpforms-field:last-of-type{padding-right:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-row:first-of-type .wpforms-field-row-block:first-child{padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit-container{width:160px;padding-bottom:16px;align-self:flex-end}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-submit{display:block;width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields input.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields select.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module .wpforms-container.inline-fields .wpforms-field-row.wpforms-field-medium{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-image-choices label:not(.wpforms-error){cursor:pointer;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container ul.wpforms-image-choices label input{top:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid #ffffff;border-radius:3px;padding:20px;transition:all 0.5s;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern label:not(.wpforms-error):focus-within{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) label{box-shadow:0 0 20px 0 rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-label{font-weight:700}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern li:has(input:checked) .wpforms-image-choices-image:after{opacity:1}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image{display:block;position:relative}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-image:after{content:"\2714";font-size:22px;line-height:32px;color:#ffffff;background:var(--wpforms-button-background-color, #066aab);opacity:0;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;border-radius:50%;transition:all 0.5s}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-modern .wpforms-image-choices-label{display:block;margin-top:12px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline .wpforms-image-choices-modern li{margin:5px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error){background:none;display:inline-block;margin:0 auto;cursor:pointer;border:1px solid transparent;padding:10px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):hover{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic label:not(.wpforms-error):focus{border:1px solid rgba(0,0,0,0.25)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-image{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic li:has(input:checked) label{border-color:rgba(0,0,0,0.7)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-classic .wpforms-image-choices-label{display:block;margin-top:8px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-list-inline .wpforms-image-choices-classic li{margin:0 10px 10px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item img{display:inline-block;margin:0 auto;max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item input{vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-image-choices-none .wpforms-image-choices-item .wpforms-image-choices-label{display:inline-block;margin-top:5px;margin-left:10px;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices *{box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices{display:flex;flex-direction:column;width:100%;padding:0 1px 0 1px !important;margin:12px 0 -20px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices+.wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices+.wpforms-error{margin-top:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices li{min-width:120px;padding-right:0 !important;margin:0 0 20px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices label{position:relative;display:block;margin:0;cursor:pointer}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices .wpforms-icon-choices-icon{display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices svg{margin:0 auto;fill:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-none svg{margin:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin:0 0 22px 0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default label{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{position:relative;z-index:1;margin-bottom:10px;padding:15px 20px 45px 20px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:6px}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon svg{position:relative;z-index:2}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{display:block;position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;border-radius:6px;background-color:#ffffff}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{background-color:transparent;box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color);opacity:.1}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{background-color:#ffffff !important;box-shadow:0 0 0 1px #cccccc;border-radius:6px;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color),0 2px 10px rgba(0,0,0,0.15)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-modern li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{background-color:#ffffff !important;height:100%;padding:20px 20px 15px 20px;text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 1px #999999}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full ul.wpforms-icon-choices.wpforms-icon-choices-classic li .wpforms-icon-choices-icon{margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:50%;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-radio ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-multiple ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";position:absolute;z-index:2;bottom:calc(15px + 4px);left:calc(50% - 4px);display:block;width:8px;height:8px;background-color:var(--wpforms-icon-choices-color);border-radius:50%}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li .wpforms-icon-choices-icon:before{content:"";position:absolute;z-index:2;bottom:15px;left:calc(50% - 8px);display:block;width:16px;height:16px;background-color:#ffffff;box-shadow:0 0 0 1px #cccccc;border-radius:3px;margin:15px auto 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li.wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-field-payment-checkbox ul.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{content:"";box-sizing:border-box;display:block;position:absolute;z-index:2;bottom:23px;left:calc(50% - 6px);width:6px;height:10px;border-style:solid;border-color:var(--wpforms-icon-choices-color);border-width:0 2px 2px 0;transform-origin:bottom left;transform:rotate(45deg)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices{flex-direction:row;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices li{margin-right:20px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices.wpforms-icon-choices-modern li{margin-right:22px !important;margin-bottom:22px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li{width:calc( 100% / 2 - 20px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices li:nth-child(2n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-2-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 2 - 22px / 2)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li{width:calc( 100% / 3 - 20px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices li:nth-child(3n){margin-right:0 !important}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-default li,.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-3-columns ul.wpforms-icon-choices.wpforms-icon-choices-modern li{width:calc( 100% / 3 - 22px * 2 / 3)}.et-db #et-boc .et-l .et_pb_module .wpforms-container-full .wpforms-list-inline ul.wpforms-icon-choices li{width:auto;max-width:calc( 100% / 4 - 20px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices .choices__inner{border-radius:3px;min-height:35px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices .choices__inner .choices__list--single{height:auto}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices .choices__inner .choices__list--multiple .choices__item{line-height:1.3}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__inner,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open .choices__list--dropdown{border-radius:0 0 3px 3px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open.is-flipped .choices__list--dropdown,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .choices.is-open .choices__inner{border-radius:3px 3px 0 0}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea{line-height:1.3}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-small{height:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-medium{height:120px}.et-db #et-boc .et-l .et_pb_module .wpforms-container textarea.wpforms-field-large{height:220px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container{display:block;max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container *{word-break:break-word;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview{width:100%;table-layout:fixed}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{text-align:center}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:8ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:none}@media (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity{width:4ch}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-short{display:inline}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-quantity .wpforms-order-summary-item-quantity-label-full{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{width:6ch;text-align:right}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{text-align:left}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:left}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{text-align:right}.et-db #et-boc .et-l .et_pb_module .wpforms-container .size-large>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-large>.wpforms-order-summary-container{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .size-medium>.wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-field-medium>.wpforms-order-summary-container{max-width:60%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-order-summary-container tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:#D63637}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .wpforms-camera-link,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly select,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly textarea,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=file],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input.wpforms-field-date-time-date,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-uploader,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .choices,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-image-choices-image,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-rating-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-password-input-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .mce-tinymce,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__selected-country,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .StripeElement,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-stripe-element,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-field-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-square-cardnumber,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-geolocation-map,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-signature-wrap,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-paypal-commerce-card-fields,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly.wpforms-field-net_promoter_score table.modern>tbody>tr>td,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .wpforms-camera-link{cursor:default !important;opacity:0.35 !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field input[type=checkbox],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=radio],.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly input[type=checkbox]{cursor:default !important;pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field label,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly label{pointer-events:none !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container{cursor:default !important}.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpf-disable-field .iti__country-container button,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-readonly .iti__country-container button{cursor:default !important}div.wpforms-container-full .et-db #et-boc .et-l .et_pb_module *,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full *{background:none;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;outline:none;position:static;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}div.wpforms-container-full .et-db #et-boc .et-l .et_pb_module * img,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full img,div.wpforms-container-full .et-db #et-boc .et-l .et_pb_module * video,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full video,div.wpforms-container-full .et-db #et-boc .et-l .et_pb_module * canvas,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full canvas,div.wpforms-container-full .et-db #et-boc .et-l .et_pb_module * svg,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full svg{overflow:clip}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full{margin-left:auto;margin-right:auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(:empty){margin:24px auto;padding:var(--wpforms-container-padding);background-clip:padding-box;background-color:var(--wpforms-background-color);background-image:var(--wpforms-background-url);background-position:var(--wpforms-background-position);background-repeat:var(--wpforms-background-repeat);background-size:var(--wpforms-background-size);border-style:var(--wpforms-container-border-style);border-width:var(--wpforms-container-border-width);border-color:var(--wpforms-container-border-color);border-radius:var(--wpforms-container-border-radius);box-shadow:var(--wpforms-container-shadow-size-box-shadow)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea{margin:0;border:0;padding:0;vertical-align:middle;background:none;height:auto;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full h1,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full h2,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full h3,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full h4,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full h5,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full h6,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full small,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full sup,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full sub,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full dl,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full dt,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full dd,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full time,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full address,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full pre,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full code,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full blockquote,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full sup,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full sub,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full del{font-size:revert;font-weight:revert;margin:revert;padding:revert}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full sup,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full sub{position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full del{text-decoration:line-through}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full blockquote{padding-left:20px;border-left:4px solid}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full blockquote p{font-size:revert;font-weight:revert;font-style:italic}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full ul li{background:none;border:0;margin:0;padding:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full ul li{margin-bottom:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full ul li:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full hr{border-top-width:var(--wpforms-field-border-size);border-top-style:var(--wpforms-field-border-style);border-top-color:var(--wpforms-field-border-color);margin:0.5em auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full fieldset{min-width:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-head-container{margin:0;padding:0 0 35px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-title{font-weight:700;line-height:29px;color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-description{font-style:normal;font-weight:300;font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-submit-container{margin-top:var(--wpforms-button-size-margin-top)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{max-width:26px}.et-db #et-boc .et-l .et_pb_module body .wpforms-test{outline:2px solid red !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form label.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form em.wpforms-error{font-weight:400;font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);margin-top:var(--wpforms-field-size-input-spacing);color:var(--wpforms-label-error-color);padding:0 0 0 5px;position:relative}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form label.wpforms-error:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form em.wpforms-error:before{-webkit-mask-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2217%22%20height%3D%2215%22%20viewBox%3D%220%200%2017%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.0264%2012.3086L9.46387%200.90625C8.97168%200.0585938%207.68652%200.03125%207.19434%200.90625L0.631836%2012.3086C0.139648%2013.1562%200.768555%2014.25%201.78027%2014.25H14.8779C15.8896%2014.25%2016.5186%2013.1836%2016.0264%2012.3086ZM8.34277%209.92969C9.02637%209.92969%209.60059%2010.5039%209.60059%2011.1875C9.60059%2011.8984%209.02637%2012.4453%208.34277%2012.4453C7.63184%2012.4453%207.08496%2011.8984%207.08496%2011.1875C7.08496%2010.5039%207.63184%209.92969%208.34277%209.92969ZM7.13965%205.41797C7.1123%205.22656%207.27637%205.0625%207.46777%205.0625H9.19043C9.38184%205.0625%209.5459%205.22656%209.51855%205.41797L9.32715%209.13672C9.2998%209.32812%209.16309%209.4375%208.99902%209.4375H7.65918C7.49512%209.4375%207.3584%209.32812%207.33105%209.13672L7.13965%205.41797Z%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E%0A");mask-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2217%22%20height%3D%2215%22%20viewBox%3D%220%200%2017%2015%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.0264%2012.3086L9.46387%200.90625C8.97168%200.0585938%207.68652%200.03125%207.19434%200.90625L0.631836%2012.3086C0.139648%2013.1562%200.768555%2014.25%201.78027%2014.25H14.8779C15.8896%2014.25%2016.5186%2013.1836%2016.0264%2012.3086ZM8.34277%209.92969C9.02637%209.92969%209.60059%2010.5039%209.60059%2011.1875C9.60059%2011.8984%209.02637%2012.4453%208.34277%2012.4453C7.63184%2012.4453%207.08496%2011.8984%207.08496%2011.1875C7.08496%2010.5039%207.63184%209.92969%208.34277%209.92969ZM7.13965%205.41797C7.1123%205.22656%207.27637%205.0625%207.46777%205.0625H9.19043C9.38184%205.0625%209.5459%205.22656%209.51855%205.41797L9.32715%209.13672C9.2998%209.32812%209.16309%209.4375%208.99902%209.4375H7.65918C7.49512%209.4375%207.3584%209.32812%207.33105%209.13672L7.13965%205.41797Z%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E%0A");content:'';position:relative;display:inline-block;right:5px;top:1.5px;width:16px;height:14px;background-color:var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-sublabel+.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-credit-card .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid:hover{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid:focus{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid{border:none;box-shadow:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].wpforms-error:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=checkbox].user-invalid:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].wpforms-error:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field input[type=radio].user-invalid:focus{border:none;box-shadow:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container{color:var(--wpforms-label-error-color);font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container ul li{list-style:inside !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container ol li{list-style:inside decimal !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container a{color:var(--wpforms-label-error-color);text-decoration:underline !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container a:hover{text-decoration:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container del{text-decoration:line-through !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container blockquote{padding-left:20px;border-left:4px solid;font-style:italic}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container.wpforms-error-styled-container{padding:15px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-container.wpforms-error-styled-container .wpforms-error{padding:11px;border:1px solid var(--wpforms-label-error-color);border-left:5px solid}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-error-alert{color:var(--wpforms-label-error-color);border-color:transparent;border-radius:var(--wpforms-field-border-radius);font-size:var(--wpforms-label-size-sublabel-font-size);padding:var(--wpforms-field-size-input-spacing);background:linear-gradient(90deg, var(--wpforms-label-error-color) -3000%, transparent 500%)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full{color:#333333;margin:0 auto 24px;padding:15px;overflow-wrap:break-word}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full ol,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full ul,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full ol{padding-left:30px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full ol li,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full ul li,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full ol li{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full p,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full p{margin:0 0 15px 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full p:last-child,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full p:last-child{margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full iframe,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full iframe{width:100%;border:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message){background:#e0ffc7;border:1px solid #b4d39b;box-sizing:border-box}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full p,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p{color:#333333}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview{color:inherit;border-color:#b4d39b}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview td,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview th,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview td,.et-db #et-boc .et-l .et_pb_module div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) .wpforms-order-summary-container table.wpforms-order-summary-preview th{border-top-color:#b4d39b}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form amp-img>img{position:absolute}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-limit-text{font-size:13px;display:block}.et-db #et-boc .et-l .et_pb_module .wpforms-screen-reader-announce{color:transparent !important;position:absolute !important;bottom:0 !important}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.progress .wpforms-page-indicator-page-progress-wrap{transform:rotate(180deg)}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page-number{margin:0 0 0 10px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-page-indicator.circles .wpforms-page-indicator-page{margin:0 0 0 15px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form em.wpforms-error{padding:0 5px 0 0}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form em.wpforms-error:before{left:5px;right:auto}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices__list--single .choices__item{padding-right:0;padding-left:15px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner{padding:0 7px 0 24px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single{padding:0 4px 0 16px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"]:after{right:auto;left:12px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"]:after{right:auto;left:12px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button{right:auto;left:0;margin-right:0;margin-left:25px}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"] .choices__button{margin-right:5px;border-right:none}.et-db #et-boc .et-l .et_pb_module body.rtl div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select{background-position:calc(0% + 12px) 50%,calc(0% + 17px) 50%;padding:0 12px 0 24px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-limit-text,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-limit-text{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);color:var(--wpforms-label-sublabel-color);margin:var(--wpforms-field-size-sublabel-spacing) 0 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description ol,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description ol{padding-left:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description{color:var(--wpforms-field-text-color);margin-top:var(--wpforms-field-size-input-spacing);font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);background-color:var(--wpforms-field-background-color);border-radius:var(--wpforms-field-border-radius);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:var(--wpforms-field-size-padding-h)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description p,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description.wpforms-disclaimer-description p{color:inherit;font-size:inherit;line-height:inherit;margin-bottom:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-description.before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description-before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-description.before{margin:0 0 var(--wpforms-field-size-input-spacing) 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-row+.wpforms-field-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-row+.wpforms-field-description{margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-row+.wpforms-field-description.wpforms-disclaimer-description,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-row+.wpforms-field-description.wpforms-disclaimer-description{margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-label,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-label{margin:0 0 var(--wpforms-field-size-input-spacing) 0;padding:0;font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-label-inline,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-label-inline{font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-sublabel,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-sublabel{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);margin:var(--wpforms-field-size-sublabel-spacing) 0 0 0;padding:0;color:var(--wpforms-label-sublabel-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-sublabel.before,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-sublabel.before{margin:0 0 var(--wpforms-field-size-sublabel-spacing) 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field-label-inline,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-field-label-inline{color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-required-label,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-required-label{font-weight:400}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea{background-color:var(--wpforms-field-background-color);background-clip:padding-box;border-radius:var(--wpforms-field-border-radius);color:var(--wpforms-field-text-color);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:0 var(--wpforms-field-size-padding-h);font-size:var(--wpforms-field-size-font-size);line-height:100%;box-shadow:none;transition:border 0.15s, box-shadow 0.15s}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week]:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:focus:invalid,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week]:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:focus:invalid,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea:focus:invalid{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;color:var(--wpforms-field-text-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week][disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select[disabled],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea[disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week][disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select[disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea[disabled]{color:var(--wpforms-field-text-color);opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week]::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select::-webkit-input-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea::-webkit-input-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week]::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select::-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea::-moz-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=date]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=datetime-local]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=email]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=month]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=password]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=range]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=search]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=tel]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=text]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=time]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=url]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=week]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=date]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=datetime-local]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=email]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=month]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=password]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=range]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=search]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=tel]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=text]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=time]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=url]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=week]:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:-moz-placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea:-moz-placeholder{color:var(--wpforms-field-text-color);opacity:0.5;pointer-events:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full textarea,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full textarea{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select{height:var(--wpforms-field-size-input-height)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select{appearance:none;display:block;max-width:100%;width:100%;text-transform:none;text-shadow:none;white-space:nowrap;line-height:unset;padding-block:0;padding-inline-end:24px;padding-inline-start:12px;min-height:var(--wpforms-field-size-input-height);vertical-align:middle;cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:disabled{background-image:linear-gradient(45deg, transparent 50%, var(--wpforms-field-border-color-spare) 50%),linear-gradient(135deg, var(--wpforms-field-border-color-spare) 50%, transparent 50%);background-position:calc( 100% - 17px) 50%,calc( 100% - 12px) 50%;background-size:5px 5px, 5px 5px;background-repeat:no-repeat}.rtl .et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select,.rtl .et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:disabled,.rtl .et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select,.rtl .et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:disabled{background-position:12px 50%, 17px 50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select>option,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select>option{color:var(--wpforms-field-text-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select>option.placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select>option[disabled],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select>option.placeholder,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select>option[disabled]{color:var(--wpforms-field-text-color);opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:not([multiple])>option,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:not([multiple])>option{background:var(--wpforms-field-menu-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select:not([multiple])>option:not(.placeholder):checked,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select:not([multiple])>option:not(.placeholder):checked{font-weight:bold}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select[multiple],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select[multiple]{height:auto;overflow-y:scroll;background-image:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full select[multiple]>option:not(.placeholder):checked,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full select[multiple]>option:not(.placeholder):checked{background:var(--wpforms-button-background-color);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]:read-only,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]:read-only{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:textfield}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=number]:read-only::-webkit-inner-spin-button,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=number]:read-only::-webkit-inner-spin-button{visibility:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit],.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button{height:var(--wpforms-button-size-height);background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));border-radius:var(--wpforms-button-border-radius);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color);border-width:var(--wpforms-button-border-size);box-shadow:none;color:var(--wpforms-button-text-color);padding:0 var(--wpforms-button-size-padding-h);font-family:inherit;font-weight:500;font-size:var(--wpforms-button-size-font-size);line-height:100%;cursor:pointer;transition:all 0.15s ease-in-out;position:relative;text-decoration:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:not(:hover):not(:active),.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:not(:hover):not(:active),.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active),.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:not(:hover):not(:active),.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:not(:hover):not(:active),.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active){background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));color:var(--wpforms-button-text-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:active,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:active,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:active,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:active{background:linear-gradient(0deg, rgba(0,0,0,0.2), rgba(0,0,0,0.2)),var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit].wpforms-opacity-hover:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit].wpforms-opacity-hover:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit].wpforms-opacity-hover:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit].wpforms-opacity-hover:active,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:active,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit].wpforms-opacity-hover:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit].wpforms-opacity-hover:active,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit].wpforms-opacity-hover:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit].wpforms-opacity-hover:active,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-opacity-hover:active{background:none;opacity:.75}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:focus,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:focus{outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:focus:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:focus:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:focus:after,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:focus:after,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:focus:after,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:focus:after{content:"";position:absolute;border:2px solid var(--wpforms-button-background-color);border-radius:calc( var( --wpforms-button-border-radius ) + 2px);top:calc( -4px - var( --wpforms-button-border-size, 1px ));right:calc( -4px - var( --wpforms-button-border-size, 1px ));bottom:calc( -4px - var( --wpforms-button-border-size, 1px ));left:calc( -4px - var( --wpforms-button-border-size, 1px ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit]:disabled:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=submit].wpforms-disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit]:disabled:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full button[type=submit].wpforms-disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button:disabled:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-page-button.wpforms-disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit]:disabled:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full input[type=submit].wpforms-disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit]:disabled:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full button[type=submit].wpforms-disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:disabled,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button:disabled:hover,.et-db #et-boc .et-l .et_pb_module .wp-core-ui div.wpforms-container-full .wpforms-page-button.wpforms-disabled{background-color:var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color));cursor:default}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=date]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=datetime]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=datetime-local]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=email]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=month]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=number]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=password]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=range]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=search]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=tel]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=text]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=time]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=url]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=week]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) select:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) textarea:disabled{cursor:not-allowed;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=checkbox]:disabled:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=checkbox]:disabled:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=radio]:disabled:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=radio]:disabled:after{cursor:not-allowed;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit]:disabled:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) input[type=submit].wpforms-disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit]:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit]:disabled:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) button[type=submit].wpforms-disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button:disabled,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button:disabled:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(.wpforms-gutenberg-form-selector) .wpforms-page-button.wpforms-disabled{opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row{margin-bottom:var(--wpforms-field-size-input-spacing)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:last-child,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row:only-child{margin-bottom:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]{position:relative;display:inline-block;background:none;height:calc( var( --wpforms-field-size-checkbox-size ) - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ));width:calc( var( --wpforms-field-size-checkbox-size ) - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ));margin:0 0 0 2px;border:none;box-shadow:none;vertical-align:middle;opacity:1;appearance:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:after{content:'';position:absolute;left:-2px;top:-2px;width:var(--wpforms-field-size-checkbox-size);height:var(--wpforms-field-size-checkbox-size);box-sizing:content-box;cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:before{border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color);background-clip:padding-box;background-image:none;border-radius:3px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]+label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]+label{display:inline;position:relative;padding-inline-start:12px;font-size:var(--wpforms-label-size-font-size);cursor:pointer;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:checked:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:checked:before{margin:0;border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:focus{outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:focus:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:focus:before{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=checkbox]:checked:after{border-top:none;border-right:none;height:calc( var( --wpforms-field-size-checkbox-size ) * 0.6);border-left:4px solid var(--wpforms-button-background-color);border-bottom:4px solid var(--wpforms-button-background-color);background-color:transparent;transform:translate(0, 1px) scale(0.5) rotate(-45deg);left:calc( -4px + var( --wpforms-field-border-size, 1px ));top:calc( -3px + var( --wpforms-field-border-size, 1px ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]{border-radius:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:before{border-radius:50%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full input[type=radio]:checked:after{border:1px solid transparent;border-radius:50%;background-color:var(--wpforms-button-background-color);transform:scale(0.5);-moz-transform:scale(0.47);left:calc( -3px + var( --wpforms-field-border-size, 1px ));top:calc( -3px + var( --wpforms-field-border-size, 1px ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul{display:grid;grid-template-columns:repeat(1, auto);padding:0;gap:var(--wpforms-field-size-input-spacing)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li{height:unset;line-height:var(--wpforms-field-size-checkbox-size);display:flex;align-items:flex-start;margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input{min-width:var(--wpforms-field-size-checkbox-size);margin-top:calc((var(--wpforms-label-size-font-size) * 1.3 - var(--wpforms-field-size-checkbox-size)) / 1.5)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label{padding-inline-start:12px;margin:0;line-height:1.3}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox ul li input+label .wpforms-currency-symbol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio ul li input+label .wpforms-currency-symbol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox ul li input+label .wpforms-currency-symbol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple ul li input+label .wpforms-currency-symbol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox ul li input+label .wpforms-currency-symbol{white-space:nowrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ol,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ol{display:block;padding-left:15px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-field-description ol li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-field-description ol li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-field-description ol li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-field-description ol li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ul li,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-field-description ol li{display:list-item;margin-bottom:10px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-checkbox-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-multiplechoice-2-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-2-columns ul{grid-template-columns:repeat(2, minmax(0, 1fr))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-checkbox-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-multiplechoice-3-columns ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-3-columns ul{grid-template-columns:repeat(3, minmax(0, 1fr))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox.wpforms-list-inline ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio.wpforms-list-inline ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox.wpforms-list-inline ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple.wpforms-list-inline ul,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox.wpforms-list-inline ul{display:inline-flex;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-checkbox .wpforms-other-input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-radio .wpforms-other-input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-checkbox .wpforms-other-input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-payment-multiple .wpforms-other-input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-field.wpforms-field-gdpr-checkbox .wpforms-other-input{margin-top:16px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label{display:block;overflow:hidden;position:relative;border-width:var(--wpforms-field-border-size);border-color:transparent;border-style:solid}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label .wpforms-image-choices-label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label .wpforms-image-choices-label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-label{font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-label-color);margin-top:var(--wpforms-field-size-input-spacing)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item img,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item img{border-radius:calc( var( --wpforms-field-border-radius ) / 2);overflow:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label{border-radius:var(--wpforms-field-border-radius)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern .wpforms-image-choices-item label:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic .wpforms-image-choices-item label:hover{border-color:var(--wpforms-button-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label{border-width:var(--wpforms-field-border-size)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:hover{box-shadow:0 0 0 1px var(--wpforms-button-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label:focus-within{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item label.wpforms-field-label-inline-empty .wpforms-image-choices-label{margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item.wpforms-selected .wpforms-image-choices-image:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item:has(input:checked) .wpforms-image-choices-image:after{background-color:var(--wpforms-button-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item.wpforms-selected label:hover,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-modern .wpforms-image-choices-item:has(input:checked) label:hover{border-color:var(--wpforms-button-background-color);box-shadow:0 0 20px 0 rgba(0,0,0,0.1),0 0 0 1px var(--wpforms-button-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item .wpforms-image-choices-image img{border-radius:calc( var( --wpforms-field-border-radius ) / 2)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item label:focus,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item label:focus-within{border-color:var(--wpforms-button-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-image-choices-classic .wpforms-image-choices-item:has(input:checked) label{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label{padding:2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-image{display:inline-block;margin-bottom:var(--wpforms-field-size-input-spacing)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label input{margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-none .wpforms-image-choices-item label .wpforms-image-choices-label{margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices{margin:0 !important;gap:22px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-small svg{height:calc( 32px * var( --wpforms-field-size-icon-size ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-medium svg{height:calc( 48px * var( --wpforms-field-size-icon-size ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-large svg{height:calc( 64px * var( --wpforms-field-size-icon-size ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item{width:auto;margin:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item label{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item svg{fill:var(--wpforms-icon-choices-color);max-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices .wpforms-icon-choices-item .wpforms-icon-choices-label{font-size:var(--wpforms-label-size-font-size);line-height:var(--wpforms-label-size-line-height);margin-top:var(--wpforms-field-size-input-spacing);color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon{background-color:transparent;border-radius:var(--wpforms-field-border-radius);border-width:clamp(1px, var(--wpforms-field-border-size), 6px);border-style:solid;border-color:var(--wpforms-field-border-color);margin-bottom:calc( var( --wpforms-field-size-input-spacing ) - 5px);overflow:hidden;box-shadow:none;padding:var(--wpforms-field-size-input-spacing) calc( var( --wpforms-field-size-input-spacing ) + 5px) calc( 2 * var( --wpforms-field-size-input-spacing ) + var( --wpforms-field-size-checkbox-size )) calc( var( --wpforms-field-size-input-spacing ) + 5px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:after{width:var(--wpforms-field-size-checkbox-size);height:var(--wpforms-field-size-checkbox-size);margin-top:var(--wpforms-field-size-input-spacing);bottom:var(--wpforms-field-size-input-spacing);left:50%;transform:translateX(-50%);background-color:var(--wpforms-field-background-color);box-shadow:0 0 0 1px var(--wpforms-field-border-color);opacity:1 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-icon-choices-icon-bg{background-color:transparent;border-radius:calc( var( --wpforms-field-border-radius ) / 1.5)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon-bg,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon-bg{background-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-default label:focus-within .wpforms-icon-choices-icon{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label{box-shadow:none;border-radius:var(--wpforms-field-border-radius);border-width:clamp(1px, var(--wpforms-field-border-size), 6px);border-style:solid;border-color:var(--wpforms-field-border-color);padding:var(--wpforms-field-size-input-spacing);background-color:transparent !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label:hover{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li label.wpforms-field-label-inline-empty .wpforms-icon-choices-icon{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:focus-within label{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);border-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-modern li:has(input:checked) label{box-shadow:0 0 0 clamp(1px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color),0 1px 10px rgba(0,0,0,0.15);border-color:var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label{border-radius:var(--wpforms-field-border-radius);background-color:transparent !important;padding:20px 20px 15px 20px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label:hover{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li label.wpforms-field-label-inline-empty .wpforms-icon-choices-icon{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:focus-within label{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li.wpforms-selected label,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-classic li:has(input:checked) label{box-shadow:0 0 0 clamp(2px, var(--wpforms-field-border-size), 6px) var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none .wpforms-icon-choices-icon{margin-bottom:var(--wpforms-field-size-input-spacing)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none input{margin-top:0;vertical-align:middle}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form ul.wpforms-icon-choices.wpforms-icon-choices-none .wpforms-icon-choices-label{padding-left:8px;vertical-align:middle;margin-top:2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-radio .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-multiple .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{transform:translateX(-50%) scale(0.5);background-color:var(--wpforms-icon-choices-color);box-shadow:0 0 0 1px var(--wpforms-icon-choices-color);-moz-transform:translateX(-50%) scale(0.49)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:before,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:before{box-shadow:0 0 0 1px var(--wpforms-icon-choices-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default .wpforms-selected .wpforms-icon-choices-icon:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-container-full .wpforms-form .wpforms-field-payment-checkbox .wpforms-icon-choices-default li:has(input:checked) .wpforms-icon-choices-icon:after{border-top:none;border-right:none;height:calc( var( --wpforms-field-size-checkbox-size ) * 0.6);border-left:4px solid var(--wpforms-icon-choices-color);border-bottom:4px solid var(--wpforms-icon-choices-color);background-color:transparent;transform:scale(0.6) translate(-10%, -50%) rotate(-45deg);box-shadow:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content{display:flex;align-items:center;gap:15px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price{width:calc(60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-small{text-wrap:balance;width:calc(25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content .wpforms-single-item-price.wpforms-field-large{width:calc(100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-payment-single .wpforms-single-item-price-content select.wpforms-payment-quantity{margin-left:0;height:30px;min-height:30px;font-size:14px;padding-top:0;padding-bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{display:inline-block;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-quantity{display:inline-block;margin-inline-start:15px;width:70px;min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern{display:flex;flex-wrap:wrap;column-gap:15px;align-items:flex-start}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-label{min-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .choices{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{flex-grow:1;max-width:calc( 60% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-small{max-width:calc( 25% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row.wpforms-field-large{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity{flex-basis:70px;max-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-payment-quantity .choices__list--dropdown{min-width:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-description{flex-basis:100%;margin-top:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-error{flex-basis:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price{width:calc( 100% - 85px) !important;max-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled .wpforms-single-item-price-content .wpforms-single-item-price{width:calc( 100% - 70px) !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-payment-quantities-enabled.wpforms-field-select-style-modern .wpforms-field-row{width:calc( 100% - 85px) !important;max-width:100% !important}}.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-medium,.et-db #et-boc .et-l .et_pb_module #wpforms-form-page-page .wpforms-form .wpforms-payment-quantities-enabled select.wpforms-payment-price.wpforms-field-small{max-width:calc( 100% - 85px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-divider{border-top-width:var(--wpforms-field-border-size);border-top-style:solid;border-top-color:var(--wpforms-field-border-color);margin-top:30px;padding:0px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-divider:first-child{margin-top:0;border-top:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-divider-hide_line{border-top:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-divider h3{color:var(--wpforms-label-color);padding-top:var(--wpforms-field-size-input-spacing);font-size:calc( 1.5 * var( --wpforms-label-size-font-size ));font-weight:bold}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-divider:has(>.wpforms-field-description) h3{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-divider+.wpforms-field-divider{margin-top:45px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-row.wpforms-without-state .wpforms-field-row-block.wpforms-first{width:100%;padding:0;margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-address .wpforms-field-row.wpforms-without-state .wpforms-field-row-block:not(.wpforms-first){display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select{padding-inline-start:14px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:0;overflow:auto}@supports (font: -apple-system-body) and (-webkit-appearance: none) and (-webkit-hyphens: none){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]{padding:10px 12px;line-height:1}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option{padding:10px 14px;box-shadow:0 1px 0 0 rgba(0,0,0,0.1)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option.placeholder,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-classic select[multiple]>option[disabled]{box-shadow:0 1px 0 0 rgba(0,0,0,0.2)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices{font-size:var(--wpforms-field-size-font-size);line-height:19px;color:var(--wpforms-field-text-color);margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__input--cloned{background-color:transparent}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner{background-color:var(--wpforms-field-background-color);background-clip:padding-box;min-height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 24px 0 7px;border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);border-radius:var(--wpforms-field-border-radius);cursor:pointer}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single{padding:0 16px 0 4px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single .choices__item--selectable{background-color:transparent;font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-field-text-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--single .choices__item--selectable.choices__placeholder{opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple{display:inline !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty{display:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple:empty+.choices__input{margin-left:4px !important;min-width:100% !important;text-overflow:ellipsis;padding-right:20px !important;white-space:nowrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__inner .choices__list--multiple .choices__item{position:relative;top:-1.5px;background-color:var(--wpforms-button-background-color);border:1px solid var(--wpforms-button-background-color);border-radius:calc( max( var( --wpforms-field-border-radius ), 6px ) / 2);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color));margin:0 6px 6px 0;line-height:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__list--dropdown{background:var(--wpforms-field-menu-color) !important;color:var(--wpforms-field-text-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:var(--wpforms-button-background-color);color:var(--wpforms-button-text-color-alt, var(--wpforms-button-text-color))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices input.choices__input{display:inline-block;padding:0 !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] input.choices__input{background:none !important;margin:5px !important;padding:5px !important;width:calc( 100% - 10px) !important;border:0 !important;box-shadow:none !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices ::-webkit-input-placeholder{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices ::-moz-placeholder{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices :-ms-input-placeholder{color:inherit;opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button{opacity:0.7;background-image:linear-gradient(45deg, transparent 44%, var(--wpforms-field-border-color-spare) 44%, var(--wpforms-field-border-color-spare) 56%, transparent 56%),linear-gradient(135deg, transparent 44%, var(--wpforms-field-border-color-spare) 44%, var(--wpforms-field-border-color-spare) 56%, transparent 56%);background-position:50% 50%, 50% 50%;background-size:8px 8px, 8px 8px;background-repeat:no-repeat}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button:hover{opacity:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"] .choices__button:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"]:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"]:after{width:0;height:0;right:12px;background:none;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--wpforms-field-border-color-spare)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-one"].is-open:after,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices[data-type*="select-multiple"].is-open:after{border-top:5px solid transparent;border-bottom:5px solid var(--wpforms-field-border-color-spare)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-focused .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open .choices__list--dropdown{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:before{content:'';position:absolute;height:3px;background:var(--wpforms-field-background-color);width:calc( 100% - 2px);left:1px;right:1px;z-index:100000000000;opacity:1;border-radius:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped):before{top:unset;bottom:1px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped) .choices__inner{border-radius:var(--wpforms-field-border-radius) var(--wpforms-field-border-radius) 0 0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open:not(.is-flipped) .choices__list--dropdown{border-radius:0 0 var(--wpforms-field-border-radius) var(--wpforms-field-border-radius);margin-top:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped:before{top:1px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped .choices__inner{border-radius:0 0 var(--wpforms-field-border-radius) var(--wpforms-field-border-radius)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern .choices.is-open.is-flipped .choices__list--dropdown{border-radius:var(--wpforms-field-border-radius) var(--wpforms-field-border-radius) 0 0;margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices .choices__inner{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices:hover .choices__inner{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-focused .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-open .choices__inner,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-select-style-modern.wpforms-has-error .choices.is-open .choices__list--dropdown{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{appearance:none;height:calc( var( --wpforms-field-size-input-height ) / 4);padding:0;margin-top:calc( var( --wpforms-field-size-input-spacing ) + var( --wpforms-field-size-input-height ) / 4);margin-bottom:calc( var( --wpforms-field-size-input-height ) / 4);border-radius:var(--wpforms-field-border-radius);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:first-child{margin-top:calc( var( --wpforms-field-size-input-height ) * 0.25)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]:focus:invalid{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;color:var(--wpforms-field-text-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-runnable-track{height:calc( var( --wpforms-field-size-input-height ) / 4);box-shadow:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-moz-range-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-ms-thumb{appearance:none;width:calc( var( --wpforms-field-size-input-height ) * 0.6);height:calc( var( --wpforms-field-size-input-height ) * 0.6);margin-top:calc( -1 * var( --wpforms-field-size-input-height ) * 0.18);background-color:var(--wpforms-button-background-color);background-clip:padding-box;cursor:pointer;border-radius:100%;border-width:var(--wpforms-button-border-size);border-style:var(--wpforms-button-border-style);border-color:var(--wpforms-button-border-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint{font-size:var(--wpforms-label-size-sublabel-font-size);line-height:var(--wpforms-label-size-sublabel-line-height);color:var(--wpforms-label-sublabel-color);padding:var(--wpforms-field-size-sublabel-spacing) 0 0 0;margin:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint b,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider .wpforms-field-number-slider-hint strong{color:var(--wpforms-label-sublabel-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea{line-height:1.3;min-height:var(--wpforms-field-size-input-height);padding:var(--wpforms-field-size-padding-h);resize:vertical}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-small{height:calc( var( --wpforms-field-size-input-height ) * 2.26)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-medium{height:calc( var( --wpforms-field-size-input-height ) * 2.8)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea.wpforms-field-large{height:calc( var( --wpforms-field-size-input-height ) * 5.1)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form textarea:focus{color:var(--wpforms-field-text-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-radius:4px;border:1px solid #e2e2e2;border-collapse:separate}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top:1px solid #e2e2e2;border-bottom:none;border-left:none;border-right:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{font-weight:400;border:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{padding:9px 0;line-height:20px;background:none}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{text-wrap:balance;padding-left:10px}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-label,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-label{padding-right:10px;padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-right:10px}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td.wpforms-order-summary-item-price,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr th.wpforms-order-summary-item-price{padding-left:10px;padding-right:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-left:10px}.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td,.rtl .et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-placeholder td{padding-right:10px;padding-left:0}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td{font-weight:700}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container{font-size:var(--wpforms-field-size-font-size)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview{border-style:var(--wpforms-field-border-style);border-width:var(--wpforms-field-border-size);border-radius:var(--wpforms-field-border-radius)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{border-top-style:var(--wpforms-field-border-style);border-top-width:var(--wpforms-field-border-size)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview{border-color:var(--wpforms-field-border-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr th,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr th{color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr td{color:var(--wpforms-label-sublabel-color);border-top-color:var(--wpforms-field-border-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-coupon-total td.wpforms-order-summary-item-price{color:var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-container .wpforms-form .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-total td,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container table.wpforms-order-summary-preview tr.wpforms-order-summary-preview-subtotal td{color:var(--wpforms-label-color)}.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-order-summary .wpforms-order-summary-container,.et-db #et-boc .et-l .et_pb_module .wpforms-confirmation-container-full .wpforms-order-summary-container{max-width:100%;margin-bottom:24px}@container wpforms-field-row-responsive (max-width: 200px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:var(--wpforms-field-size-input-spacing)}}@container wpforms-field-row-responsive-300px (max-width: 300px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-row .wpforms-field-row-block:not(:last-child){margin-bottom:var(--wpforms-field-size-input-spacing)}}@media only screen and (max-width: 768px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(:empty){padding:calc( min( var( --wpforms-container-padding ), 40px ))}}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full:not(:empty){padding:calc( min( var( --wpforms-container-padding ), 20px ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]{margin:20px 0 20px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-number-slider input[type=range]::-webkit-slider-thumb{width:30px;height:30px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-page-indicator.connector .wpforms-page-indicator-page-title{display:none}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/square/admin-settings-square.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/admin-settings-square.min.css new file mode 100644 index 0000000..782f917 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/admin-settings-square.min.css @@ -0,0 +1 @@ +.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-square-notice-info{background-color:#ffffff;border:1px solid #c3c4c7;border-left:4px solid #056aab;box-shadow:0 1px 1px rgba(0,0,0,0.04);margin-top:10px;padding:11px 15px}.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-square-notice-info strong{font-weight:500}.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-square-notice-info p{margin:0;line-height:18px} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square-card-placeholder.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square-card-placeholder.min.css new file mode 100644 index 0000000..8710809 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square-card-placeholder.min.css @@ -0,0 +1 @@ +.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper{width:100%;flex-direction:row}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper .card-number{border:none}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper{width:60%;flex-direction:column}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper{width:25%;flex-direction:column}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number input,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number input{width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper{background-color:#ffffff;border:1px solid #cccccc;border-radius:2px;box-shadow:none;max-width:none;position:relative;display:flex;flex-wrap:wrap}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper input[type="text"],.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper input[type="text"],.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper input[type="text"]{padding:0;height:26px !important;width:50% !important;min-width:auto;border:none !important;background:transparent}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-icon,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-icon,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-icon{position:absolute;top:7px;bottom:0;left:16px;right:unset}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number{padding-left:70px}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data{display:flex}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data input,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data input{padding-left:16px}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data{box-sizing:border-box;flex-basis:50%;flex-grow:1;padding-top:6px;padding-bottom:6px}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .wpforms-square-cardnumber-wrapper{width:100% !important;min-width:100% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .card-data input,.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .card-data input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .card-data input,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .card-data input,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .card-data input,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .card-data input{width:50% !important;min-width:50% !important}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper{flex-direction:column !important}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper{border-radius:4px;width:60%;flex-direction:column}.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.et-db #et-boc .et-l .et_pb_module .elementor-widget-wpforms div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper{background-color:#f9f9f9;border:1px solid #dddddd;color:#999999;cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module .elementor-widget-wpforms div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid var(--wpforms-field-border-color)}.et-db #et-boc .et-l .et_pb_module .elementor-widget-wpforms div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper{border-radius:var(--wpforms-field-border-radius);border:1px solid var(--wpforms-field-border-color);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color);cursor:not-allowed}.et-db #et-boc .et-l .et_pb_module .editor-styles-wrapper .wpforms-gutenberg-form-selector.wpforms-render-modern.wpforms-container-full .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid var(--wpforms-field-border-color)}.et-db #et-boc .et-l .et_pb_module .editor-styles-wrapper .wpforms-gutenberg-form-selector.wpforms-render-modern.wpforms-container-full .wpforms-square-cardnumber-wrapper{border-radius:var(--wpforms-field-border-radius);border:var(--wpforms-field-border-size, 1px) var(--wpforms-field-border-style, solid) var(--wpforms-field-border-color);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-large.wpforms-square-cardnumber-wrapper{width:100%;flex-direction:row}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-large.wpforms-square-cardnumber-wrapper .card-number{border:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper{width:60%;flex-direction:column}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-small.wpforms-square-cardnumber-wrapper{width:25%;flex-direction:column}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-small.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-small.wpforms-square-cardnumber-wrapper .card-number input{width:100% !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field-square .wpforms-square-cardname input{min-width:100%}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module .wpforms-panel-fields .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .et-db #et-boc .et-l .et_pb_module .wpforms-square-cardnumber-wrapper{width:100% !important}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square.min.css new file mode 100644 index 0000000..65899c8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/divi/wpforms-square.min.css @@ -0,0 +1 @@ +.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .sq-card-iframe-container{position:relative;width:100%;overflow:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .sq-card-iframe-container::before{border-width:1px;border-radius:2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .sq-card-wrapper{min-width:auto}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .sq-card-wrapper.sq-focus .sq-card-iframe-container::before{border-color:#999}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .sq-card-wrapper.sq-error .sq-card-iframe-container::before{border-color:#cc0000}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .sq-card-component{position:relative;height:inherit;width:100%;border:1px solid #ccc;background-color:#fff;border-radius:2px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square-consent{border-left:3px solid;padding-left:15px;font-size:0.75em;color:#666}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-row.wpforms-field-small .wpforms-field-square-cardname{width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column .wpforms-field-row.wpforms-field-small .wpforms-field-square-cardname{min-width:100%}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper .sq-card-iframe-container{border-radius:var(--wpforms-field-border-radius);border:var(--wpforms-field-border-size, 1px) var(--wpforms-field-border-style, solid) var(--wpforms-field-border-color);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper .sq-card-iframe-container::before{border-color:transparent;border-radius:var(--wpforms-field-border-radius)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper .sq-card-iframe-container iframe{border:none !important;border-radius:var(--wpforms-field-border-radius);background:transparent}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-focus .sq-card-iframe-container{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;border-color:var(--wpforms-button-background-color) !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-focus .sq-card-iframe-container::before{border:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-error .sq-card-iframe-container{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);border-color:var(--wpforms-label-error-color) !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-error:hover .sq-card-iframe-container{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color);border-color:var(--wpforms-label-error-color) !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-error.sq-focus .sq-card-iframe-container{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color);border-color:var(--wpforms-label-error-color) !important}.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .sq-card-message{display:none}.et-db #et-boc .et-l .et_pb_module #wpforms-conversational-form-page .sq-card-iframe-container,.et-db #et-boc .et-l .et_pb_module #wpforms-conversational-form-page .sq-card-component{background-color:transparent;border:none}.et-db #et-boc .et-l .et_pb_module #sq-nudata-modal{display:block !important;position:fixed !important;left:0 !important;top:0 !important}@media only screen and (max-width: 600px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper{max-width:calc( 100% - 2px)}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square-card-placeholder.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square-card-placeholder.min.css new file mode 100644 index 0000000..436604d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square-card-placeholder.min.css @@ -0,0 +1 @@ +.wpforms-panel-fields .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper{width:100%;flex-direction:row}.wpforms-panel-fields .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-large .wpforms-square-cardnumber-wrapper .card-number{border:none}.wpforms-panel-fields .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper{width:60%;flex-direction:column}.wpforms-panel-fields .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-medium .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper{width:25%;flex-direction:column}.wpforms-panel-fields .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number input,div.wpforms-container-full .wpforms-form .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number input,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square.size-small .wpforms-square-cardnumber-wrapper .card-number input{width:100% !important}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper{background-color:#ffffff;border:1px solid #cccccc;border-radius:2px;box-shadow:none;max-width:none;position:relative;display:flex;flex-wrap:wrap}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper input[type="text"],div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper input[type="text"],.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper input[type="text"]{padding:0;height:26px !important;width:50% !important;min-width:auto;border:none !important;background:transparent}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-icon,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-icon,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-icon{position:absolute;top:7px;bottom:0;left:16px;right:unset}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number{padding-left:70px}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data{display:flex}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data input,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data input,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data input{padding-left:16px}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-data{box-sizing:border-box;flex-basis:50%;flex-grow:1;padding-top:6px;padding-bottom:6px}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-square-cardnumber-wrapper,.wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .wpforms-square-cardnumber-wrapper{width:100% !important;min-width:100% !important}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .card-data input,.wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .card-data input,div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .card-data input,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .card-data input,.et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field .card-data input,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100) .card-data input{width:50% !important;min-width:50% !important}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper,.wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper{flex-direction:column !important}.wpforms-panel-fields .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper .card-number,.wpforms-panel-fields .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper .card-number,div.wpforms-container-full .wpforms-form .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field.size-large .wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module .wpforms-field.wpforms-field-drag-to-column:not(.wpforms-field-drag-to-column-100).size-large .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper{border-radius:4px;width:60%;flex-direction:column}.wpforms-panel-fields .wpforms-field-square .wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}.elementor-widget-wpforms div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper{background-color:#f9f9f9;border:1px solid #dddddd;color:#999999;cursor:not-allowed}.elementor-widget-wpforms div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid var(--wpforms-field-border-color)}.elementor-widget-wpforms div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-square-cardnumber-wrapper{border-radius:var(--wpforms-field-border-radius);border:1px solid var(--wpforms-field-border-color);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color);cursor:not-allowed}.editor-styles-wrapper .wpforms-gutenberg-form-selector.wpforms-render-modern.wpforms-container-full .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid var(--wpforms-field-border-color)}.editor-styles-wrapper .wpforms-gutenberg-form-selector.wpforms-render-modern.wpforms-container-full .wpforms-square-cardnumber-wrapper{border-radius:var(--wpforms-field-border-radius);border:var(--wpforms-field-border-size, 1px) var(--wpforms-field-border-style, solid) var(--wpforms-field-border-color);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color)}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-large.wpforms-square-cardnumber-wrapper{width:100%;flex-direction:row}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-large.wpforms-square-cardnumber-wrapper .card-number{border:none}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper{width:60%;flex-direction:column}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-medium.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-small.wpforms-square-cardnumber-wrapper{width:25%;flex-direction:column}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-small.wpforms-square-cardnumber-wrapper .card-number{border-bottom:1px solid #cccccc}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-small.wpforms-square-cardnumber-wrapper .card-number input{width:100% !important}div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column:not(.wpforms-layout-column-100) .wpforms-field-square .wpforms-square-cardname input{min-width:100%}@media only screen and (max-width: 600px){.wpforms-panel-fields .wpforms-square-cardnumber-wrapper,div.wpforms-container-full .wpforms-form .wpforms-square-cardnumber-wrapper,.et-db #et-boc .et-l .et_pb_module .wpforms-square-cardnumber-wrapper{width:100% !important}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square.min.css new file mode 100644 index 0000000..2964529 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/square/wpforms-square.min.css @@ -0,0 +1 @@ +div.wpforms-container-full .wpforms-form .sq-card-iframe-container{position:relative;width:100%;overflow:hidden}div.wpforms-container-full .wpforms-form .sq-card-iframe-container::before{border-width:1px;border-radius:2px}div.wpforms-container-full .wpforms-form .sq-card-wrapper{min-width:auto}div.wpforms-container-full .wpforms-form .sq-card-wrapper.sq-focus .sq-card-iframe-container::before{border-color:#999}div.wpforms-container-full .wpforms-form .sq-card-wrapper.sq-error .sq-card-iframe-container::before{border-color:#cc0000}div.wpforms-container-full .wpforms-form .sq-card-component{position:relative;height:inherit;width:100%;border:1px solid #ccc;background-color:#fff;border-radius:2px}div.wpforms-container-full .wpforms-form .wpforms-field-square-consent{border-left:3px solid;padding-left:15px;font-size:0.75em;color:#666}div.wpforms-container-full .wpforms-form .wpforms-field-square .wpforms-field-row.wpforms-field-small .wpforms-field-square-cardname{width:100%}div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column .wpforms-field-row.wpforms-field-small .wpforms-field-square-cardname{min-width:100%}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper .sq-card-iframe-container{border-radius:var(--wpforms-field-border-radius);border:var(--wpforms-field-border-size, 1px) var(--wpforms-field-border-style, solid) var(--wpforms-field-border-color);border-color:var(--wpforms-field-border-color);background-color:var(--wpforms-field-background-color)}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper .sq-card-iframe-container::before{border-color:transparent;border-radius:var(--wpforms-field-border-radius)}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper .sq-card-iframe-container iframe{border:none !important;border-radius:var(--wpforms-field-border-radius);background:transparent}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-focus .sq-card-iframe-container{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none;border-color:var(--wpforms-button-background-color) !important}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-focus .sq-card-iframe-container::before{border:none}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-error .sq-card-iframe-container{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);border-color:var(--wpforms-label-error-color) !important}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-error:hover .sq-card-iframe-container{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color);border-color:var(--wpforms-label-error-color) !important}div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper.sq-error.sq-focus .sq-card-iframe-container{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color);border-color:var(--wpforms-label-error-color) !important}div.wpforms-container-full.wpforms-render-modern .wpforms-form .wpforms-field-square .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}.wpforms-field-square .sq-card-message{display:none}#wpforms-conversational-form-page .sq-card-iframe-container,#wpforms-conversational-form-page .sq-card-component{background-color:transparent;border:none}#sq-nudata-modal{display:block !important;position:fixed !important;left:0 !important;top:0 !important}@media only screen and (max-width: 600px){div.wpforms-container-full.wpforms-render-modern .wpforms-form .sq-card-wrapper{max-width:calc( 100% - 2px)}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/admin-settings-stripe.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/admin-settings-stripe.min.css new file mode 100644 index 0000000..1705ca5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/admin-settings-stripe.min.css @@ -0,0 +1 @@ +.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-stripe-connect-button{background-image:url(../../../images/stripe/stripe-connect.png);background-repeat:no-repeat;background-size:contain;border-radius:4px;display:inline-block;height:32px;vertical-align:top;width:190px}.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-stripe-connect-button:focus{box-shadow:none;opacity:0.8}.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-setting-row .wpforms-stripe-notice-info{background-color:#ffffff;border:1px solid #c3c4c7;border-left:4px solid #056aab;box-shadow:0 1px 1px rgba(0,0,0,0.04);margin-top:10px;padding:11px 15px}.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-setting-row .wpforms-stripe-notice-info strong{font-weight:500}.wpforms-admin-content-payments .wpforms-admin-settings-form .wpforms-setting-row .wpforms-stripe-notice-info p{margin:0;line-height:18px}#wpforms-setting-row-stripe-connection-status .wpforms-connected{display:flex;align-items:center;gap:10px;margin-top:8px}#wpforms-setting-row-stripe-connection-status .wpforms-connected::before{background-image:url(../../../images/check-circle.svg);background-size:contain;background-position:center;background-repeat:no-repeat;content:"";height:17px;width:17px}#wpforms-setting-row-stripe-connection-status .wpforms-connected p{margin-top:0;line-height:20px}#wpforms-setting-row-stripe-connection-status .wpforms-reconnect{background-color:#ffffff;border-left:4px solid #ffb900;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);margin:16px 0 0;padding:10px}#wpforms-setting-row-stripe-connection-status .wpforms-reconnect p{color:#3c434a;margin:0 0 10px 0;padding:2px}#wpforms-setting-row-stripe-connection-status .wpforms-reconnect p:last-of-type{margin:0}#wpforms-setting-row-stripe-connection-status .desc{color:#999c9e}#wpforms-setting-row-stripe-connection-status .desc a{color:#999c9e}#wpforms-setting-row-stripe-card-mode .wpforms-setting-field{padding-top:8px} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe-common.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe-common.min.css new file mode 100644 index 0000000..7f60b1f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe-common.min.css @@ -0,0 +1 @@ +#wpforms-panel-field-stripe-custom-metadata{margin-bottom:20px}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table{border:1px solid #c3c4c7;border-collapse:collapse;border-spacing:0;width:100%}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table thead{background-color:#f6f7f7;color:#50575e;font-size:14px}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table thead th{font-weight:400;padding:8px 10px;text-align:start}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td{border-top:1px solid #c3c4c7;padding-block:10px;padding-inline-start:10px;padding-inline-end:0;width:33%}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td:last-of-type{padding-inline-end:10px}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td.add button,#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td.delete button{background:none;border:none;box-shadow:none;height:auto;line-height:1;margin:0;padding:0}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td.add button i,#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td.delete button i{font-size:16px}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td.add button{color:#036aab}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td.delete button{color:#d63638}#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td select,#wpforms-panel-field-stripe-custom-metadata .wpforms-panel-content-section-stripe-custom-metadata-table tbody td input{max-width:450px;width:100%} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe.min.css new file mode 100644 index 0000000..6b141d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/builder-stripe.min.css @@ -0,0 +1 @@ +#wpforms-panel-fields .wpforms-stripe-payment-element,#wpforms-panel-revisions .wpforms-stripe-payment-element,#wpforms-panel-ai-form .wpforms-stripe-payment-element{width:60%}#wpforms-panel-fields .wpforms-stripe-payment-element.above input::-webkit-input-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.above input::-webkit-input-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.above input::-webkit-input-placeholder{color:transparent}#wpforms-panel-fields .wpforms-stripe-payment-element.above input:-moz-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.above input:-moz-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.above input:-moz-placeholder{color:transparent}#wpforms-panel-fields .wpforms-stripe-payment-element.above input::-moz-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.above input::-moz-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.above input::-moz-placeholder{color:transparent}#wpforms-panel-fields .wpforms-stripe-payment-element.above input:-ms-input-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.above input:-ms-input-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.above input:-ms-input-placeholder{color:transparent}#wpforms-panel-fields .wpforms-stripe-payment-element.floating input::-webkit-input-placeholder,#wpforms-panel-fields .wpforms-stripe-payment-element.floating select::-webkit-input-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating input::-webkit-input-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating select::-webkit-input-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating input::-webkit-input-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating select::-webkit-input-placeholder{color:#999c9e}#wpforms-panel-fields .wpforms-stripe-payment-element.floating input:-moz-placeholder,#wpforms-panel-fields .wpforms-stripe-payment-element.floating select:-moz-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating input:-moz-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating select:-moz-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating input:-moz-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating select:-moz-placeholder{color:#999c9e}#wpforms-panel-fields .wpforms-stripe-payment-element.floating input::-moz-placeholder,#wpforms-panel-fields .wpforms-stripe-payment-element.floating select::-moz-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating input::-moz-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating select::-moz-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating input::-moz-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating select::-moz-placeholder{color:#999c9e}#wpforms-panel-fields .wpforms-stripe-payment-element.floating input:-ms-input-placeholder,#wpforms-panel-fields .wpforms-stripe-payment-element.floating select:-ms-input-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating input:-ms-input-placeholder,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating select:-ms-input-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating input:-ms-input-placeholder,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating select:-ms-input-placeholder{color:#999c9e}#wpforms-panel-fields .wpforms-stripe-payment-element.floating label,#wpforms-panel-revisions .wpforms-stripe-payment-element.floating label,#wpforms-panel-ai-form .wpforms-stripe-payment-element.floating label{display:none}#wpforms-panel-fields .wpforms-stripe-payment-element input[type=text],#wpforms-panel-fields .wpforms-stripe-payment-element select,#wpforms-panel-revisions .wpforms-stripe-payment-element input[type=text],#wpforms-panel-revisions .wpforms-stripe-payment-element select,#wpforms-panel-ai-form .wpforms-stripe-payment-element input[type=text],#wpforms-panel-ai-form .wpforms-stripe-payment-element select{width:100%;min-width:initial}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-sub-label,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-sub-label,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-sub-label{margin-bottom:5px;margin-inline-start:1px}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-field-row,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-field-row,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-field-row{overflow:hidden;container-type:inline-size;container-name:wpforms-field-row-responsive}@container wpforms-field-row-responsive (max-width: 200px){#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-field-row .wpforms-one-half,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-field-row .wpforms-one-half,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-field-row .wpforms-one-half{float:none;width:100%}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-cvc,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-cvc,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-cvc{margin-top:10px}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-cardnumber-pics,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-cardnumber-pics,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-cardnumber-pics{display:none}}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-stripe-cvc,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-stripe-cvc,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-stripe-cvc{position:relative}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-stripe-cvc svg,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-stripe-cvc svg,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-stripe-cvc svg{position:absolute;bottom:8px;inset-inline-end:12px;opacity:0.75}#wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-stripe-cardnumber-pics,#wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-stripe-cardnumber-pics,#wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-stripe-cardnumber-pics{position:absolute;bottom:7px;inset-inline-end:12px;width:136px;max-width:calc( 100% - 24px);height:24px;background-image:url("../../../images/integrations/stripe/cc-preview.png");background-repeat:no-repeat;background-size:136px 24px;background-position:100% 50%}.rtl #wpforms-panel-fields .wpforms-stripe-payment-element .wpforms-stripe-cardnumber-pics,.rtl #wpforms-panel-revisions .wpforms-stripe-payment-element .wpforms-stripe-cardnumber-pics,.rtl #wpforms-panel-ai-form .wpforms-stripe-payment-element .wpforms-stripe-cardnumber-pics{background-position:0 50%}#wpforms-panel-fields .wpforms-field-stripe-credit-card.size-small .wpforms-stripe-payment-element,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.size-small .wpforms-stripe-payment-element,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.size-small .wpforms-stripe-payment-element{width:25%}#wpforms-panel-fields .wpforms-field-stripe-credit-card.size-large .wpforms-stripe-payment-element,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.size-large .wpforms-stripe-payment-element,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.size-large .wpforms-stripe-payment-element{width:100%}#wpforms-panel-fields .wpforms-field-stripe-credit-card .format-selected:not(.wpforms-stripe-payment-element),#wpforms-panel-revisions .wpforms-field-stripe-credit-card .format-selected:not(.wpforms-stripe-payment-element),#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .format-selected:not(.wpforms-stripe-payment-element){width:100%}#wpforms-panel-fields .wpforms-field-stripe-credit-card.sublabel_hide .floating input::-webkit-input-placeholder,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.sublabel_hide .floating input::-webkit-input-placeholder,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.sublabel_hide .floating input::-webkit-input-placeholder{color:transparent}#wpforms-panel-fields .wpforms-field-stripe-credit-card.sublabel_hide .floating input:-moz-placeholder,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.sublabel_hide .floating input:-moz-placeholder,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.sublabel_hide .floating input:-moz-placeholder{color:transparent}#wpforms-panel-fields .wpforms-field-stripe-credit-card.sublabel_hide .floating input::-moz-placeholder,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.sublabel_hide .floating input::-moz-placeholder,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.sublabel_hide .floating input::-moz-placeholder{color:transparent}#wpforms-panel-fields .wpforms-field-stripe-credit-card.sublabel_hide .floating input:-ms-input-placeholder,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.sublabel_hide .floating input:-ms-input-placeholder,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.sublabel_hide .floating input:-ms-input-placeholder{color:transparent}#wpforms-panel-fields .wpforms-field-stripe-credit-card .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-field-stripe-credit-card .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .wpforms-field-preview-wrap{position:absolute;display:flex;justify-content:space-between;flex-wrap:nowrap;width:auto;height:40px;top:0;inset-inline-start:0;bottom:0;font-size:16px;line-height:40px;color:#666666;container-type:inline-size;container-name:wpforms-field-preview-wrap-small}@container wpforms-field-preview-wrap-small (max-width: 280px){#wpforms-panel-fields .wpforms-field-stripe-credit-card .wpforms-field-preview-wrap .wpforms-field-stripe-credit-card-number-expcvc-preview,#wpforms-panel-revisions .wpforms-field-stripe-credit-card .wpforms-field-preview-wrap .wpforms-field-stripe-credit-card-number-expcvc-preview,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .wpforms-field-preview-wrap .wpforms-field-stripe-credit-card-number-expcvc-preview{display:none}}#wpforms-panel-fields .wpforms-field-stripe-credit-card.size-small .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.size-small .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.size-small .wpforms-field-preview-wrap{width:25%}#wpforms-panel-fields .wpforms-field-stripe-credit-card.size-medium .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.size-medium .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.size-medium .wpforms-field-preview-wrap{width:60%}#wpforms-panel-fields .wpforms-field-stripe-credit-card.size-large .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.size-large .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.size-large .wpforms-field-preview-wrap{width:100%}#wpforms-panel-fields .wpforms-field-stripe-credit-card.wpforms-field-drag-to-column .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-field-stripe-credit-card.wpforms-field-drag-to-column .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card.wpforms-field-drag-to-column .wpforms-field-preview-wrap{width:100%}#wpforms-panel-fields .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview,#wpforms-panel-revisions .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview{display:flex;line-height:40px;padding-block:0;padding-inline-end:0;padding-inline-start:10px;overflow-x:hidden}#wpforms-panel-fields .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg,#wpforms-panel-revisions .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg{width:24px;min-width:24px;fill:#000000}#wpforms-panel-fields .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span,#wpforms-panel-revisions .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span{opacity:0.5;padding-inline-start:10px;white-space:nowrap}#wpforms-panel-fields .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview,#wpforms-panel-revisions .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview,#wpforms-panel-ai-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview{display:block;width:fit-content;padding:0 20px 0 0;opacity:0.5;white-space:nowrap}#wpforms-panel-fields .wpforms-layout-column .wpforms-field-stripe-credit-card.size-small .wpforms-field-preview-wrap,#wpforms-panel-fields .wpforms-layout-column .wpforms-field-stripe-credit-card.size-medium .wpforms-field-preview-wrap,#wpforms-panel-fields .wpforms-layout-column .wpforms-field-stripe-credit-card.size-large .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-layout-column .wpforms-field-stripe-credit-card.size-small .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-layout-column .wpforms-field-stripe-credit-card.size-medium .wpforms-field-preview-wrap,#wpforms-panel-revisions .wpforms-layout-column .wpforms-field-stripe-credit-card.size-large .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-layout-column .wpforms-field-stripe-credit-card.size-small .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-layout-column .wpforms-field-stripe-credit-card.size-medium .wpforms-field-preview-wrap,#wpforms-panel-ai-form .wpforms-layout-column .wpforms-field-stripe-credit-card.size-large .wpforms-field-preview-wrap{width:100%} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/divi/wpforms-stripe.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/divi/wpforms-stripe.min.css new file mode 100644 index 0000000..0ff2712 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/divi/wpforms-stripe.min.css @@ -0,0 +1 @@ +.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .StripeElement{margin-bottom:5px}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .StripeElement .__PrivateStripeElement iframe{margin:0 0 0 -4px !important}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview{display:flex;position:absolute;width:fit-content;height:36px;line-height:36px;padding:0 0 0 10px;top:0;left:0;bottom:0}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg{width:24px;fill:#000000;margin-right:10px}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span{opacity:0.5;font-size:16px;color:#333333}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview{display:block;position:absolute;width:fit-content;height:36px;line-height:36px;padding:0 10px 0 0;font-size:16px;top:0;right:0;bottom:0;color:#333333;opacity:0.5}.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row{container-type:inline-size;container-name:wpforms-field-row-small wpforms-field-row-responsive}@container wpforms-field-row-small (max-width: 200px){.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-stripe-payment-element-cvc-preview svg,.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview,.et-db #et-boc .et-l .et_pb_module .wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-field-stripe-credit-card-number-expcvc-preview{display:none}}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card .wpforms-field-row{margin-left:0;margin-right:0}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card .wpforms-field-row .StripeElement{width:calc( 100% + 8px)}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card .wpforms-field-row select{max-width:100%}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card-number-placeholder-preview{height:46px;line-height:46px;color:rgba(var(--wpforms-lead-forms-secondary-text-color), 1)}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card-number-placeholder-preview span{color:rgba(var(--wpforms-lead-forms-secondary-text-color), 1)}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card-number-expcvc-preview{height:46px;line-height:46px;color:rgba(var(--wpforms-lead-forms-secondary-text-color), 0.5)}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=date],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=datetime],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=datetime-local],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=email],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=month],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=number],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=password],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=range],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=search],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=tel],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=text],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=time],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=url],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=week],.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field select,.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field textarea{opacity:1;background-color:transparent}.et-db #et-boc .et-l .et_pb_module .wpforms-lead-forms-container.wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber{background-color:var(--wpforms-field-background-color);box-sizing:border-box;border-radius:var(--wpforms-field-border-radius);color:var(--wpforms-field-text-color);display:flex;align-items:center;justify-content:center;font-size:var(--wpforms-field-size-font-size);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:0 var(--wpforms-field-size-padding-h);height:var(--wpforms-field-size-input-height);width:100%;line-height:1}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-invalid{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-invalid:hover{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-invalid.wpforms-stripe-element-focus{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber>.__PrivateStripeElement{width:100%;height:calc( var( --wpforms-field-size-font-size ) + 4px)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview{display:flex;position:absolute;width:100%;height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 0 0 var(--wpforms-field-size-padding-h);top:0;left:0;bottom:0;overflow-x:hidden}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg{width:24px;fill:#000000}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span{opacity:0.5;font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-field-text-color);white-space:nowrap}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview{display:block;position:absolute;width:fit-content;height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 calc( var( --wpforms-field-size-padding-h ) * 2) 0 0;font-size:var(--wpforms-field-size-font-size);top:0;right:0;bottom:0;color:var(--wpforms-field-text-color);opacity:0.5}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-row{container-type:inline-size;container-name:wpforms-field-row-small}@container wpforms-field-row-small (max-width: 300px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-field-stripe-credit-card-number-expcvc-preview{display:none}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element-cvc-preview svg{position:absolute !important;bottom:calc( ( var( --wpforms-field-size-input-height ) - 24px ) / 2);right:var(--wpforms-field-size-padding-h)}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row{container-type:inline-size;container-name:wpforms-field-row-xs wpforms-field-row-s wpforms-field-row-m wpforms-field-row-responsive}@container wpforms-field-row-m (max-width: 320px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview{width:64px}}@container wpforms-field-row-s (max-width: 240px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview{width:32px}}@container wpforms-field-row-xs (max-width: 210px){.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview{display:none}}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element-cardnumber-preview{position:absolute;bottom:calc( ( var( --wpforms-field-size-input-height ) - 20px ) / 2);right:var(--wpforms-field-size-padding-h);width:136px;height:20px;background-image:url("../../../images/integrations/stripe/cc-preview.png");background-repeat:no-repeat;background-size:136px 20px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .StripeElement{margin:0 4px var(--wpforms-field-size-input-spacing) -4px}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .StripeElement:last-of-type{margin-bottom:0}.et-db #et-boc .et-l .et_pb_module div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .StripeElement .__PrivateStripeElement iframe{margin:0 !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/wpforms-stripe.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/wpforms-stripe.min.css new file mode 100644 index 0000000..e23ef82 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/stripe/wpforms-stripe.min.css @@ -0,0 +1 @@ +.wpforms-form .wpforms-field-stripe-credit-card .StripeElement{margin-bottom:5px}.wpforms-form .wpforms-field-stripe-credit-card .StripeElement .__PrivateStripeElement iframe{margin:0 0 0 -4px !important}.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview{display:flex;position:absolute;width:fit-content;height:36px;line-height:36px;padding:0 0 0 10px;top:0;left:0;bottom:0}.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg{width:24px;fill:#000000;margin-right:10px}.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span{opacity:0.5;font-size:16px;color:#333333}.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview{display:block;position:absolute;width:fit-content;height:36px;line-height:36px;padding:0 10px 0 0;font-size:16px;top:0;right:0;bottom:0;color:#333333;opacity:0.5}.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row{container-type:inline-size;container-name:wpforms-field-row-small wpforms-field-row-responsive}@container wpforms-field-row-small (max-width: 200px){.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-stripe-payment-element-cvc-preview svg,.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview,.wpforms-form .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-field-stripe-credit-card-number-expcvc-preview{display:none}}.wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card .wpforms-field-row{margin-left:0;margin-right:0}.wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card .wpforms-field-row .StripeElement{width:calc( 100% + 8px)}.wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card .wpforms-field-row select{max-width:100%}.wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card-number-placeholder-preview{height:46px;line-height:46px;color:rgba(var(--wpforms-lead-forms-secondary-text-color), 1)}.wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card-number-placeholder-preview span{color:rgba(var(--wpforms-lead-forms-secondary-text-color), 1)}.wpforms-lead-forms-container.wpforms-container .wpforms-field-stripe-credit-card-number-expcvc-preview{height:46px;line-height:46px;color:rgba(var(--wpforms-lead-forms-secondary-text-color), 0.5)}.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=date],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=datetime],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=datetime-local],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=email],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=month],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=number],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=password],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=range],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=search],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=tel],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=text],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=time],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=url],.wpforms-lead-forms-container.wpforms-container .wpforms-field input[type=week],.wpforms-lead-forms-container.wpforms-container .wpforms-field select,.wpforms-lead-forms-container.wpforms-container .wpforms-field textarea{opacity:1;background-color:transparent}.wpforms-lead-forms-container.wpforms-container .wpforms-field .wpforms-field-row.wpforms-no-columns{display:block}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber{background-color:var(--wpforms-field-background-color);box-sizing:border-box;border-radius:var(--wpforms-field-border-radius);color:var(--wpforms-field-text-color);display:flex;align-items:center;justify-content:center;font-size:var(--wpforms-field-size-font-size);border-width:var(--wpforms-field-border-size);border-style:var(--wpforms-field-border-style);border-color:var(--wpforms-field-border-color);padding:0 var(--wpforms-field-size-padding-h);height:var(--wpforms-field-size-input-height);width:100%;line-height:1}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-focus{border-width:var(--wpforms-field-border-size, 0);border-style:solid;border-color:var(--wpforms-button-background-color);box-shadow:0 0 0 1px var(--wpforms-button-background-color),0px 1px 2px rgba(0,0,0,0.15);outline:none}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-invalid{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color)}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-invalid:hover{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 2px 0 var(--wpforms-label-error-color)}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber.wpforms-stripe-element-invalid.wpforms-stripe-element-focus{border-width:var(--wpforms-field-border-size);border-style:solid;border-color:var(--wpforms-label-error-color);box-shadow:0 0 0 1px var(--wpforms-label-error-color)}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-cardnumber>.__PrivateStripeElement{width:100%;height:calc( var( --wpforms-field-size-font-size ) + 4px)}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-sublabel+.wpforms-error{margin-top:calc( 1.5 * var( --wpforms-field-size-sublabel-spacing ))}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview{display:flex;position:absolute;width:100%;height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 0 0 var(--wpforms-field-size-padding-h);top:0;left:0;bottom:0;overflow-x:hidden}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview svg{width:24px;fill:#000000}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-placeholder-preview span{opacity:0.5;font-size:var(--wpforms-field-size-font-size);color:var(--wpforms-field-text-color);white-space:nowrap}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-stripe-credit-card-number-expcvc-preview{display:block;position:absolute;width:fit-content;height:var(--wpforms-field-size-input-height);line-height:var(--wpforms-field-size-input-height);padding:0 calc( var( --wpforms-field-size-padding-h ) * 2) 0 0;font-size:var(--wpforms-field-size-font-size);top:0;right:0;bottom:0;color:var(--wpforms-field-text-color);opacity:0.5}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-row{container-type:inline-size;container-name:wpforms-field-row-small}@container wpforms-field-row-small (max-width: 300px){div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-field-row .wpforms-field-stripe-credit-card-number-expcvc-preview{display:none}}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element-cvc-preview svg{position:absolute !important;bottom:calc( ( var( --wpforms-field-size-input-height ) - 24px ) / 2);right:var(--wpforms-field-size-padding-h)}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row{container-type:inline-size;container-name:wpforms-field-row-xs wpforms-field-row-s wpforms-field-row-m wpforms-field-row-responsive}@container wpforms-field-row-m (max-width: 320px){div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview{width:64px}}@container wpforms-field-row-s (max-width: 240px){div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview{width:32px}}@container wpforms-field-row-xs (max-width: 210px){div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element .wpforms-field-row .wpforms-stripe-payment-element-cardnumber-preview{display:none}}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .wpforms-stripe-payment-element-cardnumber-preview{position:absolute;bottom:calc( ( var( --wpforms-field-size-input-height ) - 20px ) / 2);right:var(--wpforms-field-size-padding-h);width:136px;height:20px;background-image:url("../../../images/integrations/stripe/cc-preview.png");background-repeat:no-repeat;background-size:136px 20px}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .StripeElement{margin:0 4px var(--wpforms-field-size-input-spacing) -4px}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .StripeElement:last-of-type{margin-bottom:0}div.wpforms-container.wpforms-render-modern .wpforms-field-stripe-credit-card .StripeElement .__PrivateStripeElement iframe{margin:0 !important} diff --git a/wp-content/plugins/wpforms-lite/assets/css/integrations/woocommerce/notifications.min.css b/wp-content/plugins/wpforms-lite/assets/css/integrations/woocommerce/notifications.min.css new file mode 100644 index 0000000..b650bcb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/integrations/woocommerce/notifications.min.css @@ -0,0 +1 @@ +.wpforms-woocommerce-notification{position:relative;border:1px solid #c3c4c7;margin-block:22px 24px;margin-inline:0 15px;background-color:#ffffff;display:flex;flex-direction:row;justify-content:space-between}.wpforms-woocommerce-notification-image{background:url("../../../images/integrations/woocommerce/mail.svg") no-repeat right -1px bottom;min-width:175px}.wpforms-woocommerce-notification-content{padding:15px 20px 20px}.wpforms-woocommerce-notification h2{margin:0;line-height:21px;font-size:17px;font-weight:500}.wpforms-woocommerce-notification p{font-size:15px;line-height:18px;margin:6px 0 9px 0;color:#50575e}.wpforms-woocommerce-notification #wpforms-woocommerce-close{cursor:pointer;color:#a7aaad;opacity:0.5;position:absolute;top:0;inset-inline-end:0;width:30px;height:30px;line-height:30px}.wpforms-woocommerce-notification #wpforms-woocommerce-close:hover{opacity:1}body.rtl .wpforms-woocommerce-notification-image{transform:scaleX(-1)}@media (max-width: 680px){.wpforms-woocommerce-notification-image{display:none}.wpforms-woocommerce-notification .button-primary{min-height:30px;padding:0 10px;font-size:13px;margin-bottom:0;line-height:2.15384615}}@media (max-width: 620px){.wpforms-woocommerce-notification{margin-inline-end:0}} diff --git a/wp-content/plugins/wpforms-lite/assets/css/logger.min.css b/wp-content/plugins/wpforms-lite/assets/css/logger.min.css new file mode 100644 index 0000000..fc4e2fc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/css/logger.min.css @@ -0,0 +1 @@ +#logs-filter th#date{width:19ch}.wpforms-log-popup{background-color:#ffffff;padding:20px 20px 10px;font-size:14px;line-height:20px;width:100%;text-align:left;color:#444}.wpforms-log-popup-flex,.wpforms-log-popup-block{padding-top:15px;padding-bottom:25px;border-bottom:1px solid #e4e4e4}.wpforms-log-popup-flex:first-child,.wpforms-log-popup-block:first-child{padding-top:0}.wpforms-log-popup-flex:last-child,.wpforms-log-popup-block:last-child{padding-bottom:0;border-bottom:0}.wpforms-log-popup-flex{display:flex;flex-wrap:wrap;justify-content:center;margin-left:-10px;margin-right:-10px}.wpforms-log-popup-flex>div{padding:0 10px}.wpforms-log-popup-flex-column-2>div{flex:0 0 50%}.wpforms-log-popup-flex-column-4>div{flex:0 0 25%}.wpforms-log-popup-label{font-weight:600;font-size:16px;margin-bottom:4px}.wpforms-log-popup-message{overflow-x:auto}.wpforms-log-popup-message::-webkit-scrollbar{height:6px}.wpforms-log-popup-message::-webkit-scrollbar-track{background:#c5c5c5;border-radius:6px}.wpforms-log-popup-message::-webkit-scrollbar-thumb{background-color:#666;border-radius:6px;border:6px solid #666}.wpforms-log-popup a{color:inherit}@media screen and (max-width: 782px){.wpforms-log-popup{padding:0}.wpforms-log-popup .wpforms-log-popup-flex{padding-top:0;padding-bottom:0}.wpforms-log-popup .wpforms-log-popup-flex-column-2>div{flex:0 0 100%;padding-top:15px;padding-bottom:25px}.wpforms-log-popup .wpforms-log-popup-flex-column-2>div:nth-child(n+2){border-top:1px solid #e4e4e4}.wpforms-log-popup .wpforms-log-popup-flex-column-4>div{flex:0 0 50%;padding-top:15px;padding-bottom:25px}.wpforms-log-popup .wpforms-log-popup-flex-column-4>div:nth-child(n+3){border-top:1px solid #e4e4e4}.wpforms-log-popup .wpforms-log-popup-flex-column-4>div:nth-child(- n+2){padding-bottom:0}}.wpforms-tools-tab-logs p.submit{padding-bottom:50px}.wpforms-tools-tab-logs h3{line-height:25px}.wpforms-tools-tab-logs .wp-heading-inline{margin:0;font-size:18px;font-weight:600;line-height:normal;color:#1d2327}.wpforms-tools-tab-logs .wpforms-admin-content-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.wpforms-tools-tab-logs .wpforms-admin-content-header .search-box{margin-bottom:0}@media (max-width: 768px){.wpforms-tools-tab-logs .wpforms-admin-content-header .search-box{margin-top:15px}}.wpforms-tools-tab-logs .tablenav.top{margin:11px 0;padding:0}.wpforms-tools-tab-logs .tablenav.top .tablenav-pages{margin:0}@media (max-width: 768px){.wpforms-tools-tab-logs .wpforms-list-table .tablenav.top{height:100px}.wpforms-tools-tab-logs .wpforms-list-table .tablenav.top>*{margin-bottom:10px}.wpforms-tools-tab-logs .wpforms-list-table .tablenav.top input.button{margin-right:15px}.wpforms-tools-tab-logs .wpforms-list-table .tablenav.top:has(.no-pages),.wpforms-tools-tab-logs .wpforms-list-table .tablenav.top:has(.one-page){height:auto}}.wpforms-tools-tab-logs .tablenav-pages.no-pages{margin:0}.wpforms-tools-tab-logs .wpforms-list-table #log_id,.wpforms-tools-tab-logs .wpforms-list-table #form_id{width:80px}.wpforms-tools-tab-logs .wpforms-list-table #types{width:160px}.wpforms-tools-tab-logs .wpforms-list-table .tablenav{height:30px}.wpforms-tools-tab-logs .wpforms-list-table .wp-list-table{margin:9px 0 0 0} diff --git a/wp-content/plugins/wpforms-lite/assets/fonts/wpforms.woff2 b/wp-content/plugins/wpforms-lite/assets/fonts/wpforms.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3650990c0e76a8cf8b09b80b218422d6df7cbec GIT binary patch literal 2344 zcmV+@3D@>_Pew8T0RR9100}4n4*&oF02B-W00__k0RR9100000000000000000000 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 z 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�U5R!<$6V@Mu+@4u2MzN2@+3F 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 MkX1pIOB)CLAH!o)Q~&?~ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/how-install-activate-wpforms-addons.png b/wp-content/plugins/wpforms-lite/assets/images/about/how-install-activate-wpforms-addons.png new file mode 100644 index 0000000000000000000000000000000000000000..e58c746cc3b4d66e0f4159464733858acf00f39a GIT binary patch literal 19896 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/icon-full.svg b/wp-content/plugins/wpforms-lite/assets/images/about/icon-full.svg new file mode 100644 index 0000000..0865544 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/about/icon-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/icon-none.svg b/wp-content/plugins/wpforms-lite/assets/images/about/icon-none.svg new file mode 100644 index 0000000..9617560 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/about/icon-none.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/icon-partial.svg b/wp-content/plugins/wpforms-lite/assets/images/about/icon-partial.svg new file mode 100644 index 0000000..3888163 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/about/icon-partial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-affwp.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-affwp.png new file mode 100644 index 0000000000000000000000000000000000000000..cda0cc14bacf7434da0fa0a6b2526b37a9fc9f83 GIT binary patch literal 1207 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-charitable.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-charitable.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16b9e3f2d0fc98fa918b8f3f00b0bdbbe30b6c GIT binary patch literal 3323 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-duplicator.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-duplicator.png new file mode 100644 index 0000000000000000000000000000000000000000..e405e571b1ee7f1f05e3ec7a754252a70da99559 GIT binary patch literal 5151 zcmb7IX*iU9)F)d>5s6Yw^|UXR&=i^}S+h)$Y!5?a3r#2zGq;q8Gwo^g^ZQ+A`EsuF;XJuyYraW-hrEP@#3oA% z6FUhBN%%ioFSVvzEX!0|1Kms3S4`IsHdp;MJC9*nl-x>tc`mdM|0SH8fomEdbkRh^z1`9UN8zf-lsVFUQl2M$5 ztuTh$41~HG!FSLNc2mCShJCm`r54ldZ5IxkmI{7rv}!sk+>iI_*8n3qY5O}!;iKFJ zb8=p&Wu~}0omXFrx69an3V9blqBFktSq@=Dq?^wD9vAy4ezVc)wB8*L9?q`^P=Bmc z<9>S8=iOW)g&G-8x>h%!7U5I1aCrU0%h3e_`{q^b!pNQW;*K+Jo38vyxB;FE4EwCK zPSOMF+`F-|g%J%B(n1-y@7F`X==*hFl|ejPT^JJ-itW@9l#C!Lr(FC(w0yUVPKg+P zxvK8?*EeOsO^DI9LDj(>Uq~A8po#Yfpa4FxO$2O8Y%@mcP2G_)mpPnlxOW-QR&h3T zi2l+~^?g$Thf*;^KWYEG&RpL{+)hK>2B?3wOp0~hn}|2Hl3tgF8XGHm{%bhl8#ur9 z?gD!A@%`5E{gLf8keS=J#}_)Z3XjhFvmtU#yba}Jl5|9=TyBx>0ocm!`JK4qV_Xq- z1Lo>=Hsxcf_qcG!HaA_M@5#$G!cO8?=5=5=P8X!Zy=~yXC~rFqu0}dcAo;{KrdF;J zSvf7|dE2gK!Jm!1!-uVV)v*1ryhIZkA9|&&I=@8k)5x>Cp_KExJqDdaHvcTlOL=>u z)!}HmGb9|FF|{`uC%+Zj#~8-`S4}j@h!4Kxs3NPkFZ`_bqge?bF9TSJ5_q z>}kNnSPT_5w-^#3xq!x&(+V9~w@?QbejHvrsmU1*0wc`E*R4Kxkb56C)F{4pR<)+R z5pz;q?T1{6fnRbEis~VKUwg$f-d2U*DzlOlx=UIjW{g^$N_?t&Na{c7a?!J&OJk%n zqwv;Or?Spf4W0KTfN!tJ6PxqbNv|Hjd7ejz^V6}&ww2K)OhwrCAH9I?>ZW|;VT4Q* zhOViy)M~$cz8nwf$(MFZ$h2Y(QDg+)2A84+eL}AV^o3zp(_DcajNb7mAF!*H8X?_T zcbwx75pFWMV2V;aOM9B`q7faP=DxJ0W3^V@b4RVp# zPli^vG-RVC4EB`WR?+8U12fC*j<&uqZj%0S)&n_!ucWT`Op^?prT?SRkhO8_9E%!= z!H3L&o7n`Zm-e6+;48LOT6eqlC;09Sa4({2dE@R^JRMEGAWru_Td{;3{GL2Gg{{PN zCyXA?7GGoGWsa=SkRQcI|Ir%_jPZ1)iDurw5@aBM>z`mb zJoDkgip#&E?*p+UK{K6ysI!qIC>+LY;NIObzhnz<=c?WtVz>z|F`u6;*4ZOVPUhY3Faa@(*Nq>9J}wxlu9LSkenMXDtifzTE=4ni-+7k(#C_K{ zkhTx^#|E%UnzZbDpmq*Ey`PYcH*SRv0Rhg`SnSquN{%P-M2%I=G^v#=RDNpn|Y%t*L z(&ytWv@sQC5w74>MK@y^Z844p{zcHvK6j!gDQ!nz{>)N}zaQLNfHD6ZtJSWRV?&Hj zq$X^erfT&0sEg@SLN7mist1?)ejUiMnNyixeWow)n(9J9cbp@SX#n=Bq%;fe*WQdZ|~TxO;0 z*J|>KBrMmm0uPV40?qw&2Hl`7*y38gsmcxiZY5){nwPvL^?vN$exD|LoO8F{usO_^%to9K+7U=S}2(ZC!K1VVI z@9zZi_vR7j%3Ul(40eUti{S)ueK$hxv$FrZDVUSE#>tM zFL$~+-GkYJ%h9q_OjNu+ax#B$>w#f`CHKJWuQa&o>~rnxRRz*EqBO|?Y~fU&Pb!b0 zn&Gd;SfH_ejobNXN8PTO)&lkAqzk}CEE%H!LKZpT1F8io7MZ5*WJLff*kp_ng42&y zi?Nag?us?9rG6Jxnke{vqqO7k%m)r;V)p%d_hq|O=3QsVHzo)S*b z+2BampsTRjWp?ZgA1!pfEDA{O1p4+5peEl52HI~-qu*%lDLN5FHK#tqFK|?59pO&v zS$mHCye>EM$XdVjBSZuE+bL`sW*3NVXV7r%xUkz~>)DBqv4toH!Z1gK$4n%_LRmem+t&u0J3xVHa>Ms|5Xsz{7i}s z{1dI*Jx03A&t0*|SPK{#L|f(6 zY_qhpf|>=xt9z0{;-w1@i1kFtRIdsJ{8~e-4ES@u^XQ}LZVuXC6IvGbS+=Ch1lfNn zIqfIR&&cbriAxJ+F-Uz=W?vRHEb+SguC){+{Gox((xQbu1HHVs7bjU&DBK3O4zS5< z)3Qikj`%9^Gp>A_XJ?v40}A$`6d)mLErf|LYqP_Ea@|IdYJ%qEfZ4j%Z+K3poTynO zeCmB2@;?aGM`kj!NymY9QxwaSlmI1(^wo&$+(<{43d^0-+h{uFesib05I!erzMyX5}pm^YyJGA2BFd)%2bv5N4!I5K>lPdvd|RDgTo6W~J-+CISCEh^+u zBc9z_@8=GvScc%69`fo?S(vd?f>yye@(h$FT5E{BB9{T(soeGAlFw8Zqy%Zgy2N21 z8XG9tO7tic;g6Z2ULHe2WM(f|O%cl6E<;hrQc#AeZ^(sgf_cr`t`AWCCkt3MLp2}K z6Z9z4?k^yd_L*?c7+q_UMu;tu?_JY1%JH>XzBT5%p-aMno3OCX5fyAYCp9rhX>k9M zvGm4{Cz&EdES9+ow&bGtbBE$N_?`7yUE z`b*&#OQ}I0oj{B2<_e^m{9Vr2fzGDQW^}b`jrUhCVJH45F0C3mG27Vq{1#|WtdP^~8Y$jU!UR?cwbr{F=@A!$ zyRa9tN2f`Lw)CTGdc*R~t1U{Z>ynAz#K>4Y%Y4wa75Z@Teok0VIm{S(IPk$vR_yq> z0?zu?S*zJZp|PM@HrYei+%W|g1AVrQ)bgjAn{Sd_$%JRc$n2O|`0>o4eVW4GJ6Xu| z>Sen}GaIWXGeU~7r!D)rb$QUfGB)(n@&%1wdFzksmZDN7`k$gR8QFh6s3p%mBpiV< zFFg0zNj$?d9hc?ll6OCbg^TpyIqb|LnJqtYUQ*$Fw%Q4!o}{C+4&0uz0dE%@{Phg_ zY7dw8X_W#gc!N}X{C?U%?EU`RjVyYu7Ol?0x)9$c(b+5;{U2#7Ag`Xv(YsZIyJSsF zdg+3i2vT{JRyCGTsHJQ_r?#|;^3u&Z_(XOtfm_J4AtQ?Adws$xrwu7rm@A^i@64~I znb5vJ1eVo={)VNJQ~$9n9Om5N44e5+F_luo<%r`KrAaMbjeKw?c4B^HRMLm%XFrL8 zaY?+uzr}LlPj-v5-93EVB;VE}BMPCdP{zFeBjjhpasaWD(l|cDXx@0&CyNub)p&<^ z6We8C)@Y`7uYpR>NA*n2lXuzpN2L>fRKLyx-)%`l-0w${4`CnJiX--3xlDP0<9DBm z#&|E59Ff)+_{ZF~fp*D}`qo3&G9N$q&D#vF`YYdk@ZdeBTzk3ojblLW&xuT&jjY?1 zwuAq2d&%JJ08Oc(ToHh}WZbTCOq)}1iw`jU=2fAh2UcPQOC$L34688VWxQ`G3yS{rIQIhW_8*Zi&?fQsMVugfr{E zTvB>0<-*$gw>MIxpK^GqKyWS%8UB(N*u8S2yi)Mn@1Xy;67sHbK22shqB|Z7lirPY z43Oo=(Ql#!Hidgg_DAEGDQh(K-PcDHiY3a3zq%nXtGZr_pxPF`Jm&bsR>mC6?|k}+ zc_m~Z8VA2HR!(3#9t&cxx)_ud6)b-KekNkn*RH5Nky|3JM0#?=RNM2wnKOJ=O7iAh zbNV%MU7zHFg&@_Rt+Z@CTdI}U+gNYSd~Xz7XKIq}N4KhoQ=i32OGr?7>$vFjKY?GC Rt^PZ;S(@6Klp1?P{}0K85d{DM literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-edd.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-edd.png new file mode 100644 index 0000000000000000000000000000000000000000..69d4c267b751f64f597c2bfe25e110ec9d8d8d6e GIT binary patch literal 1898 zcmV-w2bK7VP)kc6lo?HL9(yj*^td$jR~X@zvJXM@>+GgodlFubiKuj**jNXluB; zyz%k!oS>n(yS!f0>9_y@2IEOYK~#9!?3w9u;xG_|(S0D<*d*`&s#`d$+DL=VlrUSh zmHw4**dN_JV;7u$^{Zd~2U4@kMrv)vO;#sq{21ct-$}VFt)OLPp4I8&iXm&Ur)0wE zgNknDl1)?g&V?V%&gUtC%ud7UGYZC*b6%b#b)J18w;%8pckl1BpnH}`%ws_C+ZIN{az>~pFo|* zEb9fPWggB?z|1?794&RofF;lhlM1l+CK(s2Qg~#_k4Vxx=e&Hht?J>dNy9o?Wygo; zd}Y%m!jg*Y0phYe_71Lb@j|URWnHH88o3U33hN{n!@jx$Tt0n1L4y>v)T6timL6)u za_0o5+ff7M6lAJ5RXNt1VOg(9^-xtuI7>mOUIw$Mgrei9TJ=$xSOU$0l&aq*Ncr-D z>%``&%X?W*WEa*NcyhD&bOt(DAtI-55U4aj`+J4aa4nM9fE~QNnGo9Bh(5dYm{82diPvi zr6gL})hXnQ5jr%IECx?>5p=|D&=)I0^Q^EPR8U5Yc6ZquMEJZ|zJm&y5o11WDku-|u>+rzczI5yT*@3nrw8Hc?A-xlW}Ztr;D#uU=BuPmEcKwHz8w(SbQ z&O&r^o$ZSkp|EY2gjr%&TJ=(4Gicngv{Go6q3kgXuC@jj3e#gU;?~XrAQ4)_#i4?I ztzB2Uu?#iLBB=;24i(Ae%kHup)2v`tLq%~#1{JsnyHI+f@TRc0R3ul53@Vb#$ZW&bI z0u`4_uY74#JPZsfaDj@?rLYN}S8HTYK@L=GuCG!qMcmycj5mV{T=+yxE>o8HKs0_T z)nZUV0VB-h(#4P5HvaCV;!!~s339n2oT+5dcs>=x=fV#TL-DQXTAmyUDwOURuAzLZ zgy*VgXs z$WURyNj6nK7y9F?^8$-c)z4KmUqBujeU|5=Z;PW?5}B{8PUF8W<|TJ_7g24frQPxw(*c_Q>WV4FWEYprDQ zUyw!5WRbZH$eOD?F`KKY_rwiHuLUfS)w*YV97Tc0x?Uw~ ztNa@`0N2Pu=2L$*UMve?3oN>yV&r^p`0t}KujoL1Aqh=0`YiYU_hOq9K>HhUZkVvF%{c%}GdyRh0mt_A0s8@{bxx6~S7 z+}^#sJX|R^uKj!Y8RZRmKY>w#(oUZc!ObC|Hp)&(7>GIwO4l{i{}v}S2W!_bnhI2A zr4Tyfb-9?^@e|(`PVdkxcQG`MguPSitlAQNlgUtz?&kEU0BfAg!QpqhMx=yq!v5)u zr8gG{WC1IUr8gHC0>NH=j0H$>cE&V~Pg36;k8?FP%><9K#A*1%RzFJGdG&h{nk0{- z<7(RR;$t(NYUf|jAbq?VMT``K*hp z3jB*X%PLrJ>8wi}p-eUkUgW9CEekfs6azC!Z;%+CB0O^P3vUA%jhG5uy=Ad#5|9<)-Z(k<$1oMrowSG1|Sv=;C+rZFxH&Ve~u3^DR zrQ5p%!RSCP&z(#Kx6*R!@xBD!gDA;#B52>2z$*kU8U@{73K_`4R6T=@Mp#@?Q|Jk9 zi`Lkpv!=MxItUdOTOQg}`OZ4uABp>8}tA*(2y9n%^fyUbB6U8?Sw(FHIYlm9o2& kX)H^al6mvy&6`*8A9oT#SJ}WcIsgCw07*qoM6N<$f{oagAOHXW literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-mi.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-mi.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e4beddbd9127a4e240799110c56c5f3798c621 GIT binary patch literal 7238 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

sR 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 G68b;gg3bc~ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-pushengage.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-pushengage.png new file mode 100644 index 0000000000000000000000000000000000000000..4a92d9de04db3deb264bb826d4adb95deeafc4aa GIT binary patch literal 1474 zcmYLJdpy%?99}jO=5iFBML4E1VswVNg>4vNt(}kxlbYr-mv%-{xrW>mhcLF>V^q{) znmjKFt*`J1gZGgVvn^+0F=4b%X_7q4`K@o{W zngAdWoLziqG}`s+Hvl9gBqk>2cQm-Gl-H5%vgvYP0b zRlLO8wZ)DYG}{2$6a9!0aAor}Qd*Gfd*iq8;y||jT=lqIK@VdSN9^y6gldV;dDiHZ zo#lMEYQ@=yPm)W}pJ`WDM#*nKQZ$2RPm{16M!DVQg-SV5#W!1w{d=eknvF6^q^~Kh zzKPYier-1HkMPnEslMM2#tFz`>d&Cj1O274LKSEHN<+UEiKY%TE;HCF#)Af$xfzU= zDF3X@yZ(h-`mRrwkPsJ)d4$B{)eF2Kki8~&G9yk((D-!c(ohlxUz4h~peR!UZzbMC z3O$m?f9ePnU7&R4Ej~$hrA2Mb+|qSYP@Y0~$h)qs$NzfoGw1o%s$QD#tQ$Nc^M2`c zC4UhevJN9r`VGiMLoVJ`&#jaEWsX3yf=}U3D{B)48865qUk+y@DB{R`eb>f-ipviU zwZd$29iO6GLdFd(#9uYf@&xSODwcZ}BF;cc1^iw%dG(Jl`UvUCNpreQ1>YLm9Ae%3 z-7wMiP|&+FXQ<5RfsAv?yb&$YFIQq~?R%ELT64O>WXmZvgj-`v)L5PE6m|vPyR|Dt z`I>b`%vCmcYc*1A_LpY{7LCy}up6+Rad2{pSx0t0VGgZbqZbjgEt{m4Zy64cu`;*s#?3--a4UW`T48Hyeg z4cuT{KP~J?;cLQ#x>`Gz{_1g&kpAGLQwA2%_06WxIB_$*Rx@bBiq^6ir^`v%5FM3Q zwZ)@+^Y-LOToti5_3Tg{Vt*#wQjA7TN{=M&ML{am`(%s6V@$Y}YZNW_qh2R_OOl-x z>7Mg%*4+_BkG+&UX59W3YOmkT@9RriP9&n_x?u<%Rn z#_H2mbwu=9u;Ym`$+GS$J6uqnUn%C~)a`4%D*0rk z5mpf{=uqZLA0lNv2;pXxT+kmlN=_o74M)F4wcehnW(nFua8s=??3I&I|4cFCUYQ*GZ zTZISxf+CIOl-Ky+J{81ass`h1Yyb=Fl}Donstn4*tH}$l&!x|Mmh7?f(lIX$GM$$- znz`S~YKz5&Eog3q>?&gpFfC(8 RM}hATgvZ%p%gkIt{{id6$+`dl literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-rp.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-rp.png new file mode 100644 index 0000000000000000000000000000000000000000..2c85a21328e53f1e8470582456c89c707faebc49 GIT binary patch literal 2190 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-sb-instagram.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-sb-instagram.png new file mode 100644 index 0000000000000000000000000000000000000000..2940cf59b683b41ee699b0cb7f698bde3836e571 GIT binary patch literal 7233 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 CJ@V54 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-searchwp.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-searchwp.png new file mode 100644 index 0000000000000000000000000000000000000000..e0faa75de8df008f7a88f3a2f764e109eec53e65 GIT binary patch literal 2190 zcmV;92yyp`P)9%*y!iO|$kEE!-`bn5 zpy%u8qqV1%rU&ft%qrFD8|3h% z4r+5*+@L>dYiZn|z1mtHH^{54gt|t=+6_kTCZy5HxJGTK+T&*V z&FbO>OJug<@<6Mro1|MHsZCS^VRy6qR_#p&;_X-w$ZA5rSl@`+x&N)AF z+_)r&<*j;ONS+1(+i56dr{o?<@|$ z>2X*`X|3D?`f*rM8e9pe9*1=Wq6o|2W%oF&3h=^2^!LXi8KB4#@yJ(K9f6Y;>jWGt z9uzI5qBs%HPq>RrT$_qK5l^_APVAj-Wg;4&YqS!e-C}7V=zog9OGPb(7GQZwL_NI0 zi2}k79+iMArD70Z0iN|rZa7&b(6B7crlw~YwOFq}%fcY{t2MHAI}E#hTICQ8kXX{x z-P3?1!3yxhjCqtf1o=Z8zrZ?!DD2$!s}X~=ND z!cPs%fb}%SQrY+av&ks*ki0ul;Yyr zbEP~^g!NhNu32TC!b4ThU#|X<27M;TatZEzq zgf)N9Z)!DY=3H62C7E)qB z@lmuAkXa|VNt9f%4CMOUfqVnH{IGX%OPgE`X1yhui=>zmL-wjO)g@fJPn4Wl%VUFgih+-nE(rPx%F`Qe{jtw!D69b@#BqDk)&?XmdEgc(_4f@cF z8}0(4@Gc6c4YCzvnI_@_uYw`qajD3W%J8>)Gq3~r_MntdDGwy0V3C0O?(sOs~-sw_`$S3g97#eNiefA zemd#c5q@BZVHuGjZScBY=~{5F6W^fWVGVOmLXjsv>0*Z#iIg>0ZA?>?ldOrENhNh> zTq_C0o>Z$Hukc`l^x;Y646}Tq-bh=#{ADW?$8K`YcYlrWd1^PxYRpbs5Ep`NY(Fsu zXF_=WbGDP=y=t{7Gb8+<3UCbg!Nd><=LbS_P@}oH2Ns^RfoRkW0h)7+7w5crC&nel zGYk(uSQ!E|h%hDI@b$8Fr$`%cC8H^E%r|%iJwGt)uC%I|_gthO&=3-5qCklQVz+Ds zI5io#a71es9#IyE6hDAcTaDF)BnWJQNMj$cFi#C~hIN$`p_o1)2eimv^kUu<>yyAc zAWPJUiCZ4=c!P6!>0KXuRW;7v&AP5gZ!J#IIp@O@3*=*=`GqU3=KcIMHUK1Vpm{)l z(~2RM?gWIUB>Ljr!|fCBtBFsW+W((K>1efzW>kIjaE~4*CbKaL1i4 z%vhZZcf_XsA9i{FtN+tzy>qLt2A6NfE#H`1j>82-Qv%QasycSj)+)e=Y_LL6TUg7* zaR07*qoM6N<$f{r3O00000 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-seedprod.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-seedprod.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d7f30e54cff8b442dc19ada03dfb8ab1bc1d5b GIT binary patch literal 12326 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 M07*qoM6N<$g5D7Hq5uE@ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-smtp.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-smtp.png new file mode 100644 index 0000000000000000000000000000000000000000..adcccd2210ad3a3e31c74037845a6b6f1624b9c0 GIT binary patch literal 8391 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 O7ZqhyWvZo2L;eqi<;$i3 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-sugarcalendar.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-sugarcalendar.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b426e22cb428253836dff6d191eb191c35d83d GIT binary patch literal 967 zcmV;&133JNP)tp=|Bz7s;n4r4bN{@S|I4ob>D~X@#s95;|DI?6o@oD{ zXaB8$|JuX?8{UTi00TowL_t(|+U?xyZsITyhT-{qwsWA+z5i=nx}cVVT_>rNnU(zf ztXlQOu^cA^sO!4_iC1UftPO1v2M3&$p~h^$jiL<{Zrn^wjrgRtS6x|Z$OL?et4A7N zf~R&g9wb`nf(MG)ad_lc4mBRRM#t}J!Z+5e@(16T544@1hm*rjTpDJ-p=nImU9xM} z&VWNWW#mQO!f2W3a45HEAsleH`hfWa2FX`eDF+tLNUZwkl2`?t%f~T+(W$&GVl|e| z^vtHh?uA*(?;+WZ5(f(ie)(X%4Wq(0gIz^G4T&1k^5Js%e)aJJJb>-j7*D%Xx-!<~ zhk%|$a3h73=JdBfFw$S}6gU3&j}lYRDYJ@@dLnGC$sQm3hwmxO`nS z;nkEqTe^u>n?Ci`PR z-YYZS&;d+k&WFsxb_DlxR%S2{al*5ovlJad%gj< z-mI&r-|&h(>$iN=60@$16PZQ+A~K6i5Sc|vW|j{kvna{T8f0b(y?pIiJ?pM#<+C*9 zuxB~SVb4OO4F0S{8T?tAyq`ZrW;lGUD@MP>m?W)^0dSx#ma zqRgy8W|r<*D~vL;jL0l4a)EGOVpcNpPCg;U#yg19k7M7j6MI(AYIBoP$UTVD%B)0X zjCYy?9Rg2e+!~3sES@>9Ygs%;(bck8j-suNh6BU>!1{l^)c4@+DZEOxxrZ>(t_(8X z>(8e+Lpw4K)k74KbFOr?uR_ed4O$+rgQ~)^XR@57UCaSl?@J$k(mM>8Nhq+HH?s?L z~#Lg5(f3XD%B@)f+@Z1A*%bvVxbBlyC?!boe_gaf3R)-v`K pu%mDqJ#8~Zt9D`k80xxCy1#K)Hh9~WUdaFe002ovPDHLkV1hwG?JNKQ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/about/plugin-trustpulse.png b/wp-content/plugins/wpforms-lite/assets/images/about/plugin-trustpulse.png new file mode 100644 index 0000000000000000000000000000000000000000..d91063e51846b18f9b5fc02dbf1ee79aa04ee4de GIT binary patch literal 2364 zcmV-C3B&e@P)002}71^@s6%FfE9000RCNklGU^U!Ca79jhExSK8+4BY z$|w)$9Z*bJf>a*#I_MvpkXZc=O7S(_QVgj!XcE#du{sP|YNN(|3u+aPq9+V2hy!&6 zO##eiyq#(*|~Zh*W7tySIBhyjH* z`=ZgH$4o}a9<=FMI6T822COBT&4J z{9|a|7i{)x`#@7c&-;EjYe3~deLw{!fc(k<#fZYG3F-sN0&N2o33Sl6=v1JlK>L|qpkbg1pgEvbw0}4*If{|_(jrhp z1OgIbz>e7Pb(Cunm?3ggtIDrg93HRw9+8q)mpG1@O>(3)ZgR3WGq?}KY3 z;hY5Jfrf$_7yE=!^HgMNQ(YUKw^7T<+{)@Bym`%4(0))pXa;RsJtG1Rf22zRT@V1Z zkkmpuzsOExX+b*sCraA#0t_w>nkE3rOK0b91CKZ!ti24Zoh5N)1qLUA_6UN?VL*)p z_2%Z58%N%!N4jgVW3F=bX^eCEC$s32K%|N*yY5Q z5(J9O#P14%n*IQkz7EY~?B~K_mo1x00Hi3;1VKndbC?>{1epPFVcid!{YEyZa z1+^|{dZ2k)h{C$Xyu3cbK`oO2wI5UovArb%i#r-#3ff(X+@?2A0@OKB0~6a@i^4j? zyqq7Qu(BjT5pQREj_qwlVg1RxygC9wjgtUH)X!q|(m@o~KIUajfpHZ;gFxA!5oFTn zAg|$)pvK!+>OCt8>qk{n2fF0Q16@N3KNA!ym|tJeeF;!`fgVm%+n*DK^&Ru_0S7bb z%T{YKf&7v{MG~NP*#1%Uy+{_;OS}YYgLX{BK{XdJEX78C@u0&JpvaF^PrwH@6oJ)} zmtY0+@;#sHRt#3IfI){q(VV=(}%`QU2_!a5*m)G$t7?@5B% zXse$Jv^|@#`#Rr;rw3}Vuv!U#ilf^`B8Hs-RYdZ7K_V|N9Z(ubxT2Q?g%MaJ7=^%k zQE+B`+3C;@e>aryN%{4bq~Cs{n0rd!DraF05p0IrB@84xE;S6bbGIa@tpVOnF<7jZ zc&Sx_LXBU{z)8G6Un8CthzW_z-pd1 z5m@c)B>V)~Ty;wTTOB4)8yvebG|y)UtU7iQrXmTONx*6yCRlA0z}mssd&yn}(L9|I zSc4=N)LMu^tyBPt?CM;R^W%}wpkP?plCY9P2#RcbHB|ts5n}HM5z>D%iMKiMYpn_q ztXw6oSIzSZ0;{P=1`C+PH+^9|a#QWH=tlu$MzvRj4aj6x1o6KUkt4KDvp$Z@nZ$Opw$G*U5(Zhf0;+S z!t&s4d#VChQ3A(8CJL6hU-87ol5>E;v)m%N`A873@-~3|z}tv5Df8z{dGGp8l!XZx zwndhsB5PX1GLX}vM0-JXB)X21VnH72Yu7pC*HU)p0^KVlv;1FaY(pj*&S+iM<|fB! zmYBRBLw)dWmB2EP0(|L;v`6#2YXa+HP}~M_#XP(P;2Y7n4y(mAcD+F72!pkrb6Ber z^X^>c|1(q;WDHV(bs%(y3OfIMx8DbE1LBr`Od^4?KV#~Qr z&Nos-J*k-{r|O>x5vZp)XQ0hgNYl1q{ymLOFAfK|W`cKkc*+zhd^B>9ljw-=4lMPs zUXwVA{DEQKbtYhKt9hPg-W_AIUuvdRq6RcXPGorLXcVg$Rss?n%o8~nU&)X@m+8c( zFz+W)s0)}iC8mSE$Yu#6UNy;ZopNCM_u}Xjh9~Trmfpyy7u@Ol-8%gI-A)Xc7gk{M zqxemea()=jf)LufO$xG}e<(Ywz&4naF*)1?A^xLZA{v z%-jU$c11w{P@OhC-f|*VGVkt4l#gG>xE(f`dy$iFn&)TVk+}$RmBb(}5TkYpZG7m% ze-0K@(2!n>cVh`NN`^!;ScRK!d71Uk7&?V~SN2U35ym*afPMDCafyikZNuFJ%u-$uDo z!tHW}_JM9!nS1o$*K;;Ok>I-et}^}T6U;mgr1QQzVM_JI)8f#2Ae$k1z6tK52L(nh iYn@NG*Sbe?QU3>$dk(;%G3Q7C0000i%JB92`uzRC)ay-z#D=Ta^7i|+%;sa0%d*PmWt7aMz~OD0 z&%M#<(BJT%z27cwy6W-xHFCSf*X)U{*!}(fd7{%QYq;j__pHU_cA(Nle!=$n{MqI6 zSc}I!c)vhO!*0*>#e~G< z4Ks5h0)!Ak2qA=!O3bn0%YsCQ<3NKP>efcFRvWnRxkB+g4ZaIw?1GU6S$Y@l)!7?l zJz_`L>+E*7u`9exmWzpzBFKx6Osql5W0#~22&0XV*+J?xxmO_28W|T-5A4bd2&Bzf z#F(-ui?TRS7I2^};PC6SR(+AAoUHDkEXqp!-YmZ-ka2ZDJc2;loU$m3p)BC=OR}tI z7U6a)EBV{Vb}D4)JT$1qTp^+~hSDr|CGnUqRj5N(M&2Guv&P8lpg~=wS(=R8hV5rL z$nUNFEZs(KGvJ_^;cmLtIkUh+Ua<;QeJby4eoB!y)OoUkC*&jVp&HHoz^wUkT`4OO z4*zf%1W?Vu$Di!2TA0?fmzN9uR00KQhhAo3d*vcFcob#q3P^r zeF?wV(<)ikX4&K5&2%U+#xMTHf`qe7!~CE;%QBFYZ$cq6#>Arr8M_D*Z{=A--G-spuu|G+o8g0pS`?97c)?1=4leKprdE^{@9Hr{iR128G8|zIWD3veJ;x zMMk@G)-icJf_xKX)H`P_)6J7>fQm*?gc_%h&kNKiNXx0+1m z@CsLG)(P`TYoS@XkGYP(DcCK}lHc(klY9y?!^N3%{UoZ#==mr4V`c%LiHtWef_BGg zXyZ-1cC)s48>!u_5#EThD63l5NUdsd&nyF~no<^JwVidyezQAS2K%(b^VRNT&5((e z$)Fiw6IqUgO*=UCv!I8Kd$8(fIWabFS3e6T5;pBm16i<{W5dEGvLJlNMj7?DJhSj3 zTWUzW4eDp50<|Gp6LagE?o9b_D2uWv>p#wVA6BJY%j(Eebrxk&)+GgR6GN*^8EOQYrn4hy03GNSX*l|fmM>L5Cjo0 zr_**J2#$>YkK=_q2fnt(z^^T~I~`2mH*#qCf9s#92K7Cx5)9g9ZI5uMf^+SzIqIXt z@W5o-;+8vI=MZG?Idht!Ls`!Bq{ z(&NLPO~(;VbT?y%*4YM1*(aH!2xqI6(C*5q#4q!MO1F8DmlZAhes_u+y~@bqMOsRu z9CREIM}3t4K1=<+8j&*R&$`<3M+<{NqD9WHyC8kbx*6fH_LoUq*goGEC6BbOYjP;L z<(aS=$$UJxQAWFSC50DJlvni2S%^Y7x|7l_DSXFqNM;Wu-Tic@<|ZUC;Ha&hzRDpj zUc?0VH{%CbB3szy^%@x=WW#fc&cM=Y@A5eumFaV@Y3;9KgnIS<{${JhSJ#jYdqsq4 zSi~vxsi(LJ77;`TVJZp^F*w9kdo26iF#>X0^v~bJ^LIpGp- z8xm;W5WnW>LlPoxwRr!J%B{EynQIt+^qz?0wL|>h zNr+DVb-Z(3!Qldq?Eh+S^NabHB74?XP>*2qB|uD{YH5VvsfJYWr$&$iyZ!eSIy2v*xy~q>TVleDVHW)##R^ zfW(r~dAVt#)ePzF*q)l}XoiGO6sK&%AU8KC=#=7+!(Oe)dOd(o&|mhec9A^7S^wQ6 z%>>aI7W~?6hK%YQXMZ>G1&ppw#}36HoRS);`U`#@ScG15Mzpl#7Y@PiiU1zHEAp`t zJjjkhJ<1at5_tP`(xzuPWNvrGMnh91Tvo{nzZrw*_tl;sk7A1Rg&*!SzxgD#?_7mi zLrsrcRPF9jo(S2Bo#>=}?ZuBa03V`%xQKhoE%B8YM9up$VaXQ>50+^#kUNA$(!0lx z&zB+Lc>i6Ep*)E1p9I<|9^{hq&B#A?2$Ozoub`?L zoM2uQKy2GH9IO10@MCqy+79s|4nZ$8wpbvx9TejsNkl!GV)n2PL9~W8w;$j|Jii=$ zrY4L>Y`ZVJ?Ia@{hc{E|ECdNY^FiXADu(L+k-tO>aaGe>R_k}hhIihVaP>wwL3Lg4 zmxPd_fzEOGRrT)0O93RkBSp^$gUp?_d;0kz!bu6;)@O$a_r6!{o-Bcc(eVIlx8(k` z;{LS3YZH+00E=Rv7PKn@6f@8LnGnYRwUTG4EL72a6|aUM(j0bP#>{E?oNC~TAuriM z*3ZP0qVPKdZ?TnFMD2k|=mHkGKWk7kKtQVMbWdI*AmR;@Mo?6>JmD-U z(_EhLUG^ymlIfIItca*zrqnnA_MMls5hQJYKY}=jdGjK+KAn6>PO0xM45C!I*vCRR z;R>|^2=!0}K>%^kR_=hyB-!l*BztP;xzKra{uNYSHzQ*BuLs%!6CRi1Ju8zIZrr>l z(1$?^Ce)wNn zSE3Hofb7vU&%1HRL0DB9B`oY}-kI+?*#UoVD%M2{CIeL(UBv-!& zq1$|p2qE+eHD3g2_CE{Kwhrf30#&`#^+K^ZXo`(|~5tw_WFPjvsMPzNj5U{U(mpNviF zMt0@@hvogBbpLNJlUrjijZgJ$^n{8{3Sl&C%c<#Sa5FcoL=*+`@B7^;6^~~EJlDX@ zH$j$CH}sX@>hfL6n$0K3C^#t~c0AQ_1zbg)O)^$}DFsYhg*A7?v3Q9DVtqi2u(&Ql z;wk-nTc_EUhlcTZb4BN=hX!zy-0S>Sv#c3QB~zW=@ct@TGdeyk(^Q>w9g1b;vr00l6TFB!sJy8 z4vC{{UjVNvH5*f^cLPGa3hQMVCI(yASDW`b%8eM8t8~=dN_{-^o@>;@II3m1%hjW|B=^KXr0iM0WDy=j;)#1ZLl1PsJQl{= zrUm!q`mO_xc~7%%oem{lqKD_+{3v^1zh1IAnKQ{|U$$JiITpJiR+>@10^dNxIJ`?z z-7%;qXilb@&-A`MzfuZa6E|97@=+k!lFaG5e1bi8<&oYK^9{J%4bGCWMB=06ZpoFB zd|!_`*q-<}btC0kP;lipK02sFHn&GCYb#ZSg$&5-2(oE7!Am3H+dtb1pRmD`VzCp! zMX?X_u`C*9a9tgH(Z4cWpTy(5-{%-0yK*Y~|!stSCWrjJLRuWJR#@#Kzn_bej9%Y4HI^>4c@D zNAi`q^PUz)F{qN@@tzM<!mW&prWrHQoBK<PYx-e6ET-IPo%`F5&2 z(8?7=TG=KheHIeL@B`V>dL`yj8b<0%W!JDOdiDBOoXlW&BonTDHZy{%c@zkE+fPDP z`UG)McA-|roSh~=DC3o1M}UwZFd<_VmMVcxniR8A!MDj1TwDD*$dCl)66&*dqQP|Q zWyb|`OahsZ^OCSXjKX6|z!x84PlPH$Fjv?Il_;pQ=-~oo&GJ21gvg7bt)(odmkwARzd}v_f%T3N42Tw1KtU6@RZGm<3rZxsIm|P9fp3OB-Nh8v*XXt%J1h+ka_wE_~f^g zA}7A~GB@G)ua4q zF!W3Lz+BgT6UQoriG-Z4vfI6|)p7j3aL~Q%jG9(6YU;!tzHw%dw&$x~{+#CGq%Vbh z9l*l|ReH+mizqrZK&$yJii6|VaRgj|Gx?!S>am#!|8>I%#Sh7f|G&Q8!)^&#|^6iro8(jJ$X=*cJ=Q zXzRI{+r-R%aK(yKONv}~Dzt1sLGXgxqImI(k`6AxEraW(u=GFKu1wV{PYN1QIqRA&s9c%Ul> z^Zo(a#1{M{fT-^I0c(S2fwi~ZTP*~f`JEiF_1qK|%8M{lKsO~%7~)io29hi|Q2)gz1#Y?HiK@Ri;5S)=vn z_@@h?F`esuZ-ZSf?%3h$^2i35sBIH7m{9(`np6Jri`IBqsae$XSgg*?_&u+K2PXSW zcpmlOftsehW?t^5Z^dnP&-Qd2Z+Z`TwS=bpsd`#d^-SvPpAx(*r2go@f7ID z?F?Tg5k|K?@G_NNU*|SC&VS7xvvhFQC0QhriL6S(h<%EyUiMxn+D8fm(Vs{PO(cewFTR_cDcv*q}X2O4s!Z+ zPqL2rY1qgY02bTNB9ER_4Q%YWB(DTv_`1q;D5L{ zj>OZoS+^sPPiPf{BLcaOI);r%LtTOV4_1ET3rLg&-~J={D`Xe&jE; zz`|9Zg;XpLsn!lmI*)o5TDWdwAs?tS1D* zr$fPCs`DI96e}@1Xqe2O_5Dx!ryV{U%_h^<(xh=LE z1M%{uqCZBGq4LANM~MlQRp#Qp{T|aHO2NrF1o55Z@RH`=rn2M$><0oqaLPUSXe?lz z1{u^Z)5G!Z@piLSCs*RVZ3NfEVyoQS`EsKl%@DQLdO2W(A$3MY6HEnJB# z#O(f^#Ea55rylJ}<3Q2`XR37J#qU7H~L zrQ*EE!{q{kxFwgF1l1xelp*aCo0t8M=+VFPN~Uo(kaz-q*Y?K%YiED5EnEpKWT;i_ zKuAjef%OiUCa6-kp1=NZpzv1@Um8aR2xrGFS51*`&1x55Tc9Sjzh2V3kae@wQ7Vli zLgLA|sCu?6bd#=tv4*&*fNFt$|L~s&VumYIceyrl{+xM9AesD3)#xk)>Uy>z$t#Zc5|ulX&X-9254` zX61eW!^y{BaWV}3yDmye7DOm9Mki~=eJF0Vmn>XGAfw7Co0OF_-(1>-Z-aEu_$DBK z_1OSh{7&E}w9+0x?Q~l_Rv0g+$2?b`QT<@264Qyqb1?ez$?1?)N!T>>G*IXsf34f< zr6nj>5QsmMU`#EH7VZ0^rVU;L`Qb&=r`vF3R;d|HNG{$9`H5= zUxR8sMv8HI?;rjcU7< zBVw?{1CwSXL(0RFP_vB!SVIw$^}-sixp4Mb#kWkGd+_Vg@yp3_ZHI23j0+&~U=Caz zS)kvEv>-;&!(}guy1(r``1&A!8Wqn%PPoT!I(0h(gt!T2sNCy18jxRnV=WhUG_?5n z!y)UVBR6dEL6FOWDh4JUZ|~^558<>}St&XmyjFBxZdDo;j?OlfX$Rj1j5-8K*}s-P@tWyaa<^BBSlVjE$cIMwEu3O^5vI&0Eo(Zjr;J zhd(lKOen0)IvGuHz$gmiix*lgj`lU(vruB%$6|YXM91r*eWfgH@tKxnYUkviKKJ;& z^%WL5ke_l&ng_DgCW;IHjofO+0A_NVumRopZ*UIH1>|$AoRyfTNz9Xm?(vF)Q7(@6 zgw@tU2ViJA=<#ydk2B{jMyUV=1TIW_?UXbQoFd=fzmj%vF(Ci3oM0NYX48)uO1>L0Cf7@tFcx$AYmtj zy{C(L;DtCA$HU}RQSsW(EwTXJ9D`L*{v|fc&J%fm)gtFA-L*8EaVAN+#V*2v$fUcf zyT>n&Z}UrovmLV`?(B;X+XLcUz87Fm#$rDx)hurE^DCL!f6*f63f=Yo$0F9^#h)c$ zhAbFmUoX|I&Dyr9&=&uifKLc!Xl3iM`b^R|ld;$qB}oQ9WVv6#u@*V0bl0NXk&*|} z&sMKY<2;SU-u~sRHLT}gS5S!E2BU3z;@e704(JqM!7rm=<>{$?7cW?hKBi%eMYm@e zwTca_339+B!tnb;f%++rg=~XJi=1S->+Rf<=Bgp<7VsJk8fMG>J@K#Rqb)n8dzF~m zNKDqu9aC`We#Siqj6V${FFL)kZaQpx>oz5(Hb75?=t=91bStg__axwVI+SY?k5_id z_GEk6f-3~fu_T_;%U#E!-bEh`?UvqiwlisaVnhg^N2b!&b#jp7 zVzH|v7*b}SZpio|t7?MQeKRS7EJ`CWjdag()(%hK1QwxFH;+F#K3jLZ0ATtg<_^P) z3sR2;%wb)NF#dJ*eQ^W5IPmhF@`M6mO?KE~fMOb?X=}2r;>Q#9&#m(SNm&fGe{fGi zYZ5xhgMm0h$_fxD2;oz!KS&wjYqK08EL=5N)T{9fqyoB;VArufa*^7@Z6#}z35>v@Q*>rL222d4_ z!Dc|=7Y(zZ%=S8VK;vxaHeht|9EquLK-pxzHy1@9N7(SS_TXSBGiU!kC8lvKHV#V4 z^ql7#l$cv$u_yOACM*mY0(aSD!l=oJvgrg@T5(fyyFBXZzNnJyX_$u}{F}q3WRwgk zbNnpiyL)`YKM4seYP|2ud%s`pe-Do{s{O@dZftn=IAoMlKUv=&M2y|rclu+wx?tG4 z$O7QGH5N;k)za{d|CVh{nRBCIHs052-WcG360sxkG%gQs{mVw>ez=-NjX9ObS` z_CgEcr2m(SgQ)VR#y?bs+;#qqSknP?SY!c_l55T)xIAHbco z19rkK@9NV3G%Af#F`o_FH9!CP0C>kkQ~2eECa%jof%b8r z-%$xv37Pcpn-BiGPZz=`mzzoarh+~RG)(z=2LH->F!9Y8?2{8Ti5AozL{M$5Wm7=D z=h}Ugz;z^MQGzNP4K0wZ^4zZ@yr4i7PpPRy2r3#ig&v+jd8We$@+U*9ug~AD(*D)Q z`-CbU7S--S!CNg<{bUyMs71_xyBHcja|xT#YA}tO0X>x24ervwDHY1nYMWFyZh(FT z?j#vOZFk^4?6-wmo)vSmf|?*+J(wo3Ll?NHf^%tJi3!*FM^~|sEsWHXwV-(-wDQ{Y zo(0yyVvZ<@M?uCeYRDS(r&wrjgf{8UDJ+fD@C)J%riT1|8mS^t9gIYWIo}`k{XXMV zhN3&)ug@PcwYpm(~A@@a>-SGJ)_OgR!yrs`%Nh%6o!=gl-pU|B0o-JZ(| zG_nS)O(+gZ%1Otjl&Vx*$xx^a0<`Ihl{HR#lsPnJS-57?k;*L8)67XcE!LEllFgPBO(muTj3PWC z2)ExN$T(oSXqbe3mI;>cCDPitD8#E%#RK#nXaH@j)N%Ose>)%B;(~ z@L)CQW1aa(X!6f*M(0ilLEX-n-?1ql2vVD;L1YZw{ic z$E@97v8*}Gq4B&$jyCkmcUbb5HCLc`yudeBJo?=8?38rGS<6Cj&2-gVLVyD%6tV>> z{nrq%D3O38%-^n^E?>bN#0Y6J26wa3;D>AGX4$Nj)`Mzd%b^Tw7u99O`p&Tfre?Q^Wm?|+QxNl>U~Dy zmu;G8c|c-1IKF@tHn8HZB7v^u#a`So50J(X04+$4ANR7L6huPH=f+tdP)!TCYp)eq z(5D?W&Py0MS&@?`CFg^#sj_dwGEWk7XT4U-!VN7*A7a9Ik6-sS217o<_7eGshG8iT zg=`DThk4EF-*QZdE4^4O;gK&;7DPED z6L6YdY^NT%^8i{Oi^Xh5nUVsK3V`Mv-4}BsAU29G(uuF~TLK3*qLt0(80=U64AmWL z%u(h|$$}q?bO%FLLBeg^Ok(OhkQ_gQLkDUwIPV#M-B=P>-y?*-`LhUEx0tsth}=%Y zcn4^;d=vC)zaD|6siuAB&rWMG+E7gyoC*yZFcqX32C6*^%rPnE<_MFwB?&4Z|=(w=-3H z7|Hw_d4AReb^;8^>J-hZLm`suPR65FZ)$xScEAsv2jO7(H**bC86Y0y0hJS3{J!x# zpp$p8*vnPZkI$Ka^0%=#$=5Hr`IkWT6R87(*-Kx7Svdp;qib|mGjD&e<|?4mNyF&X zS+^{hTmZ!#A~B_JRDg3C0cM;qzHKphv&=fwKOw<*MnX`lSpeh-0e^QKISX>}+Y_7bs{R0*K<*R&^4minG!L@MnUmE?8O};zV}(EBeOo2OeI-A>*MnMA#vvvFp(W z@q7S;nXgRJE#^8IG|XzFOFjJu_f6dU^){To_Y2eT-PW1Ns@{O1YoEg$Eyn{+Dlf-No=)z#1GHi6~3$Ujw z4#r@Ao!XP|t$|Nz?0qgFN*F)CP#_+nr+S0nqP8**PIIRoNXfv{Buz8<1V>?fdFTW2 zv%9B-$_EAuM_$k{(-I61Qrc*#4UsT0bMKh=+kP5F2M3+t_WkYm-gNctk5C(0t}Ys{ zreR)C5>V(X19j6Twt9~RU!*S+OmU5KAzR+FpKv)5o64PXRRd(%BYN%{= zB{APvi#Dw-tZ;~^q_n}(sj_3@gZ-A2^k)*5!EuveQQcp~js2*~w3y?#DZuDroLgmAh*HDWCv+0CE~Q0G_4$4qiq0536w7(Q zXr8Olb%?mcfkW@Fnmzoru&?~JzXnI%H;nglipok2dq?5C>%U^iE>Sfl#7d9_%FX7yxM#I_Ja?KUrwF3P_NZVp%c5^yBGU& z2xo`1&&ObQi2}2tcKCDF*&0`AWWi6RC!Iv>@TNhY1bn2Dv&E2!<>W=S&x|7BNzf0r z@Vzw$@TDgNS=8GXcaN7FQWlfj$N<@|wT~8W5t!HM0LiOGtT1HWVvZtVOctE1^9dWk zr;Q%KyT@Wl5{#RJ4ayDq9&pgfyYxKi{ z_;){DwD#?~Xc4FrwwXoEyj{}#kuPo3=oYxjQJFhYB~VmcG5`;JE0U<1@xq9rvqCq6 zPJA)&X{=G)A)=!hdZ6BMFOvp>Oeo^}Ga;RSczDu@*ABmCxlMt9>zZeG@uj&M1i*PN zJ-7R7ogt+vIS2-qpMM&QT&Fa4>$5@@ooLz7o4Z0V&9&Zb8;hFy&AVHj9b-{Eq7ER7 zuHM|rtVOrk;bX#4H#Wo#o6dC@nSU_o-|?D91Rp!zrcpaE2 zrPOe;32IXFjG2(HcXJ4Lx2o8XlizLA8U(!*4;SxXQB!hDOqP>v@yo73ikWmG9T=$C z;}Bs*T|vVb2G}L>tLXp(IU3M>kzTt`Z8Gb=vB!UF+05VrXxhclP?-vgz9ex zsANI+>oO>$B~&s7dr)L(x?DPkz)uko#NX7hS~~!Tnka%2IL~Qof#pPWunh*F(*9qG z7V4?(hGfCF{wEjD##s~}s5(z4(tsa5Ut9bSOqw9xL#KKG?@~sPvdP#L8@11+-`wp12k< z0iSPHlrSG>fPrN1nl?iDxPQ&TSZwwYRO+9%2oIe=p6pp|EtUIU%_w0d@JK(@9B-_F zn2y_W?2>2BRqW6iAGLYlBD?dF?%}oV4Xqd@uiK^L-VZh_MNh&#cM$%vEZqj&` zg&a)-M{SPbT-`_^MEch`rgLU}W6^+4}TN!s%m0!gw+xcdhco z&z%&fRNHIx(M<`eHDS*m6ku5}BJRx-4h0@9C{9Luz;k;vegzK1&K6*8E;rIJT?wj^ zbq6CX<~%lnYJI%tFC3QRU+)m1Xt@_^mX8xn^}G9W2vb`&S(4SC_vYR@x^ox)FTZ0N z-8EytdiX;6O#;ox4$71(UgO1$+G#|B4*~DtGjA2T*NsMriHxIR%7B?^TAd5PLM+M2 z6O{h2eQrAe7D2;Y0_qHpwU_fJjLB0F)31(~9|h)?D>Q%oET;Eru&CLlM~njWzVIdz z2^IwW&1w_b9pVYzAlN0kYf=epr}UnCLbS%SvDi|Tj@IA{LNGB7Sg1CYZ4r~`z>#jK zusB$Er~_E{-Q;5;{}Axx6EQmil>NE@rUr3fU+(6|;z@Ls*b7^2QR2J1$!# zEf(tn?+V?Fblbq6XE%kDM>FJz6z6r+%B~*^nOe4scehsClnfM(Ik-ic&OI+ZLShDE z&-6UnlYT>JsdOrn?kZ~kbZn%stpm44Xf}(U1I_=-#uu~`+wYXZ*1j7H-aq|V3OEk2 zA-6y8JviWS!$dwvZx0*xA-C_ZhN6C+bdNGsUs_Kk7f0AX1wIuLM-P63UXEy{yRKmsBGYAFDXkif{v3Th|fA73nO{8<7DzgNX#!#gx6-lC<)gL6E)bqA%$~v z`6>lDsHCbcroaLGY&*{7$qFG9IPp&GjAn!{AteU-lN)vKi^_OK=4UBigYC<`^3srX zP&>}_RA~&B@07Cc63=7##8Iq=7>nb2C8epCv;ZqDyJE20#2K0aCMy$11C61^a00$7 zg+nzX`d`WuoIL$XCPyh7D>Wlt2r!`?_(<9U*sIDD$|SFWn^cY!1NTQwu9n_;87 z5mEOuNwm%zdp!Os)MZm4$9VWHH6xzCFoyQ&wkuM@tgnu@mtW(Kof?4Vpadh*#J>Ib z!K%aXGFyCt>PeBsMAKp(3iLgPKgm`KZ1MZvJS_cQlm9UyqG_9)bL;6J8_Nv@V!642 z?clR)U1R(0hqAOrG$UA%H8hN)I3s9zH3JkoRI*QvUyq5WT`-;7bstL7lq(y?pK2(Tp~Dp{j--41 zj{bvLrh)zK5p>u1A?y1w?lgHFe=j3)a$bAHX~)Mmgfg{*Ahmsw3Jx=lGo4cjmLoVF z^6Qx1l;DMZwM!OGP0>c@&WGsT5Yo5wkHNlyw&OL=cAT1&w-H%A@Y_hA^cHrEX|dwH zwJd5xPreor^A=T`reQ zV;2sxVmBXuxh3_3duWZX+>LcCYU%OUV_(eVb?AlbSR8>Cu`|6djO0&u4#2BF$E0(U zz9EUOayLX-oJ}oa{&}VCxRK1QotL1zscT<Blj!PGBFExf zuFVS2fq9{)zW*H0gHuyAO?oE8NWSV%i9Cy%vGLQ~GQ<_FG>L}sZ4paU-K^Qz=4pHi zT&)A5U@b9z4JO#6DidJK;`Y2%1Wj%8jGCaCQs&$R|9)@HTi43>-&=&s4S zU*`ysraFhb_odTa!)X`kD6FnoRDsYd!I&3|G+lf@ON8U&L(*FJc&|udh0ylqSZoNG zUCBh=3l5ff+vV3D@AJYM80=AibAfUvR8^+!xLeS?X2`Eqe3>VtY2*!FHe`*4g(k>T zGQ*0l(DcG4!p50XM)`_*ZH^E`xnF{+OpR7MPVxrSZU?KJ+1`&b0cb+>Bp5WV z$nN)8tz}H06oaifVIp&pkBe@R`_W2d#D+NSxF|wHJ^B^_oy%ox|DkvTFBAQ{X%?WD)xYu|xff-}9`gOWv}&IU`cLOh4E^s?peV4N_Nn*9T>Hjg z@2X~3^MkQKW7jHU>@!(~1k?H6#bICT+k#2yH6iOeMhIIZ7&m;r9G7~jfTSGXn>_yJ`)&IgPk}Xm;YB1&pR`-xUBKrOKZ9mc2croB|Pff z)!CmrV0}2BE7pUe*M&L|=aGL$ zYj)c$u8XZc9RKpaNUT0S?>6AA&K30ZG4_PtKc9Cv6}Kb%QXw}&ZAZ0!&3Q{%$}h?h z2^)${Wi2n7L^u*IQ$+OpGTd+~g92mrVV^B?1_z zbN}9ZWy0NxuM;<-^7oiAd6f6FA1lemNj~sAeRNjl@4mlVY)+84%w)Pjq@xYGVP^iU~Ww{kkjt~xlA`Y$&R zNnZ-kyQ&Js2g=`yVdpZF+&V@g=XwlQ#?1%1kV^kTTe(f_g;@MQ8FL@6t|y z?1;tkZL5&-jPC<}N8{6kv}hhC-&I)zm5a>F2s;VOO-{45&6&Yn>*W*%z(296xmu92UD5ltexfr z;?Kb$u&wYNNOJ|GS%Na}QaQWoP9#d_91XKyX5{`EibH3*4>miAp7VJZq{yAOgq9q} zqv)>iD6=waI3Csw67c-TRCFI^-_VTM_%R7KdgG^V0b5XN+gTj(o)l?w&r7@k=0^+MCUlr4_VJW0c-%8cEAWs!dK%WIteRu=Vn9V#0-bv_pR zrczl~J3#LOxF|f9VJi5>yL2o-jkxtV4fEO386Hif0C5f+FH=LSd=HqXXkL?Ku7k(v zRwkgl+{{&yOgKVUoJk|T5xYcIeeQ*IiJ%jI`MxmDpvjB-i^XCy21AYwY((>%iZK4} zl=CquB@NV?JS1k?ev2e`$^`)FLv?-#?I;J0Obty#TnR>X_`5R-51d+dWE8|%D3c8$ z^frCm*Ho+@DVHa-;%whkdcD)cGJ~E-H6$_ht`)vtoJd8p^lDJ!w{Acqg6`~>33z?jNFU#@ z=gO==2z$rwTE44#8J)UGkxQ?Gs>mJpF1neh>A6~dpcy)PqsjSf5q%CIB8%Gh z?Ps0&>mWWY3_LSAknMP}RUsK@OPP~h{a6O5o(>c6r>{rIgy>OFZ-;a7kIza6{WQ>7 znef2i$eq?M1+>_bvLxGTL37$3&Hp-A=%Xbk^^bI-{@XyqEOf);a~;{$iJWR$W7ux@ zc$re~j2-peI1vJV{LurM9;?ems~fa17XW(X4jhEtT&_iVYQg(FjX}$MSkD!n-tzuk zV49OcPrvWY9_&4se!D4OXo5_Ls=Z6HJ}hP&FUcH_jU3C^K`k5D_&lBoWWUfF1FhWS zXRnd@2xs^CON}{^+}K5%+V#EjG|!y+t>?&F39pK^z0uSS8Nn8QvQMO{vef%;P2QVx z7k>PlFOiC2sXKRtRS#L)J@jkG(FE~%T7NQX{f|}o*vTgwl6UU;?%dmZFy(f4o+Q(g z|C{5$f_t0vo6-qwoDzekHbadiF7$#>rHZdPPN_8xd? zA!SkCP(Im+e7ZDrr8fE=k%=k>hn1VDcm9-qb-^db+934v_xrQdOr*JNehj<<>UYk6@ih)UnYsk6-g-3+cD=R}zXg$1Jn?8!JfozU*rj|` z3lmFg%)Py~Y3-4~^O}zuJ8?S&@$nh#kEiApy!*dRMnA){)C+u0)gACiE;^8H>KZ{8 ze_g&E_%zR`JMN9uj)^n`d%vSKX&R9MCNK8@fiDYvCvB$)yvH=C{<>qGS@dxuhT zgm4Ok4-NtsAF1gU%_#QZ`~>mG&sxJ7&o28g%aoWwPwxtH7y`>Hd=%5d^wAnKib|Si zEt79k0F@BQ&8n-uy3#V`c3CBNxU)OFx;CpcQ&*B1MsnNPHPt)*_0_PnxEB9oTR~CR z^Ky^vmb-5!)t@^cuyv~*+mAB&yQ;y|c8B~8es8}HWgW}?n$FYJ?(uH)0W*JWg*u@qXV3SVfsH%6j{w{d;B>~~ z!wX%SCK37eBBn-{j#KsHyyHj>rh-wd_Q?5Nz3^h?Nzzye;Q|cdt*w0*3S+TmJ}VBA zMGO;F0h6^Qxfe&$AjBoBO`b}N3i|7Zk~z7w=813GZFwM4B97lq=X#NY5MDdNH6c>w z=8*OB9UTFdt9(ogz2J+aV5=CfC@mt9C?$WRWxLe%JNirXVxhPZR3Mze_4 zT~t$}_>Y07s|Pj;o!MQUNF>SMSOI!47&nVBgQaBo8;@JVGw)DuM(@>*a2Cf?>Y~S; zDMlBH5_1TqM$zun!RgdkDd35~1Jd zN{=|hPke{@9U&)E^36X=@anQIw(YOYeN)%rY1jy?eN%{nbv_*p%7}K&US0Dd$(>npoL+?M&54~Jy>b~wCZd( z?k)fo4mf}7zHa=qxDeL5kmP)Se6Ktk>Rq;jveb>6q7X`>Hg&?+3;vxI@vmOiIPD}m zyg2FjyXEtZL+zh55;;Cc;7}LPs4i$?cO^W=VHJFpH85*|bKZSu3Eq05bzDf;PLk`k zFzB8N`E>ZIrM@QSQEa4xIef}to@tU~=!4A=#@`q=O&%b>lpJZ�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

  • n6+u%lWb-SbNnZ4sBY{&;EhWykYa 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
  • t|>7g~**bFSuHM%pk{iWY;Uv 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ഏXmm&JUzr)}O-W=)RRYL7+9Jd{BJ~ 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� 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 z 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 zUB`I6<Z4v+g00000000000000000000000000Qlk^rAWtBd*Qq>00000 LNkvXXu0mjf;6+U( literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-coupons.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-coupons.png new file mode 100644 index 0000000000000000000000000000000000000000..790f8a64cf21aa4d519c2d499547788074bbfb34 GIT binary patch literal 4928 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-dropbox.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-dropbox.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0e1f17ae1fcc01501fddd2ebf38cf62e13ef51 GIT binary patch literal 2610 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 H54-q3w3XZ& literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-entry-automation.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-entry-automation.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ff85c740eec1f7cbfc399375c708f3fd25b8b2 GIT binary patch literal 3639 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 I=akR{005~Ts{jB1 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-form-templates-pack.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-form-templates-pack.png new file mode 100644 index 0000000000000000000000000000000000000000..d53df00d80a6a7c336048845ddba0f4f1598382d GIT binary patch literal 3204 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-calendar.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..587936f4b5dc2a5a52fe463e4e340d0830e54487 GIT binary patch literal 2155 zcmb_dYdn+*7k_3-}lSA=l473|3Cl#`EbsslX3hQRRN=k0RTY3 z(Shs+00{W6L`z8&UO?Bj1nwOF(S!2s+c#3`^1*6%aSKX=-mlI&q8U9kV|VCQ&+3)t zn-b6Q|8Mv+jAH7go1!y;$vfyMC@}q43!X^X?KQ^V7rEYXcMF0g*W1#(YNO zTE@MpbH9yqpA>}Gr~LM8!z*{?aKf8Iu+#hO^B+CocLS3n&cz{p|Jl6# zd?T{#>#@w0&f(?4)>(r{L8q{{pu1Y1OX+;Ok^5*pxM-Ek8Q~4J`B%l!6W_N1fK0q2 z+14X|WNz5<>N5yS`D5QSB?rEu?+>fX={fDcfFz2A8d|?2VqZI-5;msR?u&aaExGr< zMyTggzjxbKYOOU|X|D%~&{JYOR9NnvM58@U&T@3$<=o(z;Nh0)7>m0mm;+~+x4HLa zDrw9*RxP!1<`SnwDNb;b5U+G9m|~(+6k_RRe?2sPT`Q$%cb>~zv7Rrs&ggn(x`Cjn z>4OsYJ9eA>elR#C^sJsb>}XrV*hotbtiVJ)FiMDE?Hi#bMzFGv&=iI507pR)-Zfd} z364M3^~L#nmGVaImK{giOF*UQ{e0Y7%ZFX=xIrK_Z@3#*_JYG8d+B zvAD~BGaw3?e-&Gv#x|6{1{(&BS9}U9{+jFxdy*dp@k@fL%af|eq=0{@NJ5w{~omfS{ zy%t!mx7O)aZFG-QOp{l;JZuUU&{Iver3Tkhs2vaF;iOMY$j5riAdOxj;F&|Q556K6 zA_@hGCAmXHA`qq6@mb5J$z6H(ZsAA3TrM!a|GL^NFPScQ379L8lGN;@cQhvubJ1{V zsIfO=JE!V?sj45oIEa-?A^rT`kLG2(RGnw9(2^^|1@Iw_^pEVp#05i}WL9PKX#k(X zKf%r+ca^{`JB%YZrasZk&2)`(P zpO#E*2cpcmn}a%o^b~I=pjnr&RGkpB=cFA97TeC1EPVZaP6Z*7#kQAiHWbR`0gEW^ z7;op4GYU3Lo&`X1sIxSV%#f)C=$Cq$3nqXwxYT|Y0%{&pPr)tFto`; zO90fBzGtNE&>sCr{A*8M~f6{UGEXFciI^oSY#hi^A<`6?%6$Q424VG?C5O07cgm$t$BDC z<2~|N);7_e9 zD5^$k{(A*Hknxhe)DRB*>NIS8Mns-y^(!-iP}sI|+3={*q)X>1fHEZ7Sgz^q`>CEe zj0EX=0tA@`xT-<9JFvn3KizTx{pzPL&ph$%kMlx<)Qv1Fp!B5__~M@gn~}1hSq>Y- zutwS6L2RVWUX;q?Z(Z1fZNkw4HT^j|hd1f)T_s$AF6kMO!%0HRim@uIIKuxly4T>Q ztZ7`NZoAzgF(e(uyrSs1nXj#~?kau*zs$0zO5-pG4j&|}l)k!RX@s-onCN_(NgK37}wNL z?w^!YZ2$DQCXHA=L=_01#5(Y@YJ|T`z)am6*}-;R%nL_X|7G`x*|I0=TeP21`I5}v bJWIa?}%OevbT^L4IevW8_S?5(}EVVXNs}Jj2J_S zl0q1x$XFsYB+DdQo-=))>w129p8w$aVXnF6exGxn`+l9*{W|w~&vgeoOF@1qeh362 zXl-TY1c5+_+z)~mSnw^!KY%a3f2~|YAQ15b+z-^+N#Q3jLPMM^O(2!sGPB?Z+|St7 z7y_xuL~dT#0fERwS(_Q3iGKwk3wzv+KRVjdqe=EWlXJ7n#sBC;55+W`|Dls5r;aMHf+K<{90|j$RBF5-KT6Zm)I7=O zb1TyKv!9yJN#h>~l#iWaMk;l?;3)Q5*NVpJnX@Xc2bIOWz4)?1c69JS6Kzhcc#r0^ z#IDP&*<|hC`oNKp*m4v*WRwl2P7qF1b*N^tRI6GxvJ3V|*yvePD`Fhn-gNIqBN>sm z8#luBRkXHz$T5t?nmX!|VNKDO6U$e1HszK}w!3KX4wxvyX}P=b#Pjftq}~-r%C^={ zpV7ckiAn#pI{K3Ea(vX>TU|n3e7JN!!l^w_`1Xw-vGlB`mqvod3lBbK$j=vR2i&XI z`_>fuB{MVblX7Z({(hd=M{p}7H1WyRD>I79c}6My_UBGNvEMam`TEkY`a`@F^>$LZct!X#i9IK59xkYQF z?FCput;K6o+Xn^@2sk08z(%O^``#qIsgCpMqVYm( zIZvvvwUY{?wifg4$8Cw}n;)mvg$(@Ubzt!8726AP8K0;a#;3(gMTSIK&)m_NlXoLB zuBOe{l`Q!cIKmN9zkWZmcNU+vx2`=$D)YA`4+WU$Cakoqhe4&#+d1j+iHU$}I%dO-;)WsEP7mwvbzdQ1k%3B9IYYuWckEYU&)omTp)#-Mbz_yz&D z9J+Llal7dQN^$)jg$;#HpwMYq;gM%*93ln>;wFdGRG;paRMg zHWq{<>y!$z|-z)&bO@oRXb#>IPqyQc25nIP@6;C3DvWTQ8!**f~4tI8#=B;RRX3bWua>cGrmgq}%Y#*Cr=6 zfGbC~`EF?9tD%6NyBBR|keo-zXY+5a3rYOK?!rTi`+FFd4@?qpUaOuBMNFhQ9$q;! z6p-s6@!ek_HMQ@!IK>NvPH+#r66AI23Np+y*PS%~rjUt*DV%p3rs&6>Ay6IaH)p?V zyRl=F2)GUe5$_88^Z6Dwcg{>SWhXS>WZ-x#@bHsm!s+SDZYJkQ60xIM${70iJ|kGk zE5|3Z#ht4J-1w@e&J7GbT23@M6~g!N+YfT-LxYs1u)=_;W@Q&#J0FGh69giuuX%sl zUGC~4c<`-R*^+^KZH9+G5ul7{H>)zpBN0=FpK*>7-~STwqBbypo3Rt{4BKFZlEsa<^<#S2qF`IgTgFPcM!vB3kW$eUWGCdPPp zQ3mks>rHZRS?F{=!=C#00t!KdT>A$%93a)%=%D^S)}?aYd#mwfJUne$Q#Y~hJJE&O7D3C_{$W}^?0oK^zHxootd99! zY~mQK?NWJugNun{HUZ}fVg@X2lAKV5wViewo@b3J%hxnJ2xHdwBoZ215Geb#bHg_; z#TI(~`n$^<3Fw4;zCSIfLX8pIu+X_XFy;4k$YKWX+ph^K-TpOHhgD8n)UIB!zIy91 z30Rv3o9D5?vkFy46*6X>q}vxFP4VhMp=J4=Ql;N^n&i!1LSX1Dc_aN@t%a{FTwO^U zxY4ZgnJ&O>7TQR^Fk1LY=GWbHht;iSWko>Bd@a)^V|?VkwxNLiH#|tovlt(qSm~!6 zTq0x!>ubK$_s=> zwQfbKoCu@LCD(ziss$@)i-~9Nw~bO|n9>(I3Dg=ACtDiobTQfTXq3ud8`vCQekD~{ zNlD`>$7$I15SxIT0j%nMO<>?or9+gS4)mlf1I(YhkwPZEcy6l+No4PaI+-xSM|>#` zEo=8iY~*amx`@I1j83Kv1%&i@k=QFi%O4C9^f2@(GyFZ94v>XX7eRN`v$Po0pm75V zeW2)X@f$Dq0k5OZxLdMcTtBCRkVRo7W_8r)v7hqBx_#$Jwc7SB+tO?hH3I6itBG^F z`Le|KFA-T#mVnZ3Scw8NAl`v!Fv#`oo2q5nnFLXSlINSNr*|74_Ymifl#kU&Cg7C7 zl15l9cWa67>AD8zgC5r;&@&y`s!&*)wvgbr{qIa-`yY%X&MjU}i-o6M01M??{9P!2 z=HCmxyAnKsk*%Y7zx)MvsVVyic?NENpHW5;)jb1;4EsUrlnYGxWP#t)?k?9(qBu-9 zmrwk>oCc;DyM6XuKh$l7S$!_dNKOtyNan_o|SL9hgBQXxltLRQZ{5jOp1 z^H4rM_zwl97uoPp9M*;q6nf}Ft#At^+vskon_HA_!_~fAA?IkB&Y_Jm(E8UNd_Lmb zth;dW_Al!`gY983Poqr;)&>z099kYZHMnDf|JQUVz4Y!ziB(K6iTH?hrhALH+#ntpKtdlT$SXE@0 zDTyPV2~h&_q)3{VDtZ<4zG#Rtl3f#0ie+NC>zAB^TN!I=%g#nQoqzkxe9_Nf=v&Nb zpD!K>f`1FoK>${QZsJ^c-}-Ku7t|_=^U#!BuMM|?lIDj(ws%BmZuU^^8g95%fy#H1 zft5gHr0RT2fQ(`2)Ss8Fjv$D+*ys%%0GFn=)aO`%GEuAHYvSK8Um@404&#wlo=TNS2^ z>5oiBE}P>geUSaBN;w~Nt7^cyWX|Ko>X$;5+V6y+cX(Lq)qY(%$_G??Pq;F0U1=O|}r^Hm>5_OboC9#&*6XSmgk(1n`$!5-wbk7FJFK?eK4-T= z-q{B@R-qG7DrW0XS7FQpJqZQg#sLz#Q69maQ5T^-qeCWStrKu7{z&%g$NGQ;MQ#iC z%HhY&Qjx0$2d~IN?<97OxIZuuPzna8Zm2srt29=&LNWBN{YDQ}L(5 zt6tvPXbCMlH>i8*0L9C6rHh!rqqhTegqDnOZ11~E<0TDFyZ}VW$ocRDX;_;GfJ$W` z{Hqy-)u{lJ1{JjzI>E)Yrb)Z1G|#O{smWs|1!8TLl=LlYuar#vy({b577OpdmZdOp zQ5p(5Fa`P6*V#v78>Mc6U2l@SBLlqy;l|udmA3Tfrm{0IMZp5EPz_phm|k=Atge#Y z;}!}*%k+-CkyHs~MB-P|zG`E|%;&1z{)J5cv}Vax6Z!?XRT5y%kqc)mpGL^No`n}J zq`c(C&~NTHlB#al;KR^TD$c$5@MyO9*?b*^ffF3>BECVPkMIT#$2y%iz51Ur++`~d zns|-~`Uo@R%15z$F5hf{ICd292DUXKZ(DG2 zFU5-sxdE&s1siDicI85vJ>Wgo?c%=LA&0>m|9qG}l@z&cS=-1aStp9VM z#NOrgtY1Yo-zoU+94Qxxs3PVqD~;dX);KvV2TEmPL{LN9ZC%tcP^D*rVEnJTULj1z31Ey=CUk{b{a z42^ju@}F24b=;q9r8WVUfTS575g2>UY26P~Thuf9+(9eJZJ}U{$A_nW{$Xob`H-7m zg->As;WG8DQ$64GY?`_;UE8N7C4#i)=uD%>Mg-PExm@xkjvrOVO z6h1-5$-?euRhkmpqmo`IzDJQcy!r&VG}^!3@KCjJ(%1DJIY=o}@?iEAe!e=Uv=7%0 zxEUg@6;K~}fHrN-UBkqav{Mqz2%j&YveN)P3z@hiBnp&g@=qJ=S+_C|bMhb&H7dY& z*a#@LUr<1boh;bm?3Z9O^@@~A0`Dd(kRYx-D;M}FBj0A>t;_Y{GP4b;B)7nSpeEQs zaq;O{KtikY6xMmzWbrKP0BODj2Z=gxvjYKi;77}tkns`Vd*Tv#kOsN1UTvxE#KRBb- zrpSVKBxDLZA4I9y)ZvFJkAT+XBb#+%J!8riAG)xx`_s!Zqw61bWXe|g65qSg0~k@{k^%0%DK4r z*L1LXAZ#+vGD#DjhLHP4N)S~3h= z?U7&4l}iSSO_Mumkltmqx5vw)Cu|wvuZt+Gc-OY~cdqtB7H{SZHdHlSe26~Le=zDusV-f&a936?8l)W$w6OtjDz0iaZS$Jn%Av*;gd%QB}qd8 zFG!px#bN6L>W1D*fjr4dB~gs<#hK6XC&~5Jq6;gl9LuWwy4bNdpJ7^z@Iu!7LIHCa zo~Ix4CH73zUUaR!tSxyE9FS)m*BDe*9)#X75?>58# zL(sf6q=qSE4&Og=O8pm=s^8&Bs{5~NHD>AR1b+8a|&?uDOHKhH_s}9n9 zkq86FmX7BHFGx(A?hr+PZ&c518*h~YPaGLI%O~l}LEi3a@<9B=Tyk^MhScs9F!hdl z=B8@KlEz@k%64{|%RUD4@{$<(+vT<9a$F)36}C#bu%%WgOP;?ar*RfvLgM^sc^AJ; zOg_{B809ZRVc9zj6Tsa*DRc=j-|y^9gcgNL>{=f;5ud(tc80=wB|0598sThT4dog= zbL}q%-8x9{V(*psxl))Yh}ylhThT_&>J*8>a`-`erZ~ezYWkt%E-4Jn>h%9u9pz=! zN~q~|gtP2{_NX+<$atbKYIonb35M2j(u%?&f}BOryO{qm9HOvLvNted(534rmc3ul zt%@}-_D#FoZPw9OXxOAEZh+Q9@d8tm7Qn~_+Ot%MWb5>6f{k29dKHM|zb%8{A{l;L z(c7P1$ck_lh91qZlW(SbXh-u0YN5TG2XLm%3(sU>K5*eL+NWX)DI-UUBReJ5mP?t# zeL4w40fO)jM9edAH8ppPdCE!oWrN)Xw-PjvQS%A9Rg^_%f;S1E{Wvxw=Jbtw{k4Dm z@qp3oPA~RUbNM=gsN3nm9+)krWNqUdo1QaqZ&m2`hXMrR2v3VExWQMKR8Uym?t!8V zOMKf$h>|-wXGpE$?^nPj1aXfp;oei`DXhfVtWu`*x(3A>g%&(?`tP8_r^q=Ql~R^? z&6ywm^V`BVz{J|W>-r#wys8h6b+4G@4XJg$#E~Of$>lphW3{W=gI!8Ze_rjz9(Z@@ zLti@l=2w?oxTgM(bC(xR1Yu~0M9V2&;?wU$(0n5+Q%YGqu2hy-8JJOXmOb^rO$(mJ za|#&-#wjaPygYL=H->_ZgMpFEiSvDDR)Yu2b)F=<_|wRFF|crBymsUC!v_R)#?$$t zxf_)LM63{W!m3J3={d7JJwy;y@BvttY_K5+;z6+}d+~9ox0o{*x^E(A+e6>M5kvcF z?Z^d++eDvfJKrKyXkFr1z zGfKjy^uWx+H{Gh@8l~*9S{iUGi_k*WTp7p*;i*AkWq0#AvTu|R)tcgctPFh{9t##y zk(w^-yvS+qn$?ay&^z+jOD7uFHOo-)`gmhCiWi-Y0sFOsd$D>lep}P*%`I75ti*4# zKDVlroe`c>NsxEOeW(XpPd7&`AS(WK%u|t*>5zBVQ{FDeZ$0?b4pKSq6GZW9-5(FP z>aJszM_j(Cd9#i}bsFA*A-S**=-=oKt}`LhJX^NTH8)(%+4SovytMsLt=si655?AB zPa(c`Uf6eYJgGO6@@zP4b@bg#`!xU3TeuVP6}_V@({?{2JR#E5pFUrvPP}`3Q)Ao_ zeGtVHDz(O<3QsL$unuz`Wj^5Drtn@^L&F2{k-zw?b6r$y&@1rx1(jYKbnFw zY!)WIUf%)UTSzJB#UDd&pWzeT@<)eC$!K|K>#l2X-yuYAjX>8HdxYP=r*AE-%eKPD zKUSZM!94QVT665vp_-o;hC1yVcsDs!f2%`1LKt;u$4BoD-M5p=>7Q3BFUIxCZ1x;# zVDA~+*ME@OIoq!sZ-YIcc@hs%(#dlWit}N&wC;-=@Aqb`?bz8N@%JC9EGT3w83Ki9 s%Ns!;b_f&%FA9VIzv=%%;_fz&6XtGz<&-q|4-*2hHn%gYG&!I6Uljy_aR2}S literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-sheets.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-google-sheets.png new file mode 100644 index 0000000000000000000000000000000000000000..173a8120d9008289c72db300c5b10737bbdeed01 GIT binary patch literal 1300 zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(?cpAgso|Non;2$pED@Y|gE z?90nDFR!HUtIOD1U$CKBrqz1Wz5NX*Coj9XdHUrQpMHI5JUJz5XR+hj*qiU~?|*W# z;l$)EPi?Xp7+5BFx;TbZ+NTt3!JT*Vk@6aVDb_tp0uuXUTOjfj8rRVh|~ z8jzGO>AFBjQJFj=I@ZJ;W5(`xO3aB)2 z`mj`zckShm=_Q*vg4z^PDIn&*x#jH@!zki<@jy4H%D)Rg&xam~Ti71Xv1#ho-^;ho z`hJW_h}%O)VPnG)OvbO53hpWj`Lg?!{xUM9u(5DV5EW2x2yz{8ocW8*grxa5!V+RA#>C3zBY2(&+lve^<(9&XLS-`>zEt&29CWf5b9+hlks@1Boo0 z${rGqhd6}XCKxoe2&(ibkRUW;k>j+RS4*dq%#ZDzHE;9E+$$wBePtIfD>eIS-1Tdo z?$JLSm(Nx0>|M3)`I{9lL@$-OyyEjXADp6TqmXR#OLuMUlxumJp?e+w$!?x{iGMpeS*8DEkw$yn3x2%!}OM&v^ Zfq3t<&!_B?H*0}pJzf1=);T3K0RT>B3qJq= literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-hubspot.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-hubspot.png new file mode 100644 index 0000000000000000000000000000000000000000..1132d4c2ba38b7a16fc0c4690fcd504efc7e2434 GIT binary patch literal 3613 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 MM^4ZhJVN<@1KwE>CjbBd literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-lead-forms.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-lead-forms.png new file mode 100644 index 0000000000000000000000000000000000000000..ea5986f982dabe038c541c86a31288b2a9a3f97d GIT binary patch literal 6269 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 W+EwE_^k{zz=#2F(^lEh7V*d;0s%G{8 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailchimp.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailchimp.png new file mode 100644 index 0000000000000000000000000000000000000000..f3283d25249d7803ea3b66493b4a03a88c39b730 GIT binary patch literal 6620 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailpoet.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-mailpoet.png new file mode 100644 index 0000000000000000000000000000000000000000..e965e520b836464790cf73c61849b6e607edfcce GIT binary patch literal 2718 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 GnEXE?L*!2Y literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-make.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-make.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9a89da52be10437f9126513f30ee73ac1e14ef GIT binary patch literal 5914 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 auuOJlp$!T|7Ks19N=;RmN`=zPi2nc>@kl%X literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-n8n.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-n8n.png new file mode 100644 index 0000000000000000000000000000000000000000..554978398f3e31e7c26eafb4b41ab4dfd234a7d4 GIT binary patch literal 3168 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-offline-forms.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-offline-forms.png new file mode 100644 index 0000000000000000000000000000000000000000..4193d419a172921f96c9e008b38db9a646a1836f GIT binary patch literal 2570 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 b%to{i-njIWp5(mzj|bSEuqWhOU5@-WX9vE# literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-paypal-commerce.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-paypal-commerce.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a03abc85034b1a2cc66983be4d823375dd69e2 GIT binary patch literal 22086 zcmV({K+?a7P)QnG-~%*^0wrq#CTjQNI{sJXz|Nj31G>HBG z{{kdy0wih!Gl>VD-vl&>12BOGo!hj*_ z@x;{S6Qkn>hRT1P#&(mw1!1KGQkWJ*k_0@D@ALS$!U&)w=rxahUV-mAUXn6c3YgUAJJwFPLbG+v+$K#{HB^`hMKp|{lrjnQX` zxn6;`1#GZRb*=Z%-q{(zaB z%yjxuo!ndJ)~oM`5hF&77%^hRh!G=3j2JOu#E20i{sZKBCf6j-vKOx}9Na&6@Q7T} zdZYKYr+w>aS6dtU&3Z0xUj+t7Iy zv8?OW-e$es&X0Wma{KnxD7i8U{$|qS#E$0 zS$W`)Mkdy>WP4dJ1&b6YlR;4w?fqy~#~5k8T5eBomv2A4dHC!4rHh$BD4FEb*<=ST zB+KP5G0z_FFNzq6sBq;6`LJtHzdB)a#I9dyz!LZ&29bDRU?rK$R-lTJ`U5_$IX?eZu^s#;E>Dm3|@z`??ZPO*6; z*idg3kp_%0_oy?67GpzYS(H>4MC}_RaT%L32H}RHaB}p*x6cylcQJ@eXZeYT>rRI$ zV#D!}xqq_-*SHG`W!l%Vj?zGB(iPh%AY(O+@q8vk9)HuRz2nOx5ANSh@g$eeu23_b zO|zF_?hL4YI~ySoW9~|)T!Y$l3irU?KBMEo=U_0waxZ3SI$9ifsaVl^^X9?xER!sF zmhVgkEWhf>_orbKh}Eh(1!8=Fpc9}iqPmG1g`Qu**mP)oD|g)}wdo#0$xo>|yjUE1 zc=NovuE~y=NIuDKyq&xI>D!0ZBgTf_O%OpEvYuo448to0c9+!mh^#Pigrs&g)-h61 z*Ymx_w|8xcxGRLTA$<`Md~r9Gd;UwDib6xsFrgCCHH|V{lnc6|p=~crR2=oDud)#r zsg4CT6syJF*?YUpRcncoMbE@`u^fmbI|6}~y%kQH_oLkI~Fp@*(&*m?#V28s6_A~i;2Y;Z_5>lB-pvX40creG2Awq_r&l)rOUKS$4gAiYW z6J%nXwJ;uM{a8lD_R-Du40z~8;>-P&YX;eBU_^Ht%f;!|2?z6X@IpwLvEKngeAE{} z;f|^jr}Y$@VzGa}J)IvkA(QOtvBr|t;Gx5hrtF9pt|sW%We_C#IZ}Xg(nbcdzKY!m0i2qVv`FcDO;7L9Pi zZlBaRe~9Qv;W|=vpKmD&UVJzyYz#KC-@2FEzb1zMVI&Ag z7Ue-}ze@BC&XQ+#p3Rw5RW+LjVj$C@67p(I6uUUCn(rNp1O$2=>NEswh(OLBP}EW3 z@C(7EZy(6D+3HH&2@7G5{_5aL4)N6Thh$nq&9&~Ij?r`^KsFV+KUWJMtZkwQaW|Nh zn+P1At|E3jt;nZc2&=|>U}V0;aG)KLtK;{w$v}P9A8yX3wW%Nq!?&ExfK13Ogg^=@ zx{|wzg|uXmfGa6(>r&|tP}f=o1##mSE_I`bJ3$l?T|%^=uPQo)o6>+n>Q<<*xu-|S3aa{{DTf#Ktg+Q{x+8$dXApYD#mVJLJ>=%^ zy`34nk*X0%=oaiXEl?Oi2m^&HjGP+6`4;!#M-)0l6+p|pp3-=-ez>XAL*87BY1t-J z^K(lHiulmSr7wJR^5}PvNakdRde&^$~4BAvEhNX zOWgIXAQIqch+vE^_2Ibsy5H+yD^hNa|9zf2U7SYR z1>L#M$hj;Mx(htU`3QuIpug5|hX<0wg&Z%6w_a`mGvp^2kBE|xt;E^kv*uh?rB+t_ zfA4nMNi^1wipESr>mf$TOXe~l2Ms?j3JPV2TO3X7We{eAI=e7s1S>_B0#BW15_aP1 z!u`~)SER>IpJlX3^V><3w8)s^;|=o8dxa>@&)REL8V*JHH`MXSVaL9S-hwVk2FJQ_EDjzt8r0)r4N)ciE=<~$^G3=Mul za|7>{J;68efGoL?3h*foKm`?QK8E9Go2Hu8pK(2XzM#GZ4@ZG8%b=k%oID%>l`h;1 z_p`lapnAmj9Cbxi;IJkq*}Zu2!&y_!+D#Gb-S4G%k{9h7ULgb9Km>|oMhJW$$I1s7 z2y0}cAtdyq=0{qU`4bX`NR&8TRK#fY^Mu>&6*maSU~o?2Q;a9#5h?H@GCp_Jux@m? zEqc_{4ve&+I1?|EX?t{%K1e0UtHyoRyB5TX<-5q$vv$s&5j%wj^GaqByN6qupuKoU zAjJpW|1dA)Y`a*P2U|!JsDBA@(#}_p9;a?+f(Qmw}Zf6fp~z_Pc-7T+3_(dK+ zn#YMEP^-gjObZ?0WL=D+>>>@A9XS&x+Uwb9of4LbAT=MotZxy-@uwYn4nsq)weH^wXvdqq%HqtjC+<=1H2Bb7*j-1v#ep*Z2n|9Tmy;(`x z;=6FCMsW4Nn`UKHFm{FoMIz%83F2yE{Tlic?*lx7F4!YvzskX@{icpHRp~Q)IcQ~2 zy}(e>kzsphH6GyzsLKZ$jfR7AOGQ=>3rPzT>vgUO5Mf@Z!${_1%WF5A-74CU1jvh{ z8HbpayfvaWK)S2>2x(#_V6P?OMFUVX_-CWJF7-jdhdD{BZj1d zpe`~~G7E<$%+Z5d*ttc>f(I%l3h2_~5%VM%Ny0=J-4T-!o9YJOiOaL5j>979@5o(U zPPddHSO6+XfN>jy>3sl!oa6|UvAbKzUjj@D zhjq+-vJ<5nEyZjKXt;{ySws}5Jl8KTwK81sD3z?5$^B7Br!TT4N*65eHlsT9i;qu^ z;?(lDm)LCEON7(6LddregvltX8^-X)fNv{M)Bm5l$xZ93Du%=r1XTmx3PbA-@qnPV`A%gLKa-30cjp zZYM?*RAQVHoQY4p0453(sh*>2uBRc%fDDBi9B_XFINso-IX6Bl2Oqm1)c~@1E$t3R zr2NnWlk5M~P5dEevOYPQaHP3G%7_K!2^=FFOTPfnLFRr(H;$C5ylnq@Z*NtMZpCRBB;2ah|5jz0Ynk>E*|vYRYXrdlV5Eq8?Rn6 zJxTAG8R|<_b#=Nc-*y$QWpShvPX0J4kxEqb84$)&5?2VQ5>2lcxbjbft)cMAM=B<2 z#+gaD)&Mg@lo~eNpOPgG`!DW*t2T4##vvVY`pvDx7YXHyu%UrQvv3r6%>}-yU=sV| z6`qWDD7C^2$;2y-`;O=7sntW>84O2Rt5?$sESyVGHDs+f0`_h`0g&nNptax`CQb?) zW%-_)bk!yztB_`2(l`Pd>^8KRD;7TDt+TdnMKpJ-hFN@~9@Sil?vztWg)%qu1^fjl z>)&AvhRYYJpZ=vtN9@RK=jDV4zY1i0 zghTy*0)5q(!*XUU{H=mPp`U|0-{r(K9(FvM5)S!#=`ci2;*rugMQ}06pO|XNGb@0B zolI9}+Oi2Th9)!-pMYEw0@i@Lsd@7N!uQrnVGqE z;%Z%w!8^1!74mBlyw8You{nl4n0}uM-&yx}U}4iD<9@@$jdm+?*%gP#CK36I@WAoN zLBJ65EX%X9%PkM(ctE!k~K(Il`^2ww4J-wt7s`*|n5MkO89 z+Zse8|1f>ORJuTsyy;$>guKdxh80mY&j|~rFH^lM=UPJ13LFR^jtEd`0J;?lfkCTc z%rnUbh(qv7J?5d>kj7r4(TdG)2Mc<>l$1Dp-ho$J5?2gvW~e}Nlw6Oa;67x*V09T8 z4CV@95key1M9SzO1mT3h^f!*6ObEy*?>3^euRW)3 z_J8JtIOP4Q4Zcn~*;{F7sD76+QmfNe05WbHU=RclL~_Tw1X6jWXyww0km;x&3=h77 zFjGtv3S$n2m}>)ACX404tK*_r3NGDt^6a4R{uk%bD*`{vI&9`&w-Q7SH2u27R<5bWDCSfY16bpv*9W-8u_}M15Gc~ zd=fYclT01C8w^^o7qWp;`jgbgh zX%Rdmp@Xlks%G!?-#2)BUY|Y3;@=Nmyxx%bmGQ(~$zrs_AujPTS=jT7c2#!hPa zpy~)~|JIN5m$%=2IS+EUzle|uc{eWH(XP7;H^pwE$`_*e>NXp8joO$666ZFCQVP0K zHW}rED`dE!MWMLBWBih9HxqB2t*Ls-$7r#P)!wIH<}bN&=+2ozpZ6pz+&}oa%iOiP z_I7uEzWb7?p9(PBe|uy?x>d$hDsYULDx=IA(cu##V10s~hJ|vAn<7DhR13!$&X_Q# zX_fNA?m27ctXqHXO`j0~bAR7Z_;6~d@8EJTK$1F2zOvmt^VMZ2?Y8wq4xyMbi<=pN z6}(D0x5o`q0XG=+(bv$kHUxu+S)^$nubRJd+5Fkt@4f7?!H(g`AL_2{^`;;SZ=+_+ zcDCcX-7j@?+$qWZ7D|y@@qltEx1xxYC*eVP5V@4%RZ4{NqImGazh%v=_3h72{(#x% zXXeay9IS7z%eQ9M%$F^_!w{Hx$B<}nz7^rITChtqMK0fX!bh2bL^L-;;@&HBz4NYK;McFXA^)*5)kMxCuAZ#yi5m;k8R+&8K7c1T zrYKDcvW5u|@baiQC@^N{$pek8*ud-1>cCa6W{A_hG#L;SPD&iew{G79ZcxTmQjT&Degwe;QTy zDHg*vyJm`*hK!S7Xq5JWTEl$Bbj$Px>VoJvH=SNYKxDW8V;xJ6nU$Ht8LLijs=af* z9@O5~du|nb1pCVa^RwLPMPRzP{=Y}kxmpKPy36;@5Cs|9lO64;&yu&;iR4ZtsQ}2J zd)7%Ivpb=dW%T48b7F|qQl~#r02zMV5atwT1*TIk7^Qy#aa`kQdG){cbHDEXC-Z~qe%SuG#D9Sm}Bok?%WCRk3n3XId zk9f126R{2i(84ihtkjJoC8PRhoaXw|70IVN=Lfa((k(szI;}yOUfjB%Z`&s{tjGWy z93&=)Ay8u?xM>8=Ln_lQwnCN=Od761C2Nzl(Of)TI&$oWAp*6CHwv*~3a!zaN|K67I%4ALsaMVC#;CLmXQ&1>cII`T^LFax9)qpGlW_ZaW2dqwc};C%G=ptN_FkQ=4p(g zCUVg;r#qOsVi6NIscag7b6*6n>w=<=)@4=D02W|S9}-juloT6a1pw0bBIO7lWxPFq zsXYWsRzDLL5}aHDNJ1qn@JoNbsU{b=Da5W^mSe>H7yjF<-j zG-hnTBp_XN1qfux$gvUvbA-w}RPNd#Ozx%(;Y-w_t-ilAMY};RpERT$jOx*m+dHP0 zX0haGwng)J&e6X+!}W_3SdS)`YRIH!xup-4@0kV4HxTwlAfm3BQI}jGgZi@0!eoVl zd{bVkQuwsR&Y~ixw*~J)a9%oT5;}Fg^hQ+}JDgg5*q&DAa>*jkAtXQNv1pPZRGS8K21rE)i1L!CrTsKql+G}G1Hj!Hs@tZwJj6Y)j z770q@i#CtD^+cT+x_5PO@(RIA=UegXg0D+ z9h-^JG>eFGCc*BD8tZuw<65pBL{UR0^(UbBp!~qnQearSvg+Nb1qlqnL~xKcD@t9D z&z~vFWK~z!&YG=Tm!VdZ)z7^%J9=BX8D26>wKMycaDgbZ=3o%gmbz9=lKlZ||N7e`k)ptc zDISp&IplIl`>Lqx?iQ0c={R%k+=~(|3;r!0 zno2Nw6>}caAL_2Fx0NCaI}WVLWQ{R#3=TFJC6s_II)MZ(E%eYqh~6Qh zcM!cdfj|h+gy4Y=qDVB+1fmHfeiY}N@04A5;MF_V-ZHzU%y&;O^X$Rf?69*sNL)mC zKa#-5hYNQ+AUovhvBU~tJ2+zruPyw$rL#)>m@GNM!laMHhseK%rr-jfVpDUY7gI)n z}c*Io!` zZ|tiY$XNGDy^WUr(6Xl5XLP`Zz>gr3Lo&~J`bgLj`o1O1MQGL~PC04RoyVAQoeMvw zjFF00c=4gR&7MaP z$5IDWEPGkUG8OyOp2S|8vs%K<259B)pLkDBtpLIWjQe|7U=YmFcm?=m)+Fg z{j!s5)fltV+V2o9KZ-4MaGZ|*V(7+DZax!`Q8hKW7O{3f0Uxs`EHzhoOnBDA{j0R# z>7(kvb&>CId3rp}g}`U4@bmK*8{Nf}7>mU6ocLFRAxYgVb$7qER*k`q=?C_kr-+7^ zJD2yB2(7Es1FL*Fz2{a#lg%3M2El}LD=H7<0OW!iTyp4}GXTB>0FWgX9*hWIHsJo<{npy{+fBX`es-2iDIPqmNkZL=ZzFVW_a&P!x=`XM4|k-} zWe?<8N=YcRkQLxHMn)ina0ds4AUfie2}Ub8;OFpPxxv$#yXl23bsjL#8yS7r5=k;i zQhooU=>K-|doi+$hX6UDJYnhrI}Jg z_)>;ERTpxKoR`iRChon}3{j6`g!eaMhHjOB2xdICZb>QlhWE;T&XcPbtSu%{bj4}H z*yMEN8HR|wC&zwNt3b!=SuU}^VJ~*QlMGRA> zZlSc&i3dce_=dxHZ9PsNfpk}aHH>aGpYCGu3U$g_+?pU!j_(1E$Y?XcE`l7$$*nAW z818__qwf}V#5@qz_oJ?Tt~E0^dVeL$+3k+-Z4&b%!4Aoxd+qU76@>cs+Y`%rW*?A5 zgwV@ddNKxX1(vo!@*nKD_1sJg;kyzi5-30g7QS_fY?dG1vA!o^Y5)Lz;1Gw5vDB?r zXJ+)`jT?>Br-c_GE((@FQfIz}c*V?dTZ}q(?K3-Awk-LPbFi*`j{v%`T@;= zHarO~1it|c^ehf$H6bl33fa7JL)`5t1J~kfWRwap@@$W%E}pG`yLY=9wq^s<0vi7g zjFg?fagIEPCY6SmN)^3MB3Z{0cU10sVs21TSR6Rp0g}UAD)xZ@*lZsCYw3p!9Z(Xo2o z0?08649rjucU5GV8geiMBdr%Ya3PhhHSDauNZCI`3QQun45mjV}{2-aSd%Yl6p-gI4VgX|9lAlV>hfv;LR!{y`yihOiyTREMS}xK;1C-V z`YtY~47stT2cjTD^baP(IMJoX!OPeqfk-YOAY5n0tr`1PBnr{A`uiZ0vO>|PBu|cI z2SWl2q|S3$stAS9pwbX?i^PH>U(S(2&I2FiWPtIze02>s;_1woPs6yDH!HD~q$4Kq zA`jfTiv%LX1dPHMiE-v5i<-~X_4`-4(4$y-i-(ag5VtQuk<$TGQW-$5KYK69dq?vI zvpH0r1p9LF9-(yjd8cU;^CJk3R?8J#u=wcRW7iN7&cI|~$%Az%Ibr3Ek%b}Y$ygk= z?GTnXJ@i%9Yl!EnuCZH7vj!A=!Qy`R`+llbV9#PoeBWs&w?LrvdIf^i*2ITzmzEr zkRsv)Leh7QD|yKxj#}>yMETpI2FnzeT3O6<5+cy5AjnfjGmRYX6GAI9mbLBV8-@hP z2~E%biNq^l6b4CI*DdUc(x}hamD&gO}I9@G29^@$%Sj)CqvIF`rgYe zXXZ$7?ft{~gRH?k3z=AnsUzGad@pp92#`B}s!e`Oo!a&Ob=ZQs-E9YS>&7GpK;WV! zoWi)7ZtpC9VCSI-3Z{ijgCGo$ed`Uj)uU8XovC-@6k5 z=5dHNh=gDL{bJ)8xnmnOog_c}>zw%t0d6If=2s6l@ZKg(lL8Z`CSMt^Vv@ zw4`2xP}pd58iKsIcW`*GJZq~tO_c~kOXr;d(=kt$nRWOe92gci%6X#KkGbdVM+T-n zkG@Wv>b`o!H*1S|mZ2D3s?&2iW^8>xbR-D*oKfO}gj;J>P>J9<3bk62L(t*g1A#QCh>wa-Jj~&RUx=NhCGcIer_iUKS@y z_q|bxRMOc;j+@#6if*xeS%?qcAk_rE+&Srx*1NDi*1x$B#o;P9NfG_r6_+qW3_0UU zJR&{OkecxTJ0(*PAf3?*D|rrYRU_pR2ayaD9-{bW;)%~uj4OuvWv|t?tw6;NxAvPi z5P(DM&Q|&po#iB3Q7x8*_SBx-Ytb!g+u?%-7*2o^f&h?(H^pn!gh_dzFpP6NXN8wH zw;JyKLN@^`40cGk7V+`^aWo91a`FjJHy5U_9(n;M9YgDtuLt)^ zZD^w01~57mMS+1Az9~?^szV8qWDur}E?5&x4~PpsBo5>9oG8E+NaU-fx2my2?kfjP zHC={BLx5O(J(o*w!)$Lt>vcb1GWSmwL;#{EgJot>TN9a-6rFk8F#x4ov??o3YF!;4 zU^!v`2{2Jv>*=K-7{X)(REmbl^O#FCd1^)|(CvCz@IHM*1d1H?BX zw2t2dhLK^7X;50gMR1TrA02VQ#zv;1gYoeG02)$HJd;@)%p^0*^j$jdT(S!fpI{21 zVhIY@ymQd}{0{8}Y-{P&9Ovau+fp{gcBl#B1q)S4wj>zpwgs?-jQ|t z?YY3~mlGDIb`}{DN$;WSMqXT$P$6XE-bdctGdf;rMlYSh2^IC9@-?4HF<|aii_#M4 zNMH7d$=rDFFRAo7hwg+b9QBYSh;G4%F4$y5mM@>PUO#J``0?z7_a+sge)wkxP1BCs z#*Dn~)&W93mUSL?7nj9KWHU+CQR(1f8t!wI8zC<6PDH07hF&Z^2UWy|N9xLItqxzf zVy&L~6hg0CcB0vYz{eUhfhw3*0L)@<>DV{u|9P^L9JovUbwBR4jad~gI#i=Y$lOYw zg*4=B)MGsCjG0z3d(BSfC@FLs1zZ3jA|k3v;kwiy%MyUeeMS3E@4b1!${@KbSCg)I z*&#y`>=5ZOj<{{g5Hswi-q94lo%FFS{dKwLq~p}1OCLKK9=HevEQY{j>}`G6vN{fz z8FCTjXU@PtB;Ik)TCL&Uo1gbLmh&D*24Q_4PdHgXJSrtIst}7CY=jLjCxk-Jm?u4BfRhQz3$ghgPp6 zN|q&zsBsf|%H6`{h_(Tf)hR%p3JnNmL$^DYPwW?Eomd}r`L zri-M>X=9hmj;u}mU|;n2dtt#OT6&cvJ!y_(6MA7y;3mn zIIiZ;7?Q(JEk8R%7q~*fU=%@v8e)GCBO<&8L^@0!@m`=aB=k`i2N>5KkUO?3O2E2C$g8r}|sUe1{kb zsR3`VxjuZMaZ*`hl~VX!kcr9`3eyfpTR;5nr7IbU^3>002v6dbW;eT99rO__%y!Qb z>~%0RRN+$6;<;4_hEQw2eRm2r6^ZUhx&}DK&~6wdA?f!#rsIYDh69i(?oVU}hzW8~ zkj=_T0kZO*;b^q}!~M(W=WyHhh&~98B<#sD6r~h|ZeX87l=GQqnRu)?qR_*vNPg0`YriaL0Ej<)ozxSrE<9mtAX`WjGG*+*R-*T~2;Kys2}} z`!{Z!zufCdqCzimxK<4eJ8EVFB!%Y0@dYbm$o)xzM@|VR73gxpJySnDj8`>`LI{lz z@j%N2c&VkbFfz&trugklYfdCWw5>MI6gj$Ds-VvTeBV9G;S5T6cDj* z$z+Exck~#LGsc{jV=gF*eEet3v^Mk3S4V;upGe1cc0 zUlCP4TpH5psQ=c~s*u=G+M?17%GM&73uv5> z+EftT=Kjf?O6YYR0K)@T1`}qqf?W`SyceOdI=X3fee<06@4qqIvbNmFma~*ZljU!2 zRX3T{fY6Y+l%;TGfm2D{js;2NcU|gSb~EW%70Bw{uJ-l`F04!Y;{hIZpICnlR8P5T z%)#{O<_>$dT2##i!6&%wy4I0 z7Jnd}hXsR>h)VaI=>cyMGU|Z`Kcly$Qo2hB?tUlbkXD0by?q!53$f%nivBB`1VFe4 zG2uX)dp56bu_LQRe|S4{`lDkj{$R|>M`cHce7A(c>S#1t9aB}>i(mfm`Bg99xJLG0 z!$|!cNk&H3a!bb~S+=sqmwxrtSCQdk}=<^&Mg-+jSHdb1}w z)3E^yTif(8ioC)y3j?D80>Y*6t%N8@9Uw6leB_^}hT=)|wfmV>**An*`|U)EE93%H zET<0)PM!m4SQxj67wH3SYV9|kd-%#N%Nf}X{G|n_A=kLXE!{Wr#6maqp%`_$^temY z4Lon4m;ezz#wP(85hx%$I1}-&P$tEYi0J__0s}Z)BeW7WK zVYHWpJnkZCQ4`;H?5sYtv6A(naH@)fuP!Fm4qS#Wk~(X#a4@x#=7(Sk_8uH1NuI(4 zfio9BMS+yiPs$Vj3dAP73>sNtLDXNm?DYynLUeq;A8%dg3RHA+D3(B%N(`gsPynIU zexnzt`HQT*)iV()ZVzZfO3{13Q3MPuFtVngxQcWT#R%1Du`8skIzoT~k*4&fWJ0B` zKT^HQddVqaU2%J@I)Hqz-_FzS%PMXGhPkNh1h0yQ0g&uXLgb8dPR|lz+2HO87KHAh zjfGQb%g=ZUtIA{{1!%ZVNqA1K6rwLNdP*4ykmPkBr}PN6g)5$;Nr4cvS-$_BuT{Y$ z)bTt~$b3Y}0~0jjn9qC-&Lolm98E;6g_cqd<3fIy^NiM%!wSii7iMDc z$q^2BsJ_6AUI9iHc9-{wXj!DNinU!8g10i>Y45}o0+ytL1J0~Sdx-4o@W?BO+%jO# z3$~;>E$doRS_YkSznLqzjIAmJQhVT_g=X|ZE?ME>KPd?qv)6IE!_=OSp1zC(TbOTR1`4l7 zkOGo9xR>i+seu6kNnl%QMerL&Z#ih^}b9IvU?o3_YZ|+%t=Nu}(UDFCy*l@I= z9WcQ=(U#&4N0lo>Htp|G3uzDu@uiKC;UHkhD?u_9#jzAihr=GF+$IJzC=n?|yQsp! z!J@DTQ%&$TU1D4dz>DIPM0y|L7O|%3ligH`NoRAVZB@XiI1_3#90<`Qs1p<)5isN1kKYhSC`yN0 zg9{|60@Rk2PQ}G1j(m39nswLbvw2?4U0|87fg7nv@RXu^AmE@h^ZA44KzU@)q~3oL zQ9gtRRp>)QL&uZ!VZp=J6VPL%SVusEh?>w5kva+l3du`#yt|(!-jT`;lUMGolxbbR z@04*WW&;XFa7UpC;)y=l#WISJXJP|PU6W1-bJy^+;5XoL@KXl;mc=14cCTiNKruN_1GtwrU4R{ZBPSPcAp!2l`lXfB^>Hs1H z_0(-nCsG;&3Ch$&hd6%$F@{{4-6w#xNq|4GJqwzS^H!_S4X7PVMzm103R7F12iI@fQgT2f{GmBKgnp6lKqN(@D|`txgJ?UfX0iiR zt7HHe(OYPA`8Z?S=wqG7_z zvsmK`A8*O5f170Q@Q6wNm_VxOj7MOlo;)76^F=c#b&)>U#8RROjufB~!%VqC2={7b z;b7ZtZlX~Fa-5dxG%Bx*OgOE<`!4A*kyq9DaX<@%cucBjF1>bIEe7PXV?cmI9z4>0 zNH1}IoIN(=b2&*1r9r>|KUi3rdks-_5{#z^!!06Q$#M|+T7)4HGC>!Oba_?wQ+W(5 zUNryqz1iQMfKi7BzsyB((PgVT|Kqv6c1@k;AQ4;Wg-j9{;PGVUYJgRuv>tIrqJ(|T zG81bFx`@M+%nwpd3X3;bRiL+cp=ScD6$dGeUMiQcLd@ewW{pLn(J7}V0s=2Q^u@a{ zf)^g!l1YqRDlm2GtlFS(3cR~?hJzrAhs9mMXCS}QB}5Wfx-befghkN8btmZYQ8BqP zwZvK!4p>|rtDJEpcbWO!rW!Pw4UQiaf<69Xe?`0;jI}=!Ac0%+AT%gnQ@TR0Tr2{^ z)H$ADh(hU+Iu6kSWFXO&WE5G`NCbwIlZYxrmQgigLqlQ=!VK!ShfnNGI`T;F!}Qyg znsaVF?<9ZrI38~2jurs%3_F(YO&y#Ap8&x`er6W(z+phQssJelYJ&!;@O-UJJEACZ zL|`JT7l>)5EQtHMu_(UTtUZ4 zL(Pd#=F%fo&w*9Ch3C}1Y}V|0;s{=QFI;NHd_)2 z53;TrCDS2em3Ovpk`%4;NWCwR2T`00qxN+*gZa{zRux1+#cHgbO%mUuHL>pRVI)F(~Y5$rK{^gp85lGl{wQSrbbkGAQkK z7FNP7C1PO}`(NI1cGKI#Nj}gO2|(a2ut}{WijNR!?vLG?b+%A0D0H{76(MI-rSlFu zaG;C;981ANAn8fsw~a!FeV3tMc9v4?m_$e7I>Pn>QhRuDgaYe z<$+Bf)GgO8zM6-U7giH$sCsuyTOF?nP;`FfH6mc$~K}35nMuBz$!9>@}?WIk?p`{4g*)NM?l?nIM^Y(+q zGxt`GIl_A-|8aHUOHXxxML|9lXXt3l6PvN_vv8>rVd366l#UzOLwM)LJd_EWp869B z6#2PAg(HI-`6`ACoH~pnjQnxBmUM^e7ac9tu2Hd0yBjHATf22@nK)R#nFKbS3n>nv zE4^|yFHVgcy&Bj;VllzF@Z_AfI*f1}_;_SNz3Yh6VY4GtC-5eJ7PmMKLL03~iUSrH zSfgHQ2(D4u#3AYuoQW~o9t?LKsFa4G`1_;TCfv!>3nTE#P67aXHs@0+bn`?X8n3@Q z7s!QHqOMZV83QO4BP+@$Lc$21Js^Muiy(YZ;xAnSV5Oq~ML-8{M_s};SLn8`?muu@ zWvm=C*#2PMFtucx1MU$Ie!Z&j}$rlYS6SSSHaQ?Vn%A)qH78; zP{iQ_vJ9J%?|7TRK%;$)CNnIosy6pyHaYX)&k2qreD=X#9Fg

    p7k>WR@k&HEZZm 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 BzyJUM literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-paypal-standard.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-paypal-standard.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a03abc85034b1a2cc66983be4d823375dd69e2 GIT binary patch literal 22086 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

    p7k>WR@k&HEZZm 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 BzyJUM literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-pdf.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..a53bd28b4497ffeca831278427dcbe2d61bc84bc GIT binary patch literal 2155 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-salesforce.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-salesforce.png new file mode 100644 index 0000000000000000000000000000000000000000..be3111061df4000174878df947704e48ed5f5a79 GIT binary patch literal 4003 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-sendinblue.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-sendinblue.png new file mode 100644 index 0000000000000000000000000000000000000000..f190766a865def9bc60578164e38dc518accce6e GIT binary patch literal 6259 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 YF!sd;$#$_y8-lCQRJ(_&x@{Z&U;G@nz5oCK literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-signatures.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-signatures.png new file mode 100644 index 0000000000000000000000000000000000000000..3c68363322d47f1ba0e8318010d3a1ef3175ed25 GIT binary patch literal 7632 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-slack.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-slack.png new file mode 100644 index 0000000000000000000000000000000000000000..8cc39e1896d69d5bf352864de1408b8306c2726a GIT binary patch literal 3258 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-stripe.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-stripe.png new file mode 100644 index 0000000000000000000000000000000000000000..ac400e1aa1278e3f576fee15a8b0caf9a3c8a22b GIT binary patch literal 2711 zcmZXW2~-p37RM(cftUsyK}Cwfh;ac~ic}Fq8ERMp2#6><$l`(l0UsJ53Ik$IMIm6> zjZ}>wyP=h>EH!Mw1)d`NCQC&Oi^?K`@V(K#p8C%F&hP%`-g~~8bLM{M-t+xrXJal) z{gw(rkSx=JVGltB-e;po;h9pehGqQmhn=;9DfqH{T!D`p@O1+L$H3|1;9MX$7X;XW zfE@%vg8&u=uyBBJKvX!0;(#kLAoddYISwSn1AZ#trvZLCxS0lSrh}|oAnP{B#<>IT z-2wOWfe@zv6c>Vu67YK|s4N4ue}LMDpbkd_o<0IkAA@F`C!nJZbmFvw!2vMz61*7$ zZ{7gO7?9v90W;HJW(LeogIQc>!SXTyH~@HeF=p|9A%@u799mkw7IUo?f>y*Z872;) z-4lJmkr@peuy?Chly`3Gx%A61tNyTSO@=*R7# zt9)v-Y`?hin*)gplVl%=LLh#{4;b_nFoJyriGqB^|GhRG^?jaq&h2ffpvZ@EHA|T={qzrmZ*N`eQQ54bfaFPvKG?f{<52^}YEq^NK%ysXv5ZyCQc`qv>vuy94fX`KO7OLM-6ZM7` zA6Si{1cQi_zXh-NKfz}YFFA#@V))pRpCxY=78a%h*`OuYB_*uH zA(+B7rY0q2RC#I#=AONI4~9!kox}Ph`u+LS!47c{-J$-$u2YAybdltp$x@!32a8%M zuxpO!QHJ5JOT;?Sh*%?_puz#84T}S6T<>Z7pd&%&cLdkmv{s=1OC*$NOACO#haX!V zUGONN77!AoZl99nB0OsrI)cR{Ni$$Evw*OQB+q#Z2`-!8!QG)oDcDN|3mNCws$k+S zPr~!6H2syR;o*}gJxcH`%tV&g!l>brqNOaC&eQ*#nEn<%h?Gk+h< z>|u`w*i7?Cz}ueY$c}uKOm)oZ!mhTtg}hhSXL^1jid&bufnxdVMZIcW!pN9Lqr%9q z%o1|lDsg+rqFo6#UIc``DGkPwnpP4oTLQiltbafJTnlN*UWzv2{f2dtoL4R-jID(; z5Y@}z-!L4DbPsg>goWf1881p4B_!AxDb+=q(W^IY+jNmal$QDOrqmFnZl8Vr)rT$6*azK8$^Mf@Hi>?fg`%b4Povn(qb22g zSCo({#*LPQ10-&KUUKFoU&AR~qmLKl)fB>8PdM3__}c4iZSJX6Olz0?&i5>dSV+u+kzeWFY@iRj?-s1D5r&f++?lr59hIFPf(Ys!7 z|G|wLQfe%N97tGp!=a#;)vg;oJ~=4kSs{;V+Fp;MlaY4E>y|@mXX=nzi+w~jiKxvC z+pVrxlB>Gcg10V0eSSUc$T_N)AP+mMvCtdGW=8j^LJ1Fw0|~(?O@mUHk$qa6zNrgZ zUGO}Ke>sN=TOr+YO+=W5e4y91FmFhCuc{NR(8W5*O6Ru>+07|Gh+>Cx>*8FDV4l_8FE#0%dMgQ%+N36(9-p zxDlc3=H46`TiRmOc>8q?$&Q1^i=L?1siWc1M%F){o%>{+rWKJe+g9%rT5EII_td*} zkI%nbIjlo8=$=(+*&d&s`y|DZZ#wNB`)dmGh@8RGnE{L@C3L6aow-Yzv0A(f!i9`? zrVAPG;S-LU=o1aXD)NwjJeix{6N1L{ts$xfFl89sBm$%JFB3$rSJ?iI;7{b3GZH9; z&j5h_U3)N!mi?C7XJk$t+burPuXiBGHDG3As>A VEh*+_KVLW@rl}31@Q0(({{iBh;7kAj literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-surveys-polls.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-surveys-polls.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8c067af3fae42aacd39a0fc92ea30aad3ff34d GIT binary patch literal 2716 zcmb7Gc{J4h9-e8KhGZ-u5kHcWWhC?}%h)oO5Jrtkw#t?_Lk2@lLyT<0?L{GB%9?HL z+mwbziY#MavNJ>0$VguI+D4-EUos9j6Y$p zYnm7h0}EbNEOnG)QO%p>we^Wv*5}@#p)XT!TiYvW&1LmXW0SKts}|R`etzukAD&sX zEM)oBFIwc!f1c+If8EaOT)0xgrhn{wKe9l0!*-^!x(7z}ZQUDM+M?dC%r7ianF|}= zw=%oepM6@Q*1mJ_4C$I!d`xFok8XxGEf@BGn_d4wpZrdUefEq}d?zFt95sLjfq3#v zjr8pT2Ny>?uBMtvMmoD&3;hAYJV~J+&SusgT?}sD+;w@+=XSf`p>v8h4cF3DFs?#f zkyhn1fXRdl{0)dq%g%9KEAboFwIOBSNrVfdQO`?AUG`03ZLW*5Zy|!(Pkbukfc_7* z6~KF#_q2o;>;Hi%cd2r^ ztDjXmp7jd@$w$~Qb#RoU6!AaEf0={<4-RxyvH#FD=0BwMuVI6~Ui$ARKH2ZGf4tXB zjLg!%wsimAQmxlFaNZ$$McV6NqNOyMgl@h!BjV+RJIIFWK@ReZdL*LTJS3=A>i5H_Q;*&mbu6>_ zYm(Dmk{l%?Y?x#Ta`sJ_#wCsEaZmV$<=?8h8;U%ofQ6mJ=9-9;c~Iy_Sg&bjn?a4r zBdkbrqC@4;LNn7kj{Td0>)z?ARqmI(Uv~v?MJ~d;`@wFZkE&G;cYMx(&66|1Vfi*tfH`VbF$|-X4rDG~o zFn}fu4{Hjk1#=ncGTeNFuKf&@iZ51anaqHKju9uM6ySFhY|}`>*W8oL^>X9|9XmF-+%tMIKBw!$Y?PHT0obdU`aJ_J%%5d!H_d9$G||}MlfQvk=i4x z@aY}cL!Q5MM(XzMU6uRw!zo1&8&T3>*W>s?B>fr}xl4cMOpJ5c`^$bSZ`Xd%(?B+w zC|3ym=Mt^&ARNC{Fh)Q@FrRp7_kkZ#-(dJ}CVPv+MI5(EGl6w+8J!{pi9V(Wh64x! z0~B=SXI>u_t*K)mz}e%ykeXfCCkMZP5t@}@E1oFkks2Rt1(D12M`y=2`{EdJk-m+k zwJ;P0$ZB-Xt{vCtHB{Q<2P+(P1HR@+q{`MwIg6=bw4R%Nnj$2PS>Y~=-N5O@uwzxi zw`HauS{&giz({O04!D4ACUowtJlMr?I>nMD!W@wwxCEQClIPDdn+LZQ&?m60vZ6B* zuQOb7{U9Vsa)~NiCL7XOs$|X_9NqL!SmN~33LJJ+A{t}YZj_otNC;gxqIrcy12Y1~Am z?|x5!YkAjp&+nGP0mfDq!em~g#oFlzx1OG@`6D0n*i*MEx9-Mfwp=z*M$X71md15R zm^FHjjyB>ijwGiWIMG!Ez-eR{AccD_htI4HJv}=LmW3M? zDnsWLud4v7NMZ^zAARn$@)6)AvD#zoTzySlMc2)%Hm=f#QGtRXE3TzR@QJ%&W~Wek zTNm!knzL+Ff$3pe_;z?v#+S~Q4E+Fc>nqEX-Xj_dCeqsk1~iIAXe{q-Z}2jf_PlyA zA3L2z%avP%x>!u&)0VmhOql z3b20a=#`!=RxJA8_>BAxy1z*-r*Uf3viUZLPzh?@H9<2fFoAW5wc>X^$x#^qd?!1A7XLzT71bFjn? z!_||D#iR&8OGhqjN~9AmR~+e0PLmycIJH6MPqZ>RPqzPF>~o%Qvde8+G_y6aCvR3H z(>7US;gdpB$>l-1Y6eW$Fv$EwjnS2J3DwnyqjD<-@o%D|4+tiWF>CZS#5@YRBV*t@ zQ09-C6G;Z?!ISUXDvGM^MxVkiPqiDaD`P*`@wpphNN^^IPqtxm4LJyF5`aC+v`#Bw?cj_JnxusBX1>Bl^sg|D+Hi!jxQ)eS7WOYIvi<=-*V@snV11I92g2~rX literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-twilio.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-twilio.png new file mode 100644 index 0000000000000000000000000000000000000000..c06a2943df3aaeb6e1c4d9023852e62f2325fd3a GIT binary patch literal 3492 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 Ssb`k}0000_MmRcT;? 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-user-registration.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-user-registration.png new file mode 100644 index 0000000000000000000000000000000000000000..3c81400b4145befee1d8529139ac0ceee383ec0f GIT binary patch literal 7684 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 \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/admin-flyout-menu/sullie-default.svg b/wp-content/plugins/wpforms-lite/assets/images/admin-flyout-menu/sullie-default.svg new file mode 100644 index 0000000..1915e92 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/admin-flyout-menu/sullie-default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/akismet.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/akismet.svg new file mode 100644 index 0000000..3c0bb0a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/akismet.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/cloudflare.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/cloudflare.svg new file mode 100644 index 0000000..7526be6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/cloudflare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/country-filter.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/country-filter.svg new file mode 100644 index 0000000..ee7da8d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/country-filter.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/custom-captcha.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/custom-captcha.svg new file mode 100644 index 0000000..d85886a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/custom-captcha.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/hcaptcha.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/hcaptcha.svg new file mode 100644 index 0000000..3f0ee59 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/hcaptcha.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/keyword-filter.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/keyword-filter.svg new file mode 100644 index 0000000..2a136e9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/keyword-filter.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/anti-spam/recaptcha.svg b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/recaptcha.svg new file mode 100644 index 0000000..7168236 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/anti-spam/recaptcha.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/brand.svg b/wp-content/plugins/wpforms-lite/assets/images/brand.svg new file mode 100644 index 0000000..99e9891 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/brand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder-default-arrow.png b/wp-content/plugins/wpforms-lite/assets/images/builder-default-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..947967e5ad1d30dcd8677a00ef484d307b757779 GIT binary patch literal 2377 zcmV-P3AXl$P)Nb0000pP)t-s0001p zh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_;v(uHN8WjFnDuJ}O=Rwu#$S|Vyj-RvrYhLrdluWmXK01(jKK48 zIf;*H>asY%N{L@3t1AM{dVY-y=M*6E`;@EAec5XMfE3g|AdH3Kg7ue^bdbaBZ3DHDREhUU zgjuAdgLO952G2H_cn`7&GBXJ>7SB)6+ri@iEot7t7a4^FOAyChqcM_ld}Eg&5r#AG zHW|o>M5Ot3^m?>8XhX&i(Anz)y z8nd(vdc#zL?-jM?W9XX4ZQWFlqC@D+&Bs3x_`&Vz7~q%j_0)~pL{rDT+J&pBn>uPl z0$g6vuBk*7MK88L1g?HR;$>puHCH(K|B!mCdKJ*T0@ck9(eny>XVo5tc!j_867v|# zEA$;!yV!fR@TsbFkHEjF@-5xVg_l$nV?2Lh)y<(Q?;I~xIrt*r2>j%t4fJCGV&(TB zBE)tjYY$bLKZVM8$sv8SfNDEIb;?Gr$!1e-&E(ba#XpsD&5o!a_Ye@#+C8Bf})y15a?=DrJK549jTgMRtmK= zSH|-HDJvt-mE{47x2sp5B%zt+O4ir#K=VKfYQC%UZ;CFj8fzr}BDMK-MFN_^p6j;% zv=YoLSCVdfx2{T=I{7QNrX@l9F`&CD<$T{~pFP;2Rh?P;4F2>(F!p@vjjoSs7Jag)XP*U)T}L@o>aE}u;PJ;e z{pTzKkNFfPj~0~jkjLqbs>x?~PD)wzrz0zQXzsEaF?ReN(NEqwaY;y7;dr`Y3eR|8Nc z!abtGyy-i_^k0RK|K!ABWzv)Th@fYy%KH4@%7SP25u=}7050+AKYsCpy))Z!90Z~$ zWiXo;`2VjRDKmB@({x;sz%A%|9`lwfC~hran@?!sjJb9pK>O~4m8Q(>uc0NWirDU7 z>M?oV^4Bvk5bu@BalO~-f_5sFp8Rsv<9Zn24MbCV@+gY$TBJ65?!FG=D3_MiO11sE?LG@Uq~c}8 zKU08IrEtsj1y(RYswebz?meFJZ&3(M-Ai@;h3(MH=q6Hy{-rv~BOyIc`8zs~Kx8)m zPZT8Q&zrd{6;@SYtj_Y>x{Z*kO!zBHoQN+atr=1k(EnTlABJQMq3*Lb{=9T+^y7-g5mE_zT}f3Y4Cg?V3fnvJtf4 zeVAG%1uj?zXhOUP{hIsP2WdjQ0sWfW@i6N`G^CQ^V5_9K{_jn`174v4^4Sg?fS1_* z=Rogb#sP>DOl>0S3R2t%6MOd%@^G^qtuW|8NU@0OQarr65baT{`n^*yt(Xw1q=exn zW}C6YRY~!1RYKfw!~M-LDC>Q;{}xzOv+2btxO1x{ye4 z>Ou^hf|Ld2m(PMa+V9tFa0)^qYI;%(7L^c9SX6)7yO$gWVHk>{#Drfc#rt1vB{qWEdbm!24vUJ~Eh;E1Dr&K)pv|J9R*MR17L`RcT63a`T5Tyn%|6w;qO$qf z*X*djDynl*SM$F=>N0&o;gkZk8x)|!e@Ut0o(@${-a^eiow^)nd^68qCiR`3W`n*) zDyZ3ep>`t`blXpN`HgnD{9JyM%kNKi!zWY?pU~#JA5|RYfL2>C&|&A(oG{vHOovu; z0(3je0d3CbQBJ*3iyM_gXM^1)Dk!|f5}KWkr94JME%vCO#q0@Hw{)nwr9&SNu|bih zbSCmKsb}_D9Lh`iDQ~)_ypx|w-~6CV-~5;~CP3-s%}n#-=Lf@=CX vHlNg3w+{*m@8YM5O&7jV6~h!UM?Akj2wPG>0?NuE00000NkvXXu0mjfR5XA0 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/back.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/back.svg new file mode 100644 index 0000000..2ca3bd3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/check-circle.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/check-circle.svg new file mode 100644 index 0000000..dcabb97 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/default-arrow.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/default-arrow.svg new file mode 100644 index 0000000..c9376b0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/default-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/ie-logo.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/ie-logo.svg new file mode 100644 index 0000000..97af3eb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/ie-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/illustration-marketing.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/illustration-marketing.svg new file mode 100644 index 0000000..c2cbfba --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/illustration-marketing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/illustration-payments.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/illustration-payments.svg new file mode 100644 index 0000000..4a6c224 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/illustration-payments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/image-upload-placeholder.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/image-upload-placeholder.svg new file mode 100644 index 0000000..a0210fd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/image-upload-placeholder.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/loading-avatar.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/loading-avatar.svg new file mode 100644 index 0000000..5c15293 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/loading-avatar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/loading-spinner.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/loading-spinner.svg new file mode 100644 index 0000000..620096d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/loading-spinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/placeholder-200x125.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/placeholder-200x125.svg new file mode 100644 index 0000000..2147804 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/placeholder-200x125.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/builder/toggle-tab-bg.svg b/wp-content/plugins/wpforms-lite/assets/images/builder/toggle-tab-bg.svg new file mode 100644 index 0000000..62ac29d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/builder/toggle-tab-bg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/bar-bg.png b/wp-content/plugins/wpforms-lite/assets/images/challenge/bar-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1e88ebddd93a0df5cd6dbd39c7cedb479867c8b1 GIT binary patch literal 288 zcmV+*0pI?KP) zu3vbuV|lS;da-4CvSoX+W_z+{eXnbMvuS>>Yk;wCfwgUdvT%sHb&0uliMn=-xOJ#2ikifWo5YKR?gF_0004MN zL_t(I%caa!4uCKa0MW(WtvL5TB}GG<6vFO&PaYJZV=MFWeqP?2ph+!Irs;9TJ_1H1 zfKdr95Q$Bo5xYPl4uL|P0)e;$JaG%0Fkc8Gu0I7V@eq*2Q@{~|fFeWzLr4N^lD~v3 m{3l?PYqP+2l|^MYi2n+a5khz2-jt;P0000 \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/confetti.svg b/wp-content/plugins/wpforms-lite/assets/images/challenge/confetti.svg new file mode 100644 index 0000000..e889026 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/challenge/confetti.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/getting-started.png b/wp-content/plugins/wpforms-lite/assets/images/challenge/getting-started.png new file mode 100644 index 0000000000000000000000000000000000000000..c7b0b84b8fbd114b1c808efe0735e98dd5acd10e GIT binary patch literal 82647 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

      !j4&^Y?8wbQpV}5B4P~wf6x@wPYWlunZhp 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
      N z$-{Cf-W_BA!F>iSFK*YYefBx;cEU*6|E^d+nICEx>k;b~>VIM8Z}NICS1J&k z)z*sZ8fpFMZ4}QvKJp%Mb_;d0_S^fip?`e+ZG8HX<6BFXKm9KUDY7qZ@kdS=0Xr!& z%voGO^n8Aci>aFldPHr;%j0(X5i_Q-um3Vz_vo=Jw;WGTyU!ANb~ z-8y|jclVg7d(eAG(CX|4IEan32W5{9wql-~PrR*p7wdNBJAXXqvR645ff4+ma$3NP z5hzPg+siCTzqMEIFjs#{;lBt>20Zy)h|gFGC|`Tyl&#xg{qs_%TU(BS#{fzsv02X- zuoF|!H0+t(zp+yPBy)4}Wa!|EDdoZ1xcg_Gnz@J_;~JuM|1TbMF8{$ zHy+t+d_ev@_v61<8y~V)O1p25#)_fqgi;Q&D;&+In@CLBcGz?l9C;K&yK6CYv1tM7 zQl8D=QYfIKH23y&!?r8|lzEQ#Nd2xt2c91UmL>S1n8%Mnt(;4R^8Ow93Z4Cr-9-Lt za?75p1GqQUbQDj2X&f%B04lQg3(v&tXW+VaFnFE5LR@~hS8UGq1ZYdON81t7CTufM zK*n_#!axlHRro@Tk9=d?cd(??n*-Yhx4Uf|R}gwn_S_2(iC3W)By0}lwF1{(Nk%WS zpCR-o=9r24)(=OYaHOqo={e}nEQ=Ri$v^`-a~Whu=>rq$ znJ91bb_W{Bo+a@hRRR?aRCr8TL_7y7eg!mC{2ZL6d2BfMOt*Xt4p9NB`4@Yf3iHZ1j>UIEAHOX(qhHk-KDsDTeQX9in|xLVnu>WaEIU$0wll}-tS+2 zP zy1+9mgUYt{hK=Ys6|ZSKPAny@>urc=`s}L&|DONNAh&F!_DQsTTEDh_)7(PJo&!f9 zbIHn(=>&C??-ne|-?y?D`BCMjQNU(d-@t z65fuPd(PrF+a?)x17bt|R=6OgJZ_aZ1aD2aag~S8ta}b z+0Xja|H9a)PBsjm!7Jqg^E!pBED))Dc&wk|$9_3M)kXRwRwJyaCovq~ZnlO%C;zj+ zxIe~8lnd_+A>q8LhFfhmQD+(5b5ANEq8*HbYR0$`?{npI3HhD3#D~JG-N#C-XbU9| z-%}g%+&v#Vx}ef=zm}d&LBDv`n~zU+wNv{$5!2Cg>@_d#ODtU(<@ajV;6=y`L+Bc} z8@PKSA_y5qsQFCX&_y}_uHtVNs%!3n^3lcXb?<#^c)Msb&P1DPJnv6u2a@A6dVR}D zu-uf3lfizAFv6JSp8oXS#zDARn-_z-&`lo$py8S z-Cv2YXldtMMnmo!R4PxqZnhw0ALyuD>w_*@t;>gi9qnz0gw`6VIo>WFP|7Inp!Tf} zh%w=+dgtXKzUm7R{n#8T;?=(65m) zt)XLWFXrybvrwgn)H;WB-Ie11JzJWpkZQvxBZ+QWTw*LfRWK!Oiw3pNZ=OBtV~Ao050@IGwqTt_ z&JY3F_|KM(Lghy|hrS(1HbfmA*>HmiL&d3KOgoV2WWjr~M=GNr2Szr0KYJ%h_@ z7=eV1QMb>QHT&(g8ohDYy1$agU=FpmAD6)UrYj*S%@gtUq4Mng+)A+HCb!m*bE};P zydoSveFchr7ikC`mI$hvkoY=e_q1!x3R`o{iPsPtzk)pM!{2$Fd+k?Li#(J<(pil3 z_sNZ#ZXAolRN1%~@7^x`OMP#(-}RhN_zV=*%toqs+m*-knxXO2b;txm4Wz_q{F&l! z>m?5Mc`=j4900`^c?ykP77A7~QK!!#Gr}9ijZJlf1W8@|C3)sK>%C+;F*a%GElSZV zpJiD=+)$sdA{PPOi59zF83nbt?qs(8-ZNJl#><7%w&{cq`__1_jQ<$pgbUh`l9pa- zwj|PeH23Uete3MO^7dAAxI(VVc&R>Uvg&(ZR^hyAQC>Z3D|V7MPrETVhXa7ENN(nSOsYX=|E@ZoV5`e9>cQ0>gJ47r8&Wd?(X|- zVn4E$Kw6~I8uTNRr!xBIk075if_!^YS!@?Ap@N&*0V`SlW1=4@JC$)9FxJF`EF_$=8y;|gKT7i-9R7i zIqt{OM)SP3Dx^TVEsha>{TynV{dHR5f7B_1k&YLS+Fic?qcX9TWT|~*H@h20ulk7V zfT#T;rFM~{+pMh6_g*5a5?r&bcF05($9{qtsqMDi& zC+RiIE7DI)mJv*#KCiAjqEAgC6jv>=G?^n=Xc1I>C&2w#cR&*H_H68yYIn6{&X=eV z$V+$5y@kIY{b}M9|FulUy8a?miXZhvc5HATjc0n_lm%&*oU|!7jl6nNKM{eo8!^qP zXpvXlk3cGSC5^I?uOj8^9I)?@0!`+M34Pmo?U5VCIcDSxkf|8clDJ-w>MqV2dVFkw zbZD=hbc3CCAsKvel}6rsWv;k?m!y^oMD5qd%QLx!p#rV}453mqU4Bi68qQUoIVX;D zhwT34ZT?Ud?fvTW?-1?JkIo*K)4%{|S8genfk!VW@y3qU3qHSJ-fiS|b99Mz ziu9blw)ybpD2EidjQFJWV&NWnNcr-rw6;+PYPR&upgy{%Vk2239{tUa?BFe?-+1;e z>o^&-a9q;+{G)7XKaxvl06bJVb)Y20u|~bj;}R4$8)1C0F|ZlQGTayX0=3L~#p^X1 z%yRX}`a?&=Wan!djc(>7McCH8S66-P&nF)$18N1s3(>7oyw?})S48>UN88j3h@g{f ztd2M+d`RFMzs5f;h5q4>pUZ+Yz-+n^HVUI_?8H)xjJ)jmtcBqT*~H0_uNgfVK`UEcf{d@q{mL)y#f|x2CLPKreHA z?-0_mvd3r9eg{I=%}*#da~0a_`+xV?3ep$M27Z(UJw1k$jWmeM2F+N_6ZcUjwJxZ4 z`QL2>o{4!(o}POTvHU%!U2p+&TFB_~ zGf+9%LT=TE=$tal1*_>JFY7t}nFAI*pE_?nfi~Vws~3=Z6}}-|XNOeZV#nN4YwnMQ z^G~Ttc+A}uQl3r=`uObSGWjHP*ZIA-VpC_Ia08tr@gQ&i$en&4yNb(B)1 zkK9$i;KVw($sWy-NY!k{-Pu=)mMCwC`79`rSqT?xXRmJgFKG$uvX%~;5P<7(w>SLc z;4(Yn2PRruvEc^o^4$lYPz=4LsRO)LBl0sVx^=h}TK9L~aM7x_7%}17ZN*kx3_0ZU z;2lIx`Oh1ZAD4+kb=qTCCTwn5-x^)dg@m*bClQ^yysp%1vdaq*wTTk44h{|cA{0sp zDmJ?Bc@XBhr}!(+_TNrLFJE5k>SLUg+-M4Cm@ACux@q_i;6}J{lW{W$d;Ry%J-WfU z^w)baPw9l=Xy{mJjNrJFT!8SjQ< zxosi-Po1uH>Y5$3fDbuMz9Dr+m%8NCyQPB(B9}iHqS*SJyytoF*q4*HwMQ_iCV&L(A zJ($cJ7qFjyQECqX%u-+llc}RB;)G%cg93!f3NBFdka?d<8|0flbV$fq1mJCJXOAs2V`dZvvF- z&bg_Tzm0pGQl7A-;4yngkLYO&m!TUH+lw2<-XlqTVgEw_1s(>%luf|XY^2^yxQJL{ z5D>7B;~9L{v%;rcOMuNB^Bqri7Uj>~rurl_m~KNw%0R)y(45OHN_}vCi82jwg=Xiqu03aJ9}{RApUsLIl&&6@#`US4IuNDGmRTJKD4pu78M8ChkGdAV6RYZ((mJ?Z&L;Vj8-JFXsC+-OhFoc z&qu(^;B=**_+)w3l9PJ?R{jryv^^+VfOFH+G$9D?3^e!+b;^)V6v07p}~>{a6qil z3MAu*t-^NW@iSF9qy>)ELryYE37^pZ{+Vana>=k1d_vZJ6js~4*7x82yNzfN;N=d- z_0^%q*knc+wD1gx{$mgpKFOWT|7g>artvA2s}ofA^AX;8u}k4XkGTOb%MvsdGRZBC z_W|s5#-`;VUf>unoAQz7UWw0#EhnNV4`SruJuy?1oKv7aR&v99T!zHbSRRGbe)tr| z&z^A*docWMQwWw_M$vsz`ZEX&q}yXg=N7`~HOsGKY`k;cMRr83*2JAZ%nqGp?4vXX zi*LVR?>%Go=PiDkUlDrk@F|2gL;@Rcw~}N~bpB%YiAb2j8hkS3^t2%TJbALh#H9d@ z7=l&=J_>ISV?>7Wogb2N_|BkfUY45O?Gx&mPhuaS)g!;<2b9daPdS=6T(vgN=f@8G zK9RsHZNIzE7Ti+WIZ4OD{7PPyRKQO5OXKIJ_TxAp&Y`l#4eMTAhhIH9p#~n@0Xarp zC*sg9zUa19{}eE}l+wwktbDCOZ1EsDW)fW9%wQ8}s<1w%5{36#c=*0jnvLnxf)I0F zm(RRci!WxX}}C+C1mOo8G{>FBfu{CThH{Sk#i#FEZNW*#YPhep}yJFf)Zf z@BLgIzbT=+xYk(ekP>Fg9bv@K9_Y0=(a!en4OpQLK)y;)OJ#6oGG-<&>$5rNsQ&IU zy^Iq4Ta1qJ!f!(owGqt}VA{{-!cTgj*{Jhq-SB}Ls+2GuuKNB-?rK0c0e(n*6C}-; zqLdG8B>(ZMDoHAwtWjb8)|SPCp@%5Oy9 zFn$5IaJTZOWZX+|#Z;{uf!~G~3KPW;G5bKFyI@J_4~DaN@NN58?J zx_w`U**HT-!Fw^CHrww!c}6+}Krw`>_(X1CErG$U`LWJ+Eg^PdT62f;JoeG(0uwwD zF9_QSkpi$R5Vc_^e)9<5AVdL(u09BtMh#P0&!u6-{VkSALP5hs?^D)!TL8l5=GxIJ zQ?p$6-bTV$83CJOn-6B={c(TdW$Y&R3W?gbU+tj0ZWI%w`VIO!J?Es`s)3f%uF}M% zWS-HC@@6A&RX2p0VA7K{UAJcCr>5N4q2saKzP*1kp1{Q>9@KPBJi|bu#!AxjyJX;& zTEN{`NzTe-W4zq)lA0=x@?@2D$yDz1NuZ`=yX4!9pp`I@YvtBT-@CYmx!vZ5@d@WR zk6kyLv}6XD^~?sm-qs|&(sx|)%vImYqidiMo(U4jXKeU#yN}KsUd+Txy&LpHG~L!@ zEe$1w@+=-5j>*~@%gq#&VDs5#!-lrn5%8}1u1=&?@SUQB$;4o|;6}5uH0Y$psU7Pt ziXFrSAIEM*CPyhU7K=0eD3895Pj%UR+&)NhYEFmT;*l$TG%M&4$n+cp+qdkb(y@COux@D=+K|3v5~?{3WX^zfo}H zh55sOWGN$HGi3^uM}YC(t5}4z{X~;540}JQ8kHeGe8KaMKDf=3Me(&$8Vhbx8y{m@+GHbfQe8v)Hmx47Lg0azIRV}#>PtX8 zQ9ZeLsO;09HOB{R!ZDE-B$fS$yDQjCS~^QSZvNxBbGU0{Gu8%ixovw5R+o9V-0hZR zm$iYex}+3>A&ZY0TLU{VP1~R2E!st9zGIBg*&V(pd#DIL%9G12f~Jy}JYteIivEm2 z;^XEi#v^z9eQwY+x%ryvQ^~2u4E00<#q|v8o6gRV`yTjsL)Rrn#^b^J4E61o<3U{A zDf67An)qA`#a8bd^A$|195rb^ z_NV_w)mMBzRP>$BI(uUr_)BCq`!|)g9t~pL+9nGJ&;T4MD${h={bLl@lSvo<=rwB1 z$3Wk{#(RF|H{|2#xF>wF#vdr%-5+qrpZ|gH;m=;wEiJAiW0aQ4q54slGU4*>)Z)~? zskcO205w6mU{s|Pr3fXGb5lk}#UHWgRii>g5R)161`k4Wn|CGLC@#|YwetG!+tL26 zJW>`@F0JH4Rxxo6<Wc+@aAgp4aW8xlR674k{>W|K20l0MHh6AA8BA@sdiOdQlOj ztX5uL-=(@R5WG*f?d=G6pH$WDS0?A%3r6$QDpBL{aN*A6%A`fbKut!Y-;Stt>%(C| zZ}g_%$V+v_Hje=)OQWdD@kMFojgNWA+7Hn}0JOj$>7E8sI-Bu`85*%gv^OhfmDm}= zRxiM3trSE$HY^}FQ*8X1Y|5!Y9!nSC!?w|2`kfg^I?3SVlZ&c5Fu?_zHWaW;xG~*@ z{N#EWBV;~!7JOmhSa{bajWT(uxHjVi)0ftddS3vngq_nx)Q(Beg~-y5NjSu><9+Ud zVW(ct1ce!dpWf5(Y7m)AuH6xBG4>DjnYNxq$4k$&T)P75 z-L6@n-H#-@+x$pABooCtkM|?m0GY;lEnPzlby0hqRS*7~8%Z^)k@TrZ2@vI6>vzb* zmDpitV)F~mY|O20t!FEAJ>UMI?)4@EKhwUIFwa8HtT0&AGH3A>3I`ZBVnY6iK{uF? zpB?<=mm2Ew-e)myg3NY2ybjc_$`_aZ{8}~&=r4^>J{y^`xP-sHp~I3EG?4BU5CG6f zo4R|2OlOZCh-I`!1u+Eo&;xjb8~hT{FvW$kuvYtFleY$VSg&qhO!frE)}n-kK9Gh) zq4xOR0-?1cGnm$#X~4bjf|G<;c(Bk9=cxR7$N3{=c;}|>`$9Vtu{ZLl>?%59k5? zX={!n3Mm`RM#-Pf&KdlU&$*h-O3Nw{K2b=n!=96b1EHw`8lw${v`VW6D}|W4pb%UU zfC?SExWpT0Kt3+};y3&>uoYmiH9gU5^jp0RLcwU)t(N|bYZ5S#!`uBoXV_nn4I9Ql z1edN9S5m!pk6SH48XCVRg41N|*6{X0JTZ{3>!K=_b=wgAGDZpzSCMeN`FE95QsC*xFz$1V8lb}#wX_XVBf*Qde+Vk6 zXo~nN(E6w$VMYgQF?1_9Z9hhbc3wG*ms`<0*WCgnEMM1PUMHfSNJiP-i)?Q}Pp+nl zAG!lo1O>QLls!1Fon68%!4Abyi&BkN{0&JHjvzuja8~T35UY)^pfQ%Zc!|Q-ek)Xy zyt($t2(s_v%Vn~FDEzeX{wAWeZHbc%%uHfELRs_-3M7}{l8!TaoKQ3qf1-&S_iV{U zB0SDo#{W{Ae^}TtYJy<{` zI0CfFx7=g~M)AG{=51Bttowk?!ijo9eTCb5LdLHMq+z~lRN-{|eqeb&Q$iw_zKKx4 zt1*mYRP%p>@v2)FQ#h7i3mvg#X3z3Qe8WD$5(fV&v!JWyWv26`p_Q74vru3O#cr&Q z-$N5V!z`==vnYFG`u(TLsyF@S$vB8A@s57_m`myeT`xF307Ow)+m@OL(7JH&qtD5Oh!RKj=$GS`-syKUJ~$@&;>dRLjZ(u;<{+97aq8e96m$I_+|D->oYXIf*deX{ENO*?WaB}C-OYmCef;h-^VDaA zdl$*j;;I@O)sN0AL0xp5zZ7=4M@zA|#57^XX09i9D%vf}?t>_uIJgyxL}^zC5gDrA zC;vEPoU3NZPaH*A<+2!5w?_=l@$I)8wdB(Nx14UU3rtWc1>D-eNvb*mowcr}RZ5zR z+##ccYcWEWTy&c`{I8jcY>cMN{KJAp-(7k7(jMm8PnM^V@P8`xcs#$cyz=D41ex{B zI<`9D$v3zv<-`K_c?G@sJ+RDsP)8&;>E zIen&{0Ef{s2yp8Z%mF&p12G%O6+paa-SKj=w~-}lIKuNv>S958fKMJGg1xmH`n~>ug317$ zS3-;^Y1cmkRd2IGx9PV3olP^c>Ttis;hMa?b;A$M1`%=uM?ppS`YGIM;?)=TdkZ!C zzEB57qQB~_X>qwX)e&Bsv09s98H~|ZR70$(iMp}i=0{6QD)jWnqaISJEJ|GbPFU?S zO~w?e%=6XGDc{_6$IKA3+(qdL(9D}7Cun@YDel!~^KLtBV+|Vs<(5UJaFo=E9L;rI z#%y>%3R7)9N3)~0KdcO0Qjj|9d6PD@W>!f64zL<*?TW7WX*nPAv&d3&8CgjP0H<}9 z8Me@~^pnRsdkz`pDL#H{of>aj2SL@W%04RDPp|kbq$z4mf9CcxBR+{AuM8_frIavHfNR&au z_Md*(G=ZRZqX;Mon^Q?#EP&AX=(`(*wMwSq$6w3+bs@f5Qi6f32QI#PLS@nmaG?ES zA*FXwu0yqrvGM}iC6|jT`F1e#S-`GtaN6<-C7(ZocM;ctO&ZQ6o^+7dOdk!Z-KjHC zt`@;JzCCPx0>LrPV_fsS(D&ZsKBu^Q=p^6mQ-#Cw4b7|xW}ssteR(yEV3}p&OC7$z z6qK+04}}EQsgv`z!h+X*C`KSGe^kF5z9{M8bJUR!hx%@J5m#KW3^N1PKrspOI+rT}>b7 zzdXMG`|@C{B1bM)!j8?hVs|pMgnP=j@HqcoNu?La9nA`&6vtF3!(Lj#%=7=fgyL`oXm&4HLH$xpM7O$m}s#W2wWM!>?fR%yKcERvadT1G!)y zJ)t4UdiF@cVv@%7jm3-pubuls)*Y0LSU%xwili}2nS$FmRd`GUd9q*pgkJ@tksjxT z>|qX1E&Od{?Fm)oDfvoi48{=lMa{1ziwpjH6(C8WjzBHNo56e$%10b5ZXW}`4d5dP z7BM*tB?rA<%+I!I;3}n;p0-v5oU$ISK?AuRJx(Y;@U6kAxn_^ia$rROWwj?533zLoQ(5lB3m&*mYdxph{cZGYJDC zl#HfN?fyzUSd}X1E>GsPW^tQ==xDh@il{LRSN)=ws#=h|lUka_+zY(i8lt5g2;m?u*}^Z6IqNiVfK^;rP+y+cp;==I5gTg!#7 z#5Js?8D-2*y**OA0*ZfSZtFQV?F;@ zfLGU`q>I*uH_Vh*hAyhZYt(WEk4c%&*>Ch4%&G-Fd%70o(i~}S{q!pE0N^7$B`++w zED_*i*>9qbVqmWF8tr;fT-;tKt$GN)=6Gpy9cZSjR)EnL3VhX!2DI-NC`NPC$nm2k za?N}L&7<|(qQRwR1jnlnFN&DHL13#lGScMG=$QQ1w@2cP#a}J9mOoPHh-T-61`SgK zyt?mYK1sh9kKoHYrN=qJw?P%W6@NRw5+#v&fkMRE2*d~O^`?_3vgHK4t-G-D2fSVo zT-_x6v6y)7ed-IU>&bBCTnowa{ey`@ueji+Q&fXLkKvGQ-xK`m=!ff#I9m1h!T{9E z70`WQ?pSALQX1Yo<~k37X{PwsPT*#YCmlh)dCmd(_79v9j4xizzk!u_^Vof_6bbCZ zBpJOoqk_+fuBe+w%-1e71_A*D3*nBJ*#BZkQSms!K>{2k8lv_g*7c_nTZ|5E7N^9b zlz3psM8jjuGFCEvA2)^IM=J4U@**K_l0rMH1ffkl`nb30L~ z(S=8eX3>P7wuNJJjuwPE6!qJac$9C<9Uq~DvAI0j>U;kAK%vTc=fY*o48)JNJrVo9 z9(YU1%!=qhlkX*fQ^0TGuPtAr$Phc0k29G(P;&(9U3GF zoXkC`C}O8+2Nqdfh4FI5_rFSPY;Ir?nc;bITOn_hgTKB+)H6=Fbcb_lqkp$y$Wv?B!-~X}50?78woQFnb!0Z7U zFE0QTIlssfqoO8JE`@J+Fmoo-ZYGVS7n}5RP=?K4yY;+RrN5%p5IMrjv+U>_2_+gN z3e0je6F0yf@DG`Xu%-1=o}Ej%q7X2Uk^F#tpA@?vZ8O2|AqX#|ddml>$40GXIjsnJ z8+~PWo4~l21)DwF!;oGB0XC>QwpM)zWRl*BQ&8Uzc#SmyLB}sh+zEzftY7X4`-P=| zoCz>-$)Y?yb@yv@?{j=q_^>87{{3YLf`{Oe0QY0gWL{38xDmwngwVHQM6TTYZZ`_$ zl8mgSSYev~F4-?6Q0XMPX)}Vl(S8%1Q@2H_DWj`&^pbRH;O@s^tDr>Vd9=#)@`iO| zb+2W{LoHJ;59edlCN00+G5V@{SKALGL)n&9eHrJ@r~F6oU1C>IXV)5gK*3;QbFf^}1icXJHWl8)!rI1({1r_&@hs~m$QDbF zIRI^CRe@x$SHKY*Zn7Ws=)$@23iAU1`wE~ZaP8~u58!UJ=l?R8yN~8;T1@DP#)ol) ztF(6LJQ(g1R&7-k#pVn?*&k_eGPTmd;>u&NIhX1)S>&VLjCZv>%|9a65~m6~x{Zyb zWs~Uc%)}KRNzP@Ba=|!wEgYU0IOQzFJw@2FHZX@5MTxI1{&wvD}`>!1u}m|}T1hebUaNlK;Ku9%=5s1tF82D<+}4RtO0mLipI zxD3~rs#%^dx7?Tfl==9g2$V1)IIW(8aNLwg!PszG21~;AQ)n}1&ymy+Z z0KHY}vhF+d!%s_CROeMs&V3(eGGK*iQv0Rur|DH#+;uDfe>Ps#QttiemE4!byaz@1 zg`K-iH%>ha>dvSeX%=SE9SLw~?2C>5!Lhy160@1FGX2wtH(FK4ZT!6tR+Nh>zUbR`VB|Hph{ z>N-Za0n(9vFjJAADT#Aor46M54b1jgowCF;S@Li1N2AIXr9kr+Gf1>{l!FyU%t&E5?0thR9=4JVhFc3$ z6a>r=^1DDR0tx~OUHOV{Wj8iYx0TURu8y`R*d6f4FxIa)76OSmbiA-zDvgcFv6-;h zvC(40=zow{q*Yr_{K3Q$8~o*a`*3@2hR?uJE19N!KYmq4D2R@dvHn^yF*6gf!R$rz z8@c!Iq;Aj!rcQjUWAw&~b%%Ex)r~Bm?u;`V zOSTARDoK`Qbl6`>i6`oJYPSUi#NORl!(iW4h+58EglWIjzs<~BW zX4G;vmD6c{$1Cd1wyo9Em;-^${{Gz3O@?5bDsxYP86O)x^Bd6`L%0QUp@C_S;FVE5B~D;C+EoVJriyiC2lV z+>HFMm~a)rEBIn53U{f#pxa|SsfG=^Ui$uwwPFBCA)S;}5~wxO7qO@+^*)}b*h$a= zXxx!+7<{QJ^Xru<--ptk(d=5@t!+x`y|AM`S#7nUZ_RDa7&igv!jPdC!Q`U0+I8O< zIa=MB7DU6s=s)_|O34BM@qD_+V3PpT$Y7%nrO1fm?=cG@S~29}eVhcbi@)+uiQBxH zXC-kGY{(z>jHI)9!URhm&uu3G($;3x`R&H1%FcrL&fuO@!a#!B~sP4In-g~_F- zrgh23n4nu8K(a@Kmy8a>F%fhUOA2Muou3|C4Y+oOc)YEeB!GOt-e{qW1DgQP4W1;e zW``sy@z8MwF-v3v`5H$PKNn#J$H!$z5I9~UTnx56{&6sz-M3I_{wO@+43GOQWKs9I zp4mD5L~FL|ofMR{1iBtn2!SrMjw?`ph1goNnMcNa^0IQ8t6ccB-aRj^pWCgMc&bog z>FBfom(V-0a+}`QMPwg2N>! zQ>p7qonnSqhjRgad=vC)C=i{lY!kIGGuU5I{F*4FSBb@c5Vmp#x)Hpfk)q|1 z%xr8~rhTDH?(}2BH=gLDjl|UYEw8#8KJ-om*Wm0h$uyj(U=c?2qjU(wXyWg!Voc=h;wZG^`VVa2HTKU?6s$N zM3xNKz2->4ky55ml&IR;BTr#&aRC44qEV^x1~+nzNSeE^tF)y2#oGFgXSy=fO5SOP zA{Bdj6sxmjurj%Jau3_O%p?KlFNSXK6$G5-lry`tD{728Kn|C-q5TfOsAXZNMnmn9 z??JOHjQ32qmy3^+(knOFzuY&5JbYuE&Azrpt$Qns`4dTQuc929@G;QYNz{3?He}__ zVs#42lWYO{QCON0#BW|e z52DawljE&*biSSB;wf$(tx(R|9xaNR53LVLY0K1`L~sS z-1;Uw^%m-i|0LGyfU}uKo;yTuN($%sEoY}-N%u1(l;LbVi;w6#0j95QWewei70iN` z$Ke4z4KSU{w8U}d+|SE;WUHBNf|AnQjY36LOrv%Ewptlv-Q|a*o~rms4;bL-;_$$` zbISn9z%*a4lL9X8uDn*~#wqU3QTq=S1u1Lueg1SU7Q(xrDQf}lxlpHgTZ=OS$ZUBl z=8dl|9?OgQ>C-v>>J4b0x0XyBfOG&A5JjK4UJKkh68ZeM~B#Hb06{Lb%b(Y^o0KNt?UniT14z zbg7hi{8SZP`Hh>Va3bdhrUB|F&04c~a1I9MW;Nv`odvwe=INh(>3PeDi#|@vhjIbU zdA-==EhR*seOZ`7qkJ)f#=>-{2Eg-yzS%86+Ct+5K@{DnpYxw(aR**RN@}iR!*hPB%cW zq|^%h-Hmb7x^A{*zkHO_bLAwqq||&wefB9X=6)mnNTA8pHeep%8E~(`&}n>cf#1y* zE5GWKF}M$3I+A+FaQw5A#4KWEq-WDgBm{t(0ksWP^D1ffT>G*$;NRh?;QMrW=Sv!(C_`4>6B z`R~eXE_ZSA`IH|2%|I`fJ71oNZNBwZ-A+oTa&-9e{gVd41gtke4&WE>-8(gP#r}tH zwGQ?C%jrGx#JlQF6>r)1qi;xL5C&TYEnmx@z{i+XunntwoVt90hR%Baa$=v?_-{RE zfxHPpi;cIqV9D|_Pi{ZM_HI9=_7~s0I8RGfKXYD;{R;u#*phn$AVf9W{tGi|yRuXA zFE3AibDt;A6zfwNI=E0;ilZWFQ!_^>eqO%<=n-X7})jZ;7RVqyAMuXaEaa6cCLH#UJ^o$9Ax&(RALXDX7im zPp=2pyb-j^zc;`BzCKoH%f;+=Z?_^ite&vME4!F0DSwhGb$xu@gD(#u2QNSLj01>*S;kLah8jE zsX{%hJzYF8*VLE8b9LeGCnE_r%Jk3j3K&vLpIeNZ*iFcg@ffw+MZ|B@qVaxn&BJkB z{HY}Q2048#662*GOHq7YYA5jWBF|rxVeO@khbwlTn!eC>vFI=BK24>by&Ge&hpf|M z52Yi0#l)IQ589aeps9mT*~YwI~eKl*mx)s**~pR*{_7>xWN zo{oBT!bU@4^|8dhiE3qzh5uWfE~}*kWhDLV@{d;Ab7tcM1>J9*MbuXc%?G+S;fGfWxA=EVUqGj#VACJwPFgMZ0%n+V zp<&Qt*Sau~k96B)lK6M7=i$;&GtKh9!QP1{P9Q8nV+w*c+Ri*;T&^nvi?mt{^7d;c z@@(Vx=2G?sILr;FZWGrjhHIRB%(IvYE!Q7q91qpyx-(A#TE1M_oWoH%QLfglGM`3S zZ(7lE)H30C2P5pD`R(_7lpaBm|BOBBPdjhlC9|g)CI7IRX9um8LV-<$rH?(BKt}#! zUeLXv6?|Q?{^xw!3=p(_t|kz$aH*_Rm9lS44+M1DUe5scCNm5mZtBc)?TEkhp&KPo z_8V%fI6bDbR-j>qn)w;!pFSVFz9%5$XHpL77~dgNiKKIM3y;}bg1}>SumVS&gXfp; z{}{l}CF2x+ALh)g>7DBR*`mdUoqd9{Lb9UzivB0d>6Ruur1m(~nSQ)A>Si71HU5KI zlW~#eXs`u`h?ya*HpenG12Q3`rSbN?&7eZ#Nnb{^@fPw$n?pL;uRJB>N zx61EKjffp#k-7bwtJ%qy57(7?2Grfgw>9p|BKYGfKROhs8OD=DA45W^_^Z=$GV$wLsX zfXj|H&wt<5>q;ia>lIzbKV=mv7w-ld!`!MqA4_LMVl)9m1WVRVWrpQwb(wlXA0dcyfslsP6&aQElR%RdFD=irro%I=^AN_| zrGtgelDS0Rg9IokE{jo92Yw9MO9FB&xIc;` z?ZrCFiCv*3uiqayV&0rXQ(Ip00D-s5N<-0Hp`xFKlm z?JUsFRw26nwU})FpL2%)Yph8f-Ynt$_UYmgDH_!qd(Idq!}h4g-Prx><&J9PV@WAj z#G~9x;s2>yEsV84!VVDMP=IAkulO-6K27+#(`zF&anAw za8Xm8qpsuOO{rGnz#&)eV2YGbZ@=BQbe8cGdzh7Gr@!s&L$7_)MU*ov7A5K?0UvK% zuuHx37rfuBl9)mmgg}O`&TjOEg(cRm1;S4@g4Arfknyd)NM=UpReL~~%BNKT4#1%8 zt8J6*409<~WTg8n+s^u40)8BQ5$(lPPnLPlR6%33-%t!CNn^wlwU84HHZHMY)}QpS zTe}IX{cmP*KP)9pGzkQm>T{F(sgm9Bu7GYYi1tRR`)fuVL5H8A-*Nk|iVtZ(+x!&l~o za;AV}Yt4SP>wqz@^qWWRN~=dDP|sf1fcQ>ooKpc%>aeo=1p+n&XHfCgy`-+9$g9fz zI$O#`Sl*v#IeRkIE>N}R2%c}sX#N_YhzC=HZnIm)l5b>J=bC+esMyn4tQ}T>7#+TG zH0ZLC0{QZ@46-r}W{%Uv((a)HyrFa2VeWH&uv6OLw-Nr}-?RTEbM+8OTJh!g%L0sE z`fR*Y$o_rs&Sqof%JT$_0YzJU6^_O4E2TCo;0@?PUe`O-_8Yn*(Fct3JeSJ7%DG|r zi}~MvaN=JA5s_J)-7pCo=2q9)i}X+abizC6s*yN2eDvRGU0xcuuXdniP9qz*r0K)+ zFU*4o_a@VlAkG?bY?%mGjLX9~!04m3a59C7I8BM^qZdq z-;fGa$cOw<^ukevq8I|b!TTCd$j<7-3f@xdWcwzkLqq_*$}Gw(>&e;bo5@*WraZb10 z(=nEU=QR=6H?nj0x>oX9EQIw~8nHpY52gbI8xQ-WQA2!fD`d~nzy@yIaXqpH+ zy*=1VeY*j_s6K@e`R&w7Wzs-qqi`bbt_6sWcE}}xk}E^MYq>9)n8fFaquq~fE_uEN zOfUj257lsYX5P`~epR3)I_FDh_c$W6@Ve@bUq3C|6S5LidQ{{r(|?OYZ#*2AJYKS^ zRNZuYjWyQ(@Kd^iunz*(#C5nnYS&(9ZaF$gwdKZ4KljvifO7#PKKd+k=dGbUbrYjj z9@m3BWk!Rf=&`eBB7fcojF^0OgeTB({(Qg7CHCIXx%-pcztyt%oSO37D52@*)A)l? zy#Y=^N&8Se|4OCDIluZ+qh1oI+wM`*CL9AkXmT)_59eP^;*Hm+vSagSQGUUX^j%km zIg|#Ym6*4Z(ACssN-XqZo_B^7=l)+)=NZ*R^l$A6K>|_&g7jvgi8O&w0wIcmN*548 zX`*zbNhc7bsZ>Qe5)hT&kZ z_XYMqqj5Jo^Zc$X7Ro(Ft!J2!eBQcmrcJ0d_iYubD708xmhhX3wOl0HZIQnX^_v3+ z9*B0p2KVLc9TtB=iN_1oZ%;0*8XkR-De$V~(K)f;h$=AD(@>Wg*iJy(7+1hG;kfT* zo>NLfcmc{C<^x_h{B?;|)0=adgt|j}Cz9oEQ?T9I-y$ybLZ-chcD{ZdbJWppCm$3^ z*7VT9W+m%gV%(?1D&wwtyjQtA3TPIx(xiUUK zR;@$<T1;I`5x~zCh9*rUq+EI`Au971rgqg?kXV)5JvHd<<&L{EGel zmSw-C#9dYSHgXEtymUp)%pybTi=I`7 zS3k4Q(&aCOeJJ~e>!$CHd|Z&T?*1Lx+dB1~=z6+3_tR(gp`xN=wFvSb>46MRa)Yc z+3?qdW^Sw=Q5co*{Y?+rrjppFNV2=Hs`25U!M~~ek|MB!gZ@QIO87lbtA`dp1m-i~tu^y$4j+s2%eqN|bTvRb zi?G)c!zM#Ui&?Z7FAz;1@7~Q5+k%LR;$fs*0MSr}bjJxnoaTL~8K!KINm3aIZYoQP z(qXt^I=dFGksBQn2(Z{p8y^}{%yEAbs*{e3 zmNuJa1qe0UM;TYazF6NA?v~~DI$5XRonu@75}-0D?t{Nce`CY~E8}0|R4j!0P4g2x z?O((_85^4Y^leRl{bFD5uoLTQFSMCFqQ&K_Qn)(Y^~P(fDeE=V;JmCmb$&A5Zg_rn zZoG6v5K3Lfp(vYj<-i+j0y|Gv_M=Kw;kpB~=~V$@CTv^LGw0p*d|H zbTBf$^si;p1-I-<1Ca{vKe*=dk|I_q@RXFh>azh@)7(lCv`EHdzglQQwq;w`T@1VP zVTMhwsWAHMT`o^h=;0gIpdb(uWWf$1g~h(ZfHy5)tf~;Y++Rp9AAYb}AS))BA}^hJ z5*T`E&$9V9Bw4XngQ64_->xtMu)}`yXH*z6F62{{3q7IzNY;5uNqGM&f*+|X;lcl~ z_QOqzzO2OJ>C|0uFA9E45-Wx!78gqwtFqcmd944LX75qvhQ2^oh26bw#7+y?gfv+W zELb!6KBC`5rfAEh=QxXf-yF|L-z@F|VUMqa@DlkR`AbTkpO%zRp--zsoh_YWlAoGS zYKKe5LZh>bxR-;VU#D9mf&%J42GIv%_$^9OZ$H>%Wxn#%g!_B|_L_(?VrJJQOiL9c zdp7*j?fIA3{{<5DEpUcAYc>wpNvIEaXLroZ*TgSxeolmIkGPLT7B|#sImIaFbVcN#d{8hsRfV5g(PQ}a}MD=TZ^+sPJ z#ZFE$^(XYDx00E!B^ih4lPIc&`n>!ZT3X%s_hsydge^qaxn7)+wsuTCk7a>ggM!nX`ku7~A~Ns7|cx`EvXqF1%oJ(`Tsh=!40@ zeVCJ-ck)yB>_UanB3lC)VH(i+nwnow)1TKVdYk@Q)!xKVt;bwW=El$KRqSmVv&K{! z4o{E657J*42^?V@CM=y%jL}8{jMT94Wq6{ssQ~{1z7PTypQ``LErTen6cuxwWX>AWx*Qki6vo z$NQ*pf*d|5HxD+AxuBU*!$>AdCIAuvS9(Jo{-6~JEouB|v+q|JT(=A$-fnz9!MABV zz)QB<#bw})p+}e`p1j81rFyeovzK7#Aj7qYr>R@kqQ{$H#*kkr|;k zC^L5nx4mXwohE6tOn2gz!(~H&HeU@4zDUC(ONHtwa-sue=VBN=CL2l750OipRLvpz@HB?HltsP9ezNuR@YpFjwI8iA@* zRts6%8;I-s%$Yr%9Xwm?fl1dXMg9sPsJ8+cK}-F9$Ud`el4`f7*NdRjYoYz$1>ssV zi)msJuwlf{F3 zJ)EG(W@{RJ3TnB)AAJONGPjJLuS^~iY3--t*i!VVNvE@L*x~APW`?FhuSP_%v9SCeE0WJ)1|d!zCw=WF zGT@utp6wd*t>uA*kIT09W05HyBQz-{TXa!=@+DJ&4W(f!UU5{ie!7it8NHDvGB>;L zlf8oDH|=UaJX5NwTim8M9b1Y7~& z=6P4l`HZ%iH$c;13)>I2`L?BiJo;T@Dh|Kr0~@(UCnf$OSWssYT@HUlGVzRsyzgHD zExDxn;9dZG)DN-0q`Rf6B5!2$J@Y-MKr<~}stAu!Fi{{%24X=S{0YT2N;M-D+ymh* zwmByVyk`=Kor0tZw*_-5zGFOl?XN_~G)vJMgyZ;8YSeV1rVG(z8j-w+1XEDVFH^8C zp}$;F#pkXLq&Jw z1E!$6zGBE?LEU$W=w)crA}kw7KzVFW>!^}Ehjw_iWGYoXP^7st6Z{@4p-`f5v$7nL z(OkCm%jEeqlCQ*naDTVqqR9-@7pPdGcT^i3Y}vsj851a6oipZIT4B#R)S0u2`>v#K zfKk%d#3-5GuMo@c!>+N}m5<>vCm*>4TTM~|XPJd}%TsCM-MKEsR0UL7C*_>$CCAB} z&nj^q?|b;x|Jmdm!j}7b+UIDa{MLU3IsZ6@GY`*fJ}Qv*P9r*pnM9|2_vHJdkAp7f z?N1&GKTjY$@n?3oum*dINyB~z^)Zt;i{~KH2{|!FA*U~IimPzJ-#bF4s#!eJjPojSa@<49N4sb<*Zuu?9JCGM zL;mI223{kh4;v`Nb^CM&hC*5C*x?T|AA$GKcOoB-=0^rR;o~d}X9!hYSb?NeIPCrT zET0-AsLcg(YZ;RsyXH7!-f}@rGX!RLF9}vcGbH)-)}|T)fq)8ZH|pe`p#mF7RF#gulQ9eI~p?}#Cv&5W1&{BB!kbXif^ zprFw9NAT$>_%^Jc(M7OOW8l`va~Hw(?)Y);JAaf9xlLn5!+B9vRf^Hc-~Y@n*|yuz z%FGcStVvrnjcXmfAckq`MV)UKOr_2bc^}=Z^z-}T3zhV<#3iJ>$xx{?kEiChEnfDkk&OGsx1KMq(Jl(V%B_LC_!zDisj)#Nef%BWIR%m1b8 zu-vs;pz`+f8uVD#sT1|BIBt2>V;$G!6EWqf_~>IXhy{WFTc@j6s7_2l@Vr z`P@~AAQ~#+ixclmYhRvO;)i-?SW?J4{-o*8Kdk{#!rr2pkn?6R|BXsO7`Hg?Lj4td z=@869e#ib6hLF~VD&U_%<>`gLDxa&j2Jxr%VSuI^i9crE%#ljrJU40|(i*aiH(UDP2l64i2ChL}IzA0Ho^r5Z z*mOL9T||n^(`C&PkfYozO8r!}>(tDM0CDd-yh`9I%Dar7B4u44^SBMKy{(Pby`E;p zx)8^rmPlfK_qzE`Y<+_Zlk#M7JxLo=(gzP5Y`!` zPl*#+q!6WOxD9M1|HfnSf}mRszfAQRE=ob18+FuR;KolNqumP-v3!Y^<7b8$)|e(L z`cS1PnH&fG%;Rpiya5;k<97FQKXHK3bk~541$V4vZVFFEUMEj$+N~w`6%?9QEKX`C z7TKI=QzHmP4pvK^Ai2I4hl>CUWwq|~oT3=Z2sQqn<}E0p8Yn*O5z-0*9vD{6VmIEEqu4*fO-AliVpaUr}-??`Khz+g$Sl#SNC66xYkp5@Uh^w z=99)uW<#&`+p;pTPVjwY4{7JUR&ox}P!GLqzB@gtf9Xw;tWDEqrJJ2qu)m2zMl;Ap znJ{y)!BkO}+JWenAwIf#2QsxYIy@a%SV|@5_pqe0IDbm5*=xf}s!>%%chE9!Bbj-4 zRFk%^7mN2lVyR?TkUcs*o{f`zyG7A=W~mCS(aN1=|9b9ayPLp6wFAeF-#Ly>JFDID zZh85&U-xrToU+1!gbJz{b#idGCeC?aRx7=aTkGTc1QSD%)JEDb;+q~X82ZA8YFykT z*`YH1;jg>t^l4f=ek##Vz0u%@{?MATu`H%KCz#{NckyR{j4qPOM5XMN{F}IC<#82$ zjT5EwiOQ#2UY+ptsE&uJO2<$X!O_Dug_;sAaqqLbsC?Hz(+&sNQVXFu0`IEN2%?I1 z37!eIj%HIHX}K<$-i{+n7!MRzxp2$AI?R!bGiIBSPK8?OI9Chz*qGr3RBu{wu9@Rr zKojLX&=hfKeTo>#XGPW3#yu0mbl~p=in3w69FBh{7{kB%llt(9P~rOu_TpcJbR7O@ z^6fhX;qq?2GuSbE9U|Z4v{mruBSU`70pnf7*cVj6mwgJ6bmp}`y59?+4*g!!B4y38 z&#P0FPppQyUcs8Z5C)iTciF8T0Z#c7jY`zTjbR=oGy19IV&CmQdTm~G=d<}B!~f`SlHgUUS{LxmN+`G{D%3^5k*Z2NNpbEQSjYBa>h{r@3lVp^)G! zTNJ{*UXfqt=q6_Xxzjz6(~O+nup#fHV)FJ;roT!d(E)H%9T{ZOW1HLlyvdMLUJIF{ zG?>%@8d2C!4nbfn6nzHX7IOGZ41-cpK&|@5-KzL0db36ZaooH&4FiSAy-lv|ELb;c ze2}a&pxtxjy3Z|dYRkoxx=qds{Va@^Fs?T?MI_~uoTGA_9vOFCyGT@Oa`)VoC-oEf& z+cmxdomS#?!p3r$w;R4 z;&a9v`+tr)f*fS-a%Yxal($;-EOo93l`B+6B}%7?AB^m@UbD>}O#s<*uX-ndIi~e6 zgE+^b;$2sXR746d%qRpHpM_xXFsz&mf|3Op<0-IU#P~Ox>}fyw2|F$o?2`tB(jyq} z!ZW6f{jjt%cUv+hS+HJm=6G>jOQ$lB506%0ROphP8Xaqc`J}hjv<2)quDD{Yn^gJd z5xrc+9)r%~Av?d6)4Sg9QqlP|h2s@Wp)>XTVNbVVKE=5x@_S-)|FBp{l^=7hp`{f0 zLt496`E1^&6c+GSicXJx0TpR1Bq{O&oOklUtziJs5#PkW!M}5juFM+0#q=r<h1-+ya~uA^QRNN&`k};su;AM{^bIe$#>BH$m`|QJc*c>m zQ-0V$l1wMieoJ$Ur1_E>KhN#4A}2U-=0x&c^wmmfHgN7ey0duDE@b~Q#aBA(;(26J!4|W%!%)Km(yOssVkY%^TvglnKhp}b65{mRANy2R zD@8DQ=NV=8lCNG^1gbwbuk%<&xR{sDs-HNfHp!vQcYDMe72no`_AFLw?cZKh=v{tY zFUE5@ol+DKPZa_#Md`fb5H^B62WaT~$c!(0*vfy43R~6p=Cc<-dxf{%m zX0+&%20h1mlZ&Yp>WusiQC0GIcj!0|#>X#z8~MoPrSdNj+mjyO^7v;izyj#1Cb0jt zDl2*KHnKB_zV$t$3Y&i(A7}D<1$C^LVrlr=i;tT*%4_A~03bpbyoXA@t!tP6P5*L+sB z9yuvIuOmfk$0q#3uAB@%#dw<~hrll8ZI2$GRi7wFq%QF-3HwZimT}JzG03Fug~9u!QUgyL7|W zlM+aupV~;bW8{+CpmuNLmSUyWp;pn|9txic%>a#NS!Q_fn18B{=ak&zWm8Fl6F*@Xd=OcAl=0!ash-ti60oS zPVaM1qFrmxo=x7pqR4gamby_#J$as$LhBR^PG-J4{g6+y5I1LudF6C&8%vsSjo^c) z%#x9SzC=g&3RQc2wHv@#F%F8X(F+JxMovzVxz@wD`%gwR5H#e zzjt=DUP7`bs-di9PB!@dCZjHxD@sx)361%jb~AmlW}V}F)eh}K=3KHW;=s{?^<{SH zz~rW}9sL=D@HkT>j%!9j#_zP8C(ypApQLQYWt(9UZL&NrRnGRp`+n!ZeA1XL4XSN7 zGK!^+qs0}V9h^l#CcsH|`{zQx;>VU>EO!pf^~Wf)o&3m$0O>^p3Lv{R7sLpt`fcnk2H51PSg`M3}cd0i6h$zSRshMI3WBK?vFg&?ZRt~s3Q zoMAszg>}C3nL~^NGgZ{dv{(_Rl@Yu^icOX4&8Qz^T0b zya;A;7Qy$ops!wk-}~Yd)s8;>%*eLa_R{qE&>kj$9!;t+9}(w1JJa76eDZ5`&dk>#3y$J|cgL-QUn{?|@+xs$ zoALR>ep4tA9h^Gy>5JjhGTV_p11~ym+X1hCsN7*N#@O{>*$^ zDAA1ZWxD<_BY1OqaIaijiGxv{N#8s?n8dMemGvS7ZrC=y@WFk@SGyJlL||sy&?1?+GozI5?gED37k%| zW>x>?J}Au%tZ?;1)&^Qm?FRRC7boi-5+Q*Zf2^$YqK5VSW^9$6t1hmEbQO&o9xg!QHY2L z40DL}d18^~T|AQf#i4OiyzAz^KjIJ}@K>!wx@;TT{_0r1!^_E=p>6YHi5A3O!{6a% z)z@7b(Mabfe`7{wBf+)oU7yg~6ebO{#?-IT3OSHd`kmpHSM!Hz7Cvt=_p0SW#0Ao} zq7`CQ*q7_?2c6r3eQ+!tcdz4XM{jv;O(YACI>VlmMkQERLz(pV_t&!w2*Za%|IimF z^#3Syr_CjSg}|u6b}*czV{$Mrk>ZTJ$N{0UsuB3Xl17^x^zPd3>_oWJx6@2@ly`rT94hoMN@%||m5fTd z&LgQYvo6)xI&>2>10^f%41-TwL;88JrsuZVz7z1o(06@T z#4M&7e8wC7yxt)%as`H3PXh3fxM5twO!IW9?9@7NCi_n-ZkkcOnsC`gVyfJf@YhkQ zf3IjMqtW>v$FfB=+XNd|UdbI7^TUzpl=DRjSqH+mVo}#%fx{2*ucEbI z+{q&GLe>_}B8K1T4=Jt-zyIE8%sk8E?2Bldh2p&+eYP9X$%F;{-@KT#o!U04JrN$Y z#Fw7OS;IN=GJ+#Xq@ed+c&otoEIIbz~>8gvAXT4|B<5+@`*uSc_-#F{U3u6uX znZ%14Rh3i9sAfY!f4Rs>)?`qd)#uFZG3tyRn&mO9UED#E7J@}esLjGBTY37d?8G^1dA{jv(3aGE z&`tw^U!3aq&^557s-LFt8QAd+4_DzU)&Ti{P8f~ zM`eUzu)o{J9%N`K<|?VPl7icF^!EGQO?!2;xS6E+dbQ(l#?`=rR-=K4i0oyyhkZ?> zSqbJ_0|fKa@2r?}>({yC0mtF-)5F$lmxnnIYSTFm;?p_KL(_Q=zNhoy`z#ferQRH=u$_9VnoF#C)pnGtFK7Te&RKs(tPp76dJWS4L z9-mCuelJnc=2(vz>Bcquh{JH^(0NQ5{h`{vbun0y*8;|^m2++DO}&&8e*T6ww7llf zG4qvJe+Nr^-pvcSH2j60!qT0oP!K}F0QETd^g}oodB*ood{OWJS>(jZ734$BLMsy2 zkFwKIG*)n5GzfBdyz=hKq42txp@$vuZ(T#H!>v)b?2m6TSrjO?)rmK>9wyZSzXx55 z-G(^|Xfdm~_lV{rh91887Q;(*3sXYz^+%J6&Cf&@o6Bp&%T7rO6*hWRy$K&>{`oM~ zkmb8%P5S`P_Gi`M+z{n+UGiAO-qmT7sKW9a(NlI?Y)c*DCalJwvE}MXW$HU+S9jZ) z_v)=!b0b!f?4Q4i^@4sBkG%e+acf&vz(cQp{jF>NT-|BPx?$ev@U3UrNyWlXbRX;) zEA50PM8I>u&nX>hn#T70QNRUPF@gO4W75jIIV{*Lr;X6KtVeuQ*_nGeR_D=g#G~=k z-Fwhqjny}K*^(155InAk;BIYn;C`Dh;bXJuS1J$(!|s z3Hi6Hzq40fC@{cuc-?_Jy1D7p{}I=cT~fy>r)G8M7TBXUrx+a%evE;{31#K+yl<-| zq0J6jDi~p8<`=jt;Ci9IXLbecLk89hO6foQuNK~4MB6z*pGN3J7O331i>UpAdcwVP z0779`{?q>Z0=Lu$>H{Q9`KXS9J!;^LhJnwJ=N3O#7&^rH_+Dd@z-A5O{{Or0Z$TY~ z5N{;nni%3*c>Tf?BF)&mjv_l+hwL*9!XBfLd}0m%IVo9p{|Vc@{e7Le;+IhNuZv{^ zlzsLF^YBvE1GfLVs-D7=P{!rPXs_=6IsL1Kn9uxyHUIzky8k{t&>{{BKAjz!)2Hte ziZ9ps2*bS6IkD}3@L#=d5dDQbqTKV6Bt1z};0%8HofWa9P=syA?)o+{sb3ez>dn-@g<)}OpJAePq-%aEs`1|Jk zCDQ-4_Z9V|8M!J21eTikKOUQ(zjS=#dmrCN6ax4^JAKjOtwX3sbAN=)K>soXwquVj ZAWE+Pj##wVOab!p=z;eA;(HeF{vUcXUUUEe literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/party-popper.png b/wp-content/plugins/wpforms-lite/assets/images/challenge/party-popper.png new file mode 100644 index 0000000000000000000000000000000000000000..4436e72952bd28882b96e23b5c4dcb387af579a2 GIT binary patch literal 5065 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 YR7de3@O0D-{QrQQvUj#?I1zODzcMgOs{jB1 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/red-arrow.svg b/wp-content/plugins/wpforms-lite/assets/images/challenge/red-arrow.svg new file mode 100644 index 0000000..09fbf06 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/challenge/red-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/sullie-circle.png b/wp-content/plugins/wpforms-lite/assets/images/challenge/sullie-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..8e09e59c5a7021fcfb16ff7f92095816417b4c41 GIT binary patch literal 6038 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 Q2><{907*qoM6N<$f=>&a>Hq)$ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/challenge/times-circle-regular.svg b/wp-content/plugins/wpforms-lite/assets/images/challenge/times-circle-regular.svg new file mode 100644 index 0000000..bd49043 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/challenge/times-circle-regular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/check-circle.svg b/wp-content/plugins/wpforms-lite/assets/images/check-circle.svg new file mode 100644 index 0000000..cc14d93 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/check-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/check-solid.svg b/wp-content/plugins/wpforms-lite/assets/images/check-solid.svg new file mode 100644 index 0000000..7bb9675 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/check-solid.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/announcements.png b/wp-content/plugins/wpforms-lite/assets/images/community/announcements.png new file mode 100644 index 0000000000000000000000000000000000000000..bf16845aef9cdca34edc368ffa39e7e86f6c89ba GIT binary patch literal 1509 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/dev-docs@2x.png b/wp-content/plugins/wpforms-lite/assets/images/community/dev-docs@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fdcb47063cd1b2a31bc1aa4ed3c051d01a17fc6d GIT binary patch literal 1807 zcmeH{`#aMM0LH%?Mr^5!J z1R06lOeanY001=R?cwK)`(OXX1tiRrI(A7{-t_VE1wdd4Nhyf5%pO@eC`>_7X|J*h zTvbh7Lv!DLgw_FVor8z;^bZ^SVq|P$cGTR$(#ra{%?VpO2gj36Nar&yt|&Km4^J=e zb3VR){sHK~^A|8d!J%Q7!Xqw6Vz0%-C*U$NZ)e}Ro10(wps1Ks_OR-4P2F$g=Pw#x zQmC|cI)mBS)!jchG(5`YOmHW8(=(suzJ3#}ec#&N`C-~pzy$zFcNFrJAAVwKY7DJ> zN<~_*FRK|zk%TMfUIa8)e-WEJ@(M@WbfzQopRj)s8Jj8<>=&{KQ68klU+T zWVj*|6B%0vLo4%I?nSpNwYoFBj=#vp26oRS)N+(fIZtl*B!kqR4wTy39qP!sA7lD# zO=!P}2x_(|;}e5>`XcL>M@KNU2HZSPG!!j9S)hztYZhsm%9Cs|`6ayGKGk-*4SGL5 zPts9Kw>PACay4%~M1GHHd&6=-IflBJ$hZelYe9ecxv$%W^7eg5If@v1jy8;+`x-^$Mg#T$Z>1R?^p( z<3i~+_nwJW&5(f*6RnF|LxnZ^0&gq_=ct<~qACXMehn$570j(|x zJfI)|*=7E$PE)sw1#9&Q+?y*l!i86rh2~JE4}H@as$~vR2opvw%{MA;D3}q`zy2DO z60)iQ&WMKavX`vTQOB5t1tm%rLd19=r*^J<_ytm2m-qUKVockdhOh94orj$gG8!%92wF`ftnT;N zBpE2S?R}}y)ag*W=jGSyQl1XlF>bb!f)*c@D`?f4lXVCk=(bq_>Y(A~ZCN0bSmtn( z`^NS(5Z_Z4yKnPqrm)#@>S|J)%*6Je0YlN#jJPScB#X(7MvUIs?tAc5U9q-RfY6f9 zKh8ZmoEQ*hOK93*4Q!m3y0n6KKup*Z`Wf-j_5|*m{vA5_RT2N&N_p{$AwM!iFO2QU zL7y8sAdWn2bf0lVqq-!0{15*X#F;Df+3S-mdW&1qU}Xi<@dc4ko{g1FCJ`;xtN9-^ z6#2f^%+HmnXGtJcGy5Uwz#-APWS7;m4gbfaFEAZZm8(4Nl>mG!AfI-Tmld9}@?go6 zCGd&=7q0X_q<5g$tzmO+>uV0Pj78lG=1wT5lG6e|qB;ISxRJCpI29f<&Q`pHX~~VN zGNzUeh}l`;m^4CM$7w2Df0HeWz&Mx2OzR< wB7hpQ3;-2zb&7>m@6wIt_|3~TjicLAw7T>4hRC{fhF@$xvUvCO m>t``MV10P$*P#QtXx= literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/suggest@2x.png b/wp-content/plugins/wpforms-lite/assets/images/community/suggest@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..53388f7a67509986263abf1545d30841a7c21634 GIT binary patch literal 1286 zcmeAS@N?(olHy`uVBq!ia0vp^JAimG2Q!f5`=hd!fq^k5z$e7@|H<@GM57Rxm9Fa! z4DRBRAirP+MkZz!HZE>nK7Iiq5iv`1JY9*Ka?5{`&o|e*U&V1_q{Qo-U3d6}R5rc^MoOC~^EFd%j-B zB0=4bi9(m=O;t_YJ&W5ZLT{~*WY(;VuYdj<@8yU*ztiFJ-Z{&E*4{6AH|M;KaeBnN zg3eoOtSc#8 z!Sg$v77z3eulHz;XO<~Az{rju{>=a4pjE^5p>3Ua>wOle_|1aT;j8YaR$M=MY~TJJ z?H0RcJf6I7ClCLW@@ID*WkkO@pcVeq>`%$pXM3bF9_KyND;IjV`sUp7#cOxDcjXAp z=~iC5^Y^x!Iu`lgx3bJnz5KxDcGvFo^EN-?{I%a3=E%)i9@UV4CXx;4x5&At!0yH>|E-rv@`Kj+!IyYEG6E{W~Cf1AbbY}%p9U7R(SLw+pV`l~j`C)ri`3&E-Vh`^4u=o$lHXX8m6Y=kp z+H$U}BbJ;jO|2zwIW5tgnB&ZT2qix3cH^+jwHEKYf37RWO)soqT1) zPOH>22evB5hpqi8+AF!E>`8mv(OZ(uZ0lqzgEp3&UeK8B{%>L7(;0!x*ZcN-G`}GF zbl3ZpepAB^2Y-Fns4NzEF`T{rjMJ=@rPW1259YtB6HGUB&3ce&`C-;$%L*O#I+Fm_ z`eRL1A*CjtCq0N3t>|$z4QoqJIT(KGenb6gTe~ HDWM4fN-eoN literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/vip-circle.png b/wp-content/plugins/wpforms-lite/assets/images/community/vip-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..cc7cfb77f2301b792f3ccd5b28e696c187a64c34 GIT binary patch literal 2621 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/wpbeginner.png b/wp-content/plugins/wpforms-lite/assets/images/community/wpbeginner.png new file mode 100644 index 0000000000000000000000000000000000000000..76384c7b2115494f4149800ba04b1f1fa0c4be54 GIT binary patch literal 1594 zcmV-A2F3Y_P)Jmf)HLB=aEtRS!gn-zd;QkA#B3XE4^{FbW30k6Pj1yNRDyaL86h$@wr z08;04&lydR=E7XMM;H358iQ`A^{cPv{M{B{EHpT=?d@zBtp77q@N@DnOr7Q zeF;SRmcTW=_A9;i8sFhsoa@I|hCt6~0sp}ZdgmWWv^_uzXp=~bEOCV=n229l_@3xR zP!{os-t9Sy*dMXDA4uF!eTeH+P=F5w6#g36b=HvU3|-@$qk z(e=iKuvP`tHFAy%*zXrz5y7&sRs@wllYn<5NPsjx`u9itt_KsZEYo}{E5EN89rij`pTw67?7yHk+=ABNsEFmZ%R3 zN`2-FYUUr|QEDBC_xM!(lnV6J=vEIvBX|^33bO20O{uB}rCa<7FQ&;zX(ErxH7OO8 z`^^xZWkL+gNB+Vl&rSUXo^k^0i{B|6n7g}(xT$-pka$~kcTP|p%k)kCVJM(dw35m- zd3us+>LEOJm{R=rsklrNgP9uYYiDCdq~MWx$8wYJ91nbS2nrS%ECki*3tu~%qx#b0 zG$tGv4;;eNju|b_nc?Ej?veK?UuA?#w(f5jqO*>&!zvWI6y571IA zq_&V43m9^&{X=ln>E$ zCsbMnl!Ff8u>}b#eeJZy5TO^;CUY;Sbvm2HJXwULRgxlFY$V7t%1zBgK7HVvWJ822 zXtgw?4`yrEM92lM$F{llm;iUH-G;JN+~Yb9j=aR*@RR$lOer|@eX^Es?1S_y!5Svf zrY~@T#9vrV+_QgJ!&uP3(TFQ>L(SkR{Z`8gxY4kNv7j@3!`a}Z1J83UY=muPW(cbD z%8vU{6`kkWI>xpMD{+l);8eIKgmmV8Cm@kR$oA`&#$+VX;a+tZp} z#$iLTGJ*G^KBvF8=XmxIQKi^5{h`@G zX}vah#fy#P)EmJAkGcl@0q*(q9H|G>XL`_z1?)3&ma!nE^H9H0p*>G%r02a$X&-v$ z&9<%iFCFPkf9M`O?Vy!jvKdSZ>fOto8DVIe#k`%dJM3cic1C-I>K|`(u!TAZ5ve~k zgr^(Q7?doU9UdA<(8d;qJ z>uJlPg_~>nTDcxi0rS)uV`e>7NZ)?ebNjh8lXSz(Ly`ie>fq^h36u=5tAok+T%I8n zd`1)K+1ea`6q&VCkxzlxvxs-4d^4`gO|VUf(;t~sO>QmE>D@6_OR1O&J~MgMj=u4- zn2N&S2p8D3H;>JPN5N5#=!$Rze so0zV+KHxI$@c{v0frGEox!08c0pPs(%SExqBme*a07*qoM6N<$f_qv8DF6Tf literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/wpbeginner@2x.png b/wp-content/plugins/wpforms-lite/assets/images/community/wpbeginner@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..39cc3f4faf538e6611a7821ea80f630fb7cdaefe GIT binary patch literal 3095 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/community/youtube@2x.png b/wp-content/plugins/wpforms-lite/assets/images/community/youtube@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5652fa70a581fef99b97bacdfeb32fc6505dd8ca GIT binary patch literal 1035 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$YgBeIZey(K=q>=-CLR^9Le;T9yhrgA8)+m$& z`2{lwC>Yo~_y@$rC*&8@H}p@KH-Evp^&9r>KX?A#{de#G{dJu_oq>Vb+|$J|q~g}o zIj@TzEAX_Y#=O!k>u{dswpH`l-}y!LCg=8UpIUJK%sllU$7Ci zrROT&J9Aj4$tCp|KFilQD)IQh85yS!_qLyljMjcI`_@)FmOjI$MqSMBoARZz>pZS) zN$jW$biMcUnf08h+?xMqB~|=l%KzG3V!YV#*lEk>dw!j$a%KzM^II_Yl!4b--TT39 zm(HfGG@kKF`@gHnfs&Wb=L#Mb+f8RI%{$z|F+=MO|BT{t78wJ^emxV(kk4-K0vN6D z7(XlO71l~%>Mgqd@!UfuDnPeYT=&I(XonWO;?AGQG%}vuh9Z!rGB0p ziSvyt+1~`KJr^%I;5g^q@=e=YJzNfLzL(Q2)O9{n&1m-`^-^6nm7=HDZhA1ERDAi? zOED@_VdmyfL18shmaSgSQjAd>J9P*H~lQj7zVbm`zDNQ>sT+pp4u?=Z25#><~7%Lw#ZGrCGhK+ z^@&v`MP4)Bb7VYeSe9`3O2_QZrDx35uUuLwlGp9GRprXZ3z5uK$LDrtbn{4DSZ-(Y zt>oVCJ3L>WOmv;ccm*05?Qkw ztZ%;SS=yfy-_(-pc*B%$c^8A)g2uYA@_&q-JPWw>=c_Tb?S8i@k8QjEuh)k(BK$V* zU8|!k==U%#Q||fIgI^A6mrrm%cKNmQ!%A(*dq19ke)sO1xa9Jext~9jHt)&%b$5f# zbrawG$De<_RR8~HMb_&Y`59O1U5(~`G28df{PooAtcUx9dp2$>T=#V!zoLQh=ezrN z`jngYJ+|ok{r6wx=9_E&t}0!(@!RbGi+^&@^*{9eV*#T9FuO5$y85}Sb4q9e0QC{v AKL7v# literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-logo.png b/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..545823d82112ae4d842297c9425410bc1c98fa11 GIT binary patch literal 6904 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-logo@2x.png b/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-logo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f1985bc829534548277e72f1583dacae59543d17 GIT binary patch literal 13477 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step2.png b/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step2.png new file mode 100644 index 0000000000000000000000000000000000000000..10e322c32277dd833f6e49262bd25d673f565cdc GIT binary patch literal 78992 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step3.png b/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step3.png new file mode 100644 index 0000000000000000000000000000000000000000..4488f844342964c38b4e6caa2ebc11eec79fa70e GIT binary patch literal 88945 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�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

      ` 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 C`w)Hr literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step4.png b/wp-content/plugins/wpforms-lite/assets/images/constant-contact/cc-about-step4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7397decf952461ec1ea65754227cacab260815 GIT binary patch literal 97134 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 Gl>Y(u%tA8& literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-screenshot-01.png b/wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-screenshot-01.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecfbb37e5bb6563c78f31fa2777cc83486abc58 GIT binary patch literal 80359 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

      Lz=isyDi2eXK@Xm?X8{1D^{?a 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 p`O&I3jH0cT{9h(plD+?GupJfDebHQqhYgdf40g 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-thumbnail-02.png b/wp-content/plugins/wpforms-lite/assets/images/coupons-education/coupons-addon-thumbnail-02.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc53defe42fcabfbe090251dd06f42651f2249c GIT binary patch literal 15668 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 Pd9EO%DqSvV7W6*=tFjS^ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/cross-inverse.svg b/wp-content/plugins/wpforms-lite/assets/images/cross-inverse.svg new file mode 100644 index 0000000..617951b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/cross-inverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/cross.svg b/wp-content/plugins/wpforms-lite/assets/images/cross.svg new file mode 100644 index 0000000..5652f09 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/dashicons-arrow-right-alt.svg b/wp-content/plugins/wpforms-lite/assets/images/dashicons-arrow-right-alt.svg new file mode 100644 index 0000000..b8bfd3e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/dashicons-arrow-right-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-full@2x.png b/wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-full@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..36a7e748e132d7faf79472753f7957c4d13165cb GIT binary patch literal 85884 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-tnail@2x.png b/wp-content/plugins/wpforms-lite/assets/images/duplicator/screenshot-tnail@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd84cd279fc5f3208b88fc5b4e8511029f7377c GIT binary patch literal 12899 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/edit-post-education-page-1.png b/wp-content/plugins/wpforms-lite/assets/images/edit-post-education-page-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0035781d1cc0a4e820afe48583a05596db58fa1c GIT binary patch literal 4563 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 T=?K+c(lJO!LtnibX@~wdF%zbe literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/icon-downward.png b/wp-content/plugins/wpforms-lite/assets/images/email/icon-downward.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3346b82e453904c414e99b5af1c8b72813ef0a GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^8bEB!!3-oX8SY{SQuYBpA+A9Bnwj}EGqbCvX4g#3 zu3K1uxaQ_pj7`rQfZ1kd=N%kCY*Uc3YZew)Ow6yFn_o5o$#OhAJ^^TiNJ)@iFvIj&l9e!KR6rE7e*Xp7ETV0<%E%;OvT5i^4g zK}ThMS!XZceg0PEvLZ{rn(uUbsTq5>&pdXzB<+e&zmSe}0h@I4jUchkr-hdPcmE8D zTN$9swejT5N#6UJ@1?ryel)B2Bjn)wsL<|Tvxaoo)q974eq!)+^>bP0l+XkKN$r$) literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/icon-overview.png b/wp-content/plugins/wpforms-lite/assets/images/email/icon-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..3b576bd4a253398ac9298a4407c7ae7d8260ad6c GIT binary patch literal 829 zcmeAS@N?(olHy`uVBq!ia0vp^86eET3?#J zEHijqYVfe!;C_L@W3cS~3WFz=Fj=5@slk&{5cmK8|G(coeb(XiVq*B8cTaylz47DL z@hA1R|Gt0v_3Xy0xmh1~PoK>9%@1g$L`jfeFoVMV_xl~r&u<90R}eozApc!L{QCZW z1B08+Pt_S1m{L7m978hhy`6QtXt4p0!&B=PhMij?Coc0X-~Io8?`~t86_*va9h|m| z-`2ih!UQ)riBExVCCf{~Jitucf&b-$8xX`%DHDK{UCLi{hHi?S<6AmYAl$bx! zZs|s*sKV+KN8Tz5Z*TWGBWJ|>fulcka`4rRrA-%3H0aOZZVh%; z6po*qF35RI>b|mc-*zF6y><(3&wt6?VR1L!;9Om)!}Uy0lUQN3y}x*UyOoTVI)74C zGE(I}pV-;qbMg>(>Y^1+5Bpc#26rEVt_N-|2bGzcGugsN@>XQD!NQpnn zZOOqC9XtzqIO<(yyCxk~2)kFrTRlxMlEY|GT#nBPUOQFgT^_Q2D*e&DEh{|bI_>Az z)gQN6|I*)Zvg$8~J$voG?YTRty@n%lk+qn>rTH7aoT)Fge!C~I|7o7mI{EiIc$tlB zeMD5Pi;eptU8>bjYcDc=GBLcwOMfoctSL7bRh+dlf*u{&C$Xe~qdjNNl4;wMUT3^y zwSG9Uaqb2G3C&HcR%`s&yT3%tOjoeTzH?ZaEq1HGjr!UoRF*M6=%f!(37#9UHzk3z*;-7(8A5T-G@yGywoE CUwh2} literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/icon-upward.png b/wp-content/plugins/wpforms-lite/assets/images/email/icon-upward.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c6e099942d5e17d447e25deed571c10807e8e3 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^8bEB!!3-oX8SY{SQf2`@A+A8$bxVNT<^YfN0U*Yf z00%I`bt{Ms5`i!_gVeZf0;4Sf8kY}k0O}Mh3GxeOcz<7ELW4ko!TJ5`=f^uN2$;Qy z?-)>Wzo(01h{y4_Q|@vdR^VwB?tNLmeb4{Xd23!y5?XU1d%v{f{)XoYP7U0TPF+y( z|D^hKnz`D~iN~t*C)gjJ>;6b1v^RaH!E>*kCu^&g$f`EH_v-Ojd2Ggc*M&DWy_44# z30(FjdfO*I!8VCZ>*NP~YPT%1z8~$KwW2msCC)WcVx7{5N9RuXR(@P?L-Uob8ONga z;*4)YT`%f&Ia~`BIjh3pq{9= WN<8zgN4y7mg~8L+&t;ucLK6T;m5xUM literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/info-block-icon.png b/wp-content/plugins/wpforms-lite/assets/images/email/info-block-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..772f110bfa37473c8801e7744f070311592725bb GIT binary patch literal 1022 zcmVr186$ z<9|KrnPlmiWBTUU`R3T`p>XDiN$a9;Cn@H}0000JbW%=J0N?K*zt2FQfN)<>kPweR zV6QMMXC#vV00S0DL_t(&-p!iZlAnOO)ha68flz*T z=EA@FknWJQpyMS`IQFH2GfMh8jgpDznqZ(6JV5C|Ai820gbH4u!lV;hQdD`N)z+?9 z0}(%NBO`%eCQNS-an4^Qv{t8Jq(b7&QYGIBf$YayDxOsH9T;{ zz4J66E^|BvX9R9D0g+Y)6`S4CoH^}gb08A)4LUB&6>FlDnZlXxLCvoTNjfo4)sp$PFY|JfD)et(+_IU!D}YJmwfvqWFrd-6o~UC0Vh z`Cz4y5IsjV$n2|?HLm2J&Aub%+{_^BYH49uCIz%cv@pn`S~}eYfP$W`@5c+Au z6$*vs#;B}o|A9uvlwPzl7qB$!YTj(Xr*!e6*6fZ;a}BAVE1*<{m+YV!C4klS?7J*U zsL0I=wm=o)C3s#IP|^(I3&Ho@|4xau8xaa9tn%AhSD@qOKtWLtsk3K7DTvW^g_+Hs3h#n(Va;{nnw13VJDCBs9$Qxtx-keJ#e9e%b1?uC--MqRlUQlcVt zCWM~j`EFx4$2lb9-k}v+t4fF0kRu@SWmSM;i(9n4MT?LE838vR@)D@T{a*~aEqHOy zm$&Y(qx-&KM|^OA?Dr9*|7RU;6$k!9mD3#e#WRKyD7@LTrS#t6!Iz-)W{>64b2*)X z=%JvHw%$MQHVV=%P`>w$<2ro|AR!~R|70fY7&#vjLn)u^v{15nTf8MBvGnyd~_T}2_u>R0?~kZ!}L+4^8f$<07*qoM6N<$f_ekz8vprPE!Ei@4wF=AdqlC zP~M+lUw}ZM?yrD?8`q-(CjQDsBVYt#s%nE8m#T$=38=+b&nryibzC?;Oh$|dDwJS> z47r{qShD050tMFi3&!*am;teH?Lm`k51L$i(B#;IrZ-aL!>lOw`f;?LLYSSfcY-9$ zj_gYa0S@q)`+_~|e+CX5aXWYl5SKar2+oMyW&$Fn22`9+rxHf68Vsl?podCd*aIIi z6i}(Nvd6CflJ$I0QjxCA#WZby@B?nh3DN$fFXYC=+dv<+ZfSCkC_Ub<&-wO0VXvw!j!D^6pCOuXjg%Lsfju zPZxPHuxOuvCeO6a^6!_|Tzz!>1eyd#j-=if=pjvY3MM3xb3|x;GzGiht${;Hmp)5`wO*G* zCn<L`D~)vEUIS{{WgpCERmdAQjsGo z83Z#IEX%4G`X`R%#cq;(ZwrHDT3e5uGW9@Mj_gBP4*%)TPs5_D7(NJyfd;Fk_29)` z0A?D^q5?C!q2}bQnd}EUNM)|uTn=DD4K|PmTM;&p5tt~sqBEF?2Alk%I(~i-K_eSeuSpb{WeGUdOAlHj_b=SjNBmhSQ-VJMT!V7s%$5kdEfrHxm9Ng=+ z&i!vxIn8mOzNsu`O@zQB35078np}I(sKDWqTgXG?A?{QUR?nmPz(k>D8qt$vWb`ufW*|1Zo|EX!n~P|zWUoZM oMBd!&;&7?(@zHG(#tV diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/template-compact.svg b/wp-content/plugins/wpforms-lite/assets/images/email/template-compact.svg new file mode 100644 index 0000000..e0d4b44 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/email/template-compact.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/template-elegant.svg b/wp-content/plugins/wpforms-lite/assets/images/email/template-elegant.svg new file mode 100644 index 0000000..10d0a56 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/email/template-elegant.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/template-modern.svg b/wp-content/plugins/wpforms-lite/assets/images/email/template-modern.svg new file mode 100644 index 0000000..73d5383 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/email/template-modern.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/template-placeholder.svg b/wp-content/plugins/wpforms-lite/assets/images/email/template-placeholder.svg new file mode 100644 index 0000000..cd8fc70 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/email/template-placeholder.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/template-plaintext.svg b/wp-content/plugins/wpforms-lite/assets/images/email/template-plaintext.svg new file mode 100644 index 0000000..0b13119 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/email/template-plaintext.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/email/template-tech.svg b/wp-content/plugins/wpforms-lite/assets/images/email/template-tech.svg new file mode 100644 index 0000000..4a99b2e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/email/template-tech.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-entries.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-entries.svg new file mode 100644 index 0000000..f424315 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-entries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-fields.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-fields.svg new file mode 100644 index 0000000..d823ea2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-fields.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-form-elementor.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-form-elementor.svg new file mode 100644 index 0000000..d823ea2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-form-elementor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-forms.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-forms.svg new file mode 100644 index 0000000..50bab3b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-forms.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-user-templates.png b/wp-content/plugins/wpforms-lite/assets/images/empty-states/no-user-templates.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6ef51c47bed608187c778099a43dd9062dabf1 GIT binary patch literal 51828 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 O0ha^O$*zRp6Z;>gyiWlD literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-lite.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-lite.svg new file mode 100644 index 0000000..1d68eb1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-lite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-pro.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-pro.svg new file mode 100644 index 0000000..7b1bd1f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/get-started-pro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/no-payments.svg b/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/no-payments.svg new file mode 100644 index 0000000..4a6c224 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/empty-states/payments/no-payments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/empty-states/waving-hand-emoji.png b/wp-content/plugins/wpforms-lite/assets/images/empty-states/waving-hand-emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..bca2f983358b69e4dda315514ee1baac88b2adae GIT binary patch literal 19786 zcmV*xKt8{TP)v{IxXSnCyZv0&r%MBo_xku;iL+uA#sG`@etD zgMS;Zl`B^w2*Vg6j}!9@B3fjvWo9-24ib?=@4ffl`{&G=^XQT#OK{zF*Zn_zKlIyb zh}%!={r`u3{{<|-B$(ZJ8gwe33x zAl4=-)HjU?2dZK|lvRPJ#OZyS_^k-6-|K(f`J8{&dFP#n_3PJT!GZ;iBuU;uL?346 zy$d6Y$ZcU5o_+GkCttO3<3|0&CqD6_fuGB@^&1PIA||X1FasBTZ)A_}d*Ou_;*2xSz%PFB zi?_ycd}ggyd*p-@PT0D1=~68!<#p@UVfpgqe($~azH@wh{BaRk24Ikx0brhpES|sb zz8jnE_O_dDyzxZ?Khx{}&&@zoZy<4Ixv{~8LA`HT)aa+6T7eA%7;C|nL54siHK<>r zUY07;qj78e;WJOI%OyW*PWj&R=FP+U_3IZTN%9FIIu*cisybe))$Tv+u)~s@Zn_Bo zaQ*eyW7)E0I(_=|yPM7Cld8Ishz6J$Dl%VHhZ>E>y5o*JZhYOkbuYF_&*W0C7=3DI zUA+DY*c@rXFf*zlFaykhH4GavY{eq1Srb-x6|?-Kq2QHB#NK!D%&Fg76{>nL5$$h` z0W%-!z5nNCv-#0Rqp{anXPwpgx96XKJ|-q6e529$PiFp z!yo?e|4akxw|ZZ{_V=X#kt|lPF9$J*2!MbfASj3w1chNj5LnnKL{PVgs(iSy^naA> ziOu0A-E-mYMrLLhV>X0gcs?^fNNIhVeVW3j z3DgT9n)d;eH3LK-Vi;p!!T`2XLDUElR(S<6K9;7k@Xmi8+U@->yX-PpYu%T>{N*bv zmC6|aegHt2*^0>Ntyb%kwOVb#*=L^(0QkTMK7h}C?sM?oZw0tWbHmaN(RBJD>wb~3@jjARLA`WO8LHC2|u~1#k zz$nx|aLyl0a~J&QuAcXL&j}Vj#UTnk)rK6{Fn|dx*jli$xfd&-07&!RFaH`8fG0`a zelCS^o;I9ua;<&N@7Hkg54(le+O=x|07o5l)RRPX1Au*r=m2ImB66Vjep(bo*B^fP z;S+Cp%Ukf1pZo-;pME-K&Ybz==;&zEdw&uUMa)dz`+dFl5C8q&|NSihux8Dg-z@__ z_Aj#mO)JFq111drD(Y*@iu&rXl?rSa!h{yq8n7jR)k0-o_5L{VUVP&2Jo68t_TRpG zKb-&lZ2*9G9Ty^vF#yHs)}n4h18Xge4M4_%J25CTG8Kj;&AWU7#9N=p0V>!=B%8&N zeDz<~uD z17irrFs!w(VTh<&MWwHfs8NNfn0W;KD|PNHZeiNEd$RMMX`*mW?@m*_J8n88%{G!& z8!m1`Tmluz9CZ?WL(DMNz=R=!dWcG$2d%-G409Yov_w^frxGu5#;^x(P^5#WoT$99336~-O0fw z3b6gjr;I3$2WSyn3t|RTvKIj$2C)U(2tiaqSgj)Jt0JfegKX(c6?wn&()Z9M(*XeD z2qHY}Q(V<rOj*t(&N3x4 znDVbN0QD7d{%|OUy}@l~om%yy+Z~uyR57Z8mjF7;S^^u&qk;h&bSrA)##YT<0H6Ya zg4IKu%ok5E&aVH{SJabBem1e&ef;1DKfut?5N6Jt`CzNng7^M-W)1=D<-HFZjmEXZ z!^5rXufHDGUVAO(&!3MV2p&(8_S$QI`wjfTlPeIX z7KB%DV3r59DuOToQ $H18Sq7uSDF6(sVo<#t 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

      eqFUw<$O#p78G0rKU6>m< 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%0AHF7 za-&8mpOT!kRx^^aO+1Q^+`@!pZ!N`NqW};$ZkE?Ay3h>(qOZfd!oEaGML}qp%1e1m zp76h=mul#KqFs8m+zf7qyl#*Q9S6j8O0UzBr)jBuTQnA*l#Tj`k*9Il5})r0<|u>= zSgqg60F@S&rvayg z20U-Xj2~lq@WDkg8KkK40&SXPISrq;LAcQwxN$ERCu=UUDW}fLHNM^4h!F#RW3TAu z^p~6YNSyB^$f){``;dgR(7_thmZR}PDWRhc)ddlDjpd!#Ya&MnWliWDY`W(y0j_An zlJir-1obL27{|iN&lsmx2oE04BMsf;Ch}cLh^65OHLA#rS0;gw zrTQ^wx%05+UQ`2+z**AV7Y7$mRVDbOeb;u3NG~cc4Ngg6ay~h(S}k>)1i9kc*$=z1 zzp{tZgEHZtW2Qj1a@PEX?^BD=_5kI~GQC#3VR$Pbdsn3l6M0pJYN1B}_a^)CwyqrA z*-tc%#*gm`;l9J<{#}u*QgZ87MMWd9Y?mT3EJhR4^ZSBAk3qx?Xta82F`);S!l53!)IzO zs-Y=lW`*jS$L3rWgsqf+ElBvVGM#aysg7xiI$7@0-BAFZo_?l2z(v<`l;@$^D204& zW8J6a0_gqbk9~gFJyNn$S;0m|8J5)JdcBj0r>8f%F?=GfZBXdUARq#8nnpX^Z(Gt{_R3!H9 z%0z>KAf}l1QL)3v&oL3gZK8r|!KVZWFfIYEkMqgk$OyHu4-$8}Y|;OWoM$IpB?|CG zUzwF$WNTiV)(1{rtbevfJ=f$UwyEz{t`E;oJK-SmAGRY@pr?a)b#--zTD*<>%`k_- zY~BXt6FQV5ApSKO_1g9Z)|GM;h=@MQV|CI0hzN*6#b z9^9GAFeB4xeu%gDY$Ys4^y(Rq%P@WNvRv&3={=>?-TY}PN!vecOM(tx(l`HB>mahB zhJCXev9gpJ*UMVj({nw3#$6i)@neB@MaW>T5Q8$=3|(5Q=rnP6zVCAtd0}Zscb@FL zUy}n3!AmM>^;L=kH=cN0-mK~vd=r7n>~lrpxc=_$L@ncw3pF+%^cwzF6Z<7;JkT>6 zdw^ju`MMb&NOw?gBD#cs=S zHTks{RYox2Bx8~?ghoV#cV{*%2a-;FuM@p|Y1jiGz?zq^6V5Hnw_UjdBqfJn>|_HU z1}$$S``_@;_D&xH;@Mf`v;ZE-{44+II-N3FMRKR^8G zE9u})-lb2%OTIASo3n$FI%9l=aJwdv6dQ4S`UT%pZBgwt8{=PQlPlDKtr~@_sSVD(QRZM)4{m5gVq* z%#N?%hPO80c~Q!5UUZV0vGl7Y<4LZ>lZlg}n+~mSzmlrCd?=d)baq77*YWv0h7^$E zHhM4Wf0W>1@o)5M!Yr}gnzwv2`s)vB!i!Egm#8tdqtdmM@3$>;=EYf>ucfSft5R$3 zq5a}b-k#9-Q*kOhM8K~SNa49lDlI>6GPE}9V7-Ozx6t9f2%Bhp@P=qsc?F$eteQq} z{tXb&A0o_~ih8r1GCQSMYG!SsY6SJql#_QT*PW;r#Zj`fu}n-Ck!eCkA>jJ zYino#ekG_PA|iV}3w40Gleo2RF}AbeX;eLrGqohkHwLEfC0ER29iKjaEZV1=`_x!( zVr#n-n-v#u3ea_nObYxU5B&TLrOT^J2;WD)m&s1>ke5@KVyI_lFMm?vuo_%+{iIqk zNmCON99mjhO4U$n5C>hy$owjN=F$IShIQR@Swl;5tCksNa#_UXno={57|#9B_X@_u{k;9MFFfU1WRm z^QYLEUL%m5<*Ja(2rc||NT%1#Km=a*)cG9p`Nghc!73rQy)33|V{>-77&G*ykC~Z; z%Wf~X`}c44;Q0V}+M?|!c`zQ6g~f)AAf>Fk&W|OT<7@f)J28w=G%^8l48WvOU_ktZ zvc|69C&0{42rwjh`0#T3f=%ynTLZE0fqC0puQ+3Qx^kxcxbkPkYyr}-u{cUR`M->a z+&}BL;B)w>M^})`EB1w_|HFQ9{qym0rle%h+3)Z60ViT1!)S_tvUW2V!o8Wn|S(kahmDguMz;idsM1QCFqY)P~ftIzXg8d z%LL$B(*LWd<-h?s8lBFY0PvdnTc5uV}y?psD^3 z^(FVQj?2I-z|Y90EIRZM6JX;pc#bjpKehkg{~`xzLX*6;+AvtsDPu=xM?Zj!{*_de zl5+i4{X>ZSjd3h{=8$R7eHu)z@7TDIJIbzq$Z&j7!}o2wL&bYvpA^LbbPD(8ue`~B zj5d`!@cpX_0Z^7|xB!6Lc$mc8!(O*BKz`yrk*ZArgEfNk$LQ=Ql-bqPdsLYsYEq3X zsx2WmF?|7i*S$~wyG{Q8zjF^B29->pW%l5?d)Rj*|A&wS>k;F{plV4Tw%h%G3R^uB z;D95P^R0$}$BpscH{sM6;wR{aM*2T$dG1w0RaBkdPM=tCG_{Ny7_5y`qK{ zUD)iv_1gK>wY*-Dq2TLmv6<7Rr>BqHj3SghF(m)fqAn&TqvIYq*RE7Ri*?n8T&8ZM zzjdPc?Z%~RnUD8TTF5kJxIiF*LV3!b24fWkcV{2dyxKm+%(gR$8E+b+b!G7NQ? z)h*}#4X(+B3y@A8_5W1q#FVC4i0bga9WmL?#y*TOghtA@V{PV-a~gQRcs|;1c^h!_ zBv()zx7qIM0oAg9A63y@a*jAt`V}w1@?L)Hw&<(S1?dm`Lmk;M_Vr~8UW0XH; zOG|xhaMIoV4%%9%<92X({qaah1%u6XTD-=D%fa$L0}=V_RfN5RL$??iFz;MZFd-rL zr^gsLxM1TaaSK&!F)7b-GWw)wjlzFg*4M_UWymj*pJ|5AIUr7g*(%)#9`QJSuc$PW(<8>0k5n0M+K-=XYRgtgfCQ zzSJc!BV6>K?%z7}v#+tTvHhygY*y9K!I724oSB^mmS9hvo@QwzbY>=OeO-e>#2Y71 zrps($3s7WovK+9xH;)j0=liH_C9HcGc&+Q_zb#|LWP z(NbGqu$n>qSb&^KLtmejlD$1g?3`NYg~f)&8=Li4M;8}FfD$i85Wn z01=pK1mr-!Si#)ZmWiWccs$Pwd}gKJL<)F@#3yIbN_Taw!glDyg}t^8vSY#%#;e~P z9UUjGtQd`xIy)cJGxO^X%gD%iS{8CJ9UQS)+974rcNeRovXaF3cs0`3-bKv6o16+=yl5{YeZDO&F4A+{1_G+I-g2MB+|F4= z5vkZ2BnB6be3-o2+S^3W=oN^EQ~pSX%8z6PIOnYr60SSm-82|LGU!Kyk@-SbGkNg| z>8$OSLwD0Y2gOWh7lL{crn%l#mgU~9UX>g{4#NWz>VV?~U5wDB|K~F-`->L==^(gb z{`$s-+{c3_piD2l^|Pa9GLmc>kE<&}GO`!6tpZG=e{1u99&jq7X&!hmYj{)DH7^n* z`%7dHAdRf9uIJZS451AVB|&*&w$iB+fV{!Lm}opafF@a>jqb`LC@ARU21!;jRMRU7 zs=fRY9+mVuPqvRY%SZ3m^?BU9w4FiA&Gk^j#%P?GshJs_BnEzbmN4oWceHXNO?V2& zz^1(*Jp;Fr?`i*qYdwUa6|h+#^to+e^INC&I6kr<#u5M&yZf%G{aC(_WF&|WP*(7CwQ-Z7ZU`+biqm|}>`nU$pU4`lSy#7W`f4<+ z<2WMwruP*5aQrEUQ6g|d?hp7atGRMsG*kNXH0EySS^y2wih)n|^6ujMaw)8w5RA{e zZAYRhc4h3?!T{W1$1Fy&-FFF6-g5wzE#MTqZ1QS$!6vv{J~<$_AL+i9M9o>llNi;0hC=^f-NRcPel>Z)mRSp~76m%jQT)SwAF(9+xz zo>LUs+`MGlRF%KZ3U}IAE%I&i@^2sh;LyK>#N6l|TSJWCbG91q>$enjv;)08ur@#y z2LM7>Hb@M9@P3O_W<;`y?lY|DSy2GvZNsoFHx z*~N0*Y1lUO3v#uSZ6LK$K@o(Pw-S1NvE#un zJ?XfK4zu-=cO+iK%gyd42{Ba-4GCQrgX#zRyhx!O>`w_1wWDJyk3}_`-zjYs+_GSV zU?e>`xx$ZFcm1`K6C4tq49ha2#barVLjF}tF04eauCD?&0(Ns!IAkv`*mYm#$>2aY z7QW^Dc=y+(gx?p)B>zAc)U>bTGr5L2pfDm@zT5+tiS&K@-9yjax(|w>5M)f5x(a$m@7q|T`*wm<(MwRjDD5bdhOM>%hx&~a5V2#2nVA*<))^^t zzSl_n^@))-m4HbH!WlZ1?r5rlz>zCL&}|FeSHKv!4-gxcJUTy)udaSW*(h^J8ZcJa z*wj=)Qxl54#3=9fzJ4%6L=#vAZ4noLJrpBt%{N0Xa3{Qsco|q(WjRWre~IsK8VB`5 z!LfGZMqr(s+9-E=uVQFO=Xe7%1mVqh&GpM4oGp~XUiA$Q$MqJuu#EZwdx7*ojPIeL z`U+|4uoD*6@l{$SAQrFT?c+UJ6%%(-<#dK}p}G2JpYeiIHy`y^y}*j0x_+MD^jx=I zcEl}B3FpJZyQ4YsYVfkSkK&^RFE0-`Y_8R@U8?kAh3W3#THr7m>Io=En-9&Mt!}Nq z48p{DqI@>9&dN+kolSFu70&Y2n06UCt+2WYFXTFo>LPfV5WV(8vtx5uC+wb10vP|Z zSyc60^052g4fJK{V(Lbn;1>_lL;a2C_L{Miz%Fsu)RJp}{TLgx4O2>Q*uE3FTtOa> zpNznF^~6%)-`kI>DYV5+6TM}Cs|aH>btzXsg65Np$<%k0y*zI`FLniUg7Rkan!uGg zmf3Xd!iFWba8$@QmJdsW=6t-v$s!(z$g(S&*5Ns$^HDVqc;7~$|7lOQ4+pjPY4PxT zqtfUT@)6<16)UbcZ#I$+eDpU*QVZ^)akiPVu0lkzg;_q_6nVB0#fTQRXQ@J8su`AE z)mRPGD2tkSMhRcz_t)8y$;7$7>tn)u~Hc`x>yax8YA~(5d4hF&pDT`&v}FYU5~dc z4flTK8%I3MBu}Z_k5sf;V{qUxU8Z^E8}XyQdV01?Mc+#k^R4PR0(03z7g*6PIuB_J z{ka+;(|a2RhKA*V-}ahEX**iY4|7nQ`T2EC*H-CyIgP!2S{MYGWOL0{Py54AkiQvp zge&-aZ@GbVP6aQY(`_q6d+)0(QE)Qza~uU?j@Yj=e6tXr@4HLQ$|+P}XGp#1*(fc6 zz$XVW-5nFj(5)O7CpqhMqq~8+oijhH_vtTyTygtD1NYX)B%CF-Pb=G7G{lzYAP&@r zoe?Rg7Z|t{ITta$TLE4ch{Qfbnu)UYzX!S8VN-Kn-rGtB9dBi;i9XQy6=<@nIVo`X zC7PkCZpB?BGDfvx?)Rc$N_$9P;EP$m!yoyDg>n+B()^&!$c2{=-&Hjnb+gaYA1`?H z4faop!)6*E_Nn-}IXNXWKV{;1CaoF`R>=THzqefK!J2cSUSx@l@Ab#`{vUe3&1x?ddv#^tkzUL=co zTt!ji3(?VdN*E1JS-m%Hditf6LHwl-T2NuC>z56hx*ko|ej7od(OY89>MgCUr$&P> zh1*Q8-ek^3Rxbegvd#?L(x$7c=0lJ(2peKTnIpw(b7(Ae{NGJZDzjr|g7ipDp+}LO z*tK5j=j=`0K7H}FH6clM&fS8jkii|vHP7AJ6qEt*xGH>~Rdiw0Z8RXVv?M_8xn0e) zAw!$s**ysaze+gG0qu=9;Ays2$JaE?kh+!PW^8PHvQc9zRBC=-3BZw1aie31wvn6& zWaPHD$OLHrIv=bC3w(%no>I}#p(jd8Lbwmol0(XBH7GJE&PG7=iEtiYKfqs`-ApFR zE_U0FQJhd{nvmQP4(Rh zZ6-m~?#AH{5dkwkAl7N6X)Gs~6!=TR>F|sjsTcsEIyxfB2R1GPz~MQkm9D9|DIBn} zHMg)Tz4L_U0M>8nK~Pa&fb^HYR%LCyU48MBw$<;v^JwjKO*V#twxGb`@6L8}+~B7I zrIED~QBHp&_wOWl;&)t)$K3< zCugg9jwY+NNK#?>J1;r8@Y{o_(z^JhR0iKR5mS2$_9hRH<12XOU=~cTY3uywQt$5< z7^VJjagVz^W!G5n(rzl@3JhA9o&Cz876=?G)Z5L|I<}t#te32u0Ey|YP1a(suFAp7 zDQKZFTZB_1qRkSSl7^o=+7SE?-Hz%u2SCT8*- zaDfm1M)2R8+qQ3c<$nmJ! z1XWKECf=yUcTR&A`pQ;h^e|z)miX}JPAS8=*%@_GaW$|u*qRe~NO|nSC`8;0Ff)!I z>faR|PDbc-t}pZO6?Cmr0n0soE#ISp;YTu-&H#trpe-XmsDcl3msZ#o@pfWl_^XKK z`wS6w{rdgb7_Ex&)cH1+qO8mWI@xF{D9RP!G%%3MV`<3C#P{;uu$0X9PjE3dUJS)+ zMJnGFk<<#KyP0tH>bp^sE2yobytzhgVx)ZJ(%6q0*rxD;sKgak}^J(GzlU%b#uCOG`!q zG~vQYOp(-i1N`JF-5ytY_}e*lr&rIB=$ENh*`5+Ww$W0nERY=iazf)rBXGT_4NZcC zn8`%Pf_8ZO3i9c(cByD+TLb6LD1e=F-D}xXE+dn|0@{Y=*>2`d`o!C3H!gJJmf~V{V_Dko?-KB=*Q^y$>k8K|XjR&_VSci_w{M_{)|9FQ-#b_I2IdAo< zB8}*1_P6&rmfiQQw=0G{g0Sfwm+BW!xgMp7w(SyRc9qBUjHyz2t{5RoM`h@^O};UJ@`T7_M)|CF4l$e{K^^vul67R^zVkyK)C_v^y%Rz)Ay z-XE!;^zzpfZvQ+lFKWz};wW0Nu-0wD!&!UW^95&~k4Uk+yp;tF^K^o=YcJR*!|!}x z`JKFc3BVCn_1Ns|al90u`SAt$jg#JJvS;<+fC=sT!nQ8|ZFSiZ*UbE!5pp3aOF;q1 zn%4Z;u9sn$0s1*_Ag&r`&=j9*ybSG;{e?Jnxb>Lyip$7&aTOfAnj5$#E-ri~5wPh? za&-CSSl$T);<5N~50S6KTrF?{mO<^xtksfLLm7!ZN?oJ*Ug!NSMJw|*jMB&M$EUjC z;ZZ5TamSI5YnHFRzl4SVDJlEZ6!*AjOC_H9atWYgWU&<+w$m1avtXj+-OjD^#D6E$ z_S5B-Q(u2SF{dLZDH(y2dH`4!B!q?t-l;qn^Y<9_za39C(3>HdTb$BdmY=Q{{=iu`~ENP z^|#s$1U0*x!|xtCgeSQMG+W1*|KHgF{FM9Nsy>E`Fo3;pRoqHF+P{O|KC^HevcpNl2_4K0`!u99}p_h$NdubvaWMinYWb2KnBF%f06Qc zXDG0Wur58eE$^va`qZQQ9Wxm)7&w$1-2=SF;p3-UyB~)M6UZu9t0LyC9Af(qG#zdA zF#Q0SD`;r<)?g_q%F))0lAgD9ew6IvD9*p<5wYBZ)?{^kt*B9D~^yhj%K3b|Bdk>W(P`xI4_Do*O?S0UJ zE|B)wb>YgBG+V#BG<9#@NP#Q5k8~ba>x_~zS$SJ0<5t}7p2eeB9J}qGH5=F-_g|>O zUMW0iqZ_bImmO#K3H;ATg@{7AO{>7>0Ft~O$+^G%pDue1d2OZB59xFPoWk?8MPu})k zl&kvnpBP)utB4*l0ATq7fbsX6!kjdD>39a1i2qL`bU;8{7QFhpQ^5fQ>2*@x)28B9 z3WbjM>$<3!_J{+_^;inbNWP7VBX;j?oifP2PGeF_erQVX+oo=@PJU2Q>x>Ra?q%&x z(MkQO5wNTnTGN5ZnRN9B@bB4!tLjgch`G2)S0qj+7K^$F&L`7QZGYUOX**vs^=d%R z+R+ubTwvI!OTFK9lWrbK=xPRr{r)cGG%I>~hKx-~SI!OFC46OF|EamFS-&mI=Q)@| zi=}q+N7X>!{U%e<-JtY6`*o>Fxr(J=ls<>EYXSWqmN)MK zOqR2*%oqP0@HJj(^_WHF)Ldl?rUT{b#-e={DGJ_M(SQMgm++_v;OG(`m&DG{#V~F( ztu?(0-+UpA+B^^&CjNI}*V4kVd_tfrp{ZGy!B5W2Tx_kTt2wnR!C+;@q+9zT%ix{j zGi7`*)}u%N%<$Z1D$^g9;+6`QLi+Sub`S9)KO&|OFTG^Ne_maNt2-aN=JWCMzjN22 z#yUJHzwW6wQULKyaZkmkrEy?kg~w;bF|74O$G4e$!vR)M-Jija!<~5!Ju(T~Wkto&yYSezoW5YUeYhU6wwh@usx3IJPlxpXlZ#3p?C;C~Ui6rJgbmc|=H@colm)UpkK5=4Xg@*~~dYhUylhAL#U;{@_zk@(u z_EAvS>i&ttgSk&Gix|*GiPJL=%8(ff1O2XY_T)qqRKP9^=w|K+i`d)Q!7mVH*Deai zn=!xrGBYyF2e$~+GE|gB49Ty(u1IP^etjpV^X=rGLWoDK?As8#i z3V=<-jlEGsrh5Ie_i&dN(h(}E>VY7)VzLsx@UA4Si& z8&ku?M6LRa0uk;7ZKKo)Wwt#gV`+H{Q2C9`(FdpMnq*KrE>%UPX6n#LrI?z%^*pnUrFIILB<=g+D-T z-ChIEt=1DKDw0x9U zJ>0sSX>;|L+l~D6fuve}@5qFjyq4oV$NtRR{8|mbWA^FxY)$B3wy=7`Swrseu`{y< zl8cvDyLF{qn1zMa0@=;}#{7_GDsc1})zK`Qzx;E=7DnNk`Naf*c- z7l8Z?LKk`gIYVwxSC)uaq}m9gZEW|Xa9=m3rRnK5nyXy>RM8z{) z3{L0^E`{lFTaFA2sGEhnlv7fG>PsN55dHqXK3&Vpl}h#&3M1rsbEA(_IMTC7>_5gr z+M?#WZURvO#KEW{zp(VYSxrcIvA}P+jgXKczoF%=aAjId@6b>J05~e#1WO601oCHy zv`S8%oPRuQX~dW6>4ZDUsE6Q&kM4QO{&cc{t$#_#3(C54Ja9MfsSt)+m6`W-|Cf+L1|+4cvrEBA zuDDG!^c-*cLV2MwJWX9slW{^+ml2&Pc=ceHZl3B&EW?g+Lq^)FOTkpU`ZENxPi(mj z;pJh0UcDXx>s;!7?<=|&`liI|b1XWy{Db=SrD5V7CGr5PwGm2OUJk`Va^ua)d14ur zg8mnUYIM`@tgSY7$C9PXGdJBh=79ka|5Wf!B(5d;ijWZErM#YJh=?Cf;9?rq3r$V!#ZezDsM}Op-MArc2({|6N) z5%9K9#HG8Or)Oc-vThlw(BsWvwSZm7a(YIF(ACXA9e|n;5PkYI8Ka~g!_HY5%S7$< z&QdY`g9m?@_=(TBXkl`!#X{5C(dFT7sFruNr}&}_KE0Y*jkkvQlE3yYO5U+UAb?N2yD%_ zwmDN|L6=9A8?FHH%Id6!+iL{&=rM?DLZ+pb`o^8Wy z=|yN&DJv_pEM;>bRx$g|cdK6JyIXOES4jZ=>;Vf>rsrZU?duZtyZh}Zzy??wCNnzT z!q8F$y+Rb93qlN?uruz`>c}J%cp>7Wq>m{~H4ni_5bbUzM)*(90z8`Ueg3yT z8*N>WL5EER{0wYg=Db#7%TzBqOG;R#sIg;z{W8^Uu#Onadabl?>>QI;TKt&NOfjU# zexXIl>Mcge1qY|7aogMvUBh{T<6jfXwS1UT;D**dSCJQ?k zkGqSN*Mt8ID2iK=+me&+i@vifw{tDz(oJRv8jR9q+gfPsJfFhDyCAiwjZ%bR=uX)K zQCg~Jyw#cPXWckz;$wHb-`g*nxm)#Srf$!lA5IqecU{#=%;p6SKPs#*lo#HdDG*|2 zDb?x-9!?dfTsdI$GZLts^#g-<)36?!zlEh}g(tMuJyE^RS&L$O#LJt)IB#t(efp@S ziA}5w+eZg?E-f&{)!IzUSo?PlrY=Qy_PovXX)#OAvTHEz0v+IhT+kXz8Ps73(gdYb z9qjJX*H|hhRaZ}=DM*2_74;NT--^rNQcth9ubsg5_L!4H9vpqyhpN z#|$J|Jxn;+X$*KSH3tn#xxyr;w{Q4sTyv_J8zxYH3ZfUvV{4{IDRwl~%xUdmy0FZk zVm>aJc35};@Hmx3@KC;;0jOTvDuDhcP%Snq1S3xBfin^c(Q`bNfG;aKS%o=HX1$}5 zhigE<{*Cw6lT?16YIiSBc~8q^@1qUR*&iOwI9ntY4dy{UHgEhc+JXdv9LH|>1)jvG zCDUdXiQzFG93hH2#ibfVyu7@GML!v#Bf4Wqr`FBJxwsf4(cjoRo^;WFlx)~rV8F8R zZa;17f*40%Jz?whh6Tk~Ttk~dA-4J@U%1bw5J~{3UIw`sP8_2PO%*<1f)E<`XIGx8 zUYHx~7=~i9Qw{BhI<~pPejZP>4ST%jJ+8o=`j9c=)Ox+#`Y>cw-IlwSNT$f zOfo7wiOIp@T9t;JfSvec$MMg7khp_})UQBQwrB8iR7ey*KX~Emx3XG;2)DRCkFTeWWVq z13-;d(^th&kEi760 z3sD9L^ut;OLKei9SX*DW&xlt)jabI+FPU5}2mYM4Yfew@Y1&sh96Chv2%t4q*_@GC zByp=18exJB1<6^RoPH3c%UD#$N!ykCF3m2tK8AEg-;tOG?oWGUI1#O z)zJ@-PZG=Cjuc6>KirEhx8ZCqKGK(Sl3QHxN4Ti_h=_RwpJUEalqYq|kO$WfeSE4i zT~p^$R^r$LA~*Fb_vv<_eH2hnxgki-h0u}7F6HkAz4oK5jd(=Ab)pV^Zf~WjY3TP1 zDePT$-qL=HGa za}f>B5Ns?wV%swVzZ-xG;%c6VLpIYsWp7P(!DT;bn|k5rw0J7~ygd)DXKLHnk9h5W z)jD@`?e2HvBSb<_hnGa~<;xch8rOClZL^;4g1a%2ZYwG?rH7lb=yN)2B205$LQ5?^ zT>H$?XM3i_HWQ;(-8oSA$IJuez?miJ{vv}#~6jB&vyPXeW zKNz;MA-pp#OKDDlxaH^+>w`V^IYd&nA2ZYY%s77Fn&WC$mLcS#WvP^%%as$gCUHnM zPfH_sv05-tn8Q^vn^e342SOYmLEk*GWnS{-kyCFe{lH1{smrrZaJ&2rVX#s5NsBI*;zqgZu&_9K?(1{iS60bw)PF=w7rsZeJ@V~& zpCQ1$4TtcyF^SaOs9s%{I`$%z^j$|uVa_WnCO#ZMo>6{-_%9@m%h<~`WP@J|2SE2q za)MWt+lL2S>lS$4sjM2fN*MDBS6YfVbhehr3|aiqTg@uCtMDE6-p9;lI8C>)*#V;9 zqHD@@!XoVf>7*-qC8th9($8L)tpz2Qn1bem39OM<8;v#}TJn#o}OIz?Hdn z!l9sHS$2BApPh%(Tj!|lFCp`=|a0(Sw^zlY9tMlvc8t93o1%Cd`3xYx_#5mYb@N15t zR~AXtdj=tPQNyu~krK>m0UIA2ty0IK+F2CTFGM&%ye|_wZ>JD0!JPM=sl<#>r?za!Hj$44ZLAg(OH65d*+T(uBC(U|o&G6dD-3{jD zG^)br0WI`=RtvCqvfUTOgo(Z@fvxDAn|Kppi(xTQtWV8H!We1JFPN2==DftI$cX5z z(JiWvb*jyuX#$(Ci#npW5eOBsUa!%mtjimv;_Z)+tuPJ9V3zI}8Ba@5u91Rnciw;R zy?s23@YE=M|6bHjyUEdAxyeroUmfdA)G=ZzlX`b*&#s63m8$J1hgT6zeoaIKfYk7& zGn>dg|C$>~EwK4KLbceFmbCN))Y=7DEqg_XAIm2z=1DpN24X}_r$@B3_G8%-v(hyb5@1--pl zKb3e6rU*a(_GiSz+b9YkP*O`VhWty-tI4$(d0F7y!Pa@R_xAQ zn55tqqkfx1eX)}_PbOle(-9qh@#pso^SgjN=j~$);Xl#U1vB8;i3!O{@19#Dh5`!# ze=gs_kHX)~Yq`I=^7}BVr9AKY{FJ!2u}CiH#}AcMK8G^q8d6=%%C@6uMYTQB>SqoQ zqtTu!0(l%7J*$=TdB{+_0pOCPl%S760Ua}Aa=ngCNdL~njZrefjynDI)D}l~@*1CV z>Uumc>Sw2X=ZZMQ)p)H939lnReL$2T9vYLWvDe4ET`+ghlOmiyf3jwi3p<^4De;jT zhcX)|H7cdPH9}nM*m_255J}CJ&ZW#;KFr+qcY7(8`BZ)vms~&!QzFvs|7LkWMv{_K@AC7Nl`Vu@>$qKT^7;(t>#AI;Dofpl<@MN-Mrt}HvjpfGn1Q|bF z2VYEiy~EpGR(``(S41Fr_KSuBA5msxq@+#!`oN0Opalq3+GV!F;HzcP)@l29 zbP>2dMi0Y2`E|9PG(wg?41~S_MO}xSCG&F?Ml_QxuNaXO`!ZpF`Eqs@t$86Jbn7TNwrHtQ5MS(+csAfK((9LmD6RC(AQ!*t@X^tB` z52AY&h725vAsP`>L_dZWom1QM1!lZtkMi20pOWErpu;@Jhjt7DxHUY7tNK$FAFC~h=*|xZyjc;4bz&FyZO@(zDK&q{6NMcg!?qx zgZPXedh!-sMFXjPpgwSm$i7qW7reuZ1QA+V-2LzXo88ZB+h%a1z-4uMGWvr2tuD~o zq<8!k5(ftOa}^C_8NXM%=pjCTCA(3KR#NFCGa^{9ZPI z>mYl^vXJhye5`pV;xlKC^%!@o9eRCEo!kZ9C=w96IXtV9fgA>10!>E3Uw-|35A zX>NXgpX_x#oZQ;i<2rhw11AkX+=J5OG&5R8+#t6E)l}7)g%=?TNeE7P>v{dzzV^*q zH3Q8D?n=8_t>3viHw+WOBi zeR=y!1~y2pZ#mG3qyx~weL^BVSurvc~ z853(ON-N^JtOUwVOVa1?Mqac{_;tBbl9xD9y7^|L2sFLSA2W~mZ-S=kkur)czs)D$~w2s6$M z=wg~ojn25X$V^NoznO;`=*J%Zi5oa(BKq2O#7;UbX{AQ@4td<4a6DA(MVoW3fpd7+`YILcX#(fp|}+s7R8(>#T+Jn5mmTKa1O%uoFbSC=-`n~p$l z43_52;>~|0^_@hez&io=r^)EltO@VA5@~D1I1YYe+74{JB0tzKXv*)?TY4NTF?H7- z*c(1J-Ew%!pO(oa=7uY{wX5JgfBjJ@Q#7{sdD2yAL}pV;-b32Q=QX#|zlkhH0Ageg zmNJaUV&MUxG(=7g4iJYyN}XwvJcv(43mwKq|0#2s82-xoj6-D66Xu_3pl?_umz4D6(b8&t zi!o%0bl_%y)33c|HTw!wS|P!&M$a60(U9G&hj4_jbi-L$TS3B-^PoRc88^&siX5L% ziLp80_?y`F2XE9M-RqPZcXq9LUrqb!d}U>9HFqn^{ItB9CPVIufdzPzBc(S;-ka`B z<~*3w-EqgtNb&3Q2Aj?jH4@Aae3u|uw^^ml5P>mwiiwbBbbYVzr5{76AzW&iAgcez zfH|ntw9`~%I~3zfv&iD2aHB2k{ZrQI=7xnU{i{e^+7vwLdv#6ZZO^dS*r9hBHjo>$ z2hXPi@RLp(lY`2InDaZ-FP=BllGOr?h+RI0M0hmEWb*o24nS#xD-7;t1oXqAUu=!4 z_)a6ew$bqZjuf#&KXPh|u`C+LDS_8Y_vvT&%DGP8$>=B|RN<-a8X3}$(7218Y4fuv zA8tjGvWn_C{3rGiUbnB3S(1tDIf=ldu3Ux46K6`-h7*JR{~A*VhHA=~)R6XWwTwi> zFU)v9IQ>vm8J%d-gL5!6(S<&JARZlKzTK{X!-jkspR%}w50qM{ev$2pcp|O zqcCePJ4=-1737a*LF%wzUOot@_dB22G7RC=m_vHFrNEGYsrx!*W+ZiZ#FuY;W~~_YAeU#6z{6p2Be$rl6vKfc{jQU zNJ&wmnmFps(o0Cd`J!=G=)Wu@&lw#A08^uXH`{SCEUKc2ndzN;J>3p zTXzSJ1kqa4a|ZTPX?{}8qCpehoT0k?#QF1kbd|~7YI0gt-|wfqtpYl7KJ{y#g>&H> z)fb~UpNp>Rp~gt))%MJxr&+tNai8!+pfv(5$&fDT2)rcC0VNeAr zkM;9JJXVDZ`Phfe;Jx-#y|i(t`L4eDsGMDdx*oztkjEP-wKIr_W;ZpYa>ShbZPJov z(3>yp4v#-CRBW9RwsnkkOTvFy3_F7YL|^QV@&2gnTBN?@nlnL&zKmgC=i=cQu>z)- zTqjA7X&9|&=#vwDRChob1YYq|9ju1mf7|NJXtUE%S10^^iSMhr&3?WqC*~J+YhN&} zNz&(|+>6PaYUKCtd9*xf+OhQ9Olxz`ng$Bxk=-zNqQz1I?dSUg#+1&IZt6 zDK*ZRvLylm#BBNRHAMP@eJ!Iz*H*@U@Y3E7oB%GbytOZ<2VySg?~(RmblIb-!}^zr z{Qu6<-~hPU+SK#&@!#|r3BG-i1XLKro^ye9LQRk>?Qzi)wRr^GstX6PAb^lFAWnD zn4J2^e}DDcig4?!K>AU`2QyJh(%v#e@?sz12m)ab4sgi4>sW%NVUHJR;m=MHezP1qPXN(e;6Q+KCURh9=;Au7@ zqUOf{d6?QO{?R9HVOpm$0!?NMUS%pvx%vZAQJIJZ033^cs@Z>3d33CTduML{bnCdg zyQPFji+QL?oox_X+eTns7At%WnK;DfxgQy2`D3J0%XX-)cv}39wJMZCyh~ZNYWj6C zsu)~)Y@YHGp%28{>@&)cm9HrB71CO6I#0x9jWs|bu#qViToAGFHNY8>r+DN8yo22z0sDOB5buHDXKnj= zY^~5tHz7G&QMbc-%!iwd3=rhwZ``W1q?*gfzDI?ORQZCIlAiEiRx-@kra581Mvv@Z zh;R_d7?}{;&2lkbc4KTrWyk~Y`CPw;=XF@`yR)o1!-AKqmNq6qK_hejvm;bFhUFHY zzF%4?@w&_jOGuTaHw7a@oTx&ccIxxwZ_mzZJE=h3E2@_e@Qc0~%$q&2N#35YF!nq- zV1K+PhI9c1td%asqWKIt==*KFgia#VCPJreIDm}9Z*2`R1dBwBSGYTRtc7rz*l^4E zf(fPEb>aJpzgeT=MnDNMUY( z8;gGmXjaNjy)xT}E@ZJ%{~;Ii$dn9x=_$QISwXGqd#Vk*J0iWD@ad~yahWBdAGGdp zyiLptyV<+ki@vN|dSOt}%w2RAxv3XfErexoE@Xv|>;j%5``)HvI$C)otV}B|P4ckn zrCgeLr#tALWr>*B|HU@A_0W4eVBTB)*0PyloP9YrkV)Tuv%rSAF;m*OMH#NU4>)!= zlR`ViWd0&k4Q6mJcNCb*Kx!s1VioYYQK!cD_G->h1JO8vJKmiuiP`S>>b^oS)@9KP zATMP$3b;MnI1wwXQGmr*{y~Z%Jr+i_R??f4Q?5`v9e?_gIedv@p##O_P&NN2jIuZ^4aEpY!(OPz08N zgik8XK^C=Zl{gA9Q+w>}nLW!*R&nO{ z?<*|_n#YN}h;i$E>Qmql`s0b$J>d}MqbkSaR=)bCu3jl6RQ_Hq!q-^A_2mRv)-K!{ zXm+!a(-YG|&d&3x0*-H}oh8qD#*#!ZjStnm^@8NsF2L3JaH zQX@ogFy&I34B%$)93o3HA~7%^wFh?Xt|C?AKU7~3Hu|wq91xN#7Vy5!aKyZeOw$G2 zqS8Vv*BLibr0luk=;Zt75M$$}?=jBaYlJnskP4&%fNbD-=R9pay@OXt>)VN(#U3`B z?A1Y7s#@Q0f_(J!eF>fnTzNL)i)^mYfVDbLM{k1?`ZH;@S`bSrXaj62?kZogHtL*f zJCC-R-$&;fBn(QAPo<42%dViaTmQu(iT-ExZK%o1>#04N6Q$cA5&fdK!>5Tm_=Eue zc}_@SSVksNzaMD9o~f(dT&6B00Hac=Kv9e&=?!``JLUdLr>{9D^G_*Uti6UPTIb-T zPV@G3BhJ=OYwtH)M|OBQ`G1;DhWQCx3u8?=Ylk05Q4-gXK1jYS5Qz({tWJD@FUW}@ z0Z((gW!LKy3dd4PAPk$m9YB1w6O>pSkt7&L&y(LE?##ZtF_ixtec|J;Z=NG$mSO&V z4XjJ(cMSM(N)DnkBWreB=5|ioq2Jz@e~lb&Tdu5Oy9*lW%V@6eK_SV=6Qe8%ht5bh ztS^WR1VKpqp2PEJL5GyX~`A1=xDuZ=HiGo!^V8cze^l7NX|8NNGd;{~7e_LYu9VDQI_ zClAKGSWJJ{Bs4V6M7O$4`BTr)(<3MI&d%0wfg15}CfynBRdMm2f|XZ}#dRmW>V3fh0{+Zp-an%*7 zEM^77jlKEeaUEk%ee>K^6|`2I4gJ}>zH@R$i`?!vU3!+V0Rp+wUuwmc%5yp=<0{b;EDoR z^t+DBl?FyX8$C_pa+i(;%$suMba&luz1a>$l&rV{0hdJ0Sgdq557YXcBI)&l)Pztt=z;@Yz^`GOvrZvx#GbV!@wm zny>YV5Xyx^bXNDPHu(@DRnM{?qP?KrN#tSCg6jU1b*?Aw--A_5e4A#?&sMuMX>&F| z*Y)BI9FSDq6rr#ik(P}zd0IacQT3eZGWe`0_oM`e5H+p}8{ zSm-u3MnDQYd3*h@fA7Hr8XFm9QPK$XBTB;ziTYd$M5>But>cSTqToTyM?Aq?iu#MnvMdDQln6U?)Y8Nu4xu4^F|nf4Iu2WiLnTIVd`4a zF!FXyDqW(7%-^zZLlc!p9dYcSn{8jWDJ`}UQ9~&0T>N%lOUreDCInz(26MKz{(L;? zjVvYRD*O`0DGv2)NNlpV^yyiiYxmiD{@Uwf?YuT}x@z4iGKfyWN+qa}Ug zNcoF{J6FbVQ!n(R(HNgrE751FLR z88jk^p=!wBdq{Th`Et5h2CLzby!!fVN+~HR`KMP2%iFFdWw3=$bd~pHeof$F)mpoh zV&E<3NBMn6lN*~6z%VI~S#lt!k&p|fGJBoja!^Zf)Q z<=p)6j8wXH53fWl?21er*9jjgH4R263i{!e$A

      wS(e$y@;!9!1Zv~9!XCYFT8qK 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 N002ovPDHLkV1n@z^>hFL literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/exclamation-circle.svg b/wp-content/plugins/wpforms-lite/assets/images/exclamation-circle.svg new file mode 100644 index 0000000..adc1107 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/exclamation-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle-orange.svg b/wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle-orange.svg new file mode 100644 index 0000000..c6631aa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle-orange.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle.svg b/wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle.svg new file mode 100644 index 0000000..df479f9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/exclamation-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/file-code.svg b/wp-content/plugins/wpforms-lite/assets/images/file-code.svg new file mode 100644 index 0000000..e2a4354 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/file-code.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/lock-alt.svg b/wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/lock-alt.svg new file mode 100644 index 0000000..d4d7bcd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/lock-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/triangle-exclamation.svg b/wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/triangle-exclamation.svg new file mode 100644 index 0000000..59b1c17 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/frontend/file-download/triangle-exclamation.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/address-autocomplete.jpg b/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/address-autocomplete.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7666b2b3e91489fa9afcf79f88ba59e1f895d496 GIT binary patch literal 18084 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/entry-location.jpg b/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/entry-location.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a225f57677bd8fd9f4afe3769cda56828a1c2801 GIT binary patch literal 31409 zcmdqIb#&a$wl3IiL(I(VHZwCbGsMiyjB(7&%+zLPhQt&zGc!YCietxio)649zcX|1 zns?Wl_s^8n>Z;ni_V?A6RFbwze^&qO0#N0oWTgNQ5C8zg`vUm00T2hk!N9=6K*Pa) zfQ5&HgGa(fMnXhH!pFcw#U>#nBPAguCMKt5qa&werX(h&=VxGM=j7qxA)^x%72pzO z|n@yZDHl8kEH0f*n6(O z)$gPrrv5XAvXs`{_hE0jkBZA}O8N91d}MK#BhpfQ&x{`TVK$QNQO(80%-npM%jp|( zDz!Gt87DR7wPx(RnhU8Z9XqAa|+c){M!f5%FK(m`&(@I@(J4iAOU&e z=hM0uU_=ynSDB9Q_Q=TV8DN%?lIxj(GId=p*ii1N>v|7H%UC#xD3+93{VNadJHPC{gtYsMQugx|gF_qpIW5lFwP}g}k zk(MC5efW0<;H5k&_lk92|J+9-ZdFK$>Du;U22)puvd2TIPq(4cN(x|p_C>0>T4OzS zIi~H!yP>qSdLLM2Jsmw&g_jwxm@|PdYOMB@C9#$vvNeD2y^x=wt*K?3pW13(>cU1{ zzNOFM1avjuI&^4t-RDd8XMx5Zx3POeC-W|wQ!Oq#h1|9@%eYPx+tFy4813u}sPhez z3}U}pZx9yPVKg3eVPoJ%sEko8KhUUYV?wW2PQ_uQ&$Ab^ee}0p_c8n(^Y0sCi_RZL z+0%9t^goh7z04^qdv%5Z%=&u)I9hp(?dgkW6Z%?ghmvrM^++4;A9Xd+29=$_MnT{uv@T$4#N>6aGK0ltR>K>^cTdE(uH(44fV5n_N1C>b8+r!j8tLibA z(B`IiTt}954m6r?Opg>;cCVSI-!-13O0q4m>r2IP-O|sj&C7s6_Zxm!(*l2YaJ~9y zpZAsCzHw+}wlC%iR&$k+Uc^W9e{lGawlH?=G!X!^aMUx;hdjL|7>~jz6qtK?*Uh}& zo4t%7P-~k(W=m~%z5~XrO%aqJ^K7P5MtnM=ZA0|AcdBd4WE)J3rkA*nUw+h+F*shJ z2fNB0ijgmtJiR?q&-;8XeP{r7#;3^CVwd~_5#q@G*2iE|yr;`(%Ae3rijmTHoj5}{ zhjXFNxtG)JDj@7sb8ZZyf~vKfv+vo+fzo2Zdk9VkU)s{yWC~Lqt-e}uZY~7b)=sIc z#0#8x^CiR9CPx*ch>N^pI%~qId5TU4{U1nw+Y+|&mO|rgW2p{r;oFS1T=2FI&R*|r zSf?tN4sOkG7Yp@B3=`?1D=y7wZEWV$``Y9lZ{>W{E@q(i!;oa#Sm3d+_t8V`!>~w zNGQuI;v1s&t=zm82>Sj72VihwcXsn=Rp!1SWT%mb=BGd;usqyHee!m9{Hu4S^Zv8= z(%Frd*^H?LSK1Z4R`v4Qg8l}*o&`{)N8xJeeFOu zz9|_w=kM6pMoiLpTrct$Km>2jos;`H?K<+NeLpnbd|k>pqmdWk#m~MgulR2`+mD~j zO-b|Vp&rl`TJo^_HXJiV2P!g`vwluU@mb9fb-T-1B@sIcY{zf$x{gr(=q9lGfS`Wr zGJ^t z)9cNhZjUx#>839aMKkBEogL;j`sF4?9%dcw)LL2Vz9VN5v%Y5-_?PYg zwKu$?Rxm$8&A>-pDGP0!%zqI+`TYlAG*RunSO`2T zJbec@nyYclTeMI4m)qoBt?S6ko!HEug%{4bo7iZ1uYs)y=h8o&-G{R z5>1`%obqg|gtJc%r+@Vd)J@wCMvd);eWuA;=7ZC=%|d$m!vdG~N32+Y)^E1!_GVfe z!p!;vLx~$A8OVnAc2Yn^Rcf(-Q|m>oiLUeBd{BJnTT0M>oC1Kb%(JtnyvAu7tMa@A0a0?puG0lufvexPKj)@Q-=bYjyO!6wWB>rHq*At{SWvPewGx$e zFukJC5oN3?k9OR1980WbA7tCtS85*Qh#^fujPRUq5UcQ5PtwNJ zP8tqdPqEt}+Tm#4pMPko8A~fEb9SNfykOkN(lz%N+#;{9q}*vePveDa86x5~Vn&bcTy@Iidqk&@@DTp;#7@2lp29}OWO z6ZdpRXGZEYhiq%q(ez8X3ff2i()l000p=32#8cbE_Rl6OFa@$*hLg&_sY0aPyIv6P z$y*P~x;%K5r*B;32$-hl;f%AL&!sgBgqnaj@^tibbA7!H>zQH{hs~oTe0lbuJul`g zY9(p;ZN9qSupbTMo#!kdME?F1kouIjLr%}C#Q8cncX03f6!>o>64?1wrATFJtFSZMiultPu4Fr7gxc?M?exZc#J|BBqPh5F5 zVPGdm3Du%!kn?>OKwG0O*=Vh{;$dYkgLjsW=$t#f<<+(_kwKI#UF#KRC+U`K9X-9WRF+iA zdK6(Y=82YpDD<6s*kbK&Q(Xz)Z?1jwIo~tC?k}B#(An5~803oC?tT80>XV;8)ey#qqXh>nlfIC+#=$?6P9;#&i@*~AlA#}Z$Yw6%SZZAN7e94r2OpWs{jBI zZLNLQE;T!@YjUp%mSUusI<0#w`Xxp32TI#_Qc$vgCH5bA_@o2sNk%s8{ISbG*yIm` zICx_u3ZKT<%N40}eW_b~N&iFp9|eubG6^`~fC!KxNEY2(CIb~J_Amwk?!VB45My{B z=>GczfvKDL?pt(`|4s#1@~O)X3Nd0iKM@c``Uwrg=PdtU&iKzpz!L3j`9Qw+&O!$M zH!1*lRnvE<56FT4+4SEfSdi@dvGGpm)^RECVT$yhk3j!c_-C$?ge&)Jl+FEd;JfaN zS8@GiM|*gm6H3efL-QXM8Zl~sX=}i{$NG^+{~H}l&`=-%fK2q?hyegJi4+ic7x3-~ z4UxS8iz9R7B&Z3I|3V#$d`LOgec3(eVfP*J7Ah8Me5O$#1g>O2!%^tJq6neJDDytn zPrVZi1Q3E0AS3=OvjFcqwEqI_-&H8@&-bFJ@8dfJ3=||Z3=|X$51lyRWKLm~$f>$gbUoOOdP#CgMw*hogw$rteGK7uPDo$7ZH_lV{OKLF@)*QWxw)r!)p>X{Us;sL0;OdH9bpE0qHlnp(?GSI&=K_1b!|Y@x{2;A9$8w;ImkrUJLZ#~B`&7WIPLYvh@0c>?Q9;z{`)r- zT^I2t#T#a>y(R=pD!~}v4tdVBy$k4Re>Jl#wA7vRaG4Dj1nHC~fhXF9K9?nr3C`<7 z3CFx&(8qAd(aMy)V);>z}x>*6SW3PjrAR%r^y+{1DgUMSQhwB9*-vN^v|x5^pG zMHteG5;Vi(`6A+qICAz&#n{qx{B*2U0z=*#3Kw? zTqOs2{Tx)w{p3U_|SBm;BT`14)f;DOAN*; ze-_{VohSGW4Vk<|w%pkpWb{yL!5G6B4gPJ3Dnvi*Day6hpRutah~kOAyQy;AGV#i= zc?;Xf&^}o>>(YvAs!^$oRw-Iz(2nMe^FncTR&3!ZP9+X6L2KzS+2zp09wFX$=7!8+ z1Am-Obul-siC`YGX(Lvd7&n`L;zo@PG_tZB)oH<74@h)_YwB2F(-ezs{EVflOCdnQ9zMOTF%&b62T%mj1E3BUP{2+5nXO%~{cQB$@6Xh;p zzT@TKzD}6um5$i|58$^-&F_QzVxye5rN7CF-dvv5b$^|Zl=8OayF9<^2dw9gJdKyDgBbsm$H zy1bW+d`?ItQSMN{SP9<#7=s77pVLN;NhC*(o#w<}2H&}`ywWF3?tpQ_%A>wWj&y(i z=c#^ONWB4q<*yY)v(UBWE6c(=XVY>VhsQI|cZ^LPm}bJ)hezPpqb>U(=Q2gC7lEMx z;1D^YBy!}d0Uuk!YPErfr;=)3RsHe!wKLS%5U^UMe22cN_03MQ?87FpHetsxmkXMj zQT`12P$E^tgZwvCddsdlyn{W#B(A`(qq3(VwRZ6-Bu`plQ-1qyu>+OQ$x?Y34va)f z{zBCWa9LRta#ge3Y*$>@jf`xQljh|5e*kIij~WBj>jD)CTU>?|nFLVF&PRy|5(_@M z&}Lv+h}4Gh@~NiTu;@t_pA?)leK0405la#VIVI`RSd34wkAUbyT!o@wOccP1_5Cq!I z!vM$QsV<-XBJhwFiVk+yHY-N~9}w{W)Xr($k!0fI5lI{sTxRr@Xin z!v~l88mdd_aOI{zxyKeChgc+rwW%f7w`5 zcx>tD@=ix!pSlyR=;dHp7eGobX%2CG#RaAA} zwaL7MSE|c#(_Yow>`6LK<_+<9cqtg%l=C3kT+k*qDL_uo!90Hg#nCN4;26DiJU(`9 zS-cxK)8ML8sd$~`WS1aWJ;*NXd3=AVSz0V0TQw<-qTJOVQS? z7BOe~&(t7v%Fc_o73<>FP{9bBOZ8!Pk6zK>IN7HHi5*O{NhsObV^8Iq_!2%YFJxCP z>ERp1Y*D=aEBY&{4_i052_@A6tB4Z!(t4w*^9k5q?3%V;f9SdkL*f6Hw8>oJ9^fiF zzFp1^fg8p8DTRPxrG7duQ1xvrzWw-fv*jzLe_GMfMCT28S5pHq303Ffz0KKWoTEL- zpquy*50Jme#FE4S%Ud1|$?)4{ zUtIEpx1`LOa>>k4t5qYlB0WZbgP22Rtt7%GJ$Rc^X@UM~m1C>WZZ;^BPmX}AiP=R( zC$-Ky>I5+ zZePowe==HP?;H9DfJ}TLW)|uEQ*1P%4xhJ_c6#ztd-pZz1!G&|6;r;>cb|c#IED` zXt~Uve6`r^Ga?=7W>xz-m(6RI#R1lpA_Ignk-yADsVNI5>AI=Aa1|J2+y#6G{4NUs zjnhWfHm9E>^*Fln8)=SSN`P43-h9e*k?^btqI6qSF%e{61w>fX^e6vD0s< z$BjA^%F}GWxI6DepUG9X6=o_lMP6D_4fO9aFmVtUz}Tz9oQ|vTT9$`j z)?GJ`pL1x-=Rrto_pb6i4MRFbI zWHuz6Y$j;=y?p8YihK58q+I`1WD1+Of)$y_-H3ADkrijGPDr*SgDBW0!&05ldF(R# zgokL>U!)ss78BlCHI1a6?H9=uf+|!scT{&JH~F9ux@*H)FLA8re6gZFhvAS1Xpx2u zdt6vyT0aiyk^0;v_WMfV3T)whYZodCUBT&|)B%pD}(O z7=~8Du=lAh403g8?56Czuv7y}gjN$8%R>w(R3)CnJv>uX(vxuYpp9)g>D&vZog5g% zQn2E*4U5YYY$23sP4JnC#ACU_XfYZR9vb-x%{QutWl15|jAmi+2cYl?B6pAHFw|PZ zDw~h$jw)^rwaX97;wmF(=_8-NmP-{Rqa0F#$+JGYh!_=?-5)^ry%ODATGNM2>a}AY z7XXxa^j8jHxk&50xrW`btdmOEHMbv#XS3zjJpsSI-*O7LjQ6<9t$WpkPm^9Hr13&7KpY+}49Rt%MWZN8r9=P%wL)c+<}9t~|UPRtsy<)>@A zFW9Q3b=}$?EsqzWlIPKVSjsuTsfjfA$tJrZ-ng1*5yvjMghnImg9m>ljvNh~q66)U zluTu*3@`O>-D2>~XYBQjVXbc(>o7KNkV6@7vf{tIqUvuA5H7iHMh~IM;`qV=pMh?j zJ>%c{+qi%;s%Qlo0AvdiOpM;C;}=sb-p&1xQIV+;O)N}; z;cNy@xgwRq%gQxT70+KR%dgCMQ_~Bp_-|yqJ97Bch{wm7nig)na=@*i+)a`$huT&Z ztFwyy%IlWlM56S>>Nc=<8P|0!y_=4@vh&s)3OmGudfh4KJXt;7p(kA2XUJRUg_SOB zhd68kPi==alXi>nt@Qt6S!qd`H5D$6xVkWSV4;15<9PVx`zEnSEDRo#Mx{uFOQn$J zJqHh=fs_VmA@Z&(TIjA32B9VtorGEmj|mOIof;s+ol0&^a6mQ_B(1*XU%9U&ofA?K z>M&|`-1yCvl);KWvO_#`P0B2)TxSXomIUdR4EjB@I**5psQ|mmA#eylz$U0fT38;jEwU;v~-g;5jqt+$(+MKx>-9ZKirR8>SU&IAaQnLZ08gab*0u6%&A`7rmPWfCpDsx5s9#H~gp#I&uFYkiZ3 zdJ3k1J1>ZS>=EB>9ehpi9E`(6{#|Xw`%NciVi0os8oUfX^Ww!jL+zo@i$i}?_6zum z*z()h?eZb_M5KbpGn6f3J(wUpl4D`i8gmBfQyTFrua+^kl3Y9jJ$J(tsC+?~f=Ca} zw6)o-A@?}=$4$A!?1J_CNJ&L3au1e^ zyld1GHP^yboKJH;L+t6_b}-KHm6^`?te`L^?5|Uwu*j=r@^0r>d((ZD~O@TK~oeQ5!Tk?YcS&$d}l=M6-inW zvbFn&20cw|Ngn)(xwWC^Etr+&!|9v#CM@L;)Nbh<8EqwuOxgFL_%(XDNEGJg^9v5> zl!`zG627<@D9YSRgIK&WXG9bQ*hpo26so>hA0z6Hr4GkxbB1p&=DLHa!-B(bV)$Rj z84K++5(p#0KjC}_hcHP?kY&{NmuL6Ce3m-v<005+$Yr%(1FCEiWW&)jyK0;ez_$kv zVMK_3RA-||`YcncRgsb(>Py&*Wt_}RnZ$aI6lEPsDAUxPLeRkGiXNiwNDKq^;LyL6 zUqhp^cAy+n;AJ)S6{{v&zDcTN;r9A~ZOcg-cJtklB!7g3y8lxhk3DfRAXJI_Lq+{t*Rqu7g@k$W)Rf zt4RO(Od*@Ziy$>2x>taxduX3y)%YzGUb3WYzL6do_SwmUnVPjfxre^>yC>1I#yT@+ z!n)>W38R{cZ(sED5Sx)1zJR%{HYJ)MQRCL5+~e2iR^2e%_Uc%K(eQQE3bWzz-4#mQ zx8VnHNGiBEPDqlR_5_~#UfDmwl;rzf0v)GZ^!yVx2gfsgP({E*r^ z+@j+n>?G?L6B4olh$7QfO2LF0G9^eEGj!aVmTpD0jIk1%XpDde3QpWcxp+_rSK5>O zW9?2q;u`i^Cm9hp{wDD)_HUdYAhsLuR6kowE|2~iI;fS4izlGrB~Cju^$2Y?hjp2> zG*nr)ESDYOiF~6UXjO%8fi*Ilf41g%@b>MSr=3eDyGfF8KQ^C+VYIpX`smat*KEqH zw=5aD)YtO?i!>QqB(w*LHd!nnT~LYX_Fl!}ST78=^eXE9YiMds`tj6Z7zmxZgz*InZquxnaMZpvd7#UIY+|e^Xa$7RT)Wl-;?{0fmG8{sgnbB}26;i^3z4 zmYO_!W-GHEM?7)rO2Ykb!N>LX!vb@RP3AtFgcR)C64Meb8V)m%eWB~Mp(h-+GTPgP zxCbROL15K6T~S8G!$cjHPEPA!?jWf-$s`REQ3l7b0zN#`VHCt)PCFbf$q1slXY~?$ zV;pJcVQsx%oe5EcN(Q#j5AFTB9+{l&p zQD9EEYp}!6z`aFW+hqr=9%RE(tQO9F1vO5*K1PGyoB0HX39FX+b&kq>abUG$swpS4 zKB$U|Xs}U$ldT*`U}H1ap~miuEQ_L)yIM5~J|9lBxh8#onea$Lgqxhr((NAFJIvTP z7C|kDl|!K;_-m3IRsDE0IZJ+b-VqAd+o~UpPq)t~#iX_CVmG9%PVh4(ucn1~uqM0% zp)vSPwhmeQh}!Fz5ngkwZBiJ9tM?W~d3|q_RBd-;E~vgOm-VdjP<)2xvt(Idb}EiU zyj;SVq*8Q8Huo%85H)RAv=%0-i5drF+bfgGh2bdR%z>TXI6Jts~m9(vo48o}K8BX0S(-n|wyJ|GlrokW#sc;qWaqi94Nx%mdjzzd;lVq>?0} zjhYUULj$6ZQc`SC+#b46jPYj3=3~&e zf7_Y+)E(roByf*o4`*X(GnTy>weEw_YzR1zvlQNrf=9>s9xCzIBzb7CrQgbrErqFA z@j7OG6gRJ%@DXLU9ws)*QJGCa6IM?69^(bxZNp_^&JTf)+iY`*GOgzm)Y%CgT&?l4 zTv1zvQ<5MCvHNIAe`MU}5J#raa|s8WxsDF35_dN(UKb)BY$iBsY{D+q7zr*;xCzb& zOs^z$!|oeXcqXb(Miw-|gM(_v;(AlP)E1BE+Cm3+#R0JKN2BSdbM%2;1Tt(W{80>Z zNQ@Lg7Gs+o_yueUnw)h^`ba1us$V0iaRD{ftWNE((0r(t>gEHi_(Tzkx9&~6%>sXTabw( zaKuP%sRiPqs;o^Oq0BWosvgMOQA^9xUEt8x4T2Y8ZJimkr#=9&%c!;`J8%h-H$b&W z=;JoNcybzKnO2O;TPwHPhes=(gOhobt|yCTS!9%37AZOnd6}iUSd?+}Sscqnn_~|6 z@f!r`!+1ZC2&Hl{^t>Q*_%hZ(Dzs^~?$qSPa`ciW42=xZtJhfkC`FwTkLLXht0To? zQg9qpBar5P7kuu<45$oJLu=^dq@_&R==_pk$#lisWIN#M8ckm|2BjK}tqdmYA|E{` z1=WeFv9&ntylrZ}(AY&Jc?rHcNrMj8@~Dg_-jK$UfyZ_+!c|4Wg2@j?UULwmPB%N| zP}aDcG<4USxLPwb%~?`uGp10cOztb}CPw(qY!f9eeyR~mmGiu`XW3T32IzszUZK)( zg}7*pWvD!SgIQFN)h&r@=?_3;e)5cMcH$nUoJPU0x|YGt>M{;tt~auo$=Ffjbd=JW zM#V|N;0Zq&VM|IbYI@~dtay-t*G`Iw=oypj8GAb#B=*^;VzG!fbtIF*XP-kN;=bA` z`nkhNMr;YaEUtHASnF~to?lqHJv)QJdVb-9d4@JxnqBf}b3};Y(y2h-x__Fnb?2^Q zg<`AYOi(TM(1x+x)~BeR&t$4^wh6A>po`ErD5ZT`G8L8EjIZ++7!l{9@*s`&ozf3{ zY0(eVtEDrpBzL7e3}X^yFzMl%b0y-~!D6!8LgRNUn3Ta{9AMl`=Y=}C`6Bl-+FPEB zF6tV`y5E@(r-WPb$n%qGPDGAvmz;<#LJG?zBbD?nshCe39E>`)9TxW7+M9~v>e?Rp z8sfZ?m!EMoZ>dBk(JR?dBqVEx{5~V8*yAPCfwYsy^BWE*kbU1wO4faAB?IFdrucXr z8*o@ISxus7nl!t^p6KavF;8B9(|>gxNV*Qv2X1SpU1f` zmMc`_2oh6Ii@%L0J{hg93KL*a+{71NCwsJ3+vTf6@6IKxeF9-nsM*ol!tlx|@MqwZ z>1=YUjVV^s;?7gbMTIKii+zqT6J+YI9UR?f2!=|*Q?0>n{HbpqO*Q$whzFG_)=TYM zv8-tTMSqV%j(VcXicFA9_*D&DNq*cwQp-8fsDoDIJ)36~jlUYzZ9%n?KTIWx4W3{H zTT?qleiBV&*)Z)N0Es2oJ{G~R7!k420|9*_*hOQ(=I~xoI5{{&k)i$K>w+qx!fvh_ z_L?yDEx#tNxvC+mAS8&hKw{KMjTwy1rz?vjhk^C1&@gu4>)u6rJ-sTCzNk2}mRE;t zgU-i7YF>kck$ zxNu=Q#|}f)mn7-Ut)9=aq5>CXP_+m5+giRN!SYJ&;7AN#G?=EoDWDcDTo+t&9D?kI zdSkC;N_8+6g`}lwJgI9o!HOsE=zyI#$ac_UB5~$}5pi)IX52=}M|!cbXC0ILy5$yS zs4qU9&&I9;WY6E*tru7_?d z#d<4)4t-%Vx%ot)`JPE)K_wZbf%a_W<(r zCo1cWrCWX}_4p7|dfSimiTVB$(ikHcGizzbgO0Iqn_@JnqS9(6QXx*Pb>Q;R#d2|r zmOLTQ@Np{EU{VKThc1jh7oqk#G?SVV@qv@lcYfpW}sc$fK|nV7&5Sve3gB<;kWtl9t$T z^K#NLR_iDh+_}^+{oNwi!1mU~3-KlO_C?(n>5dpFJXxX_-#g9lOC(LKtKRx+D#lVB ztQ#?S@t5ddqQ@H@+g@Pb>MWjm3@<3tHeRgD@Wg44cTSF6h8jzrfW;?f$b zPZBRF#eg~8(vc{K9i-h{5jPe;rbt7uJ05!1pUk|4)1jb3Nw)`A!nHIylP5-p;w&iL z-X6M(3&R(`#8XTvlJ@5i zgNn8Kte^xa=O2QbdSz8S9D_3-B8klFcTTgQAM%K%k{ZkIxTxwqs@y|nS;oB7kFl%J z?w;NtLT!rvQQ4*{F*P{oR7a(LV{@;$5bBM|e&M4|3fS7Hy&)cSXot}8DeioIS?04QcM3p*lJFHK{$lz$TW^K;8Wo#guqfUNtQ!q;Z5 zYa@=g4`|Kqrky#LWL{Ve&iB6YiDTJOx}=jo__Af%UM^HmqDVdjA6)Oi&a-=f)WPyh z$fgRSmIOHI<_8p%_dOnQOBR_rreWE!nU&f#gr6dVQA3H7k?klV$LNuv>Cogeq|s6J z%qM$TY3H@|Vdupd#L#8M>bvFV8JZ^kwl+@U^joCs{14Yp%nROs00S=|uljbW@0D%K z&06@PIT>DWei{9hQxVW48}8^~pF<)nS3bOR)X_gvLT;r&eh2LQ<|@()H$BP{<@I`8_Q$XZhp=DpA7uRzZ1wo)CZNliJr@6%@X zP?->N;f!iTzVBtIPx{ikm?Cw5UT)o2Fgx(!ybWfCzZNb%s1t2`E_eEnP$Euuw+?H; z_j9MyxBl+?`%XV|A5WhmS-klJ2uoK)*zBG7%R0iE{K)M3e|~k_L$Bm+mnu=j@cuIE zeZCnUHFP-l-94^obQw}+;*+tdb3Rc5&UXb^f#g2df_Pbz?1^0nncrbu8Z4b;#6oi9tz~#Nc(G3Hmed3$vDEUD&KA zKnZ%~#w&@pd8;dr7m^wwdYYnlQyd3%Zv&g`yi`e};)HCETro(O30*k*I$ibX`7~Ts z;=Z_4_x-!P{iaSuh|#qg{vu<1NwR?5mUT~95=sy5Q4>>{`@n79XuHxu z#8ChKGx+cy#s3ukpDg`7Ec!n0@;xpJ1%!Byi~j9XObEa~!lEvyK|gMiid0BhL>lMz zjQjr;7DWxobgM}AkN@9Y>`5@WnzT_zI88H?JKD`??NkQnWju?!aA|BcB4lf(8fNqabv1SyVB?zd_lwvM_6N1%q2AFxO-eH^@I^euTfg6Gc!F zsi=GE)Z*LZF-^lq9cd1NrtGK!8%od$)d zK>E{~EyFr zEA*?lARuU5K8c$^GwOSX5Xf7v$8Dy72{2iI-Hh(|$5x!?iDMhJU?9QG>5hrPQzAV^;Wp=z!FKiO7dW zXPND~i^KSxaH2i0g#$U20H&QJ=v)rNGY)I&E4fI6`ao_z6B8$t1_vR%H{~S+nhk_! zhRN2@*9b~DiTz1eQ}`lV)s!JjmcCC9v6pT2s?aLnfhxA3h=*lT^Ugt-rE{EUQc1;N zLEJXrFrA?p6s;aE8W$5cO!$}_MkP#+ou&3=B7SgSFb#xV)q^pD96{~d9!6!hrXEI0 z2`D(Qkc_i}9Wjxbu-^MaqJ}u+JXN}9gdn*mDIrb&u}Tr@G8L?9_=k@y>4g(e3TpDE zEqlH$m^(%QPwd=TAXM39J zOrtPA(6w+yU!mO4Pxt3pN!xcvRD(}TPgSyU7+j#65<_cImeNZXMs=V@mBr26eG?vb zal+0+Tx+`;pt}4|)$GI_k364}s_xXK_6$8n*JyY`zT4!UH8e9S6W9K`LdJfRfn`LDCimg%oc!E;Lgmd8c5A1`TN?Jh2u|26)BDGCr6& z>%G*I>=%awOxA1=a`GHwl7JB;(Hdf=3*4E?_P|H*6LRvS&Ym6g4<@Ef-*0lbjGgg) z=UU%AuqiLKiH`_rk`0#N)911u7~*}iWCp!~Py;?)mZ;Cr?&6jKU;hA<6XsFSZ9vkm zVTo9Q^pSHCq)zkIpl_p$tNeqH=CXx)c%N72U*>Q~2jGJi(J)|{mJa578HMTW7bjhU zN99gy=M9h`Y#aEx+V_6Mqs7@NYkkwU3$GF|(L(NrS&07;jmK?^W^$Mn zHAYQkqiMm920~hCleLQ_JkrpyC7{TdOXy>=;%9;P!oDFQXf;D96b193>$iFvl5v1< zleG5OsE9)~@6-Ds0=b$_V!VZ~BF~x<)Kti{s(?W)FKDQmQvu5WoI)c`+=f6pU<`tO z>aDj$Df*T0pA04vkZ6hxObH1R2RRGsO-rFi=T!Yjx(*GT`U_;)eUt zp{em=HW6rzaD!u95IiCOW$X_C!k))YB>nn3tSV!VXh_%)10zlNFCj=DQAY+Ctw>kU zsNz;`woQ0SO;UGd3Cb~hF~yr?@xB`!j!>dtb-b2v zv_q5GBnellv%FP#17$e{`zQl(IbNh7G2|M(ba>c!O*l+tRntQh$Zi1;}Y{6KzJ)SCyCHaqleGDvkY$j^68$_B3WV~0h4iNxMZ)s2~1gI10 z>kU0*#6S_lT2B;>3{$K4Bc3Qdivb^7H&UJHaf`GSaNUD+%N!}hSZ|wwrRvIJ&NdIh zaDJ?cG6RC%QG`Xrn7&Z74Z-GLGYq>oG&=Sdj+qdFidrjTPmvl?;njmGSwXp{sAJ`u7<)SH5A{ zTpjPW__9rmkqj^oiHv0C0yl|zLIwfI-*!alpuDu2F24qAYV??uWgFhk>odSZ0Ha;R zj-Ma_R1i-VK1Cx&6x(z}Ka!sl;Y`I?JOe{jq}RNI`4pCCQgDtKzCDeKp&he?g~)3zJH^vuqcnwu&|pXrH*S)tM! z>~XP^?6q5Zju|SCL5b5amxRZZ4&nSY1c|vpOsO^SCZlK?t7Q_^H#FIig?!RXr8rX( zwaELm)u#EOAD=;}t~@3nY#5+m%{OjrANnj4>)nR(qahJqJj40r$_gpkQ5G7>EbPs> zPr{LD2lDhI?ABT;$2FbV@vSXr61VIqCIfmQqx--`&^iUO*wpg8IGrBmkMj#$D4f=iVDK|SJ7ED8lkpf)O>{qc%WH}^~tnR4gAemiw$;#H} zwiT3Pn8(11DB2z`;UrU628Vz&)e=;1XSF(}NR)m8(iZ4y>66#^P=y@FA}@Ar;{4&JFvrnc8Si-C8B56!)v8IH)DDL;_Nsf?hfg3b^qX#H}diryG=Ik8SZCh#DB)JHtp*~xufDS{|Jegx8veE9Pe!>u`1m{i@G5OkyWt#H_5o9lVn^MU>EU2=_@is z|M+Cug8~KTMq#o1GTy{*JO^!J92Ve6%c87xR3MIYd{c`)zgkYNcIUYOY9&^gw{}Ae zOx+pCbN4{G$U;*P28n(x6^ZZ$FM#Hla8G5hcW2U7EM2nN-`vv@FLYsiVt|oLbcNx^R>~vR^dBL#(|D*X59Jw5trp z)Vu|$1$m&oI6njhOD!F35w%@v;DQvYJg&Jkik)F8+afioxJ<84yHc3hs>BLDceK+P zdVrWBXkQ@iBUZNxp1EpFEO=r{Q>s@3Eu>)B?KvnOngpIF7y_ZZ%Zjt!+WU6X7hj#=NTo-Pb!x3Vxb<5VJy#X&TB9hOlk= z<9JjXGEmx$!5_bQW*Wp>F3GS&Pv_`m+6+&f{gQ~TN2n2^|o%dNp|mt2iNxLhxRNo`~@b6ukYuw+mqscO-GOn@Aj5ZdH0)wQeCa5jrQ0)MhS(Dpm2O^pJ zP)00-UZ*1_03={Z3H*BXbTEpeDrO9kik|96jssTHy=yi*Rg<2)DDtVE@Ie$Lxlw&tM3o#ZnD1I_ z{Yw%*I|_VawVb7|Di7MQYk;okBUI9?)FmsNa&e5}vXQL-`bWw`6kei0!yc^EFw8|1 z{Qg2l{YM2&QckYW@G+GjdDO>DQF+fPX*_~Jz=X647L{zGPe5#=lxk52URiOb8o14I zPh-G_Q&=Q_Aq@y_o6GtjoE^9cmEH_(V}VYPtAcgf^+L0}7*geWmA+vRq`gmLDFf*4 zf09GP7XxC3BD?4iUUBi>*PuJrLKj&C=6wY)K!*)w{+8#OZVWs?h>M@7yD^9`EW6?p zCRZKGd^H)65VwvJjP}5hYn3t{46vqmW!-53M8|wa6aG)7kg%!Ply#6a`OmmxD4xCcX} z;&yWwIJIQGzjVgKC4kOX9BE^wMXvmWUYv^x7Xy3{9V&1hKHGMY%N=+-ILTtZLbW?M z5i9%HIX)sC&0oFfP0=vq$Tw|wC2lTBDlS(cR>~tb6#)mAl21HLB#klibfG|vB9HH6 zy`Ym8?URBjJ%yi-)|?%?KWD;KlGUlUufiJHjVwW;$G{6T_^b=c*LW6J#8d$)p+_Lu ztGJq$vf=mIeD>%jHqaaq606d{ly2&FChkf8W$jQ@xf-Js$w)E~!tT0(eScY!vdD(l z*0J_#ps`qC#i636GZ8ycE`dj>&lyJnV4Yevb+;nN#J7w+8-G87iAamrBg=mf)w~-9 z$C7Eqk$jTId2X4v^9O*OdXtn&J+ezOSjkjAgb%a51jA9G=4Vp~Y!b z2$XIHw{Ip4-bB^nTKC{37du06AB6gnYOz@eixxGEvA>sGL`9*{F$c$Q&q3(X7r2;I z&T-CE9BxX1SC|#7XU7w`DBrHTQJ*LLE__uU)kI>96uaI843kvaR0=|y)`BY{MgPf+ zy=4JCsiS>U-xP1mQrfIS96ZSykLa8D!E~glnW)tuj#slV;&owd&QyVphuMp&m99LJ zTZ3%?AIk@d3A75VgQp?#bCnBSIt`L>yz`=w^$55ROfD!c-$aT}xl@EmGrG zdCwaJ<;B9v>uClkM3+n)l^iL;j<8-vNRtxeU{H+5fd}n+c`?xIPNgY^74E%Zc##Wm zK3b|Fn}ke(@it6c zKtNYD1{S=iY1>HnZY)ky7!$_h4`ty|FmhPUc_MRWpcD4?0AC~JgKRq}Wfc9URBIfT z9iM^50?%{4F)5oCRp?JmjZxdlQ1F7Gjt5V1m2x5M(q`4$tnXhRX?4xv;A+I}n-_w# zjd?lvi9CPgnQkye;fmpMma%9!i>vG!Q#i>V3I@X~rdPr>TI$n=qY+Ek23P9SUyJ!& zt-@g&`9i5=n6yyF`!gfAVrLd!`~f&_cw1Ii=lyt~dm)W;S!D!;ieX`jm#+qK2ggW7 zYBbD>=sP``h-QWWh^zo*=JE>&(9*k0w=-e$gk#6v^0avA}=Nmf(~8j?2J;Dpp23B zORNt9i?*4>D_M`K_btd_y;tKQo2d(-i2sJ+`Yc^YCnXNLmSI$Do@0Vd7fL-XUu>U7 zD|4=JTt)I!G(W*>H!;X%0Y0905YG<&4UtX$wu zYn4f0g6Zjj$|Sg<~aU*XWAsammPAvCOtN_${J?0u^vWKV=XfP4@RB^Zh-moY#a-> zjL3dQ+xz_ieDNdu1K9Y4$W22@hnT6nk6!pj^O63zC|IwPm#7>rdqpdppv=0@|3qqA zZHL7bT@6o6Ser`MN2HATAh1dS?L3_u5g`?a{E%%hDG1&{NDvXdjvAmz^8G+ncS#;b z3vGX6yswZQ+OS466C13<0qR1fiZNy^r_)23p2Ey8jtNJX$NknO<4FaOSEH?7 zW{;X;RoQw@VYuNYjYAV^wr~^$3wT|HbD;C1hgipQBa+|ZGKN30^Q!1!fqj;;R|XwC z&Q%YKZ|%VZLlI zE^GT@fGp?y#DF`KxfTG+TA+0pGvXspJ{Ce+9moJ$J&7I2u^ybs=G9wY3MCI0?79S~ zzh(x=6dLb}ZwCf#@rpCe&gqOFq#lOGUb1q?Ep@j$b@HOYNF~XXxgdR ze;}S6FQ4|}N$FI+mJPNAv8AKgu+pcVO{Jj(8>4f3(SA@lE_2-Ro|)`E$e!b7MmMIc z#CwX7Ne?R7;>G1vE8JYX!jOueOrCDbo~NK2?_q(M-&9vlFY_a`-#@2P7ij=Q^~Ychz+!C7Zi3m?Ce4YO?oGX#1t)0e`+ z1jiR5d+-NC>>Yp&DlFI{gx(PZiCJbvlNrmxdN^Q(Ls4~O{eZ)<5cYQq73mhE!yC|C9QpW4; z`*M%WxSv+=YM>P5Yj~0&R)*#SIHJ-<#FPiHf5&sy&}tgM8kR%9X#>92rS`i}USQBF z394k@3B!YTbv2HFkpC}tuwWEZXI+({!3}#e4s3Z?mAq(`cuZUDP&j7ZY~}ijHuNW_ z4xi2)gDaE|7I5F!4v|$GKf@iHNxqjC_v(&Y#**?B4uhVbSB+t>6sUjB&;Ty21@#u( z8Eii)-e)OoDsH;<(Du$vF|0(03=VU@J}nW*AjTFZr+uH+5aVqOYG<+SmB9nnAD)~o zBxjvlX#r~-j?bBKPiq&nQtk--s(0-{mH6z4@AAbUv=)zXNDAbS;n-BYgF_AZh>MA!~c0)D{8pH*!po0fl zenvNRp1Gjai@25ijKzkz4?nYesbgaJQmacE?CKc=#pIJzU)o?itgkQm9+&YO`>g<4204)!5eYYhajHBaBNB-!i4nt_Wm>pNJK z^q;YKz1+5g4q|pb8AocSnF40Zkkz`!-AvYjt0lB?jix2^@8>eK8St7<(19t7){#G~ zEn(>SoeskE5I-g0G;mzNqANL?V!p0dhOM-d6{E>>)D=Hnql9_Vfos(lIPfVSYgeGF z(MqO9exj?gBN4ONvBVaGF>geNS0$2&!X>NEorlgH+S0Lxz?~stg{iX&RDck%Vs_yL z%%|4@2cvH~D-W$`Xbkil_EF*!1JzBa%uZ_~*z)XgW{KR{%~-HH%_mS=>^Zh5mW`44 ztbE95(Js1SmT;*L|mG}I=LEm zsJT@D-#mkvjjy*}C4q5G5M0Wd=%>HgeJvIR)pb#(g>UjnhE%Wkj=K-6zo`Px!OX^YA&TW54Pc` z@F}V$Vq_!N&8&+yKJHfRWI0pkH#!qh?bpwZkXdn2ZG6I@;KoK%{_>ExZg4dhdP267 z*2D{hTzzO-iAA8NEvNovW--TCrLj}qywl zK#fXuNK4&QBnUsYI|0;W~ijVib69g!u%5e=`+~LDMBUx#Y=6gz_y62||$k<(O3aW8VIMP7^CM zSNWU&?Wv&V?aM~sO+ihx3f{{_iKQ+jzsmWLbY0F#ruWzOOG4swqMZ+`%PenC zLHCj;W9=z6Zyk-eWarx$vSNce+fp$l>XCTN-MjSyedDw8vPa!Lte-cfk(TR8`sd&3 zHF|H2I?FWx%?TIV7;=1oz#GBVHE*1We5pISB;n{|WlBgU3z&HGp9KHi8BuN6QOoea zwsz9sun{X4C`V+`P3Bvm-xnO>Ej_1=! z_QQI1yz&p;;iaeIV)#!@E62D)W#$|N5Wk#N;KG&?b}d(FPk{$7LwU@OBJQswMpV%$ z*r{;2I_TQZ#e4l9w$V}Aob-aq{O4@a6HfjBwAnRQXmAukD5HkUp}~GS*KnlSHWF3Z zCPZfgy(myT!@)6S+6MBf^&#r)u==|k;?92nN*g}RCQ6Eks=t-AV3yS?VAk}1#m0va z?TQH`)j!BcF{;WjFkUhgf-zq|fWGQZj0_#)mzRyUF+pPLz>tAQp1ag#A24=rw#%;)B`M+kLE|A&54a8ZmCSSHOhNoE6)up1euD^1OKY z;3x^&kkga<=*apmGM}PaE3t$6X|#B%gT^%~#o>nB0{9DK6xurPDTxKbl<5nDE5s=jC^a z31%r!x!p4UOtM;X>#2O4IueI)&9XPQR6@GTyr0!W~dJD~)hz(1(-dRUjIyuL0&HULZDZos$|4XL*KzfV zN>-0tU&eB6fQ}gpv}{;1ch&Yj1-@aX;0vlWwS4hD84~?W2*<&2w;mI0TU!H1EPuy{ zH*HixR`vE-xP+D^eJ|hbF)7;@%<$pcc;s5U^Id+H9y%qCk0h!jpWQ0KuZVNI&jR%Y z)M0uSD(6tT!__Q_XgN9-q<1xm%W*-y7T&;I%H92%uO8RHUu_d?M8d|eU&IgZn1Hh> z7do+ib;wf}<2-6q^vl+k|9oAqLge?ip1uUqL#mH46gr~%Z3Ug9cuMLC;H(n&_Ta>{ z+|Db@>#fUW5nm+p2b7hMo>B(GxEE+C8?_)ML(o95>_Equ-1WqoUcQE_RlF)2!*SXS zb3+_aZ<7Au8fWiX*z|@rOF&#e#qWhk9V)89T6sy`NRIMZE}p9k%S97Pi_vukzPxD5 ztGq0Yu%rZ(%HdMLJYGKW?ev%wRVBS}82;p0rMLy>qcF2RV+8hRzDVjNNdFx7>X6-~sd1xmd(daT6 zA&W8|QL^c_e7SO_Xb!bN_wlmhy-D5#7&Iktekpq6>+~TO2)Sg)eTEj=^xio1!pv?J zFrx=p!!MIs|7f9lzah<1xh96$7;MQARIcGL6>|hiKX_FlyKr+%u{N9|bY^}!@0!3w?I}F{{JnxY`V|y#fmX@Xy_}%Wo>`@fwx3K8SeSVbkoP78>Zt2fSyV5yQGd|vy zU>DE~brtA~gBDD#uwJ4cYJ&iTGU?s|EGjun_zI!A=|%nSLTF+a`VSCkufCJ09!uv6TvNR&zH| zW@6{1Qda>PemrDCO#L(kZ=g80=*QNYm@Kt+F5GnE2~F#98mWncdCBsu&EtZ8tqrL&H$NiR&Zc z#lPN+OdMQJa*VVLA2CjiF{I`{4&YRa)b%&YF!CEO27A#gQZ|z&47#Y|Hbv1I_(W_D zj|8fBpfgz#n;0t5SmbR~V{IrPL>)79QQFNJd*S%rfSt(QdbFas2wCVZ zX(ipjX*r2n`+K>l;p&-){GE!XxHZ_U_mB5MqWFU^BrX@{laAXfiI;oKar|jM=#)sm zqmisQDsU*v*>Wa)MB&rTW0L($8R5s@n%U$}l{V(CV>acH>>|#jOrBG1U6LpVj0hNi zYk@+{P0{+tdptxsZ5C|VQZVi?O*sXruH2{f8{}N@?Y&~`AkRn{y$CJI#V5rZlNNM~ zuF^7a(SfojQZf~7He<8cMmNq}myk#4F(nv3%$dGdG{N(&U>i-a$8SDzI>$>patMi|4r`PQtUbniNPxzrE)h%PK1y8@R@0ic^W z1Jb#D0v<|hVmf}X(V(TAl)P^aA0C=6Ma}xy3%A@0qxN7lWtO#R{Ab@fGkzaYq}EP; zL|vMbvDCrxo9yRT_ld^%&pe#I=8Jjq88dc>8Q?KL!8yVoL@4nDEwjZ2zdltP(m(-D?z=9#*wv6vF?AKU?8H((Uoam6@T0ID)Nq68 zh=`CNt_?i7R3SK__Ti)m%-=B~cE@WZqGBT8hZM-DlX?%wc7!2&pgWslsmtRhZm`@SfTzRd=G=RR>8w$iGSC1WEaBR^j~COFLH>FHHv$AlC#!UIy}^c=c)ce2y{C zk`n{OyD#xld5=MW`TK4Y-bGU8t5LIGM5B|)uQ!brY7}onu2&b=8%gGBNLNAWN)n3V z@^f!HmMfLu$=NG4kJ(?(_1g|Tg2~FaZMn*~qxWmil-qHxwIamG&a#?)oL-FFn)d6$ zkP#~6ek&$;{^Siw1lY`PFV&Q%zFN(bx2iu0q_#;b*_Hh?FcGNnERCq>2X8~}h&W#i z8O@;5j*8tJoe*kf3Exw66Ha&~j5>Hr-%i>c_IDC8-ZTivK%UW73gL;Rak_RHNDuu% z61i#W>9kt!{J(ceG-GJUvR%#XbU@WgadZ#<0l3DM(4R8ow2zmg;AISs8hOdwFr5at zaPHje7d>QEi>N4E^3-ZlKh5Esy}&OTuPjb1ADqc#0nFuXOl`gpkP|YEz6idU9RKo= z{qD3xYSj%(V1>xB#@H|v&;|V*B{f=WmFQgwoYFoU9BUahGjt{UkjuC9bw3Vb)Lnc+ z8n0$Zi3WC|c%^G$BG93CCx_;NQdLEoLX`s$;;x6UYwW4LE;#)Z;6tNQ)q9>l2NcVC zZmUPEn3W?bbSm0bnA!V@?TI)z@Y!Y5>ih4rN|n&1uUg4#=PTe&b2`nDeaN-~A+ek@ zR4J+F(kH&a@!+-p;6TMoThHsZAC9k^EO$Z_I1QBi_MDwtJma| ziDAk~P``rVZ*S`T?8G56oL=X$%P^%H4ITabL~3-bVTURq!G;3O;(YIEN1UX1M>uBc znsAe2iI=yVwY&M>vWcH8=C=Bf>MD*E_MU{&&>f>MMNr|K9pAY5s*XypoM=IE|^p_XYEOmRWdL1MD9Eyp4!6% zqbpv}-Rvt!>JsMh?TMc*fPzELFW+8SI6TgC*7VYaE!t(Gp=1UQC_Z1aGa z2T!(`)>s!r!_QiFd}In*g`>=c)med7eVlQwqY2hK-@uL^3m<;YZs&1RAWC3{{ih9( z6@hZlxT*2%V@aTqk8@8tt}r8onG{3vTwF)yTM^)8eE{}%1vrGLT+E7^SBaM?;2P&-KKwvxV(0h zjH*DcF3s_pXawo~(UD1!%_+ zXZtT(InY#-1ddr4Lm;J5ab#|NX4S^)yGXph-Qy0NcElb2p4XWMt&OOmS%bUmS_B1F zm0KZ7XC+Fly+9FBV!yt*Q?-XlmEj{+pyXTq9{{S`Y?b0d@xwR$z8=sRN1WMz-JG&{!*%?i{JSgz0;pjCP_U5k^7k!Re}@XhJvIdlCN>8SEIB1R1X3HriK*gp zIsY?MAm<(&7b9ew>6lj zT>^!jY_&qdZ(g)KjsRZ^YhAMEEg8l}Bxt)}ck%tRYE_1`lZcn)LJo~(jz(lkNl0o^ z58pPGmjXYJe-E5oZzn*YIC3K%$HWgFb8PXB6j@lpsnYPPvGaD@I4%9*ezs=XnOns6 z2SAxG3}4EbA@jXaEV!QG@Ob81m+QNz?jJNQKWb_iL+8tNi0ATT4M(wbEDU8)Q}@6A zqomnj$8No61?F2%aC%)p;iegJNCG;oh>%y)*#$?jJU%L6p~e`5&Y;uKK4}oMw8%;9 zo+UZ-Y5S37#iK5GrK*RuWYjUyWf2}cnhp>Gp6clt&NpiS>0&p=;5mdHDZbO+V(wrO zV;D3%m)|C78ErE>EB^?nLC+E7LC?y2?kh4$ZIP8v>mnDfG~= zf3$wSUVfAL<5{Gzd5v)Jh%7$g+$IM-jnU!Fw7-1K{u19e=76OKfh6YpxV}=km94f; zybSF}H1^+uepM_+_@5o~bE=ZNnxEDsEnb@oO8)?S>-U*f;D*&m#zhQ%*$fE9!_4|r zC_v`$q?N4XeIjz>eyMK<(i!A>9=Z^xqGqf|Cm*PhG^RTrX{3#wbdDWyo2Z;Lqb}KS zhoH|Dlh0D6d?>x6(JY>&`Pc0)`adv;dt4tT;8gU9d7P;|)5S!Wj0Sl<2UI$5+;Lxk zXRdU;i3lU>$8CLRxK%Ui?-?Av724_Pd^M1bC5vnX(nTA}RWsi2%*?HjOc>NtGvgTep1FMaVPr?F z$K=P`fPohUn-dcoa8BJ7%Wnvi0i9B%5|8e!JRbld_4_X{KS$eWARx z(9h$*cSIl;w)kj}VYr$0WyexsoyrKv^)sPQSYcz`J8Ux0>BfM|ARat^&{Op_SMR2; z2`PBm+zV;ZPiENeQ9yFOEXwM_?Z)IEBf?iZwl9Z`U5dsK<*CGm35cVBOJLX%*}E6co}eeusUk$Xhv_XP23SAU{@G1-WQ z=uqVOU1vbc)5(i_Se5}8ZaGhLGl_2gDwj|BQ3zcrr?h)P?QL&Al7{VMTPUydb?cMM z9{}28Ke|89^@S)4VfR)bHO2Bn36e z?kAVkd_VpG5M-JCBYkzy8CKL08lvXwAW!JWXOeeWA4ezc-j*}{^Rx6#eh~L3#Y?0q zYF8)+@+k)5b>ov_5&Qb4`58pVPuchVcDj1QeDJS{n2PxZte=jLUdF|K)kW4h`{gDj zi?u_OvIuWt$}M}(WN^~9?djw9?Xx%{A3u5p zN%cQ4Lr4htThB^4adpk_9xH{(HBapVNE_7=H@O74b&*R{nCxw2s7fx*Y`j&AZa>`} zSI6G=4s7&vUiepzFHDlV9Lbb6#4T}tXf8$Mb(81p($g!lrG#k%dSMqKMOe)t8yuHT_d zYt|(Ee&j)NEKoOKvL9KTh_`=s!wdZbu-6cB#Dx8}@}2 z`h06`zI|Q((CCxAlVmo6y-B*XGFcLN z_z^h>Zti#HDgLZJ!6f4H!*O}07Za+N4DUfTJ)JpYv`E-^8 z9WUTJ+MjQiX`Qi(<9U8WPqSTRycW#}xDx+!TXZU77#eL;4D40}3)gO>a^-k1^0x-L zpF4v1uYUmdyIu(80W4f5%l>t+`{zw|h8W4qlaX2@cO};Yf$~y6@zG*y>$J4`sJoi< zN2+r;(wbdRP%rqc{Ij^)`qc^RX{__7j+(~&CHUR|wAUh)cAGn{b#ig%uN<~00eN!F z7am$!?@G?km(MPo@1@pJ5b*^QzEuy-8@Y@Z|Das^@?5U)Rb#jt6*Xh#n`PLA;HhyO ztyuc20&e!KW&gk$Zj~mDh9^lM6>M{4^hz@7rdT+!SD8dnmbgm=-tHNh)^ zE;t{YocWSNyIVD_Vmatynreh~;`%QF!z(W6=umOpg>6B*kLf9dF zz8h`EVnn-5|I^IeYHW&e%7?~p^Dzlr2c=Io?+BG6QvNUPB%Z6d+rE2Y5>^^c(p*K@ z3l?Vj8<8VVyb__w2hcD27EI)3=%R%`qzIWqTWtiYh*pxVU|b+P!aN7RioF#ExJ)O% z3N7zFz}#0o=w%e>1tC2A>k#DJm(YKqX8;^5#DnF3_^-tLyHcB+T}4&QBsdAWXwcXt zvFV0#@n4Vtf}Sxm|4o2EMb*YieU%bWRg2e8;<&^S4YlwGL*AwRR#xWs6it7wL7I_saTe*xmbb(XU*(yK~rO3b4k)`P1cghWv^dnS3?BjSnAj zpAjD>(!Q~wkzwrG#(=$KyC^+PQj0W7`eK1c_lvk@jmG-lz^o(H_imw~3)NPZ&nx)! zwVY*S8)jM7nyE=1ClnX@>Le!S{tU0mE$7OcC~roazmS2e0ldrVq_}JxPw2K7N}f(* zUA6CGsC6eD_at-cW_KheF0PN7i*XnI1&&p|vLR2jM=X@n3KYE)0IrmW@2diry%yZ? ziN}o8QoeLKj8l$k1Ix$7KYXmqSSlW4i0M(*EI)Kx(-(~6bkus5XI0eldw z3qNMkTLW=%Jp0Ax^7;6L;EonQvm9Eypnngz3n`1^8Kw8A5Q_Czq-B1i7TDA~NlEj^ zc<6u7NWJ$SgaFXQqqXN+(9bKjnS{VB+z%77u0n!`Ze?dRz}}3dA1&fM!H6XgNqvV( z;SbVwPuB0_+H8U1AHUJ)kmNacEnOGkQmf$-NZdF};zxdo9M=EPJ9qqb*-gtZE)Vw) zz@>sGxNDM!2^|l(9Nw!vT-CI=?;YxT!y5h^{9o)4|1wLkyq5rOZ5WLlzLGss`~kp< H{@MH=Xx{Z* literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/entry-location@2x.jpg b/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/entry-location@2x.jpg new file mode 100644 index 0000000000000000000000000000000000000000..801661f6a8f7c9ce70aba8689a0ce390b1eef6e2 GIT binary patch literal 120921 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 PO^9fnaR=t literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/smart-address-field.jpg b/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/smart-address-field.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35c65fcdea6769c12f94f893e0b801ffdaf5f8bd GIT binary patch literal 50127 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 M$>%$V&;OSGFW6XmLI3~& literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/smart-address-field@2x.jpg b/wp-content/plugins/wpforms-lite/assets/images/geolocation-education/smart-address-field@2x.jpg new file mode 100644 index 0000000000000000000000000000000000000000..364d6a295e138943ab0d623f50f8550e47a62626 GIT binary patch literal 159819 zcmeFZcUV)~(l{KdNRy5rA_oxZE%YV`NRcLRr~#Fd01@d(LJ<+9Nv{Dy5lBP`h!7B@ zs5F5<(zwe*Zcn7_r3S~*?25?!Pw>S@=qXPiwXn%m;768To_M=DHjn>V`d{1GE2) zd@=Cuz5A9@H5D#0$V_?=HH7jP{;DK6_3iWZQR@AF<9m*%P?Fco){oo{6}`Ase)BEE zCjOy{#=r3e08#A`cyaYp>~V|DR2N+#mg^{`{=vzZ(|QeDf9D*T!K&=gCjHCK*T`w4{g( z)m-}t^1lT-r4v$Ij68EEF6HXa+JDKL)T>q{EtLEW`QL#ZDRUu-P1kk2`bpy>+C)U5 zx|*&{{7;bo0sTh;eGU*WMe^kN1$Q@&9V?e?CvQQju8^8OCRDwQ95c7pkune$Mbu z?7x1+FBuO2N_H?7{_9=+zu5!bi1~lNd+G3^|5oFF;wk+6*?(<5{&}B(e{F92C!PLl zp3cuZrTf?1vY&VQACdlCE`JYY$p4xD@%L^1xU(ZG{&D@Ei~kQwfFV2Y-ip>Szr8+k z{J)p{vzm&rlON9?nK@NZ(O6~%V@i>}27mHzd`JHmh7~+oKW}Z!R_ndNgRfr>!us_Y zo*CRbc<^t0OAL8B<|bJr*}vZ_yuvc-%w<*Pq3QU4;|u=nU9k#?jXxX@pT`0^43GYx zlvj>l9Kcw~14$yeIk;IV@ua)_00RKU06;>Homwf2lI#;Be@Fg0BnE5pWAxLVwg3Rw zKlYSP&`I)e%1srf_pho`AJSHc^mJmPksb3~sn(gVr~o>zN`TR6uV&Vf%lxggW59TG zSx`IxAar*i*GSnMkZ5Vh#buSCz%4o094P*T*75J<`I?&c*KgQX-G>tigUq!Yms4}3 z6LVzZxhx!g`3GepT6^+X3iE`@wX3-5mU~2ypvSB2&PpC5*%npjDglO)0u3(!bSxtX z+=%e9q1gN+g4wBI_L-d8C%DeHxPS}Bs_HPF!d^-`@~|+6c&0vL5a*J2X>f9IuqY9~EP3=IS7~lGqr_ut zcwq1$w?00;V>Kb<8xE{ienxfUpjn~*c$$PWR7Ye0v-_T(PjJD|u4^Jk9>DpF&pBql zz%|jBd|79O+)*MtdUFFY!UWjcMKBt?OJR&Y3h;x zIVf~&^~9W<|77WXq`oWI5Rj7iJb@KKS-x}@^iA=otOfJYmt01yD}1dBwNXG>B!A*d z0V#gdwJ=Fu?ldVdIoE;d`7bP)-!#bGPkxX}D|CqAq|Lr2=juc<094165>JD1%MKXw zAP|CLPhRxnre^^rNjDvS%rW#=cv`J1X$=^8RV)kv+!k3%vEA}+vqTHYs$jcj#$3k) zb46CcBS%tSE^lp52&zcFcwRMHtF6^a4VyYJg#}e8w$B$z1cYDrDl{BH{Nj>mg6lT~ zuvw8&bp>Y(0!2y&R+}bCwQp!TYUk8q;JHUOgNV=%`XnUTB;0!l^C~LM3pX*9x|W`u znrKDoHyLV1eJYl2Os5kYmm9WvU;da(i2lLAkHV0r>%F#h!&q_a-tYG;(tf|!KTu3m)5Z+ z>HN9mtB-aTCi<>5d;)MW%B=-i)JDUYtQ~UY*+qwQf51LZuEK^e4j$Vy^ z<8pI>-HV+xLRC^I4@XEIAO41`XEl`mu~o9v@4V14aUAjlfYqilJ~6o~p5uan@~5z& z(biA6jF_I7r5U`VDIK30;FKOX zR{F>>zL>Y+|CS z&Kr1+RZ#W^)2f4p({%$Yk)NZxT(dz5bW@=?E1TAG+f()R3vWBl^&?7nuDJF+-zdj< z=*|1XtmqSq#Ofrujxr4w&!6e9*$1778LCbuT)^u~4BzI~cGF!MP-#_AlH9*T!33Bl z1URnU*@u`bI^HT#t#R&L0OeC8RIR0A7q6dEh9$ogIWu%B^!o9B80<>bLaa_uVxMdXYqm{#w_fTgU$4-JO?^{d z^)CLH8Ww6fmBVt=-kd3(k@nT!0_ZGK@=Fl8SA9Uoi2=cZ1eyRk>@B20d^7`VDagcz z$k$;XS7K|Q_#AbQO^Ay#PrNqstY8y*c5T6On$|+B%FV{p_CoJTot9iy`T^j`et@iz znA5%Vr8lJFaO2U2eZ6^KtV)*^&&HItI8z!LAvy!B4T$GrFBm>~;Vn2POlzpFGBu=r z4Ae=o-a>aYt`6&F#>38pOn7sz`DWzM_-^`xZ*A@HUTdJ4PyDI8BC#j?KvE`U${_07 zReDxofDdeFtbBVUqzI_X!KrM)Tx)&o9zfJp$k*jwHb5-iLTqW?KM=r|*6+-Mn%`>9 zX1?t^tUQiC8`y0F7v_^}MpQ9zu=2RzCWJ~DfHiB{F^WqcuBQXf)o^jJ4{K`cEv0?1 zDet=XW2A#!+BM30BENmdOQ|+zA2B!{)HVr}v`=*k^uusk1<%f{_aFs(OZ=QqM0{Fr z(a!MK4!19LemH4p#F%h_$H$R4R3b1eVeA+-7>%h}PzyD^dgpFkJK@7D&BP{}6%_JB zE_-hN5x5fSV<|Z~8-Ik9JRz#m9{_`(V#w4Z>#w=&CK!NkQ}m7TYSM7CayY4+E@xfT zVzc}S;M2%z2AGM!P16?!*Pgj)Cvo2-)dr{J^N*pxVrHU+30eeW!_gUQ1OHvk6Mi4) z6MTwBOt_W4H<54ylBn-UAUFT6VdX!a{sUEJoMD?I#KAD~KutlUIvI zE^7f}4nJNVHG5LC_ZEo^$o};}i<4NHypH2B;dAo$S#l(P*fxY!(=15inNgRzc z$6Tv1Iz*M7%Sg-E>dy6O5Tb<3$Sdh7qUyHbD1NzRj#wv&DB)wefS3*Yv@Zv7Mvqy5 zssIT|X#$FN_Y|$6W57uuaVq))L-wZLo_*dVXY}l(XxI3#fU2w?n3EmWaksEE9PRT| z&gah9T{+o)9~7mjy=`?^Phw-7_nAS%x^l{=ZBlA`EOqP8`Ls+qwQBJ%Q_T;H_18j2 zGWN@6GEburxMXQ&3&4Q(Oii4Z4zTM$gj%V#1_$=m;Sp8m`tucyjL#(&0@awoNk-nn z?x)V6TVB4!P5jk+ux}ZC6R~^H75+oFT^b$n(d3$Wt2Z#c#W#5iONsM1uG)Lfn@2*g6Nb^@i-6@!CA< ziST#;z?=K6?`j$R2i2aE=lUE2{JTq zogJNP+Q1pwc(m-bGD>^Ekn1RIVD~I!SY@z}v5(QwW}1bd4a!6b1aGx77mEthWMbo! z%u|)KiJ_dBhk0wKhg;V}ec$ee!-YD-CK75#1ew8!$G4$2v6?%uPWC%vbf?)W#Edoz zwKnyF*Nb=Fed5e3I|*rU%uPz?0!_T7=*YyyEq$rMWjm%oNFPMz1J_q33FY7<_EAK< zA2^Wp+%GPTzv3lXb1(Y}?JQhPJuO@SM3`8Oy;0&n**@3!=K$m{dkWxjax6Z<$8C}m*XeBt*yn(q7)s@2}j(EJsz~tIGmvPAj<>?{O0v#AzSaeKtU$+%x-49_cKdumj!PQOR}9EBA}Cpm5mzns zY)vhl>YS%ybUwtD{$X;DJB0x-Vc1rodC7@9E)G@!S(n^I!G`G(;C+prTZz;wB$HP} zC&a?lpr-^|w{4PWD)D6U{SeVB>!MvY!SrlyGQ50f{m>tr)4u!7swzYn!i?f-eRZ}DJ$`JZNKI&B%JMdPu4>00dcM(%cjY_R5?N@;jTowyn1=sUTh@w z!TPcaqN-T(fx4_IxK@GYykBOcmvc!;cWcp*kgrS)AA79y$1>)MD-OUq(jtsta1iqY zy9lZ(@VchYhM+)>&wlX_cXxO5l8D~)?TUoWFSQHIyq!}r<7h_>;BGPs3#8tY_uwxy znaK!YaS~&(PWL1njUSPN+H?j0rk_u2XH^w8DPK=5o>bhT<_1`nw8L@leX z-?a-Rmyysmnq5;3^%u5xKWv5iIZphTc0!Ly?jGaI8`ISP2)392J0=j**fGPzaPo3i zkf&?54`||+YT_;9Q@ZeZorCTE>E{Up*5Xq3)ozpEeD zQ5j1UoGCnS=1-rWb=>y?z{w&V!C;**5=Eb_ z@_Rl($pUplj=OEwF%~iV;@Ao$`-Mfmo;dH6Y9+z8NwAJpjLwc4z-3q+^Ldewd?%bf z$<|LO+robBHW-|kKmO{w^LgZp4|C7Po>aGc?5K%!({nw9{`7q-h<1hL@Y7U|=^}v>L0g0UrTDVurzX6nSKyQOb9p``-l8Gx*1{Oi z0-(?1O2>WecySpFhG8oj$73+{nuYqlwS!6&d0D4m@avMZ8KiyqvX4vM8qMFLa^RF}>$=BnHLGtx@}T_!sc8K- zQc}{$K#z8`N^-{BB$-0S0>$W$$~)^lNNGP3u}>xtva7;qu35gCWUdv9nyS2o9q2i~ zWH#W4#e+k(+2yngCF=kJk{3$#LVsl&MeR>rblcQ%{Y6@wpT;})FHgMSXELuN_2!60 zrLLc4bf{DF&R$6u@|okG#GBW+1xoT^WcUfz61wyJX)9Xcn~xfu(4vUY%_gUd>y#a< zH*{-AFmh#CkiwY6!cAhgHjk_S}d z{>IZJQUH`pA+3e$kmJhYd7_dpt{0^c@iMDhtqKGaE6+!6>VuzC8eCFRn8%S8w0GoL~rGsCjWH8k*^RLQ|8ma&;$eE(>n|cI(fr&*?Al0qAQ3 z0VY<#P*9Nc!ql^TEG_1sQ8?e&Kx$%k^DKOhy&HIf42oCarMWD9W6O%MQWFJ!3vhz2 zli<5ibkpfoHi8RME}&c`Y(nqW!~6}U=sVo^Gt71TyON zcH>gt!VQkTD@zVpJAtgM3b6K7Mmep0+7Fs3KY$dVazrC{-c3CgHS%^NOpSNQiq$r} z-MH1_L-nnx5h_0S9b)39-9X+P*`IbkLBhv&hV3B(^c~`cy~9W6G;Cs&Bilsn?v8zpUFRf1a)hvWfUh|x$L+C)U`gQ zC^3nV;}XY~+O*G#%eX<@ps{K_@uAdD1k1>f$QRAVC(K6oMGVGId^uRzywYCKcFC7? z-RLc!hOSMnB|;d%<3d`SDv$iOG^8Z&YdKrku1@V>_FIfxP~-@>1-i97V6?)e;S(n zccZW%El*W4KK@pD@iTcN6La-aS5-u*=bRt_!JR=y-p49r=2Ld>hkwAkmPPhS)SrA0 zb_4(vJzH*TqBPpVKut{hE$2Gs%jW&(GGo7NUznALk^G-$P{zUGJ=q*qsd~AjyCDeg zEMFA%p0Ix%KL+Z8C31vMa|V7~&{w$divI}nUd)Z4Q>Sch7!44pao|O#sTL?dV*=4a z(NM}uJcM!`b9bpol@(jM#=^}DEQi@+2R{?BT{Syr%1^lFyemJtduHrJ*{|gmnS{8n0hh}6fbbJaRdNR1vb0LLA1IsU1+W9|>U$5g!3;aZR!8eM|rf`HmEFHS^#)GKHNp58zQges^Rn2?mQAPp}wfy-pHoD-a4x%eBfSZ;Ybv#vh7i zwN~4|7yyt*h;gOe9Zs~o>KW)iwcE;LLdVP@pZue8U*npYSW60M##hdY>R*GZO!%cpU~;Ij`_V$X zv{;|KPs+{HhB|>)^|H(^UCOhTsLW$9E`uHTg1cY51G~`E762o&kKJa*#}(uVuIqSX zF}l;~LiAsjx~^|foBKP=)2oFY)BQ0cERfrIuDMk_LD=h4m52Pl#>>mu0RR^EYyb;7 zea(4-c#WX6OE#T(lfFvtF%P(ZJBZUW(+?Z5GAqXu6nozjJj`H`X7WVQG2X8Eg5gAS z3hm+02dP&t(=kCo+l@WfuZdMocAIQ!AM(d3+pnA#bS*lYKU2uQC2WE#LB_i-w?kuip`Bd%+%z z#%aYgc~YC0Um90W46?>^&^UjdG7BC$TQqsCfx0oC2;i_9vyf9czAVZSv7>y;KE8vA z6~J-DhsZjwrv67tCf$JB6*o5_;WEp0pUm3#H|4lYq;dpp=H>~?MvU3!@&HDmk5Ko4 zgNNKI?oKbQoRk73X;32o{rVsl+cZ|Ld{5YFvvCFh;9wthx(ezVR8c-EF0^+br$tV0 zs%Wx)O~lj7y6`h*8``v$%yvRCYm*j3LmPx?Qrk;=>_~n$y59Q!RUfo9+70 z8XWFLGmZmiwMRuGx}sxLu$n^wP6$Xro*f&X(kP);V~#))?hoY()-9Lo z>|7Go&WGcxFe_tEyT~5V+kAk$%Hs(w!rn1j8f5C;fNwUG z|56xmjW_fwH1f2nUm?GatTy1;?Fk0cTWjYX#i%8bV-yU$^;NN~g;z5#@JHH(DMSf) zy*3GZuNz#GYp$02i|Y9hF}7l7y*F((7Y&b?eh{2GDg~gcX-VvVA#4TVWsElgQrb{2 z@wNt^7i39zQ2awvyI)kf{Rx@KXm^A3uuW7)@VoJFDy*(N1c;=}Yc9=_bZ}|6*qfVY z8v9h~np2qStub-eIGXSG;E&m!H8F9L&;h3;%wkbs@J^4Yndf)BVquy<+H8q8DbS_; zQr#HT6d*~zW=EoY#%H;EO15Da9-q{#e4gi3nQ$8gc3FxF@2$I?oeJh)5xWQ2NLK3? zKBE|`QD0xLd?*xH#OPYf+Gk8}sSw;cW_^UBEzUmaGbQI=_QoIqF2g+;i_yp>u8B*O z=g;rQ0{{+kgt6J!%;>^+fCcQ1*Hupk7Fi>fS=athQVzeYOJ2Q4m7ip>IiTZQ?ai9O z5M>J%p0Y;~rRR}|r=#Wk7a7O$>}VF}{;L9Nk7gEGCBv+vy>w^shNjKQzy|U{LD)!( z-Z#B(uGB4e3R3DKFOd5 z(6kYjtXK>?*jl)=OZ2iVEqg6kGo(@Ws)P)u?t>`4Dbk=PFRG-@C-(m;Sn7zcFjJ>e zgD39E`Z@9g@{IF9PK{p|_2QH+1z|=BSi`?chi=H~6UNj*g$wF$HT&RvC`D*L11xmc zVKNq*pTo+ZCf+&!vGurvkR{}TpPZX>a;*wF&Yrc9k+$@BeNW!atFX}t1AFu2nH=I_ zKxX%Klc!=lhH5}*kYN5fZkd|%YD2M__*3hw&llS#(E71jNJxdk(GDz@?pplo$!!HqVNWN+7ta!8K7AhaWWf3Mm=t_jT?RM*J zkuUhKQ|3P^u$hDEa;j>y^~Uc|+K>pyP?Ieh9|%R9#tkdly&zI__)2$I<4Oz_jS$UJ zrq)&&EGdHsC~8IqU)vF6P$*oWXxCv+1gL2@nJZl&q`M4$E3Ytk@>jtCwCXBSL2^nK zXhw%A|CK@g$cOx9;bfA`bbD>!`vdj~(oo;}^X_w7q389m{> zycl=s@w+b@FwZ;tWzOAatbc8Qp5*KC-2`pzKUM6o6r+_ytk@ zrpXH1s>~9n_y^J~@{rM{^kj%eXHc7G(%!*`aUfuNDBUfLth~9Sz1`}_U{5^CeEznN za4y8nA3BY%Fkfry$<$QQlm+!Sr)YO-KknF%(&>mCa(CMMvWPtSg-V6oJCxut(c&*V z&p2z>Gl^e|NACx9EhMPc=tl=qBGwK(^p7(Uxe}U>miZTQTZqj=?#|=p?~nLu?dc1= z$J^X_XO&G0L-LIf^abZBEJh}@;hHmAE^JNaPo!f^aKJX1H@5W~}t00`~H3OQjOZhgR@LTbf#^E2-z(KV+UpJOWks>Kg+h_qK+ z;Go6wGIMX=245c^%qM7LfoPwJ2xr!5gg<`e~fLat+0o(hNhQEwH=A&+@xlF_2Sds%@P!XG^UUORSuvaxRQG zS7oS-%lXW>T1lln^T~F60N5hH(MBrV>HymCqlmb!VzG!ebv)9BW|xHO4X%2xU$VN} zY2C@|vzJrA;ROdTDknbmA_U!jbD$_29&dneTI-Ih(CLBLz$sgE1=LwK28Xg&IFWbo zRX3|AvVH-67KY}GxnX7B&pIK6sQbsCdReVl*dbNQ4VsdvTJX+?uV>4bHGTs)^v$Ij zI&;X7uI^}YpM-BozaBb?oh3j^3zV70tSp5KnNMek2S3|++uf}vnLBvqEabK(R)S(ho-XEoe>Yp6)mHF!|#8H-feGVLas z#hodwuMmcG@6671Rn|z(dgZ7A8(p39B!A(Twe*rj2$(03t*G<6rPBb2RiGvUalWnR z*G9gA9^!?6IUb`wz|P zn~u###H4|{x(jM`^yP_S9PAl)Zicev`mu(QJ$0wrxQ-ShOt@7I?<3~bQ(G;>#iN09 z^|}(r&Y+7X`rdr|0IV*xZQlFfe8aW^b%x#&_IS>`{n~M2QB~WtcD=PiY#J>(VZY`( zQo!`o3vD3mo=G9EcwfGJ9S|kb`SI&eUB!*Fv)=@fl`6@i2&#j1#-X49!K5O6uaw*; zQ-PDQ_cP(%-PqO_MvV1btuMT-9^TnkXt?WJv#7C(uR!e&o`4M0eq+Z@wWzqHTg^&n zxm}gaC2*CTtC1^&`7~LPf!EwFD*#>M5zQFv)Lfp)1iknpf>3E7bjj7}kyEZ)ph?Wv zu>H1$kvrYcz%jRvgtHesWVkm5E7V066xQ8AlLJCzfp^$WIb~1r7M(N1j-HAqLo*M1 ztKer(x8&|av!vRd&F{OgNHQ1$9V9{%3nWKxIcc`XDM%P|x#S*IQ&lSH=vtfvu3wp) zLEibLsDLoH8Fs~@sb~`2G-f$xIaf4J#zwrO!nW5427$7Hn_&tP%%Ta>AQURn??PtTQ*Ri z>)5wwK`_e1TveCv%gC#2?!Fo)yv_OeV{sJZ$6YF7xosa!e#sA-Go#ny$p zv(K8L{<3>2MSPIEFt6P5;$8-&^YhWxabWH5xr=AjJ^ghBS0M{JaPX<}t7Ep6xZW!WB70WYvdkBVy{I#;#PK+G zIF88LP2e6Vf&j4TmOmJKd0k zuaL%|B9T%qb1Ja5T>>k~C1WdA0WBKkuQ?)vZM>~w$z}cvPmqRG&Iz}R!prVw3K1rz z{N$dG94LayP`TTJB`yHV?Et%Co@pJ@W8IvJY^uS%R8PU8@=C0&C9gy%5MdUGVz0a68i-=3tV&p8`%5PjNkr_inn#Mfj&Y@-+9W)TlOq*(h zU#Mny=lYUPs{5%>*a2EMpXP()1Ybc`M)JY1+hm^L38B$&7+VQ2X_R%b;=i~h-?;%vTcGyC$)`2|X z#)YD@axI=X?8Z3Tar?4qd`sYZxJcJLq^~`l8VAWE;PFwd`V|t77b(&5PP~jX6_MjT z{t^p5eRRG;f75%n_1-q6ef-PG@5#uSfkphxT+!@7j0A8MZ?Z3Lc&M;24^UU>YlXha z-l7F8!Qb-?9F)r{ENIGmL^SGIcVwG-V~D$TvMDxGF~tV?WjHi`T&_U5QXQ!j8)gs0 zS6jb#yf5eG7T7wZ@2xYHMqRD~p0D9fOr(sj#5B1>27b>UGvY-5rk*@%fnSm;l_N`rQs9)XN z3ynf2kY+g<-SqQwgT?!f+lZ2~&?%wvO36BIK?DwarWCinvD0xMBp_>_mn_;5@@}d# zoXD3#q-|iYA?3z~Fe<&awRlNB8SaL0w02fSt7!*qsbr8mnmfFI_SD3C((Hh*|2cV+ znmjp)v6pkm&M+rvQqP&?Prm^yDbYjndW!mAVr&-Go4Tn6*U^4LeXpVVL(`*;6Nhp< zCRbmS7XyGmx5J0^_Mrna?KXkJTb3uP)uvkSYuDSPTSNIwcs%E3P;r-RmYVeBWY$}x zOAyX__1VJiZv7@s_nNVoTI?GBq(Y2bQDn&{5_0Wh`oab4_!?){D^i7Xtfa1C8E8W4M3}ENNdz$%Y!F3JiK(JM`piN}W4uzM?Y71)JbUO+sBO{jUrKGVO z_=Mrywq9J^r1|EK%8UN0=0xD@`LLqu%%Yo@jhbo6S%$QXBzsubR_8Y>+KwKp0F#_v zT##|e=MDVh$HGugSlUW$%y{N+07xG1xkTaPq^nxku%-OAZWzp9?g$PpQen|IM~y-9 zsR8AU!c<>ZfiM-wwjLC(->I{6_?;LeAgZkM>*t)gm%O{DOi6V8S6sIPPucu&Mv7r% zgZOrt7J1L0QuZ;(&u_^KkLCPb7)4-|o%t`bt)?GpmiC3bqd$_-)%b$28Z*yQPly)S z#8f7g3!Kj7a?8J~C~Lb*r4b%2feyn0Ytp#?3{JGiahA~tk5j%YdIzw zcAzVRV1jDH7TmmV7|XgzHZ$hSyX2M85;=YHby%lhk2HwX2h`DAmxLrvhoWT9a*rTv zw7zIeEgrsbVr4aA?gbIExsdS*QS4l}J&frDq790udsH&s*nxhHmaWMJ!gWYpq}S5S zfW~!ERrI+y%|lIa`tDDJ%KA@ARURstUSp%D^+(zr?`XSO#(KENwNC5GOjd88?A*EV z*{U=@Lc$tUThnT7mMcxrVgNllj>Q%xH8 zy^%S+)tE9UHyJxXGF!l|$J|N*@eYc!uJuNSLiE@>mpVsN6;j$WbFN}D z-_Louh)Y@b^ISLA7y{M1F{e|-v9%bM`DTrFDVGn?^K+(9H|nyDcj$w+lujuDEHvZ8 za$&d7uswo^c!_!>AbpKhP&xo?ky?causzG!tF*qloBXUi$N0`ZXlrH&y@vdP>v^lmpr-%9(k&6;fNrD172jmjFMeR?R0rZn@e8ZH|ASwpSDzlyZr zmyy;H#16UDisGAPQv%U=HP|8o_a3eV_VnC7vFqE=tl&nOEx{4F8%tjBYe<8yvGK{X zNRH7;}>OiFIdo^a*d*+ zfYFJ5_&olqqY!|@i&xcNB1>K#K_o9+c&s{+r#gT$Dk`18Mo?8Irf*49{$bUR6wHhc z_xvuhBZ3CM0nEl`5X}@1y``j2-$B5|nAV8QPoZESqu5t+}hQ7d}O}E6~}mMU=&Cb?S>a zrSmrsPEfX?vE;?Yj1*ZT{2m%%kfK=fAfbw51CP7pnbnIOfo<{}5n^ zcLU9DTWB)`NVRBt%J`4(hi;)ynbt=KT5ODm-HB-9`v`LqO#DAkl_`3Tb> zM_wnU{1qE-ETt~jfw(fgKjOZRKD~n#S-VT48 z|7jB~wH?(kxODxJX~WjYY&xHY81B`RS0qYXgH89BCLW71TEYYY`B-)Od0o}Hx5gE> z;2}`xP|myHJ#6WAEO9m_;T^YtgL^Aifo%x)tbj;jwCCgNzVngwCHzDqy3}%!-yS1Y8KL~t4H4xQ0*Hy z7RCY{8)IWh>i{fOJa?5K(qz32EwefeUy?eb>h*Xa(6zQ1OzkL&r#-APzPB=2l|){c z9H-qWks<=uBDcDN<_d^sw5P&Olr6=LjCIRv()?G-vSOh3(J{$%va`+gR`xGD*b|Yy zO~2{|hV3mo-@dHhEBAPAb;(ySBS>JjW2Oi(N!ScCx@^(68u4Kv6Xez;e0?>L+mh2%kZb}EevQTD{PKe)TMq@IOSmRv1&+R(!cz@g8%vo1p-?~>g`96 zU8Wv7&Ntf1RV!UezAxpk<(-e0uA`%MwB+5E+j!~4Zhyzn&0fr?tA9ZqKBit}6tyVyVcpw(Ag$ue zdPodDNON*K{M)69g?m7Cv5~wA#N^~=m}4`O%?;j`-dSQ}L0=vyDzeuGP9-S1lg1j6 z+BP{NbC7FsWnXPxbwka@mUJ_ZXYMbMn@(xKhYC6H@&^us^6a*LH~~e-FiPuE`ed!@ z72$ne%iy4w+Tr_JrVvhjuZOom`|fD{Sb2@&?W~xenX5xa{fUv`!IA#!s~Typ5YnSJUMA|U?vl6iPJ zM$ysS=|~zug!+40M|WQfK;*cN;^#YD3FV6jQmu}hpDL**rgJ5L3I*k1tJ%(fxn%S1 z^7DzR=5vFn%gs5=NtP?{z5P8;^qHGW#cb&5r_>I&95L4X;?ePSh<Rx@=3XeI69XfIu0ATuMJ9{H_zkVS8km{d& zR{EKCh@kIgu$FF=T&>|@!#`_IYj{_dSv{(?Fs9_ga#9diIG?PamqV%TogLV4E4NC( zw_edgRpw+V7hXcF9F(mz*T`7b#uH*@hQY}nJNs;l8oTt%={t9Y-n{m%eJS1o zUxw#wc8@tV`=!@ts5@^69u@2IJ?G7Sge(WUmz*0dQVF(@zUl=U$@`0`K6<2LC34^M z179`^ZExJm<$1cZgRZliXR~sccU)AKJDeaF2J_IMJ|I-9R29nyfSsTOnOy*3EMpr^XyPYJ^zJ#>h{YoI@Jr~bxO`jhS+&I$qR!4rQeO`5{;Qg9 za%g5bbIH3SoQS%k-5_v`?o~cYR01u??P|r>iEyPVo4Eo=^Nf zSM<_Ujq?;+JK=LwC4G{G7=V_A{WRL?9`R%JL2Qq9HV!S&N}LOFFQM>h$U1pzr(!xe zZ8#b-4nC1qXNxba4l5qc1$}zNGn7jNQsKWd=p~%C<;(tZ?UvNRhUAXg{s`+h$ zI6{qkyR@2`tdq#AdBWIo(;V?xj>h1=2Q3zA^r-BkD|7kdjs1=-c1D)Q1fB z))c`<6=^y8z7|8cb@EO}Wyg^t$uHLr%7R&GXUPmD=`FcHw|GSrFlC$TD@++yn|kGD zPKz(_p1)!vF!!Cu=f9~D?iLsCbqnL%C!cL=?JfLr!^ zzpe*HE>QC5>gf>;?7n1daE{Y^mO;*!NNq!X`{G|iJ2TY(;71nj;UpnkpcSLIY`plU zQmliP4Qg#|W#mp}Mn(3xn|ADlm%EcUu2f}ej*hM`ynH+F zs46kGq}fzEmkj_ggOzLA|4fGY2XFb1qkpU!H7L=V^TEr^yjhYF4(Qy+X5a{YUPC|o zhNw2QD9v$izouQvV`mEGz+4?;uh-sN2qLdA$5UcNmu;75bT>2mX0XuCmE3uvqNe?5 zcTT3gIw^yd%K|^t;C-#)0$W*+t#PlyXViJm$j`+aR2AB!ABv4qr+%|irTuD=xWw~O z*4ZA^;z_3mhqV0>)HwwF7q!9|`udscnh-^pLtJc-EBXi+Io(4A_*`Xg(|>FR7Z)(gW%1{@&#dPg!eIRUHmf@tGWviZBTef_2%}$6yUYw-mmock|+PJ*f(OABGNa6oL z)d9Q~ZEg#apO)|LOA$QeXi=iCfmp*mO2d;^Yc*uQS$h|eHQF{1$^T9HX9475M|yTh zl>XxP&m2Y$=TMh7R2hZoS#L=gmyR!An2mlo-JE*C3F;60v>#Y2b)Raw|4=A2V2yCY zq10P-P3*-wjX+f`YtH}GpajtS>zCiS1R|G>rN|W24K#Lt8GB<}rpD|G)xp73ckzH} zs;%ALt&L;F`h87Bw#M~Zibf=wgp0Zd7`a@8ZW;R6b)2^5U}r7f^U#g-)z?n53gorF zO|w3FJ%t(@yL&Rqs-HR`XnkGP37nv&cIIo^Ks=tw>stQ5qZbf3+#aVNsVbS-8^63u|H`(`H>IFFq5BG_t?4d@?wtf~gprWbbZ+EM5eJYX87 z$R+&gKw*9+qe|79)wS^O{Z|v9TeP6bI#qcNZe;(Y>Kungt5kB1`bHU7)5c8=u%F z?fa_M?0t7OrDitbI(4KEzxQ7^LJn{LFZBj-xry^W7l7G-wkv{Gp1`erJkX6D*Hh^t zYLf3x0$vH(hf;KOVy|7zu+aMI*;C1YAW_nSgxvSO z`|*&({~6^aw)Ib!VP(T&qZL+qi_W9StB_NX6=LYhIO9BAa z5X&(I{?{^gDdvLejc=CB@ z6HAhpci|2KRq#0u&T->9hWK= z&suW4^zSW;##0Zy@`kscqasPmLWvfD{AWAuN06dLvCUICV*ix4zao5xXS$UxwrO4I zt#_Z!?a%feXk6?FJ8{zN7|n%>E(=$ab=D30MCO{h0?|Egu6#~wRoI{{m47FN4;e zQD4smIhW^749<-9Z_$#=T4q}Zsh>L4cVQ8&c7i}1c2=j(`9ASAvFUN|yHaSQKNfsH zG*FK8dY3@%S}M1$3+T}5HqeXKFaHg|({n1gy?1R-9~O8a#+W%~$FydS*)cn2X6BfgnVDmVnISPV zGcz;Bn1A!=-aUSGcUAY-cca=-Ppe1Wqt&!p8mXm}p{az}aHLthdiZ_0u(h$6$a@!= zhIovD5LNB`rTR|l7ZbbM0y6NpPYyGC`7JL&>yIKj500Pnwk78@b`{z|Ls@2>bnT0f`R>k{=L4743!i6uTRox`!2Iq$ke-T-vBzq z9mikRlmd{eE?G9OIhs?Ontyp^f6nPQF*ti8wZvuY48D5Zeu=4MbB>&}sO?Hdc5-Tu z2W!R9hc=1yyx?d)67MLMt%>)|nLFd@tVt89_B#btL)CGh?+ZnQ;Nr3UgP+v5?Mp99 zCCId&=h0-_1^UYA)bhcOGaq%g$0X3zEho&!0?MhBJwbj+g1uigOVxV*EXWVz71}H_ zefzzxxXHKahAktKkHeqv(~*^D_L|!;+A>4dhm=p^ zF^v{qwNG}zTMuNtZCyp4vy`zTF_w!z7pI-0?nVBN>=4r6r_>(w zn#;FR7sHI4Z~6A{t)G#I?QXbRYFPdv+7HeB7er(0xIL#7#ku#%ieJ>eE+t(W0@Fe3 zBL%mNLKJ?X{ZoLWzOnIQ*%K2qk;f(VhGc7d+PQRQPx}G}cG|he8nhf|+_|S9E_p^5 z+`5G|FE}}YLz?jDjZ`)g>dqM6=5x1c#noz8#|W<3-Wz1Xjo}aNXBUi}ljkE1jH?Sd zZ3J=bNE4y^eztX)_NJP+$2895d|UWmcJcY9P=;t@CQ|PiI1e;_5zhJk;$jcfEC3SI zs9ol(|B=&DNz2`H`>t%T29WqR#z$ z<^7BB{}zB@`2I2AA0E%RQF;Fn>4j8ZiRV9}{7!_s*DNjbkErpj=UAp`{t@YSBCrmY zaoWj$L=KbcAZZ`+os^!9f%ON6*U)620muo!%CTfn?tG^r%NgJf zK7sceJ0r=!>MgF0$UQpOf_}V$`3z`({u=YAuycU=KdZ3ca{!mJJ9zQW$f>Mwwf>ap?-Cjg ze)<0RyR=^;e25S~|N8nbVK6VUT+hFx_%RV2L6ieYH}MkwAJG0t!rsRUGIam`c&?+c z2UH)uj1VPAPBR?IP;hIwEQtM({K3v9z2X30ow+CO4d~WZ#v>6%?6EN{Kq7?Y{ zPPZGlcx&4Z%-rH4J{aM;mX3Q9elf`&fp9gPvkWx593eSJ{>ahCz(S)OjUY{P)$jdQ zDyIAbmQ#wUe49eqM-J)p@7eyFGD7%|>F+;g1jfJm`y7A7K%~a#@cvoiukc{dq~E)J z|Md9h;tu}u3FPnd#!SXR{d+3V)FlScYJ`76_yf(qDT0`xHzRtJxZB;rJM0xv4FZXa z0GZAs5&+1D25z2I2V?%{zhaAIBN_Bp=|87IV#aYu$8jKCOu+1rr#lAh5(CaxSaCdYA6K{1#xOI=E`;lx9Mi6cyvKTmn(U__DD!MJ~Z~=>>+bk>$ zG-m1-yiDA>r~wQ~%g#OJKQs9`e$$WhGx$d_JdWp2= zcl7Z+Aep^HCOKpW+e^aTVIVUwto&td{7>A#hQ%rfe}exg`o7u0j|Vt{cp53_J@S&@ zLRMJk-uS`|a;b4K!sRp1#O1Td9wB%(%v5+tau%UbvFsdR-R`_oZjalY`P|4BJ5uJ5 zp2`NV(}#G7n=!z6SfN5rD#vr59myxN^SAZ#@2bgv?2z#N@8kRPSMIk@^Y5ON@VB@B z`SsuEu>aWG0t}kW;Pap7^V^ip(ZAGN=`16f_6#u*OCm%@0Pulg_kd9?} z6F$LI_$d02cn`52p?4lp1=Je63@2{Bkajx@XUcsfc__>R&8WNFsnv6c)H2fIo8*%p ze>1Eb8#Bof!R+IEB~5eF_eT=_jrROaLF}ZnUxMb-_!4AhV7m5ryY`^mjoli<@U_d_ z%WoqaT}X#=Gwns-&Svdq*nP0FPfT~d3aIB3NFCj0mx#7W_nOvo&fgBuZdk{TrRR_w z;r#=N{#_9fUPK52K=U%yK^{5lL9WJR>Y?C00aVK1umEt-8o^A67dm-?e{6jGiz@p+ zRkdC)Y5hS7{0U0O=r2u||NKw=tg!whuV178#yb0zQ~2)&NRfcduW$ZK_+OQ9%ywvm z-4V=APqo|J)lP4QoKwM4M!L@>A=pLFXa=~ROTi2Qk-PP&A?!_$761fV@vu{U2s8o! z1@AV%wPhJJ6E!myKddj5s1plxz~O8wrRXE5uz78n6}Z#(37BC@!0 zCPC&ME-+zWN>gqbn^D%DrPmjs`rhw@-B^aO0@gjDJdc{{T_Sx zhVLWI8a;=Ud^L6~l}!p7XE+m+oG&^z{V&q|4E(FVFVY52>*pJPi9y>XfmV7Jk$C=s z`33lwulXr2hY5OEhSU@1^y(W$+WhzpV9iMlK?`$iXx=c;xJhHW@a5-|d=9 z+5@q|1=6h;-XtE19q>tBRqS7r03PUN+Brg!V zxXB?I@#Yfg#XMJQs1w`B{QB;ha|@4%l*)y9o1!M$$?Z(e#Ccc8 zZ9yaahgpKiP?i4?E!d#UFLa<@!hg#F*01nOK1GYafd4fB_dllP!lixwujTdg-Tza9 zGVyS;M>KQOBZqNsfCg8cprJ;xXu#y_f9CsNjM>FK-Nw!hS8&NkGBPtVuo5HP8_s$t z57Mo#0+QXp?qIJzqj7rv7n%HYJ49?D6tX|i>Mmz9Vm6{j+U{l~gF^~poKrdm=-Y6< zb3o?#-^mNc+bw9>24Cz-q&tIO<{TO1Tz!;tB#L`|XNbVb^}qG80B1+YB&5HU(t$_b_{PkyM{}=yX3H)CP{6Aa*JfI!#g`NYz z!5|>OA)uh4ARr(h0WhEq?*WidD5x)>Up{}u0E0%v$b?SF%*&@mOwTGH!@@5sC}hPZ zEQditDlg)hS*~Mk^KBmR3=9mkpAq02;9fLIeaRmkE#+14ekjmFDFDaS716JFaZ%Mi zAMR<7wv;DQ%13_X^UR4J&$-@iv|4|RLlW2X@&Tc7ZWUyC6(tGYD1*DW=#!EP)|i$` zZH^S2jG*QA57q4gu85KNqm6dU4pXrQW@Pvu;7c6DXDAI49OSRch$y%GX%uyO*i1*X zqj;||sN9#FESBd=KdU)SdTcgr&uQCCO*jph74R#oEE`xg&;<>VjM~wO>YG)mVBM*e zcaOwKrCm!u)wwHOqvy=?=x`T*L10VlK!4v4c`X57Ah|SRdbj{Qb>%2;ZStWohgfO`zZT#S^}&&*|8Q?Qej3 zkA$YDo+Z%l*7+L%nU?RXQJbyDBG16mH-PT(_tQi3H$Xsq<^!{4L)$UI*6}w$#f=5% z^z`1NV?gEu_Uj*cdd%L}dCY>C@T_eW@*rXyTiyrUy0#sHBsug*$T&TpB=8TpVSDU& zXj!=i9<5yS42*nrHbL$Xx=(ppdwPE|jojq82Mfx;hPN)d^vTzwA;AVjH z%taparnY{UhR#}syIYgMkUDQ*+qw^uiB-PntiD8br6r$#_};nt8-Uv0(9#{&|70#M z6$X)I&fr;I@(e?GOIl`4)8Ix4Ui1O!Wa8nwt(vr{nn{evAajq?HZ_okfh}s3iD{)Y zPM_q;a>4X*E2Q#SmA2}GN%qipkMXJq`4ELCM~q8Q#?Fw6r(ZrH-&z_FOvEV3=~Y1Y zU-yu6Nrk=svQ^Y!N&%_^kNnI2JkyiH0A2#V*7gdu8a%`o;p3P z=e?fXll6qtS}Z$*y}$SN<+A)LL$nU}|)VvklHE%rX3dynLa;9`|5euH^AlG)k_tKuy`{=$tz8H!z!6s{5+|W z4rT76Qr{tNzv@pnE{EIQbg!*OoG0V)UO>%Vn(-{>e0JyCL8sZTdhS-6tlj_c`h#Dx2rZ2!t6Z6BzEYlTIlUFrrtWwL?tn z9am(o1uo6XnpYnj*`Re6UIYvqRJKq~$$V~coOEu6?$FnDwe>ixyxzZ=gDC@j#gTj= zyrOT`)yroNr^biN@C~rpS}>@hV~qiQk!`~|TUJoh*gSGIjouGm&|%MVh~7G6Mq_ZT zA75G7uGckEl~QlcQTc*R<^2~n^$}Z)clLfm)Aob`#jdYX{aulb<{li>Ug*R-4L-3F z7|74^R5snKN!%|Ox1C$Rvy=g3e{^>Uo-NRDD1}mWb<$txJrkh-mn<%;sh~Cj8h!(8 zXDdY&Jn!kSR%b)|ztbO_JsY{%G>!@n)QD8XEi;Z8}cR@Xd1j-U-o~eKP-a+(y*2M&+z5e@`#=Xnc^px0eHl*a*nySYEE74`2A)ehO8^k z`_=gZguKIAnUyO=*7i%~RH+X=jD~7F z4{^+U=9V-UI*)r%mHirRlFI`Vcxo7qM<&hZV%NjzjCB`R619Qnbx!C1pkaHA2-@pvH*(rxig$)>`$zPkv8x!xrF zx#4;_M6W;ghT7rwsRzDffsIT9i+dUA9PLvy9$E+sDVist#3&o}d{+-_SOBu-ou z<}TtSFREa$Le2MwrwRNVS@!8XNd^zr9=(PsoWUJdllp~a*`)o;7+vSjjWO_nj^}LHRz;d|LnYMn+ii_#v0ENMYhowQM4&w($Pvm zF1NUWhk-g)gD+}fMlurbv!zSOh+UVyedZo9plb~FStV1he+|ij_yOSpvGAALQH4+= z$E>R-JfpY@4=J9n>n0oD0BMEX9{$uW$Wj7#SgPqZ6#d;fQ4vuH6!oQ7*ooaY00x7? zakHngNG*B{*H95K-);I1$U5cw%kq}`Is=`9EEoav1~Q2D7rC)}HNB?_hPR4%T+1TM zAHJSxwhC_%)l1S4;;AZs11z?Z>{6=eP0p}CBAgUN;bd5!65B)x9(&Z z&!aFtf7|x%BTwFI-<88cT`hqZ5Mx21e3aT+pA!PBV$@-#y(2v3h2a@8Jp~8&U)_n} z?~vt4W*zvabH9TU!JmQ77-q{NI871(D}ye~rov?qIftbY>ec7#EO7f$XX4UIq*W7N zu2eg1?7Fy3v!TW*G4MXYw=YQ~Pi}`-S&%ggTw$>l5ENq^gh^dAdsR~?Jm}{8TAk;i zR*>64Na^b)Q;(~8)If8$LQ`#TOO4-D_6DQ85WLE}u+;G-ApeDmsa*}IU-w>%ThVAF zC+#d}GF-OX53PIm=`vs=J2`j_$_w{hJ4H_xl%Q9jlK$)#FTW&>P8dCj5gNFRRbwz6 zq6J$0yOv2M>_de7YUoJFv63udE?S0aOOw3%7k zV%f$R1M+Rh5Q^!t1cUu-MKWkQ*iCN-;bb&Ce8X2gi%Qj^`uMOCJquCUAXEkESaK); zkWY%Mlm)jH!ky=kS^Hkls z+<5jr!oYP&1m2|e63^ZlBl2KUsj|HW<{lKCM(n62?AMTwMQ7a=OJ3BxPHP%1dMYYx zRpBDJB`yS(6670y@cG(qr$p}N@liZvlN15>I6x5!Nqm~~0E^aSdHVpumYH#7bF1%} z)?4T|%4!&K*u2jo+;X zYneA|;ARWkUQw)2Q+cH(9Hn=cOcr1fCXRb&OpCg5f-CqyGH@Wq8V&(odCT-lAjf?u z=QAP{xFq_iA(UJ0xM%}!rf9yokt_$CoW!k>8`_sFbF9R-`u;`*&ZWns$!IF5>=51I zpI#L}dS&Y5h|6Y9`kZAvcQ+bOLrvOKrW$jZ&WjtR8~PmcK08vL=UyZ_0@2MJ81*oK zrUW_MDgI8uj4C*iDF4esmqxP!VVK(&ULhKa+(_Du9PIMZ(;juo{~Y+4IcDHwy_pW? z1vGM5zMq(Bv+>iK-!1g0VN8dbOaVEj_hI~XQ4{;$mBym84p^GAGR|**DJf{I^1g;Z z>_M<^kL$p5I8(AjqcQOjVkkyLw#0K`Lf&#lhBEg^DnvsMqbSfB7Q4?qk~8u^gm_o$ zBUGkPdeBiyoy9_&X#>aj(w&{S2n%{i$BqU(AvpZA*PaF&BHk#cNm(AQ7gYp9e>E9| z24s*NM*v~>zHINNxFc`yTPZ(J`O6_{a-66>JR1>F*{L|zWaYGC6As@3>-^5*LHAld zR`oe;nzM2!LUTq;Z`c~fV;Vud$<=C8iYX}tCozn3Ug_LJ+ zHM2!B6WBh+KFiD5ggvDyJ!psN?|=7!UIjXfRK(BTsoy!GrHEyhIol3$oT%UoU+k@q zImM_fbD(q@wz-N_RQ_0z!MKk}evahO>If>LhK7bzuTC61mR@0BDbx$z2fJ4ICPlKu zr&tXL#PxN$E%R9wK8;+oIX(d#lS-!WVQh4((Q028hsYUYLTZw zdo+aV;o=EgWL6uI3D3+0$u|JHbR&hah;+R&9H=uDxZ?5+Ko~sngw*IHa3w?_zfO^B zWXGw4MlDPfN$p{hc~@=vl$`Lx>mzh7u|{!A1#qS)njC}iGM25Q6)n*-M^P3cER9gN zRF{(p+Sjw$^2PS2di%O)EXP2wFk8=E?9L#X6{Ru8;tu<0IVWiB3yEaWXm07j%eP@g zN6Yp2_4oxEF+z$1t!(0}E(%Z2g^&6Oxhe#arq;u2t9AQCHQ&hQ%YRG~<-x;it(K|= zE6uM>o;NlA9*xy1cIV{-Rb|M{Uq3_|p(0wF?qC$-l}icu+G4jhJtN%xu!^mi9S0fG zvgy8RJ}R4~dZc=x%O5nJ2qAViDVCWnq=9BSOB7E*0oe_*Zr6D!# zlPZk!F7A^}M3LQLct1m}m|h zIE>7*r)Uo9NZF_xg-VE*o-lKjIWe|g!X}$sYDES*pB17j*}+H+L|7KN#fa&ah~m;N z$qaLdpS>&6xA}}kV($Q^F=!!85=UuWC#n*X=EyC22+onT7`!~0n~2}M>kcr6U5okh zL00DRUH- zS@5|X+Z+YMqHJR2H^AehL){UM=YrxAv{$#>E?p6ce%{x&bUCWQ=p^XXO>8lm?UK#8 zicKU8X=0_+TEI-OUAydW08CkCxtd9ffG5cEKH7PP_>U5%z!kpI+7`j5O z540cmZk~~OyAKVBi1Vs^E|N{^gTi$Aw6^RgeI+UIbmx(Oxm=+@pcv*cA@^_~C*HdW z8I^>a?pQ>szmO|eRS!9QsjrP%LvySQ7i}OyNK&Hfz;z-gI#4I7XQ+eBIq6$%B<*V^ zhfbWf`vH#%WWjhAe)u@ycC_(&!i3odTL4k+Ig+2rs;sL;)`$NkY3fj z3%~l7Ux3Dyu*JwXK<8zFhICASD*@BG36Jo7fE-d9rK@>h^7#O9LbpI_4<^Em>?(cX z4W-BAjf|s}&V|i3gM6R)i|y8#w|(w$n5p7RE1?kzT-@{8m172GLW3G$PYL!K1W!fj z#kfOL(;mcHmMbjR>7NH*>sNH*G&i$L<@Ax;>w6C&G&2SPcS^=(vyX&=u1@Do#Yc-W zSL|_gO$AP3K6w}EW`;9iEk8tvQA3@nB}6g&qZ(9m8&m&eZe3Yn zqUUvbb$uF&+5w9|EOgnpBYrr;NQ1^=N;W z7a|Ou&OIzi<0AY6BVhGGEAG$Mm~d@%-+d5`GizpRrHjNsW4>L}rOJOZtweT56XzRWcdHhN z_)t3s&($(@6zAu67uwJyK^Y*Kg5A{h-oYur%e-<%B?SJU!Z@mXWvL}BpXlm{@$CJ8 zVQR{A>uO@VnmUouY5!`LtZaWz7Dw!6O}t8AJFXEF=hxyWakNUZYGy}lj*n?{&(_Sx zglMSFOE6^BO^Bq~H_nE2xG#(%-=(#g8bY;&+oGJL2zr+s-K)K!eIUO>l_Ojb^xD%~ z$hI8pZydqmY0v3uVZKkF1-iYn?+0S=`0pFN-jb@ij?gzn^*FFDE8CB--#V(OKdzAa z#LY>)efaPgjD0QtNUkA~?W)@S@{ENb$GuNql*pMRec(lgr})iR*Rq7bm351%askf> za+=qZGf}W2f|eLbSu_N9A@&-!%>%)LGsUKPXG*gjZk8?(k97NuJdg6+%F+kwL;BwU zWfd$l`u?y~3rFI7&jX->`{uWgPb{C-w8-Ly867`OiND zmk7w@J>jagu0P@JDtrSdO!Ax*+*wKUg4 z&LIbNw~9Sdzw(TQXJhveqP?E51p8`N*qWM-e5w1B9^;ujMLO6cNfCwWzwj=qWN($Ls%O2$y(y86SOGpYVFQF~Wa{99^!)Bd%@p`SrApH#>ZkB~B}3n1D{k6x6_u)!^!?W_WbfD( zqnYDb!&bYu8|^pWYHZ>OWJt{)y!OJFB`L2B{!mO$TWVKEc8})x;WcAC7AG(VOWi^V zb#9SMj7up^-u$`O>8R!xljV!u2mNKbcBfA+mN<^u9tp0g?^%x*J~ArB*yFQ4RysIy znZ?@}oEqT96<^Vjp%~Fu=<_AJ)h$w&jE{+LSdJ1ac0Z{T4`$#U?5TQf>y5T%Wn2Qr zZ@uInR^20;@rmy4;!K=K8cxevTL(M5JtF&R!p$ zXfNx*i!7~|%?c`SVn^*JjgGx~DRx2DeR$fa`82t(4n`DZ8l;K1Xo@GoE~Za!DVA=3 zY`UzF=np*rLs@L>u*rHrZ&n~@OoTfuYOcK^VKH$rHmGwTn_pG_3X{J#MieUvQp+z& z0zhJq#HS>Wle{S&HKoa~4+R$iBi~p5Hk+MI!G;;JdOt=M3Wpz4oV7tNKtN4ok@f}- zgP*zgh?H9q95e<6-qqmjrLsAFiX7iD&H*CtpKdr3=F}_O4mvwRG^Y zbYgpMVl6k|=jmk0w<9Z_Nfef`G1KvALTYp;2&vL4p%*y-qDhQ0-+d5f0hwTC@^Yf5 z>Y1;MpKXWqlzsz@W&O}hMu5I9*x0O6|F;jOax=O2KUKIcvN^o zVpxtORxKp&^KPQHuv7>p1+S=>*ojEA+f-0GEd|kyJcCr!QFYxV%`6bBE9$LG1P!7B z!!U_`I~5xGQAQ0KfeWuq zCWH-Cz~cm}7?e-MHDfU(+rxV?Fyj~{736ChG zPi0v439&S_!rgvPHM`2%ul@}@wYDR)A?bY3C-btS3*j4rFgE1L zo3x`;EOjp7@p*i`nlQRGQrRKccTY|m{9mGZ?}J#7?;rH*D7mWm_2cJonoSdB(UuoX z)v{E_L;Q*~WuPdgy3k4~>&(pKW11_BcH4SFde{SRhO+rIwLT87)KqydS0zTc&6A*A z!~N7Y(Fxa1z)8pFmROEj4%W3xVDrfGfVzmn5B-nMz&+I{7J-6b4|@7+6YU29zC;({ zqwdWMZs9}OK2&b;!!q8W#FJ?yTO4mOXrfmRi~xz&{5m%1>axw?q(o6rV$MO!z9O+f zWEB>GbU|Jy#Y>X9cB@FmHx!%+Gnb{|_Ad}=JXutyz=l6-xiB?SYU=5r0;k|_;IO*LMH6;@eM<~c0Z zP}4_w@-NCMZWkr_gpt_P?i;E1$quUn2FH$Hd1u{{7!5EsJfUzZSf}-&h-Ht8`XLgB zv2tcfGYGyAZv}ja&7~-nz$O-0g#s(^)m4&}55uI#K8`|=de5Mmyl5gF&Z0j#y`iMY zns9!S4BBL%9hGK6&W-5K<}0!{qOpN}sg8$2gpvCj>4Q${ARZN3fimBPY{XK+3v5{q zC!QqmDAr&gQ&XU(|MV6eK2b(r{R49~j)^SEG}|uQw*GB1Pklxd3&Fu{6bjNY@C-*e z0%em6`2r7Xih2Fr?W8cVJ8PFHXiy6(I2YxZb7KRiwqIx69fIg^nw{+pV0fy3QSBgY zSL!lP1BVX)j3!FU$`(|dGz$(cKn;EuVl~c(f6>5i-I}6P^j6p6GWz8OPG&wsU~Ci# z9AEY+16e{?mU$(O0UMaz6FjpvYwOah{EZDs-Hm0|blM)xwbRk{qBl2qeLWS|-vE$! z#$PWr#?DS~#196&*+lC2l|p25Lom%%9IRV2z7#oFe(fjeMR9e^3+jN2W;KQ_Ud{;~ zptwd+vnMT`+E-OiTtubz8$G}jCUX-$xAVi^&eEbGLWUY=u`x;9L^uu&%l{b_X z3Mvhd&qCYG4si44_^NKD2n#9?MN&6TAMo5G8=g0@C)=VSU9 zJ@VSLPp^8H#Nv88By8<6b<&@XEJ!qZ%yK2S_m~7XN2q}TKJb|!4CEBDE9OIYeO9qV*sNM&p z8N-V@)($tL>Y!;*gr=KsXWzU^Ff|*IU+R3Vvu9TNq}YG1R&Or~hQvl;m03~7&F%CJ zuo{N!+s3xU%oFWKMuLV953;Z#_9Xc8@BFjA0o-|dFPEcOc#+Bd`YvEsk+QQPbM|UR z52RMjk)Maw7Ha88`LnLQgMZ=wA38g?IPTU>?}5aQW%4WE86OpBC^8l~n8~QK*nf1w zr#r!M(UhG7C0a=Jj@zKc)A_cnAZY=bG3Anc--&!HC7DT`Q$AkD$P)}U1r zjpGeUhxxBr>`D%ep3A$sO1L@;pC7v1DA`$@P%JMa3pKX@TbA}%hPZOff+>dhKjC=3%LW&?_;e}U|MEf4y1$nHC=*@$3zI3z@1U5IiH8Q0c@n5-zrVb|5 z8mHC=f;nC%&+~L4<@r6V$GmoT%A=t*Lmi$J^k#oC#1V3rP*5ajuvNYL>1~V0gJ5u@ z-r?{Swvy`e>)B2$>4QTS`eFt_|Mu2ebLbHc{ zNPZqjPq3GIMaM+dUfW5~x)f5vP$?W)k*-y2C`|bceX=^DpDgJUB+wOxuZZb9YiErx zMY4NU2>6&Ldo=t(W0OYFv@=3KX@6nem;QAvk~>xHn(?_8RS{iyQFWB>>iPFO24rzl zNW`eq_HwmR>4TLF0ZFM0V0yanEU@XhadEvUy@TP>oD;qM!Gdy4^^k*iQA%}Z%59di zD?8vy&9-(nNy=ZCRP=S*LYq;0d*`2l24N6#n~f%0vy;h;C1l&Gd+e_+>)gd+tA|+p z(qD5^DcgS_dU88f?FUV|^6?(_c;v4sD~}amMc-}=;ncMch@bD^DUHRX#wod}e?Hq2 z(Dx0Xp-ug<4ac)&n-RB8ZGJ&Rt1Pd)=?y{ZTV5r((D%C>t&rJ7|^{$to&t!Ih8>?|=B3T7;tRmmSKjwBZ-; z-%6^mS5Kl9BbR9oQ1&i;nIDSG@Y3j`_@OETr3nhHReriYny`=21qmTps0%HT%YN}0 z_BlT9o}!C29uLFop_^wqZcs0Z$l~DBURnzp`KHL_qHz#BgXt8bZ3v>T4Xds^w4r)) zvoDrlw1DLZtfmspNkXvcqY}P1wm=C_XZsp>&W>xprzlTp(y>O=NjeLIf;Ez_TB-cz z#8T)eFC9VcJ^VwsCJMTl0HgG{bZmgcVHx%eEu_rgBQ5vxWdAljYeTV7bip3%CvD2u zKCKtTzE$1a{iK6T?Pd(D*G__65*Xq`aEV0iYdY;}k_e1XvToi;BHjgABYx?{5GC+AY2eN7gW|+pn*BJM>lDb67%- zecIi=P>teM8}QnJZBdyjA1Dt&h2EJ-%b?(l1}5~yzP^rEd548`YrGwG;8xu&j4d1E zCV_QUO+$Ll+A$(~`BDjy*`+)C`#^~>tr#=$IGO76$*5x;W8(R6YX3AAAv9c9b?m;k zG&B};VPRG46)k;TddD{PbNMe;whoWY)|1V;?r$!X^$-|RxUO=ejyWbp(fY6nL#bik zxkcLu#?jW~b)3Y{Ph+Cg8%Q{3GrWzjwf0jUBQ|dG;piSGC*m`N8jB{Sq<6B&si;`p z2+Wmh98?#1CBWE&5PhK#Kh{6iRBzr{=YPb_H`7h|7A6!N%v{$=xf0RvwoC0%8uE_O=~D_^>^H#6(WHG!l^c_i zXqPxDJCZ%YgB$)BKHluu;&on@%4&tn%>3$ENeJn4JQ|iYbC2(}D(Li<@D%M6$y>EA zA24yh3TzRL$&E+qn?rZKRID!LEuv#403!_|i;Z*(d9hD2YV>?}K34zYw9l}lA|^!M zaPm4vgEnn5vJzN`(zl$%l~mEOxE!Jqw&a)B$GhP9;@IH)>>I#K7Ew>tacaJ9`c67@ z7eU(#4($0Gq9BA^B^)Ij#qN7QvCDT$>UKoa^^#V}6C>tkJoeI5W+cz;s4uY_L!-PK zS#V8XngnV2-ATU*;VPm-F5m}E$s+J6D+a8RyHI2l>Rmz#1NE1MgYX(FIeWPX@8Uqa z-10_k6Gx@`8Pl#OMz@p&Z=T67_)SPrt@Gqq3gR}wIe)YwNQs~35ovzC2_NR`nd}=V z|A@Iy@Ugm^Ot%o_jMY;>?%56AF7f=moqwuGjiWHpGOIm_7#-XxY4e^fxFmtt6Zmn( zyxv8E;}z6nE!_l*SoHcp+ilEFC!@g8 z)Z0#Cf1$h2OTy0zGW0aWt~TBC+>pCW*9iJVhV{|RWP}|>Wq7(!LhHUXQpw}@OxV49 zpikM;fCu1hAn|R6=h(fvK2*U_5Z>eu7?J;U;qbNmRQoi!@=oM}@nIP<1~hCQ3HaRn zQEdbNxl85OXNzHc!fWrqF$&kTR?Fpk^=up&m|Jr`11P%jYAl}Z&X;XuFAxHCAd%}a zK_*O&Vs|#&B)PGnMJTwM#9~RyJF^6LcFqALsa?C8(nB_hDRc+v54WykF}uzulvN}8 zzMXT*%kP)8tdQ+p3ly#eh~gcQowX4MTOr@oe@z_Y$Ut9wC6gIxk5VOCR&dNPCLQct zj}OJ{-k#9;C~)INxKHvbN2zQ>c@Fh_j_yd`e}f=Jf+T!^8tR&8PDLwt1V(S;7494Y zS027`!M%_z0zFSmjoT>e>c`eNxMLC3x#w4usCUJkTwes&;nj_0GbOu>4YZieE7}IA z7#6Z1T_zr1X1#zOC+^QJ_CT$ZP($bE^YyapJSSx;3_}#&R|m6?Zft3G<)R;4YR{t! z1$pdx!FQ69A(lcJT}5>K#2L6HWalUo{MMpm723|ce+(xTCK{=*<8|SF2`!uKTE3Rt zI8JKZY43`7e+gL7RH9dZtbxP%^E8Q9DC{JNQ3WFnX?$V?13Dj>9pS7w`ib0~q;W+8* zF_P`CyZjtBeuQFfg;>xGnsh7&n*j58UakD0+;+^wy6QT$v}UTKU1zW_jHgUUtyae< zLPZ(bIik1L6@?6KUW&aUfU`6tWSt+Cg>)Z+Su&aDHlfF{sS~cRmRMwd)NqJTgv~5T z8ybps^HJ6+L| zB0N2!R`@(G?8Vp^34g?K6C5UjoxJ3m8;wAxU=f_+QZAao?pl1*;to<8+Wq6Zu%OkD zmd{0MO2qBxV|xj@QR`&`yW}1-Zsr&GiWYp2){!^ zYo`X6omw$T{Aqxs-fwdy%UqTeg*XR7o|p-|ynFvH9gBjWcj}mq_K;R}`yG49r|$Hf z0hulX9+9`*Y$~ebk2b7*EFUwa!-boy?#7q+rS>Bih7nCP*r2rfpAmpOi4P8JZY#IR z+nUyy(++)f;qGd>1?_n7vi8`4dN(pH7HolIs#!Z*(R_?N(U8vGvN5dUOL6W3S#`#n ztgF;_RrP+n@vH_=I$=>)WH5PQzEU-xuR0ewjkUG<-$pSpp?to=waB^(!+M!arn`q3 zqZtu*kSrdTXg(3Ohc`e`;D`j8yR>`-!QjEPswVId;t}~|pqcWS6K>OlMs21`xzwh{ zrbdD~p30u3h~=d}>m*5qb5t(%1$^L_G03hKc4{ZfL=FP~P;+6{`%di9U>E@vE_@!k zcC`?s1xN}yeb3fc2@ezk=V!JeryvhD#KInW=!jjDo? zyme4dGUp7V)Qpsj=s{0pE6*>vw9&$6i_MtdlL20e-dM^xG5}wRmC?J+0=NQv_>ucx zS?`sP_j;x|6Bop>;(g>JobI0!+6dWZY`PUWg*bb*83kWiDZGXfE1ojby}=&lTPb#( zfKl_TwpYL@r8F^m6O9x)q@l2iK$T8npHj^fLI_opc^&@3HxN6@hn@ID=t?o9-e7cu ztfO{%g~vp>baWplldrbh;3$97H}qBmiEe}#p%Q1y?+P3k9|}YxHPyl>IibdQikVc~ zdGaiFlG{N>K-I!Fwu;ZKmdh^64OcSHinupe%$bOsp)B-%-jBA$SDU`A2%s8bOf!vM z4@zp$4_)3lGAG+tu~D=N31mEzWbBrLKFVk#M~iJ~-S<`}Qn5!|eEIg>$AW~SJ*t;10f#5owS9~`z z(C!FnYCa+q*I0+bl3z=oQP~0I$-1dzFAdIUq|*8%8Y$TiLQBx&c*|9R!o{}wI{w;H~R*VMQ7!$Aud}A>Q1+}{7A2A zDA%Q_Co;Z@TPt)(q~7`(Z3waCR?lyexC>gJtfg~SJzuz=I?j@)m63p!(%mE3Q#fTd zO^jvIW7m--timm9UoGcy_vS_x{lQm>Ny%fsLD4+^{rE@P1*0z!o1)sk}LO ze5J+pvT^T#x*;#_*lew-Dt_E7T%1~z6CS}nmzDMTg8bPbXaMOLM;gs6BoG@OI!8oQ z0PpSdJ{*+d#^)$R_K?@s7W1l@ZBl5D`jlZK^BVZM)yX$#UFK2g*K=!5gzYVN`T|{n zZBhlnTWg6+_Gn9!!Un{h;8Nbl``w?xT#Z>u*D-pQH_b~pmCH8j0>$|@v_zpWKWFC% zKU*CP9ofnZ!`rHA319%N{Ho-izKi204%;l|yf=&USy2^c&5l4%lJ5^`xT@7N{OUrB z)~)uw-v62PsCvHAYZmW$0fgJdR=hQ{X%9LE6#hQj)FB;NvVpDhqR{GaWx6W%!?#2y zlGqI`h8az+B7%rq*Q$4uw0`COmmoF+pH6B>gsWtLs{7ukKgx^^=R3AO7^!) zvt@Tnt#VC3j!&SPQA`MXS(q}@_e3IgO%1c(4MUEnwpM~{ia3>zcx<^{>qOt}wy_a? zf@NfV`=%_ElrJ^5Zq+3D{T69%QMPd1q9=8J#VcSaUQcG+ zt_KP-L#?K=ct5vC0H4R2U|bK|K2hY|%SRm1FPQ|7DT^-W5GT6ih*&8k@J>l5ygo&`hY%LO6QPrm^e~Cs`IuBLg(6)W^S6Kzp*5A zvLM7NhJwXtsa*Ng$~eW`kQ)55SVFm^bR5$`9ue8+EiEmbMM{1J{rfrGTB(ZyRnB{f z2Xd7UJTNL|rM1|vX!fS$`IrT0Q}-#X-1{OKj&F2xC}9?0fW}$g2q|4 zjEeZrocj9F2k+n9nE z;{#@MlP2^OHc@sn4^Le{5AL2YpxlJ8S>Gg569P|14wK>B$a(j^z0vg1wa65URkLv2 zwYSj$Bj95d!%!_15sw12z}{rMw5`z_~9ADuw_A}srY=t{qeDYvaC!I{F zW!3yF&>D;%7Dr2=2mr8|;sk^zYRh$X`{6j9qU{Z;4buDXaEACHza~pWmVlXdO2^so zJPb`RMu!lKF!g9+GBzhc!Y3LY&mM0d+IAEn$mtz<2;9=@P;uPnGs*#G z69HvkOa$;f2rUt$y8nLw^FR#0%2#p!0K~MasB7UY*Br%Y~8cmhSV}eVQWK>e- z5Ur!84)Sc4Fv~iGcVt6*DC!erRyK9t7Q{zUFB4J(lU_Cp8g7;pAd&z=YUW-P4Yf{}FxcZ#SUjNYJVN2v2OLJuOWcK|$E z7kL3=5;)M*XGdC;X(M>#u#n}FudtW)lD4T8)#RH~9n*IXfZxQ6Y=S85$B}m@aU_{s zjST`vrz6o~-m-j=(#Xq3cc^4$eHcnX+U$Z&StCagxNRa`6wU(77+aNwZLPx-YhAp5 zrvlf@Yyj~p4FOKS7luL?n+uVMbbPBfOj`ua9NrQLXFX^5{2gcev(~l(%PC>h*^39W zpQzE2{{W=YZmsj_jD=@B@EtIZd~~w8TIsu}Z2B9X=Ei=Zy|j*NPLTeV%2qL*J)2&X z!;YgEdogFz*o*rKvU1<>R>!T6NH)H&h{AiNFF07Hq)U~=TV_l$rO!vT{3pN3VlA@v zu*EZU#P@&dnS4d2X3iyP`btaKnKEAJw!6ZnGUYl}V-dBv#bRN`;kyS;n4Zs6##>oj2h%hiPeeHcT)?2mg(Z| z9>VU%_RaTQTHyZb3KUWg<|O&5SK2(kl%ql5T9gAs=qWr&q(V(7(0TpiXXbS6RU>mm z0yH21G!bY7jz*_aQAqPNtW@d@Vo4&Bq;g#AsG`E6_{lU>QBo)!Pllj+>Iw1*QMRe2 zI_)%5$B3yVKa6W^r`M1F0Gt|mposyH>wW!Oiza>!347eQvTNH^d>G)*-a!^D#5zvo z&wP;ELuoyg^^`aLULv`*w@hDDBo>0&!sV{^K^5jpqOHU>X^a_5U6;vaE^2M~G@RMy zEp3tu2rVIk`d4iL@Sg>Zo%hP!JBh1nTYFn$+o{z-@MuB#N;3M=w$n`XNi=+y!G3Y~ zNz#Xyp;CbAB~?=F7K(%#2a|Bx0sb?ZgUS`~DY=C@kcx}EbQ^`Z18r23@x|#$Cadd+VgYfA|@3(p};*_wb@!-(xQ2%nSP~40Q2dz5Yhm4U@7*w6lu^ zEI2r9PrGmLF72hszApM4jm6e7%LybAWMR6O6P3HP>@JSgRYdS_oY3;Mb3$T0BYnW? z4}pnKp+bkmf61lw6{zthy!}Yfj|kMX1OpSNnu9e@pn6?+i3=MpiChgqQa>kGL7);t zy|*t8pD?%e++t5aVt)jfjd#w!sMyuSXZqPpCrCvU%>fWpzt3vR6dR?Vk9AzzP(xh0Je|JYiV0{ z-S-#g6*tvti{p*cz-w13S|Y$ByCW%0$)oTn^+ZJtp^h>LsF5RG1hBlXsfO9oMPd=m zy3@qW?A6B_{KP{>8(KEj!2?jWwkS<-TGs`&Ewl_6)w&`f5&mND>W{cb+y_eCMaiWe z3r3gAS|?ibK0#C{^6)K7=6nyCpfvlk0#N8hKt3lm7%X=m3xo^th#zARTxfg(>sw<3 z%VN?17w$V0_*ZiuUkLtsKBvTrK8MBvH7Z$duJ;0@km^-*EH$M<=Rk;J)tKwz zKsB&2(xp(FfFXNr8GQz|2chwqyte()bfDF^*7K!u8d4pNe2wHJJ_^jfoR3#79Til4 zRSV4Y#DGtPXH}@spNNnpnC+FEI8~jseJDGxp;VOaS#B90Y9+{Vwn68>^F<|po_#|tlmeF*$*{&Pwdpd0R2 zS=0+Hn-^IB01-~boa^@$0xtI?yAx4H>idf2;*Rm z4-$`?NLGU;#$}FT&K90W+`@?`*TjusN+WDQQSgi9lCAzj`J1+MNo0xrZDI+gRfjuaYD|Hb;v>ri;K4pNQNk4l{Yvh#b0gQz{1P1jns}MsW*-?BT>!~!O zO3;1C#;hrhu20+*G0>AsAakV_3+pC~8^!X|Zcx(xg5> zct&(;^tTlg?UJN$DrEuuWc8)>6%z>%qdJsrv=I~oA%pb`u@9809zTb`sF4&Q1xW@( zECVmjyOu{L5a^PPH_1}I#qwQ8pN^EHPXIj5plKHRjH+Cn&mn&*iAiuo+Dj4JK}i&| zx-QyjOwuT;HQZiO^Dd=ZY)$FFPsn3&>){J+kW;S5VNdYFifS|FNrbBE>?T7S8lFUH zqA6?TJBr=1VoZoM-kvIq{{Sl@of+BIGzCMuum)XBtz0bCa+=1>bphclvU+Wmm=Xj; zuyA}M`cl+iRccS2zV4c$3Xtmb#-&LaflFm{h0ELghx0jUN@Fj|UtZkD(N?!9l*Zm! z*iC*qk|TN3v1E;ASM7qh` z!P6M-8~k0)FBNlh22$#Huvj@$siu+)4dk%K#M)c46RD*jjX_{2w}OpNg8V~Kw9r#Q zbo=E)0t) z1w={9E9Nn2>jmAF*OjPNjkdK*=E$_a9L!IkG?gVW8h}+7Kxp|}iU&ijZ4!iX?YYm3 zd9kR_vx;}w@FAIfX_&ied?h3zh4EXhbObWW7j@7nD3BG=*(y78yW^svt76jt8$m!5 zK@AAM$&)Pc5;v~+S&%q~44 zAH@`8aK}z^etpq5uNt?=>AqyCUvra1noV};6=<{*P)OS<`a=lWs>$)juTgwx>ENhb z=)7qd)y(J72`_F5f1@2m^%kCI48R#2`pSQX^xm;hVk%?t)w$A2BSJ@nUrt(!>Mcp+ z?e{?o7;5BANUgz%(lDV5nP+A@MWU6Bw|-+VgWXvdtcnxRc7nQq6NJ74B?OanG$@ug zw%JP|J-<}~{W{=h;+7k0ETyy-O$SHbJeQVo-SjoQQC{^8t?m|hEv~I5m!|_fgl1*UlJO0(HMndhfvO6)X-`N zz>Sb1R?1|clm>(D$^OydyHlX>lzhG#coGE$2hyL)WHg@)uAT(w38G7}q6qt*XXPM( zMKAn#FRf*=$%sIUb$M}nDU#>I6V!8AkrmOA9wm5}>Lo+xy!bE7YF{BzdV(W$bQ($J zY@QyL$SZL1Ad}@1`Kr{%SsU)5-wUarPlNd|(N3xjHm;;Lq{OX2>NOrLq_qSBg#b^W ziR*_?pL#|<1|=je(aGDE9wt*3sGf~U4yey9MByA0BIx?kyD!TVtG2X!M%b5h z+L5fO3(xDRPli47Qke*C(n!gmp>XxIYRN#9YA7Vp!$<(z8lBL%H5Z&x3ivn|dU0+V zIw4|D9CbP%iL@Xz$PW@!iiK3N7{d*$=#E8lsr5pIA4KBZG=4D0cCgm4*668tnCK;q znLtS_np3)y96eurQ6o@os9voUEMJ+pk&;ojxssMiNhJ)@tNcwfxY|-yL7)!c2W59= z_*zL({x0R}=efDGbhWyJDSKr!Su|vZ+TATXnQ6IYI+cOVY@h^7<{2B!xenrJoy5~j z(dZT9F2YEL#rPbd2gsuVsgcR@q;MBPW&IUSqKN=%QOhx}IZb)U^Z*_p`H}YpOuEV7 ziMZ3Y=J8k4$&7#SOh^v&xDvY{joKz6x4}|dl68(nW%6nexQIOuQB#6n`7(UMkLyF> z@mD^KQ{x~7YS`4vuAr`};2Qq@E0o-8mFid30Hq)uPVW$&2lb$Q8dSB0Yp0%fxt->g zq`bF{w!CsAsktkqZ;J_R9De;|q#Xi@ammDC^x z-_7WqNk4N@QOFRmV-jsFntAw1QT(0~rx6cBScaikIMsX>7H}H2M!z=nUzEt)JA{mO zCxXIRHKQ7YC>jTaO)rq$7b=JvMJJC$SfgGNs{a5CD832{9R$8giQuHE1WE$|BBC?; z1xV4DNhfen1P>Tk4mVR=Wu$g)M%5hU~BA(md0#qD7R6DTI>#JtIUqO==cY>oYI{~0K3$=IYZd6ECbWo^<1rllC5cyo-zO?d@|6?m-fp8o(VV~rqQS>M>@2Ky_V<}%UdNvv``@DED~*64Z?zyIG>z8Q|3m zd9L*Hq-dTk;fe%JSBc0_OhA!alZ#q*K&z;Dsa>9BG*9vMr*=tNrHL4FrTiILZjx&| zyG-rplfb=20t6U{FH+T(_hd`tOp2pO{9!)>hI^vRwk>63D$yr7*qm{)4YDT9KIOWd z#i@~8Dvl%`p`(xGoesOH5uUY{|VBV$kis1JfLT|v@1WGYUS>%DZR zO_grUvZz)c83Cd51x#Ul*_~N*S}qjnO2NGtg%lWyS^og}Gw*GF=AJ3@txp>?%ts4U zT#4mUYqde46CW~TY7w<@p!MFWHm{SZ)9ydWYpFk_uWG~aRuzLmahuFt%aKuQ)p)s~ z#zcpz^HQ6n7QJO)@Qam?F?umLLon*BfSaZwK`vHm#eV}kpAmG5D8uvC0V0PppG3vo zKMRZ>N|Kft1S;gzj6BDJ)@~C%7URP5-?_JB5=A6Wwei+&(yXstI{}|H1vGn{wJ7)} z(mySEyPC7cSsYNly}L_vxM69~-nYV}LXG!X_ky%to5?no`M#7PDgDvHHplXz=(XDm&SZ(hIzWmm9hP`FSw zMvbFQsi>1;k@=jpjlN3F?Jgwg>8`De7qa7Ep9r|QZESX9WV6UF66O@`;Y5z!+B(R5Ng_KYC)9$01wT4ln)T> zw8&YjjQ)*pxPsv$gpD_^trpzG)UB!0z&i>jQ>`U21lF~np`h{CQ}-0@U}>~)9cnE# zG(rQbZ`0%~ThuWgo@duj2*?kqF?kXTvGqpWv`7^4ki|w<9{DUZ_K{odwY9f`OPodA zSMQL-Sz_lG;~|xb8|Uh5!&q2jE~3abODu6&8#~*X@i?qC)s|Xo+niN{$6wk!;|J3b6M35w+F~;{5gSW9J}O*Qwd8XOC&6h7hSBo24UNBee(z3Lc2)*= zq2(zQod{HA%Vk%EGNAZvoAR-~Q1}DG`1rR~jl}jB0+y4Oa(Srb>KJ%{G zt8CPQT}HcP->ovpSnXAiEAAor0R`WA6v!fD6Qs<#Mf%WJ-aQ87@RLyy zV3CJ)ikURjh`y@PMrrjS{N!>;B$A^=9udS}%=|3FMU1SWsFS$RCZ$qkAQS~dJ4#!~ z09fc2A5G<>^Nf@t9Tj|>RKHcI{UxdXi`1V{JR&+srllH4)$46ae~O=WT;4VoDAw0- zUB|xL#&8T0R403vr1~;dzsP?xclAf!T8#-l8qphp1yCvQCbjdWBT-U#5@_pNwy>x9 z+rktNuBABi6ah4yF3XxuhkC`Oaz8coPCZYkKLoU@}rMU`%nRcJLSeird z(ba`Qp9yDGMf0b2+D#Kls8%#LNa0pY{3d6L%EKjZl@5@^@Z2=f!3s);P{6#(1*A4B zlfQTxJ@qOCH3F-?hAyOnaOMnlUefmEp-J!<+o_&Y95Gp2Ew!S>AtQ2MhtA84I~<*S zK+#1LS&VPI>F7w;R*WiDNbpec{>5Z0d@f`I$6Fd)Xo3NZ#f9X1jOBpQhq z&E4O408*nrpnz8#YP*@P0{jrOIU2aw4xkhSk)l?KN~%Z-Hl&)f6n88}zz7?ccIweR zX|_6$`g+FENXhD45=rFvHqm`hD;EUW{ zAUDS$kJANma~(*fgNN;bnv*- zwwHCi%un#Bm;gYCf|`%aU43Cp!_aOt2EL$cL{v$*?mK{@bq7Nu5lZWzA8@rH2#n=f zoNjLkn0WvR0-;UlNLx~4JCG&5;>jvJV_o2RA$LBo${7afCT(`7%cN->dr8nn)Ji9n z31VZk=!x+am=Z|dyNEstKygxh#*=A6wZ?QbRn%&H>&OjOKz&UjYM_}$k)IvDAowEb z=1QxNH5*2i{gL+x(M=OkKd31*Nv^z+%0LYSnvxE`sHuL1TLHL(jlF)DgxO?bhRZ7} zryTw>P%Afs4q%yC!9> zmB`uJW3Ho~dzf(=T;>B1MP3x*19Fm)5f8vX_|%p_c9&9X;O`=L(1U&;Zu2pdK5=8 zZWR#S3knf=0^mfxWu<2F5qy%?^C|>Ybp#}GqH>c_qVHNnUU#jlTUMe`$hEai$DD|} z+M-1v#S~t36j67YxJ3|2q@a-=&`TN;>e@g3H4VHAzP%J0`cYFI5seX~P>%xIc?0|y z_R_JBQ9y0@qPCSDF;Y%sBu38uj=vb#fCU-?H3U$Ol?%cZq>MQRj~rfAzDEacq#bLP zN{Kwfx_Mlhf1RiTPJ&3(w&ya18b>$#JR*vboRS zCU*eVPt~_49c6P3r&eW>;_AyC4^mx>);8AwnN%3qe!JI8+1byGyOw)Uk!?sFtgdtS z$(_JGi}h{6$6!AdoU80yIexF28SwXVqrMj+RDweRMA98WS_@KIrR}WNuOx2_uM_m0 zhxLZxCmBIR~FjJpwnP>%!P4wML^OG@l0%)**N^=@>IRwC#(&aWH#JZuz|R4?R8h4e0cDnF(wKnf8^ zG#~|Xi={}~#j7*2zm!sLsqJlUh&M5WhA|v31-s0%Jhs;Ngd33z5y`wUfbNFi#k|jt&dB#L?Sc z%_e^O$mcJou!_XOUQc~02(RwW12;K_?kF*q_g9veHkaznW!t?ZF02XSZe7(RF2#sj zc~{Dc5?;6-q>PJaTH07b1aUIBCGE?W)WI}=D*$}nKlzBwCZm~(>RJQ{h-6T7li_(w z6UicxZ5o56E}naWhdYc&E?9@tM3OcQq%l5?b7-?bKxwj3@f? z>T5ybA97Hp2}&pc@a>=g^sNO67zzO&a0PusJY&^p9cfWEiYS28gI6GIT78M@xm(lF zngoh0X;ixf5|D@@NVxqTOKk{fi-bYTE3V(+jas2aI_u=3xQpn`6h$Q(nV2!roV`Dr znup20;*b~;>+0fh@CwwcZUwn*oSJHg5@-zv+?UL0OGMI|BST6502IKA>Ud1>Lb@_Jed|c(Goxindy^s(!w-FTfq`SWy)$%mszZBck-A6{8<|rN z)Ne-6~UI21gV!`8SRP%=6VbdWQnCnS#?iK1z=>}YkC-J>)H_Sh8~<%n3V(%l^`Ckv6WxL*lIu{f*D z^!B}5ZEC$ydvR+Glr{tNIS<4S6?R`prQ}kQBeZL^xxZTG9)_2|`X308v8f7{*TYd# z{YIcQAW?G(ubZy+?!miQ_7%^E6EYYBeO2;On5J^J;|cZA&KK0>MV4 zu`!ZiZTeLHQ8A^L^l3d#)dU(}kWm`Y08td{O1f5twm+yNO0@D>UY+#vt;V3a_%x6t zC(Jy1PN)S1SdzK51UpH*fFfro)uyyyYARLE=)P|aNu`YXol$(jkd-2&^Fk=qvDbRi zwumcV1%0%x80p|hQLPr#n%q211EJQpZWR=cgKGWN^B`5ymVH-nJ7rjA5_&9w{uwUq zQhO_#a~=kCv=9$MSJs#wW|-?Xxz?4A(Z6_jZqKDq$r7U}0wyW_$7O#5sYI zq!ziZsfO~^QGs${#t5=^H^Tn_7`O3TB&Qsn`58J~Bq@%+va75#cTm}?+G6-Gd)v6A zE_S$NE&x+-#p+}D=KcSd90HkON1s42w66CWCC5TXS~DCc1@ z0TTz{A$P{$Zqim}P&cdWcQqu7IUHU?VbJT2zBH4A==GcybmpWwu%2Y_Z1` zjW$@=Vv~s}?c-fE;)!Xw{7BB>#X7=Vz(==$+TQO6kt9Z^TX+-XKQ z>x8e!5XIHVvv^(E!+Q@E#!DX!gm!`(*;+QX0_)b=p~Bfgawbm+SR^jSD>umW##bdt zbTfTThpS7DX|GfBIS<4Sx+Rbe2Q-wo3tIEv#i6rW4L*S^afR)h@)|x`AKxj0kaGGlw-%LON)2`FuHoh8Z;k*H*a{mCq zC8&CxDjBpp9mdLLE@_nP0D3VL6ikChO^#NgP*jp*{{Z5jAp4R4SH?HdNIDZ%ESW9){p6m48pkuNac+hMFFW;sni8hchQ$ZDs%7~&gHMYFyEdT`|CA_}uXcTXE0O<7N ziT8zW-cZ1zmPc0FQTI!tBBI2b-%2h-yBXJG5I{0|AO8ScYM};#5=4TI*!M<}eK~3$ z_tHw>flVT#kVlvV1_Yfv%_txe6@DOVVBf7WDPl;CK?a&NVoBjjkr#xDL{~_IBtaM& zFsUYlY9lLK7e%59Z+aVM^=5T&7C?@6ROza&&v@jMTi3N#MA0qEz?5$nV~og zn7KCfhUtT5>2Y-|Z0-ma?@~m~w@wGB;$(11g^LqLHsK3G2dN@wazt@5hpq>vwr2Dy zTo6PqMQ}ZK?^%3Ir!$Vdi^r(`jg@6shqMA;uVwc#kx4!#_84*YaarSS>}#d4GvVgG zn(73MayouvA^3s(mAH{cfL%ZP<8Rg|U0y+>u`a*?L;@&}1wxj964YuVTIzfy`C6OF zq7-CNQk_DYRw%)TA#?8tf6!a*XPYrdXpJ3SXMiJL-HlC$jkPxzg zA_-S<3$}sUt3l`yMS!BliO>_^7t2~Mp$^?ip+FPps0B~v(UN2+0)sRDi!)SATv7S- zpuPm?JT5*|p(76}mu*ZwJ$xtg2>t~4#pa{MlV31LfB=ds z;TNg!RZWVlQG*qs3z|rR>RH^qG58XShEfP!y2SRb+L)g~w`;qm<66k$Xr0t31&Ndg zkrk$)3TPA)5F`{a?ixs_r&dy%A4tr97SYA1(oQyGx-|%-hD{N+aXl1egeZj=KCKq= zvT>ULn%3lpVJ>Z8IRse6mp?Mx+pEd@~A9Sv(~95|isE+`O@Z{w0p*?DjH~0gjE*Me&sB6Pi>KCiEow z7*L{Ue=(5!K>k{>Q>aOm^xkG+=KI49RedP>8heOsNO`Bq*gn?~&lKR8X=!{L%z;v! zN~K73J}KmYRGx}F50UUbr@^UEx1j_b2%gAL1X^_A+J|sN_FrjQ$TrvS0IH@KU4P` z)Y7q17%3MB3rb6PTb=00!03X2q^$)*_X-BBy0(E(0aAa*fKmD^CtY3kNQAF5(ROcG z-(v$$6K*?1M8&Z2vWk`f@%e{gq<}W^tcvkw6sU}$-L+#vz@)LcazvxeBNDks0TtFyDwIj;k+BF1yt_3~6pU4wxwZMw zMo#e2Gm^_PHwYCk`efDY-{{}g#w}T%sFup~V(}xY^7xyyO#W{@4i_3O>9hS&4WEBD zA1M}R9UbI5Lh5U)9Obk27+AVYoKI5U;pXamq}Yr*-N2ni)Hn7*=Nr=*^PjeqJ@;1M z&6Rw13h%6QHWI^acc08#U|<&x{YTW+kc->A#q1eAin_eE=@Sxklv2!{O`6KP`-cIa zIhm%jy}Rm5>GHDUFg6`adNRw3&FHY5kz5~)3Ik45sE)C%09fcep%h6ZlM-)nQa<)3 zp#W}jULr|5qM-4q)E9`FEQTORNZaL~>Y9iB^)Kiu75E9S?X)+plkM1p!bW=$+2b>xAGXnpLn$;!(0NC+QO=cn^*^U!vJ@FV`BFuHGOp??C6F-16jrvKIcpK*yzQ`J@3pJGowJ#D+T*TfpO)V4mWiYA6?&9y zb$TaS*T5Bt1dOg+YHC8ohO|_JKmlJn6HxgQDYlYzD8HcaPeW7vD5*VsSI#%^ZwTC~ zic`HcD?``AZ|mXa#)#5|2GHs!Q0OF4MlEZBswHFuFccTSEg#mW)WZohTD1a;cnY^6 zHWMr(cIsr>+EuyO&6e+h?07Ql9 zrE_@gC&V<(=CQVo)asHHH5jYlchP*DlkVq{>? z5|sGbRw|$(CfynCCUC_B1n(3=g5bIor1)WWr1{pDUS~BFjLh4&ME?LZQEhF&300_& zSOV~|V#;G-4$xw8Pw+$%qXnD+Jcm{bFZyKF?BD3$(zKiOJv04tl{0nc^yuY#3v8!H z<6ypX)i?`6Wx?g`vKWzf37jgu#l|x=Drc^8=PR3gPx0P(n*>+Q!kVOKUCU3YCPGaOaUAE5Gf*Oq_!V?A`tJwo`9aX6d?W*((X zt^LjlahRU}0H&;S_ps*Ru+NYKyO|$N&faR38YEFEb31x3htr3_z6e!(1k4<(ctklP zD@IL+VoM=L&=Ru~Vc0r6TjpRGs*Q=T zQ|O3Vxc0`WQLt6m%>en4W7vcwM{*GJ1}Ak}{D<>755y1Wqp}@V)%p6V3)9(KS#@?W zTGh_Tx~b_(pOg55)W7_@salk3$w_YX*3bHI$y1G~8W?^`*Yu`pR-?7XlwuTAD`+F~ zdTpoXAxFx-o(gn*Do?{DFV9<#gg+#dPJ)zcuYjaK02IDDiusKJM0gXWFX7zMjg6_? zYjL7Up}K<_-fMZS=A}_AO5=)_D&iDC2hQ&Cl2o;{PM)4ozVvk1sg3>-c_om=HL^_* zB(i}onsJXHD1c~C*Ap%p&FnEYwv%+fPTk=yZ)Ul?>AR@2GhW~`_E*W3u}l7;!a<$2NZl}NuW?mGzBxI28PD+8rW8Q~A36(%dnMS4lJvI-T38Jkn1XzOvL_W?uP#5zdVxz@Q7m&@f08zaTL$&83y zaD(!+ZLv{SGO?8bB?6;Y40jZesT2_HMG2^2Nk^a?jEYZ%wQlMqCy}HQP72y8${mk} zqrpzKE0lGtk4Zy$doAUjFQsiUbDP=DvXoGVc+htAYZm zNLZ>Ma74da=AlL7N_7Rvpr*BSUo=HRU3@3`>h~iBg0CpN%Qu{T-e7sXhEme+ct>*V zSlh0wDXw-gB;4u`5d=2p(i$8;pyHq#{fj)R2Bu@FFB_zc0=tA85o%cgJ3|H|SvPMR zB30UJEzWxZFc6X(00|;k*C?z_;9qLpTOvU5Kqb88q_<{{W$iMJu(QC15r+yOkga z_7bhf{{RKX-3iz{#^t4Tu2ua5ni91v&Z=~Gk-*d!{{V1wtz7)AB1iJHj^3h29)fu& zT**e|=v=?*CXD)-VyRK*foX@k$o0MB0|XCd*X`eTSanx z00bYC;gKnI0Pk}kKMON}yIx5+97su9YKc2|wJPj~Q8eNkDW{SSukN7_4m%`rkxRWI z3c%E+BxATVpzcZLhSCXcFJ9axfaNkaxN8A-G_k0C6(yEGBF>J1nOX+>l}qVsiOpM zN=FX69Rmf?{{S(N{6PNz0+KQvRc1+ioD!#N`03(qZKAx6)#Q(UjZj?L-IY-;(0skY{X3~BT)*lj*VN1b8Un}AkNGkn z`FU%XRXRr`tr6z_W!0otacq(~^LER!FL>vvt!^)6NpfGxj#iB7s`0;_E3|A2yk(zM zMA_sWM5*v7ZQ2SYgX&d8svX&l!&0fZ+!P_#XjCFHvMQ`-O*5ow3N_STMy8TU#@g6U zhKNDys%fPb6&pA@#$|s!(aws%v&^hXL$2LrRCy_3WulPGO=s*PpA|4pkR;~PumH=A z%tICW7!6#hDr~sS`52P6-1^n29t7K(PjMGs+nh>~P6T za`Aw&@3(I;lAR>RUxewdrM9rZ+gm-hNZ(_g?$w~`9@Va*K7_ST7j!5&V)#{NkfI z+M?20WMn!&gmbiY8=a?tCrvb&%`zd0i2h*I*t~Q?W46&YWIW8LQJpb z>jJv!HU%eY!#h*kZP1EizqYL=LJHA~;C_i5)}h!zC&(g~ddSyY*PyDunw1zp!lF{LF1y(swzC4WJwm%-MLP036TplMqxyxGIbI!iEzD?} zi^%ewQ9##3Fx*nw5T$`KAl1gl^B0WX?Y~pf`MhnXPTD~|&RQG1J^SJ;-=@9FC%eF1 zn=XYD)$qVYVE6cbs58&eFv~Ty^|ke*&1u&^(~C{ixKg#3xr*B}iO#1}W$f?qUhc-` zCbF@H!yT1FYmUuhp};$VI@GXTVP}?mH0n$uF?VjH!N}_MrPglpC%ByI`gp8v{$XJN z>hrmCuunQdOT0Zt49Qm+yJSsT*Ewx5+cRZsAx-sZe;!6RkVhNLcG9GA4H33F=;jt* zr?P6q*<6vi`4>AEmO4Mi3UM{xPw z9QBGlS=d~R!ed^+CK-OADG{>wWRT4&ImC3`K#lgk@#_tij~kBRyL@%o={ZZ~vaw|C zA&S!P>wksIUdfBVT;4%z(_-q;38>?J;FUwnUbr5(q@}Wtxf8$fbvk@!)F+V? z5QSh2QhtOw!%;I8eM`2(UXeplI~P$*?j3+vZWc7Nu=%HDE21I?nG&RZngGE_C?y3E zP$~{KE^XaDp2>CcXinlJfCUZ%GXMyU$&Jf|2jYdIjnBs6;RPjI8wdJv2&~n()iLqT zW{%ctXa^ikZDSMjMY(2`@x{__Pj$gj7%{yJ=hHE2VNWifh>$)4Z0u*=SwLC|t|GeH*z=GnZn` z{t>%nvSq(LH+zor!P;hF$zU(eUFW@<0W>gPIe%twn#)?iohx+;WeI<030D$Y$J1or z%RTJa31Ne#Cex;D3-z=A0QjpH5NU_%`QfQ`zryG9Z=BX#HUi4C78bJL?x2?bSG(v8 zW6#x=u%}AhBJ~&a-VU!&UUl81Gu`4X@)tI@GF{z7okuUbY|Y8*q&H1&&$&nifl{*> zMyGLNLI4zvQY~NOX_z_NwmCjlelLLwyL!ZSqq#yA!6Zb)nutaiZBrUCG|?;kNT?AU z7=nOyh8}cgRbr$%GO?#I6m15ZAl#xY<7)`F9d(RC#<#&hg7Q6CrjeH*20Vf>w6w4D z4@>Dqr1N*uvL0n7sZsB`J#15B);BtNi9K z6DlR$oz<>V9^%S=rNY|IVU`KvxPcxMyh*UhD=UyW5x#wqx5`!0Fc8S&=jPMWNehud z!YM32hNaz9lezky2cHs3V+1xGJq*=nXErG2rY|VC#o@27Z+o1uy!U1grymn?)4u_( z16&5U4R9JZ#=BEpsim~zENdNcZ+&cJw%a09L4tgLn8`-QF7`4qAMk z7Rv>Zi$0l4zn?)tt#NkK^`aqz9Wl$UUk z=Y98{`S!QxOr1JErq2FmimHBAukNP{7OU4S*L`1?Sl|_PRsZLoUWOjil@aIa`BLOT z@!$KBxZ~1SWtHTK(RjIU<o8{Gwj)*UL2`nfcBnD z{NF8pG}px92eWMoJo1~X5`2Gv<3Fto&E zNAYUVRa|NqetZ%nlgorOiEzGSFw?;1NrNMQBgRu<pF^O{I`aB*0*M zq#0U_;X=wEBD0n?pP^W3;*eI~X>GvZ5Z4qp>FcX)*DLAxlrEGxk9Slzv*b}KY|Zh^ z4?v3>--RB|{gPx-i&15Y{RWj~#2BZ)pxVxW*x@x0eo$%dD~C0;uMf^~TvV#f*^THF zSKc~7aFnpqd=PTphe@NEtI7Nzb@WU`c zwkncqS}l}5?n297(p4~|vo)zKkJ>iP?h-8P2xnk&;R^gdmfRg7hhuRewY)XgKMPxiKi=dF^!#w25hrgWZ2UPX}-@n8OuV?-o z(fsCJ2LMKJ{e~fXniRiybw}0M7J!RbKiRDkMa5vy-ha)~IE zE%cKSEe*1r6Ku_I-!3n_jn`9)sa>jcnz!m%%*Ja+D_cjQONo}D^?yskKK;ug3Z}gJ zVhUXNuvhcTCiRd?_EK8aFHy}O|Bu2^)HB`_EGdN0Yzv9&JfHo2UMR@E@5gf7C7K!z z0x)$i4P;C{xI?|CxG#p32_eujy9Op^D-7>NY50(`@ld6;zty0_N4_DHQyt?JC^nRA zHFJYY33IaH*pwwVGL%c;V#UteS0;wioJxhA?g-CR3Q%2!K**zzoV&O$t&-{E|8mKn z$8bu_a=2+>IExey*D@?cLNHC~iJ^Y_H(N2%Lbvek$sRg$`q4ErvF%N6HAJdu zmhjLoIoWfw!4CfLN=?PWDQ&NmE5tIeHX%CEVRJeaI%VlRONtg{51jl{tZK9rC*kzz zo-q?+EkAjAR>PA_4xdZ%NPMR;oH^O}$yKEeQ01Zt#JtwR>;>#*%1~lWMO7&ZI;|7&V zk@V+rgW5XfK=;{59(y{>a7UL3iUj$>?C|n$FJNz-qGP|X0X+l(*#yTuk;rV4ry z^wg&0fx%~qshVMvY;fq3DTRwk)>^A&YabA#-);?3VxSIWL6!bad@u!Fn~yLVIB8?W ztcn1L{349VdY>;IMu@L=?KiG;jNNO z`SAhVpV&}MjYZ|Wq3oIO_g$cw@YX_eGnTRD1O%AchxC#g6f;t9K>Kt>KQL9JWA=bO zJXEQGg<2Y$^Lb*Gn!j9~$kh@dG~lh>Ss1RmDRFa=Zt#H*nRq=`S^;9_z&Df+Ab>2J zx5Q^JT7cV!_lksg3sz#d6FW}Y1@!}U6=SieGvRlrRRgU}ggmk+>M@)*!5IkLop4zS z;&``Ab!m4o6%AT*65D0L0XPfjX&WE0xr8Dk2DhZXh$BckZJLcE6QWt8# zMoQzoLlkD$=#nJPBLHHTE7fzpG5$&I6SHvR2_k=tu`WH&!FP)(a~(-Q^_vvlsOAr>&W%!`-*S_*v29l33EnxE^GCR6_Ag5lcM)B@=HP_H4_A6H6A6U_r%G_wz{vMX%ybFJ-NT zqEp@%rQj~;vI^~py+(ZHnC5dya#uk^NFWvQt}x>5DK0G>9U7`5Qi=4sBARq?F1#@v zFd0&6J{FJ!0uSjSZF51jkeK?{$<+=t~PQ75_mCW&1&VHs^*((lKmN1@ZEEM@ocd5mYTC^Rx(aC5nq zaDF;s^LZT~J{{{>R%~g4)Z&B+MMQaGEi7OfC-FaPS%lXzQV&qfE@z-T=6+0w2F%a0 zMBqs>GS0&GPP1~<8OQjY7t>THTv6WTS=ndM^8?Ngv|Q!^zXdu7%)r}I_H6mdg& z@9o>v1q3~BW!8L(>1+u1`*M>D-i5~S#X6eeJ{+<`PRyU>WG?9I6wMiEUoWxL3blSY zot&HKO3F2x?R#2;^R72AVD7!^vYH=jwS@>MF}S64$$h7COl%&}+pW4(OBLqWMWke; z8dHENW-No7&@mzVJAwN={YB5s0o_zmlp}v|VVws&k5*91arWszB?0oSqQd*cvDH1k zaj=rXZLDb+F=Vx5d5e^w9P#BMP@vx{Q6n+}oQ)VH#UI?(_Eq-AATjsn&^DBXy`wF* zx7W9|FvY>HvYH|asv~gKBzdh!l3@E1pFwPQjqa7EPM$Wc;T+;5R)#PE|3Ok36)|8d zpXyMh$gwTps~^cI78YI+twhlCPfBO~m|lX`?gw7cJZ~_*DUt&x$YvW_K4t{%KtT__ zSd4U3ds~M@IE{Q`qoyc49uB|tz>m1c7xW5M5l)OfB&1M;o_YpP#gjNeW*iS($6Xep zx3`VN!tj*&rK+PhapkAP&!eh8EmzQd_VaY9)awjael!$7M9Z4!_={s@JzNhOkvOff zv=%=Rq0`j`v?HOnybadH0^pi zK`3dawjSYH#nUkkp2kRDdTN=}+mm{p@7Es`p%kS>538x?gSkJ817>EQWy=HJT|*5w zA5^P>2wi*jg{VX8N3e#`aRTjd+!eIFWj;L21{A095ivG}l9EV`Q^1Apl^TLVK)CJV zPTnuI=3s(A?d&8U7Fst)b`dW=Jj0zxi{RiSNp^nt`=$VV*;O>_$~;(xx3OZ7y;ik^ zgoVI*wru=YIIw0*E+;PvzhT7W;(EXD3a3NE?N5i|wUF8b>TnJ6S8po;?i+3BdwM_0 zc{UKWH$IVT$}HRPQWTq+<{iDS2(HY%S;S~7y=ZysDgUn1o5?2@g711ys|FPeXsop0 zHJ{w8q8TtbW^{Ep1Sp=_=49dDCH7Gy)P{XEf?~+&>dc7^VMxv{4)(>hhj#E+7Hl5z z+cd4*T(iq=)o|8r887443oCe~NPz>kg!xXeZu1Z#FZtK*==nABVzexqJ3%#=1pg+A z1-l|b5N1HlIh-<_45fYfHc{Ik_nB+!bAKw zTx*$0U5F4J`Bj-n%5T}&)QQ$~4A#5?_IWwj8MmKo{wRxGiZep}Yd9Oz!qTlkO*9)HHlg1VZ3T02YvoLyw3p}*26b1Qp+q46`ZmzG$nw=QmRJs8l#0Z zF~($c5_A%jiZ0uU7fy5HrbEd`errs~yQrb%BNOgqz2h=&EfMbi?q@V!QaSaPS>B8) zsYsO(QVN@g=Fcx!KJ)y|KZ{M1;~O9xs(PL+>X*21+*U%AGt|HlvLBjMAHkHyNzo@* z-C+S(ssxT!HVLfAKb(nwo%Llz?+U2*0`vT9z&Wzm;e`~7P*y8dz5Sh7 z5Q1qzh>(oC8RcsLx!jj!a7eMmyjBr5GR6>a;*Tnm)Hu)v=-D;1&CcRngfcK$yk=Y@ zvt5=R9f|CBBIgFCWObk{CF#$$nTd!@$@~(->p)pGSZse$2qo?wd{va8l~Gr=5rq0N zH?3SJiUna)uwOumt-lQEWt!yL!YoSjJE7l@ILd%3T;U1VsUqIGPk%3h|a znqndbtSBujji)YW30WwFYxRZDhMbz4PHkiyQnDedmG(wQM9XY>K)JX%ScYTshfY=! z#p$IMId=?h-&e;|=jGx3#z(F6nkMgzf4dBh&i!Dd29^9`)A)q*-@_YVRy%RFhphTT zi?F*ff+*`?*=kH#qIV9tY{3lnTT}EWJ+1)-SXl^aSD~GTm@|y3={kpboU1LEehpg& zt$P4Xq`v|Y%$1|>(9u252a zZ-_|1TstI22dK!OXF{m02=jiBB1Sxr02d$=gZ~Pm5vL0k*HLhj;>gjg(y`l{04c2z znz3K4$VFtXZ+)(uY=fyQMB7%)5u3y=PExOJY)eO9>0y0x5a)QaKtSGSinoUjS;dZ~ z;$@95Cj`WlC*Vi8J2JRo6>7qjI7V5y7SZCAJ}G?SUVhY%CTHlbPqTTX3$6M4Qf4CW zrA7;JEyBP=M{vh>yd?Q6XW?GHx;o1ZfLWS)zoC<@0Xu#zYg~RF_WS~W_~FKWck|8p zk*dFBxlp0ka3H8bq<4s zJ1@9?N>^CesG6kz`M7!THVvhswEnd7i+OG5N?BAw6g z$wNs~4M^vS*>`6PIezv%uoIEF$`1B|-_Ned<-dXUVD-P>0IAufS}SiWh(e=865r=8 z7AWacPgnB7oB2X==JHl0mQWlNh(xYxhj~K6XYC?O0J6d!o@TM>=kQ_=C+OEmW`LBE zBbr6gtxKPU(H1Pe1h(7+^LH;xRc?P$Hv;D55V1}6>HbU zDdW(I?Y%HmBi5yC9fXr$@FH>`-ApMakjCbLkm0EPB>~)Omo?>U5qz_#1P$`5FBSk? zUJ56V`z#GVn9hK8{?e9wmJ?NtUyMR9Sdd<`1y8n*%QkX4%}H0<(DU53a7>??SV=yy z6%C=?BrKRq3Xeb&3KFlde2(RsRO;fp|D>Eh9jiBe$>W_d$o?33xrJ)5ot>>jA*qJ@lq6{@ruI%HD_a%IYF7K^1aAq@Q^M=R8X<%>+f@8nH^>nqYNkk@}+UUq)N3+v$qU!-ZX?t!e?=wlw-tE?M zdFUWVmyPUm?54!Xy-%vn*Or0$lmS8hSY=%W&}R2?tVR@AwNi269n%-}7*l5n(vPT5 z1Yr(y4S#Jd7$iOfaQqB7UKKuoOrvhv<8qFIY^K}pvvSE`AtC+MyKeBQrd4PCPfut)75EHrBagDTXr%qw(k~ zZ;4PCS_gn!TNBbp#bVkmSQh?6iib2wZOP&EnEhYGgnK$iv7~5`JXVcnHj4On3bswv z0wn`z0{V&U2f@{wFz_y+^YK7}%%8>J&4AFr4jY_e@6{7LDF>@l!9l; zn%i%ruowYY$R~!;%z?p#Dxp_o#msx(pQs%`7K1;nj2h_cXzOH3HjSTM$){(QpH_|E z$;J*&`AK&tuC=3WNV*ymU4xrFJl8_9ns2!<>4C^mQjt1A9I|itvn40rLG;QmC3i+mLqsC>bw@1fhfL(LH3SksbDrLjwn>q-BS2H&Jqfcf)qN)yI9*_KU?hz~g&ct@ z;+0ykX&XEH>qYHdO<;AI>W9j$ixi>eKZ;RS;RMBEauuwrNkpO~IF(mCd=;o)$+cf+ zek=XOx>PaE2iPxAu@{4~5}-tM3N$AcXlSD31^toj{cD#){cpMzc`T1cnz_1&Pc8{k z5e3-(8Y9TB3e&>unxKk^Hay=V)#W~GbRXw4#L4KlB?kOKxGRh+8&%AHr6;O*HstAd z2_@bRUWz2_x^gWS_D3zei$>U$#h#^{?u1Brh^3Ytn9TyX%B~cAQZ}aS?dN6P-LdGr zpLI~p*%t4oxRuJ>=pB|R69CgMOH+aO$1YW!A?xaeZ2{T_^P%&m#kdp3iT%A(#!20N zrL8CowgEyWqmWuONmnMNedo90ArPMY;Q+~uju0jnAUD=rZ~ToW$H3=6hSZVusRQE> z2)ZQ~eZSjUpY{r6Cag8b*N_ZKbScPI67oz;G<{=yTMN~W$+0v_N*|S6>@i|2H*AkB zw5j?}nFI7)=_k>L02iHAA)0c=owiZ7F3p=HcDD%kh!oDiHFhDp>m0gX!RyLcQxP7s za`aJB=smv@Fz4&qdC3nj9ewYkP$a9Oj^6f;Zp|0U5_H=C?2SRUcp>*Glj0lNVEbId zQ6f$->pejwdP4_{hvXHNN~P#%(5k2+aD=}bLM%~)fX9(cu_Tdbnr*BiBz3nr`egRY zmSn&&?Mt$#tvB!SLlqa$)|m0>D&-pg4Iaq*EHxqvL+sEWr$~7N?Z{XFa+61H7Xxw4 zLIq8hOWt6S&h2Z!e$XONFX&3?Z^8&sd-JD^1>0`T9GmP;OD)|@k}!S#dS9s4sqlcx zi>0htP~4sJfi}_4d^)#eH^6m6Q&8l~hRa(N#FKe8-oaHy?LpA3<{@goEbd1!@{X6v z(3)xqpgf>Ku*;Mq)3Tvn!TxjebDg&(vD749md<)064&ivO2!kLxVtS?@ydXl3D>?n zGGV*69cT%kLyL9F+s$rkbfW{vZ;|+exxchj=L9vY#u#(M^q}0nAd|x0$Go5TQZEzW zLB2YPTw%h3GM%X|G~e_iCIEv@7FAdE0j3y+r4V8}*>MQfo=T`9VUe^0mdhz^O9K@R zOi$|3?Aku1*WXAUwrgDnm9RojNvY-AavGy^%Abuzp*4$XiJM4O=od#yd3BVqgPP%L z`O0{O@D87tSY9XB_7ggxBT$C$6RLt!HTXi9x`ONYk_ga5S;=59@;fDL1bGUo5pA18 z)5#^KJuY4{agvW8A}%{4pV`Bo8i(P47Y+N3&v)NVjx(QElfY%ggx zzdO}Ft-Nc@Sa>C~L(Q?v?NWmPY+LL%9%78Az_9$HvzjX%8Fkzgx4={lR7vZT~XJOoE@1}R>e8{ zMQ(%yNK+i^!MDm-5|(zMoR`?|JZ60xo69L>jJ(Yor*wdm@!@TulfJ2eghKiCouN93 zYrM9u0#4J=I;y*R<=-&F{m`K4Pgou~MLv@~6*zo&nHhnKp$M2Io#vS3nO^U|TYQh= zv}s{Sfir|1+sa*&FwEH>61%Cj(H7I6EbGYr=rM6kWusah3&(oByiiw0NBX7iE4DEy zH7BWT)i(h~`TGQUEe~;uoKamhSuQQYg(2sAnn6}g6u zb!hH8$DQ`XxG(pe>wXzf|BxwPu{0o`l(TB9Z~q*vg>K#!yJ;)%gptO`ls{&uYk1

      v5PgMdj5`kBA6Cfq{DvvFq+j5;b-4-nWPf_R-NIBehyTpRecKw6XDNcS|c(NRB&&(9EfT+LA5Qa!rU z{!c?%UH$TT`1aDk!xxAD{ObSwo`3z>!lo8!RMm=t+5*d(A6ge>(tM{3zhTz3E)Ko9 zz=w&}_Y}Tl(RyCJ|S{Z1DO{*EtPI>1dNfK`fzhc}#%rbdRM_bz19JPp=O=Lke zM2afmJ^A3gY9m}r=47yh50quaSdX}6L>KYfOiV;xOnzRRB0eR7hOy`eA1p`R)$0r1 zkFRV`s%rEM0$J3xv!J5qpw&oLEc9*zuGhg1-AqG5W`)zzRnb<3XbjA;ekE+S^sGty za9p!=DlxXEnuAr*oK>+1h|6zd} z$ULQWu=x1D(pknzq;L<(3n=a3ltl2Azq{zT-DDwibB?L!u3?1(?$VKDXw&Eybo~a9a&bsvkYM(^D4ge_yVXmfVW}b z4Xcl;s?!`?p4+86Ms>#XTW3pE^GGsX#MT zeNd6z+{VQ9cIWJtF+QmWr?Yy`_S9|2ruI|0(|R0@lZHa9i=nwaf5mxT%&;Dy z0reXsThH*oGYX?XI`F3{Xvd{;XJx<^W4CL-DFHNJNhGyWk%|MtD{p8p=)+#sGcc<6 zOwt32d(W${6}67rT}@fW*Jd&&=3t_xl)&Nf*==tQo>4_M%JUy9hRnBGUp~-x_iU`} z$J(Nvm3u7mzwz|UxLdU3woYn;=-Z!wRZb4ql#QMp-()I@Mh~#2wx^!e8 z#T;+@S`-g+jYXtvZlPVhcAYos3)2$K8_n-#7L~<0CRbkpF7Y?icsDp$SfMC6mT>o# zix>wKF+LJ9!+ZumPyB{yfl@X6h6#dn>(d-R{?m4S9Q_|} z9hWi4uc|BtKe=Bl4H**o{a3zN-T1(Jt##T7R5E^f9#%BaDZYnOZdkmz_1Wy2(py?N z@_7_=G_=9IqRPd_MC^z2mf#U54h)!U*-hP9CmAN*1-J7#46IKQC? z>V!}oZf1{YyQeCwW~Gg|iyJ=jw2o`LJDK#}&e)Y^naz z**bh(+%$2VD#~mOeylzsVDAh$@01qyu=dLLrr&h%_1YtG-DGBGX=v!ut2)x+rEF@8 zeSMBA^1Z1FxPfdyZrN#dfF|nbXO`8&`Fvh4V#BRts%3bo6`*KCK+;N8p`7rWSz+ ztmF`yXivU1f5x;_hr$@T8kczXd-0NH=C!zt>=W*`*8C=$eg_g@@@%x#$KzK z?x`&i54&~EBjjdwG1XkMrX6Wxi7WzAA0u!15-m^az&rCDo}=L3Fp|nXMQnjgo*oT$ zeJ6Lou8C=+Wmo}ER)fa0u_RBE*!eDb7g;yNAiWVH4{Iw#lTW4UpWBHi97<}rJkwB=Th14kS0Se$!Hd_~roL|!hYj|G?#ZuMu@$J>9Izf8bGz~HoEe)1g`XZor7@sVL zju2|K?e-4#Tkp)Cq~4k(Fxe;4;~nN%a>>Rpz#pkd)QTi9TP;5C#*2Iq#mhJyo}yQL zt1UNIwB(5cn9Gc^vNOYsI0e}I^1Q{g{0;Lxs^~WimFM+he*R;kZsP;VARfj$#oQeb zhnU<;fBP@ne?M;?C(jP6#KrF@n;fcD!N-YUSv|_CM9mQfvy^(d6)L-b^$D%F+qiBV z!Y=ZfxfCx~|FAII{z-b8KV+^FPhS9RMKhHV+kzWS;OyS`Ew-kOHU%;p`F3v$E0y@X zB!qcf(o7$33`(YRvtx(#;>OtlcnjGA5O2IJR{dYY4Bj6Yl7btZWv{ngmTxarL?7pX zYio9x_sRj*Ha$!fBg^AGCeYNBYL1LW zVn$4}izuc)1mg_T8>ZVIX}>LL?K^V=VF%v)j~%zr32PfYh*C}RW<9}RxPh}2cQ|E8y9_$@U% zAh0R3f=}vQVjFl&+r4vFr^d3*z_jLyC-v5}H)p)Nzz%X4(q*z}+1?gA`5L4_uCUBD z47cad@ASFvT|F=a-S3>bP@Zs&N4J6e zL)9^}vsb(#id0W9FY+?wM6Iu?U0a-7tJ-Y?X@6T68!9-7{zLWz6W^xHz(7KG%6Wfg zl<$141kN1eK$~3m&gox=goSQEz!e76t$abrpRX|9+VKtaLtKy%e&##0>APNJfU)3d z{e@Y|RHL{)h=|(S%$1Egx2OgEDn0pED=nNjIz3Z_^eS1_R)WZfSnYcf8h;XJHl)eF zlZKK?H~2CvJ1wH^gaX8;fxIxuR3RZ?rbz~Vfo^3}_7MVep81l#m_r3F%1OIC=xtxd zzRdEdhS{k=sWV%?MEEL5#^kV=8b{^vIp9AGYL(WdH^2_>oqHW0BfVDQS)^USxGHr{ zh2~&l7WRs8ZxdHHOnp2tBN{R$Cy9d&mywePO-@*DdlSl6XYK_5OAF%da1lC>d^ zVP~QB9}?>5b=H4dyj9V|m>Ga~qM)>nY*ZFEf29X_O^9qoi6KqRHmifbqCxt$nJXSx zhPkG#r(5S`JOpUQb#z&D;%xh7{)J{`I9~cgyBZ4$>w^sGoml-=!>Pu(Hu@ z9c*4jCJ)m$%(dk|w^rM2wZkad8{69q6xbR$CLZ)$;JEPfOQJYIOPp$N752(j#S{$C z^oDHFVo5GM|MEi{7=^nZB5dY%1F$6(JzmcKHZkee&%a^D|Iz6D`^-gQ1{J zQ6S&{p@WL>8Em;e@mup!XeiJ6CoK9mH{~B@wi8EW>Kj=Y_l{BUR@S4+aFjoE8yM9# zTP*r1nT&B;Fx6c>N*=D+_Sx)TF6(6WS)RNvt#J$~FuMe$*>bga_uhbU`CaTQkJ#t6 z*Wt-7xpL!VB6cr%ZY%iXrRI?~hM$J4VcWx*QT( zySx9k_j8oIdNfIl0ru2fZjru|_!xLw!$_?`D5K|<*KCGEF$RZo7TT1}>_e`x5{XX{ zn+&c=;W~m7D4;|ss>)mt*M4pF2=bZ$VD11zJs=hw)byjNK5))Ev^F@)t1RMf?^~HK zZ*j8Ov2h|^I??_okC87g27fuc|G1Nq8*#bzmPl+j^bw5UJ|nQcEy^1DD4Gi)W75LT zsy`CIQOAyHfUt)i627Fh=N6p_|1tu-qL`O1YqP|j)AaWZY;Ek{Iz2wEH?8?qiUGo& z*Gzq;SvZ;ZNYAwr7dE=DqIaivc-MG4Q$F6+Ae6*<;^dW8=( zo>jG|-LYlLgp56P%Nl+ICGIe@XaSdM>b^p)-YjKl|5VzobTp2$FO;nLd=aGm-J04n zss#0{>FjWgzV->B$-OzZaWb>I`>+86WO7O-g)i(~g-O3R_!HmdAq+7_X}; zTBFx9ouMi;3au5XzM}T77`=@3n&>Fa&)BlASZYI<3o*Oedx?vu-!e0gGW+q7EyD+r zW7TcVJi~8E%X?;Bq^n2#>V{SX(;)}e)jQR}&A=bhc5HC|*l+aRc&4i?1 z_yeQ*iWS{a-bDcFDOnq1nJCyOO;25iruvlKQCumRDQEgs1e#U)D4j>P$FrU|0V8lh zR0F#>pYcy>NZa28`i57TerJpShW;Y-&%1X!=}Xlav^Mb8wzh(rYk5sK#1ZAi5p#yi z!Jd_eutQkXvZltz>eX@NOZIoDZak}&HjH4(PDOc?fFL5(ZT4Q~VX53mm!ja;?;jY0 zpFcU~;cmFTRk$sHk|MIvnJ?ag)9h|`{Hwa7zP2e%5?cB)bI%&yMQ{qQ#w_y9XvhZzH}m_+)Fo?B8j%o}Ocjss4s3Tbb87 zW}Q=H*WZjdsT!!fiW*^bu(@_NTv67tvhZE&_rTTBv#0sko$&w}+y$--vD7^G>BQwD z0EYy)k36w3*MNoc` z+ig)LS9dCrsl~1v%xM{q#TJK~rANraLen=;OrUQdoFiCUJl|JC*BV? zAz3_=^@o{HnagGuXg!PR>rI8b>IezMb9>`i)yNd?CxnD4p|xo!DY=aTC2F6V4hh%B zQ>txY=Q{$SGY9JQ~q3RVrx_=K4q5Y?>|F) zU#bW8UD$E8^#?4YzSzg>H$~4dK6lXB({_R5*Y!Z-h$-6%^>qq3_^)*ixRN@~L4Lug zf|->bT*UyMlG>)WrluB;#{M;`MqAECc5T6(;>Hqa!k0UKve|i4j}O|4j+kNA5qdlY zH{j~-jWVZe3K9h@jaV$Uawe`l`Tx@qHaNMw<{FUD3{@A%p6mIjDps>jPb63S8;0>e z8ifCBB3632HZK2VQQtqkfB%y|j($6<;Pf9&z<;s{z5ADhlCQNJxT@D=NMoc=kN(Lr zg#6%mz!x`T9kB=>361Xr#cU&he1!#f@3c{#=g|&G$F+6cnJnM2ll>Zr6N_FoTy@8J zg?kn>&-<|XK{5wt?=qVz!02j8-JMJKt}M0G$CJu<5y)=iVoJ4u8gRUGz-m0}jgwk< z>{#Cg8jg&RwbYnTWcSt=m;%utcDz(sfVb4TEI|~ z>7wjjX25BLCTM4I#q?szow9Z#S_tEyv~z5_HSN7TU$dMEK?29EtGz4GJ#PEDC}SJ?XHfNrQS`Am2jXtvaO3G7MpexCRF6! zR1lmLW6E>!O>VD3WE>dZ>yq`dIw3D{i{=Xv-}Gw58gO z3uY*L{bc8L$c9p#mKY-0@rf-OBu2q{2xe?38rhw(;N?1RSJgEwYyf<|PU6uWlV#%A zF*$W2oK`5r1oa$4E&#biY;No|Qe$&Xw@%M-cL+My?)7f*-wfVcG%H0|dd>@C<5;sg z^(<^K-+t{S)D09u_S&hOlF8~;H*KI14hj;E0QLGgN}XS?w*Vr2Ia|4uja}z>#OGSH zofoJ|sgAjY&{i)t_4QTjLA=F@OB<1lC=5i&6V4x&q)D90&WEUZ?1Ot8t?3o!Cc#sd zkt~vE#u#D4+Q`?E+?qR(h3%5T(Av;xD~{QaqD2oWLZ6IYb(bYBFqrwn{*Fg&3bnW0 z(uZvtOK^yN)ht%vT;Qp9>Qm=GpTmEl4DJ7vnEDOV@tS*yo%KO01VD#5b$gU|GPhWqH}7}6qo3lJ&1HK>#o5xk~=8yBxYM? zx4(FaJlx9Ic^3=Eu9dFG0EhGUjD5AM*O5+(MgMx^ zgI`{C0Z7KFnHl52c?K&~3#tdbBi-5-I?E&{5uLym^ z;ux^ElY_L~8ZHmt3_b@B#Y(2UDxNgyoi(6)e6%g2(dLtXCOULo9?T8?JIEgmoVCmT z?w$}j>zBRN-rabe_O~N`Tl4WZOhE={aBRa7$-CGgz7fMfd*!iOJJ)Q9hy?z|tLrxm zXh+-LLCTUY)~6Qta+i%=G_t-uh|ZN`gT@+h04bKkaLhL$1DQ~MO}^qWXwFH*8Hvh> zJn{qBfX65E84glqSNXh{fGltA=wqs(m!I2RFX8sCvb4kkC(b!0mnt;$#aLk3eJ6>A zvs7VOSKk!n%0&24U{Z5+i4b1dcK93=XgeQNa(q%+>s>M^j)gDK;RJ}yCS(5K^-#}6 zheZ@01%=7#bo8d{nyUvl+X;P+?T`K?hKJ~?Vx@a~Pzbr(=0@w6Ah(i~G?8F3hEAq5 z5m&G?Pbk?N#DSgd0g)Nen0~#T@j>KDfcko78S8ynC3nk^wsdSGRQ{+of^(#`d1z;Q z=*-*?4heWtcOT9g$KDfQk$UTB%iy+yW+KI6Qi(*wYuRID=`*}-U$4vloSC5VzO-(Qn$)##aM+ggD4S3UPp$@1DSQ%Og`&S7R!?;7JyuJCpw)8JMq*}--2P?g7wm^&^b96tbA+G1aPPcXKkA`7Ob5F$zHs&4x&|cH)(&+}nivM}kJkVI>QQ3$Nl`_i!H%{)aA=HMeVM*D7&$ClYTvk!NP$ zfzD;N$7y^CF80#hh{tR7uUG6lEQg-vVGxB_>C$?wQbuq0fW(abyCPR_yO_1UfSpfX zP~i#q@8KjaRwk{XG8V&+yf=RKcS;tuBI`L35ZkQiDP!O4m+JQOp#U9mgIQq`Qy{WA zHW-d~Zj~`vWm6YeoHb}@!5(?*39p=%qjj6`)@gadV9HpcN1$nmr3k1fG+F%;KDg8n za1AYUFod*2z)t{Sr~kgP2U=7Qed*3=?^-}(emZt%z?F?3mW}nd-q9&%d)?JFfqFtE zZ5)F6tAe>8+<;YICPQnIxVq|eNL^4ZjyG}XRMzt^ywV{d=9T$r`Qz`;a<`pDpWY6( zz4~RR1%>(4I^7+wrMNmXp&psRl79c;0xmOd zjrca1y#lK=ye*cFfMBcvOKQtYa=$4xrbsqJSme0@wfw8tu{Ob{PVR_|Q3g8JXU6bB z1?s@dNx~y7aNFRPb4!@F9hky2&N%nxs^+?8& zb4T`(h1ZVe$*)@~nL1qwEE>=p#QlaLRs3IW#5W-yARCPz*Cc`eUmr9`V`M0x%GU0` zVSe|+d_;qRgM)bmkMIT&2@U}c9u67y&r@_(3^LUMG)z&od<0T*He=^P7IqPJBbS6a zEHM?0FNyU%Gyjdfw~UIT`QAkb$p8t#1_-VR1PShL!QCMcd7)jY#z+QNk{p5o@dv=c~ zJBe+}wR+w}oZU@ajS*=&?aQ9u!H76gF39p{v(41EKY_wC19Mk%N^9H85giCjDe7E! z$zH!IE4gH0mipe~3?tdnbOQ2&m|e9lG#}I366xH{8 z=o(47k*erCDJjACIi^$Z?G(hyv;TyRo8T^uIj3g#A}{eUHC9Vx6949idSB`b>$8V$ z`Uk#>=pg-Cwogfy!e_REEYe4s(-zCd=$C0GETO2MkGKfkBa3z9U^0#6Cft{ai0-B@ zVLrzybii+{aqCT~04*twJ;2 zT6fP?H)VUzmM_1~vPWE{mh4L5X1Ioz2CwxBgQe%0d&PrCg&TwQ+phVl^qaCrgH~U< zRdS2Yvd5QS4|7*O|6ERKmp}iMd(PK)=`TRH({8@%)aUT2$jQ6#^uJ1Ze)^{>cp+#KYol%{ z{aI0|+fi}A*oV&jfInh+nf;?C{le+saA69e@TQ@KivHu|$06TEf0MZzE62R1b~-HG z`h()zw(oZ~Ae`;+s#yomsBC-ShxNi|I1u?hX^XCXp5c>1zoW7YAnd!rWM`$|1a#GL z!9DD`+~&12=faRL9t9LS8FiyQ>L+l8zRN04HvNm8m3m2r{W=+{@^d2W+sl??@N=Y` zjlObykRv^HG4J#Zt7O%R1e3D2NnQ39Oh)*nqEKMt>?h%ig`SXshr6LFxz;mL%kKGf zT*X-tnl`(qpzO}Yd-qk>s+TI2(n5Ewg4fGcW4iBQ88)7n{9aC+!8);n#MG3)(I5T zQB5mMY~;5w$=Nor%PX|bvF;O#IANYysL>i!Y;x@<+6_$AMjm>}g5J1nx>PhUaeuwm z=h5IW6ulz|dw8d8#d*{p0cps%VNlK&LVDTL!&+9Wuvpp?>ZjmgK9}A)r!!V(T9OMn z)KZb7k_#ZpuJmmo`Pe{I|9H`tC+Jm2bbU{dxGvdPbS%$4=jSmwyDNPxG8a7CWpg_U zlP0K6(wOt!i^f@z7S(#509*qMiE~IfsZS2;b9S-ykW!WayMXbJvPZGA6q}6IWJen@JP}yjH-Nm>q1MV)^+!1O-C1EmF?6f*EP^xVv}lEGw=i*T ziMnf6?;4BiIf`eF^uqOEPDP~=kfIh-ob#qy(1A7d(?h~_ma#17P}LohLrTVJ(`;$A zej5Kwq`rB_Tf0xRAiI*!()vrzbH+#dMTJMxx za&`6qu>2*lvDzrgU4ne+6ve_q^_17D;%NKxFp<}h`fJDWks!ERJR)Pjow^(h=N*B^ zdb4(7@@ofL{73Y|My$d>y4`LE>4V4W4B@M&2gN?j)a$h*6&53ba&yj4hxvsy1N0#c zD+ZdH-WyjymNj)JsrJI8?|%U;J{km!#FdHxQH{1ntPNjpC}hiVPptje2qX8CW-8l) zaop9elk;CRFBJOjyiwb{1PR>D_mY#DunzHJSu!Y;*f!3@qIp_q4#} zzw3xn`iqfE`uUMRrquZl+Ms0VdYKml%UX)6+9-XT4#XGr;=I9$$6@7pj4*GbZ&Mpd z@QDg8R8H{#9UdL{0{_?v+Y@Ss3oH?TE&S7Ci|KtgGpfK zt^|_U_3QjoNCKz}eHOFrU z3R5!MzKB*&#9{(B_z=dUR$VY--& z|C#mgv8eyg9C%?Pm^WSIT=b^k=L_~Z;^e2k4235N(YE^WA#g{qU7$sqv515Ti6ly{ zUkp1d1yWA@R2Pg_{s-{V6OgR){nGIL+sp}9P_{8t?h)2hM-B{93*Xe=w-wgcXt^PX zaVeb%jx|FdJl>1k+o0KiQ@NTuUM1`yYajyZJRJlD^DJ9H_XLs>V%3pXsaU92{B`!< zjR*r@9}}7|8p;mpo4j>SVzj5GgGp(RutlSv`koVzz)T~nqkfkbr$Ux7wlOT7vWrh* zmtHkkBdP95I)c2LJ?j7l9sZ!_0?5JIbD_t!%FJ;TCP4w1svd|mc|@IZVP$Q`hceai zGPMAS`+f7Zk7`%iEmRFuSFe~)7pP~WxNKag3MCkQFj^_Ou|kyXxg*pG-4d7`W1IHH zyBAMI5y&&eIAa%Y7ZZ|VQQsNqqY@H%2E|M}6Yt%ffZPQ;7Mn43nlZ1qKOSNQKY<;-g1Q4c(>9d~H~CzA*T-%(#m)M*&54(1w(A zVkw++6HMhsDy6Gx=PTqEwSHPA*J@&EP{$~+^xjvaS383d%rl233Bb+T*o5-s+zlqU zcD*dVNC=Wy5f|Gi!UinbaLAxBWlI3}~vih`xd{p|?iM8lD94=kNDHwzZ-RsYnhm zi~p)q2?T=nY#9oNMQlNgMsHCJ$2}A;BeUqFi>KBC%XViNMeFgE5VJXe#0Q%LTVfm|o@EI4O}K2i7_UZsyNM&0LX!1C*|# zEa!ls8djhrX~78)q953(T{8)Kx6&sK&Yve21@w*za%=%(Pk(JuE}`gjxIM*V2o153 zxfB)E<<5zoljN7I7W0m#O}qKA-2-2F0*IUzT51-Ngcg=DV7T_Y@TL*?M~|v?nGI&^ zGyy^X(;7-31XZB7fKPmvA8DO;q!W3<&0_G>%evV1b=LjUi?V{$P)PC%o_Q z&xBs_cL2Jb!=1y8Q-bLt@DU|YsGEB@Ni#|R0?s+vnc}EJB^X}!*0t6BQP5}->mYtF zJ1YU=uBvw_ug3(}%yn$h40z`&#RD;gKlsd@uya&f7J3Nv<%YP;`G{m@A$s_|(C&1_ zhydd-@>z5>i=n2{DVd#@ctd8S2Gl=>4!oY~MqTU+&0@;9lExo0B8f4UdthhmG?dA{ z7xzquhuhabf;_C`$6QWrI7&XZ3FUhqN)km9=a>QF;JmN!KXvi+l8~CJr+{8Afeb~W z%n%U-0eCO&BoL`S6ZPxwA@HM!&O&BNSo6i(%?Ns(f-+aD>)%7TB?SemvSZSr*Di|F zm`X=GkYkK!_IU$VT>iH%#yf6-7}KQPskxJX0d~1n_gFSsgY}+UID1+3!WUFl3sMSp zJ~Zd)g&klZ47A#s2W6|-Oi8=_yu`OB={`ZV(bs&CsSPe^3PQIK{ z>GbZGleLm1AMtiyVGi+2qL>6V+_1r-HXd^J4xUhCBzu4GmqEn>SW{M%l<2JZ-f^~+ z=i`05l2Tofq|U-O;bh5zzLEp}L8arj;2XiZKZH-1KbH5*dA9rwx&i8tVUN+KS(cs+ylI!FxlU)ZSZU7&gQ0O#R$tXLq(@*Tn2hApPR)V zvh-p~dHV`wuc2Jm51!l6J>E?m-0Bkn}+qFTrPmd~g+cAoVe61ulJ2Lm?(=BI)s$_(n7Ol%)=& zFNaNZy)W5w4{}{5qJZOXfIOELA~e6g*FFXDO$o%L(IFb_$3?#|$F|f#7%ji(deP05 zt`i*>=W;6Buw|+>ShP+1EW>Q8=sC8`ZPKl-Jom2-2*s~e*Z`6&dz6Hrlhx6924QQ>n|+HgD!uM>9r zpw8gqfLexgbj|EIZNU!`0$LXr5~%YUHPd#v^E_W@pBKCaCyE{LO;#L%Bek1=#7#2P z3F)%P{fbU5*61OR^w#wh#Nuo;b<8mTp-lor*N2R%Y|!vrC}(4i7o6|3z+LL>qWPd* z8~(dlmqb@tXqg}Fvvz5XC|96Rk7}N?BuqCdF54*#PBxvF){*{&S0pB^`y;S$>KO~Y zFs&@#nrNzy+QN*}*nT0ID-p8ragXg&b6<*6iZ!PQg}9-wHfjrB4myevKy;sf7WdSK z!Hh&VbuVg3Yn(~nl5B(h3Tpu~Pu&ts_>S@@*Dnp- z!e1o8`v0#C(wRy5?d!x3BCJ$)OJsI$Ah>cy$Myv8G5L4A2>puQ?S83Ugd`gZODyXb z6new`)V}E4oO3dZ`f|slh~*)|21Sr%FVGf^Pm;+mm3EoLx7^mO4iS+65Bj6>_OX8 zMdsr*^uqOhG~mc2BcLGA7k3J{C8 zmGSG--It|Ic}iS483X&Iq}RI`lcR3)6vjX!(RrgW{H7`u>k%l1bqBpr_nMI)0Lls$ zM#9O(?|3!BBD%H8gL&vE`k`EiVta1+}QlzmA(r4~6aw136 zk05;;y&iWWKC}MPcPPMqa2~_`=GW`MvAZB(SLX*&RxNqvmq5FHmtRMFPx@bY3rgr@ z>vQnbtc&1te|GNzG8C~_f`8s9)-SVjh!)?W?w^_YQ^`? z$+;`p+Puv;4pHZN%Q*kw&M__h0JI?(p7yN5u(|uUeY+A_3xo7^;cO8Wf}-8fU@Wik zo;?o=_y;W?^l6HXp9Xypa}z|(5Y{G0B>{sDA#`ei1gF^8n$zp1-^;_~{bptJASq!< zhkDAQlM+KIe*G&LaV_iEB17<@3h%81q9zqn3p~n-lJ~(1iv%jt_URoWEd%Bzo%y z5VC!N^20*aLm@lU+;vGx`tq)woLzTLqA>HaQwzqEw5TNgB4^c}9ZfQX#6zam3?_>1{GUGw zyDA-$3b$h(TKp@Uxs^N*1^D>4cWyn7%NF%ZYUa~*p3a12&a)@R2*)so(VE?JoLCN! z5kMaa`dMYLrD31>6UO%F5GezF929Hhi9!oq7_q@Q{Sm+`d>2O2ABJmGXF#Sc!!>z* z>lu4ZPDkuSP_4&-^rS{k4a{;i?URY(EId6#O&4&(iV;;zwB+~%u&;+ zHf5xTzjD9sg>KfP_o;}fed9;4owAO^)4QF=IU>A8Ly`o(4txpE$usxML`zVM>_b#w zvRR-yYGEl}mi}J(M29rsN*; z%cm)A-Oh+Twsro|`|H)&lV$}eQKFXSM znBzF>JZN$Nhg-~%h9GAjFixM6+O6P)Q3jkQ6%nH1TDSly_Hmc56^UQ2R%bp!XKe+M z`%;K54rmyD9_ld#O%8}b7CXk?SRC6juSWNVj5$8=pg|GGuq z&r7sQ;Da2II=#z-Ay~q0ClBl8kQ8i`Iy2*rU?*c6%Y>xOq~4g@HX43n-GWKVzSlpM zWZWvMeTy2vakYz_Y@9G%8n=ODOh9;>*vDifOTd zt8N5`Z5{XX3OWki&Iy?QXqFe3X13S(H}~?D3Fzya_!tdg|U{(4#l0!*3W$>YVyHEiMwvRnP-VO z;L+_V*$Mt|Q(h2tMm}WZ{U`V`@}V6bqmC6i8r;QMQ+fF}ne8)_bQuQun4BQ!N1qzH zgY%pd&{S+)8Dtl^jBkvnABS{cYO?$n(3ch0@{`{aAE{&r)Gjs><4A-T%kcVI59+e4 z_c^>J$3TSZ(D#9(mfn_V_Yn2bqF)`t%BvA(%t-u(k=!pdrA)Q=RV5-7nyOmF=Vf3A zkt#E^@R4k6B(9+3d{trgq0&$+d4Akr1$}sdM=y=C4KJLMzRLbpWS_Eq8gIV3e+{=W zs;&wRPGHbfYqkzee~ELrus<^Fl}w;Yqsoh;v9@MZR0-VROzu&bgqMt?x)uJKK9;87 zx*FU6aPu0}2FZ^}?;Zy_kWm+Xi~dpUAEcinX&>uGp!s&A|MVXbVTtRW=H!Vf8P%?! z4wvKXHSKGpND5Nem=AUv5W>>KnO^&#NT^Gs2u#+lO@OUXy>R`ThAozgeRJb`Ywi|_ zCPvOV{?QTjol{rEo?1o8z%=??X*1Scv_i&}?V+ z#|?jk@$tUyOy2~8*Q?i}0=0j#)%aQyKi};8R2^8{zz1AUlG$vQs+}iA=QjH;&zN8P zrUrlZst0nh_4jH0O~lNdTRFnqudV>tllTxY`d zPX#{gv&Nn@HRZ9QA99`-bOIrN0dobHA98tqeQWbU6!N5{5o0qIKs^xTMPQOu-W0=- z-UdY+&-E2O+MgITlI30QG#7Hd!Od>|3vkUoHSUY8-GOd7xKnAy{ZgVeWq{Ut;sVgH z>A51s@I9K9N}C>te4gUHrCvR+3E8&&PI@->iuNz81m8|Nz2X&N=gT4ki%P7f!U&&; zBWDlXuI)2uZZ-_>0vU94N9Jt}xkbQb?e00BNdcnRk`VUT*=q!BLo8Heq#P%VXki87 zkn}^A5ZVo|F~GRX7_qD9ummCM;7`1%1}(xs@gROt{?&KRtKR9~P7jr|=3r(i zB=*EK&?)G^;x37*ZF%EH)^2hqF`npno2t9zi9-I|3L@M`qif|6DyLq0D*ENzLOGjn zT`dmp&ja2WGmnDHu|HL1V=iKZ5fnz@W{_3Yn%mEb2}_$PRNMxNpTDd?Q+L}{4TTDP zQypq->TF#wxvQT+e+c@_Gd8vRyiAW=6zAvDdF=xB6!Pemzh{)tnwnAx;!Tg2e_D|o zuS2jQ&@*|Jw`cE2D?e+IQG_*S)1mdHS`7F&;5%~4-By0$ABha`U^nS8!pr?tKdRSf z^kl3(ozAxXBSG7{dt_1QHyf;7qL|A&XP5p0ClmO!I?*jmE7UI^sm$D~TlNPD0zdKN zAY5N^X8ol-+I~z*?N6v^%r~HtU~i;WUEmMBMGI~sjOn5VkBf#0%_PZwKvSe-^a#Lb z%qcmg((rc-Yu3bX^7>O}M}+V(_xA#=so{zEk~+8tywhf=4~HRf1q~qbuwD(_N+2zH zuq0?dmmi=dXh^My)HXmV=k$OEgn_wuiqqdk5Sy@D)dRX)oKxSHH$&((Ke{ATPnceS zP(HhKJ%)!9Wc#S#O`gBrz>?_M?6sN;pJnp;HliN91EVwKN{*IPhr7{~)kdmy3sa3q zba5FX^zReGDXs7rw>-&76p%tiy??7y7|xy!hq!bz?8D4&MR|p8(g2A=8Ejy^2+u+6ZKFS>#NC2 zFe;|jQMR%m%f0i*V$hf6CHsvIgCGofg+`+Ve)56!-gHUdiL z00aXpZ;iKunSI{%={z311ZSTnFg$I@rlOuA>UGpeOB}4vHo4}V{6vK#FJjGZlf)9J>vEF>oeItF?$=26RNlV zw{VpDK4f0hmR$f9NwR@CyQ2$X%OfU%x=sQy6U9*G5bj~Cvn;U+wuiqD6!Z(YQw`eo>v92kdNTXU;z zHoP-j))tt0wWiwjR$JmMDs&q!O!Q8a#-w^auEVhRHJJ4GZS!@Ry{Our3nq&#wU0i^ z4$#M!T-af8gxMXz^Al7id}ptb zs;=Z;&-vMX{=wbhMVMDcjXvkUBBAVv4M;3OahPaS{gX|DBYR@!;X49T9IT$bdiOgE z6xQOcAxqF+uAUG$YxMk3_Zh`Wgj*K6LK8_5mAXN5dQad;S`U4}%-4{DHAGhI=u;B{#Z!6S zp37F25z~}XTiWxm&J#r$T``=i8X4P7_K`ow8LF-wFM;(ZReu3q@K212w{&y#$0+j3 zZeunQSHj)&xCC*-!YxwNuCaQZXxA1Jhx#EUA<@2+D~d|JF?8`T1@te4DZtnD(2$FsDDjvbBE|#T47*6}F$m zTqNDjity1X(`x)^_A`|dlkasHQ5Bs!cQsm#Az3#!fn!A%_6f@XKy1WQn)qjgpwq$4 zFKMnIW$Hf!`vYG#%<`FAO>96Mf<)&mJ1w8zKfxtOy_m!%$HDBiRhGTEhh#n_cRN6w zh{Kp28)i~&LYiOy{_Hu{YlE63SCEKQf*)O?miB@rG@qyDn@+n|9G@{ru9W{1--*Wd zoaefAdAT6-r+&ROdfod{$@dDJ8M#EOUE}lCM|71Wm|dxJ@((f$<)nFC};UOR|`J0gthamKg;O znAGYqvTOCH-P3`%{0F_RJ1Dr=kbjb?nO+40%wNI zR~1$(1;mjVBQ-AT1*CSE>wz}MSXDKPwxuC=w|@o-6&Hl;727l?HSPp=4KqM(yePV$oa;){-V+yIx?uBf+S~wKE?YK*#jdCX`>p zG>@)Y03=)?#eAIbV&5AAxIe>Fe!uRrS`GXv%W`GD0Zc!~@*O3?;mX zwCdwe?p<1|9G;Uop|Wco>BUE3QOA)uPOiM4t(=!=I!6FK6XWKp^pZ6ZjLyyJT6UzS z$b4)8L65-mI<~3%Tw7-WbQ22{6wzx_7-JFTjqBzU;zYeZ*KeQX8Kn>*uyvh2Q1^a4 zl}(ra7at6?6qWGa^LKe(`_+}ENI2`XMm3e+Ef8F4_1*j%SepbHf<9W)8F-OKjSAU@ z58#r~3KsfH)nl>~Y6u{43~1RCl~%K~E{53zEd*MzHrK1Q`Gq?I>DH*?TM@BEP0m0T zrN$ylB2-4!lt)sfT<$3S!cmI!@AF@5R*+*_MW>3DfE z|N2=Nc*o_{bAT~p1HFCH8Q$rS#M`Q}KoD&eI5(tYvX4p@f%M5K_YqhUq$m?N zaM-z9C^IzJYWYaz#_^O@j!0QU)}_uok89P>M)!H2mWv%u5Tnp!vJ-X%)RCg}a3XF6 znjfi;mgf_kA>kU#5n>^1m<4_D!Tkj&U9O=vCAePRnNggoezo8iBwG8!^|PentTVDa zEk8_QL67%-NwqH?_O9POP}hH@pHt|nB(>0?d&o9@5F3Goq{lC6yI^PQZTdSE&aVmR z(QH)6mx-k5b~UD#zmijC4jxPg?A?@jdWYMy>QlI z|4_M^s{Dtz=q_SII0q*`14{kauQ#(z@JWO6LtuZ?QeMNUb!d78t;MEwe&_IHa8kx| zjSGP}q_ACrH#$qW8r^7Gf(jcoQs4^h0MS;+9NRC547(wyChUwA%7?^(LOGQ$Rzz9& zL$-QtaY910aYiZDqz+&zAd*;o8wsr$?DA^HbW3N-&?GI`e4%iQHdMdxTl&4{SyoV1 z1=Vw*FKY+m#7vy~D5d1(=17w-)n5DU1d%D}_Dn zJ|1n{mW=C$pXMd4d3=&$C|1jGDt9nRpa^ISO`>!t-S4zTQp4@U*+s%BEB%ol7SZop zzHDpJ-}(m$Y59TSbY6dyGzS$qz9h&X#(OBD3$irhu5y_5X~}DbeVnApMd6vqJt`%l zNQ#{OnLk<1nDe;UDa>Z#NjuC!)+g_yx=O4H2Pw)=*!%ks72v!i7o-iKw+XuoTC3zz zYM1xpU{Vcimth5cdfWyVW;+4 zUAz~Pv-107j?=$@_misYKf=kfmPMxLp0y&SrNM zfE;b^A>X%p& z9mjKH7~3aCuJGaE=M(wnmVxGP9gDl3zj>@Ue}ZWS@pDvT?&Gn{vf>&-fd_uJF>~al zYxruG_KvxCgmQ`Jotx*dL7s?#U6VY8cln~Z=}UMNnbe5<1!JC?+MV0Yqxd{Sq-Fs; zf&g!ZpxI~K`}5eWc(a*@I#tI*_8ZX<@tLAD4^Ns9m`$uFP4|lgBOGxzCynu; zj8@}8_}IC{`gl3(AlU>}p|m=|PwSj8*y{tc*y3z^$3azv{dn5M2Lpe)Z`Lc1^wNSs zkPKqyNQ_?s#JI-hOmp^zU?jXu&E5x&%|87!YfeEdPNU!5LxSGFTp`V&VGRTW>@--`@l&N4t)4Z0$aXKF)~+>{)99K3iDO3XH-`Iz1lRznMrPiHFFw93Q5?Q=siZyltn&B+(yH?f9l~QMXhQ9G251W2Ys{F z9NPlBrcR{XSi%Vw2m&?+E>H<8FU%BBJn)`+Hju3k+R>3fdB_hpS@bgQrTxoe`0uxG_vdEfTrUE2|g z9-~r*E9zo%1@V>~kfJafO*4(Uh!_6$Tr=W(3bam~?8_QnfomJ5;cQ5(fR&bhomiu( z?(sWO3V$N1RK3rjdMB5xthsOmTKCN2t~Cet$ko&yMbMwwP)5Mv@w(D-8D#VV|NFqq#yExkaVC^5lMsF}&jL#`x;;aE%huDWvgd41o32 z*aJ2Bpm@PZ^)m-*oYsrarn4-CMP8OLq0ujqmOT( zNETZDqf{IHARKhZS8B$@-sn*OJTAl)z4R{2wvOUP5^8|JwxkX@d>w>L zh8MJu;B1Z#pFFaSYwCY2>KP4V<^p+nVA`^YYwiXFck~|KCZnfXHKogjQ2a6K2HV%B z$9F;R<8|W{3wEz5Q?g=-{kQq0hV}+NhJZ1-MNyGLvd_q=%Sa~DlZLN`7Z)e!)<%B^ zd6iYjtbN0k_wc1AjQF`+<0R}K@k5Zb(5G;7k8CaaPISnuYizX>-ES89s(nH^h84kF z#Ly{l!8^}&nMLz9Z7iuRakLDR%^JB`jIvQv?I@>?p2x*jOVsJUk^%$?V9vt0mXb zi6vYVPMomzWMI#f@2E) zG!Yi_Q6#04U*2KF+4i{=c-K4BS8`CAWW_tM z&)Ikfdqm|sJ!q1R_nc=R={gHgE>Vjv@VN%Bp}!Z6_unJ&n{-L3$O@z+pudxN#gOUPPs-WEfS8h^9~M;n(Vn^61Yf8YEzT4A&Wqv$Rki>jKwVX zvGT2YO}Oyz;t!%U+2i?``ePY*#~<`Q&hh=lgA#^+#tK*;Bb->otf6KDQ$)u@Efj`l z+!8hL<$KSjAE{X)SPm^-l>q^D?X@3UIE5euK8vZ8G$G*+6lKcm+BNVWKB?4XO^gii zuK1tqAE#t4H>|-bvtvL%d%pz!(8Lt3*mEpX5AMKAFM-vK`{#*sPDas#(_cGHKj{sa zXsaccT#cdEx(Ja34x}V+<~WEWZ^*B%Iyy)rW)=~~UC^I4)9U#wF*7^#?6NX_s7MB7 z08-;xY$yV`vrbkEl*AHBik+l+T+_EDK{nh}95AP;E(- z2@d89-GPpO)W8l+-9=ZaA9TMJO)J_5etC)8WGJ_@2pCWcwqf?Tlun5qtL?*zNV8g+ zF8iI=p>SON4S)m2B(TqJca}2d@mK+BlIGdTF)!FTFwj{Grd8w(Bt1=0W*OEbY^KYt zwZ{Q1Pwf4Zm(a%Hb9#wqR%)gK58-pzoW|<5i0ao#geRR}#Mgfa`PzxH?3tJ%6N^V$ zbmhxGAVxOOknWt{xuh&gPB3#!%tde>3^B_btWkYTPZ6JlVj6{#LiNI)l?^E!*Bcm> z*I$`)!Wj3EcyHFKF|~FuM)CsG zIzZlP0exKfy2a<`{*!*~ml+KmzD<0pp(DzQNu2TSsSu?2gQ@=#hL~ws$f~2kF;Y z7*5uugipoNQ{rP0XO=<3kx=ai*?9CORaA+RYcLJhTe^jHRl3Xv;XD^D5Z~8Cd1{{u zQ}~qoJ@!<=I^f{Ok(b=`X2N3j+T4f*EHFOvgMkrUfK;cfyRW(BcSuY!h^i$}Y93{L^+%0+s>r0C+P_r?UrwhJnLYr#&P3}@C zUtgrta$xf&q{#Vf;Flj2Ls4CaKpX~o55~-{;Fr5f&%U)_6NvRc0lKt0c9D)4AzCda{GZ* zOyr-7g_z_<;1^%KiG?umo{$V~FTK`A%VB?sIRs(b$l7rFMKqAERV=bsO8QQ5oLsqT zb~e>dh*GmFz$8{^BHCbgsRcw?!NiX=8~n(i8H?Bu`=I>>OuN+XYnSL4r`f@nQF0jw zV_Oo3+Zy&I@JrVC{gR`(SaA?}K^)SKC{X|h`>2+_@(s%Uxtt?ngUDZii;1v;6rr7R z3*+VLaNt8ntTqP1o*9F3P7Q3d5d)_OvX-VWwA{y(Gr_3u>|5GKA$Lh2DT#R}ihcX4 ztgZ=T>4T;Jqo_)(g*%iFy|tI^y{CuMl_#GBA;MI<;&@=fYTu)R(Uml7-rkf@;DTcs zS<(`#NH7RfCYUVoyUOVzMN^G`Dr*Ja8w?6F<`S}vR}Fe-lF1*MGaBh-d(gDmcBE8O zf950_YU(Ae*VX8%WAvhh{t^Ev6=+vUB;sUA%d(exR0TY9hcET|i^J(nGUDI)72tf;IW5-Dtd?BH<^DS#yGR`S|Syp8vWTz!xpxUpjPvm7cmUurzzI*y{@(V0(ll8iwMe;OY2#OgRl*+@qx_E`}^jR+u$7V z^lSr9$rXR0M~wbUO+{W0^b&d}GmC^)+3~EJ=^_&?fooVF+a}(~u@|7LAZw z;o@;}4i-(S();Z*4gL>hRhC*V?{EXzHHK@UvW$|x8F)3yFTXzsY8W%fx_%(FU6C9e zBiynWD}6cM^Bq;|oH(g-Md)^NpmLZPpFHGDJK}TFW<#pWkprHZ#8K^;wIKzZC1*Tu z8DscdFbjt!XG7(N1yiv<@rxWl*Yl!);{cC;9QDsN$|_|IV4%vp3U&O zGPb#RFFGue;4{2_MB|69IirLgsC21u@L`%NbKM252nH$CXa+#1f~4eyBSKMBfg+f5 zAjL_3Nbz>QBD=(z{IkghA3r)VjL^pJKwDIRsv7G7Omk@*XUwt6&U;MkY8Ys$$R5c{ zTHN+0RPyJbPki6_3{1!z7S-!=U&bw9|HUsgg)Mr3$;?$r`wv=WL25edY}WUQ zPx3>Ou+LcMSFRw`ac0SrZOCO{eoU6Un^#}b(yGUvso-!u;V)oCI?0l7ZQB3rfci5`SNB%7H9v&7KVmkz2>BfS7G+V z@5=`($X?~Ers>KN0Ij^*}M z;Zo7evi;lW7(Gj#>qeOI%+yz;{BMCB&5t<~K39v#D&{~+> z&XXtFT+5!?!Qbp1GZhf(v#dI}K`}ZCd}q|PKy#fHN2-aPvRy8+NUnXzJY=sw!_rYP z07u^NN&yhwS+t^!bMOzZ(7KJ&=GJ1F@{FG=f%sQ}b^ysq3!sT5edvHy!d&Dz<^=4% zjQ+?QhDM!ZqXWr_=#N~l&hPvD^DSwM<)G0!?Y|I}zrsGczmLPhvDd_(2g?zLK^*;oq8z ziYFM=8;^S`zGx<$m4qA|n&2sjSSCJW^Wui9NhGmEf1jYeFmYQIl8$ z--fU*2v$ExPxA|C=p6bK-kC)(eT+y(ta+bp$_G8UL^ zmCa6B0t#%Y^V?>i-HuD)lcL3|fR#cAqQ^)|d3*2$hYEk+)fFS!_wpc{?j)o3QT;}z z3FZq{#iYpIIE3HRfKQTikTp^PbV{(T@kvan2O>#3NowkuXL}P zE8+q16*hi7(JMlh8~sTfL1>sP z&sl502fRrhs_$43I@#IGLR0{(uhYn)8Ge#=7dBlvkA7@7`sHRenl7bdJ(Nizi$*8FTt>9@C~;MCQw1}l_8;Rr z+sP{j^z)1RBL}k1Ev|fI;K1?SQ8Njga?E@t{Moe;{j^=Ueg)PI1xixC0* zhK_rU^A$9+1<$1EFy5UOjrNJeun1Q|B9yog+jKLsK%6NjP}sh34QTSC#mF2{8EMSL z^g&M2r}bBbuB49EX6Z}fgAWDkS((3IZ&Q{}&*Q>_fc7B;xUo|{ZD=2a!qc)Jr7(Oq z#|Ye_rQ3~HNkyX3moS6i1X~P=>RA+72p08c1;M77$AVHUD1YTDIu-3_0x|lqAo$EE zsnIusi{l{K;(hW<0Ts85pO1lXH_EUnyv^;2_}ZZl)D9sI7D%&{XQ;h9&}m@_9m{-t zdG%i5yl<8%Au8U)g1++RH~H*Wuh;1e69-rG$;AtQf$n5*LGZ&>>>0mNv|s)74Z@2k zox7~KxSvT@f{Fcs4A9AMWyA@2PXG>UZ6s{kP~b<3 zI{gEzfKMS~B_mvWlqM%rohk}wYu|FLProN|DtkL;6gcf)`x#P#y{$|`D5V;lC-oou zcpIpDFm3R?ih>2qQi2ogS2jf~_OAT(UWvP<;1=41;oCq=iA=3PVVHVKU6VaomZmXd zvA=1iriqswXNr!f@(UJv*43@!c+JrAwTa60Pv=ee{wp~*8cW8$#B=<^>|IR~QZL(% zYBebS|Z@QpCOlY($#>>;c{Vdn{ zp;#$J%ez6l^STwj{c&$=KjNZJ@dg^+7bsf zzYDw_-Kxs2E*+9$_l36~tHQsr`!_W5SCUd}2RG&xv(01vnW;RE5Xyjlt}|i3EZ^Au zB7M8nwpXNHX+c@2>b-o*Ah2t1bpY|<9Wz)I82Q@0T%u=ixxrPM=)uy6#vL2ghq0h0 zrjk34C1JkM38{&29ixLo@xjhv6I3Y$X6F&&VUtQ@PE_%En;il!^mvtSg!NdMEA+&E z{XkD#Y!foP^}w4xx|s3>%xNTs3gF1K1vr|4cA-o_QaZqD0*dP)PUMY*30E@8_!+!h zTUa^Fa^xO9Usf1ibV{Sw*4YS@bV@8HTgltjUzwg(LcSv>LJ9|ziImI>#qv!NQ&)18 zM};znkIHw6xEC81vh2EgCxqy#b%c=6sLx?l!wJ}m%;`P()9W_ZO?{LX%Ny1egB=Ft)`j^g2orDdlo z${1gO?2dZ#Gpj#=ncJR_`%${_I9RszKQgp&w$cON`%C-){KtY&<&SRE(FfoD7&n=N z!NWA4gPZktSjR^hEWNXOp!UyTk5S=4NS;!{!D;O6JC;I!_RH-?ix=H=h9=~@FS?oa`&G(l z3A5A6zG#vBFkVF6dhHVw3%ZGW;`~%&`!}PpWPm^AqC&F7cOws{l}Y@K@37xm5QCXL zf9)357S@zc2fYGHs8y&HB>U(_(MNnn>66t0Qw{Ci5)1fte?|;zIJz#>)p1`CO$5$- z8u!W3rjwT7m1r=kMY4pY*sxX&quu(Qh@Yf(!01HCNTr)~vUI2d1$MWyP^TeNhnZ+OXe=+0@XVe|sDU2Qo~eDfV+TAW(+cPLyx(Jf=+ z@l00Z#!x@oHr(Q97O~S(HBR%m26lw+4FVVOjq#>=9VSuC(OETT;tBf|v@NnIIMzJH ztms$2cmszXA3sY?;3A@&B7~5(8}g*!w=<7$pVx>g=n^qE%Nyn$DJV zY9^?XyuvDYR2kWK%r2o8{W0`A!Xx-*vGV!Gl>LhUW?{UO!z8_=z+!2E3SCmOsr&os526$z&7-*hdR_1oDn-OOdk%-!mwMuw)V83a?|a zF0!cd^PHIQ$G5+?$ARzV*v<Jp^6VL3_HQuU>+Ug|qqV;^H)ep`uANSF zK}Bdv=qwyfg1coo5*VSb04Y2a3a*eb2wM7m(sRn{mjV-ixd8=KCeHl2@vG?I7s=tE zp?SxNM~Q!c4;YdM>0~y{a!N)l%yLtkuO?l+w+gt7HbNzd#4kYDEY zfWENqxVpX+g|O)QoRqWtDkc-mFJj)3I0472td}m=U*K}x9$4aWczXyha)m4YxsNqa zdF2QcMxWO0#%a6%Krt>INs{wHI?VKE(*V-8^cU1I*^~2osV?C{&a2}=PB7nKD#lBC zd*)b$CbMdyVrC zP~MxVd-B|^8t}w&P!F`B?OJKiPl$$Qb8GPR1z34>0_rDbPF1!Y?}xh>33WZ}18$cu-s(vu$=Nd9K4pP|P8SRhoDOiVPb)dB3xGsD@Jp9>WV?xE zh=g(j2E~{q=_bI&pmu*c)K2~|%nJbH9`n;C_hg~<=5%SsU(5I@-K15!m7u7Vj1=Fu zE$3U|<(@n}D@Hj9r4DH$c5d$volMeJsCDDk&OkS0Wg;6~p&mB@*yuXGbghqZ7XnYO z8r*0YvX*30(ksgQ_1iS|u)Nyhhdp66Ayhw1z0`;OpW~>`Zcz@OEF{cT1B_*?K+faN z$dp*0 zS#;2ie-hC3Ku<*0eE}292oQF|B<9=E9q!Iq9@Vu+!?DNQa;|=m0b7#rX{0fhc^eoW z1Va%eE&A3cNzksS{>AxJS`M0$=C-SakL6!_T>bRbE^HHCylZ|_&SJ%-h;8;U=X>%j z2lTqv$n?mLO&Ca)aJ9Hn%FOY;`PU12MY1iaE8w?h>OByl0=gUD5JiEV)X80Yi+H>< zP@&MHFfije<8)p~H0qh9@bilAg?N)U=6)*mB)$}cdLBfTHHtI7FS43N=aKbukJnsi z1T8zNYfoBC7~5){-B316Wksx9DH}7hcl5AxpO~`|dZzKvD<*>>I8f`mo?fS1c@iZW zMAnqqMv~zChf9>!8#@G`W*4|gNwy)tBG~DtHrDm-<@=o!A!TijWs&c%!LGlwf~=Pw(9anXL=Go$ z&*?@M!lk){R$y&>??(z--5`!pJZly*etGG^m24uB&BC>dV;~#{zo+wjQ%tcS!eD37 z@XZOn%zzjYPi*Y3(-S;8zS#ZVe0aD9DL%#{3_tIcJ@z;q-b|NH^x?oX&ohxFaL8^< zGu-SXlP`t{c28HQTd&ccjairTEmq;QTGT@oXy?KKOIT??=?MX8QCxv!5<+M+Yo^@K zL=B02lM^S20iL^MW&Z%EOps?(I_f{Lw3}SAfqua~dIAe$YIc{f)zPt}>@mE|{h zr0UgbjF$RXL?>H5=IGiahqbn9%iy()@QQ8%~^X+zQKdZX|R^o)n zJ*Iaic$obW#YB6DOexaf1wy3pdqv7}`4%!oODR%vsg zNUWbLa=Cr(0!^Ca;yk`Gxj5DAZA54s3yt<3a_UpZ$NxAIz6XsH8W;PWP3if6(O6{b zvYeFY^GA!@7t4b*+$ND;zh7rpB@s=|4!c3&FnL7x5X{&Ou8M8SjXO1a8Gp*fe?c}z z!Ld+p>V3D}6s{)lSoBddVN2r-6Nw{8JhGh)a_QPy@d_igqx_RV!TM?l>fNyM0mR|{ zMse*l#XiILI~DG@jonp>!gbbQcyl(tmS9$jUH`iRyVGN4wyID(db=|FB&wXRt5NOn zw)5-dzWnULBdh4lnr~X(k8MBpj2MoSLHpwv+iH}o;b+|+T5`RFn{E<+ZsKlF7LQ<^4Lx|Sk*lZ_m2?^FpW~;lk9&0X%bdtCu^^Q??78j74LrlKhqE% z_>-%OGRmhm)9?<8$jMbHRqmc)GQ})T$uAN)A{vyg{&2o8b z#S^EHs+;e2qbpj6rSjT#X#zUb26bPZ`E`mAmA?B4OZ$O(X)7x4W^F!y`b%$VMo4z) zoo8uTsC+!x!pb+F{`B1uR4c}FO2&8X&Xu|vcpOHGs2cN|F!LnqygYH36k4pJ(Uc=K zW}crnjryIhs{!je=|TT0Ysahjk-e3LSw``Ti8^1&Pvd- zCF;G+kv5|sl6*vqP60=H+AZ_CiXs;TVu#?2w&Mv#Pb4_Rb@6`X^0<9bXEJ1 zS^4%e&tVc?M^d312KHs~b&#RP_7nYXE39WWYfbBYVR{sU9N9d$uLh#UtN7vkEUZ^u z^@@(H%(cLQGP$Y@Y8IivS*OvTPR*(DJI&nzgMJ&L*;c((_koFJuIxOK>#7kir1;2? zfE;On6{vqvtkE6mq!fs^D`f$soMReKoOf#|6N|5LPNYve%B7(Wbdc?4hZg4{(Gsn$^=sF!%h9pBM*Vvz9z3O66FuzMy>t0MZUZ)4$T&X&&3%5)*}j8w&6Jfpae zXv;x@y@n>_NpRKFFW)u6rJu0SY)yfISl;i*g(L1ewygtN2)A8+Q?^-TI$#QuMdV}z zh3HDtQ3@vv=Xk^Chn4s7!k!ps+1kbpqPAwl6kEpHnO50Ix=`!17{X#vh0X{OnNNhO75aZuW zD7N~F0+H%8`B5lCQsg+mntf=ol4r^EVWRnnKA8M$P)==T?SM?-^(*BPU9}h03-bWG z?GvaRD~s0e%8s95ze81excq~=)wTW<djE*Y6m`y!d=e$EOeZ9Y7G@0o$wB?FVk|06$2W8sIll4jY0sUK z`F<=nSg?XTsDbo*dymZ<7bYAixaVG%{!_jS#rS`|Vqv)Ml7!j_1z}|b5|jpGri>*w zx!Iz-ffD0q#Eaq&Rnx(r`|1;WmiI_%f1tzQ@blcMOjVD9U$D|kQ`_DgWqM5|v?5{p zk&r)dr1isf_@@T++bnoSO)$x^+x=z3$FPJop`fZiOQ4rYo5JxoGmkKb?mJnb*=wB| z1zD2mqjEimLZCgHc{v7~ItkSj<_60g{WC^zF{)OH`uEdJBk?VeuZBr1ka8+ z9h>vxG!sZY8KPgMLeirY&cltb%x|^zb6T%qzEh;8=fCq_dZ}Pqg;T z{|)EFL!3@1sPJX*6TJD#R;FNC2K25k_{v^lT2pf{PXIm9TMTA(e!3kJX41`1JZhUAa-HCkdsVQ61BkV=@txi=E2X>B0&+U5gPec#9NZ zXZlaeR~mSbr=v0F8u#9#w!&tzarWn*AMCg!n%JN}Pi7O?UyBBNo^1|nC%Fu4$EH$g zy`D#~@-@ap|0noT6~JXZFN;)HUI)%guT*T{_OCf8m)DVfY;Bvbsk2!6YUX4sJ)lKJ z5?R}X(e@AED)Z88O8tyn9&i zrn=_RV`eRz~3*+#j-AQQWonxr@CHB1CU>iv+_{1p@)RIdxXK&~^+ z>0rW1gn#SAJGe!0Kpe$nD(=0&rH8kuW;Q*_OEjWIwjM&?AvJs71tsQk>(=G3gY2eQ z(!HbOUzzx55&3Mk63(7Mm=4`wKW-aL^ zmLLu6kI85hrZZLb$aOlFk9dJoX%JhS78zi8;6hfkETNEen5QaST{umq!kkd*;W2h& z@#4ZT$)oY5LyU`0HBs{n-S*VM3Tv_~d;S84C>#)(Q^<)0<9b8S3!~5QBFuUV%O65l z7?(n&e5xp-&TGFrc9nj4U%=l8?WVlNnFj%bX9({UaYCIyDkgKfD>Uho;v>1WjzNQmydX_W z^>axa_=b}|I$qB~3P=%L^FlgRhZk;kGJ(Ebcm3{4`Chr;hh{Pw>YQvvCrO zfcV$w{aor#Lm4!#ip8$WgG};jm=wudjpXv~CtD@{gamD6K*k%cdu@+v>5Lq%mq}h3 zi`fXt`(A0$I{1~okx8m^S~_I>^Ml5oG2KIfqt!}Gjz5_%-G-0|2_-LxiE4lEg)F}) zI#urK0vqqdd_Wo{sW|^S2GeKP;an^)OE?Bc3X2nW^!%^R*QZWgmgU0yZr5c5ZbUc} zibaK=MvFUa-55Xx$iRSL*kRr=!+A_01C_KT#9MWN3_PZ=%tn#Cri?|kQOx^sdP z&vDFa@>|@NMpK@dA>C4g7NrW^?{}=4!fKomG?{7sS|LC0**0nH`}#g& zrF3?i427+HN?d-5uO)N9Eo4Z>2B3*QfW0%MgkwS=%Acji`rZ&W1&i1?ABQe~m>6B7 zQi|uVd=`BwI2XqJX{l`Ps`XZ0!)8q}+g-W#bd`388M}b*{=UA()~)lUUDi%asBvZ+ z0n_M(yN3@-5J%ijRM+Zjt5Sik#yI?Semr!uWRsZ5@a1-4>kn{0)flfaP%IJ_h(xFC zuYrAX>%92^W<hC)5(i~m5T5Q%Xsns;GagHRv&8bFYY)~mO)q2{_-bJ zc@uk%J%xHDpetWy!t?~H{p+-!w)ZQTe=20M3s$t>~c!xiWs{0mZ>*v87^9jO(s4OQ(~d?g+kM*&}{`3$S^bo1WT zJt$s%W{zxB#N2O!21p$lPP;^diwkAGxjp|C&2L>@p1zlnK_d?Eupl)HBn*0$cjGs8 zzd2D!B=+`MN=)OrTZ?NUfWU*uG`XUddXTSXC9h|~g_0gGfbLQ{MG?+R*n8J|77XZd zbL{yh9kF7Zim^&u^add0ia5SNL8yVQ9a0rp%3=GkIlEJTuLAwTa@Zb-K{xMBP{N#G z5rHFtxyv%<^B{i)eP3!A_WpzeEZ6o3Ry=WudqEEWL(q*kpqa@x@bzd#NCX_>K)ZXy z%$9nM{RK@;lobM0tT+=vh9SZHM2oS_<^o*Ddsn|aLU(tbPoEIJUXRJ}V@w)tqkLqO z{sG9=UMdYg>|F1?$PJ*_S?~5P^xmE~t%gk}?Lh+8OQ}1V8E3Um)~^Y%FhRIfo{^c4 zaNQog)KrH>>K$}wfSDC7i6JEwnHcQ&t}~P_1x;72(qTR#!aX=3msMe~SIzXjm*RlH zj$n)#RLL36coKt<7W@VJ=pk)y##fo)Exft{LBkpU^c{>w1NN)BK9ABsqs;U-_swzR z+WE2!8h*X6$qk?dLnFkaWC%>)kPl8|lwsT<>q+ViDAaq|1^0{HR&F5i*1O;x=?jrh z1gAoo@KNT-55PHJ^c8oOz_hN(f~zA3>gRx#d9PacFgBc$7;ZkwC8JKS^jFiu9o7wh zrss6qZk?he2{}x`7f!J$Z$iTNNIjm}o5Gsz1o1Mg?e~6*%`;muAOL*w7~|*y(ZkuCj7KOtF-;f{HuTLJlZ=c4O zltLCH=CTLpz(>C>YvGkV$h@)&FMajvB;|LA13?h-q>S*vb0~WO>lPM|hQfnj8?Vr) zuqsCg9?(Z)O~Zf93%{nbQzEP%#xum0|9YCCEngB*7>*j5J4qxY$U z_aeHp)rePm=m&T#AKw!yx_6j0&BSD`d6Kp79D(>NdgZ0Q&B%3`BsB<*LnUH3*^n~su~O=baNnOf z<=V!SsR~}UvGN>uz9z#4X{Xk=cOl!}Y(;zNgDV)+sI;tH4RL@KS~~3%N=~*ZWo}S) zg?ydN9C8B9+#7iuOL)JI|AR9Bbh=5vO_Wum=CVglrDb~3wd^>%r5RhNaK8Hw@FjjY z*~rM5KC4(*TzUQc1ABy>$mv~wTydk}Ry`wjUr6&CFqYlOmRBN-$uATbQ{_BG06 zX*~taAs~eNN|)ip46U$tz<&JIe9` zCQT2mq>>fv`8kMcR-A(LihNsE>2yQp$|(ziyl$|o&bh)51&91=)tmi(pOL{EuwM)i zUaWvBQX;~`Qfo!qSGa?OHVXKL_iB-fDtK6XDd zVNt)RR%{63QX&6cztC}w{sFxlSLkJ$#MP`lp{UFADN*bb-(f|E$j{{o^qjo&43cEU z^ifCDP$|=qg<5*_23!M!+=yXeAmjru?Hg$+|pDz#KvR#GFe zG{fxqe-IaXrK$&gXm%uyuQRxhK%U{;oJEjc8{~4jGWI3oBtvdn#DS33ga%AU=8(dZ zA%z}>eY}69dq0}IKH;KTc8NU1gen(3V^YqE`To4eY4rEHALuF65>zDc>^7zdE>o7O zr6LE{^0mu1`=u;DXl4hQTZjj;TF3w9ExNfLup-1Gi=hNw!oPzaSMSwt&T1YJD1A58$)rBYb`0G!WL`Q%6o*gpV5gS^oP@*l!j~_lrmN_4ISn5om}ry36LzY+EU4sDACQfDGS)dy#mxCXA6&tKNtI1p1*i znnIaC94b|aw1P99@&q``rJ+1X45KYe0`+fXBdF`)#Kze4#=!EhvM3&QY2)y%t;NJr zjkWJlDCo+}g?aRL^mZi`0L=B*&LFQbybTCNvUaZ zg5nrSFeO@NKROP=6xuR4mm3aLDA)ob>l-1cmTO$af8j?Tw7@Ae(UO~~N(wfGS;~-f z2(PT^+*qYTaeOgFc$ui^|Ir%<9SIYc+)>^DZYiuY?%Eo#z?VI<1mUPBt>AsK?*H%^ zEnvQFjL{SE&D>MYGzrYk$W33z8L-MkaCbsE4Z-uDr?b@Cna#z-QT3#1$xuY9cwoO* z_SSY=1mn;GBfuqX)Gf9mmVbeM-Z)KlgX0F7)Um1!G$ydC0Q0n=ARhzGPZ73 z%-cYhXy*J7@a<)LPuh1+^5|Px?hYJg{&mLwN5)WoZ`HIF4dCRmsKUup*-dyhwXH4A z828o1YX9rtEjl5`nCW&iqFx!R0kFWp$4$zMm`MaT7HjWG6haY1lfaSA0dt*2QWzIR zG82voD8mD`=v%c0#dZ8NRLjO!d7hBkI?>K4N+}Hl}+~+}rVW zsP}DjHq|O{YuBx|w&}QqND-D6UtIu+mC5VFOaDxW62>$BE(gFI5R0Um6L;G>c8+wg zE*i-qhikGy@#8;0+5X9;$32#D%zeu5BAw+;4VcDllxfJaJSp=o##*Qv;x zlx_kVDX42*f3em;-L}LEehsed#@`?-My{0T1JPM8irzGiV=%ErN;w^d<&j8uf9xjijoa9WNpZvR%IHf^N{NV+WA&VNV5`xn@CJwfsz$EZFpd! zDMaAeuMRzmsf?bS86a$N9s9__BQxZoKo$2IfOO_Q=!prMyT+gp&EKWieY@FGMtN`T zyjj+9MsG^`muSM35}nmjEIz$9)4YuJlzSM%9a&?NfD9r*cuRIjWyZQpuC%vLiT6vS zUns>U`h3kdi`Rd<$?fv}PHkFcuC>ZVi!Xg53DOLA_HGiZ| zmOG57Lw8vPWrP!T_sSQ2!GwF}r!dgefTm=AVbX-WmNu?H8kI!Bg{hw}53P5UHxhG= zr3@kY^Ub)HPe5=8#f>5|`3x4L!|R7!lVMI!1j|`}$o?H+E36AH1%43U0GHLw*dt3& zZ1ShCrE6c@y~o6)Xt3ZbNI@#wrhlf;#39Q_1TkD&0a3!dQP9RvQ7%#x({JsD)xj}? z;aSV%!DdjQzP(L;elwh=kkBZ@s(vjCF&}ujM^u(LxtJkSewGy4)v++UfF(Go6$U$! zLP}?sxB<#Rs0iP3UwJk z>@F?8zbyvUq3tt0M5?@lMW`m3c=mjN&L*d`YsFxc6GFG;+RD-1)4iirVeE`)oM9>? zxZ*6WYi8WA0hyD9*GTRapQW6R(B>(u{Ch{ilOM5@@~XzJ=*IMQjt+#Xc>4wKec09%)ZI9a577btiQc=Oeq{d~ z#r_vh^m1>gwtI9DL}J+I{*v2WWB0Qqv}DwsGNX%}v)v$4Y0$o=z`&BZ?hwTS9#{*2 z$8qx_h99Kf_01|~%vqaM0f`6GQQ_{)Cp+_rWlxsRXMn^qWK9etN&1a2>zc=if`|Qb zDC>1}TxJE;KR_yoZ<74GhxJ=k(v~Mv(@{Gk3tP>V^M8QJzgP2z_2QIs9zOH!A6ZF0>v!??7VaH!(nv|hL&A8Z zrl^h^C0h@`9)&fz2BFfqp0Mf@dMhw>3@BDQBgDL$C#=PAVGq{BKlaJdP5NFN0>Rz6 zFEzV;w?xVoDeK*G%^GIk()6s*#ls+jSx6q1=FGe~h?i`mZ-}y1@s&Dh zh7wrHSFauK|ijU{`4SC!u%x{0;=N=bQ){m9N@_X9z4Rlc~u!ih4 zR}gfVr<-3!c9mWLv1Fotj42RIY(Mb62m6Ib#cfmzvLL_!1>7ADb^U>o#1@sq6BX58#%!_-GS4zH}=Gp%I(pto1M7|~AWbY)t6_O)E5kBa7F-jNU%hpDy@t8?otMRtU} zN!gbFmS#=6^h0{&K?_U3z;H}s;ZTTbQQAxIraSN#V}l=#4(qA?dw69?u0870eryA# zgCHUT1>f^@V!(Eqs4rdjn4ElDLA=vf=6dlDUc?NB<{JQu>qGaqZWAu3($5S!F7GA_ zoZ#W0Si%#Y=dV2YY8>_1N6HEN5)_t|6c2mAF zIwlcqGXWHf{)d2-fukF%@g)nZZKdPv?2At|g)Ngy&rh#lfD(p6%x|6C*UnnMv`@0$ z^^;Z~9!eDJz4oyGsU)UUhe@$p>c+l*N?=N0;8HTe&K~25Mqxql+SCo8Jaw?xtM$4& zD$?{A@R3 zmP7Ng9CMI4q)JFUdbs3%w~(0Ncn+Z&FHJSgDPV`CLAjL1v>ZMG&KefzZO81<(_e+& z^fBFV@G}$vUQhg%tc2SdvsSp%p=M;SGQvyx&Fo1iMEOunGf5OLYjSk}?iLK(jkvu? z1YYk_?H{B|!z`0Bzq7ei73g8hMlS9?*Z7V-|7E*@%NrcXC>zvetyqE=oeEcepYOD2 zSyddo%*^p8wVJO^lT`2djA(#(HR7Q~43p5IX#%rSUDr3TuR4ah5G5|uYXAJlym90K zeKs}iINQ?tOv@il)GjA^ebdsfIfRP=Rt;@~>olg-5;GBu(`Y~$g>O?H22SK7yT5=x*Sr0 zt3pptH_KEc{bDNGFECiXs4m$WW0rXF>)Uh%`H8$z1ey$t2jPixy9hPCzx4-h~BW8R8S}GlzojP zVxmwq3umt8KEa9n`6g+5S)FeAyDL@~nBa|Te=Ecm`!LXhDtQbBg#|}`H{tQdSs*GG zxJMh?>kH-qyINyqNR5r^OB&%HGshalyI-YH-EjWDf|Q2JQdu$wB%Z^ zBxL|be%?k8;;3KyT1~w?CNA3?xkudcr2h7`482is^N0;Eho{z}hFN*ca)A6)S_Xjs zQ)1R~-FpS`-<1o@d54q>;C(jt@GF~){U`;#*By7slbO#yg7t&DkZ7DzDMehr`gD$0 zb;i@ympUPHT`LVdcydua3VuvyzlSkC%s;=S)Kp^5J8%%f%TUwkPdkb#z-nFl5KAlaJAH%%~rR#L)Jw|>ZZjI? zy{#zKGR*Q8g32Xu!dar|XgfB265<*!C1nsLCFAVwQe;rP3{Ah<=2u3#66zLdzI@vZ z<#i`ayU(mVuO@5WAelQ3K_~U?#MOmER7W?BBc(Z^^9mnHg1hhoUIM?=9Fk!&hL_%n z_RdiX$W79mVvvW&w4fK)%*-JNFp$PADf21@lG%zf$TF+@yZ)Xxy zxbcaV58~j0^JQnTv^Rgezt#|v#c2ZgaZF3_1^F+S!dfuGm9^RfsUDO3Zo_xXkY>9Yx6HW0w#?G919$$xhN_R4iVioz9_Q2t*Y`0qaSzso&f zukt!zpJHTpp-`#qr!6wz8ShAK99uO6x}ajH8sLm-#w2s<$RSSmgB6noOK{i#@#vv#%F|1@KBqD#X@ zc2F9(Py*kSONEzliy>4!8;g6=1{AHq#ptFJrW6=Peu=oc17Tb|yjhwanpdg_)u^6B z&eY>j&T`!=}Y0TjmNUmEB6;5is7Lp`Y82u zSP(4730P1&(Fwu`&!6+94mOPBD5eUn4FgGId`V?V-cu%hpjq}G_Eq!yKO3CYHp5b? zG^t6cz<9^Cn)DjQoy$NSw1y?{7OPSS93TYX5bZ79xt<{2KX>;HYoCbxPZ zKz-;^@t>GAm?9GN_$FD(-M1ap#E3MYU({e$o@_Fn57i2-Mo5_+XOkS)|OYcWE5HC~Wo8C(v5FHUTFrR~n|! z;eK$p_)D%inZes0bMT?JQ{M*xSVV}mzr#Iuot@QCjZ852GquDxgULY_C4L7cpV52q zJQ^wmn8+P%E1cUBMzs81ltEWOn^h88uC=cf7WxYsO2*~5df|)I|L$MI8O)r>rt62a zEA*9_7u8VqG?0>|vjwyjOOyjrJqLU$+;fYekiLKj$VB4K-nmGdG%&g@#Lrq@J-U=X z?_*~hU$e#i7jyRw9F)R%&guiqZe1gCG|g- z|7Ra`O8;qi{F15Bk&LkE`7v=l>;*4O|DVf$-v@9}Zc*#or<%>{%(jWeu>c#(DIXo* z%K!RvwW1Pd0{1*d9~6g4qZtvCuDJ5KTlGTT{xf8K(VrQw-tT^#{RL}wgNd=xl#ZQ` z(84z7RONh~G`AclO3_$I~NV>V(tgf*7k-jGJ8haKAdz`a^J{ z$|k!eZQ*KCnu8ltM*C%N8~)t*ZF&=11OIA>F<#AZt%9O;@F1Z>i8xF>8?S_lDa`t9 z?K@nag}INriB^1Y^~pKCt~+o-kwE%2M2Pz|n5bj8jVb}i~#8HQr+%ei+Pp7eEWJNo^ z0IR}-{Bbe2my&=~zk7BzB4(9Z0EHPzl$yV-gp^ZH@Prdjrk@j= zc8xYcV>d4#m|$~9Yr}BEVRrjkT1ydK+lcRM>}ArHf(}^~+I6kb#lFi{Xx5SObwoD> zwdm!7rz|mQEpvD?NlJ~BT_c{~H)2)5BsOBG>fs8)Y`E{Sm_&jt!TTDfqMqc{hqn^g z47!JQNPYE5_xI!UaUV8AxT7E)$uHDcE$_`qN6)?Ep4fwo#yn`EfvA$!CFiW97_*Tj}H0@ zlTRClit~ZQTyAS3pGoZDMtg0VEj~UJPRDkv2De+xT$=Z<`!(%stNRMuXd0&}of|E$ zuuDx!U`Fjr1a~EFnmo@PrSBlud=^jgf3UCk>Y!Eb<^<{`FS*T4Y8MtL#GJWFbS761%_m9vpOP_=(Jp?kV22${c?Z zwSHI@{k=Wj`aGh7GZT1C`kxnd5qW#j-2Q*o)&Gxeg*1Y~$ogT`?)Ith)b0Ipb=}(| zIGL*!l|V!>V%omD`$fiDxUanR=D_9OM{uKT^y>KSVyfeQU5%eNdQ%90qL$!mZ=QT39tCnp1G!X9Y;>ouM|e6^l= znMNmQ&F(&%e5PyOUA{8W#gGo1-qg=@_lh#~zh>gEUMfso zqCV2GNV8FQ(>&xP@MCyP2OxEo-KWR}p!mk?Eja{O|3sot8$~X5F+_IY^s0dQ+mMIz z(8sjsTnvxm2)EGx#ok*7#nrX@f{l~l?(Q1g-QA^e=^(+~B{+?Q01Y%DxVr?G;O?#g zLh#@coOe3soA2H;Q)g=GPSyS6&P-RYwRTr`?cK|s^?RJlZbHN${bm0Ba74mVG4bcC zEo}{#wYqg0yOc|aRXx9mKG^CDug1$~w%6Y9;=tHF2R0JaNp%rx9An~}BCaca7dWZj6@ zJhPM{_c8N0=~e2SRqI>lboCWaXvOejzDbMY3d2~G5+WXjk!a5u^vh@lEnXgX1j|eW zR2;pG4Y2BnQ3alXqq_N$>$6reDtkKKz_Y|UUey%6biIOD@0!2<{`=H8jW}rqH{}K6 zoj2m-k@N-%`Zs7J(z3k)Ho=`88$VFtMm*Z)QG77HHsEzKIHIYhE86-yF|;CZoST6?tULBgFv=;&>ikX%sLs{AiL=hjE98p% zfAbHDm`$bb&uwhwm?xOA66lM@JRU4{YC=a(i}!JhghXP4XzfY;9p6OsVQ*V97bCC! z&3{<&g<-e*+DIh9jJ5(|h1}nLCC4J)VWS(K4Srg9EP5`TG)>cc{pHk;Zh)X_|2=4E zjhFs=?SovI?i!`{0IHZ_rde~-72HvtBJHoRK@gKKqpM2_WHQdu6XDa5+bn6w7Jv+ z-$Xx$ghZ>`Pxw&Mcf=<1SzUlh?E3HvUvsaNUzx8-1Y=?p_9S>?GGO z!lmBsBiY^`tA32C*)C#P^OFxc?ZVUS0~Kk+PT4B;O#EMjQ2y9a)o&SZDW7|x_mbf7 z8>~EwO)~^J+7gxh?g~}UeFW#I>$+}QHbD5CPHv4bvU5l@nczGweR$H^GZu|4!_Btr zY!Ca2kIJybvS7(vZYb_E}1JIeq=HXJ$^BpTcOopD}GqpY^tD4(mA3Kx>aE`{qAlvWeX#Itm$TYKpwH*3XY!M1+$o_cAEXTLA zDMlMFOC`DuIkkv@^--ox?=%FRv$x9NqvT|3RjPr(QKNXAfovPmj-r(A=#Kc6TZgdMwWr+OBZ;7kxPyHEj?bwB+W?}941K|4v>>9CT;ayr$)QXb3 z#VChKxy$SUndd+Xo>hQ)hf5a7ieb6*d%5+h?nnKFePXr8FW4P6J?b^ZqX>>Cq5s|w zzJG?{-%Qb%rDigQd?P$!{ONmcf*Eq$yHLD{r`RPs_IYE}yL(jB-J+1Hqic`av>^S} zJLc6H=k%^lDZH>{yQ&KyPAuL9c`9P>n@f`CycNlV$?<-E)#>(irbTHR8dSwYy=T{{ z-Ky}#x}C1}-%WL%%3|#>Siwk;th!) z+HnQvuox8OZ~P6Hgi9Y7gd}IqTp!+l;fbdFB{;7_*WGF)mU5mL`h^a?o_CNjEqEUs z5roW|eam?u=S=E*@(D-4+#2WW$u2=xf!?2uUtIB@N8IVhzI3pXG-Sp!YI!$kTN{2@ zRmC*IJ6n+Y*~d96>FcA@;?1lK2y65SZOlLSx*eg0JDKQNrFlDA$TH2I(7$fxlMV5i zNi6|=D{Qr5sHBPcVFk?74qoOj2z&pssmCMpvY=Sim2svTvOl~XUD;RVbM;*SptI~h)+^GasiD+SSi ziAE?`oiGWI2hSf5yzDW#OBPUkNd|J?l_f5ot~nWqaB(ZCR_k;sO}u&PQ}_p<$GK!a zy1`}ZTv+}pZ2L{FeBkAXX7rSv`Ob^7d~sAqdK8xFiGZhqM!d~uK(5W(Kt}oxxVdqq z*X`IZTM60`?zC&z5Oj*}82arBximG{-%uNTp05+ zvK{Y!8RD_jHNG>2W)6T!_o`!^Be@4lP)}4g+TUgd?xpR2pRd0#`!DHH9ywJ=B;~W8 zE&QL_VA?tUYn}Z2xtf7_ACZg3wWpCRLss0MC~m9&LX+5axZrOzJ>@f#XQg!WyPipE zg0)Vv(JdI)M`Cf#SMnGQcbX5fTA{8#a^(3QSg%toh-v~gCY8k?Zdl-loFs-4j^o^m z?kwHNJ_56r!>bQhiAS*SC|uIVbk4dSnN<^~^kNQs7&(3rq=fcIf90c}_lUL-iEB?& zuW4ynz?k3tQlBI{O+(J`4)whyDqSO$K%_%`2bt!%OAP7~IfQZ^69y!p{m#oD6mj;u zA2Xeup6J3rkCntMo(R@Ybm*rmI}Vs>hu^YmnnBkYxZ!tsN8qWHb! z|9iiX3a_KAqmKB%3Gz}D&PV2Rx8~}6(c;|N%&Ld3Q3e~(hQMM!K|!Mu1q~tOk4qQt z59NYfVYb>=k-ghP*zNI3EKudW%iReSXSUz#+$$ZOnW4+$&*l1XNr(Mtc}D*LaMnNd zo3!z(+CwX~wyVvyjDBlo69{XDD6)K?cbNWavTPl!^%@0DjjqH?Zc7JU0>6@V>}LEC zl&5{x(Tie*ScyUJxE@yb-e0*DO9kmpbAT>|23>ERTy;!u)}5|~1fJDvWV3S2-3rO2 zeV-=3iB+9PFWn4^4N73Q1D5s6%u7J79Vqc64L@eXiN~+qwC?NFSh{TKAKX z-~NbK-&yC#8OoimR<0D_Z%o)Vm;IB5EW!rb8M=ao%oGsNZh6UkIP)C&`PT|E4!z-v zjw_!YQ|~`AmNbxU^5?csL^Y->AapVrE*WXtF-d{g(zJf|j9*fa67f?#M<3OYK$u?1 z)?8I81Ym|CKgkh*1oL;%SD_@8m`OiE@1|>&HO;%sd!;Oqc zwmeTXqCrrwR+lC?gq$#mO!k$*JwbC53_vvjl)};S(8Ua|GoJImEGKuOoCPnPoX88y3 zfe~A%Uy=Ye&*Bj;${$No4WRG6U#(TWtiJW?;W=z9F~3M8>1gSW0Zn}Ky=i}L+ zX^^SlED%98A1rc_7Mxs_6-{;KECQ;iK^Iz~7YP)U-P*oWDv~!y5`p}WZ3=#@S|}|K zk6i1-Y-xQak_WTV8?fvNQ$#Q2k%e#(3Yh0y<%y+mI(l5wy>_V;a``jf1jcO(Va2Lo zfwSgxsPRWdv!e1LJ?4lHJ;IobI!W#%9bAa}HvY37r-sQ0jHfukh=rCp7!nRYvZ|k6UB)|5yL@7!bX84*nOy{r8BSdkI|Uk!CjLEKxcA zd$9AnEiCc!NcPB^?P$>@DhVirp6!w^Mn9 z9~TJqB-N~0-t?{Rl@6_IXoCAiK2@h1>{n?hcsWzU z3gQ>(Db)b~f^O9v`m!Yz^&^%!}ng1!|D9Uj%5PBK~ zxY)v8c7Bhn5NF~TDCq8q!24wPZ-5}KaGP%jIxJ&!rSlilRF@^#3zSR=+w}j?O%g0% z7Q6+#{)S>0uD+1Oj@EsV+adNcI{#Ds+(qJZHtD9R{<$@!y}j36I^vtx)1PgXImOMp z&(~-=W;%L0FC+)BsKlm^4|@{^Y@<{7K%5a4iYfR7pYO}J2hSYoh{&L%!S;;o^u5ax z+`@PvmyVjngQu1+xo6RStbNpSo(V|W-O%xXwO~Gz&=f1&7{U{0`h}&UO!txlIr)&E zoObEl&|3Pf%DL-T^;Nvh7y+np)GyQwv?tZ6mt=(R{b!7Z`h1lr!UD6xs?G$|G6dv_ z4+_Y`KZ}ZX>E;NS^uZ@a3cWZ83D|kMax2l}Iup2F(dfRbS z-CvB^Z&M~!t>zuFYVp(fvjI+}Ct0o({fA4ugagkpB)A0XlDgcnpA~K2lbpE&B z;R&tp8D6v+PkA6~B$v3$ghanFx{6!J2TQ8{=rN8={K<@GleKG0{qRxbqfK-rGa2jJ z*|uEgx)m8UTti-9ab!EoX!tpk*iDS!h;4BF7=Z+eHs;jK252`<+B2huU*cq1e)xb_ zEkmA3BSE@k7$C$-ETHqtd%!8;TLXR|;vlKdlv6PRyv<%cVNGviO~eXgEFkI7ESaUZ z^>yXfAJN|?N8)F>%N_@t{~egZ#P|Q2&L?f_0t{91$id~NgRdVq)#}+bSUoAoLxzM@ zKHE-Mcj+1QUfhS;&#wK8i`VaCw6yihOi*v_VJ1oOf(PNb2pKdrYf;X#>j?;qA*_KS zf0NTb0mu8eXKgAS-0^T@sy0%w%ZBA)GSxv_7K2gu=3@RYcl&wRpa!9p(dF|u@zO3* zBo5IX`~LurKjH8q@Xjdr>G?R;SS5>Bip!Zs2TlwWbOYX`bHuLkoa6S8VvpG}=b0;5y`J?#|SNl?bEa5 z)>gmn-C4PcW*!SWD+aoJTW;>p;>tf+hpmW{+pA}DAXr}^!MIeLv z=cw+*aV||%BmJw1nvPgrk~lTNg_s}s4185u>DDGybRWe@ipPt=VwK?boL#BdZxlWl zPMagC0zR8(YxNo8G)?fXOa>yEduVQCBMqH@XqeCy4L*Tx4|h{nVV<+Zn&lDnG6afi z!98EE|HDt{|5a6_$i;j55S?iR_6wf>yNVpAr~Ln-^ICQypNZ8W(gjifaTi`c6qwiG ztE_8-fakohD|7l4`2TU01Z9UK!FmeYc!ed~K2Q3uFJ3{BB~9!nfr!Pd8t=MxbY1bi zRx%4qezTp*?wewZD6Tj6D8GUZPH#IvRmWYy;ANOS)8XxAXDP08ZENMLZ2}ynT~O!- z=E2>yM7==1O0^}DKxe>Ko5TA(^dbJf!4+m5Z*di~`q_oscVGg|3P^md9OH0o#$w^w zir?XbL9MAubqh6%oVq!K`C6Qce2ci%$>~ZK;q27seBUNr!Pq2l;eH>zdV=g;a|e2~v5@AO4)0Y-|HGI2P}9e< zh?;?P&TEtYm{+`8UJd_hy-A-ROtm)iP1*;fp#{M(8^uDHJ@>o4ec$1ip0m(Up5Hph zrlN00ky6O&m2bbatGK-LfN)-WGe?P^+5JwoR$~|@yA7>uk?_4~Tz~by)yYy9-ONxn zQgQsDqnUI3XKT|uSna&=@gP?(HBoX_qCK<~yYx!x$lDvf_xZp5?Vs=_TV)VP*H-Wj zgM9>p90@>t9+P7grmMWe;cDAx7j63xF?R7{8PaqM@t*oZ(QGjSj*wNi5F8Yrw`a?89=G!EnOP5NvNx~lgY z$wDWyuwDxNvny@a$L-%ahwk?h5oX72?b#zm#k|g@#YzFEeuzB5bgH_Wmr9nXVZ`xa zZ@GwQ3D~+j&290xGGoLah@%jpY;@RgTbr1S(Cagu)UK=81v8`-V+O`h)I{kSTe@yz z0%BVPC5YMJf~(TevCRITst z{r?9(5G@JdaU>>;EOoN#tvv1dPCX#^KS1A4c;>bQe)!;`I^Jgs!XH;v^+*mzUs3S} zkZ8VbW)2>>Be4W3xpha7&$*$ zXn;5;lqvz26+G!LtCEMr^0sDG1^ zCZZU3<$3d2E&M%h6D=(8AdkrXK;HfymKRnRu10Biinqj_d9#JKFIcT@MB)N~6w{VE zlI3fe%;|G?xnZEygi0AO!Aq#>HQzS>{rc&SZ=*0eN~b*e2k^^i}=$3&3XU;uObI#}bm2a*4{VI&A z_pNF38lH+H>(X)i;9Td1MVsX~=FGlsdDzg8gavO+pZ{P`koD#ziz_?9eKfJ+ip3Dk zsjpke@=l7fS;~AOb}2Q95NE8_{##gfIxDa`5pmo{fD`+8AtY7o!pnZ@G05`4#Ig~Z zr}Qd~#<}s@OF9Gm;+O?=mGR|g*$w3`$=Nv*`wRjeXc(fin;54&V2E0Q4IXo*+!&)a zPpqCvobx$9IqgQDQR39Tb`eWW$7?lI?Skx1wypYP{m_QWKKFclQ|$E_#WU_Q`j`=` z&oF;ytcHDlwmgUzR(PtBOUo9m+bj@_-`)nqLhHZ9yE(eor}GQ}$4Nl!HVHTh>TRq) zgN|NlztNd_@ubrWRyT+*)jS z2b=;gDm!*~!Wm-HXEB~8t1UBQ7G|fJ`-!~mv2Kk? zkV?5Zk*o-=#Rl@kmJIx}1~-}{1{D@9qhezY&B3zYcncN~MMEOpvAuBIj=@5o+rjOU z2uFDn;qj*81bCdHvA{}I8Cw^t0oNZCttFe+)%Wk6R%;)F2PSzbe`>ZF{BgeFNov%* z+dF?#_jtz?QRB_Vl0_hnOTzbt{WHTM3F=X*^mMj>S#rEFt!-uN3w z=YAKC>4Qmo;h~q=b=as2_XOp>n~#S>%k=z_^_PKdC=q-U_=1@_&;?5n${#00FDqW&B#BioSSMPi%m+7l7>Sx z^>nfnB-)YYmd1{s2$z__#Y`2>9HyH$5Tr9YJOl0tU|X3?!h%QM`yedvq!CHXDA;PE zb{b%8uB~~ReC|a(!vFnu47Yv~!q&o_3chPn25(-RZ7>m1r~(VH5|96v#Lamq)nB6wuj#*YW8&)6M)NlB?~OEHh4~H08F^ziBrr#-6m7r3i_9cmwxY%P(zj zuZJ;C3ItCaf2&DDbj51TO9CMI2r5q|dtTl0hI_=4?k!ZY*$S?8Z;%F2=xM-K)_YCI z%ey`2rVq=blu1+Oog+kNH^69Ej;0bi@!U+it*4g7;JNSOj~E=K3Kbl z`)7HBgJZC3zou+UmW7Om@?8(vr_&h1HS$cat?&~|0V8c5ZVS4`{)MS#(NEWSDzEM5 zT(_cv50v+?Sp2le7-z&WT_#?5=%oygy<<|eLlOiTdh12#Bg_30Sl5GgLb&+0hEBA*;!Tr3KnkjHXR9 z!3%j@AJC~%qqxQ{*vBgGDlypIW;pgU3cy5X0djB6t^W~^$iC& za8|{$q~l%rUk*wHd!MG&TqEvspj#;Cm@G+uLN2*kmkbDZRX5+q*F8R+1{4#cxpFPm zs8Bq2oanA)w;wT=I8=x@Zcw!H^Ot2Bi{LvYa!r}Ri9U^L*=j_?4Yq_SM@iub+@(&4 zZu_Mljrv2^Sn4y#;d|MvYCIV)Wy>e>BA6Emke9?Ki(#+UH5*=*OigAYUiwj&>0X z9|o4oFb86n?bBWXXkkFa5m(6c`S}FHFFbqL!0%K3`~Xq=Or421%99D=ASCW^V?}?9 zAf?fA$G9H5joh;B_i&wpTq41t0Is@;K_|&N#gBoD;nsH^(387}4~&4xAJty+`xg(H z3Sq^{Bri%@fOg2LtNbx^c`KV>nN0;U$(#0l$f}a)mMY}xn|UQ=>f7cb(ezCw<=8)4 zA0q!)3vR6lw}bm(o%-Sec$AE%yTDWx|8Z3O)y?GwC!HvWKY6D80_f)I7k$Q=bg`WyG5gOoUY4oEtaP><5@JpQ}`)P0-fsLS1NuywQcy(aO1Y zJ|H;F&mBHnOx(0f5?zaPCJjCh4Cs2=xbVZF|2kmC{!rcS%T9aFO}X&GNMy|RIQ!E- zB(P7dZ5tyG1{lApUKyJ}eX)QjV-nZRtqk&~$PAc6=*AJYq;h3RKgBQWcWG_76e=QQ z`maTeL$ROxjU;FuK1P&fWF+b14S=jO8%rei38#WVo_Offm073|0>WcqBTpJ2!~wo2 zv6bRM)$}Pm1}E*SQ6y?lI3nxh4op}h2nJb>TnO$v=k1lp_*zQ?H045L{}x3BbyloS zOogdX-saFxKGT`FEG|3*x{zr+s-JLfr_i{HC*@!}4x)A%nHKZJ55SK%QGoz}Z zgC)a#sSTBL_@R6`6umeuF+60_34so|oesAe`!nbVQovr7+7xM-7Ujdm?-rdx4*mHF z3E%l4j$Z;KDq&}w%InGtBi>4_hy1|Ggz;+H>pX^$7QQDYXNJ*{*Q+~QVHSHpMfj;W zXYN#hwHNO^(NErals>x>tjK9Ksy7kDVhaOa?%rZl+=SRfk-`x|F~adJhX);EJyOC+ zT)Vb!In@HrUNI0khkYfXaTan^ez7<*u{XFSzkn-t>ROxFaP@@Tj*FV2uxKDNhdZ-x zTU%*K7luw~2Ii=KAhRY7BGYCJP?sfs!_=KNuJ_OnlAHkG6ui#U+{1{8^93=c?r|2$ z`r^*|9I0;h+ zL%Eskzr!`=t&?}F$pTMa!+{$f-N{Tl16Ruvd-S#EBPt8Pl?U|(;h|Rz&i;ls5#5Pj zeo-9;EUNyV9>mjNwbyJdy&@o%&|5LfANV#nABR;U=o5$ki^jKNOTzWg zg=yu=8R_^?{+I2+TO*AIy^GwLX&?WL5YLT{3XV0=48h=b6+N`$wKpo+{I00ansDEo zi7|#Yj0gsy<^tF*(X(axW-yJAlFoX0coxOySL#B;QKmwJLz;g5dpTxBFghaVKy2D^ z&17hmDF_Sqm8pcO&vH=5`P~RzdtL{LF7_gy8DhR7EF92r(pGYLVLVp^hEk{#{%5Dc zFls5+AEt`1lh2QOiMT}gYCB`MC=Y!Wg44pvt$>g zw%<9p086mlT^mCnZgVL$kqEU{xJ30vr{gd2MEGQqnS$ej_9on$n-i%cOdfk5ey#z9 zkXwtoP9UvAo(KcOP_(mDJ$E&!Q%JF?-;ssIINcpY(uW33(|%^OnCMv+z{X|Nl0#dv zSZc&ktoA>6V{%Mw3A&FI#VTU0+#`nX(3pNjxR1`f(!I}g@R9_-aDLPE_=J%(a?Yx6 z7!76!qlpG~A9v?u7!bRIfq^_R*LNdj6SUf(PCm`#gsP4SX@-n*uERI%n+ot) zi0+PjZ!1bWS*v$&V0_USIq~Zf?<{MOj5w3DFA)`sM&bO$v50iM=2xMnD`Wx2d_pb6 z#q}MY9PDg|5Nd$)v~5_>w2%6Pc8EMY-d>LkA;L%#KF7znlg@=oe%`AiJR}C7{Y1}Ge27x%cS+a+}a%x;)3y>Ef^tNp0#ac$c z%XOQd0xG~o#fB$xzZ8N2=WJ{|pX;Mx-G#7Kq8FfY>=Ccv;o;V2>sRAMpnbZ=Ir(Dc z{uo*IE>tKDXSf2iB)2ivnqGcf6E3KM8q~^DiN=-2RV+V$i8DribcdV$zKpXwk65!E zV0l1rv*uF_mG{wg0||pXKuxRQD~K*@uy?FbbVKr}zki6yB})8H{&upU(n14qrUJfWR?5CM!31ZJhyC7ihckEsQTex{p*XAzqeb>noi2t<5o>(af#d&?p3hvT^cCHB-S zX(EChiEBAYEk>HShwN*yX|t1%-l_EqWO#-FCZ#lkKizHv7&~>=&OeAbJU6ppYq%0@dWKW#2MVeXIo1tqjsV#~N?nkC^zO>E8pv(d7%MLX{_#C~W+GjpQ z5_dEyMUH!um<+O~epfPEx^mdkapo8k++~~_o`!x#nxOBR&g90YjiOkEK^i7*Ks@oi zCZE8Af=(%0yqb96*Q9QmFW2Fy^$D4(Ov>ut@?3)Kz#-Qt-+}|{+qNOIZ&(>Z9sfXG z-;0ht&bt=n6=$22zOOuSD<|#nt2Ebq1q>B;7pxm@yY>f zFz}bK7jBw_dQkjakCF|D+2bmIkNEI=C^a=d4UeleL1;x4b2o5FoAof!Mqe% z_@zr=CJYe!efrjC8=|JKR{7b*mV$SI0tH#bO}%X#2fvN z5GQ1(wMq3B4|!Rp3yTJX|KK)+p*KO5I6VJ-Fx(+As04fSGsOzxDO;exBZ=Y~)6>=Y z@OKi&_%+}ppe<5$#oXoHo44--0srF7>(j*mAAN5ZDmPASDVt5`f?LDoFr}!6mY5I7 zhY)(MIA8Z+SYEH>!#{wVo-<@Eua|xDthB51NEg6XgpfQth?kq)mnVvIlH=guU3Fp4 zJE9PuO^kay`*$0Lg=-u`JMcaGq&QqtO;Yv?w+$B{mtVNw%R-{9vN&W!KGB=H0ieX- zShq8LCq@jxkgm1tbKY8`>;N#>+efG58aYVy`mDF{zca?)x#Zp>00)(CgAY%vn3%c3 zk+Y%c-P3M3jW_}DV zT$1*O`1&-qj_1f?`3mQPL9IA^UwwD<{ShaT@dE++%$4pQJL`V{h^FGY4Pnf4Crg{b zd;h@_KFPt{I?Vpab`{6|G;S@lIq;D}t)Idu zI$2HhQ3oXRkTA9L_buj_-XM6Yo7i+ zc31inG@|vYrhf@gFpx5qRI%4FYg=vNB2EbHcoo@DIY_)*>5XwC~-0&BKho4_lJFo8(_PcoLgf*RDD`ehDe{s_$Z zK9jrReKTw>bopB7$U~+wT|z5sFRObfiTT*}eujT?KSbBb1f6qQi7)mbCD6mRJ3dsJ z>>_Wuodhfc->n=Sln6Nq%|YAYZif02j4*U@0=fY{(Yy8Oa*+T7ov*=^w{MBCV+CeJNwm zNXa45)h$1d?bLcVjCYc>{s0j#d%CMgSeGgG661EYK^5C4;a%wdd{@%EZ>lIjs*c(@ zQ5PFjA`RERF&^twu#e}>g^iCl=7&cpNIry|j!f`TbzCJau3oQEj$H<|qJrm>V=TMP zQ>ddRS_imf z3t@7(i0|PTsv%A?&fT$K*@(cy(e`HC(Jf=;v^lG^ig+B)2gk6Bd&f(ax8mN?nqv5` z6T&s1jiqho)z7HtC7Lw?E3j=W+yI}1a^KG-HBp6}=xA|nFvp{g4HnXv?b%J7{NRHI z_+ukOVCqO#k(Me3u8g{VUV(2fXuKE_!w1*WfN z6Y2#nmXfHkPUur0Do%c+nG0QzA1e2Xaeow!FCKk)rR0)MvwVv*UdUnDh~^aLbD5Pj zLjW9+2v!+1AdJi`$pat18=VFDGu^@SaM{BZ^;Ik|3Fye(y?(b}3v8pN(hIrDW(@Yh zaT|RZx|EML%wm7a-_uLtjpBa#u zZ~AR)VB))BjN_a9Xq(phOcAJ|6l3&`4WcmyQb)wl5ZWdDaDS3*a9WDEF%q<|sD|ZdDhUFIIjaF}T<{oczzBDIqgp?tf_Pj@L_cf)9%6fR z_@1lSqvYywWgd>_3FMutcBJxKD9Ectofh+u>l;hNhJ)_OsB8m+nrn`!Wu8R5pfibZ zu5>Po>BNV)aa9tR6Imh`M`&GaVJ*BLJ+GiNQq~9iys@gOUa1-4kB+FFv@@#Dd9*gV z5;DMPQB{w2I}`sa9km0qd~W%DE?_yY$z2+>Wpefi0FJ0*QBP0rHyhf1*3G zc|&H?`oeqGtbP;Sl7$d`dKmTm1LYSAR(K8l1350%zCPlH&PrpdYhJSKkPv4q5EBb^ zGcxqoN$+*`)`EYoVG5(P{Y6ay`sN2j7WE}S*FBQeDO*8aq`3EP3BkG}hC<^@q((%W z>mimx8$F5~r?BZoE@5Mu=&BpPF|92(Vlz7FQ>~EBLCBY=@GgC1n=DI1@G#ew9uS;p zj>9Mj>IO))!hx>=;ze_rXFrle36v?0Z?GLgH_!J>do1w{ zSh?^^ksm(jB+Gh}s^}Z%RF)m#HVCyt?+XK|pZbla!F#LLgjzDnT(XITt=lp=&sl0!HgIsiYjK0}A~)HoU3pcZ0-ff98T8|^O4~H++5X6d$!&&yMc}0 zF`>VB3N&iQJ8wxVA;XG_O8YA&@}k@0tgH<>mS$X%^+p9;UOpQN1!!AsM7R(A6}K|q z&lwc3Vtut?^=SQj#!zYFR!Bx(4CpQkQ5ng6mrk3?QLr{2h4_!5eaRCS`q0_h^0pD~ zHbaTMZ&yz11RExN!4aUmHZgX-0qtcZgNjWEStUcW@^ zlzxcqBQ>t6d;)7Ubs0*Auno4>(#%K?#7lX#?O^1&@UuozXe$5aK30<-$q#TBGZ4gf z=HT?BN#9lk$mhHKf=O<>c1~$|-y(S;T-sEP`IX`sjbVne<6)jf8gqq&y7kJpZg+OZy)9o~>tHzg_xnE|5D8kJ}B zJrG0FT=fSNs8?hO`*z2g0@XWtK2bH^Zn-2cv)CN5;EudG8c{DErsL9527?uy3T)U> zwUOTTk4!66&%9pDRL}HO6-@rnTO5QuLfQ$@v>LLn4L=R#HPoJ4Misz2Z>cuV_mS9JUi zM2$0jgas57R{1RL+3kjLZ$r*e%CP?xbqCN`7Y&rP;uJP1BD{_YP+f6E^V%*7~H7U|++jYW*)v0fYW=z`3joQIGs*$G&JGvkAL?S;vzZ~3Z7&J`% zG$GD8v+o>fhE(hh3wYS`Fu`V9f}$==EIk_chl9mY-xg~qB&Ewx`Z%ex>ZDnJV@%^= zOkyWgx9SLp)Vy`eJLeeG?SI4%6R6$9ZL$32qVr~;g0tvo5PR&WSVlM*yU_@HvGU16deSCDp` zLEjspQ4+u)`SnIbca|9zvF=7i66;zVH>v-5TE6gNTA}cwH@XPBl&1!82D9U%BiKwHZy6aFsJ%Nvrp+B3 zn^nw3`aQG(zoBr856x@Jr~<%Qy=f%95@Z;deA7+fN{9J5tB>zzYb0=xRHn{(M3G>- zv}#ObqOgi~#sgDz2*(f4MR423jLJL}bLkd~n#+~g+$3B2fEP!TW~#$~LR@3AAv;NM zVytQWvAo4dBhxd@3kOHrqwJ38B2x<9;Gm6_+$geEv3`MqMynlW)V}}+u7ey^bKCr^ zOB+0DnbQ&Q5KcI{F8I z01N?blcQBy>@}(+s_nfblxkbJIA_E;54AN3JgS(_B8tfN-Q}1{#k8V~^zm<7GE#VF zh)Pc(&aJt_!;zZ9^k5&a`7n5i)uwr$OQL}hqz0xV*8G_!X^MpAUq`2`0P!R`ISL~_ zS5V{PXoC$8LR8Kny$T1{f-$c|b&Yre88qfQri;vIEhVP*fzmtZ!m1cZmU)@)#c&P5 zz2{!eM@k$dfV`QW|z|rg*bGleXmQwAH&Ci z$;v|1^Qb3eR(p>b@p`t*J>UqrXcHq*3$-Mr3R`?l(9@zjZqv%d@qE_Hz~JUj5|==s z_8eL+F})AN_)4nY-1r?)RKWF1GGBm4St5QvyY=Y+r7ZmIUnNebayRYi#PctpCbCqO z?wAgJ9#gXL+XxQ$*dIbbU&6HVxACr$%vB?vi9?sfJkjK=`o`A#q8Y-umn>TJ`=P__ zl93aF8S8Br#d~4(+xVzshJDr>XsLp0Z<$TFNqZ`B2r$F-rS>P`nQ;y)2TCgFbPNf3 zvgu($nJE3SvxcxPeo4-k0yRUJyywlfYpvJH=PHAB6%8{_9M_P-mOx!VR{mJ1{SB+O zpp`2W47S=KdX)1n<1GCg<|fRo;t_MiBB1i|c0T0~HrWOJ1zp@l-A;XTe76vnubPle zrW*NV-2qT4Ql&!w+8biZGNL&Luqn-aQ5&?+{B2M3MtvFPk`+A`m-jI#&!6pvW&0sz3kTZ)dy zRuRpzndbs+K4~4-QS&T46Xs3=GmP3lT-HfnUa1F}vIlDQDKp>Ni2B6)A;l2I_sz|K z(}@M6H{C9Q>+(Co3O^R}2t}@qO~QyW8I@CT>><1rZN`XuVgL$zE5z7Wd~ptOOk z0NsS7J$df7dPE>HT#Zm>6=6_S3c2Gq#MP z4d9gkwen^E|1vaxnkfHsE)>WhXmkDlacvJzFT4Zsmi}0pc$f_(ES~pYjIgB;1WmwETE0(CQlraGGgx`~-H(fpkEyL7Deh zfi0^n3t0Mhz}UNMuAdGiZJH|sRfo=j&k4lEhgO4F3|!XjRVrn#c$1LSD)^0Q@Rjsk zWV*9AH`mEp+moEUv<)7fQm&aVZld{Q?MvzB_*ncNz=3mOp6?N___@7VyZm=E|ExZ_ zqVIJ?q-x{KU`s*ndi)HZw2HV-JSU9kXoS~iUq&(G+5+MOy)1+({ZK^TN9CP!3& zUwzAuLxnn7eoBv_&k@+aU?}>~vIQ#kIPjnBs><7zi-f-9C=-IqGqY5O z6;$De=A!t$VIIr=I>&zuBr`R-5EA%<@? zIwWi|#TDJ-LtE{FP1hJHznn;NflUk%_PDCxv88A)%Vx`Kr2bmWrO@;XtwfNf{?%`D z%O2x073(!s*8*dwRt-aW@!rOlFZ2Lj;6H8U5umfnl}D6pQt3T+pR&#d(A&-L3qagS zJ{fLxjtF(Y_E!w9W@L!1LmEaH(-9GzVIJO#_$$qQ1YpzkN%LkOW}5rqHD?R|24UfK zX8Y>g531#Za%H`ZH~o-%bn`tF>V~$fxv$exdzbVd#K#Y2z0of>H84;J^8B&XOGiGQ z|5C`Hf>DzzNr#8G`xvx+P;DYv(Gkj%#yPM1^VJf7hRJ^Toeq-&C3;`KX3>xn$cfRr zWG6}TJT>!dca5ZQKfTWo5CPNXquULXpj-P#U~)?~;<4)6U1p0&CHwEfHlr?7b3%NJ+$R}1 zW=_9fx#P!Nt>U=U4?G+#OzJE(IyxY@s3eo4o)~LG* z>J8enh@t-*d++_v<{SPE$Br%bC}PDXp=j+Hs?;7;N}^Pas@iIAv0Eyk_Et4&*DNur zX;EsI(o(eco_(%3dkN45;@?%#;Duex<3ff$E zCm%RR*R;u5Wg$@_ly+9-w~$?S*Vd;xoIyM4?85>29=}`LA~X|;&iJ4Pzez}1hzn!l zGwZmr?Gp?aaAFj*W>vKXi{+9?*LT8krwQt9hs{~$+@$U{v}|Uaoyh%0=ETGWD#K@_ z2>4g75dQB|=Ls@392VYY^ZJh=4Rcx@;7-z^PJyNMuH_((J(nk`KYJOD>!8Ed=s`q0 zCbIAOOFr8Nui3>Dxl8re^_WY$l>!V(-+3#MOZ0s1QU-E|I)zr_f9CK382VLUIYxSFWcie?i8UC2s*`ljvZhM=)%HE zLWm6gO+DgcC2&%TLVc3De1|1P0HI1s=%Mp&uBvG!dB{DDb1dNcG~xaibH2vMLw+%W ztent_t5Vc8=#pzJwH+Tzo)jl%<2lv!97Eht`nJBk3czY?a4lIz2$szLiJeM|M~PT3 z7UdxZ#K!7D^utg;ctAstmtF*sC{_@rk$mWnGhb++?%^E_ugq( zNQlUhRah+45!K*|$F`cSdazL%cvhQJNfc*6j0BvyIAUJ^1-)E+EVU8&$4UQ+=fXz^Yv7S2Z6}kik5B(xr7DX}nAjSi0+LsH@lL`l4tSM&oI` zAXb$qlK5tj6YCS=Co8E>e$<*^x7fpnXXbf_ThF-i@-k0Yu&jW{Qfd~fXwpp{b7op7 zES5M6zVuk7r_G-b{zZRq$oVpV{kPj{6sX*Ie3WT9v+lP3NH_dt*Ip-0-a8Lbi|fgM zLCqvyUfVu?mu!$2mJp}0qIOfXysATALYNTdjYXs4;W{G*S_eskD8X9duf~jNNo~|A zXR7~9`k^1(v++ZNKy{a_g`^)jLIof7_Sy{m9IQqz@lkaNflb`thunwrJ70cY zbQEn!e?wdTk^vGQ$$O8K-WzN_(|0qZcuf-Ne)FCSWfqsekId8@APxCgnHAoy=u7wN_#9M<9cn#eZhOIN1b^?dD%n&;aHjZ2!4CQ zqj_tn4b(Hc($Z-%ci?B-J0Qa%uN*H?d}yn~XX1{mTf)&H9Ut9^gcZ0=3^z6eeeBSE zAQ*87xpsrl*{{DuXE8ByaP>xQe9C=%l=0{j9TE8^Ip{H0j-&LO<<0s3Mt{XHZmNUI zVEEh3l-d54w3iS}30?V}KRY!uRUt6uyRyDN?zefT)8#ok?0!w)OP=sePDZPkxP1Qn zc(8*?%YLC^^GvG-<)Tx1okmu@N}l)iJMpA9GMPd~RE-UZ$uwk@3M1v|8NY=L$uDo( zeI=V7tp0kPlYYUhY^2CzQpJJk#{R6S5cTgjW$KOT1IHNh`FnFZaM!Zf|G?b!Xs%@Ih%Bp>_3}Ui7|Ofu{@I0sZXjd7k>=nX>n;*NaES7W%g%}Xe(oed=Q2WaVU;DB8 z860x+q044?nUf~oj(-4WX%B;7qvxT{)!%GP3yfDCYpLWIXT&_1=&DvalGvTcZU+^q z2utWU@4Ydu5H0_owYsa9)Op$|ctp3pA zuz6v-zQ32U(&Wt;)pbU{z%NEE&2QdS{MQIdfK`(p#=QhPvhLc8~)j zC!Mu8Z-MERofo_ZlAa_6xBkSB2~QcWaCYJd%EAGFcQu39Fxv6wjj4)jKkYhzDB874 z`K3fC?0y+aUC!|AsdZ?wuIHXj!gS}rU|M+ZfMwrLHaqP?>qPcZ?R4`&C+Nj zG}aEUU$w@g66APZKu*>Yu)riL;A}FUae5gt#N~mwzK8ItUqDs;yvgM$Wvg>7`rYO) z5x|RSwxre~()#0mp)h}bb-CWeoDQZ?og`MWW}}n;u|e_uUjo}_hTPpBT*q0Mt2H%5 z=2C3dXSn6}5-|5@&e$^{7s4+Xqw9q4N7ASm9;70RL>(V(94tt2j9_}yL9E;NdYxc5 z(+*cu!|c7CXuyc|3?Z&f_*d$(_RWtrsm_m;g^#eV{d&lAFS|P(t~YfgNG&8ZX$clo zg}UT`r0FH#+vf2Fomgb1XokGUyJ3srpxPGu^O5qk17L<=wYoRnZ9^L9z|p^nquvc4 zuuN2oto2h)7{FT4H#f%rOxLCZL5;)*-nGG3OrilVvWEYH)O-e{FyCl;yhljZJ z8!HV8hZY^-UmKE=TfcWbOx7=*o<3`!3zvH48n7((&^-zTZ`|h@y=;|Y1iun zBZh+m4{d$S^2W1)9gf@hS6%jDJ_7+1lcLBqb`7-d z=`rLw+1!2kyEQ|cnoM~8^FP$@iIL*NO_c|pF{Kj5s;}3A_8CcOLy_{PPGZS8qx)vx zg})*4h=5969lZgInSp#{C1ORxosSxA4 ztA84I?-(h2pSquvHe@wrafM}Ekv9YRS?IcWWhUk?$bb3%S@UT3Eek4zDHD-NItl+R zp6m%$l$hD|&z2M1r9#7Px}pohd~B>q5!|5P!@im!fLQq{d84z|4*5KqmRlnDnoCcx%*1d*vq6Zy+%$YYY1#s35qE#^uxg%BUCK zYzPo7h4zx^R|A&8TS1huw_%|jUY?mUsW)Q{zJ}(Pjm=$@j^3z`b`mlmp3i)QNqlMM zt(S(ZXIG59@3(`SYJWb0O<-Voy_eddESl(GR=iOVQr|;b! z4YdEN2%?42y2qTICxqWySlhg^uv6>swkmz)4D91%gPf4}c^Qk~ixGX#xZ{kfUz}@! zT#hPGMhdfUh&q@bZiap&b1*5Gpyf+3zrk&LK`3i8rq80KP!-yT-^uAoVy@$6ZzER!mX@FcF4SFb1U8Nspejmehy~_ltHs|Bl9P@Nl9S3On7k|?`Op@u z<~S@F5_qr2Nt*HLS5|+2FIKMrV9WeS zfKtXnEvCxyR5dvd-+@RYk3Apn}%*M0;&~X(q5OBrMrCP zO#K$`yx&w<9%q)39J*Jk$b8I8po|mGn*|aqDdefb0u#zIHZ#1@m#>PdzJeYvz2bif zpY%RNu!#YFEXGR`#e}+SBWzWe4!Ov64rc;GmufhR&>&=D4xh<;0;-Y++sBlJM7v; zNJSE)Rb-2dZifk7{wnS6qk|O_OF%zMIyOF({NXlij+-XcqGK)m7Ulx?+_@TEa^;>n z%8Q&^xhxX^FUhhf1}A;^3nGf3c#ds+bz&N%@;EZgU_`%Ams4R+$jNv}eLs0~@=_>@ zD)MMjK+zmL@O@+>v)01I5D-<9Fp1=AAaad-pF`)h z@p2n;1z4RXrNbqgeCPh)lyPb^nV(82t3M9(m7bIuzLtv}JyYQ|PsFNl)`VM+P_LMI z&C3tSrW;EhB($7-HDV(YtLN0bIU7Nr^DESXBb?hveB6o^74RgC+9rqta0a-*9Y6h- zli)4`(u47ni%~8JF&lxgo~}Z!DUlmczdwCM-XdQg(%c)S`bvx`NBd#(9|S&sYf)F( zntDsjX2(>$O|s-+`R$nvCmT1b0fAAUufDt;T8==nAHwfT!Fj(!?~hpN8OS6mW@EA7 z*BdkbM{TqGY@ND<`M3JWIfhZiKO0yXc%TVyhO^9#xJ zQjLPzVGea)-0PjbJEe%HLhkB@3UGA%H?+mOd3~T(a(Hk?79vCKHSwufjTzCyn^pmE z2YS1v)M$~?gjt0q#y4ID*6%R___sN+ygyi!ZAmLT>VMg*>VJBf!<$hcZKCV5p^3Zg z^PSSni@RT6u)6fSeMwQt>!?+Ouay}2$$d8S018EOpB?O1y9?dtrKFXWi`Bs@+H)o> zn4H4;ghVcL)>Fb=8fLl%aut8IJ3(=c&!P@89{D*edVe(YKf}hjgOt6l@5y`BV_k7v zeAAm}PTa-G{3&zv8ISoCZGxQcCZI*a=WyEORkt!T^?6I21*m@d$exKwJKKLg%AZVs z24C=Ryh`*hsh*qGPqLeCL`udgByVbayW-OWEZ^91X^4yu$wXbjH*Omw6D#PghiDIt zrB!?)h*jM5{PiL6ND{sTU>;~G=dh20Hi}iGtBFSPWa~MM$O)-j$ z%3+g%%6}LZ`04;RSMqtZ!8e+m73Ozab*Ew@3@G;gE9^sVjO+?veU}3a6o|^Ain{$M zn(#=r#0p=ru?iSo+x;D{7oZ_BFD|%jzUQuJ8W`>3X?{}}v2);SXHcNN0uOuxf?HfNLy8%xp?w>8p&%Lop?Swx@3%@2)FljCm6Cq+-tdI-4+ zzWUGsYp1p`(If-HbKLxAw^@XYvP6%%&$@sA?_c;AbbnJ9T4(R=;0qTV3L@m+O!LLD zI$49-BD9C!_C0Uz+qkJmp+yB@&XiaEZg?0E<~;wz-I~b&{cg?<31B8CB^IE1%$^uO zv2#clJej#srlFrV3TX)4o+x(I5mr&Eo~Aa(`VH-7e?vtm6xj{bsb{fg6d`Y%7^ z+|yY&`t@a%&b3{7!aMzCF9me^_;YX(bzrj%=#pSMtyFT@Be@Q zpGP2NZNnVfQr8VFH?e)2sy6rh9b1{X{`Fi}a)FQSL=oLgGQ3a4Zoxf1oBt-CA2C>e zT-+*x93{7F?~}oj#dM#K)Mfkr-+lq)g!Zl3KL590Kp7pVlj*=PkZWS{w6h2L7xalU zb*%!Ttn1CjVqv(ii~eJMI#7XeHvkgA#T-SxxL42OeSHbB%P^kTNyGK)ijvbdraPa% zO1u395q8`?5wBlKTFiclg?_mwLhgvg=z|YiGA#7xd!JH#{7G|_i_94#^f2D)TqV+6 zUP#*^c<5SDmGw|!oL#}6I?y^QiajxtJ=QuLmW%tUDMITm^6M&aS_=^3TW$j)Hl@Yv zks&cPIIR3`LdlB89usY>f#Qt6683(Th?V*`x_x$hk@z+-sLkMya&3t*vvt^~2Y3sO zOdDBQuKK^AxtcJ5u0aK$Yaj-Z5t9*75R;J-6O;U-Yk-gdYz-z1P||;N4eI=w#tr~o z1DPqaEIPfA!6^FIlHB&|GKR%RkbD;FGc=&UCC>5 zUZ$(^#EhJq4R#k69wzhctRA1cFOkNS*I{Odr(E$mnj2+FR+iUkXy_Kr{?RV*VA%?A zMiUP_b#l$-(aXgyH10Zf%ge=_6jL`U$`X>}6AIzzO42B0JazT~ZnCHI@@dciVr#H7 zq|B_^`2QkqQ2*WdxdD!w{D1r2>p#i|HWS(EeKu@0yY*Q=hqkwt^p`ARHU#_T8XXq< z;8kB4OKfe0l0ljO;p`4c%AOY zDvf%`_>XiMX(s+%I^N-Rk#dIM)y0R!%_2$7&$;=w$BpfQ5d5Y8Y`1|Jw%9A zJ=_u_fEKf+us0Z8Af~Yp@LmU7Q@(QkC_@SGEs)-O_djhXWN1bAGaugMUuEN-h5yUBGsXIXDJX)k~DeTeO*Ds|Ux(WaL zLYA4~tp{M=q>Gk=uR|dYiP&;M(Q_0|blS2o(QU01y2#o|Sb zADv~ywPN2**j);=n9pq_)#9r)m)T@SEUt$pD?nnSFLgfw7HDBir!H&DV1OSl9Ib3g z+q^pkCn%PezQEOeVHgZhEM}P%AZgy&K#>{pd@a%;tTskt&kAq`)L@*!X-$@NU8MwA zh3a|F1ybEGna25}^7}oZgRY7;%T$ZSFG{|KT{ZnyOQ+G&c&QLlMXNE`GVi0asJ4TN zF>-i259T>-eA(4#N`9cT9$5&3^59Xb`cZdi+h0)1EDn5xO?sSDkO3RzT5CVkb^I!S zmi^@~h)#l33MF{v>T=2WnC~dRLMh+mPWS+`-hl-she0l>7cD|Q7<8VBQn^h;;#T`4 zo@lJl22LUp1r~Vw&fLL?XO&eBAwg^87Xvgh$lr|NaG$WUoRzvtpS9AS+b|C=3B5LV zHWaGl9Zyh&3i94kU^q9L;2x=r^?->?UP{Op*Nnc2EbriibFocCq9gg(h{0FmfL;dk zi!2@SPN53GJ0gUl@q~jLzZK5HMkhTJujL@$7ICbGam= z!)O>gzCm!$NRS{r=&ZwEtQ*IeZ^3kyZ*0PSpFGXRx^sEz{Rt{te4$rtZ<-T7rMpH+ z{E+DeE}Ts^;g!0^EG$WYnnuM!k%aqcJvZJK5b3=g74!KY{3lb~SU^n^04ex9Mm<i9Boi;5J&(-7dOGZr5ak|EqhoflLF;=y-DBbOPX9r6q68s%Gs9GT;jEn zq@jK>0L|fPo3N^p$c~Jt;RDrsYSA+kBCH{99IAU~KS?@f$p zMoRH=={Jg6f&B~9n*3lH7YisJEC5d_w27O@B!BR|N3l7U48{TiHj?gm!|ntVCG4Rb z^H>8BH}O6wAz|msduB%|`vS#;G(zkHl}x;e^MijVBg-ZkUTdytLPtCi7gfwe@cfPP zA9r^C$jg3Grd-V<-8Ui*ERRqg-y=1Bvx(TrJQ^L@*;anZ%dmvzjc=92ii2$;Jl`P2 z9H5Di=S_BBAX zy<&onno{4S?8lnFS%u|t5~MjpuMh`>evki`4f0#S*kJREDdZq&BBJmtrgrld+?)1PE!^FwTh5h4JiafGu?NDFfxQfp>6 zv7VM4zBVEmm}j#uBmDas$c1j6e^MRz>EXxM_n(|bOf8kSJ5qLX25Mnhbo)QGe6hK} z;cnu_4o=R&Za!Tf30h%XO;HI)pPT@%=?ero1LtiXWkW*QEKA(xp^ zt%od{8~(9Z2Hl4SedmQ7akFeP(hSfOYioM1JdbDEg1JTpiFgyu_8EzJ&y*UU3YFk6 zR6K4P{3LWi-LYte5G%v)a;Jf0K}AXVBXITmS&N6oe;)Q@`t)eEW8X%WRsPxCDmFCV z2E#VF^fA~bC2d(Ds5OLcpUDH+K=Vz)+ug_l`Di7yKCR}mi7bkmQKKZgVn#u3Hn>JXQq|_u97a87{x5U#t-H_}3E-BLeBZ?9-dkQczvGZK6U-+njTk==NCcn_)Xl1 zHfJC6y!WmIzH`J`{Q1)fUFi1gFgpYK3vrTfbgFzCL#2TX*U$HPpTpdDKGb;H@k+%# zDrEMHHmM+J6v|?+`LW-^@v)5Y$&r%tYRN*70xT1n{Y?lrG}L6L9t#XVdY656%_rPe z#L9~lP*y7E>iyQ8X;&Qyv>%uNK-Jm9q&`ak`<)Ow)YdZz6=1MOfcN8NMS)gV9ayys z=@4A+ljgw)-JvKGH!AX@UaD-h@DyBh{m4B=e7(eNNXtgh41=t}CJDBNzTk6}I-=fO zBS}?T0(=g0cy3X9fK7fGP0Ew<2KC(88MQ&I&7P#{(Esz_p3w4OCtnO)xz4Wpvj+p~ zi=cyYN*87p7`<43;SB9OXC`95(1*LCsQ7c;>g#5*KO|v#+w0+92Y>VSElV|_L7#mR zmZr}~b}6Pub>1E78pyiY>Z*rMa}wf1gfv(Q} z8zL>)0L~T3tN;?!6rbojPDosGXN)@mXfl?VC>K#obSd>CgW77`M9}HPc)DaTsTtC= z{R$)?M{oIkO^M|e2E4r|w-Bgd-b=&+B5_I72c2Ty;JRJHwBIH9TgaIHrkJ#lX4HK_F(h&$6k&UIe5)in@jy z9r%oLl0i41NTla+HhfrbyLYBcdaz7Eg&HxBKOz_f9x@>r(ulaDtt+ZPG1k}$jjs2~ zgR6nHgnfJ5YPamCz|{_C3HQs}o(Jk67373ZA9E!7o=PxXYX!wD6XjkuB8I1p^?@~6 zD2W*qL;eKXF^jAocqeS7a^&nSi`!awMnm@uo@G0LC{?RP3ev^yf-d%p28DuSL}0jPe_XIR~-zXW}Gd8jhOA)9wQDj?y+s zL3~r4Es3pbHU$Tez3s+Jy76l=9!w0D&MF)gK|I$sw7nipBytl!hoWKZrCrXVGa=U( zOfsA~(`XYCcS2;O{<9k>tc3sI-%V}Q)6cjr%R<6w2ay)i*!cmDy1qq-mDpE8*xoAd z^wWF_6NKuV0w|2|6bXV33i1iW+r=`DO$_!uFnyndcLqoEzz}?tj8{Wzw8tc&X@Xo# zu84jFulD;QPu?bqFHtymf`cKE3{Q&F0Z$~VfzyQIV4Gof1)ImjMQ>?F7G($TGQeLi zpvMkG8~*U57;vh&6@s>9s!_TXS~3Qa!ZY%GpmhQ? zO1IJ&UFlI&RQYqjp?#ZDaONP3hUh4oM5?#U>vH_Y)!N;_q?y!;yd|#L5cfWuV-d{b z&NySOQ6>IJVUwK~YG7wPNc#Oz4`%qc8=`-SV60B33N>woUHK-()PW%NnQ0LnPL9!~ z{*c|w(U=7^@so^*CIedwA3p69ZU*B`k0RdGTV#!#Iq>I(`310;10{A^uINQq46n`; z$e2or?le!y%!ZP#5!v@Uh|dc%anV?}OfuhHRU!oP!B`noOuw!et`dvhqR?Kr?g5T} zABRGX4lj!ouFJ>imEp~_+12H5Mw`?O*g0s-#}3$I*I!vLR+Vn}WfS!zC+>7%DjhWg z4I!H6j;eMohqs8Gxu0D2D%72g#J&2~|Ndu>#At^6GNK{O6dxsvr3Cb82iKSWYqxL& zcS2)XlEa^po1ohuns$Q$27{q*pTB}ntrgq3i*67njRX;mX2(w&7&C;{rbxySmwT$mfULOnwsDSHDd>$wMxpJ0eP-nWCG^rv%Ba2z0AZVMbC)TZbF>u0& z!S&;3H6Vdcyo8>kl@wXY-La4X`LT&@c<1H)W%|5imT;E!=3V*qSa+wS!oQ#Z^UC6N z5))hb^8upHu_r?gG!o3t|I~(qbp1s5+p=h_c%y1{B|P!j(s}VSqpHuZJ9OzJe0n)w zraTG@s|q5KHInm(P7FRxydBnIN!J!%yAb%XlXDfa2fIO906+0LVSz8~?BC3D-O{M| zQz0?<BV`y{=ogX%6vQPxHx{_hGm zHzHzg%!x*%2P4lA(|#H=Rf@|F$!=wLhnY|lk&yi6E|X%_kznudBgWRJVk)-~b_h8$ zE)LfBveX=Qcgzs=mOU^&tFHz(;uR27txbq}h#?d6>uEDOe$gUyCJJqw++x2Dz2-UX z(~qtkr^K`vF%$JX35d>=r?I3Vp~v=#r!#qvLot}LLDQCrKSA_*Z+b+mEbtV_482um ztuv%)S!ziNGVW3I37?)f6I&l_0J200=x2monxyYbn|8lr%4g+>t8ySYu=Czq6PLu1 z^tNgNakC+^nEuKjM+TcBnV8XjUymXxkgogSM*S=P88!qtOe?!g_>|-Xd%U9GFK%PC z521pZA^v0#UsF(&9S}*dD8aMG(79ssSEP3loyqVIG^Iyxl!homQ>U5xnH6nvp(KS1 zXt^eTcs+-!)MZqm0~ESR`O?9gvLR%dS#W*`UCDJ;yD7_dQOx9YSq5%#RvsksGEc=t zOLG)|`5_rh=(#!69O}$+`UdSl|XQ$Nv@*eLz@`A>)O4VcO1tDS`ElAePZ}Q#PPE?yU?EN^2x>?zoSg9)enzl$y^nW zNoY+OF^Dtt>wLf^xffjGmO`JUKmEPW%VK6oaQ8beDtI?l=HW`L8b`k%@XV-W-R7bP zST&w-#K>yJxH9J!i#)Ns1~uc0FEuCj9CdtHVa6suSO{TFSOY8@p0z_`kNJ;JL;#S5 z58Y@^Bu8kP!dj$a7L2ccEN2-F^AUscsgpB1%#3cscd*U=iaora(6RgsGrM#R0(7@SPSP=z|syszjIcpe+OBPxz}#PiUI zDfg{ZA7JQnu|XPyHxd1E`wVXD@SBZMo`seKS@4IT+5+UmE`FG!vMa;;wuIFO956Ww zIpv#Rxzo))+fN*Okz+4u&zX(S0I$nJ-|w1bG^cI1<=k=AqNx-a$(SUPdqms#@%K?H zSIG^(mw^@5M7OUo$u#fE2A>Jth=vg3bPEqm6OurR+MNEZFupJFdIrc?BRA73LZReF z(Ygl0S~U_x8;-7I0I`adp^<>y^zuizd?GnqNi-q8+Rc%U5%DgZjKf@=hW=>Sym;Q|(m!Jb`y=|89Rs+jphda7ZUa=s3J>HzevMl#_{a4uMo)UcTu-YZ4RrgE1ifZo*Ta z6Yj-vWg{$(3&?a$NqTQyKO6AMZ24OK6;vw(-uV@wlCRDzRfc$D^U$^OA?|-J=esWh z|L2OogQ_N_hCQ;4pMKyf|K~V$v1pt9JQeAho!o*AC_M1^0h-(9pvp!(xw0YUB}PzJ zMn8A&l~B*W9kmyB7V`RuDyb^AXjhW(=O2)M}$j0A`@BmP>o5}n>^~emSdrE zuTz$sZ2V_%O+uqb`zW#Rh8_cC`rH?KU}z&V|ABa)YE+JiTd#Z+U!0`BX+|0DPl0{f zED#vyQATNodFo-pE+y`aNJol(zOJNg3j~`S1KJ6oQc8hUk?)2aa|9(1xc+H5>?_Ko2(6F?o!*CioUEqAGCDj9f>y!;_*s&RHRek z?teWiyG+tH1+VE~l4LezA35_xyp69NF)sO}7D4&e$ZGyjYnOAx7_S4;{F%#l4Id8n zj}fugenMXV3UWWz8Ap(^ks5gTQ^x^?DH&k)$zlRBC8#JY(VXJsNmX<4%tV^ZrjHAC zJn&RfOBNjjJ{>Pd6E1Lh-6Nt(bOpG?TYG^3lj)yct7ST$y3syX)LVvE2WLX00R&O<}pHM^Dbe8=w_S-`Jx! zhL<gE>xUOuJ}*7!R2r!Hi#GdJCAj#W!}zN$nYDNO5ymKxTPYXg60V_Qr8> zZeVIO`wpttiH+%Tsm8(s2Iy&o`oFBVyV3IybhA;=UQ>9J%-sAqUpV29TM z8G^L--tbYmm(#jB!`u&}EJQqU>1ucX-7s^USwdz2jx8ZQ0B04?5|HgBQ+q@xK6fHI zM(KDoMh!loAf+F#l5!?i0^-eLbXbCgySK6)P2u3w56`cNZ#uyS*Nm619%kJiS8gDP z=oWjmsL&xL%o zq1H+u)kAzXb43{L0oWx$!lzF@($VEt1)9I}09L57ai_1Fwqk6Sr9Pt<7=uvUPYD{2LZa0{a}8i)NuE#8 z)JQ6pQ!It}Z@6CBeP1;pyfJ$)cbeF`${L=VS;gqDWfMY(@cbZ$hGEbH@JYAwc zEQ%6@bVFpUfP9X@I-KzmZX7ofTO6smjo0lMB4kn=G{6-(J~hV>iV@^>=$bVx5WQkI z!J3=hO34rQBSF$~>Gk03HYimi~ZGtQz2x%`!IG zB)Yv+ZBF05g_TjkLB&J6_Iutyr#Cg6f8gCl2T7A*$oQKZ)t>hU--_tm2_hAo7=mg{ zRo~SzFeXV;jL%I9C)7bxd)7b)CU3Foikc!*I+~+YV<^|L&@@k8 z@3pCW;rmmFs+TCVHfhZlf+auWt?&tF$!;BaqSRtuJAy`u(Iad=Z%YaM18BgutoC<( z%b{66e5@ajw_+|offt;7k;xoAdZ1A5%rTEV;vIjxW^0B%LnzcDZB$G-W30X(YL)6H zY;Du2SCsXi-BEmiqftj*mdW>Zs?=2=UMBUr=`TC-skzfHkio2E;xPq&Ra5#5B5T(3 zntE&2l=&$W@=ZWm!4z@DC2G!2KxIw-k269w!aucb+d{%clNiI@GXXm@IRMn7iZV1HhCCZ!g(|GI8)KRsSjMvM0iqmGzrhsmq;e?BcN`IBnoQ3Qoh!ie z0{~lPVb&U3z+aF`kG2h~U(!rUUaYBeSL{D0i$KWO27r>T{~fXExr~0S=BYz&(SV=@ zb=xO*k2*A6D{tWVvjRbI$je^bd%rxgV8YffJj5?9{>;W$jhOj9fEB>~tT`>{t$hTn zqfMAJJlsEqW_X+rlkr%7fPXZ46n9P)u1Ji|l^_hKH7}u;(BiDiXvj@HI zJt8_tk7#y_ErbcOz@WPz>Y%cgq3R-GrS^TE$qBrec2I+ba#E~f8tIVp&y@qr_*IOT zwb9MOe#Zq$2K0?-+^^*@uf%09^40IV`p9DIlxhX?2iG(ccR8r~h$GfzCX2*_dCFZF zA7HAHqf2T%QDi4kWZREc8uvzIKPo4zTs83TE7ueDM)+yq3W!~D&fiyK9cHSKE5{A%{K(BlhD4S9Oh zpx8va)^h%G^nSfsD*!k*?|(2o0!TSk(Jm11&R~LsMF{zYX80x;I(Crxbi+S7=5h%= zcO>9!KVhJA-Z#eX;5usG6BEeP|D`~jpn*Ay0t_1JwqxYyqJ3-GUgC}0yf`3?@bQj= zc7#}&i4KZb$r7SE=qand}9KF@54KY zV3jpanFvPdEK^H`ta5D1O$$p|ltk8kQ*wJz-@030@336Yhd zE4;0aQIOSUbqU=$$>0?n*>!slhJZz>im-caMu-@;d=$nh5ZeEyvFmIEwcLi{`nupo9d}kBcLve>6&2t;=Df zhV%)NF-jTnA(qVO`mXXMaE{Bi$SiNuFKijUd?+>`N?{RW(ej1a33$6l5h_Elal(y` z-NW+1V?HETO17a>Zh?v{q(1ru%Zwia+oE~vG)tDa{pd8=oJL~Md!{Rmib%U3=`Xy@ zKe;#IK?xI^&=#$Xj(Dvp;Z_kxby*f@q+A|j{aCe~E3791I*qknI&efXceWgY)|_EV zB$ol0h z+EM&g9^c_#W_(mkjJyk2Uf7zC%42)NK%Ah#B>%hStv|sqEgV$nPC6X-`QbKK-*J0} z1$baOFA?MCflkw@zTt50(C1ds>Z&m5E;p(bU+jV~{M|@)&ruH2Q^DCKlwa1zD{II6 z*ay47#S30*R?`FAwM<_29rzu(?8??WE{5!nTol95;NJIs|ISnv%pV6lFaJY54hO+= z0}(EdB~nhcyUE?(u{X}efz%!`P5?46X50wwCJr9nZ05Qh&VIH1{)zf)Trm`-oKDWX zr)?oxfcZ*q0p*H*uN8n0*Ps);@rF`3bi(~3UbMQUeXOi7RibMW41Mm z+v?=KXvbzQ3X-F!voe4+smjslzrU3~`gdznp0*Su=V)~}jg*f}I(nW+(IE`E9u-So zc*{tChz^&FneH*D#|!@)=ocJ8lxL3<9_7~j!j1yo-}g@=>#RQ zR-^pST|=W>J_XU1DLzjZW!$O}WBwe9x|x2rE!i`W6UdB@iCW3&)+Gp95rkE{t$;E9 z5I^K$VEeRpqW9Kf1IN|c1%hkYa`!Isd23`(_hhi~0*OuV``hJs;$|%WDzxtDfSLUR z&Bp5tq9Bs)(x^xRE_M`ka~w#m0v|s3%|*e!RmMxT5i{4+9FBAJ)P5`wvh}9LsB^uX zCp_Ax*7R^aZqJePel)Sj01>$*tEzCW`z=oP=_qybNK~uj5nGsXYJSzg;*Kx644`wB z@Iy4KVU~W#^Ay40zMnLg{5<$o?dV1;P_;V%3W`_5^biqNxm-~?8}=1Zerd!*zY(z8 zU5U=+YIl^rm(Wts4y@ffza}Ke_hpXh3YbLB9E&h_6FPl$h9wA|v~e~r=o2TNA1s;} zk_lm>f9*yG$F8ERxHvD<+U0-k`k-U+mUOao@u&W?4B!~OO$*6JDpmxEWn%2@6~ubv z`o1iypIIZ4gE+RBM5Os&zv&O9u+eG}Z@T}2F=N$Qlq{ z3r`*x8y6k-)OHP8chGcyF=kGLD|9a+I1A2?kVKux%l`#Mr_ukg_Ds9VwZLqWkenga z!?dV?*g5IxqurjQ9t=0ar1L|EJK7xVm1Rj{#xe?G_kfQ!JPcF+ui=(oYgFk~{ZD3t z4=hTF(Qx5A6*DLhM(Lk-H&BhFirRs%j*=VV4QH4v10vc%#yJY#r{}I7ybo)A#xgY8 zqeUwhPE-_s*Xl5-zvYj+TnPRzh(yn7%X28|CPEnt3Y-)w+1}hrCGD@qN-e z>unuhc~YpmAH0&h5GbQ1iYW++3b1yYRXF394vh79y36fN)7QkMFoVca?N(`|w_uiK z$4iw5+=7i50Jsu25Yj&LLYOOz(CU#kkEVs}&z39Sc(~PD-JXJ1G>(ZjEg8+;r>?jR zL3Kd?y%nw}50#gtj4x1dl@D7`oF*tX&-$7;C)IBO0hl}tH75g6-L&Q}c@*=)YpPg) zj3l{x)m?$)PxAo8j=Sdz8`Nc-nj>Q-A~Pnr4Ejd8)29Do(5R#9EpQfWo}L*9v;qJz zo>4t{{$>q|`Xp<$1 z8nSi3&-F$xo^2H-rD32JKhZm}zK{e&Vl}>^jOScXz{FK3K)Q}SN4}sudFSSVud*R$ z>>o2Gt{v!1A!6PpeKYZv({y2tUUYEpy>d+LP$M5$+}GqfR}bBN+5dHbytAH`Z++>5 zsiz~yozCy+6^V&E%Tx=qHmxyrJIXHsz1>QGtnlB zz!aS(Jk|iSl|QW)@92DfFCgcrQjlk{`v7~7BVm(!iuFA?#7`00@Fd&x8HhLzk|WDB z&#SMRJ{#yk%%F2=`S0CC#a_D{zg}w2#J434-)bPPg;-bCvqZ28NSWP_JWJSAYw=t> zGf;cbKTr3~$o!wES6rO6F3LK_#@YO+VffG071rm~a`A*324Bp!ARD^ z0Lb@$otU8Iil0=9f=>hR(mY3Rx~Vh2t!IXlxy4>w+kUl824P-j*Js>Pa`Lr|mJx)< z0?y3-*hI(ceavlTqBCK1zxg0>BrMAi2Bl?wAdx!QoY4?T}?V86zWtK*VAIOO(Jg%OU zl($hnsm(BiUC=|e1^(Rs?3D*l=TEfQ%P?`X&v+o|!xgTUG46=)`m%w47l02C0acd8 zX9eIqKS)GpA?R!wmI;qpg_xG{&LqP~hI;v~;(SNT@3;z`7A zyr6cl)ih!H{oDD6{U#6of|djPA9j43zQ2Z#5exz`x){9nO3tg27`SN)SS!dRajezI z()8RRc(gbOYCANq3BG7DO&Xf_>4jAs-(9`?@xow}KnMhIGvuOCUL4bFLB*Nj7u6!= z#;$={|Ebyc9kiML{04nTK6%%U++Fy8Ciz|dNB3hJ;9)QS7B{%c1DC(sdoBurEk=-O1d7ukopF+6f!nymv&n8Pho-V8C8mne}tv$dJgl{ZKzzo=0EVTjPmx- z%`fyG8SgmC#W(T$pRMh0n@kP`lr}WpllS^-U8eF4*sxHaePUk5qsrwE{4G8x{b-8d z64)pnu-oie@^7BQuEjoSq31$o2@5h!5Pw#g5wYN2LiO?DM5{R89`}@6GH$xFzILte ze1E|uY2J-BYxhm~a7ae`+aZn%Uk-hDzi53m=L~QedfGFEi^;Q-s+3bRoo^+wNZGZ8 z0^M2B9Qpp}V#ZA_5}jwx^kqG7{x|Q&W3$s|>@Q7i{B-Y3jZj}`tDwOjN$r_uef-&+ zo;eq5t(|Q1`MXO@!WmZJl#Pu)_k-C-Cb>1ws9&nhB>3i|VL_J=$L&wY#J9!dE)%`7 zq1Hs~kl}^-o*``lf8PPy8ApO&E{(Yv*9b_>}TgLlRMT*_$dnfvLban0KJ6aaI zXxH|a9GBm66zmI2WYT-4zNNf>(^kp#TWabqG}i_^6Eze!IAhOq?4IIc{u@U&Gc5A? zB$UVybM5l6jfX#UtlYTr!QIP}UY~=1HLd?KYyEMVDTw1UZi zStKO?^N|CGbssb-hrUZns_cQA4|-Y|iW2J=c8T+ZeAs8sxna+o z+MONu*bmFR$T?FlRJgHt{-eqr5vSPH+JKano7}P_y@EV`QxhhQ#17+pY2H4K1e1B( z#}+9bJo@cuJY!37+x|-xb3)2>x}Ez^FZPf&;JszL|2Wj;`_EtOQ_DuAz|s%H#Yi)=qCP7y{QpU9jee?fJfxnK?<}bTBVp&U^0popZO(ybT;$ zXwTmI_GW$G8U2d>H~(slZ`5`0$Cle~uluy+%lSb5t4Yej3I3Wp<^>npEPGVxd*svX z&Zp+Wr}EUN+<^$QNq0ufaq3Hl@o^{{p~5b1VY~s~(wsCt-sllsbF5U$efjd#{zdzp zj#q6Ef5A45e|0i&8x*(Ed7)tr1?0~%f1dE?g1sd_4#q{dz-Pl9G6GNkby(WeZIG;J zTGzB8F{}Pvm;Riivoi_;x>l?b37AnQE-hHB^io!mFH9sUVRtu^K*+`3uC9!kb0Y+J zKGdCmCePj{ZWjN0UV6JFr}Lg8hr-Q#K6pt>?R(p3Q)i}>^d#6JH~47%r-X;QfA@Uk zId#)={ut4^jw&PdSSA^c0It)g%;yTIn1X%BJ@W2~n!t^fCYpU}SLl~05h zCJQogMcCA?km!)wm)`MFzb|*6nLzSOzwL&Ge2SZy77K;0N??fG^w!28pMTZd^uG?( en|SUVFDuizJ^%Nbf{AA*0(*G!e@oB*zX<@dv3^zn literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-background.png b/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-background.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb44d369b1139dde8234c347e359482198cea7b GIT binary patch literal 7807 zcmdsccTkgEw=amk2r3{&x>yiiK!MOZND%`8gdiv&k%S(4Z=p%ApP~}_i_`#8BmtyL z3B8vH0YVWZgd$x^$jN)|nK|>#xpQaEAK%vigb&RY{`diCm6{F2ck^)>bx$W-U{?b{RzWol|F zBO@asB0@@bIv#tZZ*@@8QFT@87@g>+9Ru*&z@JPoF;R z?Ch+ot4mEyou8lg^76{h&#$Vg8XFs1U0p3HDapynSzlkrU@$#BJvbch?Cgw0A}uW~ zp-`yf@k&xf88|_3bkw& z?RNFEcBxF8z|Zfj9kwn8oa}dk#c1v|!`*2X8KIY=SlI4FA!+V*UA}r(NaHGiRx^%) zMH3XxLS^{?x;?XB`D%q*;<|qXT8B*CpmpQ_Ckd*utr5t^fE@N#5IFY8+-%LCT;QBh z_@}=auh9ImU5gwku%%e^{r7;^z@skqE04)`Ul>dzZY=AmvfDr2pPvqKeOsjR1+C!>8`!E1XO2JRuPX9Yzrd1O6Jv~pt~Fb~HZ`jRy9aoh zP#|A+WKkSK9{WsPKg!4MPa7BNlv+5q?VnzjA|tA2Wb|)*(>4$rV$0wFr@ds60j`Fv zLav@aID_fIB#udMaBQ7Rwo2rAlE?&$M{fjD zZe9UA)8r@mer@2-6dZXMEW3$Dg~ZU6OUXekvdYIvP{&9urmjhW)%T(?p)|X(j*Scl z7punmA9$M2ml#x^$->3JFo$Zg*|xwXD|`ep#&A+{Dva%RrrbKjI%(vBDLA~_@z4IP z&2V1-J3=s8>68h;gXu~uSA0+5(H`SUMvhKImfyO{M0I-&QV;TKxO(VID9Xh&$uk$I z(`fJqmX>QV{2G+8-jijW#ErH`?fxq8-;P0I6{arx52p4t(?H`yc!frIwLn=p@8cN6 zGx)*5wA$}~p3Ht9;$?bkp#>6c4e7FAZ*cO4@rZ~2`MK!bZp5g^m8ix+$KzA4b`Ect ziJk50w#i2Gd*35RBoD+Ayd4f-!xp;LNE)^?>AP-{Rb)*t1ZfVY`k~~$+u>z4A|F7K zR#I=70MXMYkak&bnBLG^AY`3~7gAqO_Yt2gZ)GTR8$JD)#pBB5Ie@$n#}j|oXWW5U zlORdG72kKZS(De2h^n%oH;z?ZzsfPYWvFJAbd36!r}ts64Hk*+GtGUHj47~cD}5$W zw&xQP#M$8L4I2;kwyutc9WJpPt$x;-%9NwMMfsoxi~X zcVFs%?uYVsd!h|HK5$HwS@D{y7g`Q0eS5GkAuNg~#gESs_G^M|{FQJCsNsjsRjb#g zL2B)fUV*SJp+&xUh{A;%mtlun|6yet0PFBAA7d^vR0i_J- zk#Oa^x52EJBRthz9SP-34f-m@qe>a3U7*<|>t2e1B|=KXkWu~NJC$m2@k>@h0$^_` zkuCR*8;rXGv=7Gwe#1%AeS#7WfAIM)Gk2jy6D!Eby?`z0lknhOVW2hneGb=0A+4vv^!%hNe~MJVgI+r}`id5(rl;qf zr#F|?pB{6kvD6!On^I!Wn~(hFn*5LU-5|UZZMcP$U|kT?onpH?Li8*XQY>k7aZcQE zeY9QZ>s>!+pca2Xy=VZB=m3i0$d3_7J`K=-#{Vbra0UPeW*25hMpAm@HkfXv(Ft|2 zPhywY4`C$rhL`@aNIuECLREDlTRjP) zb*MPz^;gtS`%Sdj?peBJe36-jOvoiO+sXayga^#^Vt>UC1kBQx-l>;`WW?_NdcQj@ zy6+R9B6)nreYox-eUn@{C3G~^B=qoJt>U3C zkDv`od~IUHrwZ5e`ZRv+!MDlz{41iz)9i9>;>FhOPpPW6!A{%j832^O!9w@5OnUPm z&dT-Nnd{P#Wo=6ghwp3%zm8;NXK)g7!Sy%USdMLjKw|3rfAHTI;>Z3f9-}u8rRWvB zvke%U4brSyiis_LoN-G`Iaxp&AV{Coj-I>KgsoQ|P}Ec{g@zJqfP1`I9dJm}*}iLLR-j+MHEObkfc8>y5!LOxVc-BkDK}Zmw)?{V#>9)~@%9fiA|41NWE+kF@w{Coe8y)V{rvHSyUlA{a zijojX>8U#nAI%R17I$aeuUP4IqfbM=VOrE*{e2t|k!E>2xKN4tCT71qHwfEA+4*@u z&y>o-2_e%z%75zyjn(7-gI)id=hS~7-v8xVoIR%O(GoRx+duR6unUn?MrzBln=g$d zM%Obm0L?&lb-PN&0M9F3mmTdvI*S>59^;I045LZNI#+EcoT=pM>o{aMmIYi)m%!$W z{voVX>Z57Uby?;Vsi}I4gUp6EMT7<2jzoq(5lG`nxU~OgpSi4EiMa+Se7gI6X+&SH z=d+$?#J>D^sstyv+JP&9)Kj-c7y8cbrJZm+TbhL= z4qNoaLxT;B6539A^s$_;an?s>elTim@LTl3%?v=g4Sx~}*m+n)xxRRsi9Baxo6ASA zmPyX?S`!7VO1ZWMTo0qPg%e=VNV-g90viAY=*jL#jOB?jzinO0WxtEwoV>~7@us*N z&25k^+*vvEtH1LaN5R*Qu1s(GIY|*A-=`SGUmBEtujZ8Mu)ny5zJCZ3uWIm^h_K^M z$&icX-1C3(4oz^cP3Sw8kV$dExY_sZM>(l96vT`0@lPhPE3>&dyEVP~mcP{V!tog8 z>)%nwwDE3;{v&KWuy~$p`5MfE!!wLlTf@+!qfqRQpKkHc1(NAHBp7NUFwg3XW8bps zy*&4qT>Rmfbji|EXZ~FwN)oI%v>UkXsd|&o#!9x;d&i_y?LZ%4oWhKXiB}4ibFU4{ ze*-`jeFB?9XzKHu@|*~+7@+#J%ad5s;1TI7^qfk!z_niXhaP8*$VnXr6vE+cYXfFI zPZs_?_)1qm{?cj>%)*kBleWGr5jA&mJ!Mx$fsy#^(#8+1tuE3k4P4sCP2_*PHyms;(hGZ5N#F*9(vr z$9a?>I>`a`5iO7r#VQyco^^C)&O5>l zf++~Mz_Pf8QdNOoy8N$7?Em&Vg2w%r*GXpxQ86Ihza6&~nWo6$|l@n9BDAQCYK#6{NDVPXzSbuL05 zDoQXaER;!OBRIJ7dFYGB5%n<#zXF|W_OzxBlve0z?<|dC8oh-R0uLuaFWlmri8v{C<%D%X{|q~+3vXyH9@F=n(LMfQf-VJ zCh6x20|Df0Ypi9Hdgs!2z{5^-a|;$4_h#`lBGOP3UG<40+`{I`e!bXW zs_tW!^HqVsnCgYbLyY_-6Z@{h6r|82ikuqfp)s>TiP8RAv9Iq;J8N*R{}|&%DOK)# zmY0@lCsRps3yo$J=9dk;|27PZO}@!?k+}~G%2JTrsw<2wp5RY`?KQicPX7nv^ki>O z&93{bQr?7(D`&USH}%-*l7ZFDzEy5370H z6FQf5=wUbHwqimT#$wXW0?j~&%peKw%s7Uyp&5Xx;mm;Y{h9NHlp&+>&)4SQ>m5?k5jSeTJ+bVBX9b!AAr>h0ZA1Q z$dIZNJ5h^|wah%&%ZcbsL4oe6irv(XC#yXwS8>cOjS;RucKn&LQU)=~-Y6oUl1_L1 zjHFO)2j;6vk_$iQGbbG3=e@2ig}WEx;Ey>>U8$Vgoz{ANz z(!r=##RJ*uoXpnmoD;t^IIe@&c)j%#z6X2?qhta;M0g%NcTLLhUorUXCz@D&a(7Fs zwPx+F^|04&%t5EoL+KG^ZR_$f^O;$Ji$9l-a(L4+!xTdAcaMFXyo*C|$9aNu$Ql$s z(Co2~wB7CNvd@R^JDr8;oK@che+5`dagJaC828_6`Emrmp-!vbU8GOyJp3IwE92(h z;Q@0*lv+Dhj%&lzRl@)YsH9|+CnQxF$Z_jKt~B8QU*s@a+kY$umqNq=G4JiCmyMUt zbj;LqX8=0B*GYoFgWLI4c18&41W^v))lGE_OcUU_}WeelzX#m={GR}CALichJ)dbBKVVyh+^E`foS z;ki?i?|BcwVG1fdX}g*2Trcm#CQT_)P_MqPfE=!uh8Uk9+X;Yc!jmt<;MyXotC4rn zTff8&DiCTpX5QZ?yKU=D1E%8_dwIKUv!_KjTlyRWjsifP@H(wo=hp^jD~c@yAZYs^ z$wXUyHkeeAB`ot>rn6j%0u*)(pF(4{@?IocN~JyPAL~VP=kip&BoCrb_NWFn^sDlc z2a_Xwr?%0oY0}y-rTOtB#=V7;wi{xZPf63!2_wwWcb z)W>l+#FyHKWF{P3b9)y^tQBtqth|~>=x zcoTG=1Y_GLLgy9&oI?WazuUN+kUt3zOV8j(DOTl!kw`14pDGg^M~|}wCWc2=RsLQ$D3t>n(Fu!8 zFDHV6kgAf8uJ#8{*+~A03zF1ncQUtPONTU6bnt;bDYo)RJn+xroIFd`H2uQLp{(!Y z74ZForkYWRET@J{tf{A4OVu%9t`ep<^_~6t1ebDC;OZE%Z1+=F6k?5vavaoMo%O-n zF|$-4T1WIY2ohJ+JNH8WI9&&TH%M$HT58H{w6Vf>>T&}C&zcz0H`iX?JnQ=Lt`-(F zFV8QJDSCMZOuCd0DmG^ zz0nUteBUE}E}TmfVD*(4>QJ12A**{EZZXdr2shBw_Pb}}Az7Sr9Javxynqg~?gQHR z;h|*B4N!zlJ7^@S0lk9s=}RO)x+xi(C1n?uWN}%E_r3eg8<4WL-a+8iGp|oxA&SN} z=bNu(>H#6@nVQ!Pdt_R(KV6UOdr+&E)4MQ|weW6XK>38WPZ>Zoe&CYFvrtszsY;r? z?L1B9#W#-nBBMq*8|%QgY_|F1MQU*_R*vCIg!|81NzM&k!+b(|2%vM5ts_6%b1k1v-kHoO$L)(mR`rLIs;o0h$juRNktA>H z>0i?o)rh5U$O=3gJ~%6`kDD{>6G`#WNt)U&gnYyl{8IYse6tgd9Bwkb0(7>;S#5q! zXRIem3fRo?IT~o1b_NoZYC6p|(4D$XYl4SKaIQ!jc$tQ~!I*lDda=FTknUvJ&>Tye zzBsvJ*W1E`+wk|fp1Zlf&8z)0^~%(^N&Yv}=r?NHz=Bhe9N=+^yt^gtn{VvH(6FspzKX2mWysHz~XM~$h zuMy*SbpUgc(5s@bfpam?tSEbtclL_2r*a7Y(%WV5iS3i^B{Z^sE+BbiRogIQ|2QM& z&tYevuENrebn+h$&cJaUZW_kNeL+V*tktJ4cRHDg6_2;VjUWL0Ii&_!A&aknW9y1{ zVmDMADRhMSuz^=o-R(subzSUECz=~mow#xnmK6xMu=)u> z8B0yiK6{ODaA7}Oy;yjVASh7v^`*^}id$Rtm->N)m{S@tlC|`l{}uYd)2zC!yb{%_ zqA<>LdDp3$fh%FobkEkv7~jKK1;_}TNa6{L+GlCIJvW#b^-1;2uRUX}yU_2znwm@- z6cBdXB5b|$7vND4bU71GCp?%4q`bn{TAX@Dw>bny<;EtSS6fBfcqdL?Bo0Rq?XiWF z(8Z{7Zi~jE)QPa+qbesgy8(Uq-R>~M8;(QCKmj=e{)|>1eSO8(%&#+linS3Ej4 zk(rsdOOoW=cM{Q_<@Q8t)gt~&@H`NBoVn2_v)OfYFid`b{WXm|#j9Gtkc}d)g2iy`PSCW2A2|d5w zmYbK?c7Z^gJL&}mDuh10(y+3J-0(ej8JO|>;lb#UtPMIGUig`M?D>>=r|PcAQc7=^ zsTe^`eStv8N?IU55cd2Y4qedk+}tULzf`=DQNe<|Y#u%T+1~pnJp0d`zkda*Fp-GE z$X{;oH2QZCKZ09eUBs&5_*Dbj2n!u>cLtA@j{16n*p9ld3FYfiF^&9ZRIequSZMKH zSrMUa1KBzSX(o@~!TgNo^CuG+tEIR0v zv8qM3edu(4STSJh?qt0KjduuX?QSy%&CUM=_ZI?RX6~+&fGeHUmMaZV$56Xc^L6CE E0lXis@&Et; literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-button.png b/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-button.png new file mode 100644 index 0000000000000000000000000000000000000000..d00ad7d2c91d47d4b42da94ad4b4fc8ef98800b9 GIT binary patch literal 28531 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

      i_9E$j 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 C6iv+l literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-label.png b/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-label.png new file mode 100644 index 0000000000000000000000000000000000000000..f007d6deb434218241b6872c84e31b6c4c4c2c41 GIT binary patch literal 13416 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-themes.png b/wp-content/plugins/wpforms-lite/assets/images/gutenberg/panel-themes.png new file mode 100644 index 0000000000000000000000000000000000000000..f230b2e236bd06b464693fd8e7a2d12c388a137c GIT binary patch literal 40659 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-chart-smaller.png b/wp-content/plugins/wpforms-lite/assets/images/icon-chart-smaller.png new file mode 100644 index 0000000000000000000000000000000000000000..a59657edfd6fd94cf2e09c379b31ec3c81a6a951 GIT binary patch literal 818 zcmV-21I_%2P)EX>4Tx04R}tkv&MmKpe$iQ>CI62RoGFkfDl$1yK=4twIqhgj%6h2a`*`ph-j0 z;^HW{799LotU9+0Yt2!bCVj!sUBE>hzEl0u6Z503ls?%w0>9UwHyOtZSi0Zp%( zsYG1NWLL$&D+GkmhfzdiW*Kvml!WK_x`&UicQKyjeeTcEujVWU_(bAaW|&pt4dUs| zs=;}mIK+ywN_1s)*65lVTx7`*9C{#PLhyQpi;T zBgX%a0@IUz7t(BjgaFc>@p!>zPKZb$8F3_yo_V=-EH%|cnGjOH1{gnnV^GSNW ztwoQ3fo_vJmpkdw(3cC4W)!-(C>t0lGe38hss;mVWQ!ufK=Rx%v#e<3hV-l22<}# z0dSV}76e(2IpH)wG8(O^m339NV$No{7YL}TxEF;ZGh+8eL_3GXcKGhE*5o|r#YG5- w>dBybtr9Yrn}DEGs-~jI%D{&Rz7?td0&2^2oNq~5!~g&Q07*qoM6N<$f_i)6_Jr~r2WRIoOGQ34XA0!Rf=Lg>I3BxLXm>s4gM z1_|#wt!C$&H!~W7gS6I>3c{F+a-m#6_+cWz1qI%#8%VrbzgAA5^1N*baw*C|XHe^D zPZ$Rvd9y{jg4j|C5vL+}{}a?#vwl^*?M6iV@zF4=+ioP>&PU|YW3{zv^-VWPHgo-k zop1!QwIT|_^X%^7MTGn21DkHY9EsFKN*PG;u_Gv#21-rXfRv-9+A*8npYb{r~^~07*qoM6N<$f

      or?Fp$$Vuf5BKHoJu{{g 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

      &i`j*vk$eC1aZEJ-TuCNQo&efRx;4cvYnrdWfF0 z2!HBf_&0Rr{&d^RCl)}?&E;(wwztL&PB)BK-ve|&#%Tlz~&?4h!Q z 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
        UO) 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
      1. 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-members@2x.png b/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-members@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c07146d9b1297092a7001d8d83bf909daf8ee18 GIT binary patch literal 94060 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 CzQz9l literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-user-role-editor.png b/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-user-role-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d506822fe924508367a8b701680cd901bdd37b GIT binary patch literal 46434 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�Ca^Vo_r=B&h?OZgzn4Px_W*<1lK<5eajo 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-user-role-editor@2x.png b/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-user-role-editor@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..60bf5d8da4d38caef4acdf67a3092ef0f9998bd4 GIT binary patch literal 156336 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 z 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 \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/chevron.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/chevron.svg new file mode 100644 index 0000000..f4d1a36 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/chevron.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/icon-exclamation.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-exclamation.svg new file mode 100644 index 0000000..f7ff6ae --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-exclamation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-coupons.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-coupons.svg new file mode 100644 index 0000000..11fd8dd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-coupons.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-payments.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-payments.svg new file mode 100644 index 0000000..6da115e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-payments.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-refunded.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-refunded.svg new file mode 100644 index 0000000..df39782 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-refunded.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-sales.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-sales.svg new file mode 100644 index 0000000..63a25f2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-sales.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-subscription.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-subscription.svg new file mode 100644 index 0000000..f3802af --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/icon-total-subscription.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-coupon.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-coupon.svg new file mode 100644 index 0000000..e4904fe --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-coupon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-cycle.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-cycle.svg new file mode 100644 index 0000000..dade94b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-cycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-date.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-date.svg new file mode 100644 index 0000000..a4c60a9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-date.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-lifetime-total.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-lifetime-total.svg new file mode 100644 index 0000000..d066708 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-lifetime-total.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-method.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-method.svg new file mode 100644 index 0000000..fcf5c7f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-method.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-one-time.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-one-time.svg new file mode 100644 index 0000000..ae36394 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-one-time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-subscription.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-subscription.svg new file mode 100644 index 0000000..8a405f4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-subscription.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-total.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-total.svg new file mode 100644 index 0000000..778e1f5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/icon-total.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/single/info-circle.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/single/info-circle.svg new file mode 100644 index 0000000..e64a574 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/single/info-circle.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/star.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/star.svg new file mode 100644 index 0000000..33aa0d9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/star.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-active.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-active.svg new file mode 100644 index 0000000..d94aff0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-active.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-cancelled.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-cancelled.svg new file mode 100644 index 0000000..a751f3e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-cancelled.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-completed.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-completed.svg new file mode 100644 index 0000000..c9fd258 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-completed.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-failed.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-failed.svg new file mode 100644 index 0000000..82f659f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-failed.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-n-a.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-n-a.svg new file mode 100644 index 0000000..0fad14e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-n-a.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-not-synced.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-not-synced.svg new file mode 100644 index 0000000..359a62f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-not-synced.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-partrefund.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-partrefund.svg new file mode 100644 index 0000000..1bf54d8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-partrefund.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-pending.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-pending.svg new file mode 100644 index 0000000..68d7682 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-pending.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-processed.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-processed.svg new file mode 100644 index 0000000..c58b1de --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-processed.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-refunded.svg b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-refunded.svg new file mode 100644 index 0000000..1bf54d8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/payments/status/icon-refunded.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/pdf-education/pdf.svg b/wp-content/plugins/wpforms-lite/assets/images/pdf-education/pdf.svg new file mode 100644 index 0000000..7c2fc0f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/pdf-education/pdf.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/phone/us-flag.png b/wp-content/plugins/wpforms-lite/assets/images/phone/us-flag.png new file mode 100644 index 0000000000000000000000000000000000000000..0c14c5ba7bed90268b449b9a56e1ee6a4cd7d4d1 GIT binary patch literal 1883 zcmbVN3v3f*9KVgBjIn?Y7!owcZ6q7>dXK)=gHlJku`1o>*5C$+UhlrP$J*X;cU!vw zvP?h$31Vho-dVo&|S+VO~2QXCNt=Mx$7wMAhz%LZn%b=pZ z#Ld-La~2-6%|NF|7)THVDvL&ffsn#PtXPbffpcw}z|a^(t+rwXnn1MDRfgI{8K5Q| ziE|`Lqh^baG8qi{`A?!WNs|O=CMXi8X@)d0Mm-vTFepvty-c~IC@u@Gte9U_C59lv z;jk{O*NL)^pez;(LDB?G;}C%>bs?3F;2|Yzh`|9AP8K9p5JRZO$a=&Y)rvt)2Tce{ z3EGencN26N5n&~Q(vg};F(A(+a8ivNhzaL80t7%1gj5A$sRUN?i>j#j#lN9W9N!}V zy4K}N$hfaA!C*p!q88RdGvW@pFIsWeNq{H^idZ9aps*IInWb4HF?JcSswlffF)$RU zvLTgGn%0qMj*I1lkY+^gT~~mERe=?QaWmjBXjHzN(ldG!Lz8)=o*~IWs7vGpZ{596 z+Tf-P3=Kh+d!R6BcvfZq70h#tSCoS+G+79;K0rtzABH9z$=Jn!C_}+eJN@1JPP@HK z7QI3M9w_CrW}?nQyNR-xOgOEhV(PkFj5DODY={F+hZTeF(Fp?2kd%ea*Yif)z~)wWtieO!6kM7-l-EQXjYIbxB3Gj&!O(sFf8H;Z1z3b^;DLFx($untDHaqM*SdJ| zRDebCSwKKz3B$0QRtQ#%(=q_?SbSS}U=Iw^hW!AN{zG02!W7Y~hFKXD_@KA`L*@}s zeL^eRK}(3g8W}sgtH6iguxn`3M7x5EM8g9i*yUu{&Mxe=UPh3lsMAs4E?#x`O{(<# zQxjJ9wdtPr9@1fl8}a!hMv7ka<;Z!JT{yKhR(6@qQc$r=kOk`mbMmDbMyfvo9Hqn(IIGKV)xQ(az4h z_Qm_d8|DXtU3*S-9X`K1SL|IdW&86zRB10Cmd|BSKP`10{KmGkb8Aya$I{8$<{0{Z t-*fxU<6jT>xi8mlSsc!qwtrD+FX8{eTajCW|E&G~oP{Nhoikr-{1a#Uk&*xa literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-full.png b/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-full.png new file mode 100644 index 0000000000000000000000000000000000000000..06bdeb31e3a33c2135aaeedfddb85a5d4d45278d GIT binary patch literal 45357 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 AiU0rr literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-full@2x.png b/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-full@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..06bdeb31e3a33c2135aaeedfddb85a5d4d45278d GIT binary patch literal 45357 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 AiU0rr literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-tnail.png b/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-tnail.png new file mode 100644 index 0000000000000000000000000000000000000000..89f7f6eaad8d8cff4c79f083ced7e941bd7832b9 GIT binary patch literal 8230 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-tnail@2x.png b/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/screenshot-tnail@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..10232b7d8429cf12352927bd7e1c7e1355fc84af GIT binary patch literal 7642 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 JncSO@{{s`H%F_S< literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/wpforms-wpconsent.svg b/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/wpforms-wpconsent.svg new file mode 100644 index 0000000..609ffe1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/privacy-compliance/wpforms-wpconsent.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/recaptcha-placeholder.png b/wp-content/plugins/wpforms-lite/assets/images/recaptcha-placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..5583ce7aabe30ea3b03af3364b860966457ad751 GIT binary patch literal 5467 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 R^MJI)1@=DR8Wm$A@APE|RSqyW!Z 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/richtext/tinymce-toolbar-full.png b/wp-content/plugins/wpforms-lite/assets/images/richtext/tinymce-toolbar-full.png new file mode 100644 index 0000000000000000000000000000000000000000..b366e951c42a38c98f3b9adb6fed760209ab29ac GIT binary patch literal 4141 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 Q|M$vR|BhaP&fT#815EKFMgRZ+ literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/search.svg b/wp-content/plugins/wpforms-lite/assets/images/search.svg new file mode 100644 index 0000000..f49ca07 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-addon.png b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-addon.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb98b6c7e834f0261a85d8872f132a23aba855b GIT binary patch literal 4317 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 wvy|E6Hxv7*$6Y5;(`SCCB*u` diff --git a/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-hcaptcha.svg b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-hcaptcha.svg new file mode 100644 index 0000000..63ad9fe --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-hcaptcha.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-none.svg b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-none.svg new file mode 100644 index 0000000..9ebac62 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-none.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-recaptcha.svg b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-recaptcha.svg new file mode 100644 index 0000000..6d9dd0d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/settings-captcha-recaptcha.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/settings-email-html.png b/wp-content/plugins/wpforms-lite/assets/images/settings-email-html.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbb5094e6adf0540a21fa84c544db8bc1932808 GIT binary patch literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^vw?UE2asS`_JMIT0|VnnPZ!6Kid%2**sg9i5II)3 z|9`tsJ73;RrxRfUE*g<{=DfS=l%K!xnn?VoEC0@4SZCk!dTAn}2RPv3#{gt<~(4&rdDc^s{DPjZ(B^qPFnOE{^ENw~McZ>=d7p z-tpzl)2c3BX|tRg8xjw<=`P!2m>zih=9kdSTYnO)vu~|Bc3g+G@^5`x z{B;NO%_-NX*c~m~^V94m8<(+)%-LmomVMFO)_i9Bb>0aTZ7s~V!3x?yrt)9i_k+Xr zvfHxtr-QC)M*sdbb$b1d%W0WkrsO`mEbHra`_67B&Fd!jw$#Nt`e$#Qv^U@?zjf4_N9$h*;{`~p# zKg#`~J`Kvor43``#Y$v!TB r0FwP^{lU79ouNM=?eM1g&-X3y`Ta2ZRqz#{qZvG1{an^LB{Ts5T^4tR literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/smtp/arrow-right.svg b/wp-content/plugins/wpforms-lite/assets/images/smtp/arrow-right.svg new file mode 100644 index 0000000..d33a412 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/smtp/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/smtp/pattie-2.svg b/wp-content/plugins/wpforms-lite/assets/images/smtp/pattie-2.svg new file mode 100644 index 0000000..e32e451 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/smtp/pattie-2.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/smtp/pattie.svg b/wp-content/plugins/wpforms-lite/assets/images/smtp/pattie.svg new file mode 100644 index 0000000..208f2e4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/smtp/pattie.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/smtp/screenshot-full.png b/wp-content/plugins/wpforms-lite/assets/images/smtp/screenshot-full.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3f2c2f12658e67efcd8c059ff991ad391e6366 GIT binary patch literal 73091 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
        pig8|b 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 JRkMlue*nD=vo8Pu literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/smtp/screenshot-tnail.png b/wp-content/plugins/wpforms-lite/assets/images/smtp/screenshot-tnail.png new file mode 100644 index 0000000000000000000000000000000000000000..116755f3477ab01841303243a8f7fd1ff892c136 GIT binary patch literal 10971 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/smtp/wpforms-wpmailsmtp@2x.png b/wp-content/plugins/wpforms-lite/assets/images/smtp/wpforms-wpmailsmtp@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..16ba0b1399eb41d5d7e853f38174b018339a695f GIT binary patch literal 10673 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 diff --git a/wp-content/plugins/wpforms-lite/assets/images/spinner-white.svg b/wp-content/plugins/wpforms-lite/assets/images/spinner-white.svg new file mode 100644 index 0000000..cc495ba --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/spinner-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/spinner.svg b/wp-content/plugins/wpforms-lite/assets/images/spinner.svg new file mode 100644 index 0000000..a590612 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/spinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/splash/sullie.svg b/wp-content/plugins/wpforms-lite/assets/images/splash/sullie.svg new file mode 100644 index 0000000..a36ca6b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/splash/sullie.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/step-1.svg b/wp-content/plugins/wpforms-lite/assets/images/step-1.svg new file mode 100644 index 0000000..32128fa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/step-1.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/step-2.svg b/wp-content/plugins/wpforms-lite/assets/images/step-2.svg new file mode 100644 index 0000000..f129c14 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/step-2.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/step-3.svg b/wp-content/plugins/wpforms-lite/assets/images/step-3.svg new file mode 100644 index 0000000..3e47f30 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/step-3.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/step-complete.svg b/wp-content/plugins/wpforms-lite/assets/images/step-complete.svg new file mode 100644 index 0000000..1cb70c2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/step-complete.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/stripe/stripe-connect.png b/wp-content/plugins/wpforms-lite/assets/images/stripe/stripe-connect.png new file mode 100644 index 0000000000000000000000000000000000000000..42e9d77467e673db594644ebdb03407a8ef47d70 GIT binary patch literal 4303 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/submit-spin.svg b/wp-content/plugins/wpforms-lite/assets/images/submit-spin.svg new file mode 100644 index 0000000..2e4ab5c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/submit-spin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/screenshot-full@2x.png b/wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/screenshot-full@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e66577842d6aeeec93d8aed98f84d10c08921134 GIT binary patch literal 192345 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 Vq2&SI|NbKZ6l7GTYbDLT{})kIHdp`v literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/wpforms-sugar-calendar.svg b/wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/wpforms-sugar-calendar.svg new file mode 100644 index 0000000..c874759 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/sugar-calendar/wpforms-sugar-calendar.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/sullie-alt.png b/wp-content/plugins/wpforms-lite/assets/images/sullie-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..aabc62ca8623f30bff9528da357309be8b87af6a GIT binary patch literal 19198 zcmZVk1yqz@)He(h(%mH;!q6asAP7=Q*UV4@NQrcVgwiPp0@B@6bPXX=(mjB5$ABOL z((v)W?`J*l_pW!XnQQHH&hPAfcAS0fb*>Yur=w0r%uI}hg+=z}wTb~277py;PfLjV z&_isJX7kXv)zdOkeQ17^r}=+=*1Ey}|IPoQgP|?|3;4gp|AYVkfFFkb7xwV{e-R3F z|JxH>(HN4D@PFw4!TewPqnYCWr5}i9QlxmNu^M8jc(xz)LgeuTvX)%0)x2C+NuK}}sQKPFjX09}3ZZctsRi;G%nOh-j zroseKO0?m~wq+mTVm+qln(x!D0-e^}-S33Pot~8GGtGaHZnNUKzPTL_QTwFA`sd$y z{rE4(r=;F84JIZubj8*ESPy!>^XJ4;f^hBRwsLTKb_+A+`C{VW=EwYc^~h{# z-^3xzkGEvMcNNpKyme6Iwwr2mdvW%sK4dXOcfk4S(%$c(4a{1E(Oi(m!0JvjdbxFK zA**8$m0&UL|7!jBpE8KnJ82r&z@)nzOaH?9CnJ%NHvmkIW4?)MLT*mM2eV8Um9-B~ z|E*7iM1+0#;B&RV8dFsE(cS8sfx;JyXAz~ysyNq;5S2hB-ow7QS(tykmPEqW#M#+7 zXzIu8u=gMB^p4Tp-I;a+(Z%Rxbo%zAvvcF}1OZgm( zbbR6Pim5uxa5GZ#@b|%Hd)RVaXu0d_j*jokz4d>FYGq^yTB9&kyEav{4wXFZ;D2~>t~&l{#z^Z z_~PY6k$P8(&FzOU(XB<`n>#mN>6hb$T2HXB)PvrrC>i=waUKSiJnH?UQfi(3VHfX4mRA#n*Me7d_Bm4)nI?^IQ?Ok_|UK zSeB;Md*uLA%dw7IPMMWPnDz(!hJ4Q1LX`*P1m}-6%!0=cj~(pH;n`&oCu9QwQ9wl> z-Uv?7&}7p<*gjFrJV_6QHV#+SW{ZkF*1(o@e16 zzj~A3x*_`bF}TH|V^SLqf+8hsRw9Afxu39x3F(gNT5w*8;G*MRSqSKMNVY8^Mh znS~ix(_2(#N=e^$D50f#O74rYzKJA6RSBm$-c?nTwm7a>>6q}Jh@`Ws%ra~KNtei} zrYEO_Sl%Jc8;Tey>z*(Cx_lCoIq}3uIXdQFb+7SU;rYyj-`4v29Dj*G&(gt*e{4OZ zUN`tkm=t25!P~bjs0t8i_~o6)Cx~nMY|pm$&|FA8-z||sdr~_BN#oV-;E1)_Zq_7hSj?I*`YB#h^!Y)}uXU z$KwfqUIXv⁣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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/sullie-edit-post-education.svg b/wp-content/plugins/wpforms-lite/assets/images/sullie-edit-post-education.svg new file mode 100644 index 0000000..c1d9a6f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/sullie-edit-post-education.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/sullie-vc.png b/wp-content/plugins/wpforms-lite/assets/images/sullie-vc.png new file mode 100644 index 0000000000000000000000000000000000000000..5500031024e8d7f9b63894989c32941a07a01f32 GIT binary patch literal 4395 zcmV+`5!CL9P)ps{tNwsN7fXq>J9V5PlW8{_l&cRCUPmhA&+s{m4-=z1~R z?(~wm$AqrFZ8Q$ER~dyt6LmQeayJmw>hS=E>g0GZu+G_nKNH5;;D4;V<@NpW`T6?N zl<$5sY@V>iVI9ES>F4zJ^no;rLlnYa9HGeGZ>!F*Q4VD=4gce!>5XB{YABvg8DOEw z+;c5}%J%D#W#WBN;d3aCMHK-71FTaSz~uYRCPe0FLYa z-=6;4oBM`0>U=V7!}h1g((#mN@MVIslEe!>?ge(RM+|Y%|wyE3QQa z!A=9hNdSDb%K!7P|LUn;DhTE9^S;*Jy7ev;d?u) zS0B7o4{fv2@S|{>fNIlcAUO*FDFpy?y4q;1%wm|V>z7o}g+}UfBdJUb%hKby_gSuH6=424uT?}?306($u z-sjbWNmON%VOq3=$fd)%dp4-MG)$`_;Gj#-fvN(Av(u zW_E+udv%RgHmBS9n5(&aov6r70Gc`gP{r`N0000TbW%=J0GQ~W+w#Y{hCyN<4(d)U zcP_)Qf8nG}{J_w_x-V0bhX4Q#$w@>(RA}DpmsyAsaU913Te8cIB8Xr{`b#rD$vpU= zGXpkJ%76;1Hb|vHc%UO>mPdwZt{BOHL`4tXy>!w=7eO!m z=18;K#m7D@tjEv)$M665pYi`6_n-g#m5Ex7RyU=Cn$GFf%tQ$F%$WGcnyG5d*qDR} zh9W73M4I2$OjBzJs2KzBd5X-0LLmV$Xu@x5v=xRdsWmgk(hiQ|tbAdxz~e3kX_XhJ zOqTymo~+g&My?rDYdU5sN#GGal!>_`Zkj=p<#0V{2DDg%kVdURcq9@F2z(?;Q&7_( zI>f{xd?s7Ya_)$gB(zeK5t4@2RS>F7l7m1^#FfkENj?&yI*+0u2x~z|XFc^CUEl-E z_}+<=rXzsUjz_@wNxI${ByAeZ4Cm76JY9$esM(!LrZWM)z@|MOi-pYuI07}Ppcb5~ z#MC|6axNVm6xg0lua?=Yz{gmY;5ZtAhqW|eDT-ngD2lb90L>xRQ{rRLxK5K0G_;Z< zrBRV9kP%{ywQIKl{cD9-EM~Qatf7p{MRNogkO^H-c8BU?YFS&!C>&^+*M~*A2edu;PIvT*v2j0lx+85 zCxgds+z39qb!K&S)#c!&8~1`Qv8&Z?N=ElWkQ>L21z*0qI9R>lx zvLCw+1K$W*%OG8#8$q! z^k(PPGf7xosrlD0-T#2yt{S^4v5nfUynA}3c=4jBj~2EbzWVg(<3li6U63r5*sd@- zD&F0`MF`NAx~Fpd%Vyiw>K2t1eSIs&F4-foU*&MXQ%+|e+`Rc9n}%PLdgFk~#{Ny4 z`o}C;dU&xfwRgZPbK>mq%?lScte4nu;ljwHkrM+lwPI@V@-S{4t0d(!ELr89BU3v! zboAr;4GQZ&z8ZdzNXT!*iz!1mylq8ik{QkEN`*lZ|0a1@KMFyVC`Z#nBXLENC>m1X z#r@wTGpGD`e9=z&d80iW5f)jp)Mofza_6C^>=`*KaWk7s55KO>X-W)>H}%O9M53u} zV`>mVpy@w|dn+8{L7S7Rq%~b}J2>juay^~T<)=dwc&J@xX? z@X)LTIAjuY!YPB#0IN%Zw?bRSO=n$x=VqE=GfutHona6Khl~&+WXS}Q*z9OZ4ufR( zUauO(o~RYieS$5^$oW$PUT`StRl5xaU&?A#B}S8r>KQlH(l6@8eha}Y5(^=Mpj>Vv z9w{-svSbbIH@8VrOQa~O##=ja{?SP7#K0VQNeOc5$X)3B#y-3$34mlgyGZnli&#XV zhJZ)}CmFYi4^Wd83HP03PuO69uEY~Cr0Vh7b9YX(p3bQ)+;>=6Ty04-Y$hq{X*k_@ zvL2RUC^ld;32;nmN!pqsO<4Rp%ehmD)|2@ACnI;mK7-NPF41u;DY#HZXf)OerBWu~ zA`n3l6MiMx0}`+-Pk7b&fkjrdw_?<0baxv*`s%`6=_3MRKZYBE|& z1nQYKxhZLn0+w*m8&@=7Q6Ch&Cr)LDHf*@P+!w}I{2-Y@a%RzN1I$StE+6=FyEzMq zkgg?ZMUmPPUb19wG2v}a6PUdAc=7e{5Zp0~zU7zd^5$f-!p+HIu@UaDh#s95j_B2^GaNhH&w?

        ~Z|%&@jv3Z;NoD)MZcV4GwA=IY zTDEA>GOxp^-tZA!sV!NTrh=UBCR6+7a=RaJ1mSLBD9m%bT7~ecd2oF!1{17V-Q>uQ6CW$WvmN`w$%DJiwcDwsCGC6n z@vX~W4{4lJ4~5R1>$~yz&BI&vgJ^i%0=Z8e7_~IGd3xc{7=_I@2bVS}nDLch)5g&5 zbD@f``Q>%))NOFj0WJF3^E%Lu*lg|R-MW5`5Ts#(#6x>ZqUid~3;RGcCMKGayRvt| zfdh`EOIJ{qF15l9og-DSkP7DSp1*xevCZFFWGh)B!FKRGy{GYyNv)%G`}QDuHTH6NYn+@7d~r&ZwW%e z!6Y?FXk%Gfliut~@UC>vHA_Cy-IjnzCCnlUy4r)I6#K9FFhY=M{sv62;&PwmC=ecN zhDSE1N@(NB?HlE{x)&v;I{oNvtoLrty9*hQVVTKs@|lLE&N)6CG>%7+34EF2K# zH9@<|988jfu<=xT-G2ERVB6bGyAP?d$BRTok`z5AVOW&CP%<-=Md!sYnPjKrMetr1 zt{6VkR6jV5dzr5>a(Z9-pR#E%}&Fm(c%K)HIi&YZ|Cv1$oV8 zj~PLhYgiOCpDZy$sw5}GE3&a+Pc#}W*`r}YmLe`*R4i_cF_W;81@=N!c;PIUkeDSW z;W1Q-gjvheB+wO6@i>hDAtYemR0!D6IKfQBIr zc`XsA*DFUN9;Z*k$OWB86~8HgzpQ|RNvK6uVI*a9MhVbZ#k_LWEK9OC-#{8dD&k3% zoO(=>2E5HA6xr;A7+EAh9fAZN1r$ZabQb|g9h0dFlVqevmlzgHmvopUPENgw1mO(= zMudQ*N}ZY}COJ4di3d`QP9eWfX3WmGgi*78oq7!$HEPtbUY+_mCV)xK9Gwv7=oL_Q z>^LF8lk@FbWuRSKZ!wc(gh@KKiPMovCbUWN_m&<*Dv9M!CAso!YMf`ZCsR{+ zHYg)|%<`{K*XW~vXu7hmlL@Kok?@yQ9BO^aN!rbqy z6F^eJL;P1(t*h<=xf l%#qPjr^0Vi-}IkC$U8LGAzm002ovPDHLkV1lMQRAc}E literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/sullie.png b/wp-content/plugins/wpforms-lite/assets/images/sullie.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a3d12cebafc5f4ffa7401e2c83a9cda13091ff GIT binary patch literal 25007 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/thumbnail-simple-contact-form-template.jpg b/wp-content/plugins/wpforms-lite/assets/images/thumbnail-simple-contact-form-template.jpg new file mode 100644 index 0000000000000000000000000000000000000000..074b86bc2eacbbce35f2f30e49c933a28555b2d5 GIT binary patch literal 19298 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 \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/trash-red.svg b/wp-content/plugins/wpforms-lite/assets/images/trash-red.svg new file mode 100644 index 0000000..f4b257c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/trash-red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/trash.svg b/wp-content/plugins/wpforms-lite/assets/images/trash.svg new file mode 100644 index 0000000..3a9c8e1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/trash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-full@2x.png b/wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-full@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ef89bd37708118d9309ff3c6dcdb360753a4dc GIT binary patch literal 159843 zcmXV1bzD@<*S{?>T4Axw9{Iv{Z=+=m`J-Aby~xqz3>nH~`>W!>}<=Ah+t{m@!O8 z!$A4=_I7V?4>RuX?_b^A;3jTdU0wb8^XL5HVrO^n^z`)h_TuR12q$?1Cvh7;@z>zs z;MmyM>gwwH`ueZi+u7M!$F9eVi;IMD%hEEk`~m{xvE%LS9oQ+qE^jYRZg15dJlMLq zeb)XcGBPRzg-T9NKD|9^Y;0t`!~VXYKvYcZ!-o%Xaq&4hxx}v)d-g7RzI{U~D5j@p z{Jp&;iQ6nIFK3MEU$K_8wX+jX8`aj)b#i`z9rLTMu0AvCEi`G5B4*yl*OxkJ7MZ_9 z5I#ofchz|hdx#FXjfctAkFhm~7PYil!ebI%q#+?2%^&E~gP$5k7*+;RPm zwdReRH}=&lyElI-mu?B7<|eLh=g)4LU(M6eGw>u&u)kgsOq)v`*&8{$dG={^7R?}) zId^z+mNj=noBZ4G^G4y!6+y&!>CB$~+n-bsBO$$K?p5>YqgQOE2dbYoMRI@TuU)LfPu*%3ESh|nzdhNXb*GQ$-tuo=?_KZ6S-bsyaT`2( z6Z`#8IeQ!=r;se#wanKi3Ga7k+F4m!_iq0i*6RIr>D0RQ;^s4!+rSNH=7x67amCM% zWA+a|?A=aS%QRq2f4T13aq3!PS1|N8?i-3WwEJ~aLjLIf?e4127so!|JJ-L*lU8ms ze+8k*i-oSn>Dsczg0sPfmd!7R?S-;QeZy#x+v5qB zsy~+L2I+m9B33{9P02V+S5C_axzSA%UdG#{8Jo2cs4~CVuxG0u>~_mJr;;_hY~zB!`z z%Tqjn%K;a?aP#g-`zI{mcmU-Z4|~E52N2dtesOrb)G$0i$8?StXOBh!0*p~jM=o&0 z;{aA)Xq6zq5}(~jZXI4SHef)-l0`tm3Ls3Z*~tM{s+=f}%wiZ|I7rYTigQ%i(?SjC z4C>?LeO^y<-r|7)I@(YBz2bMuJ~xa11%QV!PM7qPKPNq!cCwhUfmDhBx!y?&a4QRXOjdYVtfB|zH z+(oV85FlL=M#2sONU5MWP{8V?ry3dHD_0=#0t@SAs`33e%o6rI;Ny)^4rGfmhnS<|3L>=x- zqu<%sb}L!$0c~HExDR>Q;>t~Te=v<6*n4=M*3YlD+~C6iR{=8H;74RVys)Sfe(ipF zha}8CDaf%YFsB?G2KKOw0l~HTkDB7yu>>9T*5;*9(SJAh7iP zyP0Zh_x^qC7@(=zM^&6CTnI!I>R>5v%e$z;9v!ZpHFIly!#{)s?JV)*5<&srX1U2# z;*LKUC>ES--akoM3H?n@0TlQwz!`DTeptYCH$8e}*NKz}NVK#MceM(z0#H{rxA3{g zG(e)o)9~RL2|}1D6zJujg2OPFLc-xSVo)f+#VVpVhCwiK67I4iW=llvK>&424`qM? zCCG5#YO1kyyw;kFXvx)6A}vCYo#6>N(*NavCpAdQ(yd z9*doDy5-Sa2Yd1N59w~cZv7a84G6Kpp~e{6z&_jCQ@0-(n0*F($%Y7F+!%F$Hg(s9 zV#%V-GZb9u>OMJBZRmzhIfW6o!VG4bM5l+WgJkfzw+6y$uMPzlu^Q~^v1rb&qxx?t zUA8T*bu{cfBy6aIOaA3v_SjLl&;zMOtqD!_t~eBifNSJ4lkmik!%8%`=%>?Ohr3pC z^1E`io(kWOgIhxmBj~WO0APveM-^_nOB6?KIu3MFJEZPLiL<86M-gG=@2^cMgv7=fS^_s%qaU73Tia82;Q$z{ zU@Oe!yNZax`I_d1c{LU(vNWQ(cGV1KWdlv6NR%Sw&%eA}%oeH?;$?mHI~@h@SoSPo zDDT>Jm3@TM@&p7ioU@mZ51wzEQG*9QnuiU~Gj|6)D<99DC+rQntjIogBuf});}BM0 z><*B8Il*~)8?B6f!(QVV^ zD>FoRx5}Izn52Ce5XveTpxV+Xd_$d}r2oj^D>?ZHhyEHZn8E(xqgj`cEYIub7enlR zCch(ul=H8B^Wuzu+uC&9xA`d}s8=R>(~Tj&PpPe^p}5|GLhy}z0>KFu78YgCBIUQ{ zW#8F6YRwnYRvtUf82LL zdaTxt&!%@+ex}XWi>@}3`f^vq^EEK>04q$Ai7naeO89G6PX9fg_9^0Bw+qv`)0mQfavLLn0M`cZj~y3{`va6 zmlt|Jku)I4nnT$`ub(#a&OvX)Dn&!n(X;X(DR-e{-Fyu%Mq{+iA%{yT0Tw6RGqw8S zG%kb_PHBl9HgPoe+o3%96qOs+B=GpjRfxxyow0`}7He={TrA#n-@E8+4hD5#{PY|_ z;}vuiuC05&!&CFgq=}UD_NDflLdEsX(Y%VD+EoHcxKI!66CYeC`PIvtI!KtPzkatH zTh=SoFhg9Bmz7cBgCqB!FMe{T=bK!7B3oDHOBww1JO}~9Araqgnl1L6x?3G*cRA87 z3Qt`(q2x55{94U2={DLs#XoJ#*BQBrg)xq|56*HDRw!foy^YiGg#a9+742kAx~5&# zBw@q(kRd4W742$z7K{Dd@;Gw*bBnQ15+E{9+pLkvLG*hx?PTlY^PeBKthq>%h%T?Q z1+#D~@t?(>yQgs}Sp>fk?xAgTVL~HrUZY$?NEJ>p&&G*C7c4BDwTQ}-8al3A z#SsyYJ$K26946{s5j9wuf{XT3mNpxPyhhv^eTgDJz6f84wBkUk1KbuPL3Ymh+U|OK zH1R`8#$Mom_Bk~KA^vh=a7ssHz!<2CXti` zcB}vdlE7;2yKJ_JsJM36KQqM~)~ZB{WaY!f>EHD`k}A{=QH7J&CIf2mqNe$!`Y-6<~9*5S}k@Qa)c{rMs7#8(R39U^91;Zbc zLIQV@y&-eq`))5;vvzY%FRyKcEd{7u#!DWUkt$Sb2a+J5{yVC%eUBJyc5KPm06Zv0 zl)$F&_0Qqw?yVTE&23@^T75C z@vw3~Xw4{xZsiEXi_Wg+ft&e4UG&bSm=XqKAG0QB>d5IcLuO_sva_YTgqWZ8 z(0`t@y|}j144>>UerHaSGD#6XGwusFI3NRoc~xysZ}YLy<1?L~Z%3;rWbb0+6!uod zX_voVyTrl@p$EtK;q^~6n@Yck4gER(aDrtWP0;CJWN)M4H_dpwV?hKti5mEgZ|@4$33KL#69pmwDlJ0sZpvAzAgwL8aacFjfBsM$w)B}VkdnNG39Nbkm;eT0yvq$@ zJg$vHw(B9nXw@<-6aE0^mclHiml)`>9Qo zvo@yqVGvgdN$1#3GpuIkFct3ysYH?1g44RL5`&SssU0n;yV-<_bSr(9Huix*a9X~t z9Uk78m3zS{q2$q>=iY{6U!6c1DwVDN+T3B?x5d>JQH&tQWR;fz;Ktu;bt2}Hy1~Gf zS7b6yVzJ$9^i6nZ_#)q0HLdRPD$kEq0T=^L^YXR=R^HHED|$miN^t?M+~i&IPH(1R zx#8I}ze+O6F^bEZXdIXuek#6c1?&lzJ048J??a9b!y1Gv!Zq_L>}vUWw{E z;_SYSwr>fD27ZKy+O#ghjZ=AuQ?r!<@F>+8hQSwFAlC{Hhv zjsCOG-U<9Fu(E(Tx)p0FNGj$txPdgtU@^bV7f6`RAM431O~B3so1fMe`g9leK2!`y zm)S2?gy+zxH0@rx_%EW?pSc~QFk$HOMheD~wO@?2eA$Ln5`Am&aJ8!KxX|~Vy7ITq z4bl5Wg{+Rx>t*@)xcxcNmK}ce~7pSpC*G#{j z=c+U09Z}0)+4J<69F5J=rQJq6N&0V7@s8j!Lhv~Oc_9B!RMzoX#VixYsPdTp!#VVb z&4GUjY06(2mb2hU-2Ww#TNTm{)rY>mILo7?^gks&s!?+4u@c~srE0t{`Tm~kVI0aIpdFJo6{Fe$nyVh`0<$o(27IOCmq1xlS!;R(1|G&}ScwtBTfUp zpJ0uvBo>y{jJAJ~!~_X{aVSp;TcJ5y=E8%XU`|jqGeSg)Sd>jmG?*Tdz?V1pjt~!f zdM~-+=g+Z&XpCZT+FV129l}fS6^73D@D+IQe6UayuOx4XczSrjNK>LllXf;FfJ)(y zJZ8F&q~!ti-`0(7Ndl?Vd4@;r!QC#N5-&C$CWefF(uTalwHha5CWlI@m%npTs7O^~~(2a+@s}V;Q9UZ;In=ZLv32$Tf2PNhDZls(UoQ^JActGSy%7Nco&1cnLzO2@T1f)$?{i>ZP`FIu%AtM{<(R?4i-oL;T><0*A8KtJ+#!1~@+| zFYV|4pe+>tK@`O-s8=JZ_{q*?ulAOuymI%i`U|dtR5}csccyUEya~Ld$iC3|gB;s| zp6WwTO7~PUlga?ha53g@;EWiZ0S!dU&yT+s8Xpyx;|~8C0mGWy-@U{6w_Lj0)h`U* zC|qLV-0x^&DtuVbdbL3rDRRfI%^;vMngF>}aFpAW_Q+YQo^6~{5O?1=eKL6v8>8Qc zPqYF-I(jbr28p>N5BCHRu1g_5x(&(h9#J-@Zd@LOYp3J$u+1r!_%LHJ5m+(4Y!WQ&3}J%Jce{m3u_GbU zwFuJLLQD)ENPXvQvi0RJr4#p=WF*Don4OetmIu?%5uJ?C$7|Y!m52%~TH}1es3l1F zOUv`Qq1u?pmJ9{ju?7JrG8pXcIxDQ*s+>kGE|x@C1EJ{B6HN&H=Ehk3I$TG-cIKxU zd|%oQA)0|B1iMJNRhUE%>hQfNBm;Znu}H? z5=K#LBppBa&})$8L|Y+F&NMlv>l71Pw6IZpyHM?zY>bNf+WWinw`H;~z9m0Q75COp zSd|!R9YmH`no7g?CbSjgRcR_j)sSBd^b{Bel{SZ0jnPwOP;n6EdxTrwj`{!vCLk zwj^OeYlUABR_J8CH@y3`MEym?LXTlkCXaWf zyMse(@QU16I~J}qvrb~GN-zViU}FngRl#FjXYTqWE7&ka_K;}PWA}HmOQ##-H@}Xo zexy~TXQi<>Tbt&`Yvi!;!%b;c9IZ??I&%%%l5{UVLnyp_JZ0T;y&dZGv9)4?-X@O8 zo(V-)0e`sunh3*Hiy;&oT7kD6wbvKmxOW;fRT>M2L(z86x_*mAw^wKsqE_K_g%r|=LyZdI)PnN#`d)VE;}jjJ)_@B{cs#Lds+~_m(nc@n%ySM9|I8Sn|4mFo2!;f}vAJjM zuiU;TWP5OQ|AE&~z)GTVI@O`G@0=p(ny77iZHag?{Q6X^&~MdW<7qRZeSY9W*S-?n z>7rGlT(T8^d{-euM<@epL`&&GnF=ym$T^iYUtb#QmJ*iZo-xy9edR8VkDhG=qOH=9 zthlekd8{BM*mb~^?^WTW)okOgkB>v)`5k+q;EMd2iLBsBFf-9H%*`u4=B;2EP zQqksD{k5Y7S~4cX7dfqq0SQWMx14QOuKlwUQj+Cz=zBg*0c!rLMEEZRUZ153!>%|4 zdBA}T2LK`x^UdQSd_SeigV8fO^b$e_`ppqt0DH8UX31UfOy!{YSUqQtdh2bE`HVgXw40*QsxeaD8b zfrmsfo!*9DXJ3yyWHW$q8qQz1>K->F>$^&KCr;Z{@<00|r49ldE_B0^F8PRPCAOq= zrp>LqtRIc#)iS}krITC1v=iZjI&gX;pTid$YHTvjc?E<$a2UJ${lwK+PSpxCV}&Oc5V7B_**WDh=m#UiH9-&RA5j$umUN)5w^7a1L1RbuoJ<=}0XX7lb6d{2J z?b0Zp&)q?;-&@DlyW#dOLFCL0KfJ)ITAu!opSN1rly!df-XK-KiFy3=?4NEa)eDEm z492my=bMUZCK2xNkW*!iS255tUpysv!=aAAF^sRl=d$9e5mV= zp$tob<(pUOS8NhGHq$eqyKO8aT%xGxusr;DK?Miw_kZZ#trQ@nE%_cbt1Alrb`lz^ z<}9nIdeax!n8}~X4nqg^4WT{C?d=+?Dq(z{TKMP^(tl2ISM{QSS0;Vtu}{RkdzL<5 z6jOs`$G%SVHCfW&#(%zCP;Y8N(5_PptigdeKicn-w;5EKt01`cYY5Y+jun zEZ#v=`&_vw906A-1y+!715ajE=Ivfi9oTzBMm2)=GTj>)iAqtBu8J#Ff~I!ozdhE= z<)N3{{y=zW zuI^fp(fUi)P@Ttjgv@_Pe@@go)0T#zu*%%G?iDoS5kmD~eAxDp%Y;Aia^kPfE=gIc z5x&E3CI#Gw0&%8L%Qem|l|_y~);Jb4@_&(gQNd4}pF9Y5`ok5v?) zp*p*LLolg6pGNa9B-~lLaE#aVej<>Dtx|Rl*U`zB{(O;r;oU62&Q{u3e)6X3c=!`E zhXWUBVGOr_<3{!V8w^@c1(UxTx`6Mmeh!&~q1U67lyruQenRoEhTK3z+gB4J@9KHM z*f|QnO1`?+qB2$tcV0gnoja~hjtrC~KpVQ1q=*op<0o0Cgm~3S3}|sWY$#!>c-E~I zF{h&DLfZN{q?A>|PZiW#Gj&~UoDVhbM)yKkv(hg=4xwB`%X}J@S(wmj?Bsrh!p~=q zx637v`Q-uh zUHuH9LXV}q!J~MDaZyw3%gjnlnMny#>rE@BRly5gmE6kTjnaG|r_8gV)+tG5s85sT zh@_)@kDyKA7v`;7-rc9=1@L<3v6xo}?<|3Eol^$&auFZT1Qhm=!2xR62%K;8(2g9-rAXuyN#xy;@ zr_CDK`9R1^i?xH!3-hLwETH_^Fj435srlq!;|#sX`P+m?pKKR@7!i`gzT!jjWC)-n zdRGCVxnHO=#D3RqZ#wN89QPBgG%>tqS)4ize|)V0rZIu zSAs4dVPV8aqsyv4rSC1&c($`dGJu(1L$$viRrtET1g9-=!X%dAYU>B~|M?g%DvhT< zRVm(AZK40C#&c-oZM*iU0nYKhr=#$dekgFKmtC$v2#~Q$g-CFNA|XL_qV#_>m+45t zj)t`HPBf)q-X7*8a=i&pB6>^nuo~5fcOE{L)q=CDpjhgq-fIH~=T4Tyl9r1V7xwpd zqnB^@%h$Xk7`Nc1yHYS4f_IWEMjmk(XE%Z%%E(?!QmX_nJF_xAIdaq7xOGTeF{FK) zlr&VdR^fXbPUpyar^Q1R-gKLg4Zo0!!dtP9h@3Ufk?9UuHkV)i}@zWX&XGi@u zPm34NOiHE;)&!+s3U8@lxj7WD=pHdbfda1S;#{lnuZl0q|LDS9e-$2+Z-(oNQn_tY zqMQ_nI$}vW3fk`Z8Q0wrSf_od#3m@4moHcGa2QyrufHEx=y|?j{C5B4gw5Hvh-5h2 z6`CAJ3~k5$>xWq4P}f7p|6#vYhSOScPz(M_eR;_UMGU-sCva0rW~*v~Yo3MI^y5DM z$F<)Sr4NS-yr-NdByA=JrjUv7!`e)oP}h`hI7kYyMm`B~uqRFCgF(54RuvwoGuZJu zRhp&NOy>9K6n`~M>3Hz-_#@Ht1O+P1`!26>Q-dvrczChKnq;J4+=OV+Xzs)z)^>J` zH?tpn2US#8hTyab9UHtd%cewEC&r;*q-`7a_gC5#HShYy=^)G4?jY)oC$64fPB;Mj zKC8i|L4YpEa;E7oXQp$=3Ud?T5KNmWZplb#9WI7_ykj^_Dd!>jAOa3{(8@a|K-#BF zK$xJG@Y8M^mPcmBr-!y`uS));;)G?5Qi*^05oA6nF_?tYAw~J{`~5#fGe5*Uh1o+Z zET=Jn{duTWy$G5bBPjVxGdoe$nVZmXIASSupplQv+W!}0!lMTOX;!d@0vxV|4;?go zGj>f9rlz+w{*)VEX?_IV&i}g#C+QdCgL+c|@uq`=IeOs1``g+AK3oevYh(jlnLoxb z!)91TsL$hhf}Y#mZW(KRR3|ZZz);ql(Ie{&qmML={O>A0obWbmcz*!MEp?;D-4_h1 zcV3LBL$w09#2*o=PiAAZr89Yc* znsq%y?tbaGrvh9p5*Hlr2{ob{+pASZmYW?%OJ;?fn2uBxnccO+42IsgD*!S}9 zJICHeV!@hUNX57plPy2jO24oakji4qEfV>*rECpNDgXTWS#t(d?^(4(Cy0?aiBJND zCL&+{OA^+`;F&BP1!3j_EsDweEkjPXr`Pw)SvxwRVUH%}x8TFpsf;b+e*;EX%|)^X z?L_qq4PBBFYZnc=KGGe4Er68ZT3`wH+v58UI9ziTCdU?xLgmwZ0k(+|A4%H z_xa;^q-DRI1+-uBkO@C!!a&dZi)ro8NL~Vkum0PwjNc3ME1e~A9Z$=-dTig~I3RPsH-8a${jz`}RprjpwV=oq+)ce4 zwmTwqeM#CW&$U>Xnq|z*I{!X8<5iXYMgF>YPXk0o4%Iks1v2Y#0C(SQy@s*Bk$uxw z(sWpW7^)?-eB~=S2Jc=boE1N#=6d%(An^nsb4Q7 zqh?1tXDvT_g)DF}&M-Gh4A#dLdB_QjQU2TeSgMB&iQyzx~5>OWcTk zNjW7rY6*@ui`vsBZCn;&IOb{hNa3yT%p%?-ZDoqw`pd=IwS51&$<`^#^@<>S5%t;2 z^m`l=ylyq;$1QURwu5yK<>)`hRT4;D^R1+X^1nNTuoQqxvJ-gn)pBQVWYI3IDsHt1 zD;?cpBs}`k$+w$3>7o)B63t75E#AyTn(YqO>)MCU{i=Vrj0a`;HB7k_h=*0+@-Buf z=3huS{~-y>E%ag*#ay2I(Q+NRgB?lLA#T}OgOK=g0X)o>OtkAjX7JoeRR^B|?SkMc zp{n?j#Mq(0!QWZZ{gpoP9eailX3J%Mr%{<_x=Ux9wJD=

        dBKL@Egs{u8_=bG3w6 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-tnail.png b/wp-content/plugins/wpforms-lite/assets/images/uncanny-automator/screenshot-tnail.png new file mode 100644 index 0000000000000000000000000000000000000000..50f5e5aadcd9df52501f132540ed4d733f2a306c GIT binary patch literal 7572 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

        LItB_H{_yGA5Lw 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-1.png b/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-1.png new file mode 100644 index 0000000000000000000000000000000000000000..69785e5187565b14c6de4ebb14a7c82fdae4c143 GIT binary patch literal 1034 zcmeAS@N?(olHy`uVBq!ia0vp^n}B#Z2Q!dt^8Z!@r1ArNLR^8gvW~U$r58Z*N1`E+ zgm8f(KrV#T)I~@^6hO$sAtuP&B|fH$eN2lT%&$in*%@2Civwxj7HG23-vr2jAZ1av zN}!dhB|(0{44XGcZEn+Ti_+DN;%-x#D7M03?&bpjlVj3m^(4WSxIc>=BR57 z49u#YE{-7;x8B~#E?;CI(D3kNn(*scMY;)ZQ`i6hZ@x}4Sx`7Cu(9XdZ_VSAi);M6 z-IsDCL@q88tX_3-!+Db?53S-yArmzHC-`{mF_mVR&=iu*aH9N|+p##!4Ln;mEMfnP*ZK<|=;r{b@@W^NFqZ zrp0+3OYPXxbUBJoA-lzJ=E=nq4AqQhp1eHC_@-|6{5MBa)NTu1)$N?`Q;>9rIr6s8 z?khX)*xWSR;de{-nC^2``8PrmdP_4nPvvIzCQn$}D<(PJC+!n&&4fwYR-Tx8Cu~xc z=FOu|q?Ns+%akmOcRyF%9h+EmzGH{h&3u_Oq~b&ZfU{vS0uGky27WHOf2M*`!pPxN%r;Pef*Bh6X8Kj&zpEQ3` z6_-(&;LlK*DeGS!QT8`@B6pbcw*LQ*<`>tl>B_O%G{0Wz;%dRTm4)gTcw zaZ>MwwcV?7jxL_?xBHyl?zVj_leaw*)U(>1CA9RHv&{Lc9eek4_g>kfY?k+Z&y#=3 z_cCQG+on%?_++cOp3=zua`*&NEMbD^!OU9R2@X+|!2-7!B;nMml+)ZodmW_Qb*Go%;XZ zg1Pni&%c>mJPzdFo4oR_U*E}tGkj*ocnMA2(k?SO)+epVK+V`vV)Dt!tP@U5%vQPX zuz+Rd)ZJ}r>Iv5@gSh`>Do44-y_}QQExu%u!`o?Zvl)_}ojRbmmZkF))2&Uvn)s88 z9HwqKS-fiU>a%5>%$GdcJ|`JXwg=*7U_v=K!+X?^x literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-10.png b/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-10.png new file mode 100644 index 0000000000000000000000000000000000000000..7d57c57b50c4e0e96fa139fec71cefbc5bc2b557 GIT binary patch literal 1921 zcmYjSdpOgJ8(+sy4kwh{S}2|6QkbPyQjW+dVRD(pGL|WKx!-<@#c6YE6?4gD?sD0d znT=xWu-LviD%sei3$c(o6+)ezr{_7(d7k(Eyr0YS{`3CxUPrn)sj7fgKp>FnDd&@C zDOo^M?jIqb%EtD&(9xU z{lT~OH_;{`7Aj23lP{91u&8^N)Gct$tAt{mVk4t7XIu}0F|=#qm3Jj2t?OV>WLMHC zgP?p}J<`B84otLiS@otd678jg&E6td&X8xE3U-E92fis6yJyaAcbQh#^Mdv|eu zt66yFaxiP32~1Zz2`;_auc4Cbcovr+%ooFK@cem-{=I($+F}m&j$tirneP82Zt!4a z2a3+e-E(t?*OZv2%JlmGZ`_7}yNL7)RJX%rbYlWgP_f}6BHAVt(_9NMhT#(2aCA&O z&6J3NgbQ&|arE`hBnJ^XC14guB1EjZ4E0sMjLwRqxs8#7A`8{DvvR{+4!BCIPA{2l zUR7DnfmFkXu-?Y9C%6~eG;7k5t;KAaa2j#M^Ol`{xfX{uOjFWr-Z7G`lZY`baMthDx|_z zg3+Hpn%ME_Y!h{<_~cwLzU!Vidw?B;T*d0>u#_oG@4U z=cNHprcdjnUOB8DSW%rB#~$j>R<*6XE%3JZlE>xeHWuvw}bU8(C@C_ElDH3IrXVxVG!QbW+w?cR8`}h~%6*i*=5%Gz_XcnV#4#5!^PK@`(;>D_h{tSeLUcK)`RBLV^^fkDOpohI zEKH82?Om!n(nUIco%>2u-qO4{X)WAjrTSRUGSqG{hTT0PRgIKbg<=;yQfW`nr2uQE zKXlWbGRtf?6MJs2UNiOzjIw%hAauFlGu;V<;FGi4u)R$ z0YDiM0-gEVo^Nosz*m4W1U7E&-+?LLXT{@w`%_1pI#2r?3%*mEf2dCZQ4#iC9PtUo zhh7=E_$IOSDwCj2nc7~un7!%M01+oZG5Xc2;fiNH{Aqs%xo!hs7BoN)cc@ttRM9R)H3do%{XUU@+-Yc^bmQioE0->PJh=7N%^R;?y?p=t$)iUPKU_HR?CH}FcWH%F z>aV>;pEfP}GN<)xYlg{}qCB9xl}m#Bf*JPjZ+QP+;QjoD1c9Tw91IK;&YxdCy`i9> zAR)m+LEwJBgMl+!Ru%&TQ>>?pV@SoVw|8C^H5rJoK6tQi`?b5PVgnZHg=F7-^?QGK zVbpSstO*kewm$!3!f`)E*@gYskxMJ5`B*P?YZvrU&itqL)5Cwdk*sIn< zw(p$JwwGqQd!N}}nd#}ZtEoGE-=$}wO#3^Q{qBAG>}<_^AMQEki_gy9U1_B_Z=cnb z+KG=M4{lw{GjAWynomnUEUP}ddzR4Sm%;9TbzMt}D$4%f{`0_W+Koz;k8ge+jat8U z=ZnZCADcKU9yGGcfrxu&Ke`<|*;BzTvFCl)=U;axzx>Si;?q8ExeA+kyR-ktHXXQ7 zP+zl+O~g;<`nl*mKTkS|_8+*w;4gOm#qZ9>iPgL|kIH#_Vm=&tl$f-$XkNABk=TG< z(N8rt*%A*fKDWH)efVu^dwcgHVeVBEKj|tsF9|!Ke8T$j_ajLs#Y-XRgUbH*n z05iYM2PpBrtfJx?gFef=@4h|U-OV?TeAvgT62=q9VRP=;+K7!`*5+?a`f%X$|H<CjfuKlXTg86rX=bUieBUe$a zxp_Yiy?PU3RTob=&t|uDgZ1 zeGUC~ewwj;rGM@D)$gaV%CWsyX_3CACpXJ{%d)%A^!#$&`tDkX*UH47u-N; zTvIFIIF-Vb$aw3hM&Yl#vn~JKnCN?)^TDFd$@!({%|83xcBovgonE0oFMp}_tZC<; i7YQD%T(^IR!Tl2^;cXhvZ+`=(O9oF@KbLh*2~7aX1m!FM literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-3.png b/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-3.png new file mode 100644 index 0000000000000000000000000000000000000000..10cb36726103febbd4ee5ca4cd06de9c8c22d71b GIT binary patch literal 1890 zcmX|C3pA8l8&;h%Gls?`#)umEhbFlsbxOjAiJD=^edLl@bUSjt6dh(NDU3vZ_j^;B zTq;Hm$C!!3S8j>FMhs^d2g76#xtved`rq~L=Y96`zI*Sr_u6~yB(mKZSp)_lB_$`$W9tKLjbpQrLJW#)egAQ(iwp7b>ke!8TxScCo$fq`MnS$_mAXZi*VYv+E^cwO z(`|?>x@$lv`u<~@h=ItMB^tsNuYKb4dm#cjwCENY{`OrgSx9`_CvV~*Sy`R1QH9p3 zWp{FXOrQeJgm~?59;9r!{3*)Dg1B;M>UH<RG-;ypAs zi?{6U0}`ZdSqR~0EH8)@`ASLc%(k_%aEkgo!;^N+AuIiPqi}zKaiu!Bs?_}$DUk38 zcirTbNMzcyF(8cH{}rj(xFeP4u|6SjdT89ded&*<4i;Jqk@i`NmnVpq9w1!rI3`>h zzN9R&fk(d6@uVyKmTEh=?`%>XsKtA%+^vy3=j35Nq09CU+E!W0c6x%?2=z5=txOfe zjJDU^XBg}$XHOmah-?jf;>-aoZyb7Qd^DH+%>RG)E3O8?Xx9TuE<~hVDeDHpYtz)V z_ETRGq#v}fnLv#Dxv0!@ckD!ODrqP=oir59BH~#8n%Siyy=9g2vqdS*8gZ|Cp7tC| zq`7mi72<1Ik#6L|?ee51=`|P`hD8queUXP>{70Kg3_%}0Z0Tjp$02?~{&^QnC ze6BpRI1B~PJIu}Z3}}DmSE!Kgaq`6L;1lV24flyUm-ED`dXr~WbJF$_?!sQ8h14+1 zZN+6m%*i6Ret2hW_FfK6=C7E+BU}deb3*hd<9L4ZmoY(!a(zYEUadxkKvpKY$2*Fm z@iO|rMORU$AX}E3Fwb+CHUL;3Y=s9YZ$>?D1TR-6U01tALLSH{Fym`dF%2aNGaO2N zc$xZH9W&bSc%GjYq z+Y!8Xe!wGSy8wqKz??^w(#6K0><`C2myY0HNnIT}898G3BvU57g;iE9QxxL~#7z7* zR!7!ekp!do++^de2lJ~+Dfv|;-nr55^^D-Yr6n?x&s;y{o}s9XI@45u$3kGXR-x0S z{U%2*Bd3QZn(OVrNMlh4;N0{c!}f#Y*o-L$8kq+?QJDs6c3xCTrxWxua)h)H^*;=v zWL9gMn({;OrzM(8wV|QKrl;8>^!2r%zbel3UTw{b3&Z|syot-*k41N}-~!wZ6ty<5 z7G9#*tZRt4dn>}Xl)lcvXSh6}(Z|ba%<0r3L>5q*4d5yCD zmpThG7GnN5uA{Z>_b(y@inptB!-y>k@IBAf1y@eh!TL+1y4Vz2Mc?w9UyGjAGbDjt z4)|PsPwV(hnqGmeyYt#J!=c5FJqUbOKf!qwZ!olY^(NPj2BV2d9WycY`X9$tv@--T zJKv^Zs%4VI@Ce^R!{)R-YSfl@tC}uqs08_+8HW69cvR0AuGc-^;G&A-fe5VeX82^Q zdc4^48ZO4GMX!`F4P55Lswc=#=-Ojcw0R9G%*rcE&ZE#CvvC3uFAX+-d^{7;nlF$J zwbbO89b_0VXI*}&C}*?S&c>e42ZSee14jP|&js{MSIP{sS<8_*#E$e(}Q+IKXU&w>5yk z?lx{8`8u%OxgGdY7|GxQnws!4kfbJO0$6e;@k?fjh*=HAZqNhNWIQdNJsXT2pHkA2 zGY3e16}1oFg!l}NDmwd~7nFz+Q~6D8-AVM63|e9hIifKUe4S9QH>dYqbA$Qv4LgP-`jdb-QFC!+30; z&!#r?%;LGwZ^2JP;v$Ho3yQ6=J%23>GRMPhuLh-+l6xWlDam|DZ4Z2!$Uihpx-+7O ztK1yecW!THqxPZ5CivSm*!p@+RVBLX@VOvdoGd>lEKlhIe=y4=>8BK56TV+;Vm_2o8ccJ5=B+D>@MF2sP;11)0jaxg zSvLrmNfG7hm30C=?{aepj&sq*<)jyMqjJ*k%MM2≧Scfq$h=6{%a|Tu$na>h>4e zprI8#nATp$Vd8|yCV28jM_!k z)m~WO&oxz=6{PhZENuU2-?@W>YjkPnk)Nh~R(aHdS30r9w}89D6O1X`X0Nu$YdL2GiD3JI&s%$lnF<(YW_Fqrcv9-Toz0n~lq&VvY^<9iwhWz!@Ob;k5 z-&H+mZ1KcB6*b|B`!?GwyV2_wA{hkwDS7n{nIyzGl-D`lkydGZTv9LQ*i3Lj!zb!=g04Plr%G=NwAJr(q4nsX5Zh{T+&TwU+vy7{jWndNVcmfyWavB-!fSt+UCsAv@;{ zIu07Hoj}*0g@Gf(JfSp8b>2*4We-LOGw3+*vLW#o(vVi%yZ+0U={uayh^iM0F6bwf zglo@_UCT7P9kt3P<#F2Ed%PZM75F8=3Vq&342(R_DaM#|FGp(aSv`8Hyutc$NO8m5 znuKXuf7?i4eZ^&Q%VS)34o*9?!oK0s7DCvX)%{yK!2QH&YT}miHjir{smLL0>i^RV zb(U7cAXmQYYa!J^-0tXY=v+rlm^0E?zoCO!(0=g_j`J&nXX~pfkZYGYlOKXIXmgYs zM@MuKp#8`cUpyQf$N&_THt}CK^kEg!7vEXvI;qi$q6w#5yZV_Mc9&kwjL3T1AA?%n zvelX~6LUe_H~QXW&sH76?rSMQJCf=91mEPxuD?8;L-^B?6Hv5d%d`;BA~NSsfN$>f zyoY#eF=2kr#{7{KX6FXD;pcqb9ZqU(C=V^AH<)=enW?(Y#!RJ1Et zkL{o4Bn!UUq;#_bJF@w~URv-E8ZrNTm*vE2?vTxI($@@_WG1KMu{qP?(*2I#P!IL#M$eVyz-Yb%+=tkqShC8 TQJ3q0FBpXL_QT#eO3wHP&F@L< literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-5.png b/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-5.png new file mode 100644 index 0000000000000000000000000000000000000000..5a459956ec4927f44f9f255a3ea0adbfd43ca2c2 GIT binary patch literal 1984 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 GmiQlMK{rYO literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-7.png b/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-7.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc51cbc8c1973a279cfd9c08dcee5ac147af063 GIT binary patch literal 3649 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 X$IDm5>a}Tq2y|w*t&P4Ic*g!8%txoq literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-8.png b/wp-content/plugins/wpforms-lite/assets/images/welcome-feature-icon-8.png new file mode 100644 index 0000000000000000000000000000000000000000..230f8b9a3b329751b9586ea5e4499be5d0af416e GIT binary patch literal 3897 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 VcZ`>x0e%cncnB%DW5?lh{{WyUtXTj6 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-testimonial-bill.jpg b/wp-content/plugins/wpforms-lite/assets/images/welcome-testimonial-bill.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8899b2ccd5d7b216bf558522dd850bc778ae7089 GIT binary patch literal 6828 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/welcome-testimonial-david.jpg b/wp-content/plugins/wpforms-lite/assets/images/welcome-testimonial-david.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9d1711c4b154b2d9ddddfccb16c4155ff7c1303 GIT binary patch literal 4960 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 AiU0rr literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-tnail.png b/wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-tnail.png new file mode 100644 index 0000000000000000000000000000000000000000..89f7f6eaad8d8cff4c79f083ced7e941bd7832b9 GIT binary patch literal 8230 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-tnail@2x.png b/wp-content/plugins/wpforms-lite/assets/images/wpconsent/screenshot-tnail@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..10232b7d8429cf12352927bd7e1c7e1355fc84af GIT binary patch literal 7642 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 JncSO@{{s`H%F_S< literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/wpconsent/wpforms-wpconsent.svg b/wp-content/plugins/wpforms-lite/assets/images/wpconsent/wpforms-wpconsent.svg new file mode 100644 index 0000000..609ffe1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/wpconsent/wpforms-wpconsent.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/wpforms-logo.svg b/wp-content/plugins/wpforms-lite/assets/images/wpforms-logo.svg new file mode 100644 index 0000000..89978ce --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/wpforms-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/zoom.svg b/wp-content/plugins/wpforms-lite/assets/images/zoom.svg new file mode 100644 index 0000000..ea45172 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/zoom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/admin-editor.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/admin-editor.min.js new file mode 100644 index 0000000..cbe65e1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/admin-editor.min.js @@ -0,0 +1 @@ +(c=>{c(function(){function e(){c("#wpforms-modal-select-form").length&&(c("#wpforms-modal-select-form").get(0).selectedIndex=0,c("#wpforms-modal-checkbox-title, #wpforms-modal-checkbox-description").prop("checked",!1)),c("#wpforms-modal-backdrop, #wpforms-modal-wrap").css("display","none"),c(document.body).removeClass("modal-open")}c(document).on("click",".wpforms-insert-form-button",function(o){o.preventDefault(),c("#wpforms-modal-backdrop, #wpforms-modal-wrap").css("display","block"),c(document.body).addClass("modal-open")}),c(document).on("click","#wpforms-modal-close, #wpforms-modal-cancel a",function(o){o.preventDefault(),e()}),c(document).on("click","#wpforms-modal-submit",function(o){o.preventDefault(),o='[wpforms id="'+c("#wpforms-modal-select-form").val()+'"',c("#wpforms-modal-checkbox-title").is(":checked")&&(o+=' title="true"'),c("#wpforms-modal-checkbox-description").is(":checked")&&(o+=' description="true"'),o+="]",wp.media.editor.insert(o),e()})})})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/admin-notifications.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/admin-notifications.min.js new file mode 100644 index 0000000..9e68f45 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/admin-notifications.min.js @@ -0,0 +1 @@ +var WPFormsAdminNotifications=window.WPFormsAdminNotifications||(t=>{var a={$notifications:t("#wpforms-notifications"),$nextButton:t("#wpforms-notifications .navigation .next"),$prevButton:t("#wpforms-notifications .navigation .prev"),$adminBarCounter:t("#wp-admin-bar-wpforms-menu .wpforms-menu-notification-counter"),$adminBarMenuItem:t("#wp-admin-bar-wpforms-notifications")},i={init:function(){t(i.ready)},ready:function(){i.updateNavigation(),i.events()},events:function(){a.$notifications.on("click",".dismiss",i.dismiss).on("click",".next",i.navNext).on("click",".prev",i.navPrev)},dismiss:function(e){var n,s;0!==a.$currentMessage.length&&(1<(s=parseInt(a.$adminBarCounter.text(),10))?a.$adminBarCounter.html(--s):(a.$adminBarCounter.remove(),a.$adminBarMenuItem.remove()),s=a.$nextMessage.length<1?a.$prevMessage:a.$nextMessage,n=a.$currentMessage.data("message-id"),0===s.length?a.$notifications.remove():(a.$currentMessage.remove(),s.addClass("current"),i.updateNavigation()),s={action:"wpforms_notification_dismiss",nonce:wpforms_admin.nonce,id:n},t.post(wpforms_admin.ajax_url,s,function(e){e.success||WPFormsAdmin.debug(e)}).fail(function(e,n,s){WPFormsAdmin.debug(e.responseText)}))},navNext:function(e){a.$nextButton.hasClass("disabled")||(a.$currentMessage.removeClass("current"),a.$nextMessage.addClass("current"),i.updateNavigation())},navPrev:function(e){a.$prevButton.hasClass("disabled")||(a.$currentMessage.removeClass("current"),a.$prevMessage.addClass("current"),i.updateNavigation())},updateNavigation:function(){a.$currentMessage=a.$notifications.find(".wpforms-notifications-message.current"),a.$nextMessage=a.$currentMessage.next(".wpforms-notifications-message"),a.$prevMessage=a.$currentMessage.prev(".wpforms-notifications-message"),0===a.$nextMessage.length?a.$nextButton.addClass("disabled"):a.$nextButton.removeClass("disabled"),0===a.$prevMessage.length?a.$prevButton.addClass("disabled"):a.$prevButton.removeClass("disabled")}};return i})((document,window,jQuery));WPFormsAdminNotifications.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/admin.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/admin.min.js new file mode 100644 index 0000000..37446c7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/admin.min.js @@ -0,0 +1 @@ +(l=>{let m;var p={settings:{iconActivate:'',iconDeactivate:'',iconInstall:'',iconSpinner:'',mediaFrame:!1},init(){m=this.settings,l(p.ready),p.initEntriesSingle(),p.initEntriesList(),p.initWelcome(),l(document).on("wpformsReady",p.initAddons),p.initSettings(),p.initTools(),p.initUpgrades(),p.initScrollableMenu()},ready(){l.ajaxSetup({data:{_wp_http_referer:wpf.updateQueryString("_wp_http_referer",null)}}),p.scrollToIntegration(),l(".notice").show(),l("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),p.initChoicesJS(),l(document).on("htmx:afterSwap",p.initChoicesJS),p.initCheckboxMultiselectColumns(),l(".wpforms-color-picker").each(function(){var e=l(this);e.minicolors({defaultValue:e.data("fallback-color")||""})}),l(".wpforms-file-upload").each(function(){let e=l(this).find("input[type=file]"),n=l(this).find("label"),o=n.html();e.on("change",function(e){let t="";this.files&&1'+t+"

      2. ")):(e.parent().removeClass("checked"),n.find("#"+o).remove())}),l(document).on("click",".checkbox-multiselect-columns .all",function(e){e.preventDefault(),l(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),l(this).remove()})},initFormOverview(){console.warn('WARNING! Function "WPFormsAdmin.initFormOverview()" has been deprecated, please use the new "WPFormsForms.Overview.init()" function instead!'),window.WPFormsForms.Overview.init()},initEntriesList(){l(document).on("click","#wpforms-entries-list .form-selector .toggle",function(e){e.preventDefault(),l(this).toggleClass("active").next(".form-list").toggle()}),l(document).on("click","#wpforms-entries-table #doaction",function(e){let t=l(this),n=t.closest("form"),o=n.find("table"),s=n.find("select[name=action]"),i=o.find("input[name^=entry_id]:checked");var a;"delete"!==s.val()&&"trash"!==s.val()||!i.length||(a="delete"===s.val()?wpforms_admin.entry_delete_n_confirm:wpforms_admin.entry_trash_n_confirm,e.preventDefault(),l.confirm({title:wpforms_admin.heads_up,content:a.replace("{entry_count}",i.length),icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action(){n.trigger("submit")}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}}))}),l(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(e){e.preventDefault();let t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-list .wp-list-table .trash",function(e){e.preventDefault();let t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_trash_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:()=>{window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(e){e.preventDefault();var e=l(this),t=l("#wpforms-entries-list .starred-num"),n=e.parents("table");let o,s=Number(t.text());e.hasClass("star")?(o="star",s++,e.attr("title",wpforms_admin.entry_unstar)):(o="unstar",s--,e.attr("title",wpforms_admin.entry_star)),e.toggleClass("star unstar"),n.hasClass("wpforms-entries-table-spam")||n.hasClass("wpforms-entries-table-trash")||t.text(s);n={task:o,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entryId:e.data("id"),formId:e.data("form-id")};l.post(wpforms_admin.ajax_url,n)}),l(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(e){e.preventDefault();var e=l(this),t=l("#wpforms-entries-list .unread-num"),n=e.parents("table");let o,s=Number(t.text());e.hasClass("read")?(o="read",s--,e.attr("title",wpforms_admin.entry_unread)):(o="unread",s++,e.attr("title",wpforms_admin.entry_read)),e.toggleClass("read unread"),n.hasClass("wpforms-entries-table-spam")||n.hasClass("wpforms-entries-table-trash")||t.text(s);n={task:o,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entryId:e.data("id"),formId:e.data("form-id")};l.post(wpforms_admin.ajax_url,n)}),l(document).on("click","#wpforms-entries-list .form-details-actions-removeall",function(e){e.preventDefault();let t=l(this).data("page"),n=p.getDeleteAllNoticeData(t),o=l(this).attr("href"),s=l("#wpforms-entries-table"),i=s.data("filtered-count-trash")&&"trash"===n.action?parseInt(s.data("filtered-count-trash"),10):0,a={action:"wpforms_entry_list_process_"+n.action+"_all",form_id:s.find('input[name="form_id"]').val(),date:s.find('input[name="date"]').val(),page:t,search:{field:s.find('select[name="search[field]"]').val(),comparison:s.find('select[name="search[comparison]"]').val(),term:s.find('input[name="search[term]"]').val()},nonce:wpforms_admin.nonce,url:o};l.confirm({title:wpforms_admin.heads_up,content:i&&l("#wpforms-reset-filter").length?n.content.replace("{entry_count}",i):n.contentAll,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:()=>{l.get(wpforms_admin.ajax_url,a).done(function(e){e.success&&(window.location=_.isEmpty(e.data)?o:e.data)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("wpformsReady",function(){wpf.toggleEntriesSearchInput(l("#wpforms-entries-list .wpforms-form-search-box"),"entries_list"),wpf.toggleEntriesComparisonForAdvancedOptions(l("#wpforms-entries-list .wpforms-form-search-box"),"entries_list"),l(document).on("change","#wpforms-entries-list .wpforms-form-search-box-comparison",function(){wpf.toggleEntriesSearchInput(l(this).closest(".wpforms-form-search-box"),"entries_list")}),l(document).on("change","#wpforms-entries-list .wpforms-form-search-box-field",function(){var e=l(this).closest(".wpforms-form-search-box");wpf.toggleEntriesComparisonForAdvancedOptions(e,"entries_list"),wpf.toggleEntriesSearchInput(e,"entries_list")})}),l(document).on("heartbeat-send",function(e,t){var n,o=l("#wpforms-entries-list");o.length&&!o.find(".wpforms-dash-widget").length&&void 0!==(n=o.find("#wpforms-entries-table").data("last-entry-id"))&&(t.wpforms_new_entries_entry_id=n,t.wpforms_new_entries_form_id=o.find("input[name=form_id]").val())}),l(document).on("heartbeat-tick",function(e,t){var n=l("#wpforms-entries-list");if(n.length&&t.wpforms_new_entries_notification){var o=n.find(".wp-list-table thead tr").first().children().length;n.find(".new-entries-notification").length||n.find(".wp-list-table thead").append('');let e=n.find(".new-entries-notification a");e.text(t.wpforms_new_entries_notification).slideDown({start(){e.css("display","block")},always(){e.css("display","block")}})}})},initEntriesSingle(){"wpforms-entries"===p.getQueryString("page")&&"details"===p.getQueryString("view")&&p.entryHotkeys(),l(document).on("click","#wpforms-entries-single .wpforms-entry-delete a",function(e){e.preventDefault();let t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-single .trash",function(e){e.preventDefault();let t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_trash_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:()=>{window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(e){e.preventDefault(),window.open(l(this).attr("href"))}),l(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(e){e.preventDefault(),"true"===wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),l(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),l(this).text(wpforms_admin.entry_empty_fields_show)),l(".wpforms-entry-field.empty, .wpforms-edit-entry-field.empty").toggle()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(e){e.preventDefault(),l(this).hide().next("form").stop().slideToggle()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(e){e.preventDefault(),l(this).closest("form").stop().slideToggle(),l(".wpforms-entry-notes-new .add").show()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(e){e.preventDefault();let t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_note_delete_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys(){l(document).on("keydown",function(e){74!==e.keyCode||e.metaKey||p.isFormTypeNode(e.target.nodeName)?75!==e.keyCode||e.metaKey||p.isFormTypeNode(e.target.nodeName)||"#"!==(e=l("#wpforms-admin-single-navigation-next-link").attr("href"))&&(window.location.href=e):"#"!==(e=l("#wpforms-admin-single-navigation-prev-link").attr("href"))&&(window.location.href=e)})},initWelcome(){l(document).on("click","#wpforms-welcome .play-video",function(e){e.preventDefault();l.dialog({title:!1,content:'
        ',closeIcon:!0,boxWidth:"70%"})})},initAddons(){if(l("#wpforms-admin-addons").length){var n=l("#wpforms-addons-list-section-all"),o=l("#wpforms-addons-list-section-installed");if(n.length||o.length){let e,t;o.length&&(e=new List("wpforms-addons-list-section-installed",{valueNames:["addon-link"]})),n.length&&(t=new List("wpforms-addons-list-section-all",{valueNames:["addon-link"]})),l("#wpforms-addons-search").on("keyup search",function(){p.updateAddonSearchResult(this,t,e)})}l(document).on("change",".wpforms-addons-list-item .wpforms-toggle-control input",function(e){if(e.preventDefault(),l(this).hasClass("disabled"))return!1;p.addonToggleNew(l(this))}),l(document).on("click",".wpforms-addons-list-item button",function(e){if(e.preventDefault(),l(this).hasClass("disabled"))return!1;p.addonToggleNew(l(this))}),l(document).on("click","#wpforms-admin-addons .addon-item button",function(e){if(e.preventDefault(),l(this).hasClass("disabled"))return!1;p.addonToggle(l(this))})}},updateAddonSearchResult(e,t,n){let o=l(e).val();o=o.replace(/[.,]/g," ");var e=l("#wpforms-addons-no-results"),s=l("#wpforms-addons-list-section-all"),i=l("#wpforms-addons-list-section-installed"),t=t?t.search(o):[],n=n?n.search(o):[];e.toggle(0===t.length&&0===n.length),s.toggle(0

        ${"addon"===t?wpforms_admin.addon_error:wpforms_admin.plugin_error}

        `):r.append(``),"install"===i?(n=!1,p.removeSpinnerFromButton(a)):"deactivate"===i?n=!0:"activate"===i&&(n=!1)}p.setAddonState(e,i,t,function(e){var t;e.success?(t=e,"install"===i?(o=c.active,n=!0,r.attr("data-plugin",t.data.basename),t.data.is_activated||(o=c.installed,n=!1),a.hide(),a=a.closest(".wpforms-addons-list-item").find(".wpforms-toggle-control input")):"activate"===i?(r.find(".wpforms-addons-list-item-footer-settings-link").fadeIn(150),o=c.active,n=!0):"deactivate"===i&&(r.find(".wpforms-addons-list-item-footer-settings-link").fadeOut(150),o=c.installed,n=!1),r.removeClass(c.active+" "+c.incompatible+" "+c.installed+" "+c.missing).addClass(o)):d(e),p.updateAddonButtonPropertiesAndUI(a,s,r,c,n)},function(){d({data:wpforms_admin.server_error}),p.updateAddonButtonPropertiesAndUI(a,s,r,c,n)})}},addSpinnerToButton(e){var t=e.width();e.data("original-text",e.html()),e.width(t).html('')},removeSpinnerFromButton(e){e.html(e.data("original-text"))},getAddonState(e,t,n){return e.hasClass(t.active)||e.hasClass(t.incompatible)?"deactivate":e.hasClass(t.installed)?"activate":e.hasClass(t.missing)?(p.addSpinnerToButton(n),"install"):""},updateAddonButtonPropertiesAndUI(e,t,n,o,s){e.prop("checked",s),e.prop("disabled",!1),e.siblings(".wpforms-toggle-control-status").html(e.siblings(".wpforms-toggle-control-status").data(s?"on":"off")),0'+d+""),t.find("span.status-label").removeClass("status-active status-installed status-missing").addClass(i).removeClass("button button-primary button-secondary disabled").text(a),o.removeClass("status-active status-installed status-missing").removeClass("button button-primary button-secondary disabled").addClass(i).html(r)):("object"==typeof e.data?"addon"===n?t.find(".actions").append('

        '+wpforms_admin.addon_error+"

        "):t.find(".actions").append('

        '+wpforms_admin.plugin_error+"

        "):t.find(".actions").append('

        '+e.data+"

        "),"install"===s&&"plugin"===n&&o.addClass("status-go-to-url").removeClass("status-missing"),o.html(c)),o.prop("disabled",!1).removeClass("loading"),t.find(".actions").find(".msg.error").length||setTimeout(function(){l(".addon-item .msg").remove()},3e3)},function(e){console.log(e.responseText)})}},initSettings(){l(document).on("wpformsReady",function(){var e,t;l("#wpforms-settings").length&&(e=p.getQueryString("wpforms-integration"),t=p.getQueryString("jump"),e?l("body").animate({scrollTop:l("#wpforms-integration-"+e).offset().top},1e3):t&&l("body").animate({scrollTop:l("#"+t).offset().top},1e3),l(".wpforms-admin-settings-form").conditions([{conditions:{element:"#wpforms-setting-gdpr",type:"checked",operator:"is"},actions:{if:{element:"#wpforms-setting-row-gdpr-disable-uuid,#wpforms-setting-row-gdpr-disable-details",action:"show"},else:{element:"#wpforms-setting-row-gdpr-disable-uuid,#wpforms-setting-row-gdpr-disable-details",action:"hide"}},effect:"appear"},{conditions:{element:"input[name=captcha-provider]:checked",type:"value",operator:"=",condition:"hcaptcha"},actions:{if:[{element:".wpforms-setting-row",action:"show"},{element:".wpforms-setting-recaptcha, #wpforms-setting-row-recaptcha-site-key, #wpforms-setting-row-recaptcha-secret-key, #wpforms-setting-row-recaptcha-fail-msg, .wpforms-setting-turnstile, #wpforms-setting-row-turnstile-heading, #wpforms-setting-row-turnstile-site-key, #wpforms-setting-row-turnstile-secret-key, #wpforms-setting-row-turnstile-theme, #wpforms-setting-row-turnstile-fail-msg",action:"hide"}]},effect:"appear"},{conditions:{element:"input[name=captcha-provider]:checked",type:"value",operator:"=",condition:"recaptcha"},actions:{if:[{element:".wpforms-setting-row",action:"show"},{element:"#wpforms-setting-row-hcaptcha-heading, #wpforms-setting-row-hcaptcha-site-key, #wpforms-setting-row-hcaptcha-secret-key, #wpforms-setting-row-hcaptcha-fail-msg, #wpforms-setting-row-turnstile-heading, #wpforms-setting-row-turnstile-site-key, #wpforms-setting-row-turnstile-secret-key, #wpforms-setting-row-turnstile-theme, #wpforms-setting-row-turnstile-fail-msg",action:"hide"}]},effect:"appear"},{conditions:{element:"input[name=captcha-provider]:checked",type:"value",operator:"=",condition:"turnstile"},actions:{if:[{element:".wpforms-setting-row",action:"show"},{element:"#wpforms-setting-row-hcaptcha-heading, #wpforms-setting-row-hcaptcha-site-key, #wpforms-setting-row-hcaptcha-secret-key, #wpforms-setting-row-hcaptcha-fail-msg, .wpforms-setting-recaptcha, #wpforms-setting-row-recaptcha-site-key, #wpforms-setting-row-recaptcha-secret-key, #wpforms-setting-row-recaptcha-fail-msg",action:"hide"}]},effect:"appear"},{conditions:{element:"input[name=captcha-provider]:checked",type:"value",operator:"=",condition:"none"},actions:{if:[{element:".wpforms-setting-row",action:"hide"},{element:".wpforms-setting-captcha-heading, #wpforms-setting-row-captcha-provider",action:"show"}]},effect:"appear"}]))}),l(document).on("change","#wpforms-setting-row-render-engine input",p.settingsRenderEngineChange),l(document).on("change","#wpforms-setting-disable-css",function(){p.settingsFormStylesAlert(l(this).val())}),l(document).on("click",".wpforms-setting-row-image button",function(e){e.preventDefault(),l(this).hasClass("wpforms-setting-remove-image")?l(this).closest(".wpforms-setting-row-image").find("input").val("").attr("value","").trigger("change").end().find("img").remove():p.imageUploadModal(l(this))}),l(document).on("click","#wpforms-setting-license-key-verify",function(e){e.preventDefault(),p.licenseVerify(l(this))}),l(document).on("click",".wpforms-setting-license-wrapper",function(e){e.preventDefault();e=l("#wpforms-setting-license-key");e.length&&e.prop("disabled")&&p.licenseEditMessage()}),l(document).on("click","#wpforms-setting-license-key-deactivate",function(e){e.preventDefault(),p.licenseDeactivate(l(this))}),l(document).on("click","#wpforms-setting-license-key-refresh",function(e){e.preventDefault(),p.licenseRefresh(l(this))}),l(document).on("click",".wpforms-settings-provider-connect",function(e){e.preventDefault();e=l(this);p.integrationConnect(e)}),l(document).on("click",".wpforms-settings-provider-accounts-list .remove a",function(e){e.preventDefault(),p.integrationDisconnect(l(this))}),l(document).on("click",".wpforms-settings-provider:not(.focus-out) .wpforms-settings-provider-header",function(e){e.preventDefault();let t=l(this);t.parent().find(".wpforms-settings-provider-accounts").stop(!1,!0).slideToggle("",function(){t.parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")})}),l(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(e){e.preventDefault();e=l(this).parent().next(".wpforms-settings-provider-accounts-connect");e.find("input[type=text], input[type=password]").val(""),e.stop().slideToggle()}),l(document).on("change","#wpforms-setting-row-captcha-provider input",function(){var e=l("#wpforms-setting-row-captcha-preview");"hcaptcha"===this.value||"turnstile"===this.value?e.removeClass("wpforms-hidden"):"none"===this.value?e.addClass("wpforms-hidden"):l("#wpforms-setting-row-recaptcha-type input:checked").trigger("change"),e.find(".wpforms-captcha-preview").length&&(e.find(".wpforms-captcha-preview").empty(),e.find(".wpforms-captcha-placeholder").removeClass("wpforms-hidden"))}),l(document).on("change","#wpforms-setting-row-recaptcha-type input",function(){l("#wpforms-setting-row-captcha-preview").toggleClass("wpforms-hidden","v2"!==this.value),l("#wpforms-setting-row-recaptcha-v3-threshold").toggleClass("wpforms-hidden","v3"!==this.value)}),l(document).on("change",".wpforms-toggle-control input",function(){var e=l(this),t=e.is(":checked"),n=t?"on":"off",o=e.closest(".wpforms-setting-field"),e=e.closest(".wpforms-toggle-control").find(".wpforms-toggle-control-status"),s=o.find(".wpforms-toggle-desc.desc-on"),o=o.find(".wpforms-toggle-desc.desc-off"),i=0'),t.trigger("change")}).on("close",function(){m.mediaFrame.off("library:selection:add")}),m.mediaFrame.open()},licenseVerify(s){let i=s.closest(".wpforms-setting-row"),a=l("#wpforms-setting-license-key"),e=s.outerWidth(),r=s.text(),t={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:a.val()};s.html(m.iconSpinner).css("width",e).prop("disabled",!0),l.post(wpforms_admin.ajax_url,t,function(e){let t="fa fa-check-circle",n="green",o;e.success?(o=e.data.msg,s.hide(),i.find("#wpforms-setting-license-key-info-message").empty().hide(),i.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),i.find(".type strong").text(e.data.type),l(".wpforms-license-notice").remove(),a.prop("disabled",!0).addClass("wpforms-setting-license-is-valid").attr("value",a.val().replace(/./g,"*"))):(t="fa fa-exclamation-circle",n="orange",o=e.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide(),a.prop("disabled",!1)),l.alert({title:o.header??!1,content:o.msg??o,icon:t,type:n,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),s.html(r).css("width","auto").prop("disabled",!1)}).fail(function(e){a.prop("disabled",!1),console.log(e.responseText)})},licenseEditMessage(){l.alert({title:wpforms_admin.heads_up,content:wpforms_admin.edit_license,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})},licenseDeactivate(e){let a=l(e),r=a.closest(".wpforms-setting-row");e=a.outerWidth();let c=a.text();var t={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};a.html(m.iconSpinner).css("width",e).prop("disabled",!0),l.post(wpforms_admin.ajax_url,t,function(e){let t="fa fa-info-circle",n="blue",o=wpforms_admin.success;var s=e.data,i=s.msg&&"string"==typeof s.msg?s.msg:wpforms_admin.something_went_wrong;e.success?(r.find("#wpforms-setting-license-key").val("").attr("value","").prop({readonly:!1,disabled:!1}).removeClass(),r.find(".wpforms-license-key-deactivate-remove").remove(),r.find("#wpforms-setting-license-key-info-message").html(s.info).show(),r.find("#wpforms-setting-license-key-verify").prop("disabled",!1).show(),r.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(t="fa fa-exclamation-circle",n="orange",o=wpforms_admin.oops),l.alert({title:o,content:i,icon:t,type:n,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),a.html(c).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh(e){let t=l(e),s=t.closest(".wpforms-setting-row"),i=l("#wpforms-setting-license-key"),n={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,n,function(e){let t="fa fa-check-circle",n="green",o;e.success?(o=e.data.msg,s.find(".type strong").text(e.data.type)):(t="fa fa-exclamation-circle",n="orange",o=e.data,s.find(".type, .desc").hide(),i.removeClass("wpforms-setting-license-is-valid").addClass("wpforms-setting-license-is-invalid")),l.alert({title:o.header??!1,content:o.msg??o,icon:t,type:n,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect(t){let e=t.outerWidth(),n=t.text(),o=t.closest(".wpforms-settings-provider"),s={action:"wpforms_settings_provider_add_"+t.data("provider"),data:t.closest("form").serialize(),provider:t.data("provider"),nonce:wpforms_admin.nonce},i=wpforms_admin.provider_auth_error;t.html(wpforms_admin.connecting).css("width",e).prop("disabled",!0),l.post(wpforms_admin.ajax_url,s,function(e){e.success?(o.find(".wpforms-settings-provider-accounts-list ul").append(e.data.html),o.addClass("connected"),t.closest(".wpforms-settings-provider-accounts-connect").stop().slideToggle()):(Object.prototype.hasOwnProperty.call(e,"data")&&Object.prototype.hasOwnProperty.call(e.data,"error_msg")&&(i+="
        "+e.data.error_msg),p.integrationError(i))}).fail(function(){p.integrationError(i)}).always(function(){t.html(n).css("width","auto").prop("disabled",!1)})},integrationDisconnect(e){let n=l(e),o=n.parents(".wpforms-settings-provider"),t={action:"wpforms_settings_provider_disconnect_"+n.data("provider"),provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce},s=wpforms_admin.provider_delete_error;l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action(){l.post(wpforms_admin.ajax_url,t,function(e){var t;e.success?(n.parent().parent().remove(),void 0!==(t=o.find(".wpforms-settings-provider-accounts-list li").length)&&0!==t||o.removeClass("connected"),l(document).trigger("wpformsProviderRemoved",[o,e])):(Object.prototype.hasOwnProperty.call(e,"data")&&Object.prototype.hasOwnProperty.call(e.data,"error_msg")&&(s+="
        "+e.data.error_msg),p.integrationError(s))}).fail(function(){p.integrationError(s)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},integrationError(e){l.alert({title:wpforms_admin.something_went_wrong,content:e,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})},initTools(){l(document).on("change","#wpforms-tools-form-import, #wpforms-tools-form-other-import, #wpforms-tools-form-export, #wpforms-tools-form-template",function(){var e=l(this);e.parents("form").find("button").attr("aria-disabled",0===e.val().length)}),l(document).on("click","#wpforms-system-information-copy",function(e){e.preventDefault(),p.copySystemInformation()}),l(document).on("click","#wpforms-ssl-verify",function(e){e.preventDefault(),p.verifySSLConnection()}),l(document).on("click","#wpforms-recreate-tables",function(e){e.preventDefault(),p.recreateTables()}),l(document).on("click","#wpforms-importer-forms-submit",function(e){e.preventDefault();e=l("#wpforms-importer-forms input:checked");if(e.length){let t=[];e.each(function(e){t[e]=l(this).val()}),wpforms_admin.isPro?p.importForms(t):p.analyzeForms(t)}else l.alert({title:wpforms_admin.heads_up,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),l(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),p.importForms(m.formIDs)})},copySystemInformation(){l("#wpforms-system-information").select(),document.execCommand("copy")},verifySSLConnection(){let t=l("#wpforms-ssl-verify"),n=t.text(),o=t.outerWidth(),s=t.parent();t.css("width",o).prop("disabled",!0).text(wpforms_admin.testing);var e={action:"wpforms_verify_ssl",nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,e,function(e){p.debug(e),s.find(".wpforms-notice").remove(),e.success&&t.before('
        '+e.data.msg+"
        "),!e.success&&e.data.msg&&t.before('
        '+e.data.msg+"
        "),!e.success&&e.data.debug&&t.before('
        '+e.data.debug+"
        "),t.css("width",o).prop("disabled",!1).text(n)})},recreateTables(){let t=l("#wpforms-recreate-tables"),e=t.text(),n=t.outerWidth(),o=t.parent();t.css("width",n).prop("disabled",!0).text(wpforms_admin.recreating);var s={action:"wpforms_recreate_tables",nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,s,function(e){p.debug(e),o.find(".wpforms-notice").remove(),e.success&&(t.before('
        '+e.data.msg+"
        "),t.hide()),!e.success&&e.data.msg&&t.before('
        '+e.data.msg+"
        "),!e.success&&e.data.debug&&t.before('
        '+e.data.debug+"
        ")}).always(function(){t.css("width",n).prop("disabled",!1).text(e)})},analyzeForms(e){var t=l("#wpforms-importer-analyze");t.find(".form-total").text(e.length),t.find(".form-current").text("1"),l("#wpforms-importer-forms").hide(),t.show(),m.analyzeQueue=e,m.analyzed=0,m.analyzeUpgrade=[],m.formIDs=e,p.analyzeForm()},analyzeForm(){let t=l("#wpforms-importer-analyze"),n=_.first(m.analyzeQueue),e=p.getQueryString("provider"),o={action:"wpforms_import_form_"+e,analyze:1,form_id:n,nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,o,function(e){e.success&&(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||m.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),m.analyzeQueue=_.without(m.analyzeQueue,n),m.analyzed++,_.isEmpty(m.analyzeQueue)?_.isEmpty(m.analyzeUpgrade)?p.importForms(m.formIDs):(e=wp.template("wpforms-importer-upgrade"),t.find(".upgrade").append(e(m.analyzeUpgrade)),t.find(".upgrade").show(),t.find(".process-analyze").hide()):(t.find(".form-current").text(m.analyzed+1),p.analyzeForm()))})},importForms(e){var t=l("#wpforms-importer-process");t.find(".form-total").text(e.length),t.find(".form-current").text("1"),l("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),t.show(),m.importQueue=e,m.imported=0,p.importForm()},importForm(){let n=l("#wpforms-importer-process"),o=_.first(m.importQueue),e=p.getQueryString("provider"),t={action:"wpforms_import_form_"+e,form_id:o,nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,t,function(t){if(t.success){let e;e=t.data.error?wp.template("wpforms-importer-status-error"):wp.template("wpforms-importer-status-update"),n.find(".status").prepend(e(t.data)),n.find(".status").show(),m.importQueue=_.without(m.importQueue,o),m.imported++,_.isEmpty(m.importQueue)?(n.find(".process-count").hide(),n.find(".forms-completed").text(m.imported),n.find(".process-completed").show()):(n.find(".form-current").text(m.imported+1),p.importForm())}})},initUpgrades(){l(document).on("click","#wpforms-upgrade-143 button",function(e){e.preventDefault();let t=l(this),n=t.outerWidth(),o=l("#wpforms-upgrade-143 .status"),s={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:t.data("incomplete")};t.html(m.iconSpinner).css("width",n).prop("disabled",!0),l.post(wpforms_admin.ajax_url,s,function(e){e.success&&(m.upgraded=Number(e.data.upgraded),m.upgradeTotal=Number(e.data.total),e=Math.round(Number(m.upgraded)/Number(m.upgradeTotal)*100),t.remove(),o.find(".bar").css("width",e+"%"),o.show().find(".total").text(m.upgradeTotal),o.find(".current").text(m.upgraded),o.find(".percent").text(e+"%"),p.upgrade143())})})},upgrade143(){let n=l("#wpforms-upgrade-143 .status"),e={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:m.upgraded};l.post(wpforms_admin.ajax_url,e,function(e){var t;e.success&&(m.upgraded=Number(m.upgraded)+Number(e.data.count),t=Math.round(Number(m.upgraded)/Number(m.upgradeTotal)*100),n.find(".bar").css("width",t+"%"),Number(e.data.count)<10?(n.find(".progress-bar").addClass("complete"),n.find(".msg").text(wpforms_admin.upgrade_completed)):(n.find(".current").text(m.upgraded),n.find(".percent").text(t+"%"),p.upgrade143()))})},initFlyoutMenu(){let r=l("#wpforms-flyout");if(0!==r.length){let e=r.find(".wpforms-flyout-head"),t=e.find("img"),n={state:"inactive",srcInactive:t.attr("src"),srcActive:t.data("active")},a=(e.on("click",function(e){e.preventDefault(),"active"===n.state?(r.removeClass("opened"),t.attr("src",n.srcInactive),n.state="inactive"):(r.addClass("opened"),t.attr("src",n.srcActive),n.state="active")}),l("#wpfooter"));if(0!==a.length){let i=l("#wpforms-overview, #wpforms-entries-list, #wpforms-tools.wpforms-tools-tab-action-scheduler, #wpforms-tools.wpforms-tools-tab-logs");l(window).on("resize scroll",_.debounce(function(){var e=a.offset().top,t=e+a.height(),n=0["spam","trash"].includes(e)?{contentAll:wpforms_admin.entry_delete_all_confirm,content:wpforms_admin.entry_delete_n_confirm,action:"delete"}:{contentAll:wpforms_admin.entry_trash_all_confirm,content:wpforms_admin.entry_trash_n_confirm,action:"trash"},initScrollableMenu(){l(document).on("wpformsReady",function(){let t=l(".wpforms-admin-tabs");if(t.length){let e=t.find("li:last-child");wpf.isInViewport(e)||t.addClass("wpforms-admin-tabs--scrollable"),t.on("scroll",function(){t.toggleClass("wpforms-admin-tabs--scrollable",!wpf.isInViewport(e))})}})}};p.init(),window.WPFormsAdmin=p})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder-providers.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder-providers.min.js new file mode 100644 index 0000000..b3e622e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder-providers.min.js @@ -0,0 +1 @@ +(c=>{var s,a={settings:{spinner:'',spinnerWhite:''},init:function(){s=this.settings,c(a.ready),a.bindUIActions()},ready:function(){s.form=c("#wpforms-builder-form")},bindUIActions:function(){c(document).on("click",".wpforms-provider-connection-delete",function(e){a.connectionDelete(this,e)}),c(document).on("click",".wpforms-provider-connections-add",function(e){a.connectionAdd(this,e)}),c(document).on("click",".wpforms-provider-account-add button",function(e){a.accountAdd(this,e)}),c(document).on("change",".wpforms-provider-accounts select",function(e){a.accountSelect(this,e)}),c(document).on("change",".wpforms-provider-lists select",function(e){a.accountListSelect(this,e)}),c(document).on("wpformsPanelSwitch",function(e,n){["aweber","campaign-monitor","constant-contact"].some(e=>0')+('

        '+wpforms_builder_providers.error_name+"

        ")).replace(/%type%/g,e);c.confirm({title:!1,content:n,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){var e=this.$content.find("input#provider-connection-name").val().trim(),n=this.$content.find(".error");if(""===e)return n.show(),!1;a.inputToggle(o,"disable");n={action:"wpforms_provider_ajax_"+t,provider:t,task:"new_connection",name:e,id:s.form.data("id"),nonce:wpforms_builder.nonce};a.fireAJAX(o,n,function(e){var n;e.success?(r.find(".wpforms-builder-provider-connections-default").addClass("wpforms-hidden"),r.find(".wpforms-provider-connections").prepend(e.data.html),(n=r.find(".wpforms-provider-connection").first()).find(".wpforms-provider-accounts option:selected")&&(n.find(".wpforms-provider-accounts option").first().prop("selected",!0),n.find(".wpforms-provider-accounts select").trigger("change"))):a.errorDisplay(e.data.error,i)})}},cancel:{text:wpforms_builder.cancel}}})},accountAdd:function(e,n){n.preventDefault();var n=c(e),e=n.data("provider"),o=n.closest(".wpforms-provider-connection"),r=n.parent(),i=r.find(":input"),t=a.requiredCheck(i,r);if(a.inputToggle(n,"disable"),t)return n.prop("disabled",!1).find("i").remove(),!1;t={action:"wpforms_provider_ajax_"+e,provider:e,connection_id:o.data("connection_id"),task:"new_account",data:a.fakeSerialize(i)};a.fireAJAX(n,t,function(e){e.success?(r.nextAll(".wpforms-connection-block").remove(),r.nextAll(".wpforms-conditional-block").remove(),r.after(e.data.html),r.slideUp(),o.find(".wpforms-provider-accounts select").trigger("change")):a.errorDisplay(e.data.error,r)})},accountSelect:function(e,n){n.preventDefault();var n=c(e),o=n.closest(".wpforms-provider-connection"),r=n.parent(),e=o.data("provider");a.inputToggle(n,"disable"),r.nextAll(".wpforms-connection-block").remove(),r.nextAll(".wpforms-conditional-block").remove(),n.val()?(o.find(".wpforms-provider-account-add").slideUp(),e={action:"wpforms_provider_ajax_"+e,provider:e,connection_id:o.data("connection_id"),task:"select_account",account_id:n.find(":selected").val()},a.fireAJAX(n,e,function(e){e.success?(r.after(e.data.html),o.find(".wpforms-provider-lists option").first().prop("selected",!0),o.find(".wpforms-provider-lists select").trigger("change")):a.errorDisplay(e.data.error,r)})):(o.find(".wpforms-provider-account-add input").val(""),o.find(".wpforms-provider-account-add").slideDown(),a.inputToggle(n,"enable"))},accountListSelect:function(e,n){n.preventDefault();var n=c(e),e=n.closest(".wpforms-provider-connection"),o=n.parent(),r=e.data("provider"),r=(a.inputToggle(n,"disable"),o.nextAll(".wpforms-connection-block").remove(),o.nextAll(".wpforms-conditional-block").remove(),{action:"wpforms_provider_ajax_"+r,provider:r,connection_id:e.data("connection_id"),task:"select_list",account_id:e.find(".wpforms-provider-accounts option:selected").val(),list_id:n.find(":selected").val(),form_id:s.form.data("id")});a.fireAJAX(n,r,function(e){e.success?(o.after(e.data.html),wpf.initTooltips()):a.errorDisplay(e.data.error,o)})},providerPanelConfirm:function(o){wpforms_panel_switch=!0,"providers"!==o||s.form.data("revision")||WPFormsBuilder.formIsSaved()||(wpforms_panel_switch=!1,c.confirm({title:!1,content:wpforms_builder_providers.confirm_save,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){c("#wpforms-save").trigger("click"),c(document).on("wpformsSaved",function(){let e=wpforms_builder_providers.url;var n=c(`#wpforms-panel-${o} .wpforms-panel-sidebar-section.active`),n=n.length&&"default"!==n.data("section")?n.data("section"):null;n&&(e+="§ion="+n),window.location.href=e})}},cancel:{text:wpforms_builder.cancel}}}))},fireAJAX:function(e,n,o){var r=c(e),e={id:c("#wpforms-builder-form").data("id"),nonce:wpforms_builder.nonce};c.extend(e,n),c.post(wpforms_builder.ajax_url,e,function(e){o(e),a.inputToggle(r,"enable")}).fail(function(e,n,o){console.log(e.responseText)})},inputToggle:function(e,n){e=c(e);"enable"===n?(e.is("select")?e.prop("disabled",!1).next("i"):e.prop("disabled",!1).find("i")).remove():"disable"===n&&(e.is("select")?e.prop("disabled",!0).after(s.spinner):e.prop("disabled",!0).prepend(s.spinnerWhite))},errorDisplay:function(e,n){n.find(".wpforms-error-msg").remove(),n.prepend('

        '+e+"

        ")},requiredCheck:function(e,n){var o=!1;return n.find(".wpforms-alert-required").remove(),e.each(function(e,n){c(n).hasClass("wpforms-required")&&0===c(n).val().length?(c(n).addClass("wpforms-error"),o=!0):c(n).removeClass("wpforms-error")}),o&&n.prepend('

        '+wpforms_builder_providers.required_field+"

        "),o},fakeSerialize:function(e){e=e.clone();return e.each(function(e,n){c(n).data("name")&&c(n).attr("name",c(n).data("name"))}),e.serialize()},getDefaultConnectionName(e){var n=c(`#${e}-provider`).data("provider-name"),e=a.getCountConnectionsOf(e),n=n+" "+wpforms_builder.connection_label;return e<1?n:""},getCountConnectionsOf(e){return c(`#${e}-provider .wpforms-provider-connection`).length},getProviderClass(e){console.warn('WARNING! Function "WPFormsProviders.getProviderClass()" has been deprecated!');e=e.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("");return void 0===WPForms?.Admin?.Builder?.Providers?.[e]?null:WPForms.Admin.Builder.Providers[e]}};a.init()})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder.min.js new file mode 100644 index 0000000..350d3e3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/admin-builder.min.js @@ -0,0 +1,25 @@ +let WPFormsBuilderStartTime=Date.now();var WPFormsBuilder=window.WPFormsBuilder||((r,n,y)=>{let w,C,k={},e={},i=!0,a=!1,o=null,F={settings:{spinner:'',spinnerInline:'',tinymceDefaults:{tinymce:{toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,link"},quicktags:!0},pagebreakTop:!1,pagebreakBottom:!1,upload_img_modal:!1,choicesLimit:20,choicesLimitLong:250},init(){let e=this;wpforms_panel_switch=!0,w=this.settings,y(F.ready),y(n).on("load",function(){"function"==typeof y.ready.then?y.ready.then(F.loadFinalizer):F.loadFinalizer()}),y(n).on("beforeunload",function(){if(!e.formIsSaved()&&i)return wpforms_builder.are_you_sure_to_close})},loadFinalizer(){F.loadModulesPromise?F.loadModulesPromise.finally(F.load):F.load()},load(){if(wpf.getQueryString("newform")&&F.formSave(!1),"revisions"===y("#wpforms-panels-toggle .active").data("panel")&&F.updateRevisionPreview(),WPFormsUtils.triggerEvent(C,"wpformsBuilderReady").isDefaultPrevented())return!1;F.hideLoadingOverlay(),F.determineActiveSections(),F.confirmationsSetup(),WPFormsUtils.triggerEvent(C,"wpformsBuilderConfirmationsReady"),F.loadMsWinCSS(),"1"==wpforms_builder.template_modal_display&&"fields"===wpf.getQueryString("view")&&y.alert({title:wpforms_builder.template_modal_title,content:wpforms_builder.template_modal_msg,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.close,btnClass:"btn-confirm",keys:["enter"]}}}),wpf._updateFormState(),wpf.debug("Form Builder loading time:",((Date.now()-WPFormsBuilderStartTime)/1e3).toFixed(3))},initElementsCache(){C=y("#wpforms-builder"),k.$document=y(r),k.$builder=C,e.isWindows=/Win/.test(navigator.userAgent),e.isLinux=/Linux/.test(navigator.userAgent),e.isMac=/Mac/.test(navigator.userAgent),k.$helpButton=y(".js-wpforms-help"),k.$previewButton=y("#wpforms-preview-btn"),k.$embedButton=y("#wpforms-embed"),k.$saveButton=y("#wpforms-save"),k.$exitButton=y("#wpforms-exit"),k.$noFieldsOptions=y("#wpforms-panel-fields .wpforms-no-fields-holder .no-fields"),k.$noFieldsPreview=y("#wpforms-panel-fields .wpforms-no-fields-holder .no-fields-preview"),k.$formPreview=y("#wpforms-panel-fields .wpforms-preview-wrap"),k.$revisionPreview=y("#wpforms-panel-revisions .wpforms-panel-content"),k.defaultEmailSelector=".wpforms-field-option-email .wpforms-field-option-row-default_value input",k.$defaultEmail=y(k.defaultEmailSelector),k.$focusOutTarget=null,k.$nextFieldId=y("#wpforms-field-id"),k.$addFieldsTab=y("#add-fields a"),k.$fieldOptions=y("#wpforms-field-options"),k.$fieldsPreviewWrap=y("#wpforms-panel-fields .wpforms-panel-content-wrap"),k.$sortableFieldsWrap=y("#wpforms-panel-fields .wpforms-field-wrap"),k.$addFieldsButtons=y(".wpforms-add-fields-button").not(".not-draggable").not(".warning-modal").not(".education-modal"),k.$fieldsSidebar=y("#wpforms-panel-fields .wpforms-add-fields"),k.$searchInput=y("#wpforms-search-fields-input"),k.$sidebarToggle=y(".wpforms-panels .wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle")},ready(){F.isVisitedViaBackButton()?location.reload():(F.initElementsCache(),y.ajaxSetup({data:{_wp_http_referer:wpf.updateQueryString("_wp_http_referer",null)}}),F.isBuilderInPopup()&&(k.$embedButton.remove(),k.$previewButton.addClass("wpforms-alone")),F.loadModules(),F.bindUIActions(),w.formID=y("#wpforms-builder-form").data("id"),F.updatePagebreaksState(),C.on("keypress","#wpforms-builder-form :input:not(textarea)",function(e){13===e.keyCode&&e.preventDefault()}),F.loadEntryPreviewFields(),F.fieldChoiceSortable("select"),F.fieldChoiceSortable("radio"),F.fieldChoiceSortable("checkbox"),F.fieldChoiceSortable("payment-multiple"),F.fieldChoiceSortable("payment-checkbox"),F.fieldChoiceSortable("payment-select"),y(".wpforms-add-fields-group").each(function(){F.fieldGroupToggle(y(this),"load")}),F.registerTemplates(),F.trimFormTitle(),wpf.initTooltips(),F.loadColorPickers(),F.captchaToggle(),F.notificationToggle(),F.notificationsByStatusAlerts(),jconfirm.defaults={closeIcon:!1,backgroundDismiss:!1,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px",animateFromElement:!1,content:wpforms_builder.something_went_wrong},F.dropdownField.init(),F.iconChoices.init(),F.disabledFields.init(),F.checkEmptyDynamicChoices(),F.initSomeFieldOptions(),F.dismissNotice(),wpf.initializeChoicesEventHandlers())},loadModules(e=null){e=e||wpforms_builder.js_modules||{};e=Object.entries(e).map(([i,e])=>{e=e.startsWith(wpforms_builder.content_url)?e:"./modules/"+e;return import(e+"?v="+wpforms_builder.version).then(e=>[i,e])});F.loadModulesPromise=Promise.all(e).then(async e=>{for(var[i,o]of e)WPForms.Admin.Builder[i]=o.default(r,n,y),C.on("wpformsBuilderModulesInit",WPForms.Admin.Builder[i].init);WPFormsUtils.triggerEvent(C,"wpformsBuilderModulesInit",[e]),WPFormsUtils.triggerEvent(C,"wpformsBuilderModulesLoaded",[e])}).catch(e=>{wpf.debug("Error importing modules:",e)}).finally(()=>{F.loadModulesPromise=null})},checkEmptyDynamicChoices(){var e=wpf.orders.choices||{};Object.keys(e).length&&wpf.orders.fields.forEach(function(i){if(F.dropdownField.helpers.isDynamicChoices(i)){var o=y("#wpforms-field-"+i),t=F.dropdownField.helpers.getDynamicChoicesOptionType(i),r=F.dropdownField.helpers.getDynamicChoicesOptionSource(i),s=F.dropdownField.helpers.isDynamicChoicesOptionModern(i);let e=s?o.find(".has-no-choices").length:0===o.find(".primary-input option:not(.placeholder), .primary-input li").length;s&&!e&&(o=y("#wpforms-field-option-"+i+"-placeholder").val(),s=F.dropdownField.helpers.getInitialChoices(i),e=1===s.length&&s[0].label===o&&!0===s[0].placeholder),e&&F.emptyChoicesNotice(i,r,t)}})},loadMsWinCSS(){e.isMac||y("").appendTo("head").attr({type:"text/css",rel:"stylesheet",href:wpforms_builder.scrollbars_css_url})},isVisitedViaBackButton(){if(!performance)return!1;let i=!1;return performance.getEntriesByType("navigation").forEach(function(e){"back_forward"===e.type&&(i=!0)}),i},hideLoadingOverlay(){let e=y("#wpforms-builder-overlay");e.addClass("fade-out"),setTimeout(function(){e.hide()},250)},showLoadingOverlay(){var e=y("#wpforms-builder-overlay");e.removeClass("fade-out"),e.show()},initSomeFieldOptions(){F.toggleAllOptionGroups(C),C.find(".wpforms-field-option-row-date .type select").trigger("change"),C.find(".wpforms-field-option-row-read_only input:checked").trigger("change")},dropdownField:{config:{modernClass:"choicesjs-select",args:{searchEnabled:!1,searchChoices:!1,renderChoiceLimit:1,shouldSort:!1,callbackOnInit(){var e=y(this.containerOuter.element),i=e.closest(".wpforms-field").find("select");e.hasClass("is-disabled")&&e.removeClass("is-disabled"),i.is("[readonly]")&&(this.disable(),i.prop("disabled",!1)),this.passedElement.element.multiple&&this.getValue(!0).length&&y(this.input.element).addClass("choices__input--hidden"),e.find(".choices__item--selectable").each(function(){var e=y(this),i=wpf.decodeAllowedHTMLEntities(e.text());e.text(i)})}}},init(){C.find("."+F.dropdownField.config.modernClass).each(function(){F.dropdownField.events.choicesInit(y(this))}),C.on("change",".wpforms-field-option-select .wpforms-field-option-row-multiple input",F.dropdownField.events.multiple),C.on("change",".wpforms-field-option-select .wpforms-field-option-row-style select, .wpforms-field-option-payment-select .wpforms-field-option-row-style select",F.dropdownField.events.applyStyle),C.on("click",".choices",function(e){var i=y(this),o=i.find("select").data("choicesjs");o&&i.hasClass("is-open")&&e.target.classList.contains("choices__inner")&&o.hideDropdown()})},events:{choicesInit(e){var i=1===e.data("choicesjs-use-ajax"),o=F.dropdownField.config.args;let t;t="select_pages"===e.data("choicesjs-callback-fn")?WPForms.Admin.Builder.WPFormsChoicesJS.setup(e[0],o,{action:"wpforms_ajax_search_pages_for_dropdown",nonce:i?wpforms_builder.nonce:null}):new Choices(e[0],o),F.dropdownField.helpers.setInstance(e,t),F.dropdownField.helpers.addPlaceholderChoice(e,t),e.closest(".choices").toggleClass("wpforms-hidden",!t.config.choices.length)},multiple(e){var i=y(this).closest(".wpforms-field-option-row-multiple").data().fieldId,o=F.dropdownField.helpers.getPrimarySelector(i),t=y(`#wpforms-field-option-row-${i}-choices input.default`),r=o.find(".placeholder"),s=F.dropdownField.helpers.isDynamicChoices(i),e=e.target.checked,l=e?"checkbox":"radio",l=(o.prop("multiple",e),t.prop("type",l),s&&o.find("option:selected").prop("selected",!1),t.filter(":checked"));!e&&l.length&&(t.prop("checked",!1),y(l.get(0)).prop("checked",!0)),r.length&&r.prop("selected",!e),F.dropdownField.helpers.update(i,s)},applyStyle(){var e=y(this),i=e.closest(".wpforms-field-option-row-style").data().fieldId;"modern"===e.val()?F.dropdownField.helpers.convertClassicToModern(i):F.dropdownField.helpers.convertModernToClassic(i)}},helpers:{convertModernToClassic:e=>{var i=F.dropdownField.helpers.getPrimarySelector(e),o=F.dropdownField.helpers.isDynamicChoices(e),i=F.dropdownField.helpers.getInstance(i),t=y("#wpforms-field-option-row-"+e+"-choices").find(".choices-list").find("li").length;i&&"function"==typeof i.destroy&&(i.destroy(),F.dropdownField.helpers.updatePlaceholderChoice(i,e)),o||F.fieldChoiceUpdate("select",e,t)},getInitialChoices(e){e=F.dropdownField.helpers.getPrimarySelector(e);return F.dropdownField.helpers.getInstance(e).config.choices},convertClassicToModern(e){var i=F.dropdownField.helpers.getPrimarySelector(e);F.dropdownField.helpers.isDynamicChoices(e)||F.fieldChoiceUpdate("select",e),F.dropdownField.events.choicesInit(i)},update(e,i){var o=F.dropdownField.helpers.getPrimarySelector(e);F.dropdownField.helpers.isModernSelect(o)?(F.dropdownField.helpers.convertModernToClassic(e),i||F.dropdownField.events.choicesInit(o)):i||F.fieldChoiceUpdate("select",e)},addPlaceholderChoice(e,i){e=e.closest(".wpforms-field");if(e.length<=0)return!1;var o,t,r,e=e.data().fieldId;let s=F.dropdownField.helpers.hasDefaults(e);return F.dropdownField.helpers.isDynamicChoices(e)&&(s=!1),!1===F.dropdownField.helpers.searchPlaceholderChoice(i)&&!!i.config.choices.length&&(e=y("#wpforms-field-option-"+e+"-placeholder").val(),o=wpf.decodeAllowedHTMLEntities(e),r=!((t=y(i.passedElement.element).prop("multiple"))||s),i.setChoices([{value:"",label:o,selected:r,placeholder:!0}],"value","label",!1),t&&y(i.input.element).prop("placeholder",e),!0)},searchPlaceholderChoice(e){let o=!1;return e.config.choices.forEach(function(e,i){if(void 0!==e.placeholder&&!0===e.placeholder)return!(o={key:i,item:e})}),o},updatePlaceholderChoice(e,i){var o=y(e.passedElement.element),i=wpf.sanitizeHTML(y("#wpforms-field-option-"+i+"-placeholder").val()),e=F.dropdownField.helpers.searchPlaceholderChoice(e);let t={};"object"==typeof e&&(t=y(o.find("option").get(e.key))),""!==i?!y.isEmptyObject(t)&&t.length?t.addClass("placeholder").text(i):o.prepend('"):t.length&&t.remove()},isModernSelect(e){e=F.dropdownField.helpers.getInstance(e);return"object"==typeof e&&!y.isEmptyObject(e)&&e.initialised},setInstance(e,i){e.data("choicesjs",i)},getInstance(e){return e.data("choicesjs")},getDynamicChoicesOption(e){e=y("#wpforms-field-option-"+e+"-dynamic_choices");return!!e.length&&e},isDynamicChoices(e){e=F.dropdownField.helpers.getDynamicChoicesOption(e);return!!e.length&&""!==e.val()},isDynamicChoicesOptionModern(e){e=y("#wpforms-field-option-"+e+"-style");return!!e.length&&"modern"===e.val()},getDynamicChoicesOptionType(e){e=F.dropdownField.helpers.getDynamicChoicesOption(e);return!!e.length&&e.val()},getDynamicChoicesOptionSource(e){var i=F.dropdownField.helpers.getDynamicChoicesOptionType(e),e=y("#wpforms-field-option-"+e+"-dynamic_"+i);return!!e.length&&e.find("option:selected").text()},hasDefaults(e){return!!y(`#wpforms-field-option-row-${e}-choices .choices-list`).find("input.default:checked").length},getPrimarySelector(e){return y("#wpforms-field-"+e+" .primary-input")}}},numberSliderEvents(e){e.on("focusout",".wpforms-field-option-row-min_max .wpforms-input-row .wpforms-number-slider-min",F.fieldNumberSliderUpdateMin),e.on("focusout",".wpforms-field-option-row-min_max .wpforms-input-row .wpforms-number-slider-max",F.fieldNumberSliderUpdateMax),e.on("input",".wpforms-number-slider-default-value",_.debounce(F.changeNumberSliderDefaultValue,500)),e.on("focusout",".wpforms-number-slider-default-value",F.changeNumberSliderEmptyDefaultValue),e.find(".wpforms-number-slider-default-value").trigger("input"),e.on("input",".wpforms-number-slider-step",_.debounce(F.changeNumberSliderStep,500)),e.on("focusout",".wpforms-number-slider-step",F.checkNumberSliderStep),e.on("input",".wpforms-number-slider-value-display",_.debounce(F.changeNumberSliderValueDisplay,500)),e.on("input",".wpforms-number-slider-min",_.debounce(F.changeNumberSliderMin,500)),e.on("input",".wpforms-number-slider-max",_.debounce(F.changeNumberSliderMax,500))},changeNumberSliderMin(e){var i=parseFloat(e.target.value);isNaN(i)||(i=y(e.target).parents(".wpforms-field-option-row").data("fieldId"),F.updateNumberSliderDefaultValueAttr(i,e.target.value,"min"))},changeNumberSliderMax(e){var i=parseFloat(e.target.value);isNaN(i)||(i=y(e.target).parents(".wpforms-field-option-row").data("fieldId"),F.updateNumberSliderDefaultValueAttr(i,e.target.value,"max").updateNumberSliderStepValueMaxAttr(i,e.target.value))},changeNumberSliderValueDisplay(e){var i=e.target.value,e=y(e.target).parents(".wpforms-field-option-row").data("fieldId"),o=r.getElementById("wpforms-field-option-"+e+"-default_value");o&&F.updateNumberSliderHintStr(e,i).updateNumberSliderHint(e,o.value)},changeNumberSliderStep(e){var i,o,t,r=y(this),s=parseFloat(r.val());isNaN(s)||s<=0||(o=y(r).closest(".wpforms-field-option"),(t=((i=parseFloat(o.find(".wpforms-number-slider-max").val()))-(o=parseFloat(o.find(".wpforms-number-slider-min").val()))).toFixed(2))e%1==0?e.toString():e.toFixed(2))(i),(o=r(o))===(r=r(t))||o===i||r===i?F.removeNotice(e):(t=wpforms_builder.number_slider_error_valid_default_value.replace("{from}",o).replace("{to}",r),F.printNotice(t,e))),this},calculateClosestMultiples(e,i,o,t){let r=o+Math.floor((e-o)/i)*i,s=o+Math.ceil((e-o)/i)*i;return e===(s=e===r&&e!==o?r+i:s)&&e!==t&&(r=s-i),e===o&&(s=o+i),e===t&&(r=t-i),r=Math.max(r,o),s=Math.min(s,t),{closestSmallerMultiple:r,closestLargerMultiple:s}},printNotice(e,i,o=!1){i.length&&(this.removeNotice(i),i.append(`

        ${e}

        `))},removeNotice(e){e.length&&e.find(".wpforms-alert").length&&e.find(".wpforms-alert").remove()},checkNumberSliderStep(e){e=parseFloat(e.target.value);if(isNaN(e)||!(0"+i+"
        ")),this},fieldNumberSliderUpdateMin(e){var i,o,t=parseFloat(e.target.value);isNaN(t)||(i=y(e.target).parents(".wpforms-field-option-row-min_max"),(o=parseFloat(i.find(".wpforms-number-slider-max").val()))<=t?(e.preventDefault(),this.value=o):(e=i.data("field-id"),C.find("#wpforms-field-"+e+' input[type="range"]').attr("min",t)))},fieldNumberSliderUpdateMax(e){var i,o,t=parseFloat(e.target.value);isNaN(t)||(i=y(e.target).parents(".wpforms-field-option-row-min_max"),t<=(o=parseFloat(i.find(".wpforms-number-slider-min").val()))?(e.preventDefault(),this.value=o):(e=i.data("field-id"),C.find("#wpforms-field-"+e+' input[type="range"]').attr("max",t)))},updateNumberSliderStepValueMaxAttr(e,i){var o,e=r.getElementById("wpforms-field-option-"+e+"-step");return e&&(o=parseFloat(e.value),e.setAttribute("max",i),(i=parseFloat(i)) button, .wpforms-panel-switch",function(e){e.preventDefault(),F.panelSwitch(y(this).data("panel"))}),C.on("click",".wpforms-panel .wpforms-panel-sidebar-section",function(e){F.panelSectionSwitch(this,e)}),C.on("click",".wpforms-panel .wpforms-panel-content .wpforms-panel-content-section-tabs-list-item",function(e){F.panelSectionTabSwitch(this,e)}),C.on("click",".wpforms-panels .wpforms-panel-sidebar-content .wpforms-panel-sidebar-toggle",function(){y(this).parent().toggleClass("wpforms-panel-sidebar-closed")})},panelSwitch(i){var o=y("#wpforms-panel-"+i);if(!o.hasClass("active")){if(WPFormsUtils.triggerEvent(C,"wpformsPanelSwitch",[i]).isDefaultPrevented()||!wpforms_panel_switch)return!1;y("#wpforms-panels-toggle").find("button").removeClass("active"),y(".wpforms-panel").removeClass("active"),y(".wpforms-panel-"+i+"-button").addClass("active"),o.addClass("active"),history.replaceState({},null,wpf.updateQueryString("view",i));let e;o=o.find(".active");o.length&&"default"!==o.data("section")&&(e=o.data("section")),history.replaceState({},null,wpf.updateQueryString("section",e)),C.trigger("wpformsPanelSwitched",[i])}},panelSectionSwitch(e,i){i&&i.preventDefault();i=y(e);if(!i.hasClass("upgrade-modal")&&!i.hasClass("education-modal")){var e=i.parent().parent(),i=i.data("section"),o=e.find(`.wpforms-panel-sidebar-section[data-section="${i}"]`);if(!o.hasClass("active")){if(WPFormsUtils.triggerEvent(C,"wpformsPanelSectionSwitch",i).isDefaultPrevented()||!wpforms_panel_switch)return!1;e.find(".wpforms-panel-sidebar-section").removeClass("active"),o.addClass("active"),e.find(".wpforms-panel-content-section").hide().removeClass("active"),e.find(".wpforms-panel-content-section-"+i).show().addClass("active"),history.replaceState({},null,wpf.updateQueryString("section",i)),WPFormsUtils.triggerEvent(C,"wpformsPanelSectionSwitched",i)}}},panelSectionTabSwitch(e,i){i.preventDefault();var o,t,r,i=y(e),e="wpforms-panel-content-section-tabs-list-item-active",s=i.data("tab");!s||i.hasClass("wpforms-disabled")||i.hasClass(e)||WPFormsUtils.triggerEvent(C,"wpformsPanelSectionTabBeforeSwitch",[s,i]).isDefaultPrevented()||(o="wpforms-panel-content-section-tabs-content-tab-active",r=(t=i.closest(".wpforms-panel-content-section-tabs-list")).closest(".wpforms-panel-content").find(".wpforms-panel-content-section-tabs-content-tab"),t.find(".wpforms-panel-content-section-tabs-list-item").removeClass(e),i.addClass(e),r.removeClass(o),r.filter(`[data-tab="${s}"]`).addClass(o),WPFormsUtils.triggerEvent(C,"wpformsPanelSectionTabSwitch",[s,i]))},bindUIActionsSetup(){console.warn('WARNING! Function "WPFormsBuilder.bindUIActionsSetup()" has been deprecated, please use the new "WPForms.Admin.Builder.Setup.events()" function instead!'),WPForms.Admin.Builder.Setup.events()},templateSelect(e,i){console.warn('WARNING! Function "WPFormsBuilder.templateSelect()" has been deprecated, please use the new "WPForms.Admin.Builder.Setup.selectTemplate()" function instead!'),WPForms.Admin.Builder.Setup.selectTemplate(i)},bindUIActionsFields(){C.on("wpformsPanelSwitched",function(e,i){"fields"===i&&y("#field-options a").hasClass("active")&&0===y(".wpforms-field-wrap .wpforms-field.active").length&&F.fieldTabToggle("field-options")}),C.on("click",".wpforms-tab a",function(e){e.preventDefault(),F.fieldTabToggle(y(this).parent().attr("id"))}),C.on("click",".wpforms-add-fields-heading",function(e){e.preventDefault(),F.fieldGroupToggle(y(this),"click")}),C.on("click",".wpforms-field",function(e,i){F.isFieldPreviewActionsDisabled(this)||e.target.classList.contains("wpforms-dismiss-button")||(WPForms.Admin.Builder.ContextMenu&&"ignore-contextmenu"!==i&&WPForms.Admin.Builder.ContextMenu.hideMainContextMenu(e),(e.currentTarget?.ownerDocument?.activeElement)?.blur(),e.stopPropagation(),F.fieldTabToggle(y(this).data("field-id"),e))}),C.on("mousedown click",".wpforms-field input, .wpforms-field select, .wpforms-field textarea",function(e){e.preventDefault(),this.blur()}),C.on("click",".wpforms-field-delete",function(e){e.preventDefault(),e.stopPropagation(),F.isFormPreviewActionsDisabled(this)||(WPForms.Admin.Builder.ContextMenu&&WPForms.Admin.Builder.ContextMenu.hideMenu(),F.fieldDelete(y(this).parent().data("field-id")))}),C.on("click",".wpforms-field-duplicate",function(e){e.preventDefault(),e.stopPropagation(),F.isFormPreviewActionsDisabled(this)||(WPForms.Admin.Builder.ContextMenu&&WPForms.Admin.Builder.ContextMenu.hideMenu(),F.fieldDuplicate(y(this).parent().data("field-id")))}),C.on("click",".wpforms-add-fields-button",function(e){e.preventDefault();var i,e=y(this);e.hasClass("ui-draggable-disabled")||(i=e.data("field-type"),WPFormsUtils.triggerEvent(C,"wpformsBeforeFieldAddOnClick",[i,e]).isDefaultPrevented())||F.fieldAdd(i,{$sortable:"default"})}),C.on("wpformsFieldAdd",function(e,i,o){-1!==y.inArray(o,["select","radio","checkbox","payment-multiple","payment-checkbox","payment-select"])&&F.fieldChoiceSortable(o,`#wpforms-field-option-row-${i}-choices ul`)}),C.on("wpformsFieldOptionTabToggle",function(e,i){F.fieldLayoutSelectorInit(i)}),C.on("click",".wpforms-field-option-row-choices .add",function(e){F.fieldChoiceAdd(e,y(this))}),C.on("click",".wpforms-field-option-row-choices .remove",function(e){F.fieldChoiceDelete(e,y(this))}),C.on("mousedown",".wpforms-field-option-row-choices input[type=radio]",function(){var e=y(this);e.is(":checked")?e.attr("data-checked","1"):e.attr("data-checked","0")}),C.on("click",".wpforms-field-option-row-choices input[type=radio]",function(){var e=y(this),i=e.parent().parent();e.parent().parent().find("input[type=radio]").not(this).prop("checked",!1),"1"===e.attr("data-checked")&&(e.prop("checked",!1),e.attr("data-checked","0")),F.fieldChoiceUpdate(i.data("field-type"),i.data("field-id"),i.find("li").length)}),C.on("change",".wpforms-field-option-row-choices input[type=checkbox]",function(){var e=y(this).parent().parent();F.fieldChoiceUpdate(e.data("field-type"),e.data("field-id"),e.find("li").length)}),C.on("change",".wpforms-field-option-row-show_values input",function(){var e=y(this),i=e.closest(".wpforms-field-option").find(".wpforms-field-option-row-choices .choices-list"),o=i.data("field-id"),t=i.data("field-type"),e=e.is(":checked");i.toggleClass("show-values",e),F.fieldChoiceUpdate(t,o),WPForms.Admin.Builder.MultipleChoices.updatePreviewState(o)}),C.on("change",".wpforms-field-option-row-choices_images input",function(){var e=y(this),i=e.closest(".wpforms-field-option-row"),o=i.data("field-id"),t=y("#wpforms-field-option-"+o),e=e.is(":checked"),r=t.find(".wpforms-field-option-hidden-type").val(),s=i.siblings(".wpforms-field-option-row-choices_icons").find("input");e&&s.is(":checked")&&s.prop("checked",!1).trigger("change"),i.find(".wpforms-alert").toggleClass("wpforms-hidden"),t.find(".wpforms-field-option-row-choices ul").toggleClass("show-images"),t.find(".wpforms-field-option-row-choices_images_style").toggleClass("wpforms-hidden"),t.find(".wpforms-field-option-row-dynamic_choices").toggleClass("wpforms-hidden",e),(e?y("#wpforms-field-option-"+o+"-input_columns").val("inline"):y("#wpforms-field-option-"+o+"-input_columns").val("")).trigger("change"),y(`#wpforms-field-option-row-${o}-choices_images_hide`).toggleClass("wpforms-hidden",!e),F.fieldChoiceUpdate(r,o)}),C.on("wpformsImageUploadAdd wpformsImageUploadRemove",function(e,i,o){var o=o.closest(".choices-list"),t=o.data("field-id"),o=o.data("field-type");F.fieldChoiceUpdate(o,t)}),C.on("change",".wpforms-field-option-row-choices_images_style select",function(){var e=y(this).parent().data("field-id"),i=y("#wpforms-field-option-"+e).find(".wpforms-field-option-hidden-type").val();F.fieldChoiceUpdate(i,e)}),C.on("keyup change",".wpforms-field-option-row-choices input.label, .wpforms-field-option-row-choices input.value",function(){var e=y(this).parent().parent();F.fieldChoiceUpdate(e.data("field-type"),e.data("field-id"))}),C.on("focusout",".wpforms-field-option-row-choices input.label, .wpforms-field-option-row-choices input.value",function(){var e=y(this);e.val(wpf.sanitizeHTML(e.val(),wpforms_builder.allowed_label_html_tags))}),C.on("click",".toggle-bulk-add-display",function(e){e.preventDefault(),F.fieldChoiceBulkAddToggle(this)}),C.on("click",".toggle-bulk-add-presets",function(e){e.preventDefault();e=y(this).closest(".bulk-add-display").find("ul");"block"===e.css("display")?y(this).text(wpforms_builder.bulk_add_presets_show):y(this).text(wpforms_builder.bulk_add_presets_hide),e.stop().slideToggle()}),C.on("click",".bulk-add-preset-insert",function(e){e.preventDefault();var e=y(this),i=e.data("preset"),e=e.closest(".bulk-add-display"),o=e.find("ul"),t=e.find(".toggle-bulk-add-presets"),e=e.find("textarea");e.val(""),e.insertAtCaret(wpforms_preset_choices[i].choices.join("\n")),t.text(wpforms_builder.bulk_add_presets_show),o.slideUp()}),C.on("click",".bulk-add-insert",function(e){e.preventDefault(),F.fieldChoiceBulkAddInsert(this)}),C.on("click",".wpforms-field-option-group-toggle:not(.education-modal)",function(e){if(WPFormsUtils.triggerEvent(C,"wpformsFieldOptionGroupToggle").isDefaultPrevented())return!1;e.preventDefault();e=y(this).closest(".wpforms-field-option-group");e.siblings(".wpforms-field-option-group").removeClass("active"),e.addClass("active"),C.trigger("wpformsFieldOptionGroupToggled",[e])}),C.on("change",".wpforms-field-option-address input.wpforms-subfield-hide",function(){var e=y(this).closest(".wpforms-field-option-row"),i=e.data("field-id"),e=e.data("subfield");y("#wpforms-field-"+i).find(".wpforms-"+e).toggleClass("wpforms-hide")}),C.on("input",".wpforms-field-option-row-label input, .wpforms-field-option-row-name input",function(){var e=y(this),i=e.parent().data("field-id"),i=y("#wpforms-field-"+i),o=i.data("field-type");let t=e.val(),r=0===t.length;(r="html"===o?!1:r)&&(t=wpforms_builder.empty_label),i.toggleClass("label_empty",r).find("> .label-title .text").text(t)}),C.on("input",".wpforms-field-option-row-description textarea",function(){var e=y(this),i=wpf.sanitizeHTML(e.val()),o=e.parent().data("field-id"),t=y(`#wpforms-field-${o} > .description, + #wpforms-field-${o} .format-selected-single > .description, + #wpforms-field-${o} .wpforms-field-internal-information-row-description`);F.updateDescription(t,i),e.trigger("wpformsDescriptionFieldUpdated",{id:o,descField:t,value:i})}),C.on("change",".wpforms-field-option-row-required input",function(){var e=y(this),i=e.closest(".wpforms-field-option-row").data("field-id"),o=y("#wpforms-field-"+i);o.toggleClass("required",e.is(":checked")),F.onUpdateSelectPlaceholder(i,o)}),C.on("click",".choices-list input.default",function(){var e=y(this),i=e.closest(".choices-list").data("field-id");e.is(":checked")||F.maybeUpdateRequiredPlaceholder(i),C.trigger("wpformsChoicesSetDefault",[this])}),C.on("change",".wpforms-field-option-row-summary input",function(){var e=y(this),i=e.closest(".wpforms-field-option-row").data("field-id");y("#wpforms-field-"+i).toggleClass("wpforms-summary-enabled"),e.closest(".wpforms-field-option-group-inner").find(".wpforms-total-summary-alert").toggleClass("wpforms-hidden")}),C.on("change",".wpforms-field-option-row-confirmation input",function(){var e=y(this).closest(".wpforms-field-option-row").data("field-id");y("#wpforms-field-"+e).find(".wpforms-confirm").toggleClass("wpforms-confirm-enabled wpforms-confirm-disabled"),y("#wpforms-field-option-"+e).toggleClass("wpforms-confirm-enabled wpforms-confirm-disabled")}),C.on("change",".wpforms-field-option-row-filter_type select",function(){var e=y(this).parent().data("field-id"),e=y("#wpforms-field-option-"+e);y(this).val()?(e.removeClass("wpforms-filter-allowlist"),e.removeClass("wpforms-filter-denylist"),e.addClass("wpforms-filter-"+y(this).val())):(e.removeClass("wpforms-filter-allowlist"),e.removeClass("wpforms-filter-denylist"))}),C.on("focusout",".wpforms-field-option-row-allowlist textarea,.wpforms-field-option-row-denylist textarea",function(){let o=y(this),e="allow";var i,t;o.next(".wpforms-alert").remove(),""!==o.val()&&(i=y(".wpforms-field-option-row-allowlist textarea"),t=y(".wpforms-field-option-row-denylist textarea"),o.is(t)&&(e="deny"),y.get(wpforms_builder.ajax_url,{nonce:wpforms_builder.nonce,content:JSON.stringify({allow:i.val(),deny:t.val(),current:e}),action:"wpforms_sanitize_restricted_rules"},function(e){var i;e.success&&(o.val(e.data.currentField),0!==(i=e.data.intersect).length&&(i="

        "+wpforms_builder.allow_deny_lists_intersect+'

        '+i+"

        ",y.alert({title:wpforms_builder.heads_up,content:i,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})),e.data.restricted||0)&&o.after('

        '+wpforms_builder.restricted_rules+"

        ")}))}),C.on("focusout",k.defaultEmailSelector,function(){k.$focusOutTarget=y(this),F.focusOutEvent()}),C.on("change",".wpforms-field-option-row-size select",function(){var e=y(this),i=e.val(),e=e.parent().data("field-id");y("#wpforms-field-"+e).removeClass("size-small size-medium size-large").addClass("size-"+i)}),C.on("input",".wpforms-field-option-row-placeholder input",function(){var e=y(this),i=e.parent().data("field-id"),o=y("#wpforms-field-"+i),t=o.find(".primary-input");let r=wpf.sanitizeHTML(e.val());"payment-single"===o.data("field-type")&&""===r&&(r=y("#wpforms-field-option-"+i+"-price").prop("placeholder")),t.is("select")?F.dropdownField.helpers.isModernSelect(t)?(e=F.dropdownField.helpers.getInstance(t),t.prop("multiple")?y(e.input.element).prop("placeholder",r):(e.setChoiceByValue(""),t.closest(".choices").find(".choices__inner .choices__placeholder").text(r),o=y("#wpforms-field-option-"+i+"-dynamic_choices").val(),F.dropdownField.helpers.update(i,o))):(e=t.find(".placeholder"),!r.length&&e.length?e.remove():(e.length?e.text(r):t.prepend('"),t.find(".placeholder").prop("selected",!t.prop("multiple")))):t.prop("placeholder",r)}),C.on("input",".wpforms-field-option-row-confirmation_placeholder input",function(){var e=y(this),i=e.val(),e=e.parent().data("field-id");y("#wpforms-field-"+e).find(".secondary-input").attr("placeholder",i)}),C.on("input",".wpforms-field-option .format-selected input.placeholder",function(){var e=y(this),i=e.val(),e=e.closest(".wpforms-field-option-row"),o=e.data("field-id"),e=e.data("subfield");y("#wpforms-field-"+o).find(".wpforms-"+e+" input").attr("placeholder",i)}),C.on("input",".wpforms-field-option-address input.placeholder",function(){var e=y(this),i=e.closest(".wpforms-field-option-row"),o=i.data("field-id"),t=i.data("subfield"),r=y("#wpforms-field-"+o+" .wpforms-"+t).find("input, select"),i=i.find("#wpforms-field-option-"+o+"-"+t+"_default");let s=i.val(),l=i.find("option:selected").text(),n=e.val();r.each(function(){var e,i,o=y(this);o.is("select")?(e=o.find(".placeholder"),i=""===s&&""!==n?n:l,e.text(i)):o.attr("placeholder",n)})}),C.on("input",'.wpforms-field-option-row-default_value input:not([type="search"])',function(){var e=y(this),i=wpf.sanitizeHTML(e.val()),e=e.closest(".wpforms-field-option-row").data("field-id");y("#wpforms-field-"+e+" .primary-input").val(i)}),C.on("input",".wpforms-field-options-column input.default",function(){var e=y(this),i=wpf.sanitizeHTML(e.val()),e=e.closest(".wpforms-field-option-row"),o=e.data("field-id"),e=e.data("subfield");y("#wpforms-field-"+o+" .wpforms-"+e+" input").val(i)}),C.on("change",".wpforms-field-option-address select.default",function(){var e=y(this),i=e.val(),o=e.find("option:selected").text(),e=e.closest(".wpforms-field-option-row"),t=e.data("field-id"),r=e.data("subfield"),s=y("#wpforms-field-option-"+t+"-scheme").val(),e=e.find("#wpforms-field-option-"+t+"-"+r+"_placeholder").val(),t=y("#wpforms-field-"+t+" .wpforms-address-scheme-"+s+" .wpforms-"+r+" .placeholder");""===i&&0parseInt(i.val(),10))}),C.on("change",".wpforms-field-option-row-format select",function(){var e,i,o,t,r,s=y(this),l=s.val(),s=s.parent().data("field-id"),n=y("#wpforms-field-option-row-"+s+"-sublabel_hide"),a=y("#wpforms-field-"+s);a.find(".format-selected").removeClass().addClass("format-selected format-selected-"+l),y("#wpforms-field-option-"+s).find(".format-selected").removeClass().addClass("format-selected format-selected-"+l),["date-time","first-last","first-middle-last"].includes(l)?n.removeClass("wpforms-hidden"):n.addClass("wpforms-hidden"),y(`#wpforms-field-option-row-${s}-price_label`).toggleClass("wpforms-hidden","single"!==l),["single","user","hidden"].includes(l)&&(n="user"===l,e="single"===l,l="hidden"===l,i=y("#wpforms-field-option-"+s+"-enable_quantity").is(":checked"),t=y("#wpforms-field-option-"+s+"-min_price"),t=(o=wpf.amountSanitize(t.val()))>=t.data("minimum-price"),r=y("#wpforms-field-option-row-"+s+"-min_price"),y("#wpforms-field-option-row-"+s+"-placeholder").toggleClass("wpforms-hidden",!n),y("#wpforms-field-option-row-"+s+"-enable_quantity").toggleClass("wpforms-hidden",!e),y("#wpforms-field-option-row-"+s+"-quantities_alert").toggleClass("wpforms-hidden",!e),y("#wpforms-field-option-row-"+s+"-quantity").toggleClass("wpforms-hidden",!e||!i),a.find(".quantity-input").toggleClass("wpforms-hidden",!e||!i),r.toggleClass("wpforms-hidden",!n),r.find(".wpforms-item-minimum-price-alert").toggleClass("wpforms-hidden",t),a.find(".item-min-price").toggleClass("wpforms-hidden",n&&o<=0),a.toggleClass("min-price-warning",!t),a.find(".fa-exclamation-triangle").toggleClass("wpforms-hidden",t),y(`#wpforms-field-${s} .item-price-single`).toggleClass("wpforms-hidden",!e),y(`#wpforms-field-${s} .item-price-hidden`).toggleClass("wpforms-hidden",!l))}),C.on("change",".wpforms-field-option-row-scheme select",function(){var e=y(this),i=e.val(),e=e.parent().data("field-id"),o=y("#wpforms-field-"+e),t=y(`#wpforms-field-option-row-${e}-state`),e=y(`#wpforms-field-option-row-${e}-country`),o=(o.find(".wpforms-address-scheme").addClass("wpforms-hide"),o.find(".wpforms-address-scheme-"+i).removeClass("wpforms-hide"),o.find(`.wpforms-address-scheme-${i} .wpforms-country select, .wpforms-address-scheme-${i} .wpforms-country input`)),o=(0===o.length?e.addClass("wpforms-hidden"):e.removeClass("wpforms-hidden"),t.find(".default .default").not(".wpforms-hidden-strict")),t=t.find(`.default [data-scheme="${i}"]`),r=e.find(".default .default").not(".wpforms-hidden-strict"),e=e.find(`.default [data-scheme="${i}"]`);t.attr({id:o.attr("id"),name:o.attr("name")}).removeClass("wpforms-hidden-strict"),o.attr({id:"",name:""}).addClass("wpforms-hidden-strict"),e.attr({id:r.attr("id"),name:r.attr("name")}).removeClass("wpforms-hidden-strict"),r.attr({id:"",name:""}).addClass("wpforms-hidden-strict")}),C.on("change",".wpforms-field-option-row-date .type select",function(){var e=y(this),i=e.val(),o=y(this).closest(".wpforms-field-option-row").data("field-id"),t="datepicker"===i?"wpforms-date-type-datepicker":"wpforms-date-type-dropdown",r="datepicker"===i?"wpforms-date-type-dropdown":"wpforms-date-type-datepicker",t=(y("#wpforms-field-"+o).find(".wpforms-date").addClass(t).removeClass(r),y("#wpforms-field-option-"+o).addClass(t).removeClass(r),e.closest(".wpforms-field-option-group-advanced").find(".wpforms-field-option-row-date_limit_days, .wpforms-field-option-row-date_limit_days_options, .wpforms-field-option-row-date_disable_past_dates")),r=y("#wpforms-field-option-row-"+o+"-date_limit_days_options");"dropdown"===i?((e=y("#wpforms-field-option-"+o+"-date_format")).find("option:selected").hasClass("datepicker-only")&&e.prop("selectedIndex",0).trigger("change"),t.hide()):(t.show(),y("#wpforms-field-option-"+o+"-date_limit_days").is(":checked")?r.show():r.hide())}),C.on("change",".wpforms-field-option-row-date .format select",function(){var e=y(this).val(),i=y(this).closest(".wpforms-field-option-row").data("field-id"),i=y("#wpforms-field-"+i);"m/d/Y"===e||"m.d.Y"===e?(i.find(".wpforms-date-dropdown .first option").text(wpforms_builder.date_select_month),i.find(".wpforms-date-dropdown .second option").text(wpforms_builder.date_select_day),i.find(".wpforms-date-dropdown .third option").text(wpforms_builder.date_select_year)):"d/m/Y"===e||"d.m.Y"===e?(i.find(".wpforms-date-dropdown .first option").text(wpforms_builder.date_select_day),i.find(".wpforms-date-dropdown .second option").text(wpforms_builder.date_select_month),i.find(".wpforms-date-dropdown .third option").text(wpforms_builder.date_select_year)):"Y/m/d"!==e&&"Y.m.d"!==e||(i.find(".wpforms-date-dropdown .first option").text(wpforms_builder.date_select_year),i.find(".wpforms-date-dropdown .second option").text(wpforms_builder.date_select_month),i.find(".wpforms-date-dropdown .third option").text(wpforms_builder.date_select_day))}),C.on("change",".wpforms-field-option-row-time .format select",function(){let e=y(this),r=e.closest(".wpforms-field-option-row").data("field-id"),s="",i,l=e.val().match(/[gh]/)?12:24,o=12==l?1:0,t=12==l?13:24;for(let e=o;e{hh}'.replace(/{hh}/g,i);_.forEach(["start","end"],function(e){var i=C.find("#wpforms-field-option-"+r+"-time_limit_hours_"+e+"_hour"),e=C.find("#wpforms-field-option-"+r+"-time_limit_hours_"+e+"_ampm");let o=parseInt(i.val(),10),t=e.val();o=(o=24==l?"pm"===t?o+12:o:(t=12=e.data("minimum-price"),e=e.parent(),r=y("#wpforms-field-"+e.data("field-id"));e.find(".wpforms-item-minimum-price-alert").toggleClass("wpforms-hidden",o),r.find(".item-min-price").toggleClass("wpforms-hidden",t),r.toggleClass("min-price-warning",!o),r.find(".fa-exclamation-triangle").toggleClass("wpforms-hidden",o),t||r.find(".min-price").text(wpf.amountFormatCurrency(i))}),C.on("input",".wpforms-single-item-price-label-display",function(){var e=y(this),i=wpf.sanitizeHTML(e.val(),"<>"),o=e.parent().data("field-id"),t=y("#wpforms-field-"+o),o=wpf.amountFormatCurrency(y(`#wpforms-field-option-${o}-price`).val());i?t.find(".price-label").html(i.replaceAll("{price}",` ${o} `)):(e.val("{price}"),t.find(".price-label").html(` ${o} `))}),C.on("change",".wpforms-field-option-credit-card .payment-icons input",function(){var e=y(this),i=e.data("card"),e=e.parent().data("field-id");y("#wpforms-field-"+e).find("img.icon-"+i).toggleClass("card_hide")}),C.on("input",".wpforms-field-option input.placeholder-update",function(){var e=y(this),i=e.val(),o=e.data("field-id"),e=e.data("subfield");y("#wpforms-field-"+o).find(".wpforms-"+e+" input").attr("placeholder",i)}),C.on("change",".wpforms-field-option-row-input_columns select",function(){var e=y(this),i=e.val(),e=e.parent().data("field-id");let o="";"2"===i?o="wpforms-list-2-columns":"3"===i?o="wpforms-list-3-columns":"inline"===i&&(o="wpforms-list-inline"),y("#wpforms-field-"+e).removeClass("wpforms-list-2-columns wpforms-list-3-columns wpforms-list-inline").addClass(o)}),C.on("change",".wpforms-field-option-row .wpforms-toggle-control input",function(){var e=y(this),i=e.closest(".wpforms-toggle-control").find(".wpforms-toggle-control-status"),e=e.is(":checked")?"on":"off";i.html(i.data(e))}),C.on("change",".wpforms-field-option-row-dynamic_choices select",function(){F.fieldDynamicChoiceToggle(y(this))}),C.on("change",".wpforms-field-option-row-dynamic_taxonomy select, .wpforms-field-option-row-dynamic_post_type select",function(){F.fieldDynamicChoiceSource(y(this))}),C.on("click",".toggle-layout-selector-display",function(e){e.preventDefault(),F.fieldLayoutSelectorToggle(this)}),C.on("click",".layout-selector-display-layout",function(e){e.preventDefault(),F.fieldLayoutSelectorLayout(this)}),C.on("click",".layout-selector-display-columns span",function(e){e.preventDefault(),F.fieldLayoutSelectorInsert(this)}),y(r).on("change",".wpforms-field-option-row-scale select",function(){let e=y(this),i=e.val(),o=e.parent().data("field-id"),t=y("#wpforms-field-"+o+" .rating-icon"),r=1;t.each(function(){r<=i?y(this).show():y(this).hide(),r++})}),y(r).on("change",".wpforms-field-option-row-icon select",function(){var e=y(this),i=e.val(),e=e.parent().data("field-id"),e=y("#wpforms-field-"+e+" .rating-icon");let o="fa-star";"heart"===i?o="fa-heart":"thumb"===i?o="fa-thumbs-up":"smiley"===i&&(o="fa-smile-o"),e.removeClass("fa-star fa-heart fa-thumbs-up fa-smile-o").addClass(o)}),y(r).on("change",".wpforms-field-option-row-icon_size select",function(){var e=y(this),i=e.val(),e=e.parent().data("field-id"),e=y("#wpforms-field-"+e+" .rating-icon");let o="28";"small"===i?o="18":"large"===i&&(o="38"),e.css("font-size",o+"px")}),y(r).on("input",".wpforms-field-option-row-icon_color input.wpforms-color-picker",function(){var e=y(this),i=e.closest(".wpforms-field-option-row").data("field-id");y(`#wpforms-field-${i} .wpforms-rating-field-icons i.fa`).css("color",F.getValidColorPickerValue(e))}),y(r).on("change",".wpforms-field-option-row-disclaimer_format input",function(){var e=y(this).closest(".wpforms-field-option-row").data("field-id");y("#wpforms-field-"+e+" .description").toggleClass("disclaimer")}),C.on("change",".wpforms-field-option-row-limit_enabled input",function(e){F.updateTextFieldsLimitControls(y(e.target).closest(".wpforms-field-option-row-limit_enabled").data().fieldId,e.target.checked)}),C.on("change",".wpforms-field-option-row-date_disable_past_dates input",function(e){F.updateDisableTodaysDateControls(y(e.target).closest(".wpforms-field-option-row-date_disable_past_dates").data().fieldId,e.target?.checked)}),C.on("change",".wpforms-field-option-row-password-visibility input",F.togglePasswordEyeIcon),C.on("change",".wpforms-field-option-row-password-strength input",function(e){F.updatePasswordStrengthControls(y(e.target).parents(".wpforms-field-option-row-password-strength").data().fieldId,e.target.checked)}),C.on("change",".wpforms-field-option-richtext .wpforms-field-option-row-media_enabled input",F.updateRichTextMediaFieldsLimitControls),C.on("change",".wpforms-field-option-richtext .wpforms-field-option-row-style select",F.updateRichTextStylePreview),C.on("change",".wpforms-field-option-file-upload .wpforms-field-option-row-style select, .wpforms-field-option-file-upload .wpforms-field-option-row-max_file_number input, .wpforms-field-option-file-upload .wpforms-field-option-row-camera input",function(e){F.fieldFileUploadPreviewUpdate(e.target)}),F.numberSliderEvents(C),F.fieldDynamicChoiceToggleImageChoices(),F.fieldDynamicChoiceToggleIconChoices(),C.on("change",".wpforms-field-option-row-show_price_after_labels input",function(){var e=y(this).closest(".wpforms-field-option-group-basic").find(".wpforms-field-option-row-choices .choices-list");F.fieldChoiceUpdate(e.data("field-type"),e.data("field-id"))}),C.on("input",".wpforms-field-option-row-preview-notice textarea",F.updatePreviewNotice).on("change",".wpforms-field-option-row-preview-notice-enable input",F.toggleEntryPreviewNotice).on("wpformsFieldAdd",F.maybeLockEntryPreviewGroupOnAdd).on("wpformsFieldMove",F.maybeLockEntryPreviewGroupOnMove).on("click",".wpforms-entry-preview-block",F.entryPreviewBlockField),F.defaultStateEntryPreviewNotice()},fieldReadOnlyToggleChange(){var e=y(this),i=Number(e.closest(".wpforms-field-option-row").data("field-id")),e=e.is(":checked"),o=y(`#wpforms-field-option-row-${i}-required, #wpforms-field-option-row-${i}-unique_answer`),t=o.filter(".wpforms-field-option-row-required").find("input");F.fieldReadOnlyToggleDependentToggles(o,e),y("#wpforms-field-"+i).toggleClass("readonly",e).toggleClass("required",t.is(":checked"))},fieldReadOnlyToggleDependentToggles(e,s=!0){e.each(function(){var e=y(this),i=e.find(":input"),o=s?i.is(":checked"):null,t=!s&&i.data("enabled-state-checked"),r=s?wp.i18n.__("Disabled because this field is set to Read-Only in the Advanced tab.","wpforms"):"";e.toggleClass("wpforms-disabled",s).find(".wpforms-toggle-control").attr("title",r),i.data("enabled-state-checked",o).prop("checked",t).prop("disabled",s)})},focusOutEvent(){if(null!==k.$focusOutTarget){if(k.$defaultEmail.is(k.$focusOutTarget)){let i=k.$focusOutTarget;if(i.next(".wpforms-alert").remove(),""===i.val())return;y.get(wpforms_builder.ajax_url,{nonce:wpforms_builder.nonce,content:i.val(),action:"wpforms_sanitize_default_email"},function(e){e.success&&(i.val(e.data),i.trigger("input"),e.data||i.after('

        '+wpforms_builder.restricted_default_email+"

        "))})}k.$focusOutTarget=null}},isFieldPreviewActionsDisabled(e){return F.isFormPreviewActionsDisabled(e)||y(e).closest(".wpforms-field").hasClass("ui-sortable-disabled")},isFormPreviewActionsDisabled(e){return y(e).closest(".wpforms-field-wrap").hasClass("ui-sortable-disabled")},fieldGroupToggle(e,i){e=y(e);let o=e.next(".wpforms-add-fields-buttons"),t=o.parent(),r=e.find("i"),s=e.data("group"),l="wpforms_field_group_"+s;"click"===i?(t.hasClass("wpforms-closed")?wpCookies.remove(l):wpCookies.set(l,"true",2592e3),r.toggleClass("wpforms-angle-right"),o.stop().slideToggle("",function(){t.toggleClass("wpforms-closed")})):"load"===i&&(o=e.find(".wpforms-add-fields-buttons"),r=e.find(".wpforms-add-fields-heading i"),s=e.find(".wpforms-add-fields-heading").data("group"),"true"===wpCookies.get("wpforms_field_group_"+s))&&(r.toggleClass("wpforms-angle-right"),o.hide(),e.toggleClass("wpforms-closed"))},updateDescription(e,i){e.hasClass("nl2br")&&(i=i.replace(/\n/g,"
        ")),e.html(i)},defaultStateEntryPreviewNotice(){y(".wpforms-field-option-row-preview-notice-enable input").each(function(){y(this).trigger("change")})},updatePreviewNotice(){var e=y(this),i=wpf.sanitizeHTML(e.val()).trim(),e=e.parent().data("field-id"),e=y("#wpforms-field-"+e).find(".wpforms-entry-preview-notice"),i=i||wpforms_builder.entry_preview_default_notice;F.updateDescription(e,i)},toggleEntryPreviewNotice(){var e=y(this),i=e.closest(".wpforms-field-option").data("field-id"),o=y("#wpforms-field-"+i),i=y("#wpforms-field-option-"+i+" .wpforms-field-option-row-preview-notice"),t=o.find(".wpforms-entry-preview-notice"),o=o.find(".wpforms-alert-info");(e.is(":checked")?(o.hide(),t.show(),i):(i.hide(),t.hide(),o)).show()},fieldDelete(e){var i=y("#wpforms-field-"+e),o=i.data("field-type");"pagebreak"===o&&i.hasClass("wpforms-field-entry-preview-not-deleted")?F.youCantRemovePageBreakFieldPopup():i.hasClass("no-delete")?F.youCantRemoveFieldPopup():F.confirmFieldDeletion(e,o)},youCantRemovePageBreakFieldPopup(){y.alert({title:wpforms_builder.heads_up,content:wpforms_builder.entry_preview_require_page_break,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})},youCantReorderFieldPopup(){console.warn('WARNING! Function "WPFormsBuilder.youCantReorderFieldPopup()" has been deprecated, please use the new "WPForms.Admin.Builder.DragFields.showErrorPopup( { content: wpforms_builder.field_cannot_be_reordered } )" function instead!'),WPForms.Admin.Builder.DragFields.showErrorPopup({content:wpforms_builder.field_cannot_be_reordered})},youCantRemoveFieldPopup(){y.alert({title:wpforms_builder.field_locked,content:wpforms_builder.field_locked_no_delete_msg,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.close,btnClass:"btn-confirm",keys:["enter"]}}})},validationErrorNotificationPopup(e){console.warn('WARNING! Function "WPFormsBuilder.validationErrorNotificationPopup()" has been deprecated.'),y.alert({title:wpforms_builder.heads_up,content:e,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.close,btnClass:"btn-confirm",keys:["enter"]}}})},confirmFieldDeletion(e,i){var o={id:e,message:wpforms_builder.delete_confirm};WPFormsUtils.triggerEvent(C,"wpformsBeforeFieldDeleteAlert",[o,i]).isDefaultPrevented()||y.confirm({title:!1,content:o.message,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){F.fieldDeleteById(e)}},cancel:{text:wpforms_builder.cancel}}})},fieldDeleteById(o,t="",e=400,r=!1){y("#wpforms-field-"+o).fadeOut(e,function(){var e=y(this),i=e.parents(".wpforms-field-layout-columns");t=e.data("field-type"),r&&F.UndoRedo?.preventRecord(!0),C.trigger("wpformsBeforeFieldDelete",[o,t]),e.remove(),y("#wpforms-field-option-"+o).remove(),y(".wpforms-field, .wpforms-title-desc").removeClass("active"),F.fieldTabToggle("add-fields"),F.toggleNoFieldsPreview(),C.trigger("wpformsFieldDelete",[o,t,i]),r&&F.UndoRedo?.preventRecord("continue")})},toggleNoFieldsPreview(){var e=y(".wpforms-field-option"),i=C.find(".wpforms-field-submit"),e=(C.find(".no-fields, .no-fields-preview").remove(),e.length<1&&(k.$sortableFieldsWrap.append(k.$noFieldsPreview.clone()),k.$fieldOptions.append(k.$noFieldsOptions.clone())),Boolean(e.filter(":not(.wpforms-field-option-layout)").length));i.toggle(e)},determineActiveSections(){let t=wpf.getQueryString("section");y(".wpforms-panel").each(function(){var e,i=y(this),o=(e=i,(!(o=t)||!e.hasClass("active")||0===(e=e.find(`.wpforms-panel-sidebar-section[data-section="${o}"]`)).length||e.hasClass("wpforms-panel-sidebar-section-no-access")?null:e)||(e=>{e=e.find(".wpforms-panel-sidebar-section.configured").first();return e.length?e:null})(i)||i.find(".wpforms-panel-sidebar-section:first-of-type"));e=i,(i=o)&&(o=i.data("section"),i.addClass("active"),(i=e.find(".wpforms-panel-content-section-"+o)).length?(i.show().addClass("active"),e.find(".wpforms-panel-content-section-default").toggle("default"===o)):e.find(".wpforms-panel-content-section-default").show().addClass("active"),WPFormsUtils.triggerEvent(C,"wpformsPanelSectionSwitch",o))})},loadEntryPreviewFields(){var e=y("#wpforms-panel-fields .wpforms-field-wrap .wpforms-field-entry-preview");e.length&&e.each(function(){F.lockEntryPreviewFieldsPosition(y(this).data("field-id"))})},fieldEntryPreviewDelete(e,i,o){"entry-preview"===o&&(i=(o=y("#wpforms-field-"+i)).prevAll(".wpforms-field-pagebreak").first(),o=o.nextAll(".wpforms-field-pagebreak").first().data("field-id"),o=y("#wpforms-field-option-"+o),i.removeClass("wpforms-field-not-draggable wpforms-field-entry-preview-not-deleted"),o.find(".wpforms-entry-preview-block").removeClass("wpforms-entry-preview-block"),C.trigger("wpformsFieldDragToggle",[i.data("field-id"),i.data("field-type")]))},maybeLockEntryPreviewGroupOnMove(e,i){i.item.hasClass("wpforms-field-pagebreak")&&F.maybeLockEntryPreviewGroupOnAdd(e,i.item.data("field-id"),"pagebreak")},maybeLockEntryPreviewGroupOnAdd(e,i,o){var t,r,s,l,n;"pagebreak"===o&&(r=(t=y("#wpforms-field-"+i)).prevAll(".wpforms-field-entry-preview,.wpforms-field-pagebreak").first(),n=t.nextAll(".wpforms-field-entry-preview,.wpforms-field-pagebreak").first(),r.hasClass("wpforms-field-entry-preview")||n.hasClass("wpforms-field-entry-preview"))&&(s=(l=y("#wpforms-field-option-"+i+" .wpforms-field-option-row-prev_toggle")).find("input"),n=y("#wpforms-field-option-"+n.data("field-id")+" .wpforms-field-option-row-prev_toggle"),F.UndoRedo?.preventRecord(!0),r.hasClass("wpforms-field-entry-preview")?(s.attr("checked","checked").trigger("change"),l.addClass("wpforms-entry-preview-block"),n.removeClass("wpforms-entry-preview-block")):(s=r.data("field-id"),n=(l=y("#wpforms-field-option-"+s+" .wpforms-field-option-row-prev_toggle")).find("input"),t.addClass("wpforms-field-not-draggable wpforms-field-entry-preview-not-deleted"),C.trigger("wpformsFieldDragToggle",[i,o]),r.removeClass("wpforms-field-not-draggable wpforms-field-entry-preview-not-deleted"),C.trigger("wpformsFieldDragToggle",[s,r.data("field-type")]),r.prevAll(".wpforms-field-entry-preview,.wpforms-field-pagebreak").first().hasClass("wpforms-field-entry-preview")&&(n.attr("checked","checked").trigger("change"),l.addClass("wpforms-entry-preview-block"))),F.UndoRedo?.preventRecord("continue"))},entryPreviewBlockField(e){e.preventDefault(),y.alert({title:wpforms_builder.heads_up,content:wpforms_builder.entry_preview_require_previous_button,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})},isUncheckedEntryPreviewField(e,i){return!("entry-preview"!==e||i&&i.passed)},addEntryPreviewField(e,i){var o,t,r,s=y("#wpforms-add-fields-entry-preview");s.hasClass("wpforms-entry-preview-adding")||(r=y("#wpforms-panel-fields .wpforms-field-wrap > .wpforms-field"),o=i?.position?i.position:r.length,t=F.isEntryPreviewFieldRequiresPageBreakBefore(r,o),r=F.isEntryPreviewFieldRequiresPageBreakAfter(r,o),s.addClass("wpforms-entry-preview-adding"),(i=i||{}).passed=!0,t||r?t?F.addPageBreakAndEntryPreviewFields(i,o):F.addEntryPreviewAndPageBreakFields(i,o):F.fieldAdd("entry-preview",i).done(function(e){F.lockEntryPreviewFieldsPosition(e.data.field.id)}))},addEntryPreviewFieldAfterPageBreak(e){let i=setInterval(function(){2===y("#wpforms-panel-fields .wpforms-field-wrap").find(".wpforms-pagebreak-bottom, .wpforms-pagebreak-top").length&&(F.fieldAdd("entry-preview",e).done(function(e){F.lockEntryPreviewFieldsPosition(e.data.field.id)}),clearInterval(i))},100)},addPageBreakAndEntryPreviewFields(i,o){let t=3<=y("#wpforms-panel-fields .wpforms-field-wrap > .wpforms-field-pagebreak").length;F.fieldAdd("pagebreak",{position:o}).done(function(e){i.position=t?o+1:o+2,F.addEntryPreviewFieldAfterPageBreak(i),F.UndoRedo?.preventRecord(!0);e=y("#wpforms-field-option-"+e.data.field.id).find(".wpforms-field-option-row-prev_toggle");e.find("input").attr("checked","checked").trigger("change"),e.addClass("wpforms-entry-preview-block"),F.UndoRedo?.preventRecord("continue")})},fieldDuplicate(o){let t=y("#wpforms-field-"+o);t.hasClass("no-duplicate")?y.alert({title:wpforms_builder.field_locked,content:wpforms_builder.field_locked_no_duplicate_msg,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.close,btnClass:"btn-confirm",keys:["enter"]}}}):y.confirm({title:!1,content:wpforms_builder.duplicate_confirm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){var e,i;this.$$confirm.prop("disabled",!0),WPFormsUtils.triggerEvent(C,"wpformsBeforeFieldDuplicate",[o,t]).isDefaultPrevented()||(e=F.fieldDuplicateRoutine(o,!0),i=y("#wpforms-field-"+e),F.increaseNextFieldIdAjaxRequest(),WPFormsUtils.triggerEvent(C,"wpformsFieldDuplicated",[o,t,e,i]))}},cancel:{text:wpforms_builder.cancel}}})},increaseNextFieldIdAjaxRequest(){y.post(wpforms_builder.ajax_url,{form_id:w.formID,field_id:k.$nextFieldId.val(),nonce:wpforms_builder.nonce,action:"wpforms_builder_increase_next_field_id"})},getDuplicatedFieldLabel(e,i){return""!==e?e+" "+wpforms_builder.duplicate_copy:wpforms_builder.field+` #${i} `+wpforms_builder.duplicate_copy},fieldDuplicateRoutine(e,i=!0,o=null){var t=y("#wpforms-field-"+e),r=y("#wpforms-field-option-"+e),s=k.$sortableFieldsWrap.find(">.active"),l=k.$fieldOptions.find(">:visible"),n=l.find(">.active"),a=t.data("field-type"),d=r.attr("class"),p=F.dropdownField.helpers.isModernSelect(t.find("> .choices .primary-input"));wpf.restoreTooltips(r),p&&F.dropdownField.helpers.convertModernToClassic(e);let f=r.html(),c=t.clone(),m=parseInt(k.$nextFieldId.val(),10),w=y(`#wpforms-field-option-${e}-label`),u=(w.length?w:y(`#wpforms-field-option-${e}-name`)).val(),h=m+1,g={};var b=F.getDuplicatedFieldLabel(u,e),v=(g.fieldOptionsID=new RegExp("ID #"+e,"g"),g.fieldID=new RegExp("fields\\["+e+"\\]","g"),g.dataFieldID=new RegExp('data-field-id="'+e+'"',"g"),g.referenceID=new RegExp('data-reference="'+e+'"',"g"),g.elementID=new RegExp('\\b(id|for)="wpforms-(.*?)'+e+'(.*?)"',"ig"),y("#wpforms-field-"+o)),t=((v=v.length?v:t).after(c),s.removeClass("active"),c.addClass("active").attr({id:"wpforms-field-"+m,"data-field-id":m}),g.elementIdReplace=function(e,i,o,t){return`${i}="wpforms-${o}${m}${t}"`},f=(f=(f=(f=(f=f.replace(g.fieldOptionsID,"ID #"+m)).replace(g.fieldID,`fields[${m}]`)).replace(g.dataFieldID,`data-field-id="${m}"`)).replace(g.referenceID,`data-reference="${m}"`)).replace(g.elementID,g.elementIdReplace),l.hide(),y("#wpforms-field-option-"+o));(t=t.length?t:r).after(`
        ${f}
        `);let _=y("#wpforms-field-option-"+m);s.data("field-id")===e&&n.length&&(v=n.attr("class").match(/wpforms-field-option-group-\S*/i)[0],l=_.find(">."+v),_.find(">").removeClass("active"),l.addClass("active")),s.data("field-id")!==e&&n.length&&(_.find(">").removeClass("active"),_.find(">.wpforms-field-option-group-basic").addClass("active")),r.find(":input").each(function(){var e=y(this),i=e.attr("name");if(!i)return"continue";var i=i.replace(g.fieldID,`fields[${m}]`),o=e.attr("type");"checkbox"===o||"radio"===o?e.is(":checked")?_.find(`[name="${i}"]`).prop("checked",!0).attr("checked","checked"):_.find(`[name="${i}"]`).prop("checked",!1).attr("checked",!1):e.is("select")?e.find("option:selected").length&&(o=e.find("option:selected").val(),_.find(`[name="${i}"]`).find(`[value="${o}"]`).prop("selected",!0)):""===(o=e.val())&&e.hasClass("wpforms-money-input")?_.find(`[name="${i}"]`).val(wpf.numberFormat("0",wpforms_builder.currency_decimals,wpforms_builder.currency_decimal,wpforms_builder.currency_thousands)):_.find(`[name="${i}"]`).val(o)}),_.find(".wpforms-field-option-hidden-id").val(m),k.$nextFieldId.val(h);o=y("html"===a?`#wpforms-field-option-${m}-name`:`#wpforms-field-option-${m}-label`);return i&&o.val(b).trigger("input"),F.UndoRedo?.preventRecord(!0),C.trigger("wpformsFieldAdd",[m,a,{},c,_]),F.UndoRedo?.preventRecord("continue"),wpf.initTooltips(),p&&(F.dropdownField.helpers.convertClassicToModern(e),F.dropdownField.helpers.convertClassicToModern(m)),F.fieldChoiceUpdate(c.data("field-type"),m),F.loadColorPickers(),m},addEntryPreviewAndPageBreakFields(e,o){F.fieldAdd("entry-preview",e).done(function(e){let i=e.data.field.id;F.fieldAdd("pagebreak",{position:o+1}).done(function(e){F.lockEntryPreviewFieldsPosition(i);e=y("#wpforms-field-"+e.data.field.id).nextAll(".wpforms-field-pagebreak, .wpforms-field-entry-preview").first();e.hasClass("wpforms-field-entry-preview")&&F.lockEntryPreviewFieldsPosition(e.data("field-id"))})})},lockEntryPreviewFieldsPosition(e){var i=y("#wpforms-field-"+e),o=i.prevAll(".wpforms-field-pagebreak:not(.wpforms-pagebreak-bottom)").first(),t=i.nextAll(".wpforms-field-pagebreak").first().data("field-id"),t=y("#wpforms-field-option-"+t).find(".wpforms-field-option-row-prev_toggle"),r=t.find("input");F.UndoRedo?.preventRecord(!0),i.addClass("wpforms-field-not-draggable"),o.addClass("wpforms-field-not-draggable wpforms-field-entry-preview-not-deleted"),r.prop("checked","checked").trigger("change"),t.addClass("wpforms-entry-preview-block"),y("#wpforms-add-fields-entry-preview").removeClass("wpforms-entry-preview-adding"),F.UndoRedo?.preventRecord("continue"),C.trigger("wpformsFieldDragToggle",[e,i.data("field-type")]),C.trigger("wpformsFieldDragToggle",[o.data("field-id"),o.data("field-type")])},isEntryPreviewFieldRequiresPageBreakBefore(e,i){e=e.slice(0,i).filter(".wpforms-field-pagebreak,.wpforms-field-entry-preview");let o=!0;return e.length&&y(e.get().reverse()).each(function(){var e=y(this);return!e.hasClass("wpforms-field-entry-preview")&&(e.hasClass("wpforms-field-pagebreak")&&!e.hasClass("wpforms-field-stick")?o=!1:void 0)}),o},isEntryPreviewFieldRequiresPageBreakAfter(e,i){e=e.slice(i).filter(".wpforms-field-pagebreak,.wpforms-field-entry-preview");let o=Boolean(e.length);return e.length&&e.each(function(){var e=y(this);return!e.hasClass("wpforms-field-entry-preview")&&(e.hasClass("wpforms-field-pagebreak")?o=!1:void 0)}),o},fieldAdd(t,r){var e=y("#wpforms-add-fields-"+t);if(!(e.hasClass("upgrade-modal")||e.hasClass("education-modal")||e.hasClass("warning-modal")))if(["captcha_turnstile","captcha_hcaptcha","captcha_recaptcha","captcha_none"].includes(t))F.captchaUpdate();else{if(a=!0,WPForms.Admin.Builder.DragFields?.disableDragAndDrop(),F.disableFormActions(),!F.isUncheckedEntryPreviewField(t,r))return r=y.extend({},{position:"bottom",$sortable:"base",placeholder:!1,scroll:!0,defaults:!1},r),e={action:"wpforms_new_field_"+t,id:w.formID,type:t,defaults:r.defaults,nonce:wpforms_builder.nonce},y.post(wpforms_builder.ajax_url,e,function(e){var i,o;e.success?(i=y(e.data.preview),o=y(e.data.options),a=!1,F.fieldAddToDOM(e.data.field.id,t,r,i,o)):wpf.debug("Add field AJAX call is unsuccessful:",e)}).fail(function(e){a=!1,wpf.debug("Add field AJAX call failed:",e.responseText)}).always(function(){a||(WPForms.Admin.Builder.DragFields?.enableDragAndDrop(),F.enableFormActions())});F.addEntryPreviewField(t,r)}},fieldAddToDOM(e,i,o,t,r){var s=k.$sortableFieldsWrap;let l=o.$sortable;a=!1,t.css("display","none"),o.placeholder&&o.placeholder.remove(),"default"!==o.$sortable&&o.$sortable.length||(l=s.find(".wpforms-fields-sortable-default")),"base"!==o.$sortable&&l.length||(l=s),C.trigger("wpformsBeforeFieldAdd",[e,i,o,t,r]);s=WPFormsUtils.triggerEvent(C,"wpformsBeforeFieldAddToDOM",[o,t,r,l]);s.isDefaultPrevented()||(s.skipAddFieldToBaseLevel||F.fieldAddToBaseLevel(o,t,r),t.fadeIn(),F.toggleNoFieldsPreview(),o.scroll&&o.position.length&&F.scrollPreviewToField(e),k.$nextFieldId.val(e+1),wpf.initTooltips(),F.loadColorPickers(),F.toggleAllOptionGroups(),C.trigger("wpformsFieldAdd",[e,i,o,t,r]))},fieldAddToBaseLevel(e,i,o){var t,r=k.$sortableFieldsWrap,s=r.children(":not(.wpforms-field-drag-pending, .no-fields-preview)"),l=s.length,n=k.$fieldOptions;"top"===e.position?(r.prepend(i),n.prepend(o)):(t=s.last(),"bottom"!==e.position||t.length&&t.hasClass("wpforms-field-stick")?("bottom"===e.position&&(e.position=l),e.position===l&&t.length&&t.hasClass("wpforms-field-stick")?(l=t.data("field-id"),t.before(i),n.find("#wpforms-field-option-"+l).before(o)):(t=s.eq(e.position)).length?(l=t.data("field-id"),t.before(i),n.find("#wpforms-field-option-"+l).before(o)):(r.append(i),n.append(o))):(r.append(i),n.append(o)))},scrollPreviewToField(e){var e=y("#wpforms-field-"+e),i=k.$fieldsPreviewWrap.scrollTop(),o=e.closest(".wpforms-field-layout");let t=e.position().top;e=(t=o.length?o.position().top+t+20:t)>i?t-i:t+i;k.$fieldsPreviewWrap.scrollTop(e)},captchaUpdate(){var e={action:"wpforms_update_field_captcha",id:w.formID,nonce:wpforms_builder.nonce};return y.post(wpforms_builder.ajax_url,e,function(t){if(t.success){let e={title:!1,content:!1,icon:"fa fa-exclamation-circle",type:"orange",boxWidth:"450px",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}},i=y("#wpforms-panel-field-settings-recaptcha"),o=t.data.current;i.data("provider",t.data.provider),"configured_not_enabled"!==o&&"configured_enabled"!==o||(o=i.prop("checked")?"configured_enabled":"configured_not_enabled",e.buttons.confirm.action=function(){i.prop("checked","configured_not_enabled"===o).trigger("change")}),e.title=t.data.cases[o].title,e.content=t.data.cases[o].content,t.data.cases[o].cancel&&(e.buttons.cancel={text:wpforms_builder.cancel,keys:["esc"]}),y.confirm(e)}else console.log(t)}).fail(function(e){console.log(e.responseText)})},disableDragAndDrop(){console.warn('WARNING! Function "WPFormsBuilder.disableDragAndDrop()" has been deprecated, please use the new "WPForms.Admin.Builder.DragFields.disableDragAndDrop()" function instead!'),WPForms.Admin.Builder.DragFields.disableDragAndDrop()},enableDragAndDrop(){console.warn('WARNING! Function "WPFormsBuilder.enableDragAndDrop()" has been deprecated, please use the new "WPForms.Admin.Builder.DragFields.enableDragAndDrop()" function instead!'),WPForms.Admin.Builder.DragFields.enableDragAndDrop()},disableFormActions(){y.each([k.$previewButton,k.$embedButton,k.$saveButton,k.$exitButton],function(e,i){i.prop("disabled",!0).addClass("wpforms-disabled")}),F.UndoRedo?.preventRun(!0)},enableFormActions(){y.each([k.$previewButton,k.$embedButton,k.$saveButton,k.$exitButton],function(e,i){i.prop("disabled",!1).removeClass("wpforms-disabled")}),F.UndoRedo?.preventRun(!1)},fieldSortable(){console.warn('WARNING! Function "WPFormsBuilder.fieldSortable()" has been deprecated, please use the new "WPForms.Admin.Builder.DragFields.initSortableFields()" function instead!'),WPForms.Admin.Builder.DragFields.initSortableFields()},fieldDragDisable(e,i=!0){console.warn('WARNING! Function "WPFormsBuilder.fieldDragDisable()" has been deprecated, please use the new "WPForms.Admin.Builder.DragFields.fieldDragDisable()" function instead!'),WPForms.Admin.Builder.DragFields.fieldDragDisable(e,i)},fieldDragEnable(e){console.warn('WARNING! Function "WPFormsBuilder.fieldDragEnable()" has been deprecated, please use the new "WPForms.Admin.Builder.DragFields.fieldDragEnable()" function instead!'),WPForms.Admin.Builder.DragFields.fieldDragEnable(e)},fieldChoiceAdd(e,i){e.preventDefault();var e=y(i),i=e.closest("li"),o=i.closest("ul"),t=i.find("input.default").is(":checked"),e=e.closest(".wpforms-field-option-row-choices").data("field-id");F.triggerBuilderEvent("wpformsFieldChoiceBeforeCloning",[e,i]);let r=o.attr("data-next-id");var s=o.data("field-type"),l=i.clone().insertAfter(i);l.attr("data-key",r),l.find(".wpforms-icon-select .ic-fa-preview").removeClass().addClass("ic-fa-preview ic-fa-"+wpforms_builder.icon_choices.default_icon_style+" ic-fa-"+wpforms_builder.icon_choices.default_icon),l.find(".wpforms-icon-select .ic-fa-preview + span").text(wpforms_builder.icon_choices.default_icon),l.find(".preview").empty(),l.find(".wpforms-image-upload-add").show(),l.find(".wpforms-money-input").trigger("focusout"),l.find("input, select").each(function(){var e=y(this),i=e.attr("type");e.attr("name",y(this).attr("name").replace(/\[choices]\[(\d+)]/g,`[choices][${r}]`)),"radio"===i||"checkbox"===i?e.prop("checked",!1):e.val("")}),l.find(".wpforms-icon-select input.source-icon").val(wpforms_builder.icon_choices.default_icon),l.find(".wpforms-icon-select input.source-icon-style").val(wpforms_builder.icon_choices.default_icon_style),!0===t&&i.find("input.default").prop("checked",!0),r++,o.attr("data-next-id",r),F.fieldChoiceUpdate(s,e),F.triggerBuilderEvent("wpformsFieldChoiceAdd",[e,o,"single"])},fieldChoiceDelete(e,i){e.preventDefault();let o=y(i),t=o.parent().parent(),r=t.find("li").not(".wpforms-choice-other-option").length,s={id:t.data("field-id"),choiceId:o.closest("li").data("key"),message:""+wpforms_builder.delete_choice_confirm+"",trigger:!1};if(C.trigger("wpformsBeforeFieldDeleteAlert",[s]),1===r)F.fieldChoiceDeleteAlert();else{let e=function(){o.parent().remove(),F.fieldChoiceUpdate(t.data("field-type"),t.data("field-id")),C.trigger("wpformsFieldChoiceDelete",[t.data("field-id")])};s.trigger?y.confirm({title:!1,content:s.message,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){e()}},cancel:{text:wpforms_builder.cancel}}}):e()}},fieldChoiceDeleteAlert(){y.alert({title:!1,content:wpforms_builder.error_choice,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})},fieldChoiceSortable(t,e=void 0){y(e=void 0!==e?e:".wpforms-field-option-"+t+" .wpforms-field-option-row-choices ul").one("mouseenter",function(){y(this).sortable({items:"li:not(.not-draggable)",axis:"y",delay:100,opacity:.6,handle:".move",start(e,i){C.trigger("wpformsBeforeFieldChoiceDragStart",i)},stop(e,i){var o=i.item.parent().data("field-id");F.fieldChoiceUpdate(t,o),C.trigger("wpformsFieldChoiceMove",i)},update(){}})})},fieldChoiceLabel(e,i){var o=["payment-multiple","payment-checkbox"].includes(e.settings.type),t=e.settings.choices_icons||e.settings.choices_images,r=void 0===e.settings.choices[i].label||0===e.settings.choices[i].label.length;if(r&&!o&&t)return"";t=o?wpforms_builder.payment_choice_empty_label_tpl:wpforms_builder.choice_empty_label_tpl;let s=r?t.replace("{number}",i):wpf.sanitizeHTML(e.settings.choices[i].label,wpforms_builder.allowed_label_html_tags);return e.settings.show_price_after_labels&&(s+=" - "+wpf.amountFormatCurrency(e.settings.choices[i].value)),s},fieldChoiceUpdate:(p,t,r=-1)=>{let f=F.dropdownField.helpers.isDynamicChoices(t);if(!F.replaceChoicesWithTemplate(p,t,f)){-1===r&&(r=F.settings.choicesLimitLong),"payment-select"===p&&(p="select");let s=y("#wpforms-field-"+t+" .primary-input"),l="",e=("select"===p?f||(l='',s.find("option").not(".placeholder").remove()):"radio"!==p&&"checkbox"!==p&&"gdpr-checkbox"!==p||(p="gdpr-checkbox"===p?"checkbox":p,s.find("li").remove(),l='
      3. {label}
      4. '),y(`#wpforms-field-option-row-${t}-choices .choices-list`)),i=e.find("li").slice(0,r),o=!!e.find("input.default:checked").length,n=[],a=y("#wpforms-field-option-"+t+"-show_price_after_labels").prop("checked"),d=F.dropdownField.helpers.isModernSelect(s);var c;i.get().forEach(function(e){var e=y(e),i=e.find("input.value").val(),o=e.data("key");let t=e.find("input.label").val()?.trim()??"",r;if(t=""!==(t=wpf.sanitizeHTML(t,wpforms_builder.allowed_label_html_tags))?t:wpforms_builder.choice_empty_label_tpl.replace("{number}",o),t+=a&&i?" - "+wpf.amountFormatCurrency(i):"",d?n.push({value:t,label:t}):f||(r=y(l.replace(/{label}/g,t)),s.append(r)),!0===e.find("input.default").is(":checked"))switch(p){case"select":d?n[n.length-1].selected=!0:F.setClassicSelectedChoice(r);break;case"radio":case"checkbox":r.find("input").prop("checked","true")}}),d&&(r=s.prop("multiple")?"input.choices__input":".choices__inner .choices__placeholder",c=F.dropdownField.helpers.getInstance(s),f||c.removeActiveItems(),c.setChoices(n,"value","label",!0),F.dropdownField.helpers.update(t,f),s.closest(".choices").find(r).toggleClass("wpforms-hidden",o))}},replaceChoicesWithTemplate:(e,i,o)=>{if("radio"!==e&&"checkbox"!==e&&"payment-multiple"!==e&&"payment-checkbox"!==e)return!1;var t=wpf.getChoicesOrder(i),r=wp.template("wpforms-field-preview-checkbox-radio-payment-multiple");let s=wpf.getField(i),l={},n=t.slice(0,F.settings.choicesLimit),a={settings:s,order:n,type:"radio"};return s.choices_icons&&(a.settings.choices_icons_color=F.getValidColorPickerValue(y("#wpforms-field-option-"+i+"-choices_icons_color"))),n.forEach(function(e){l[e]=s.choices[e]}),s.choices=l,"checkbox"!==e&&"payment-checkbox"!==e||(a.type="checkbox"),o||y("#wpforms-field-"+i).find("ul.primary-input").replaceWith(r(a)),F.firstNChoicesAlert(i,t.length),!0},setClassicSelectedChoice(e){void 0!==e&&e.prop("selected","true")},fieldChoiceBulkAddToggle(i){var i=y(i),o=i.closest("label");if(i.hasClass("bulk-add-showing")){let e=o.next(".bulk-add-display");e.slideUp(400,function(){e.remove()}),i.find("span").text(wpforms_builder.bulk_add_show)}else{let e='
        ';for(var t in e=e+('

        '+wpforms_builder.bulk_add_heading+' '+wpforms_builder.bulk_add_presets_show+"

        ")+"")+(''))+('")+"
        ",o.after(e),o.next(".bulk-add-display").slideDown(400,function(){y(this).find("textarea").trigger("focus")}),i.find("span").text(wpforms_builder.bulk_add_hide)}i.toggleClass("bulk-add-showing")},fieldChoiceBulkAddInsert(e){var i,e=y(e),o=e.closest(".wpforms-field-option-row"),t=o.find("textarea").val().split("\n"),r=o.find(".choices-list"),s=r.find("li:first-of-type"),l=o.data("field-id"),n=r.data("field-type"),s=(F.triggerBuilderEvent("wpformsFieldChoiceBeforeCloning",[l,s]),s.clone().wrap("
        ").parent());let a,d=Number(r.attr("data-next-id")),p="";for(i in e.prop("disabled",!0).html(e.html()+" "+w.spinner),s.find("input.value,input.label").attr("value",""),s.find("input.default").attr("checked",!1),s.find("input.source-icon").attr("value",wpforms_builder.icon_choices.default_icon),s.find("input.source-icon-style").attr("value",wpforms_builder.icon_choices.default_icon_style),s.find(".ic-fa-preview").removeClass().addClass(`ic-fa-preview ic-fa-${wpforms_builder.icon_choices.default_icon_style} ic-fa-`+wpforms_builder.icon_choices.default_icon),s.find(".ic-fa-preview + span").text(wpforms_builder.icon_choices.default_icon),a=s.html(),t)if(t.hasOwnProperty(i)){var f=wpf.sanitizeHTML(t[i]).trim().replace(/"/g,""");let e=a;e=(e=(e=(e=e.replace(/\[choices]\[(\d+)]/g,"[choices]["+d+"]")).replace(/data-key="(\d+)"/g,'data-key="'+d+'"')).replace(/value="" class="label"/g,'value="'+f+'" class="label"')).replace(/class="label" type="text" value=""/g,'class="label" type="text" value="'+f+'"'),p+=e,d++}r.attr("data-next-id",d);e=r.find("li.wpforms-choice-other-option").first();e.length?e.before(p):r.append(p),F.fieldChoiceUpdate(n,l,d),F.triggerBuilderEvent("wpformsFieldChoiceAdd",[l,r,"bulk-add"]),F.fieldChoiceBulkAddToggle(o.find(".toggle-bulk-add-display"))},triggerBuilderEvent(e,i){C.trigger(e,i)},fieldTabToggle(e,i){return!!F.shouldContinueFieldTabToggle(e,i)&&!WPFormsUtils.triggerEvent(C,"wpformsFieldTabToggle",[e,i]).isDefaultPrevented()&&(y(".wpforms-tab a").removeClass("active"),y(".wpforms-field, .wpforms-title-desc").removeClass("active"),void("add-fields"===e?(k.$addFieldsTab.addClass("active"),y(".wpforms-field-options").hide(),y(".wpforms-add-fields").show()):(y("#field-options a").addClass("active"),"field-options"===e?((i=y(".wpforms-field").first()).addClass("active"),e=i.data("field-id")):y("#wpforms-field-"+e).addClass("active"),y(".wpforms-field-option").hide(),y("#wpforms-field-option-"+e).show(),y(".wpforms-add-fields").hide(),y(".wpforms-field-options").show(),C.trigger("wpformsFieldOptionTabToggle",[e]))))},shouldContinueFieldTabToggle(e,i){if(!i)return!0;let o=!0;return C.trigger("wpformsFieldTabToggleBefore",[e,i,function(e){o=e}]),o},fieldPagebreakAdd(e,i,o,t){if("pagebreak"===o&&!t?.isUndoRedo){let e;w.pagebreakTop?w.pagebreakBottom||(w.pagebreakBottom=!0,e={position:"bottom",scroll:!1,defaults:{position:"bottom"}},F.fieldAdd("pagebreak",e).done(function(e){w.pagebreakBottom=e.data.field.id;var i=y("#wpforms-field-"+e.data.field.id);y("#wpforms-field-option-"+e.data.field.id).find(".wpforms-field-option-group").addClass("wpforms-pagebreak-bottom"),i.addClass("wpforms-field-stick wpforms-pagebreak-bottom")})):(w.pagebreakTop=!0,e={position:"top",scroll:!1,defaults:{position:"top",nav_align:"left"}},F.fieldAdd("pagebreak",e).done(function(e){w.pagebreakTop=e.data.field.id;var i=y("#wpforms-field-"+e.data.field.id);y("#wpforms-field-option-"+e.data.field.id).find(".wpforms-field-option-group").addClass("wpforms-pagebreak-top"),i.addClass("wpforms-field-stick wpforms-pagebreak-top")}))}},updatePagebreaksState(){w.pagebreakTop=y(".wpforms-pagebreak-top").length,w.pagebreakBottom=y(".wpforms-pagebreak-bottom").length},fieldPagebreakDelete(e,i,o){var t,r,s;"pagebreak"!==o||y("#wpforms-panel-fields .wpforms-field-pagebreak").not(".wpforms-pagebreak-top, .wpforms-pagebreak-bottom").length||(r=(t=(o=y("#wpforms-panel-fields .wpforms-preview-wrap")).find(".wpforms-pagebreak-top")).data("field-id"),s=(o=o.find(".wpforms-pagebreak-bottom")).data("field-id"),t.remove(),y("#wpforms-field-option-"+r).remove(),w.pagebreakTop=!1,o.remove(),y("#wpforms-field-option-"+s).remove(),w.pagebreakBottom=!1)},fieldPageBreakInitDisplayPrevious(e){var i=e.data("field-id"),o=y("#wpforms-field-option-row-"+i+"-prev_toggle"),i=y("#wpforms-field-option-row-"+i+"-prev"),t=e.find(".wpforms-pagebreak-prev");0":">")+i[o].label+"",e.append(r)}else for(o in t="radio",n.hasClass("wpforms-field-checkbox")&&(t="checkbox"),e.empty(),i)r='
      5. ":">")+i[o].label+"
      6. ",e.append(r);l.find("ul").removeClass("wpforms-hidden"),l.find(".wpforms-alert").addClass("wpforms-hidden"),e.removeClass("wpforms-hidden")}wpf.fieldOptionLoading(i,!0)}}},fieldDynamicChoiceSource(e){let i=y(e),o=i.parent(),t=i.val(),r=o.data("field-id"),s=y("#wpforms-builder-form").data("id"),l=y("#wpforms-field-option-row-"+r+"-choices"),n=y("#wpforms-field-"+r),a=y(`#wpforms-field-option-${r}-dynamic_choices option:selected`).val(),d=20;wpf.fieldOptionLoading(o);e={type:a,source:t,field_id:r,form_id:s,action:"wpforms_builder_dynamic_source",nonce:wpforms_builder.nonce};y.post(wpforms_builder.ajax_url,e,function(i){if(i.success){if(l.find(".dynamic-name").text(i.data.source_name),l.find(".dynamic-type").text(i.data.type_name),l.find("ul").addClass("wpforms-hidden"),l.find(".wpforms-alert").removeClass("wpforms-hidden"),F.fieldDynamicChoiceSourceItems(n,i.data.items),n.hasClass("wpforms-field-select")&&(d=200),n.find(".wpforms-notice-dynamic-empty").remove(),Number(i.data.total)>d){let e=wpforms_builder.dynamic_choices.limit_message;e=(e=(e=(e=e.replace("{source}",i.data.source_name)).replace("{type}",i.data.type_name)).replace("{limit}",d)).replace("{total}",i.data.total),y.alert({title:wpforms_builder.heads_up,content:e,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})}F.firstNChoicesAlert(r,i.data.total),0===Number(i.data.total)&&F.emptyChoicesNotice(r,i.data.source_name,i.data.type)}else console.log(i);wpf.fieldOptionLoading(o,!0)}).fail(function(e){console.log(e.responseText)})},fieldDynamicChoiceSourceItems(i,o){var t=i.find(".primary-input");let r=0;if(i.hasClass("wpforms-field-select"))F.dropdownField.helpers.isModernSelect(t)?F.fieldDynamicChoiceSourceForModernSelect(t,o):F.fieldDynamicChoiceSourceForClassicSelect(t,o);else{let e="radio";for(r in i.hasClass("wpforms-field-checkbox")&&(e="checkbox"),t.empty(),o)t.append('
      7. '+wpf.sanitizeHTML(o[r])+"
      8. ")}},fieldDynamicChoiceSourceForModernSelect(e,i){var o=F.dropdownField.helpers.getInstance(e),t=e.closest(".wpforms-field").data().fieldId;o.destroy(),F.dropdownField.helpers.updatePlaceholderChoice(o,t),F.fieldDynamicChoiceSourceForClassicSelect(e,i),F.dropdownField.events.choicesInit(e)},fieldDynamicChoiceSourceForClassicSelect(e,i){let o=0;var t=i.length;for(e.find("option").not(".placeholder").remove();o'+r+"")}e.toggleClass("wpforms-hidden",!t)},fieldDynamicChoiceToggleImageChoices(){y(`#wpforms-builder .wpforms-field-options .wpforms-field-option-checkbox, + #wpforms-builder .wpforms-field-options .wpforms-field-option-radio`).each(function(e,i){var i=y(i),o=i.find(".wpforms-field-option-row-dynamic_choices select").val(),o=void 0!==o&&""!==o,t=i.find(".wpforms-field-option-row-choices_images input").is(":checked");i.find(".wpforms-field-option-row-choices_images").toggleClass("wpforms-hidden",o),t&&!o||i.find(".wpforms-field-option-row-choices_images_style").addClass("wpforms-hidden")})},fieldDynamicChoiceToggleIconChoices(){y(`#wpforms-builder .wpforms-field-options .wpforms-field-option-checkbox, + #wpforms-builder .wpforms-field-options .wpforms-field-option-radio`).each(function(e,i){var i=y(i),o=i.find(".wpforms-field-option-row-dynamic_choices select").val(),o=void 0!==o&&""!==o,t=i.find(".wpforms-field-option-row-choices_icons input").is(":checked");i.find(".wpforms-field-option-row-choices_icons").toggleClass("wpforms-hidden",o),t&&!o||(i.find(".wpforms-field-option-row-choices_icons_color").addClass("wpforms-hidden"),i.find(".wpforms-field-option-row-choices_icons_size").addClass("wpforms-hidden"),i.find(".wpforms-field-option-row-choices_icons_style").addClass("wpforms-hidden"))})},fieldDynamicChoiceToggleOtherOption(){y("#wpforms-builder .wpforms-field-options .wpforms-field-option-radio").each(function(e,i){var i=y(i),o=i.find(".wpforms-field-option-row-dynamic_choices select"),t=o.val(),t=void 0!==t&&""!==t,r=i.find(".wpforms-field-option-row-choices_other input").is(":checked"),o=o.closest(".wpforms-field-option-row").data("field-id"),s=y("#wpforms-field-option-"+o).find(".wpforms-field-option-row-choices_other input");t?s.is(":checked")&&s.prop("checked",!1).trigger("change"):WPForms.Admin.Builder.MultipleChoices.updatePreviewState(o),i.find(".wpforms-field-option-row-choices_other").toggleClass("wpforms-hidden",t),r&&!t||(i.find(".wpforms-field-option-row-other_placeholder").addClass("wpforms-hidden"),i.find(".wpforms-field-option-row-other_size").addClass("wpforms-hidden"))})},firstNChoicesAlert:(e,i)=>{var o,t,r,e=y("#wpforms-field-"+e);e.hasClass("wpforms-field-select")||(o=wp.template("wpforms-choices-limit-message"),t={total:i},r=F.settings.choicesLimit,e.find(".wpforms-alert-dynamic").remove(),r .layout-selector-display`);if(!e.length){var t,r={"layout-1":[{class:"one-half",data:"wpforms-one-half wpforms-first"},{class:"one-half",data:"wpforms-one-half"}],"layout-2":[{class:"one-third",data:"wpforms-one-third wpforms-first"},{class:"one-third",data:"wpforms-one-third"},{class:"one-third",data:"wpforms-one-third"}],"layout-3":[{class:"one-fourth",data:"wpforms-one-fourth wpforms-first"},{class:"one-fourth",data:"wpforms-one-fourth"},{class:"one-fourth",data:"wpforms-one-fourth"},{class:"one-fourth",data:"wpforms-one-fourth"}],"layout-4":[{class:"one-third",data:"wpforms-one-third wpforms-first"},{class:"two-third",data:"wpforms-two-thirds"}],"layout-5":[{class:"two-third",data:"wpforms-two-thirds wpforms-first"},{class:"one-third",data:"wpforms-one-third"}],"layout-6":[{class:"one-fourth",data:"wpforms-one-fourth wpforms-first"},{class:"one-fourth",data:"wpforms-one-fourth"},{class:"two-fourth",data:"wpforms-two-fourths"}],"layout-7":[{class:"two-fourth",data:"wpforms-two-fourths wpforms-first"},{class:"one-fourth",data:"wpforms-one-fourth"},{class:"one-fourth",data:"wpforms-one-fourth"}],"layout-8":[{class:"one-fourth",data:"wpforms-one-fourth wpforms-first"},{class:"two-fourth",data:"wpforms-two-fourths"},{class:"one-fourth",data:"wpforms-one-fourth"}]};let e,i=`
        +

        ${wpforms_builder.layout_selector_layout}

        +
        `;for(t in r){for(var s in e=r[t],i+='
        ',e)i+=``;i+="
        "}i+="
        ",y(`#wpforms-field-option-row-${o}-css > label`).after(i)}},fieldLayoutSelectorLayout(e){e=y(e);e.parent().find(".layout-selector-display-layout").not(e).remove(),e.parent().find(".heading").text(wpforms_builder.layout_selector_column),e.toggleClass("layout-selector-display-layout layout-selector-display-columns")},fieldLayoutSelectorInsert(e){let i=y(e),o=i.closest(".layout-selector-display"),t=o.parent(),r=t.data("field-id"),s=t.find("label"),l=t.find("input[type=text]"),n=i.data("classes"),a=l.val();a&&(["wpforms-one-half","wpforms-first","wpforms-one-third","wpforms-one-fourth","wpforms-two-thirds","wpforms-two-fourths"].forEach(e=>{a=a.replace(new RegExp("\\b"+e+"\\b","gi"),"")}),a=a.replace(/\s\s+/g," ").trim(),n+=" "+a),l.val(n),o.slideUp(400,function(){o.remove(),F.fieldLayoutSelectorInit(r)}),s.find(".toggle-layout-selector-display").removeClass("layout-selector-showing"),s.find(".toggle-layout-selector-display span").text(wpforms_builder.layout_selector_show)},toggleOrderSummaryConfirmation(e,i,o){"payment-total"===o&&y(".wpforms-confirmation").each(function(){y(this).find(".wpforms-panel-field-confirmations-message_order_summary").closest(".wpforms-panel-field").toggle(0!==y("#wpforms-panel-fields .wpforms-field-payment-total").length)})},bindUIActionsSettings(){C.on("click","#wpforms-panel-fields .wpforms-title-desc, #wpforms-panel-fields .wpforms-field-submit-button, .wpforms-center-form-name",function(e){e.preventDefault(),F.panelSwitch("settings"),(y(this).hasClass("wpforms-center-form-name")||y(this).hasClass("wpforms-title-desc"))&&setTimeout(function(){y("#wpforms-panel-field-settings-form_title").trigger("focus")},300)}),C.on("click",".wpforms-field-pagebreak-last button",function(e){e.preventDefault(),F.panelSwitch("settings"),y("#wpforms-panel-field-settings-pagebreak_prev").trigger("focus")}),C.on("click",".wpforms-panel-content-also-available-item-add-captcha",function(e){e.preventDefault();e=C.find("#wpforms-add-fields-captcha");e.data("action")?e.trigger("click"):F.fieldAdd("captcha",{}).done(function(e){F.panelSwitch("fields"),y("#wpforms-field-"+e.data.field.id).trigger("click")})}),C.on("input","#wpforms-panel-field-settings-pagebreak_prev",function(){y(".wpforms-field-pagebreak-last button").text(y(this).val())}),C.on("input","#wpforms-panel-field-settings-form_title, #wpforms-setup-name",function(){var e=y(this).val().toString().trim();y(".wpforms-preview .wpforms-form-name").text(e),y(".wpforms-center-form-name.wpforms-form-name").text(e),F.trimFormTitle()}),C.on("input","#wpforms-panel-field-settings-form_desc",function(){y(".wpforms-form-desc").text(y(this).val())}),C.on("input","#wpforms-panel-field-settings-submit_text",function(){var e=y(this).val()||wpforms_builder.submit_text;y(".wpforms-field-submit input[type=submit]").val(e)}),C.on("change","#wpforms-panel-field-settings-recaptcha",function(){F.captchaToggle()}),C.on("change",".wpforms-panel-field-confirmations-type",function(){F.confirmationFieldsToggle(y(this))}),C.on("change",".wpforms-panel-field-confirmations-message_entry_preview",F.confirmationEntryPreviewToggle),C.on("change","#wpforms-panel-field-settings-notification_enable",F.notificationToggle),C.on("click",".wpforms-builder-settings-block-add",function(e){e.preventDefault(),wpforms_builder.pro&&F.settingsBlockAdd(y(this))}),C.on("click",".wpforms-builder-settings-block-edit",function(e){e.preventDefault();e=y(this);e.parents(".wpforms-builder-settings-block-header").find(".wpforms-builder-settings-block-name").hasClass("editing")?F.settingsBlockNameEditingHide(e):F.settingsBlockNameEditingShow(e)}),C.on("blur change",".wpforms-builder-settings-block-name-edit input",function(e){y(e.relatedTarget).hasClass("wpforms-builder-settings-block-edit")||F.settingsBlockNameEditingHide(y(this))}),C.on("keypress",".wpforms-builder-settings-block-name-edit input",function(e){13===e.keyCode&&(F.settingsBlockNameEditingHide(y(this)),e.preventDefault())}),C.on("click",".wpforms-builder-settings-block-clone",function(e){e.preventDefault(),F.settingsBlockPanelClone(y(this))}),C.on("click",".wpforms-builder-settings-block-toggle",function(e){e.preventDefault(),F.settingsBlockPanelToggle(y(this))}),C.on("click",".wpforms-builder-settings-block-delete",function(e){e.preventDefault(),F.settingsBlockDelete(y(this))}),C.on("wpformsSettingsBlockAdded wpformsSettingsBlockCloned",function(e,i){i.hasClass("wpforms-notification")&&F.notificationUpdateStatus(i)}),C.on("click",".wpforms-status-button",function(){y(this).hasClass("wpforms-notification-status-button")?F.notificationChangeStatus(y(this)):F.handleStatusButton(y(this))}),C.on("change","#wpforms-panel-field-settings-ajax_submit",function(){F.hideOpenConfirmationsInNewTabOptions(!y(this).is(":checked"))})},hideOpenConfirmationsInNewTabOptions(o){var e=y(".wpforms-panel-field-confirmations-redirect_new_tab");e.length&&e.each(function(){var e=y(this),i=e.closest(".wpforms-builder-settings-block").find(".wpforms-panel-field-confirmations-type").val();e.closest(".wpforms-panel-field").toggle(!o&&["redirect","page"].includes(i))})},captchaToggle(){var e=C.find(".wpforms-field-recaptcha"),i=y("#wpforms-panel-field-settings-recaptcha"),o=i.data("provider")||"recaptcha";e.length&&(i.is(":checked")?e.show().toggleClass("is-recaptcha","recaptcha"===o):e.hide())},initConfirmationsType(){y(".wpforms-panel-field-confirmations-type").each(function(){F.confirmationFieldsToggle(y(this))})},initElementsTinyMCE(e,t={}){if("undefined"!=typeof tinymce&&void 0!==wp.editor){let i={...w.tinymceDefaults,...t},o=i.tinymce.setup;i.tinymce.toolbar1.includes("wpf_insert_smart_tag")||(i.tinymce.toolbar1+=",wpf_insert_smart_tag"),i.tinymce.setup=function(e){o?.call(this,e),e.addButton("wpf_insert_smart_tag",{text:"",tooltip:wpforms_builder.smart_tags_dropdown_title,icon:!1,image:wpforms_builder.smart_tags_dropdown_mce_icon,classes:"wpforms-smart-tags-mce-button"})},e.each(function(){var e=y(this).attr("id");wp.editor.remove(e),wp.editor.initialize(e,i)})}},confirmationsSetup(){F.initConfirmationsType(),F.initElementsTinyMCE(y(".wpforms-panel-field-confirmations-message")),C.on("focusout",".wpforms-panel-field-confirmations-redirect",function(){let e=y(this);var i=e.val().trim();e.val(i),wpf.isURL(i)||""===i||F.confirmationRedirectValidationError(function(){e.trigger("focus")})}),C.on("wpformsBeforeSave wpformsPanelSectionSwitch wpformsPanelSwitch",function(t){y(".wpforms-confirmation").each(function(e,i){i=y(i);let o=i.find(".wpforms-panel-field-confirmations-redirect");if(!o.is(":hidden")){i=i.find(".wpforms-panel-field-confirmations-type");if(!("redirect"!==i.val()||0`,t='

        '+wpforms_builder[m+"_error"]+"

        ",r=i+o+t,s=y.confirm({container:C,title:!1,content:r,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){var e=this.$content.find("input#settings-block-name").val().toString().trim(),i=this.$content.find(".error");if(""===e)return i.show(),!1;var i=p.closest(".wpforms-panel-content-section"),o=i.find(".wpforms-builder-settings-block").first(),t=(wpf.restoreTooltips(o),"#wpforms-"+m+"-template-block"),t=y(t);let r,s;if(C.trigger("wpformsBeforeSettingsBlockAdd",[i,s]),F.UndoRedo?.preventRecord(!0),t.length){let e=t.text();e=e.replace(/{CLONE}/g,f).replace(/CLONE/g,f),r=y(e),s=f}else r=o.clone(),s=o.data("block-id");let l;r.attr("data-block-id",f),r.find(".wpforms-builder-settings-block-name-holder span").text(e);t=r.attr("id")??`wpforms-builder-settings-block-${s}-`+m;r.attr("id",t);r.find("input, textarea, select").each(function(){var e=y(this),i=e.parent();e.hasClass("wpforms-disabled")&&(i.hasClass("from-name")||i.hasClass("from-email"))||i.hasClass("wpforms-pdf-file-name")||(i=e).attr("name")&&(i.val("").attr("name",i.attr("name").replace(/\[(\d+)]/,"["+f+"]")),i.is("select")?(i.find("option").prop("selected",!1).attr("selected",!1),i.find("option").first().prop("selected",!0).attr("selected","selected")):"checkbox"===i.attr("type")?(e=i.closest(".wpforms-panel-field").hasClass("js-wpforms-enabled-notification"),i.prop("checked",e).attr("checked",e).val("1")):i.val("").attr("value",""))});let n="wpforms-panel-field-"+c+"-",a=n+s,d=(r.find('[id^="'+a+'"], [for^="'+a+'"]').each(function(){var e=y(this),i="LABEL"===e.prop("tagName")?"for":"id",o=e.attr(i).replace(new RegExp(a,"g"),n+f);e.attr(i,o)}),s+"-notification-by-status");r.find('[data-radio-group="'+d+'"]').each(function(){y(this).removeClass("wpforms-radio-group-"+d).addClass("wpforms-radio-group-"+f+"-notification-by-status").attr("data-radio-group",f+"-notification-by-status")}),r.find(".wpforms-builder-settings-block-name-holder input").val(e).attr("value",e),"notification"===m&&(r.find(".email-msg textarea").val("{all_fields}").text("{all_fields}").attr("value","{all_fields}"),r.find(".email-recipient input").val("{admin_email}").attr("value","{admin_email}")),r.removeClass("wpforms-builder-settings-block-default"),"confirmation"===m&&(r.find(".wpforms-panel-field-tinymce").remove(),"undefined"!=typeof WPForms)&&r.find(".wpforms-panel-field-confirmations-type-wrap").after(WPForms.Admin.Builder.Templates.get("wpforms-builder-confirmations-message-field")({id:f}));t=r.find(".wpforms-conditional-block"),t.length&&"undefined"!=typeof WPForms&&t.html(WPForms.Admin.Builder.Templates.get("wpforms-builder-conditional-logic-toggle-field")({id:f,type:m,actions:JSON.stringify(r.find(".wpforms-panel-field-conditional_logic-checkbox").data("actions")),actionDesc:r.find(".wpforms-panel-field-conditional_logic-checkbox").data("action-desc"),reference:r.find(".wpforms-panel-field-conditional_logic-checkbox").data("reference")})),e=r.find(".wpforms-field-map-table"),e.length&&e.each(function(e,i){var i=y(i),o=(i.find("tr:not(:first-child)").remove(),i.find(".key input")),i=i.find(".field select"),t=i.data("name");o.attr("value",""),i.attr("name","").attr("data-name",t.replace(/\[(\d+)]/,"["+f+"]"))}),l=(l=r.wrap("
        ").parent().html()).replace(/\[conditionals]\[(\d+)]\[(\d+)]/g,"[conditionals][0][0]"),0===o.length?i.append(l):o.before(l),t=0===o.length?p.closest(".wpforms-panel-content-section").find(".wpforms-builder-settings-block").first():o.prev();"confirmation"===m&&(F.prepareChoicesJSField(t,f),F.confirmationFieldsToggle(y(".wpforms-panel-field-confirmations-type").first())),"undefined"!=typeof tinymce&&void 0!==wp.editor&&"confirmation"===m&&wp.editor.initialize("wpforms-panel-field-confirmations-message-"+f,w.tinymceDefaults),wpf.initTooltips(),F.UndoRedo?.preventRecord("continue"),C.trigger("wpformsSettingsBlockAdded",[t]),p.attr("data-next-id",f+1)}},cancel:{text:wpforms_builder.cancel}}});C.on("keypress","#settings-block-name",function(e){13===e.keyCode&&y(s.buttons.confirm.el).trigger("click")})},prepareChoicesJSField(e,i){var o,e=e.find(`#wpforms-panel-field-confirmations-${i}-page-wrap`);e.length<=0||(i=e.find(`#wpforms-panel-field-confirmations-${i}-page`)).length<=0&&!i.hasClass("choicesjs-select")||(o=e.find(".choices")).length<=0||((i=i.first()).removeAttr("data-choice"),i.removeAttr("hidden"),i.removeClass("choices__input"),y(i).appendTo(e.first()),o.first().remove(),F.dropdownField.events.choicesInit(i))},settingsBlockNameEditingShow(e){e=e.parents(".wpforms-builder-settings-block-name-holder");e.find(".wpforms-builder-settings-block-name").addClass("editing").hide(),e.find(".wpforms-builder-settings-block-name-edit").addClass("active"),wpf.focusCaretToEnd(e.find("input"))},settingsBlockNameEditingHide(e){var i=e.parents(".wpforms-builder-settings-block-header"),o=i.find(".wpforms-builder-settings-block-name"),i=i.find(".wpforms-builder-settings-block-name-edit");let t=i.find("input").val().trim();e=e.data("block-type")||e.closest(".wpforms-builder-settings-block").data("block-type");t.length||(t=wpforms_builder[e+"_def_name"]),i.find("input").val(t),o.text(t),o.removeClass("editing").show(),i.removeClass("active")},settingsBlockPanelClone(e){let i=e.closest(".wpforms-panel-content-section"),o=i.find(".wpforms-builder-settings-block-add"),t=e.closest(".wpforms-builder-settings-block"),r=t.find(".wpforms-builder-settings-block-content"),s=parseInt(o.attr("data-next-id"),10),l=t.data("block-type"),n=t.find(".wpforms-builder-settings-block-name").text().trim()+wpforms_builder[l+"_clone"],a=r.is(":hidden"),d=t.attr("id")??`wpforms-builder-settings-block-${s}-`+l,p=(t.attr("id",d),wpf.restoreTooltips(t),t.clone(!1,!0));F.settingsBlockUpdateState(a,s,l),p.data("block-id",s).attr("data-block-id",s),p.find(".wpforms-builder-settings-block-name-holder span").text(n),p.find(".wpforms-builder-settings-block-name-holder input").val(n),p.removeClass("wpforms-builder-settings-block-default"),o.attr("data-next-id",s+1),p.find("input, textarea, select").each(function(){var e=y(this);e.attr("name")&&e.attr("name",e.attr("name").replace(/\[(\d+)]/,"["+s+"]")),e.data("name")&&e.data("name",e.data("name").replace(/\[(\d+)]/,"["+s+"]")),e.attr("class")&&e.attr("class",e.attr("class").replace(/-(\d+)/,"-"+s)),e.attr("data-radio-group")&&e.attr("data-radio-group",e.attr("data-radio-group").replace(/(\d+)-/,s+"-"))}),p.find("*").each(function(){var e=y(this);e.attr("id")&&e.attr("id",e.attr("id").replace(/-(\d+)/,"-"+s)),e.attr("for")&&e.attr("for",e.attr("for").replace(/-(\d+)-/,"-"+s+"-")),e.data("input-name")&&e.data("input-name",e.data("input-name").replace(/\[(\d+)]/,"["+s+"]"))}),t.find("select").each(function(){var e=y(this).attr("name"),i=y(this).attr("name").replace(/\[(\d+)]/,"["+s+"]");p.find('select[name="'+i+'"]').val(y(this).attr("name",e).val())}),C.trigger("wpformsBeforeSettingsBlockClone",[t,t.data("block-id")]),p.css("display","none").insertBefore(t).show("fast",function(){wpf.initTooltips(),C.trigger("wpformsSettingsBlockCloned",[p,t.data("block-id")])})},settingsBlockPanelToggle(e,i=null){let o=e.closest(".wpforms-builder-settings-block"),t=o.data("block-id"),r=o.data("block-type"),s=o.find(".wpforms-builder-settings-block-content"),l=s.is(":visible"),n={duration:400,start(){F.settingsBlockUpdateState(l,t,r)},always(){s.is(":visible")?e.html(''):e.html('')}};s.stop(),!0===i?s.slideDown(n):!1===i?s.slideUp(n):s.slideToggle(n)},settingsBlockDelete(e){var i=e.closest(".wpforms-panel-content-section");if(!(i.find(".wpforms-builder-settings-block").length<2&&"pdf"!==e.parents(".wpforms-builder-settings-block").data("block-type"))){let i=e.closest(".wpforms-builder-settings-block"),o=i.data("block-type");y.confirm({title:!1,content:wpforms_builder[o+"_delete"],icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){var e=i.data("block-id");y.post(wpforms_builder.ajax_url,{action:"wpforms_builder_settings_block_state_remove",nonce:wpforms_builder.nonce,block_id:e,block_type:o,form_id:w.formID}),C.trigger("wpformsBeforeSettingsBlockDelete",[o,e]),i.remove(),C.trigger("wpformsSettingsBlockDeleted",[o,e])}},cancel:{text:wpforms_builder.cancel}}})}},settingsBlockUpdateState(e,i,o){y.post(wpforms_builder.ajax_url,{action:"wpforms_builder_settings_block_state_save",state:e?"closed":"opened",form_id:w.formID,block_id:i,block_type:o,nonce:wpforms_builder.nonce})},notificationsUpdateElementsVisibility(){console.warn('WARNING! Function "WPFormsBuilder.notificationsUpdateElementsVisibility()" has been deprecated.')},notificationUpdateStatus(e){var i=e.data("block-id"),i=y(`#wpforms-panel-field-notifications-${i}-enable`),e=e.find(".wpforms-builder-settings-block-status");F.UndoRedo?.preventRecord(!0),F.changeStatusButton(e,"0"!==i.val()),i.val()||i.val("1"),F.UndoRedo?.preventRecord("continue")},notificationChangeStatus(e){var i=e.closest(".wpforms-notification").data("block-id"),i=y(`#wpforms-panel-field-notifications-${i}-enable`),o=e.data("active");F.changeStatusButton(e,!o),i.val(o?"0":"1")},handleStatusButton(e){var i=e.data("connection-id"),o=e.data("active");F.changeStatusButton(e,!o),y("#wpforms-connection-status-"+i).val(o?"0":"1")},changeStatusButton(e,i){e.removeClass("wpforms-badge-green wpforms-badge-silver");var o=e.find(".fa"),t=e.find(".wpforms-status-label");o.removeClass("fa-check fa-times"),i?(e.addClass("wpforms-badge-green"),o.addClass("fa-check"),t.text(wpforms_builder.active),e.attr("title",wpforms_builder.deactivate)):(e.addClass("wpforms-badge-silver"),o.addClass("fa-times"),t.text(wpforms_builder.inactive),e.attr("title",wpforms_builder.activate)),e.data("active",i),C.trigger("WPFormsChangeStatusButton",[e,i])},bindUIActionsRevisions(){C.on("wpformsPanelSwitched",function(e,i){"revisions"===i&&(F.updateRevisionsList(),F.updateRevisionPreview())}),C.on("wpformsSaved",function(){"revisions"===wpf.getQueryString("view")&&F.updateRevisionsList()}),C.on("click",".wpforms-panel-content-revisions-link",function(e){e.preventDefault(),F.panelSwitch("revisions")})},updateRevisionsList(){let i=y(".wpforms-panel-revisions-button .badge-exclamation");if(i.length&&y.post(wpforms_builder.ajax_url,{action:"wpforms_mark_panel_viewed",form_id:w.formID,nonce:wpforms_builder.nonce}).done(function(e){e.success?i.remove():wpf.debug(e)}).fail(function(e,i){wpf.debug(e.responseText||i||"")}),C.hasClass("wpforms-revisions-enabled")){let o=y("#wpforms-panel-revisions .wpforms-revisions-content");o.fadeTo(250,.25,function(){y.post(wpforms_builder.ajax_url,{action:"wpforms_get_form_revisions",form_id:w.formID,revision_id:wpf.getQueryString("revision_id"),nonce:wpforms_builder.nonce}).done(function(e){e.success?o.replaceWith(e.data.html):wpf.debug(e)}).fail(function(e,i){wpf.debug(e.responseText||i||""),o.fadeTo(250,1)})})}},updateRevisionPreview(){var e=k.$formPreview.clone();e.find(".wpforms-field-duplicate, .wpforms-field-delete, .wpforms-field-helper, .wpforms-debug").remove().end(),e.find(".wpforms-field-wrap").removeClass("ui-sortable").addClass("ui-sortable-disabled"),e.find(".wpforms-field").removeClass("ui-sortable-handle ui-draggable ui-draggable-handle active").removeAttr("id data-field-id data-field-type").removeData(),e.find(".wpforms-field-submit-button").prop("disabled",!0),k.$revisionPreview.hasClass("has-preview")?k.$revisionPreview.find(".wpforms-preview-wrap").replaceWith(e):k.$revisionPreview.append(e).addClass("has-preview")},confirmSaveRevision(){y.confirm({title:wpforms_builder.heads_up,content:wpforms_builder.revision_update_confirm,icon:"fa fa-exclamation-circle",type:"orange",closeIcon:!1,buttons:{confirm:{text:wpforms_builder.save,btnClass:"btn-confirm",keys:["enter"],action(){C.addClass("wpforms-revision-is-saving"),WPFormsBuilder.formSave(!1).done(F.revisionSavedReload)}},cancel:{text:wpforms_builder.cancel,action(){WPFormsBuilder.setCloseConfirmation(!0)}}}})},revisionSavedReload(){wpf.updateQueryString("view",wpf.getQueryString("view")),wpf.removeQueryParam("revision_id"),n.location.reload()},bindUIActionsSaveExit(){C.on("click","#wpforms-embed",function(e){e.preventDefault(),y(this).hasClass("wpforms-disabled")||y(this).hasClass("wpforms-btn-light-grey-disabled")||WPFormsFormEmbedWizard.openPopup()}),C.on("click","#wpforms-save",function(e){e.preventDefault(),F.formSave(!1)}),C.on("click","#wpforms-exit",function(e){e.preventDefault(),F.formExit()}),C.on("wpformsSaved",function(){wpf.removeQueryParam("newform")})},formSave(s){if(C.hasClass("wpforms-is-revision")&&!C.hasClass("wpforms-revision-is-saving"))F.confirmSaveRevision();else{"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave();var l=WPFormsUtils.triggerEvent(C,"wpformsBeforeSave");if(!l.isDefaultPrevented()){let e=k.$saveButton,i=e.find("i.fa-check"),o=e.find("i.wpforms-loading-spinner"),t=e.find("span"),r=t.text();t.text(wpforms_builder.saving),e.prop("disabled",!0),i.addClass("wpforms-hidden"),o.removeClass("wpforms-hidden");l={action:"wpforms_save_form",data:JSON.stringify(F.serializeAllData(y("#wpforms-builder-form"))),id:w.formID,nonce:wpforms_builder.nonce};return y.post(wpforms_builder.ajax_url,l,function(e){e.success?(wpf.initialSave=!1,setTimeout(()=>{wpf._updateFormState(),C.trigger("wpformsSaved",e.data),!0===s&&(F.isBuilderInPopup()?F.builderInPopupClose("saved"):n.location.href=wpforms_builder.exit_url)},0)):(wpf.debug(e),F.formSaveError(e.data))}).fail(function(e){wpf.debug(e);let i="";403===e.status&&(i=wpforms_builder.error_save_form_forbidden),F.formSaveError(i)}).always(function(){t.text(r),e.prop("disabled",!1),o.addClass("wpforms-hidden"),i.removeClass("wpforms-hidden")})}}},serializeAllData(e){let o=e.serializeArray();return e.find(".wpforms-field-option-layout .wpforms-field-option-row-label_hide input[type=checkbox]").each(function(){var e=y(this),i=e.attr("name"),e=e.is(":checked")?"1":"";e||o.push({name:i,value:e})}),o},formSaveError(e=""){wpf.empty(e)&&(e=wpforms_builder.error_save_form),y.confirm({title:wpforms_builder.heads_up,content:"

        "+e+"

        "+wpforms_builder.error_contact_support+"

        ",icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})},formExit(){F.isBuilderInPopup()&&F.formIsSaved()?F.builderInPopupClose("saved"):F.formIsSaved()?n.location.href=wpforms_builder.exit_url:y.confirm({title:!1,content:wpforms_builder.exit_confirm,icon:"fa fa-exclamation-circle",type:"orange",closeIcon:!0,buttons:{confirm:{text:wpforms_builder.save_exit,btnClass:"btn-confirm",keys:["enter"],action(){F.formSave(!0)}},cancel:{text:wpforms_builder.exit,action(){i=!1,F.isBuilderInPopup()?F.builderInPopupClose("canceled"):n.location.href=wpforms_builder.exit_url}}}})},setCloseConfirmation(e){i=!!e},formIsSaved(){if("object"==typeof wpf.savedFormState&&0!==Object.keys(wpf.savedFormState).length){var e,i,o=wpf.isDebug(),t={},r=wpf._getCurrentFormState();for(e in r)if(r[e]!==wpf.savedFormState[e]){if(!o)return!1;t[e]={old:wpf.savedFormState[e],new:r[e]}}for(i in wpf.savedFormState)if(!(i in r)){if(!o)return!1;t[i]={old:wpf.savedFormState[i],new:void 0}}if(!Object.keys(t).length)return!0;wpf.debug("Form state differences:",t)}return!1},isBuilderInPopup(){return n.self!==n.parent&&"wpforms-builder-iframe"===n.self.frameElement.id},builderInPopupClose(e){var i=n.parent.jQuery(".wpforms-builder-popup"),o=y(".wpforms-center-form-name").text();i.find("#wpforms-builder-iframe").attr("src","about:blank"),i.fadeOut(),i.trigger("wpformsBuilderInPopupClose",[e,w.formID,o])},bindUIActionsGeneral(){C.on("click",".toggle-smart-tag-display",F.smartTagToggle),C.on("click",".smart-tags-list-display a",F.smartTagInsert),C.on("click",".wpforms-panel-fields-group.unfoldable .wpforms-panel-fields-group-title",F.toggleUnfoldableGroup),C.on("click",".wpforms-field-helper-hide ",F.hideFieldHelper),C.on("input",".wpforms-money-input",function(){var e=y(this),i=e.val(),o=e[0].selectionStart,t=e[0].selectionEnd;e.val(i.replace(/[^0-9.,]/g,"")),e[0].setSelectionRange(o,t)}),C.on("focusout",".wpforms-money-input",function(){var e=y(this),i=e.val();if(!i)return i;i=wpf.amountSanitize(i),i=wpf.amountFormat(i);e.val(i)}),C.on("change",".wpforms-panel-field-toggle",function(){var e=y(this);e.prop("disabled")||(e.prop("disabled",!0),F.toggleOptionsGroup(e))}),C.on("click",".wpforms-image-upload-add",function(e){e.preventDefault();let o=y(this),t=o.parent(),r=wpf.initMediaLibrary({title:wpforms_builder.upload_image_title,extensions:wpforms_builder.upload_image_extensions,extensionsError:wpforms_builder.upload_image_extensions_error,buttonText:wpforms_builder.upload_image_button});r.on("select",function(){var e=r.state().get("selection").first().toJSON(),i=t.find(".preview");t.find(".source").val(e.url),i.empty(),i.prepend(''),"hide"===o.data("after-upload")&&o.hide(),C.trigger("wpformsImageUploadAdd",[o,t])}).on("close",function(){r.off("library:selection:add")}),r.open()}),C.on("click",".wpforms-image-upload-remove",function(e){e.preventDefault();e=y(this).parent().parent();e.find(".preview").empty(),e.find(".wpforms-image-upload-add").show(),e.find(".source").val(""),C.trigger("wpformsImageUploadRemove",[y(this),e])}),C.on("blur",'.wpforms-notification .wpforms-panel-field-text input:not([type="search"])',function(){F.validateEmailSmartTags(y(this))}),C.on("blur",".wpforms-notification .wpforms-panel-field-textarea textarea",function(){F.validateEmailSmartTags(y(this))}),C.on("focusout",'.wpforms-notification .wpforms-panel-field.js-wpforms-from-email-validation input:not([type="search"])',F.validateFromEmail),C.on("wpformsPanelSectionSwitch",F.notificationsPanelSectionSwitch),C.on("click","#wpforms-builder-mobile-notice .wpforms-fullscreen-notice-button-primary, #wpforms-builder-mobile-notice .close",function(){n.location.href=wpforms_builder.exit_url}),C.on("click","#wpforms-builder-mobile-notice .wpforms-fullscreen-notice-button-secondary",function(){n.location.href=wpf.updateQueryString("force_desktop_view",1,n.location.href)}),y("#wpforms-builder-license-alert .close").on("click",function(){n.location.href=wpforms_builder.exit_url}),y("#wpforms-builder-license-alert .dismiss").on("click",function(e){e.preventDefault(),y("#wpforms-builder-license-alert").remove(),wpCookies.set("wpforms-builder-license-alert","true",3600)}),C.on("change","#wpforms-panel-field-settings-akismet.wpforms-akismet-disabled",function(){let e=y(this),i=e.data("akismet-status");e.prop("checked")&&y.alert({title:wpforms_builder.heads_up,content:wpforms_builder[i],icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}},onClose(){e.prop("checked",!1)}})}),C.on("wpformsPanelSectionSwitch wpformsPanelSwitched",function(){wpf.reInitShowMoreChoices(y("#wpforms-panel-providers, #wpforms-panel-settings"))})},notificationsPanelSectionSwitch(e,i){"notifications"===i&&y(".wpforms-notification .wpforms-panel-field.js-wpforms-from-email-validation input").trigger("focusout")},isPaymentsEnabled(){let e=!1;return y(F.getPaymentsTogglesSelector()).each(function(){if(y(this).prop("checked"))return!(e=!0)}),e},getPaymentsTogglesSelector(){return`.wpforms-panel-content-section-payment-toggle-one-time input, + .wpforms-panel-content-section-payment-toggle-recurring input, + #wpforms-panel-field-stripe-enable, + #wpforms-panel-field-paypal_standard-enable, + #wpforms-panel-field-authorize_net-enable, + #wpforms-panel-field-square-enable`},toggleOptionsGroup(e){var i=e.attr("name");function o(){e.prop("disabled",!1)}let t="",r=y('.wpforms-panel-field-toggle-body[data-toggle="'+i+'"]');F.toggleProviderActiveIcon(e),0===r.length?o():(i=e.attr("type"),t="checkbox"!==i&&"radio"!==i||e.prop("checked")?e.val():"0",r.each(function(){var e=y(this);e.attr("data-toggle-value").toString()===t.toString()?e.slideDown(150,o):e.slideUp(150,o)}))},toggleProviderActiveIcon(e){var o=e.closest(".wpforms-panel-content-section").data("provider"),t=["wpforms-panel-field-"+o+"-enable-wrap","wpforms-panel-field-"+o+"-enable_one_time-wrap","wpforms-panel-field-"+o+"-enable_recurring-wrap"];if(o&&t.includes(e.attr("id"))){let i=!1;t.forEach(e=>{e=y("#"+e);e.length&&e.find("input").is(":checked")&&(i=!0)}),y(`.wpforms-panel-sidebar-section[data-section=${o}]`).find(".fa-check-circle-o").toggleClass("wpforms-hidden",!i)}},toggleAllOptionGroups(e=null){(e=e||C||y("#wpforms-builder")||y("body"))&&e.find(".wpforms-panel-field-toggle").each(function(){var e=y(this);e.prop("disabled",!0),F.toggleOptionsGroup(e)})},toggleUnfoldableGroup(e){e.preventDefault();let i=y(e.target),o=i.closest(".wpforms-panel-fields-group"),t=o.find(".wpforms-panel-fields-group-inner"),r="wpforms_fields_group_"+o.data("group");o.hasClass("opened")?(wpCookies.remove(r),t.stop().slideUp(150,function(){o.removeClass("opened")})):(wpCookies.set(r,"true",2592e3),o.addClass("opened"),t.stop().slideDown(150))},hideFieldHelper(e){e.preventDefault(),e.stopPropagation();e=y(".wpforms-field-helper");wpCookies.set("wpforms_field_helper_hide","true",2592e3),e.hide()},smartTagToggle(e){console.warn('WARNING! Function "WPFormsBuilder.smartTagToggle()" has been deprecated.'),e.preventDefault(),k.$focusOutTarget=null;var e=y(this),i=e.closest(".wpforms-panel-field,.wpforms-field-option-row");i.hasClass("smart-tags-toggling")||(i.addClass("smart-tags-toggling"),e.hasClass("smart-tag-showing")?F.removeSmartTagsList(e):F.insertSmartTagsList(e))},removeSmartTagsList(e){console.warn('WARNING! Function "WPFormsBuilder.removeSmartTagsList()" has been deprecated.');let i=e.closest(".wpforms-panel-field,.wpforms-field-option-row"),o=i.find(".smart-tags-list-display");e.find("span").text(wpforms_builder.smart_tags_show),o.slideUp("",function(){o.remove(),e.removeClass("smart-tag-showing"),i.removeClass("smart-tags-toggling")})},insertSmartTagsList(e){console.warn('WARNING! Function "WPFormsBuilder.insertSmartTagsList()" has been deprecated.');let i=e.closest(".wpforms-panel-field,.wpforms-field-option-row"),o=e.closest("label"),t=!0;o.length||(o=i.find("label"),t=!1);var r=F.getSmartTagsList(e,-1!==o.attr("for").indexOf("wpforms-field-option-"));(t?o:e).after(r),e.find("span").text(wpforms_builder.smart_tags_hide),i.find(".smart-tags-list-display").slideDown("",function(){e.addClass("smart-tag-showing"),i.removeClass("smart-tags-toggling")})},getSmartTagsList(e,i){var o;return console.warn('WARNING! Function "WPFormsBuilder.getSmartTagsList()" has been deprecated.'),o='
          ',(o+=F.getSmartTagsListFieldsElements(e))+F.getSmartTagsListOtherElements(e,i)+"
        "},getSmartTagsListFieldsElements(e){console.warn('WARNING! Function "WPFormsBuilder.getSmartTagsListFieldsElements()" has been deprecated.');var i=e.data("type");if(!["fields","all"].includes(i))return"";var o,t=F.getSmartTagsFields(e);if(!t)return'
      9. '+wpforms_builder.fields_unavailable+"
      10. ";let r="";for(o in r+='
      11. '+wpforms_builder.fields_available+"
      12. ",t)r+=F.getSmartTagsListFieldsElement(t[o]);return r},getSmartTagsFields(e){console.warn('WARNING! Function "WPFormsBuilder.getSmartTagsFields()" has been deprecated.');var i=e.data("fields"),e=e.data("allow-repeated-fields"),i=i?i.split(","):void 0;return wpf.getFields(i,!0,e)},getSmartTagsListFieldsElement(o){console.warn('WARNING! Function "WPFormsBuilder.getSmartTagsListFieldsElement()" has been deprecated.');let t=o.label?wpf.encodeHTMLEntities(wpf.sanitizeHTML(o.label)):wpforms_builder.field+" #"+o.id,r=`
      13. ${t}
      14. `;var e=o.additional||[];return 1{var i=e.charAt(0).toUpperCase()+e.slice(1).replace(/(\D)(\d)/g,"$1 $2");r+=`
      15. ${t} – ${i}
      16. `}),r},getSmartTagsListOtherElements(e,i){console.warn('WARNING! Function "WPFormsBuilder.getSmartTagsListOtherElements()" has been deprecated.');var o,t=e.data("type");let r;if("other"!==t&&"all"!==t)return"";for(o in r='
      17. '+wpforms_builder.other+"
      18. ",wpforms_builder.smart_tags)i&&wpforms_builder.smart_tags_disabled_for_fields.includes(o)||"confirmations"===e.data("location")&&wpforms_builder.smart_tags_disabled_for_confirmations.includes(o)||(r+='
      19. "+wpforms_builder.smart_tags[o]+"
      20. ");return r},smartTagInsert(e){console.warn('WARNING! Function "WPFormsBuilder.smartTagInsert()" has been deprecated.'),e.preventDefault();let i=y(this),o=i.closest(".smart-tags-list-display"),t=o.closest(".wpforms-panel-field,.wpforms-field-option-row"),r=t.find(".toggle-smart-tag-display"),s=t.find("input[type=text], textarea"),l=i.data("meta"),n=i.data("additional")?"|"+i.data("additional"):"",a=i.data("type"),d="field"===a?'{field_id="'+l+n+'"}':"{"+l+"}",p;"undefined"!=typeof tinyMCE&&(p=tinyMCE.get(s.prop("id")))&&!p.hasFocus()&&p.focus(!0),p&&!p.isHidden()?p.insertContent(d):(s.insertAtCaret(" "+d+" "),s.val(s.val().trim().replace(" "," ")),s.trigger("focus").trigger("input")),o.slideUp("",function(){o.remove()}),r.find("span").text(wpforms_builder.smart_tags_show),t.find(".toggle-smart-tag-display").removeClass("smart-tag-showing")},validateEmailSmartTags(e){console.warn('WARNING! Function "WPFormsBuilder.validateEmailSmartTags()" has been deprecated.');let i=e.val();i&&(i=i.replace(/{(([^<>()[\]\\.,;:\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,}))}/g,function(e){return e.slice(1,-1)}),e.val(i))},getEmailFieldSmartTagError(e){var i=/\{field_id="(\d+)"}/g;if(!i.test(e))return null;i.lastIndex=0;i=i.exec(e),e=i?i[1]:null,i=wpf.getField(e);return i&&"email"===i.type?"":wpforms_builder.allow_only_email_fields},validateFromEmail(){var e,i,o;wpf.isRepeatedCall("validateFromEmail")||(e=(i=y(this)).val(),i.data("value")!==e&&(i.data("value",e),i=i.parent(),o="wpforms-panel-field-warning",/[\s,;]/g.test(e.trim())?(i.addClass(o),F.printNotice(wpforms_builder.allow_only_one_email,i)):F.shouldCallAjaxValidation(e,i,o)&&F.ajaxValidation(e,i,o)))},shouldCallAjaxValidation(e,i,o){let t="",r=!0;return""===(t=""===e?wpforms_builder.empty_email_address:"")&&(t=F.getEmailFieldSmartTagError(e),r=null===t),t?(i.addClass(o),F.printNotice(t,i,""===e),!1):!!r||(i.removeClass(o),F.removeNotice(i),!1)},ajaxValidation(e,i,o){e={form_id:w.formID,email:e,nonce:wpforms_builder.nonce,action:"wpforms_builder_notification_from_email_validate"};y.post(wpforms_builder.ajax_url,e,function(e){F.removeNotice(i),e.success?i.removeClass(o):(i.addClass(o),i.append(e.data))}).fail(function(e){console.log(e.responseText)})},disabledFields:{init(){F.disabledFields.initCouponsChoicesJS(),F.disabledFields.initFileUploadChoicesJS()},initCouponsChoicesJS(){"function"!=typeof n.Choices||WPForms.Admin.Builder.Coupons||y(".wpforms-field-option-row-allowed_coupons select:not(.choices__input)").each(function(){F.UndoRedo?.preventRecord(!0);var e=y(this),i=new Choices(e.get(0),{shouldSort:!1,removeItemButton:!0,renderChoicesLimit:5,callbackOnInit(){wpf.showMoreButtonForChoices(this.containerOuter.element),F.UndoRedo?.preventRecord("continue")}});e.data("choicesjs",i)})},initFileUploadChoicesJS(){"function"!=typeof n.Choices||WPForms.Admin.Builder.FieldFileUpload||y(".wpforms-file-upload-user-roles-select, .wpforms-file-upload-user-names-select").each(function(){F.UndoRedo?.preventRecord(!0),new Choices(y(this)[0],{removeItemButton:!0,callbackOnInit(){F.UndoRedo?.preventRecord("continue")}})})}},iconChoices:{cache:{},config:{colorPropertyName:"--wpforms-icon-choices-color"},init(){F.iconChoices.extendJqueryConfirm(),C.on("wpformsBuilderReady",function(e){wpforms_builder.icon_choices.is_active&&!wpforms_builder.icon_choices.is_installed&&(F.iconChoices.openInstallPromptModal(!0),e.preventDefault())}),C.on("change",".wpforms-field-option-row-choices_icons input",F.iconChoices.toggleIconChoices),C.on("change",".wpforms-field-option-row-choices_icons_color .wpforms-color-picker",F.iconChoices.changeIconsColor),C.on("change",".wpforms-field-option-row-choices_icons_style select, .wpforms-field-option-row-choices_icons_size select",function(){var e=y(this).parent().data("field-id"),i=y("#wpforms-field-option-"+e).find(".wpforms-field-option-hidden-type").val();F.fieldChoiceUpdate(i,e)}),C.on("click",".wpforms-field-option-row-choices .choices-list .wpforms-icon-select",F.iconChoices.openIconPickerModal)},toggleIconChoices(){var e,i,o,t=y(this),r=t.is(":checked");r&&!wpforms_builder.icon_choices.is_installed?(F.iconChoices.cache.toggle=t,F.iconChoices.openInstallPromptModal()):(t=t.closest(".wpforms-field-option-row").data("field-id"),o=(e=y("#wpforms-field-option-"+t)).find(`#wpforms-field-option-${t}-choices_images`),i=e.find(`#wpforms-field-option-row-${t}-choices ul`),r&&o.is(":checked")&&o.prop("checked",!1).trigger("change"),e.find(`#wpforms-field-option-row-${t}-dynamic_choices`).toggleClass("wpforms-hidden",r),e.find(`#wpforms-field-option-row-${t}-choices_icons_color`).toggleClass("wpforms-hidden"),e.find(`#wpforms-field-option-row-${t}-choices_icons_size`).toggleClass("wpforms-hidden"),e.find(`#wpforms-field-option-row-${t}-choices_icons_style`).toggleClass("wpforms-hidden"),o=e.find(`#wpforms-field-option-${t}-choices_icons_color`),o=_.isEmpty(o.val())?wpforms_builder.icon_choices.default_color:o.val(),i.prop("style",F.iconChoices.config.colorPropertyName+`: ${o};`),i.toggleClass("show-icons",r),e.find(`#wpforms-field-option-${t}-input_columns`).val(r?"inline":"").trigger("change"),y(`#wpforms-field-option-row-${t}-choices_icons_hide`).toggleClass("wpforms-hidden",!r),F.fieldChoiceUpdate(e.find(".wpforms-field-option-hidden-type").val(),t))},changeIconsColor(){var e=y(this),i=e.parents(".wpforms-field-option-row").data("field-id"),o=y("#wpforms-field-option-"+i),t=o.find(".wpforms-field-option-hidden-type").val(),o=o.find(".wpforms-field-option-row-choices .choices-list"),e=F.getValidColorPickerValue(e);o.prop("style",F.iconChoices.config.colorPropertyName+`: ${e};`),F.fieldChoiceUpdate(t,i)},openInstallPromptModal(e=!1){var i=e?wpforms_builder.icon_choices.strings.reinstall_prompt_content:wpforms_builder.icon_choices.strings.install_prompt_content,i=y.confirm({title:wpforms_builder.heads_up,content:i,icon:"fa fa-info-circle",type:"orange",buttons:{continue:{text:wpforms_builder.continue,btnClass:"btn-confirm",keys:["enter"],action(){return this.setIcon("fa fa-cloud-download"),this.setTitle(wpforms_builder.icon_choices.strings.install_title),this.setContent(wpforms_builder.icon_choices.strings.install_content),y.each(this.buttons,function(e,i){i.hide()}),F.iconChoices.installIconLibrary(),!1}}},onOpen(){!e&&F.iconChoices.cache.toggle&&F.iconChoices.cache.toggle.prop("checked",!1),F.iconChoices.cache.previousModal=this}});e||(i.buttons.cancel={text:wpforms_builder.cancel,keys:["esc"],action(){F.iconChoices.cache.toggle.prop("checked",!1)}})},installIconLibrary(){var e={_wp_http_referer:wpf.updateQueryString("_wp_http_referer",null),nonce:wpforms_builder.nonce,action:"wpforms_icon_choices_install"};y.ajaxSetup({type:"POST",timeout:12e4}),y.post(wpforms_builder.ajax_url,e,function(e){e.success?F.iconChoices.openInstallSuccessModal():F.iconChoices.openInstallErrorModal(e)}).fail(function(e){F.iconChoices.openInstallErrorModal(e)})},openInstallSuccessModal(){y.confirm({title:wpforms_builder.done,content:wpforms_builder.icon_choices.strings.install_success_content,icon:"fa fa-check-circle",type:"green",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){var e;F.iconChoices.cache.toggle&&(F.iconChoices.cache.toggle.prop("checked",!0),e=F.iconChoices.cache.toggle.parents(".wpforms-field-option-row").data("field-id"),(e=C.find(`#wpforms-field-option-${e}-choices_images`)).is(":checked"))&&e.prop("checked",!1),wpforms_builder.exit_url=n.location.href,F.formSave(!0)}}},onOpen(){var e;F.iconChoices.cache.toggle&&(e=F.iconChoices.cache.toggle.parents(".wpforms-field-option-row-choices_icons").data("field-id"),C.find(`#wpforms-field-option-${e}-input_columns`).val("inline")),F.iconChoices.cache.previousModal.close()}})},openInstallErrorModal(e){y.confirm({title:wpforms_builder.uh_oh,content:wpforms_builder.icon_choices.strings.install_error_content,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){F.iconChoices.cache.toggle?F.iconChoices.cache.toggle.prop("checked",!1):F.formSaveError()}}},onOpen(){wpf.debug(e),F.iconChoices.cache.previousModal.close()},onDestroy(){delete F.iconChoices.cache.previousModal,delete F.iconChoices.cache.toggle}})},extendJqueryConfirm(){n.Jconfirm.prototype._updateContentMaxHeight=function(){var e=y(n).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom),i=this.contentMaxHeight||e;this.$contentPane.css({"max-height":Math.min(i,e)+"px"})}},openIconPickerModal(){var e=y(this);let i={fieldId:e.parents(".wpforms-field-option-row").data("field-id"),choiceId:e.parent().data("key"),selectedIcon:e.find(".source-icon").val(),selectedIconStyle:e.find(".source-icon-style").val()};var e=` + ${wpforms_builder.icon_choices.strings.icon_picker_title} + ${wpforms_builder.icon_choices.strings.icon_picker_description} + + `,o=` +
        +
          +
            +

            +

            `;y.confirm({title:e,titleClass:"wpforms-icon-picker-title",content:o,icon:!1,closeIcon:!0,type:"orange",backgroundDismiss:!0,boxWidth:800,contentMaxHeight:368,smoothContent:!1,buttons:!1,onOpenBefore(){this.$body.addClass("wpforms-icon-picker-jconfirm-box"),this.$contentPane.addClass("wpforms-icon-picker-jconfirm-content-pane")},onContentReady(){let e=this;F.iconChoices.initIconsList(i),e.$title.find(".search").focus(),e.$content.find(".wpforms-icon-picker-icons").on("click","li",function(){F.iconChoices.selectIcon(e,y(this))})}})},initIconsList(o){var e={valueNames:["name"],listClass:"wpforms-icon-picker-icons",page:wpforms_builder.icon_choices.icons_per_page,pagination:{paginationClass:"wpforms-icon-picker-pagination"},item(e){var i=e.icon===o.selectedIcon&&e.style===o.selectedIconStyle?'class="selected"':"";return` +
          • + + ${e.icon} +
          • `},indexAsync:!0};let t=new List("wpforms-icon-picker-icons",e,wpforms_builder.icon_choices.icons);F.iconChoices.infiniteScrollPagination(t),y("#wpforms-icon-picker-search").on("keyup",function(){t.search(y(this).val(),["name"],function(o){for(let e=0,i=t.items.length;e{var c=`choice-${t}-`+(new Date).getTime().toString(16),i=String("object"==typeof e?e.value:e),a=o("
            ",{class:"choice-item"}),i=o("",{type:"checkbox",id:c,value:i,checked:l.includes(i),name:n.name.replace("{index}",t)}),t=o("'+wpforms_form_templates.activating),this.$$cancel.prop("disabled",!0),_.installActivateAddons(a,this,e,t,o),!1}},cancel:{text:wpforms_form_templates.cancel,action(){WPFormsFormTemplates.selectTemplateCancel()}}}})},action(e,t=""){return 1{var n,p={init:function(){l(p.ready)},ready:function(){p.setup(),p.initCategories(),p.events()},setup:function(){n={$builder:l("#wpforms-builder"),$builderForm:l("#wpforms-builder-form"),$helpBtn:l(".js-wpforms-help"),$help:l("#wpforms-builder-help"),$closeBtn:l("#wpforms-builder-help-close"),$search:l("#wpforms-builder-help-search"),$result:l("#wpforms-builder-help-result"),$noResult:l("#wpforms-builder-help-no-result"),$categories:l("#wpforms-builder-help-categories"),$footer:l("#wpforms-builder-help-footer")}},events:function(){n.$helpBtn.on("click",a.openHelp),n.$closeBtn.on("click",a.closeHelp),n.$categories.on("click",".wpforms-builder-help-category header",a.toggleCategory),n.$categories.on("click",".wpforms-builder-help-category button.viewall",a.viewAllCategoryDocs),n.$search.on("keyup","input",_.debounce(a.inputSearch,250)),n.$search.on("click","#wpforms-builder-help-search-clear",a.clearSearch)},initCategories:function(){var e,r;wpf.empty(wpforms_builder_help.docs)?n.$categories.html(wp.template("wpforms-builder-help-categories-error")):(e=wp.template("wpforms-builder-help-categories"),r={categories:wpforms_builder_help.categories,docs:p.getDocsByCategories()},n.$categories.html(e(r)))},getDocsByCategories:function(){var e=wpforms_builder_help.categories,t=wpforms_builder_help.docs||[],i={};return _.each(e,function(e,r){var o=[];_.each(t,function(e){e.categories&&-1{let a={init(){d(e).ready(a.ready)},ready(){a.$builder=d("#wpforms-builder"),a.bindEvents()},bindEvents(){d(e).on("click",".wpforms-image-upload-button",a.openMediaUploader),d(e).on("click",".wpforms-image-remove-button",a.removeImage)},openMediaUploader(e){e.preventDefault();let r=d(this).closest(".wpforms-image-upload-control");e=r.attr("id");a.frames=a.frames??{},a.frames[e]?(a.frame=a.frames[e],a.frame.open()):(a.frame=wpf.initMediaLibrary({extensions:wpforms_builder.upload_image_extensions,extensionsError:wpforms_builder.upload_image_extensions_error,buttonText:wpforms_builder.upload_image_button}),a.frame.on("select",function(){var e=a.frame.state().get("selection").first().toJSON();a.setImage(r,e)}),a.frame.open(),a.frames[e]=a.frame)},getControlElements(e){return{$control:e,$idField:e.find(".wpforms-image-upload-id"),$urlField:e.find(".wpforms-image-upload-url"),$preview:e.find(".wpforms-image-preview img"),$uploadBtn:e.find(".wpforms-image-upload-button"),$removeBtn:e.find(".wpforms-image-remove-button")}},setImage(e,r){var{$idField:o,$urlField:i,$preview:m,$uploadBtn:t,$removeBtn:d}=a.getControlElements(e);m.attr("src",r.url),o.val(r.id),i.val(r.url),t.addClass("wpforms-hidden"),d.removeClass("wpforms-hidden"),WPFormsUtils.triggerEvent(a.$builder,"wpformsImageUploadChange",[e,r])},removeImage(e){e.preventDefault();var e=d(this).closest(".wpforms-image-upload-control"),{$idField:r,$urlField:o,$preview:i,$uploadBtn:m,$removeBtn:t}=a.getControlElements(e);i.attr("src",""),r.val(""),o.val(""),m.removeClass("wpforms-hidden"),t.addClass("wpforms-hidden"),WPFormsUtils.triggerEvent(a.$builder,"wpformsImageUploadChange",[e,null])}};return a})(document,(window,jQuery)),WPForms.Admin.Builder.Settings.ImageUpload.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/copy-paste.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/copy-paste.min.js new file mode 100644 index 0000000..3e6c1eb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/copy-paste.min.js @@ -0,0 +1,8 @@ +export default function(e,t,n){let p={el:{},init(){p.setup(),p.el.$builder.on("wpformsBuilderReady",p.ready)},ready(){try{p.MultiSelect=WPForms.Admin.Builder.MultiSelect,p.MultiSelectActions=WPForms.Admin.Builder.MultiSelectActions,p.KeyboardShortcuts=WPForms.Admin.Builder.KeyboardShortcuts,p.WPFormsBuilder=WPFormsBuilder,p.FieldLayout=WPForms.Admin.Builder.FieldLayout,p.WPFormsChoicesJS=WPForms.Admin.Builder.WPFormsChoicesJS}catch(e){return void wpf.debug("CopyPaste: Dependency modules are not available.")}var e=WPFormsBuilder.getElementsCache();p.el={...p.el,...e?.elements},p.events()},setup(){p.el.$builder=n("#wpforms-builder"),p.el.$fieldsPanel=p.el.$builder.find(".wpforms-panel-fields")},events(){p.el.$document.on("keydown",p.onKeydown)},onKeydown(e){p.KeyboardShortcuts.pressMetaKey(e)&&!p.KeyboardShortcuts.isUserTypingInField()&&!p.isUserSelectedText()&&p.isFieldsPanelActive()&&("KeyC"===(e=e.originalEvent||e).code?p.copySelectedFieldsToClipboard():"KeyV"===e.code&&p.pasteFieldsFromClipboard())},isUserSelectedText(){return 0{var t=p.getFieldDataWithHTML(e);t&&(l[e]=t,["layout","repeater"].includes(t.type))&&(l=p.addNestedFieldsToFieldsData(e,l))}),l},addNestedFieldsToFieldsData(e,l){var i=l[e].fieldSettings["columns-json"];if(i?.length){let t=[];i.forEach(e=>{e.fields?.length&&(t=t.concat(e.fields))}),(l={...l,...p.getFieldsData(t)})[e].nestedFieldIds=t}return l},showCopyToast(e){n(".wpforms-copy-toast").remove();var t=p.KeyboardShortcuts.getMetaKeyName(),e=1===e?wpforms_builder.multi_select.copy_toast_single.replace("%1$s",t):wpforms_builder.multi_select.copy_toast_multiple.replace("%1$d",e).replace("%2$s",t);let l=n(` +
            +
            + + ${e} +
            +
            + `);p.el.$builder.append(l),setTimeout(()=>{l.addClass("wpforms-copy-toast-visible")},10),setTimeout(()=>{l.removeClass("wpforms-copy-toast-visible"),setTimeout(()=>{l.remove()},300)},3e3)},getFieldDataWithHTML(e){var t=n("#wpforms-field-"+e),l=n("#wpforms-field-option-"+e);return 0===t.length||0===l.length?null:{type:t.data("field-type"),id:e,fieldSettings:wpf.getField(e),fieldPreviewHTML:p.getFieldPreviewHTML(t),fieldOptionsHTML:p.getFieldOptionsHTML(l)}},getFieldPreviewHTML(e){var t,l,i=e.data("field-type");return"layout"===i||"repeater"===i?p.getLayoutFieldHTMLWithoutNestedFields(e):(i=p.WPFormsBuilder?.dropdownField,t=e.data("field-id"),(l=i?.helpers.isModernSelect(e.find("> .choices .primary-input")))&&i?.helpers.convertModernToClassic(t),e=e[0].outerHTML,l&&i?.helpers.convertClassicToModern(t),e)},getFieldOptionsHTML(e){return p.replaceChoicesJSWithOriginalSelect(e.clone(!0))[0].outerHTML},replaceChoicesJSWithOriginalSelect(r){return r.find("select.choices__input").each(function(){var t=n(this),i=p.WPFormsChoicesJS?.getRegistryData(t),d=i?.element;if(d){let l=n(d);d=t.attr("id");let e=(t.data("choicesjs")||i?.instance)?.getValue();Array.isArray(e)||(e=e?[e]:[]),l.val(e.map(e=>e.value)),l.find("option").removeAttr("selected"),e.forEach(function(e){let t=l.find(`option[value="${e.value}"]`);t.length||(t=n("
            ").html(i));return d.find(l?".active, .selected":".selected").removeClass("active").removeClass("selected"),l?p.updateFieldPreview(d,e):p.updateFieldSettings(d,e),d.html()},getFieldLabel(e){var t=e.fieldSettings.label??e.fieldSettings.name??"";return WPFormsBuilder.getDuplicatedFieldLabel(t,e.id)},updateFieldPreview(e,t){let d=n("#wpforms-field-"+t.id).find("input, select, textarea");e.find("> .wpforms-field").removeClass("label_empty").find(".label-title span.text").text(p.getFieldLabel(t)),e.find("input, select, textarea").each(function(e){var t=n(this),e=d.eq(e),l=t.attr("type");let i;i="checkbox"===l||"radio"===l?e.is(":checked"):e.val(),p.updateFieldSettingInput(t,i)})},updateFieldSettings(e,t){var l,i,e=e.find(".wpforms-field-option");e.length&&(i=t.fieldSettings,l=`fields[${e.data("field-id")}]`,(i={...i}).label=i.label?p.getFieldLabel(t):null,i.name=i.name?p.getFieldLabel(t):null,delete i.id,delete i.type,e.find('input[type="radio"][name*="[default]"], input[type="checkbox"][name*="[default]"]').attr("checked",!1),p.FieldLayout?.isLayoutBasedField(t.fieldSettings.type)&&e.find('input[name*="[columns-json]"]').attr("value","[]"),p.updateFieldInputs(e,i,l),e.find(".CodeMirror").remove(),e.find("textarea.wpforms-codemirror-editor").css("display",""))},updateFieldInputs(l,i,d){i&&Object.keys(i).forEach(e=>{var t=d+`[${e}]`,e=i[e];"object"==typeof e&&null!==e?p.updateFieldInputs(l,e,t):(t=l.find(`[name="${CSS.escape(t)}"]`),p.updateFieldSettingInput(t,e))})},updateFieldSettingInput(e,t){var l;e.length&&("radio"===(l=e.attr("type"))?e.filter(`[value="${t}"]`).attr("checked",!0):"checkbox"===l?e.attr("checked","1"===t||1===t||!0===t):e.is("select")?p.updateFieldSelectElement(e,t):(e.val(t),e.is("textarea")?e.text(t):e.attr("value",t)))},updateFieldSelectElement(t,e){t?.length&&null!==e&&(t.find("option").removeAttr("selected"),(e=Array.isArray(e)?e:[e]).forEach(e=>{t.find(`option[value="${e}"]`).attr("selected",!0)}))},addFieldPreview(e,t=null,l=null){e=n("
            ").html(e).find(".wpforms-field");e.length&&(e[0].style.marginBottom=null,l?.length?l.append(e):(l=n("#wpforms-field-"+t)).length?l.after(e):n("#wpforms-panel-fields .wpforms-field-wrap").append(e))},isFieldInsideLayoutOrRepeater(e){var e=e.closest(".wpforms-layout-column");return!(!e.length||!(e=e.closest(".wpforms-field")).length||"layout"!==(e=e.data("field-type"))&&"repeater"!==e)},addFieldOptions(t,l=null,i=null){t=n("
            ").html(t).find(".wpforms-field-option");if(t.length)if(i?.length){i=i.closest(".wpforms-field").data("field-id");let e=n("#wpforms-field-option-"+i);void(e.length&&e.after(t))}else{let e=n("#wpforms-field-option-"+l);e.length?e.after(t):n("#wpforms-field-options").append(t)}},initializePastedField(e,t){p.removeNoFieldsPlaceholder(),p.initializeFieldOptions(e),p.initializeFieldPreview(e,t),p.initializeFieldInContainerField(e),p.el.$builder.trigger("wpformsFieldAdd",[e,t.type,{}])},initializeFieldOptions(e){e=n("#wpforms-field-option-"+e);0!==e.length&&(WPFormsBuilder?.loadColorPickers?.(e),wpf.initTooltips(e))},initializeFieldPreview(e,t){0!==n("#wpforms-field-"+e).length&&"select"===t.type&&"modern"===t.fieldSettings.style&&p.WPFormsBuilder?.dropdownField.helpers.convertClassicToModern(e)},initializeFieldInContainerField(e){var t=n("#wpforms-field-"+e),l=n("#wpforms-field-option-"+e);0!==t.length&&0!==l.length&&(l=t.closest(".wpforms-layout-column")).length&&(t=t.index()-1,p.FieldLayout?.positionFieldInColumn(e,t,l))},removeNoFieldsPlaceholder(){p.el.$builder.find(".no-fields, .no-fields-preview").remove(),n(".wpforms-field-option:not(.wpforms-field-option-layout)").length&&p.el.$builder.find(".wpforms-field-submit").show()},updateNextFieldId(e){var t=n("#wpforms-field-id");t.length&&t.val(e+1)},getSelectedFields(){return p.MultiSelect?.getSelectedFields?.()??[]},isFieldsPanelActive(){return p.el.$fieldsPanel.hasClass("active")}};return p} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/keyboard-shortcuts.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/keyboard-shortcuts.min.js new file mode 100644 index 0000000..c6ac73f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/keyboard-shortcuts.min.js @@ -0,0 +1 @@ +export default function(e,t,r){let o={el:{},init(){o.setup(),o.bcInit(),o.el.$builder.on("wpformsBuilderReady",_.debounce(o.ready,250))},bcInit(){["builderHotkeys","openKeyboardShortcutsModal"].forEach(e=>{WPFormsBuilder[e]=o[e]})},setup(){o.el.$builder=r("#wpforms-builder")},ready(){var e=WPFormsBuilder.getElementsCache();o.el=e.elements,o.browser=e.browser,o.events()},events(){o.builderHotkeys(),o.el.$document.on("keydown",o.onKeyDownUndoRedo)},onKeyDownUndoRedo(e){var t;(o.isMac()?e.metaKey:e.ctrlKey)&&(t=WPForms.Admin.Builder.UndoRedo,90!==e.keyCode||e.shiftKey?90===e.keyCode&&e.shiftKey&&(e.preventDefault(),t?.redo()):(e.preventDefault(),t?.undo()))},builderHotkeys(){o.el.$document.on("keydown",function(e){if(!o.isMac()&&e.altKey&&83===e.keyCode)r(o.el.$sidebarToggle,o.el.$builder).trigger("click");else if(e.ctrlKey){switch(e.keyCode){case 72:r(o.el.$helpButton,o.el.$builder).trigger("click");break;case 80:t.open(wpforms_builder.preview_url);break;case 66:r(o.el.$embedButton,o.el.$builder).trigger("click");break;case 69:t.open(wpforms_builder.entries_url);break;case 83:r(o.el.$saveButton,o.el.$builder).trigger("click");break;case 81:r(o.el.$exitButton,o.el.$builder).trigger("click");break;case 191:o.openKeyboardShortcutsModal();break;case 84:r(o.el.$sidebarToggle,o.el.$builder).trigger("click");break;case 70:o.el.$addFieldsTab.trigger("click"),o.el.$fieldsSidebar.scrollTop(0),o.el.$searchInput.focus();break;default:return}return!1}})},openKeyboardShortcutsModal(){r(".wpforms-builder-keyboard-shortcuts").length?jconfirm.instances[jconfirm.instances.length-1].close():r.alert({title:wpforms_builder.shortcuts_modal_title,content:wpforms_builder.shortcuts_modal_msg+wp.template("wpforms-builder-keyboard-shortcuts")(),icon:"fa fa-keyboard-o",type:"blue",boxWidth:"550px",smoothContent:!1,buttons:{confirm:{text:wpforms_builder.close,btnClass:"btn-confirm",keys:["enter"]}},onOpenBefore(){this.$body.addClass("wpforms-builder-keyboard-shortcuts"),(o.browser.isLinux||o.browser.isWindows)&&this.$body.find(".shortcut-key.shortcut-key-ctrl-t").html("alts"),o.isMac()?this.$body.find(".shortcut-key.shortcut-key-ctrl-c, .shortcut-key.shortcut-key-ctrl-v").each(function(){r(this).find("i").first().text("⌘")}):this.$body.find(".shortcut-key.shortcut-key-ctrl-t").html("alts")}})},isUserTypingInField(){var e=o.el.$builder[0].ownerDocument.activeElement;return r(e).is('input, textarea, [contenteditable="true"]')},isMac(){return navigator.userAgent.includes("Macintosh")},pressMetaKey(e){return!!e&&(o.isMac()?e.metaKey:e.ctrlKey)},getMetaKeyName(){return o.isMac()?"⌘":"Ctrl"}};return o} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/actions.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/actions.min.js new file mode 100644 index 0000000..f0ff67c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/actions.min.js @@ -0,0 +1 @@ +export default function(e,l,a){let s={el:{},init(){s.setup(),s.el.$builder.on("wpformsBuilderReady",s.ready)},ready(){try{s.MultiSelect=WPForms.Admin.Builder.MultiSelect,s.FieldLayout=WPForms.Admin.Builder.FieldLayout,s.FieldRepeater=WPForms.Admin.Builder.FieldRepeater}catch(e){return void wpf.debug("MultiSelectActions: Dependency modules are not available.")}s.MultiSelect&&(s.el=WPFormsBuilder.getElementsCache()?.elements??{},s.events())},setup(){s.el.$builder=a("#wpforms-builder")},events(){s.el.$builder.on("click",'.wpforms-field-multi-field-menu .wpforms-context-menu-list-item[data-action="delete-multi"]',s.handleDeleteClick).on("click",'.wpforms-field-multi-field-menu .wpforms-context-menu-list-item[data-action="duplicate-multi"]',s.handleDuplicateClick).on("wpformsFieldMultiSelect",s.updateFirstSelectedClass).on("wpformsMultiFieldDuplicate",s.handleMultiFieldDuplicate).on("wpformsFieldMultiSelect",s.handleSidebarSwitch).on("wpformsFieldMultiSelectClear",s.handleSidebarSwitch)},handleDeleteClick(e){e.preventDefault(),e.stopPropagation();e=s.MultiSelect?.getSelectedFields();1{var l=a("#wpforms-field-"+e);"pagebreak"===l.data("field-type")&&l.hasClass("wpforms-field-entry-preview-not-deleted")?t.push({id:e,reason:"pagebreak_entry_preview"}):l.hasClass("no-delete")?t.push({id:e,reason:"no_delete"}):i.push(e)}),t.forEach(e=>{"pagebreak_entry_preview"===e.reason?s.youCantRemovePageBreakFieldPopup():"no_delete"===e.reason&&s.youCantRemoveFieldPopup()}),0!==i.length&&s.confirmMultiFieldDeletion(i)}},showMultiFieldConfirmation(e){let{title:l,fieldIds:i,confirmText:t,eventName:r,actionCallback:o}=e;e=i.length,e=1===e?t:t.replace("%s",""+e),e={ids:i,message:e};WPFormsUtils.triggerEvent(s.el.$builder,r,[e]).isDefaultPrevented()||a.confirm({title:l,content:e.message,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){o(i)}},cancel:{text:wpforms_builder.cancel}}})},confirmMultiFieldDeletion(e){s.showMultiFieldConfirmation({title:wpforms_builder.delete_confirm_multiple_title,fieldIds:e,confirmText:1===e.length?wpforms_builder.delete_confirm:wpforms_builder.delete_confirm_multiple,eventName:"wpformsBeforeMultiFieldDeleteAlert",actionCallback:s.multiFieldDeleteById})},multiFieldDeleteById(e){s.el.$builder.trigger("wpformsBeforeMultiFieldDelete",[e]),WPForms.Admin.Builder.UndoRedo?.preventRecord(!0),e.forEach(e=>{var l=a("#wpforms-field-"+e),i=a("#wpforms-field-option-"+e),t=l.data("field-type"),r=l.parents(".wpforms-field-layout-columns");s.el.$builder.trigger("wpformsBeforeFieldDelete",[e,t]),l.remove(),i.remove(),s.el.$builder.trigger("wpformsFieldDelete",[e,t,r])}),WPFormsBuilder?.fieldTabToggle("add-fields");var l=a(".wpforms-field-option"),i=s.el.$builder.find(".wpforms-field-submit");l.length<1&&(s.el.$sortableFieldsWrap.append(s.el.$noFieldsPreview.clone()),s.el.$fieldOptions.append(s.el.$noFieldsOptions.clone()),i.hide()),l.filter(":not(.wpforms-field-option-layout)").length||i.hide(),WPForms.Admin.Builder.UndoRedo?.preventRecord("continue"),s.el.$builder.trigger("wpformsMultiFieldDelete",[e])},showErrorPopup(e){var{title:e=wpforms_builder.heads_up,content:l,icon:i="fa fa-exclamation-circle",type:t="red",buttonText:r=wpforms_builder.ok}=e;a.alert({title:e,content:l,icon:i,type:t,buttons:{confirm:{text:r,btnClass:"btn-confirm",keys:["enter"]}}})},youCantRemovePageBreakFieldPopup(){s.showErrorPopup({content:wpforms_builder.entry_preview_require_page_break})},youCantRemoveFieldPopup(){s.showErrorPopup({content:wpforms_builder.you_cant_remove_field})},multiFieldDuplicate(e){if(Array.isArray(e)&&0!==e.length){let l=[],i=[];e.forEach(e=>{a("#wpforms-field-"+e).hasClass("no-duplicate")?i.push({id:e,reason:"no_duplicate"}):l.push(e)}),i.forEach(e=>{"no_duplicate"===e.reason&&s.youCantDuplicateFieldPopup()}),0!==l.length&&s.confirmMultiFieldDuplication(l)}},confirmMultiFieldDuplication(e){s.showMultiFieldConfirmation({title:1===e.length?wpforms_builder.duplicate_confirm_title:wpforms_builder.duplicate_confirm_multiple_title,fieldIds:e,confirmText:1===e.length?wpforms_builder.duplicate_confirm:wpforms_builder.duplicate_confirm_multiple.replaceAll("%s",e.length),eventName:"wpformsBeforeMultiFieldDuplicateAlert",actionCallback:s.multiFieldDuplicateById})},multiFieldDuplicateById(e){if(0===e.length)s.showErrorPopup({title:wpforms_builder.field_duplicate_error,content:wpforms_builder.field_duplicate_nested_error});else{let r=[],o=e[e.length-1];s.el.$builder.trigger("wpformsBeforeMultiFieldDuplicate",[e]),WPFormsBuilder.UndoRedo?.preventRecord(!0),e.forEach(e=>{var l,i,t;s.MultiSelect?.isDuplicationAllowed?.(e)&&(l=a("#wpforms-field-"+e),WPFormsUtils.triggerEvent(s.el.$builder,"wpformsBeforeFieldDuplicate",[e,l]).isDefaultPrevented()||(i=l.data("field-type"),i=s.getDuplicatePosition(o,i),i=WPFormsBuilder.fieldDuplicateRoutine?.(e,!0,i),r.push(i),o=i,s.handleFieldPositioning(e,i),t=a("#wpforms-field-"+i),WPFormsUtils.triggerEvent(s.el.$builder,"wpformsFieldDuplicated",[e,l,i,t])))}),WPFormsBuilder.increaseNextFieldIdAjaxRequest?.(),WPFormsBuilder.UndoRedo?.preventRecord(!1),s.el.$builder.trigger("wpformsMultiFieldDuplicate",[e,r])}},getDuplicatePosition(e=null,l=null){var i=s.MultiSelect?.getSelectedFields?.()??[];if(!(e=e??i[i.length-1]))return s.el.$builder.find(".wpforms-field-wrap > .wpforms-field:not(.wpforms-field-pagebreak)").last().data("field-id");i=a("#wpforms-field-"+e).closest(".wpforms-layout-column");if(!i.length)return e;var t=i.closest(".wpforms-field");let r=WPForms.Admin.Builder.FieldLayout?.isFieldAllowedInColumn(l,i);return(r="repeater"===t.data("field-type")?WPForms.Admin.Builder.FieldRepeater?.filterIsFieldAllowedDragInColumn(r,l,i):r)?e:t.data("field-id")},handleFieldPositioning(e,l){var e=a("#wpforms-field-"+e),i=a("#wpforms-field-"+l),l=(e.closest(".wpforms-layout-column").length&&s.FieldLayout?.positionFieldInColumn(l,i.index()-1,i.parent()),e.closest(".wpforms-field-repeater"));l.length&&s.FieldRepeater?.adjustRowsAppearance(l.data("field-id"))},youCantDuplicateFieldPopup(){s.showErrorPopup({title:wpforms_builder.field_locked,content:wpforms_builder.field_locked_no_duplicate_msg,icon:"fa fa-info-circle",type:"blue",buttonText:wpforms_builder.close})},updateFirstSelectedClass(){a(".wpforms-field.first-selected").removeClass("first-selected");var e=s.MultiSelect?.getSelectedFields();if(!(e.length<=1)){let r=null,o=Number.MAX_SAFE_INTEGER,d=-Number.MAX_SAFE_INTEGER,n=[];e.forEach(e=>{var l,i,t=a("#wpforms-field-"+e);t.length&&(l=(i=t.offset()).top,i=i.left+t.outerWidth(),(ld)&&(o=l,d=i,r=e),s.MultiSelect?.isDuplicationAllowed(e)||n.push(e))});var l=a("#wpforms-field-"+r);l.addClass("first-selected"),l.find('.wpforms-context-menu-list-item[data-action="duplicate-multi"]').toggleClass("wpforms-hidden",n.length===e.length)}},handleMultiFieldDuplicate(e,l,i){l.forEach(e=>{a("#wpforms-field-"+e).removeClass("active selected first-selected")}),i.forEach(e=>{a("#wpforms-field-"+e).removeClass("selected").css("margin-bottom","")}),s.MultiSelect?.clearMultiSelections()},handleSidebarSwitch(){var e=s.MultiSelect?.getSelectedFields();1{t("#wpforms-field-"+e).removeClass("active selected first-selected")})}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/multi-select.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/multi-select.min.js new file mode 100644 index 0000000..a56c28e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/multi-select/multi-select.min.js @@ -0,0 +1 @@ +export default function(e,l,r){let o={el:{},mouse:{},init(){o.setup(),o.el.$builder.on("wpformsBuilderReady",o.ready)},ready(){o.el=WPFormsBuilder.getElementsCache()?.elements??{},o.events()},setup(){o.el.$builder=r("#wpforms-builder")},events(){o.el.$builder.on("wpformsFieldTabToggleBefore",o.handleFieldTabToggleBefore),o.el.$builder.on("contextmenu",".wpforms-field",o.clearMultiSelections),o.el.$document.on("mousemove",e=>{o.mouse.x=e.pageX,o.mouse.y=e.pageY})},handleFieldTabToggleBefore(e,l,t,i){t?t.ctrlKey||t.metaKey||t.shiftKey?(o.handleMultiSelectLogic(l,t),i(!1)):(o.clearMultiSelections(),i(!0)):i(!0)},handleMultiSelectLogic(e,l){var t=r("#wpforms-field-"+e),i=o.isContainerField(t),s=o.getSelectedFields();0{this.close()},3e3)},init(e){let l="";var t={content:l=e.hasClass("wpforms-field-repeater")?wpforms_builder.multi_select.repeater_tooltip??"":e.hasClass("wpforms-field-layout")?wpforms_builder.multi_select.layout_tooltip??"":wpforms_builder.multi_select.general_tooltip??"",trigger:"manual",interactive:!1,animationDuration:200,delay:0,side:["top"],contentAsHTML:!0,theme:["tooltipster-noir"],functionPosition:(e,l,t)=>(t.coord.top=o.mouse.y-42,t.coord.left=o.mouse.x+2,t)};e.tooltipster(t)},close(){o.el.$builder.find(".wpforms-field").each(function(){var e=r(this);if(e.hasClass("tooltipstered"))try{e.tooltipster("close")}catch(e){}})}}};return o} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo.min.js new file mode 100644 index 0000000..d91a404 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo.min.js @@ -0,0 +1,12 @@ +export default function(e,n,o){let r={config:{actionNameSeparator:"→"},el:{},commandClasses:new Map,undoManager:null,trackedInputs:new Map,trackedElements:new Map,suppressCount:0,executeTriggerEvents:!0,preventRunCommand:!1,preventRecordingCommand:!1,init(){r.undoManager=new Oops({maxStackSize:100,mergeWindow:50,snapshotInterval:100,compressThreshold:500}),r.setup(),r.el.$builder.on("wpformsBuilderReady",_.debounce(r.ready,250))},setup(){r.el.$document=o(e),r.el.$builder=o("#wpforms-builder")},ready(){try{r.KeyboardShortcuts=WPForms.Admin.Builder.KeyboardShortcuts}catch(e){return void wpf.debug("UndoRedo: Dependency modules are not available.")}(WPFormsBuilder.UndoRedo=r).setupUI(),r.events(),wpf.debug("Undo/Redo initialized")},events(){r.undoManager.addChangeListener(r.updateUI),r.el.$builder.on("wpformsPanelSwitched",r.onPanelSwitched)},registerCommand(e){r.commandClasses.set(e.id??e.name,e)},getCommand(e,...n){var o=r.commandClasses.get(e);return o?new o(...n):(wpf.debug(`Undo/Redo Command "${e}" not found.`),null)},beginSuppress(){r.suppressCount++},endSuppress(){0{r.endSuppress()})}},preventRecord(e){r.preventRecordingStack=r.preventRecordingStack??[],"continue"===e?(r.preventRecordingStack.pop(),r.preventRecordingCommand=Boolean(r.preventRecordingStack[r.preventRecordingStack.length-1])):e?(r.preventRecordingStack.push(e),r.preventRecordingCommand=!0):(r.preventRecordingStack=[],r.preventRecordingCommand=!1)},isRecordPrevented(){return r.preventRecordingCommand},record(e){r.preventRecordingCommand||(r.execute(e,!1),r.preventRecord("continue"),wpf.debug("Undo/Redo command recorded:",e.actionName??"",e))},getCurrentCommand(e="undo"){e="undo"===e?r.undoManager.undoStack:r.undoManager.redoStack;return e?.[e?.length-1]??null},run(n="undo"){if(n="undo"===n?"undo":"redo",r.canRun(n)){let e=r.getCurrentCommand(n);var o=e?.getActionName?.()||wp.i18n.__("Change","wpforms");try{r.undoManager[n]()}finally{Promise.resolve().then(()=>{r.endSuppress(),r.el.$builder.trigger("wpformsUndoRedoRun",[n,e])})}var d="undo"===n?wp.i18n.__("Undone","wpforms"):wp.i18n.__("Redone","wpforms");r.lastExecuted={commandType:n,command:e},r.showNotification([d+":",o].join(" "))}},revertRun(){r.lastExecuted&&r.run("undo"===r.lastExecuted.commandType?"redo":"undo")},undo(){r.run("undo")},redo(){r.run("redo")},setupUI(){var e,n=o(".wpforms-panel-revisions-button");0!==n.length&&((e=o(`
            + + +
            `)).find(".wpforms-btn-undo").attr("title",wp.i18n.__("Undo (Ctrl+Z)","wpforms")),e.find(".wpforms-btn-redo").attr("title",wp.i18n.__("Redo (Ctrl+Y)","wpforms")),n.before(e),r.el.$btnUndo=e.find(".wpforms-btn-undo"),r.el.$btnRedo=e.find(".wpforms-btn-redo"),r.el.$btnsUndoRedo=e,r.el.$btnUndo.on("click",r.undo),r.el.$btnRedo.on("click",r.redo))},updateUI(){var e;r.el.$btnsUndoRedo?.length&&(e=!r.canUndo()&&!r.canRedo()&&!r.preventRunCommand,r.el.$btnsUndoRedo.toggleClass("wpforms-hidden",e),r.updateButton("undo"),r.updateButton("redo"))},updateButton(e="undo"){e="undo"===e?"undo":"redo";var n=r.canRun(e);let o=r.getCurrentCommand(e)?.getActionName?.();o=o?(d=r.config.actionNameSeparator.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=new RegExp(String.raw`\s${d}$`),o.replace(d,"")):"";var d=r.KeyboardShortcuts.isMac()?"⌘":"Ctrl",d={undo:`(${d}+Z)`,redo:`(${d}+Shift+Z)`},d=[{undo:wp.i18n.__("Undo","wpforms"),redo:wp.i18n.__("Redo","wpforms")}[e],o,d[e]].filter(Boolean).join(" ");({undo:r.el.$btnUndo,redo:r.el.$btnRedo})[e].prop("disabled",!n).attr("title",d)},showNotification(e){wpf.debug(e)},onPanelSwitched(e,n){r.el.$btnsUndoRedo.toggleClass("wpforms-hidden","setup"===n)}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-command-base.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-command-base.min.js new file mode 100644 index 0000000..37e37d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-command-base.min.js @@ -0,0 +1 @@ +export default function(e,n,o){class t{constructor(e){this.args=e,this.actionName=""}execute(){}undo(){}canMerge(e){return!1}merge(e){}getActionName(){return this.actionName}getElement(e=this.args?.$newElement){return r.UndoRedoHelpers.getElement(e)}replaceDOMElement(e,n,o=!1){r.UndoRedoHelpers.replaceDOMElement(e,n,o)}replaceDOMElementContent(e,n){r.UndoRedoHelpers.replaceDOMElementContent(e,n)}}let r={init(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,r.undoManager=r.UndoRedo.undoManager,r.actionNameSeparator=r.UndoRedo.config.actionNameSeparator}catch(e){wpf.debug("UndoRedoActionCommandBase: Dependency modules are not available.")}},get(){return t}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-add.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-add.min.js new file mode 100644 index 0000000..f011313 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-add.min.js @@ -0,0 +1 @@ +export default function(e,d,l){class o extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionFieldAddCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){r.UndoRedo.executeTriggerEvents&&this.addField(this.args)}undo(){r.UndoRedo.executeTriggerEvents&&this.deleteField(this.args)}addField(e){r.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(r.el.$allFieldsPreview,e.new.$allFieldsPreview),this.replaceDOMElementContent(r.el.$allFieldsOptions,e.new.$allFieldsOptions);var d={...e.eventOptions,isUndoRedo:!0};r.el.$builder.trigger("wpformsFieldAdd",[e.fieldId,e.type,d,e.$fieldPreview,e.$fieldOptions]),r.UndoRedoHelpersFields.applyAddFieldsButtonAttributes(e.type,e.new.$addFieldsTab),r.UndoRedoHelpersFields.reInitFields(e.fieldId),r.UndoRedo.preventRecord(!1)}deleteField(e){r.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(r.el.$allFieldsPreview,e.old.$allFieldsPreview),this.replaceDOMElementContent(r.el.$allFieldsOptions,e.old.$allFieldsOptions);var d=l("#wpforms-field-"+e.fieldId).parents(".wpforms-field-layout-columns");r.el.$builder.trigger("wpformsFieldDelete",[e.fieldId,e.type,d]),r.UndoRedoHelpersFields.applyAddFieldsButtonAttributes(e.type,e.old.$addFieldsTab),r.UndoRedoHelpersFields.reInitFields(),r.UndoRedo.preventRecord(!1)}getActionName(){var e,d;return this.actionName||(e=r.UndoRedoHelpersFields.getFieldName(this.args.type),d=`(#${this.args.fieldId})`,[wp.i18n.__("Add Field","wpforms"),r.actionNameSeparator,e,d].filter(Boolean).join(" "))}}let r={el:{},sel:{},undoManager:null,init(){r.setup(),r.el.$builder.on("wpformsBuilderReady",_.debounce(r.ready,250))},setup(){r.el.$document=l(e),r.el.$builder=l("#wpforms-builder"),r.el.$allFieldsPreview=r.el.$builder.find(".wpforms-field-wrap"),r.el.$allFieldsOptions=r.el.$builder.find(".wpforms-field-options")},ready(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,r.undoManager=r.UndoRedo.undoManager,r.actionNameSeparator=r.UndoRedo.config.actionNameSeparator,r.el={...r.el,...r.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionFieldAdd: Dependency modules are not available.")}r.UndoRedo.registerCommand(o),r.events()},events(){r.el.$builder.on("wpformsBeforeFieldAdd",r.onBeforeFieldAdd).on("wpformsFieldAddDragStart wpformsBeforeFieldAddOnClick",r.onBeforeFieldAddOnClick).on("wpformsFieldAdd",r.onFieldAdd)},onBeforeFieldAddOnClick(e,d){r.UndoRedo.isRecordPrevented()||("pagebreak"===d?r.originalPagebreakId="catch":(r.UndoRedoHelpersFields.getCurrentFieldsElements(),r.UndoRedoHelpersFields.getCurrentAddFieldsTab()))},onBeforeFieldAdd(e,d,l,o){r.UndoRedo.isRecordPrevented()||"pagebreak"===l&&["top","bottom"].includes(o.position)&&"catch"!==r.originalPagebreakId||"pagebreak"===l&&(r.originalPagebreakId=d,r.UndoRedoHelpersFields.getCurrentFieldsElements(),r.UndoRedoHelpersFields.getCurrentAddFieldsTab())},onFieldAdd(e,d,l,o,i,n){r.UndoRedo.isRecordPrevented()||o&&n.length&&i.length&&(o=o??{},"pagebreak"===l&&!r.UndoRedoHelpersFields.isTopBottomPagebreaksAdded()||(d="pagebreak"===l?r.originalPagebreakId:d,l=r.UndoRedo.getCommand("ActionFieldAddCommand",{fieldId:d,type:l,eventOptions:{...o},$fieldPreview:i.clone().css("margin-bottom",""),$fieldOptions:n.clone(),fieldSettings:wpf.getField(d),event:e.type??"",old:{...r.UndoRedoHelpersFields.getTrackedFieldsElements(),$addFieldsTab:r.UndoRedoHelpersFields.getTrackedAddFieldsTab()},new:{...r.UndoRedoHelpersFields.getCurrentFieldsElements(),$addFieldsTab:r.UndoRedoHelpersFields.getCurrentAddFieldsTab()}}),r.UndoRedo.record(l)))}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-delete.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-delete.min.js new file mode 100644 index 0000000..8330843 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-delete.min.js @@ -0,0 +1 @@ +export default function(e,d,l){class o extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionFieldDeleteCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){i.UndoRedo.executeTriggerEvents&&this.deleteField(this.args)}undo(){i.UndoRedo.executeTriggerEvents&&this.addField(this.args)}deleteField(e){i.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(i.el.$allFieldsPreview,e.new.$allFieldsPreview),this.replaceDOMElementContent(i.el.$allFieldsOptions,e.new.$allFieldsOptions);var d=l("#wpforms-field-"+e.fieldId).parents(".wpforms-field-layout-columns");i.el.$builder.trigger("wpformsFieldDelete",[e.fieldId,e.type,d]),i.UndoRedoHelpersFields.applyAddFieldsButtonAttributes(e.type,e.new.$addFieldsTab),i.UndoRedoHelpersFields.reInitFields(),i.UndoRedo.preventRecord(!1)}addField(e){i.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(i.el.$allFieldsPreview,e.old.$allFieldsPreview),this.replaceDOMElementContent(i.el.$allFieldsOptions,e.old.$allFieldsOptions);var d=i.el.$allFieldsPreview.find("#wpforms-field-"+e.fieldId),l=i.el.$allFieldsOptions.find("#wpforms-field-option-"+e.fieldId);i.el.$builder.trigger("wpformsFieldAdd",[e.fieldId,e.type,{isUndoRedo:!0},d,l]),i.UndoRedoHelpersFields.applyAddFieldsButtonAttributes(e.type,e.old.$addFieldsTab),i.UndoRedoHelpersFields.reInitFields(e.fieldId),i.UndoRedo.preventRecord(!1)}getActionName(){var e,d;return this.actionName||(e=i.UndoRedoHelpersFields.getFieldName(this.args.type),d=`(#${this.args.fieldId})`,[wp.i18n.__("Delete Field","wpforms"),i.actionNameSeparator,e,d].filter(Boolean).join(" "))}}let i={el:{},trackFieldSettings:{},init(){i.setup(),i.el.$builder.on("wpformsBuilderReady",_.debounce(i.ready,250))},setup(){i.el.$document=l(e),i.el.$builder=l("#wpforms-builder"),i.el.$allFieldsPreview=i.el.$builder.find(".wpforms-field-wrap"),i.el.$allFieldsOptions=i.el.$builder.find(".wpforms-field-options")},ready(){try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,i.undoManager=i.UndoRedo.undoManager,i.actionNameSeparator=i.UndoRedo.config.actionNameSeparator,i.el={...i.el,...i.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionFieldDelete: Dependency modules are not available.")}i.UndoRedo.registerCommand(o),i.events()},events(){i.el.$builder.on("wpformsBeforeFieldDelete",i.onBeforeFieldDelete).on("wpformsFieldDelete",i.onFieldDelete)},onBeforeFieldDelete(e,d,l){i.UndoRedo.isRecordPrevented()||(i.trackFieldSettings[d]=wpf.getField(d),i.UndoRedoHelpersFields.getCurrentFieldsElements(),i.UndoRedoHelpersFields.getCurrentAddFieldsTab())},onFieldDelete(e,d,l){i.UndoRedo.isRecordPrevented()||_.debounce(i.recordCommand,0)(e,d,l)},recordCommand(e,d,l){l=i.UndoRedo.getCommand("ActionFieldDeleteCommand",{fieldId:d,type:l,eventOptions:{},fieldSettings:i.trackFieldSettings[d],event:e.type??"",old:{...i.UndoRedoHelpersFields.getTrackedFieldsElements(),$addFieldsTab:i.UndoRedoHelpersFields.getTrackedAddFieldsTab()},new:{...i.UndoRedoHelpersFields.getCurrentFieldsElements(),$addFieldsTab:i.UndoRedoHelpersFields.getCurrentAddFieldsTab()}});i.UndoRedo.record(l)}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-duplicate.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-duplicate.min.js new file mode 100644 index 0000000..2d79ebb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-duplicate.min.js @@ -0,0 +1 @@ +export default function(e,d,i){class l extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionFieldDuplicateCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){n.UndoRedo.executeTriggerEvents&&this.duplicateField(this.args)}undo(){n.UndoRedo.executeTriggerEvents&&this.deleteField(this.args)}duplicateField(e){n.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(n.el.$allFieldsPreview,e.new.$allFieldsPreview),this.replaceDOMElementContent(n.el.$allFieldsOptions,e.new.$allFieldsOptions);var d=i("#wpforms-field-"+e.fieldId),l=i("#wpforms-field-"+e.newFieldId);n.el.$builder.trigger("wpformsFieldDuplicated",[e.fieldId,d,e.newFieldId,l]),n.UndoRedoHelpersFields.reInitFields(e.newFieldId),n.UndoRedo.preventRecord(!1)}deleteField(e){n.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(n.el.$allFieldsPreview,e.old.$allFieldsPreview),this.replaceDOMElementContent(n.el.$allFieldsOptions,e.old.$allFieldsOptions);var d=i("#wpforms-field-"+e.newFieldId).parents(".wpforms-field-layout-columns");n.el.$builder.trigger("wpformsFieldDelete",[e.newFieldId,e.fieldSettings?.type,d]),n.UndoRedoHelpersFields.reInitFields(e.fieldId),n.UndoRedo.preventRecord(!1)}getActionName(){var e,d;return this.actionName||(e=n.UndoRedoHelpersFields.getFieldName(null,this.args.fieldId),d=`(#${this.args.fieldId})`,[wp.i18n.__("Duplicate Field","wpforms"),n.actionNameSeparator,e,d].filter(Boolean).join(" "))}}let n={el:{},trackFieldSettings:{},init(){n.setup(),n.el.$builder.on("wpformsBuilderReady",_.debounce(n.ready,250))},setup(){n.el.$document=i(e),n.el.$builder=i("#wpforms-builder"),n.el.$allFieldsPreview=n.el.$builder.find(".wpforms-field-wrap"),n.el.$allFieldsOptions=n.el.$builder.find(".wpforms-field-options")},ready(){try{n.UndoRedo=WPForms.Admin.Builder.UndoRedo,n.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,n.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,n.undoManager=n.UndoRedo.undoManager,n.actionNameSeparator=n.UndoRedo.config.actionNameSeparator,n.el={...n.el,...n.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionFieldDuplicate: Dependency modules are not available.")}n.UndoRedo.registerCommand(l),n.events()},events(){n.el.$builder.on("wpformsBeforeFieldDuplicate",n.onBeforeFieldDuplicate).on("wpformsBeforeLayoutFieldDuplicate",n.onBeforeFieldDuplicate).on("wpformsFieldDuplicated",n.onFieldDuplicate)},onBeforeFieldDuplicate(e,d){n.UndoRedo.isRecordPrevented()||(n.trackFieldSettings[d]=wpf.getField(d),n.UndoRedoHelpersFields.getCurrentFieldsElements())},onFieldDuplicate(e,d,l,i,o){n.UndoRedo.isRecordPrevented()||(i=n.UndoRedo.getCommand("ActionFieldDuplicateCommand",{fieldId:d,newFieldId:i,$fieldPreview:l,$newFieldPreview:o,event:e.type??"",fieldSettings:n.trackFieldSettings[d]??wpf.getField(d),old:n.UndoRedoHelpersFields.getTrackedFieldsElements(),new:n.UndoRedoHelpersFields.getCurrentFieldsElements()}),n.UndoRedo.record(i))}};return n} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-move.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-move.min.js new file mode 100644 index 0000000..9cbeac7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-field-move.min.js @@ -0,0 +1 @@ +export default function(e,d,o){class l extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionFieldMoveCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){t.UndoRedo.executeTriggerEvents&&this.moveField(this.args,"new")}undo(){t.UndoRedo.executeTriggerEvents&&this.moveField(this.args,"old")}moveField(e,d){t.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(t.el.$allFieldsPreview,e[d].$allFieldsPreview),this.replaceDOMElementContent(t.el.$allFieldsOptions,e[d].$allFieldsOptions),t.el.$builder.trigger("wpformsFieldMove",[e.ui,e.fieldId,e.multiSelectFields]),t.UndoRedoHelpersFields.reInitFields(e.fieldId),t.UndoRedo.preventRecord(!1)}getActionName(){var e,d;return this.actionName||(e=t.UndoRedoHelpersFields.getFieldName(this.args.type),d=`(#${this.args.fieldId})`,[wp.i18n.__("Move Field","wpforms"),t.actionNameSeparator,e,d].filter(Boolean).join(" "))}}let t={el:{},trackedFieldId:null,trackedFieldType:null,init(){t.setup(),t.el.$builder.on("wpformsBuilderReady",_.debounce(t.ready,250))},setup(){t.el.$document=o(e),t.el.$builder=o("#wpforms-builder"),t.el.$allFieldsPreview=t.el.$builder.find(".wpforms-field-wrap"),t.el.$allFieldsOptions=t.el.$builder.find(".wpforms-field-options")},ready(){try{t.UndoRedo=WPForms.Admin.Builder.UndoRedo,t.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,t.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,t.undoManager=t.UndoRedo.undoManager,t.actionNameSeparator=t.UndoRedo.config.actionNameSeparator,t.el={...t.el,...t.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionFieldMove: Dependency modules are not available.")}t.UndoRedo.registerCommand(l),t.events()},events(){t.el.$builder.on("wpformsBeforeFieldDragStart",t.onFieldDragStart).on("wpformsFieldMove",t.onFieldMove).on("wpformsMultiFieldMove",t.onMultiFieldMove)},onFieldDragStart(e,d){var l;t.UndoRedo.isRecordPrevented()||void 0!==d&&(l=o("#wpforms-field-"+d),t.trackedFieldId=d,t.trackedFieldType=l.data("field-type"),t.UndoRedoHelpersFields.getCurrentFieldsElements())},onFieldMove(e,d,l,o){o?.length||t.recordCommand(e,d,null)},onMultiFieldMove(e,d,l,o){o?.length&&t.recordCommand(e,d,o)},recordCommand(e,d,l){var o,i,n,r;t.UndoRedo.isRecordPrevented()||t.trackedFieldId&&(r=t.trackedFieldId,o=t.trackedFieldType,i=t.UndoRedoHelpersFields.getTrackedFieldsElements(),n=t.UndoRedoHelpersFields.getCurrentFieldsElements(),t.isPositionUnchanged(i,n)||(r=t.UndoRedo.getCommand("ActionFieldMoveCommand",{fieldId:r,type:o,ui:d??null,multiSelectFields:l??null,event:e.type??"",old:i,new:n}),t.UndoRedo.record(r)),t.resetTracking())},isPositionUnchanged(e,d){return!e?.$allFieldsPreview||!d?.$allFieldsPreview||e.$allFieldsPreview.html()===d.$allFieldsPreview.html()},resetTracking(){t.trackedFieldId=null,t.trackedFieldType=null}};return t} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-image-add-remove.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-image-add-remove.min.js new file mode 100644 index 0000000..af2bcd5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-image-add-remove.min.js @@ -0,0 +1 @@ +export default function(e,o,n){class t extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionImageAddRemoveCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){a.UndoRedo.executeTriggerEvents&&this.updateContainer(this.args,"new")}undo(){a.UndoRedo.executeTriggerEvents&&this.updateContainer(this.args,"old")}updateContainer(o,n){if(o[n="new"===n?"new":"old"].$container?.length){a.UndoRedo.preventRecord(!0);var t=a.getContainer(o[n].$container);this.replaceDOMElementContent(t,o[n].$container);let e;e="wpformsImageUploadChange"===o.event?[o.$container,o.attachment]:[o.$button,o.$container],a.el.$builder.trigger(o.event,e),a.UndoRedo.preventRecord(!1)}}getActionName(){var e,o,n;return this.actionName||(e={add:wp.i18n.__("Select image","wpforms"),remove:wp.i18n.__("Remove image","wpforms")},n=a.UndoRedoHelpers.getElement(this.args.new.$container),o=a.UndoRedoHelpers.getSectionTitle(n),n=a.UndoRedoHelpers.getInputLabel(n),[e[this.args.action],a.actionNameSeparator,o,a.actionNameSeparator,n].filter(Boolean).join(" "))}}let a={el:{},sel:{buttons:[".wpforms-image-upload .wpforms-image-upload-remove",".wpforms-image-upload-control .wpforms-image-remove-button",".wpforms-image-upload .wpforms-image-upload-add",".wpforms-image-upload-control .wpforms-image-upload-button"].join(", "),container:".wpforms-image-upload, .wpforms-image-upload-control"},undoManager:null,init(){a.setup(),a.el.$builder.on("wpformsBuilderReady",_.debounce(a.ready,250))},setup(){a.el.$document=n(e),a.el.$builder=n("#wpforms-builder")},ready(){try{a.UndoRedo=WPForms.Admin.Builder.UndoRedo,a.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,a.actionNameSeparator=a.UndoRedo.config.actionNameSeparator,a.el={...a.el,...a.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionImageAddRemove: Dependency modules are not available.")}a.UndoRedo.registerCommand(t),a.events()},events(){a.el.$builder.on("mousedown",a.sel.buttons,a.onMousedown).on("wpformsImageUploadAdd wpformsImageUploadRemove",a.onImageUpload).on("wpformsImageUploadChange",a.onImageUploadChange)},onMousedown(e){a.UndoRedo.isRecordPrevented()||(a.$trackButton=n(e.currentTarget),a.$trackContainer=a.getContainer(a.$trackButton),a.UndoRedoHelpers.getCurrentContainer(a.$trackContainer))},onImageUpload(e,o,n,t=null){a.UndoRedo.isRecordPrevented()||(n=a.UndoRedo.getCommand("ActionImageAddRemoveCommand",{action:a.$trackButton.hasClass("wpforms-image-upload-add")?"add":"remove",$button:a.$trackButton.clone(!0),$container:n,attachment:t,fieldId:a.$trackContainer.closest(".wpforms-field-option").data("field-id"),event:e.type??"",old:{$container:a.UndoRedoHelpers.getTrackedContainer(a.$trackContainer)},new:{$container:a.UndoRedoHelpers.getCurrentContainer(a.$trackContainer)}}),a.UndoRedo.record(n))},onImageUploadChange(e,o,n){a.onImageUpload(e,a.$trackButton,o,n)},getContainer(e){return(e=a.UndoRedoHelpers.getElement(e)).closest(a.sel.container)}};return a} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-items-add-remove.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-items-add-remove.min.js new file mode 100644 index 0000000..50d6f83 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-items-add-remove.min.js @@ -0,0 +1 @@ +export default function(e,o,i){class n extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionItemsAddRemoveCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){r.UndoRedo.executeTriggerEvents&&this.updateContainer(this.args,"new")}undo(){r.UndoRedo.executeTriggerEvents&&this.updateContainer(this.args,"old")}updateContainer(o,n){if(o[n="new"===n?"new":"old"].$container?.length){r.UndoRedo.preventRecord(!0);let e;e=o.connectionId?(d=i(`.wpforms-builder-provider-connection[data-connection_id="${o.connectionId}"]`),t=o[n].$container.attr("class"),d.find(`[class="${t}"]`)):o[n].$container;var t,d=r.getContainer(e);this.replaceDOMElementContent(d,o[n].$container),r.reInitContainer(d),r.UndoRedo.preventRecord(!1)}}getActionName(){var e,o,n;return this.actionName||(e=(e={add:wp.i18n.__("Add item","wpforms"),remove:wp.i18n.__("Remove item","wpforms"),"ai-choices":wp.i18n.__("Add AI choices","wpforms"),"bulk-add":wp.i18n.__("Bulk add choices","wpforms"),"conditional-rule-add":wp.i18n.__("Add Conditional Logic Rule","wpforms"),"conditional-rule-delete":wp.i18n.__("Delete Conditional Logic Rule","wpforms"),"conditional-groups-add":wp.i18n.__("Add Conditional Logic Group","wpforms")})[this.args.source]??e[this.args.action],n=r.UndoRedoHelpers.getElement(this.args.new.$container),o=r.UndoRedoHelpers.getSectionTitle(n),n=r.UndoRedoHelpers.getInputLabel(n),[e,r.actionNameSeparator,o,r.actionNameSeparator,n].filter(Boolean).join(" "))}}let r={el:{},sel:{buttons:[".wpforms-undo-redo-container .add",".wpforms-undo-redo-container .remove",".wpforms-undo-redo-container .add button",".wpforms-undo-redo-container .delete button",".wpforms-undo-redo-container .wpforms-conditional-rule-add",".wpforms-undo-redo-container .wpforms-conditional-rule-delete",".wpforms-undo-redo-container .wpforms-conditional-groups-add"].join(","),bulkAddButton:".bulk-add-insert",insertAiChoicesButton:".wpforms-ai-chat-choices-insert",clRuleAddButton:".wpforms-conditional-rule-add",clRuleDeleteButton:".wpforms-conditional-rule-delete",clGroupsAddButton:".wpforms-conditional-groups-add",clGroupsContainer:".wpforms-conditional-groups",container:".wpforms-undo-redo-container"},undoManager:null,init(){r.setup(),r.el.$builder.on("wpformsBuilderReady",_.debounce(r.ready,250))},setup(){r.el.$document=i(e),r.el.$builder=i("#wpforms-builder")},ready(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.actionNameSeparator=r.UndoRedo.config.actionNameSeparator,r.el={...r.el,...r.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionItemsAddRemove: Dependency modules are not available.")}r.UndoRedo.registerCommand(n),r.events()},events(){r.el.$document.on("mousedown",r.sel.insertAiChoicesButton,r.onMousedown),r.el.$builder.on("mousedown",r.sel.buttons,r.onMousedown).on("mousedown",r.sel.bulkAddButton,r.onMousedown).on("wpformsProviderConnectionFieldDeleted",r.onFieldMapFieldDeleted).on("click",r.sel.buttons,_.debounce(r.onClick,0)).on("wpformsFieldChoiceAdd",r.onFieldChoiceAdd)},onMousedown(o){if(!r.UndoRedo.isRecordPrevented()){r.$trackButton=i(o.currentTarget);let e=r.$trackButton;r.$trackButton.is(r.sel.bulkAddButton)?e=r.$trackButton.closest(".bulk-add-display").next(".choices-list"):r.$trackButton.is(r.sel.insertAiChoicesButton)&&(o=r.$trackButton.closest("wpforms-ai-chat").attr("field-id"),e=i(`ul.choices-list[data-field-id="${o}"]`)),r.$trackContainer=r.getContainer(e),r.$trackButton.is(r.sel.clRuleDeleteButton)&&1===r.$trackContainer.find(r.sel.clRuleDeleteButton).length?r.$trackContainer=null:r.UndoRedoHelpers.getCurrentContainer(r.$trackContainer)}},onFieldMapFieldDeleted(e,o,n){r.$trackButton=n.find(".js-wpforms-builder-provider-connection-fields-delete"),r.onClick(e,"field-map")},onClick(e,o){r.UndoRedo.isRecordPrevented()||r.$trackContainer?.length&&(o=r.UndoRedo.getCommand("ActionItemsAddRemoveCommand",{action:r.getAction(),$button:r.$trackButton.clone(!0),fieldId:r.$trackContainer.closest(".wpforms-field-option").data("field-id"),fieldType:r.$trackContainer.closest(".wpforms-field-option").find(".wpforms-field-option-hidden-type").val(),connectionId:r.$trackContainer.closest(".wpforms-builder-provider-connection").data("connection_id"),source:o,event:e.type??"",old:{$container:r.UndoRedoHelpers.getTrackedContainer(r.$trackContainer)},new:{$container:r.UndoRedoHelpers.getCurrentContainer(r.$trackContainer)}}),r.UndoRedo.record(o))},onFieldChoiceAdd(e){var o=arguments[arguments?.length-1];["bulk-add","ai-choices"].includes(o)&&r.onClick(e,o)},getContainer(e){return(e=r.UndoRedoHelpers.getElement(e)).is(".wpforms-undo-redo-container")?e:e.closest(".wpforms-undo-redo-container")},getAction(){var e=r.$trackButton.attr("class");return e.includes("conditional-rule")?e.includes("add")?"conditional-rule-add":"conditional-rule-delete":e.includes("conditional-groups-add")?"conditional-groups-add":e.includes("add")?"add":"remove"},reInitContainer(e){e.hasClass("choices-list")&&r.reInitChoicesList(e),WPForms.Admin.Builder.SmartTags.reinitWidgets(e)},reInitChoicesList(e){var o=e.data("field-id"),e=e.data("field-type");WPFormsBuilder.fieldChoiceUpdate(e,o)}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-delete.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-delete.min.js new file mode 100644 index 0000000..e1c7d2d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-delete.min.js @@ -0,0 +1 @@ +export default function(e,d,n){class l extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionMultiFieldDeleteCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){r.UndoRedo.executeTriggerEvents&&this.deleteFields(this.args)}undo(){r.UndoRedo.executeTriggerEvents&&this.addFields(this.args)}deleteFields(i){r.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(r.el.$allFieldsPreview,i.new.$allFieldsPreview),this.replaceDOMElementContent(r.el.$allFieldsOptions,i.new.$allFieldsOptions),i.fieldIds.forEach(e=>{var d=n("#wpforms-field-"+e).parents(".wpforms-field-layout-columns"),l=i.multiFieldSettings[e]?.type;r.el.$builder.trigger("wpformsFieldDelete",[e,l,d]),r.UndoRedoHelpersFields.applyAddFieldsButtonAttributes(l,i.new.$addFieldsTab)}),r.el.$builder.trigger("wpformsMultiFieldDelete",[i.fieldIds]),r.UndoRedoHelpersFields.reInitFields(),r.UndoRedo.preventRecord(!1)}addFields(t){r.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(r.el.$allFieldsPreview,t.old.$allFieldsPreview),this.replaceDOMElementContent(r.el.$allFieldsOptions,t.old.$allFieldsOptions);let o={isUndoRedo:!0};t.fieldIds.forEach(e=>{var d=n("#wpforms-field-"+e),l=n("#wpforms-field-option-"+e),i=t.multiFieldSettings[e]?.type;r.el.$builder.trigger("wpformsFieldAdd",[e,t.multiFieldSettings[e]?.type,o,d,l]),r.UndoRedoHelpersFields.applyAddFieldsButtonAttributes(i,t.old.$addFieldsTab)}),r.UndoRedoHelpersFields.reInitFields(),r.UndoRedo.preventRecord(!1)}getActionName(){var e;return this.actionName||(e="#"+this.args.fieldIds.join(", #"),[wp.i18n.__("Delete Fields","wpforms"),r.actionNameSeparator,e].filter(Boolean).join(" "))}}let r={el:{},trackFieldSettings:{},init(){r.setup(),r.el.$builder.on("wpformsBuilderReady",_.debounce(r.ready,250))},setup(){r.el.$document=n(e),r.el.$builder=n("#wpforms-builder"),r.el.$allFieldsPreview=r.el.$builder.find(".wpforms-field-wrap"),r.el.$allFieldsOptions=r.el.$builder.find(".wpforms-field-options")},ready(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,r.actionNameSeparator=r.UndoRedo.config.actionNameSeparator,r.el={...r.el,...r.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionMultiFieldDelete: Dependency modules are not available.")}r.UndoRedo.registerCommand(l),r.events()},events(){r.el.$builder.on("wpformsBeforeMultiFieldDelete",r.onBeforeMultiFieldDelete).on("wpformsMultiFieldDelete",r.onMultiFieldDelete)},onBeforeMultiFieldDelete(e,d){r.UndoRedo.isRecordPrevented()||(r.trackMultiFieldSettings=[],d.forEach(e=>{r.trackMultiFieldSettings[e]=wpf.getField(e)}),r.UndoRedoHelpersFields.getCurrentFieldsElements(),r.UndoRedoHelpersFields.getCurrentAddFieldsTab())},onMultiFieldDelete(e,d){r.UndoRedo.isRecordPrevented()||_.debounce(r.recordCommand,0)(e,d)},recordCommand(e,d){d=r.UndoRedo.getCommand("ActionMultiFieldDeleteCommand",{fieldIds:d,multiFieldSettings:r.trackMultiFieldSettings,event:e.type??"",old:{...r.UndoRedoHelpersFields.getTrackedFieldsElements(),$addFieldsTab:r.UndoRedoHelpersFields.getTrackedAddFieldsTab()},new:{...r.UndoRedoHelpersFields.getCurrentFieldsElements(),$addFieldsTab:r.UndoRedoHelpersFields.getCurrentAddFieldsTab()}});r.UndoRedo.record(d)}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-duplicate.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-duplicate.min.js new file mode 100644 index 0000000..e7b864a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-duplicate.min.js @@ -0,0 +1 @@ +export default function(e,l,o){class d extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionMultiFieldDuplicateCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){n.UndoRedo.executeTriggerEvents&&this.duplicateFields(this.args)}undo(){n.UndoRedo.executeTriggerEvents&&this.deleteFields(this.args)}duplicateFields(t){n.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(n.el.$allFieldsPreview,t.new.$allFieldsPreview),this.replaceDOMElementContent(n.el.$allFieldsOptions,t.new.$allFieldsOptions),t.fieldIds.forEach((e,l)=>{var l=t.newFieldIds[l],d=o("#wpforms-field-"+e),i=o("#wpforms-field-"+l);n.el.$builder.trigger("wpformsFieldDuplicated",[e,d,l,i])}),n.UndoRedoHelpersFields.reInitFields(t.newFieldIds[t.newFieldIds?.length-1]),n.UndoRedo.preventRecord(!1)}deleteFields(d){n.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(n.el.$allFieldsPreview,d.old.$allFieldsPreview),this.replaceDOMElementContent(n.el.$allFieldsOptions,d.old.$allFieldsOptions),d.newFieldIds.forEach(e=>{var l=o("#wpforms-field-"+e).parents(".wpforms-field-layout-columns");n.el.$builder.trigger("wpformsFieldDelete",[e,d.multiFieldSettings[e]?.type,l])}),n.el.$builder.trigger("wpformsMultiFieldDelete",[d.fieldIds]),n.UndoRedoHelpersFields.reInitFields(),n.UndoRedo.preventRecord(!1)}getActionName(){var e;return this.actionName||(e="#"+this.args.fieldIds.join(", #"),[wp.i18n.__("Duplicate Fields","wpforms"),n.actionNameSeparator,e].filter(Boolean).join(" "))}}let n={el:{},trackMultiFieldSettings:{},init(){n.setup(),n.el.$builder.on("wpformsBuilderReady",_.debounce(n.ready,250))},setup(){n.el.$document=o(e),n.el.$builder=o("#wpforms-builder"),n.el.$allFieldsPreview=n.el.$builder.find(".wpforms-field-wrap"),n.el.$allFieldsOptions=n.el.$builder.find(".wpforms-field-options")},ready(){try{n.UndoRedo=WPForms.Admin.Builder.UndoRedo,n.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,n.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,n.actionNameSeparator=n.UndoRedo.config.actionNameSeparator,n.el={...n.el,...n.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionMultiFieldDuplicate: Dependency modules are not available.")}n.UndoRedo.registerCommand(d),n.events()},events(){n.el.$builder.on("wpformsBeforeMultiFieldDuplicate",n.onBeforeMultiFieldDuplicate).on("wpformsMultiFieldDuplicate",n.onMultiFieldDuplicate)},onBeforeMultiFieldDuplicate(e,l){n.UndoRedo.isRecordPrevented()||(n.trackMultiFieldSettings=[],l.forEach(e=>{n.trackMultiFieldSettings[e]=wpf.getField(e)}),n.UndoRedoHelpersFields.getCurrentFieldsElements())},onMultiFieldDuplicate(e,l,d){n.UndoRedo.isRecordPrevented()||(l=n.UndoRedo.getCommand("ActionMultiFieldDuplicateCommand",{fieldIds:l,newFieldIds:d,multiFieldSettings:n.trackMultiFieldSettings,event:e.type??"",old:n.UndoRedoHelpersFields.getTrackedFieldsElements(),new:n.UndoRedoHelpersFields.getCurrentFieldsElements()}),n.UndoRedo.record(l))}};return n} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-paste.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-paste.min.js new file mode 100644 index 0000000..3edb772 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-multi-field-paste.min.js @@ -0,0 +1 @@ +export default function(e,d,i){class l extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionMultiFieldPasteCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){t.UndoRedo.executeTriggerEvents&&this.pasteFields(this.args)}undo(){t.UndoRedo.executeTriggerEvents&&this.deleteFields(this.args)}pasteFields(e){t.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(t.el.$allFieldsPreview,e.new.$allFieldsPreview),this.replaceDOMElementContent(t.el.$allFieldsOptions,e.new.$allFieldsOptions),e.fieldIds.forEach(e=>{t.el.$builder.trigger("wpformsFieldPasted",[e])}),t.CopyPaste.selectPastedFields(e.fieldIds),t.UndoRedoHelpersFields.reInitFields(),t.UndoRedo.preventRecord(!1)}deleteFields(l){t.UndoRedo.preventRecord(!0),this.replaceDOMElementContent(t.el.$allFieldsPreview,l.old.$allFieldsPreview),this.replaceDOMElementContent(t.el.$allFieldsOptions,l.old.$allFieldsOptions),l.fieldIds.forEach(e=>{var d=i("#wpforms-field-"+e).parents(".wpforms-field-layout-columns");t.el.$builder.trigger("wpformsFieldDelete",[e,l.multiFieldSettings[e]?.type,d])}),t.el.$builder.trigger("wpformsMultiFieldDelete",[l.fieldIds]),t.UndoRedoHelpersFields.reInitFields(),t.UndoRedo.preventRecord(!1)}getActionName(){var e;return this.actionName||(e="#"+this.args.fieldIds.join(", #"),[wp.i18n.__("Paste Fields","wpforms"),t.actionNameSeparator,e].filter(Boolean).join(" "))}}let t={el:{},trackMultiFieldSettings:{},init(){t.setup(),t.el.$builder.on("wpformsBuilderReady",_.debounce(t.ready,250))},setup(){t.el.$document=i(e),t.el.$builder=i("#wpforms-builder"),t.el.$allFieldsPreview=t.el.$builder.find(".wpforms-field-wrap"),t.el.$allFieldsOptions=t.el.$builder.find(".wpforms-field-options")},ready(){try{t.UndoRedo=WPForms.Admin.Builder.UndoRedo,t.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,t.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,t.CopyPaste=WPForms.Admin.Builder.CopyPaste,t.actionNameSeparator=t.UndoRedo.config.actionNameSeparator,t.el={...t.el,...t.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionMultiFieldPaste: Dependency modules are not available.")}t.UndoRedo.registerCommand(l),t.events()},events(){t.el.$builder.on("wpformsBeforeMultiFieldPaste",t.onBeforeMultiFieldPaste).on("wpformsMultiFieldPasted",t.onMultiFieldPasted)},onBeforeMultiFieldPaste(e,d){t.UndoRedo.isRecordPrevented()||(t.trackMultiFieldSettings=[],d.forEach(e=>{t.trackMultiFieldSettings[e]=wpf.getField(e)}),t.UndoRedoHelpersFields.getCurrentFieldsElements())},onMultiFieldPasted(e,d){t.UndoRedo.isRecordPrevented()||(d=t.UndoRedo.getCommand("ActionMultiFieldPasteCommand",{fieldIds:d,multiFieldSettings:t.trackMultiFieldSettings,event:e.type??"",old:t.UndoRedoHelpersFields.getTrackedFieldsElements(),new:t.UndoRedoHelpersFields.getCurrentFieldsElements()}),t.UndoRedo.record(d))}};return t} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-add.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-add.min.js new file mode 100644 index 0000000..bac2816 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-add.min.js @@ -0,0 +1 @@ +export default function(n,e,o){class t extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionSettingsBlockAddCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){i.UndoRedo.executeTriggerEvents&&this.addBlock(this.args)}undo(){i.UndoRedo.executeTriggerEvents&&this.deleteBlock(this.args)}addBlock(e){var t;e.new.$container?.length&&e.$block?.length&&(i.preventRecordingCommand=!0,t=i.getSettingsSection(e.$settingsSection),this.replaceDOMElementContent(t,e.new.$container),i.reInitBlocks(t),i.el.$builder.trigger(e.event,[e.$block,e.blockId]),i.preventRecordingCommand=!1)}deleteBlock(e){var t;e.new.$container?.length&&e.$block?.length&&(i.preventRecordingCommand=!0,t=i.getSettingsSection(e.$settingsSection),this.replaceDOMElementContent(t,e.old.$container),i.reInitBlocks(t),t=e.$block.data("block-type"),e=e.$block.data("block-id"),i.el.$builder.trigger("wpformsSettingsBlockDeleted",[t,e]),i.preventRecordingCommand=!1)}getActionName(){return this.actionName||[this.args.event?.includes("Clone")?wp.i18n.__("Clone settings block","wpforms"):wp.i18n.__("Add settings block","wpforms"),i.actionNameSeparator,this.args.settingsSectionTitle].filter(Boolean).join(" ")}}let i={el:{},init(){i.setup(),i.el.$builder.on("wpformsBuilderReady",_.debounce(i.ready,250))},setup(){i.el.$document=o(n),i.el.$builder=o("#wpforms-builder")},ready(){try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.actionNameSeparator=i.UndoRedo.config.actionNameSeparator,i.el={...i.el,...i.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionSettingsBlockAdd: Dependency modules are not available.")}i.UndoRedo.registerCommand(t),i.events()},events(){i.el.$builder.on("wpformsBeforeSettingsBlockClone",i.onBeforeSettingsBlockClone).on("wpformsSettingsBlockCloned",i.onSettingsBlockCloned).on("wpformsBeforeSettingsBlockAdd",i.onBeforeSettingsBlockClone).on("wpformsSettingsBlockAdded",i.onSettingsBlockCloned)},onBeforeSettingsBlockClone(e,t){i.isRecordPrevented()||(i.$trackSettingsSection=i.getSettingsSection(t),i.trackSettingsSectionTitle=i.UndoRedoHelpers.getSectionTitle(i.$trackSettingsSection),i.UndoRedoHelpers.getCurrentContainer(i.$trackSettingsSection))},onSettingsBlockCloned(e,t,n){!i.isRecordPrevented()&&i.$trackSettingsSection?.length&&(n=i.UndoRedo.getCommand("ActionSettingsBlockAddCommand",{$block:t,blockId:n,blockType:t?.data("block-type")??"",connectionId:t?.data("connection_id")??"",provider:i.$trackSettingsSection?.data("provider")??"",event:e.type??"",settingsSectionTitle:i.trackSettingsSectionTitle,$settingsSection:i.$trackSettingsSection,old:{$container:i.UndoRedoHelpers.getTrackedContainer(i.$trackSettingsSection)},new:{$container:i.UndoRedoHelpers.getCurrentContainer(i.$trackSettingsSection)}}),i.UndoRedo.record(n))},getSettingsSection(e){var t=(e=i.UndoRedoHelpers.getElement(e)).data("block-type");return(e=!n.body.contains(e[0])&&t?o(`.wpforms-builder-settings-block[data-block-type="${t}"]`):e).hasClass("wpforms-panel-content-section")?e:e.closest(".wpforms-panel-content-section")},reInitBlocks(e){WPForms.Admin.Builder.SmartTags.reinitWidgets(e),i.UndoRedoHelpers.reInitChoicesJs(e),i.UndoRedoHelpers.reInitTinyMCE(e)},isRecordPrevented(){return i.UndoRedo.isRecordPrevented()||i.preventRecordingCommand}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-delete.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-delete.min.js new file mode 100644 index 0000000..6198a15 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/action-settings-block-delete.min.js @@ -0,0 +1 @@ +export default function(e,t,o){class n extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ActionSettingsBlockDeleteCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){d.UndoRedo.executeTriggerEvents&&this.deleteBlock(this.args)}undo(){d.UndoRedo.executeTriggerEvents&&this.addBlock(this.args)}deleteBlock(e){var t;e.new.$container?.length&&e.$block?.length&&(d.preventRecordingCommand=!0,t=d.UndoRedoActionSettingsBlockAdd.getSettingsSection(e.$settingsSection),this.replaceDOMElementContent(t,e.new.$container),d.UndoRedoActionSettingsBlockAdd.reInitBlocks(t),d.el.$builder.trigger("wpformsSettingsBlockDeleted",[e.blockType,e.blockId]),d.preventRecordingCommand=!1)}addBlock(e){var t;e.new.$container?.length&&e.$block?.length&&(d.preventRecordingCommand=!0,t=d.UndoRedoActionSettingsBlockAdd.getSettingsSection(e.$settingsSection),this.replaceDOMElementContent(t,e.old.$container),d.UndoRedoActionSettingsBlockAdd.reInitBlocks(t),d.el.$builder.trigger("wpformsSettingsBlockCloned",[e.$block,e.blockId]),d.preventRecordingCommand=!1)}getActionName(){return this.actionName||[wp.i18n.__("Delete settings block","wpforms"),d.actionNameSeparator,this.args.settingsSectionTitle].filter(Boolean).join(" ")}}let d={el:{},trackFieldSettings:{},init(){d.setup(),d.el.$builder.on("wpformsBuilderReady",_.debounce(d.ready,250))},setup(){d.el.$document=o(e),d.el.$builder=o("#wpforms-builder")},ready(){try{d.UndoRedo=WPForms.Admin.Builder.UndoRedo,d.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,d.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,d.UndoRedoActionSettingsBlockAdd=WPForms.Admin.Builder.UndoRedoActionSettingsBlockAdd,d.undoManager=d.UndoRedo.undoManager,d.actionNameSeparator=d.UndoRedo.config.actionNameSeparator,d.el={...d.el,...d.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoActionSettingsBlockDelete: Dependency modules are not available.")}d.UndoRedo.registerCommand(n),d.events()},events(){d.el.$builder.on("wpformsBeforeSettingsBlockDelete",d.onBeforeSettingsBlockDelete).on("wpformsSettingsBlockDeleted",d.onSettingsBlockDeleted).on("connectionDeleted",".wpforms-builder-provider",d.onConnectionDeleted)},onBeforeSettingsBlockDelete(e,t,n){d.UndoRedo.isRecordPrevented()||(d.$trackSettingsBlock=o(`.wpforms-builder-settings-block[data-block-type="${t}"][data-block-id="${n}"]`).clone(),d.$trackSettingsSection=d.UndoRedoActionSettingsBlockAdd.getSettingsSection(d.$trackSettingsBlock),d.trackSettingsSectionTitle=d.UndoRedoHelpers.getSectionTitle(d.$trackSettingsSection),d.UndoRedoHelpers.getCurrentContainer(d.$trackSettingsSection))},onSettingsBlockDeleted(e,t,n){!d.isRecordPrevented()&&d.$trackSettingsSection?.length&&(n=d.UndoRedo.getCommand("ActionSettingsBlockDeleteCommand",{$block:d.$trackSettingsBlock,blockId:n,blockType:t,event:e.type??"",settingsSectionTitle:d.trackSettingsSectionTitle,$settingsSection:d.$trackSettingsSection,old:{$container:d.UndoRedoHelpers.getTrackedContainer(d.$trackSettingsSection)},new:{$container:d.UndoRedoHelpers.getCurrentContainer(d.$trackSettingsSection)}}),d.UndoRedo.record(n))},onConnectionDeleted(e,o){if(o?.length){let t=o.data("connection_id"),n=o.html();o=function(e){return!(e.args?.connectionId&&e.args.connectionId===t||(e.inputId||e.inputName)&&(e.inputId&&n.includes(e.inputId)||e.inputName&&e.inputName.includes(`[${t}]`)))};d.undoManager.undoStack=d.undoManager.undoStack.filter(o),d.undoManager.redoStack=d.undoManager.redoStack.filter(o),d.UndoRedo.updateUI()}},isRecordPrevented(){return d.UndoRedo.isRecordPrevented()||d.preventRecordingCommand}};return d} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/choices-list.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/choices-list.min.js new file mode 100644 index 0000000..c324b57 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/choices-list.min.js @@ -0,0 +1 @@ +export default function(e,o,t){class n extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="ChoicesListDefaultChangeCommand";canMerge(){return!1}applyValue(e){var o=this.getElement(),n=o.closest(".choices-list");if(n?.length&&e&&"function"==typeof e[Symbol.iterator]){r.preventRecordingCommand=!0;for(var[t,i]of e){t=n.find(`li[data-key="${t}"] input.default`);t.length&&t.prop("checked",!!i)}o.trigger("change");e=o.closest(".choices-list"),o=e.data("field-type"),e=e.data("field-id");WPFormsBuilder.fieldChoiceUpdate(o,e),r.preventRecordingCommand=!1}}getInputLabel(){return r.getInputLabel(this.$input)}}class i extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="ChoicesListIconChoiceChangeCommand";applyValue(e){var o=this.getElement(),n=o.closest("li"),o=o.closest(".wpforms-field-option-row-choices"),t=o.find("ul").data("field-type"),o=o.data("field-id");WPFormsBuilder.iconChoices.updateIcon(n,e?.icon,e?.style),WPFormsBuilder.fieldChoiceUpdate(t,o)}getInputLabel(){return wp.i18n.__("Choice Icon","wpforms")}}class d extends WPForms.Admin.Builder.UndoRedoActionCommandBase.get(){static id="ChoicesListReorderCommand";constructor(e){super(e),this.actionName=this.getActionName()}execute(){r.UndoRedo.executeTriggerEvents&&this.reorderChoices(this.args,"new")}undo(){r.UndoRedo.executeTriggerEvents&&this.reorderChoices(this.args,"old")}reorderChoices(e,o){var n;e[o="new"===o?"new":"old"].$container?.length&&(r.UndoRedo.preventRecord(!0),n=r.UndoRedoHelpers.getElement(e[o].$container),(o=e[o].$container).find("li").attr("style",null),o.find("li.ui-sortable-placeholder").remove(),this.replaceDOMElementContent(n,o),r.el.$builder.trigger(e.event??"wpformsFieldChoiceMove",[e.ui]),WPFormsBuilder.fieldChoiceUpdate(e.fieldType,e.fieldId),r.UndoRedo.preventRecord(!1))}getActionName(){var e,o;return this.actionName||(e=r.UndoRedoHelpersFields.getFieldName(this.args.fieldType),o=`(#${this.args.fieldId})`,[wp.i18n.__("Reorder choices","wpforms"),r.actionNameSeparator,e,o].filter(Boolean).join(" "))}}let r={el:{},sel:{choicesList:".choices-list",choicesListDefault:".choices-list input.default",iconChoiceIconSelect:".choices-list .wpforms-icon-select",iconChoiceIcon:"input.source-icon",iconChoiceIconStyle:"input.source-icon-style"},undoManager:null,init(){r.setup(),r.el.$builder.on("wpformsBuilderReady",_.debounce(r.ready,250))},setup(){r.el.$document=t(e),r.el.$builder=t("#wpforms-builder")},ready(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.undoManager=r.UndoRedo.undoManager,r.UndoRedoHelpersFields=WPForms.Admin.Builder.UndoRedoHelpersFields,r.actionNameSeparator=r.UndoRedo.config.actionNameSeparator,r.el={...r.el,...r.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoChoicesList: Dependency modules are not available.")}r.UndoRedo.registerCommand(n),r.UndoRedo.registerCommand(i),r.UndoRedo.registerCommand(d),r.events()},events(){r.el.$document.on("mousedown",r.sel.choicesListDefault,r.onChoicesListDefaultInteraction).on("focus",r.sel.choicesListDefault,r.onChoicesListDefaultInteraction).on("change",r.sel.choicesListDefault,r.onChoicesListDefaultChange),r.el.$builder.on("mousedown",r.sel.iconChoiceIconSelect,r.onIconChoiceIconSelectClick).on("wpformsBuilderIconChoicesIconSelected",r.onIconChoicesIconSelected),r.el.$builder.on("wpformsBeforeFieldChoiceDragStart",r.onBeforeFieldChoiceDragStart).on("wpformsBeforeLikertScaleFieldChoiceDragStart",r.onBeforeFieldChoiceDragStart).on("wpformsFieldChoiceMove",r.onFieldChoiceMove).on("wpformsLikertScaleFieldChoiceMove",r.onFieldChoiceMove)},getChoicesListDefaultValues(e){e=e?.closest(".choices-list");if(!e?.length)return null;let n=new Map;return e.find("li").each(function(){var e=t(this),o=e.find("input.default"),e=e.data("key");n.set(e,o.is(":checked"))}),n},onChoicesListDefaultInteraction(e){var e=t(e.target),o=e.closest(".choices-list"),o=r.UndoRedoHelpers.getElementKey(o);r.UndoRedo.trackedInputs.set(o,r.getChoicesListDefaultValues(e))},onChoicesListDefaultChange(e){var o,n;r.UndoRedo.isSuppressed()||r.UndoRedo.isRecordPrevented()||r.preventRecordingCommand||(o=(e=t(e.target)).closest(".choices-list"),o=r.UndoRedoHelpers.getElementKey(o),(o=r.UndoRedo.trackedInputs.get(o))&&(n=r.getChoicesListDefaultValues(e),e=r.UndoRedo.getCommand("ChoicesListDefaultChangeCommand",e,o,n),r.UndoRedo.record(e)))},onIconChoiceIconSelectClick(){var e=t(this).find(r.sel.iconChoiceIcon),o=t(this).find(r.sel.iconChoiceIconStyle),n=r.UndoRedoHelpers.getElementKey(e),e={icon:e.val(),style:o.val()};r.UndoRedo.trackedInputs.set(n,e)},onIconChoicesIconSelected(e,o,n,t){var i;r.UndoRedo.isSuppressed()||r.UndoRedo.isRecordPrevented()||r.preventRecordingCommand||(o=o.find(r.sel.iconChoiceIcon),i=r.UndoRedoHelpers.getElementKey(o),i=r.UndoRedo.trackedInputs.get(i),n={icon:n,style:t},r.UndoRedoHelpers.areValuesEqual(i,n))||(t=r.UndoRedo.getCommand("ChoicesListIconChoiceChangeCommand",o,i,n),r.UndoRedo.record(t))},onBeforeFieldChoiceDragStart(e,o){r.UndoRedo.isRecordPrevented()||(r.$trackContainer=r.UndoRedoHelpers.getElement(o.item.closest(".choices-list")),r.UndoRedoHelpers.getCurrentContainer(r.$trackContainer))},onFieldChoiceMove(e,o){r.UndoRedo.isRecordPrevented()||r.$trackContainer?.length&&(e=r.UndoRedo.getCommand("ChoicesListReorderCommand",{fieldType:r.$trackContainer.data("field-type"),fieldId:r.$trackContainer.data("field-id"),event:e.type??"",ui:o,old:{$container:r.UndoRedoHelpers.getTrackedContainer(r.$trackContainer)},new:{$container:r.UndoRedoHelpers.getCurrentContainer(r.$trackContainer)}}),r.UndoRedo.record(e))},getInputLabel(e){return e?.closest(r.sel.choicesList).length?(e=e.attr("name")??"").includes("[default]")?wp.i18n.__("Default choices","wpforms"):e.includes("[label]")?wp.i18n.__("Choice label","wpforms"):e.includes("[value]")?wp.i18n.__("Choice value","wpforms"):"":""}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/date-time-pickers.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/date-time-pickers.min.js new file mode 100644 index 0000000..0443c8b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/date-time-pickers.min.js @@ -0,0 +1 @@ +export default function(e,n,d){class t extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="DateTimeChangeCommand";constructor(e,n,t){super(e,n,t),this.flatpickr=this.$input?.prop("_flatpickr")}applyValue(e){i.preventRecordingCommand=!0,this.flatpickr=this.getElement()?.prop("_flatpickr"),this.flatpickr&&this.flatpickr.setDate(e,!0),i.preventRecordingCommand=!1}getElement(e=this.$input){var e=super.getElement(e),n=e.prev('[type="hidden"].flatpickr-input');return n.length?n:e}}let i={el:{},sel:{flatpickrHiddenInput:'[type="hidden"].flatpickr-input',flatpickrInput:'[type="hidden"].flatpickr-input + input',timepickerInput:".ui-timepicker-input",clearButton:".wpforms-clear-datetime-field"},undoManager:null,init(){i.setup(),i.el.$builder.on("wpformsBuilderReady",_.debounce(i.ready,250))},setup(){i.el.$document=d(e),i.el.$builder=d("#wpforms-builder")},ready(){try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.undoManager=i.UndoRedo.undoManager,i.el={...i.el,...i.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoDateTimePickers: Dependency modules are not available.")}i.UndoRedo.registerCommand(t),i.events()},events(){i.el.$document.on("focusin",i.sel.flatpickrInput,i.onDatePickerFocus).on("mousedown",i.sel.clearButton,i.onClearButtonMouseDown),i.el.$builder.on("wpformsUndoRedoRun",i.onUndoRedoRun)},onDatePickerFocus(e){e=d(e.target).prev(i.sel.flatpickrHiddenInput);i.initFlatpickrTracking(e)},onClearButtonMouseDown(e){var e=d(e.currentTarget),n=e.prevAll(i.sel.flatpickrHiddenInput),e=e.prevAll(i.sel.timepickerInput);i.initFlatpickrTracking(n),i.initTimepickerTracking(e)},onUndoRedoRun(e,n,t){var r;t.$input?.is(i.sel.timepickerInput)&&(r=t.$input.nextAll(i.sel.clearButton)).length&&("undo"===n&&""===t.oldValue||"redo"===n&&""===t.newValue)&&r.hide()},initFlatpickrTracking(e){var n,t;e.length&&(n=i.UndoRedoHelpers.getElementKey(e),"flatpickr"!==(t=i.UndoRedo.trackedInputs.get(n)??{}).type)&&(t.type="flatpickr",t.value=e.val(),t.instance=e.prop("_flatpickr"),t.instance.config.onChange.push(i.onDatePickerChange),i.UndoRedo.trackedInputs.set(n,t))},initTimepickerTracking(e){var n;e.length&&(n=i.UndoRedoHelpers.getElementKey(e),i.UndoRedo.trackedInputs.get(n)||i.UndoRedo.trackedInputs.set(n,e.val()))},onDatePickerChange(e,n,t){i.recordFlatpickrCommand(n,t)},recordFlatpickrCommand(e,n){var t,r,o;i.preventRecordingCommand||(n=d(n.input),t=i.UndoRedoHelpers.getElementKey(n),o=(r=i.UndoRedo.trackedInputs.get(t))?.value,r.value=e,i.UndoRedoHelpers.areValuesEqual(o,e))||(n=i.UndoRedo.getCommand("DateTimeChangeCommand",n,o,e),i.UndoRedo.record(n),i.UndoRedo.trackedInputs.set(t,r))}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/form-themes.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/form-themes.min.js new file mode 100644 index 0000000..5fb88d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/form-themes.min.js @@ -0,0 +1 @@ +export default function(e,o,n){class t extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="FormThemeChangeCommand";applyValue(e){r.preventRecordingCommand=!0;var o=r.getThemeButtonsGroup(this.$input);o?.length&&(o.find('[role="radio"]').removeClass("is-active"),o.find(`[role="radio"][value="${e}"]`).addClass("is-active"),WPForms.Admin.Builder.Themes?.themes?.selectTheme(e),r.preventRecordingCommand=!1)}getActionName(){var e;return this.actionName||(e=r.getInputLabel(this.$input),[wp.i18n.__("Change","wpforms"),e].filter(Boolean).join(" "))}}let r={el:{},sel:{themeButtonsGroup:".wpforms-builder-themes-radio-group",themeButton:'.wpforms-builder-themes-radio-group button[role="radio"]'},undoManager:null,init(){r.setup(),r.el.$builder.on("wpformsBuilderReady",_.debounce(r.ready,250))},setup(){r.el.$document=n(e),r.el.$builder=n("#wpforms-builder"),r.themeControlKey="form-theme"},ready(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.undoManager=r.UndoRedo.undoManager,r.el={...r.el,...r.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoFormThemes: Dependency modules are not available.")}r.UndoRedo.registerCommand(t),r.events()},events(){r.el.$document.on("focusin",r.sel.themeButton,r.onThemeButtonFocus).on("click",r.sel.themeButton,r.onThemeButtonClick)},getThemeValue(e){e=r.getThemeButtonsGroup(e);return e?.length?e.find("button.is-active").attr("value"):null},onThemeButtonFocus(e){e=n(e.target),e=r.getThemeValue(e);r.UndoRedo.trackedInputs.set(r.themeControlKey,e)},onThemeButtonClick(e){var o,t;r.preventRecordingCommand||(e=n(e.target),o=r.UndoRedo.trackedInputs.get(r.themeControlKey),t=r.getThemeValue(e),e=r.UndoRedo.getCommand("FormThemeChangeCommand",e,o,t),r.UndoRedo.record(e))},getThemeButtonsGroup(e){return e.closest(r.sel.themeButtonsGroup)},getInputLabel(e){return wp.i18n.__("Form Theme","wpforms")}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/helpers-fields.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/helpers-fields.min.js new file mode 100644 index 0000000..b2ceb19 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/helpers-fields.min.js @@ -0,0 +1 @@ +export default function(e,l,d){let r={el:{},init(){r.setup(),r.ready()},setup(){r.el.$document=d(e),r.el.$builder=d("#wpforms-builder"),r.el.$allFieldsPreview=r.el.$builder.find(".wpforms-field-wrap"),r.el.$allFieldsOptions=r.el.$builder.find(".wpforms-field-options"),r.el.$addFieldsTab=r.el.$builder.find("#wpforms-add-fields-tab")},ready(){try{r.UndoRedo=WPForms.Admin.Builder.UndoRedo,r.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,r.CopyPaste=WPForms.Admin.Builder.CopyPaste,r.actionNameSeparator=r.UndoRedo.config.actionNameSeparator,r.el={...r.el,...r.UndoRedo.el}}catch(e){wpf.debug("UndoRedoHelpersFields: Dependency modules are not available.")}},getFieldName(e,l=null){return e?d(`.wpforms-add-fields-button[data-field-type="${e}"]`).text().trim():l?d(`#wpforms-field-${l} .label-title .text`).first().text().trim():""},getCurrentFieldsElements(){var e=r.UndoRedoHelpers?.getElementKey(r.el.$allFieldsPreview),l=r.UndoRedoHelpers?.getElementKey(r.el.$allFieldsOptions),d={$allFieldsPreview:r.prepareFieldsPreview(r.el.$allFieldsPreview),$allFieldsOptions:r.prepareFieldsOptions(r.el.$allFieldsOptions)};return r.UndoRedo.trackedElements.set(e,d.$allFieldsPreview),r.UndoRedo.trackedElements.set(l,d.$allFieldsOptions),d},getCurrentAddFieldsTab(){var e=r.UndoRedoHelpers?.getElementKey(r.el.$addFieldsTab),l=r.prepareAddFieldsTab(r.el.$addFieldsTab);return r.UndoRedo.trackedElements.set(e,l),l},getTrackedFieldsElements(){var e=r.UndoRedoHelpers?.getElementKey(r.el.$allFieldsPreview),l=r.UndoRedoHelpers?.getElementKey(r.el.$allFieldsOptions),d=r.UndoRedoHelpers?.getElementKey(r.el.$addFieldsTab);return{$allFieldsPreview:r.UndoRedo?.trackedElements.get(e),$allFieldsOptions:r.UndoRedo?.trackedElements.get(l),$addFieldsTab:r.UndoRedo?.trackedElements.get(d)}},getTrackedAddFieldsTab(){var e=r.UndoRedoHelpers?.getElementKey(r.el.$addFieldsTab);return r.UndoRedo?.trackedElements.get(e)},prepareFieldsPreview(e){let l=r.UndoRedoHelpers?.cloneWithValues(e);return l.find(".wpforms-field").removeClass("wpforms-field-multi-drag").removeClass("wpforms-field-dragging").attr("style",null),l.find(".wpforms-field-wrap").removeClass("ui-sortable-disabled"),l.find(".wpforms-field-drag-pending, .wpforms-field-drag-placeholder, .ui-sortable-placeholder").remove(),l=r.CopyPaste?.replaceChoicesJSWithOriginalSelect(l)||l,r.UndoRedoHelpers?.convertInputValuesToAttributes(l)},prepareAddFieldsTab(e){e=r.UndoRedoHelpers?.cloneWithValues(e);return e.find(".wpforms-add-fields-button").removeClass("ui-draggable-disabled"),e},applyAddFieldsButtonAttributes(e,l){r.UndoRedoHelpers?.replaceElementAttributes(r.el.$addFieldsTab.find("#wpforms-add-fields-"+e),l.find("#wpforms-add-fields-"+e))},prepareFieldsOptions(e){e=r.UndoRedoHelpers?.cloneWithValues(e),e=r.CopyPaste?.replaceChoicesJSWithOriginalSelect(e)||e;return r.UndoRedoHelpers?.convertInputValuesToAttributes(e)},isTopBottomPagebreaksAdded(){return 2===r.el.$allFieldsPreview.find(".wpforms-pagebreak-top, .wpforms-pagebreak-bottom").length},reInitFields(e=null){wpf.initTooltips(),WPFormsBuilder.loadColorPickers(),WPForms.Admin.Builder.DragFields?.setup(),WPForms.Admin.Builder.DragFields?.initSortableFields(),WPFormsBuilder.updatePagebreaksState(),WPFormsBuilder.loadEntryPreviewFields(),r.UndoRedoHelpers?.reInitChoicesJs(r.el.$allFieldsPreview),r.UndoRedoHelpers?.reInitChoicesJs(r.el.$allFieldsOptions),WPForms.Admin.Builder.SmartTags?.reinitWidgets(r.el.$allFieldsOptions),null===e?WPFormsBuilder.fieldTabToggle("add-fields"):WPFormsBuilder.fieldTabToggle(e),WPFormsBuilder.toggleNoFieldsPreview(),r.reInitSubmitButton()},reInitSubmitButton(){var e,l;0t?.includes(e))},getSectionTitle(e){if(!e)return"";var t=e.closest(".wpforms-field-option").find(".wpforms-field-option-field-title").text().trim();if(t?.length)return t;let n=e.closest(".wpforms-panel-content-section").find(".wpforms-panel-content-section-title");t=(n=n?.length?n:e.closest(".wpforms-add-fields-group").find(".wpforms-add-fields-heading")).clone();return t.find("i, div, span:not(:first-child), a, button").remove(),t.text().trim()},getInputLabelElements(e){if(!e)return"";var t=[".wpforms-larger-icon-choice",".wpforms-field-option-row",".wpforms-panel-field",".wpforms-builder-settings-block-header",".wpforms-builder-provider-connection-block"].join(", "),t=e.closest(t);let n=t.find("label").first();var r=e.attr("name")||"",o=t.closest(".wpforms-field-option-repeater").length,o=((r.includes("[preset]")||o&&r.includes("[display]"))&&(n=t.prev("label")),r.includes("[pdfs]")&&r.includes("_color]")&&(n=t.prev().find("label").first()),t.closest(".wpforms-field-map-table")),o=(o.length&&(n=o.find("h3, label").first()),t.find(".wpforms-builder-provider-connection-fields-table"));return o.length&&(e=e.parent().index(),n=o.find("thead tr").first().find("th").eq(e)),{$label:n,$inputContainer:t,inputName:r}},getInputLabel(e){if(!e)return"";var{$label:t,$inputContainer:n,inputName:r}=l.getInputLabelElements(e);let o="";n.hasClass("wpforms-builder-settings-block-header")&&(o=r.includes("name]")?wp.i18n.__("Settings block name","wpforms"):""),e.closest(".wpforms-pdf-theme-color-editor").length&&(o=wp.i18n.__("Theme color","wpforms")),e.closest(".wpforms-larger-icon-choice").length&&(o=t.text().trim());var n=e.closest(".wpforms-builder-provider-connection-fields"),t=((o=n.length&&e.is("table")?n.find("h4, label").first().text().trim():o)?.length||((n=t.clone()).find("i, div, span, a, button").remove(),o=n.text().trim()),r.includes("_color]")&&(o+=" "+wp.i18n.__("color","wpforms")),l.getInputSubLabel(e)),n=o?.length&&t?.length?l.actionNameSeparator:"";return[o,n,t].filter(Boolean).join(" ")},getInputSubLabel(e){if(e.is(".http-key-source"))return wp.i18n.__("Source","wpforms");if(e.is(".key-destination"))return wp.i18n.__("Destination","wpforms");if(l.UndoRedoInputSmartTags.getOriginalInput(e).is(".wpforms-field-map-custom-value"))return wp.i18n.__("Custom value","wpforms");var t=".sub-label, .sublabel, p.note";let n=e.next(t);return(n=(n=n.length?n:e.closest(".wpforms-image-control-group").find("label").first()).length?n:e.parent().nextAll(t).first()).is(".wpforms-notice-field-size")?"":n.text().trim()},getCLInputLabel(e){return e.closest(".wpforms-conditional-groups").length?(e=e.attr("name")??"").includes("[conditional_type]")?wp.i18n.__("Conditional Type","wpforms"):e.includes("[field]")?wp.i18n.__("Conditional Field","wpforms"):e.includes("[operator]")?wp.i18n.__("Conditional Operator","wpforms"):e.includes("[value]")?wp.i18n.__("Conditional Value","wpforms"):"":""},replaceDOMElement(e,t,n=!1){var r=l.getElement(e),e=l.getElementKey(e);n?r.html(t.html()):r.replaceWith(t),l.UndoRedo.trackedElements.set(e,t)},replaceDOMElementContent(e,t){l.replaceDOMElement(e,t,!0)},replaceElementAttributes(t,n){var e=t?.get(0),r=n?.get(0);e&&r&&(e=Array.from(e.attributes).map(e=>e.name),r=Array.from(r.attributes).map(e=>e.name),t.removeAttr(e.join(" ")),r.forEach(e=>{t.attr(e,n.attr(e))}))},getElement(e){var t,n=e,r=o.body.contains(n[0]);return n?.length&&r?n:(t=(r=e.attr("id"))&&!/[^a-zA-Z0-9-_]/.test(r)?i("#"+r):i(),r&&t.length?t:(r=e.attr("name"),t=i(`[name="${CSS.escape(r)}"]`),r?.length&&t.length&&l.isNameAttrAllowed(r)?t:(r=n?.data("undo-redo-element-key")||l.getElementKey(e),(t=i(`[data-undo-redo-element-key="${r}"]`)).length?t:(r=e.data("block-type"),t=e.data("block-id"),(r=i(`.wpforms-builder-settings-block[data-block-type="${r}"][data-block-id="${t}"]`)).length?r:(t=e.data("connection_id"),(r=i(`.wpforms-builder-provider-connection[data-connection_id="${t}"]`)).length?r:n)))))},cloneWithValues(e){var t=e.clone(!0,!0);let n=e.find("select");return t.find("select").each(function(e){var t=i(this),e=n.eq(e);t.val(e.val())}),t},convertInputValuesToAttributes(e){return e.length&&e[0].querySelectorAll("input, select, textarea").forEach(e=>{var t;"TEXTAREA"===e.tagName?e.textContent=e.value:"SELECT"===e.tagName?(t=i(e),l.CopyPaste?.updateFieldSelectElement(t,t.val())):"checkbox"!==e.type&&"radio"!==e.type?e.setAttribute("value",e.value):e.checked?e.setAttribute("checked","checked"):e.removeAttribute("checked")}),e},getCurrentContainer(e){var t=l.getElementKey(e);return e=l.prepareTrackedContainer(e),l.UndoRedo.trackedElements.set(t,e),e},getTrackedContainer(e){e=l.getElementKey(e);return l.UndoRedo.trackedElements.get(e)},setTrackedContainer(e,t){e=l.getElementKey(e);l.UndoRedo.trackedElements.set(e,t)},prepareTrackedContainer(e){e=l.cloneWithValues(e),e=l.CopyPaste?.replaceChoicesJSWithOriginalSelect(e)||e;return l.convertInputValuesToAttributes(e)},reInitTinyMCE(e){e=e.find(".wp-editor-wrap .mce-tinymce ~ textarea");e.length&&WPFormsBuilder.initElementsTinyMCE(e)},reInitChoicesJs(e){var t=["select.choicesjs-select","select.choices__input","select[data-choicesjs-key]"].join(", ");e.find(t).each(function(){l.WPFormsChoicesJS?.reinitFromRegistry(this)})}};return l} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-choicesjs.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-choicesjs.min.js new file mode 100644 index 0000000..2f5fa19 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-choicesjs.min.js @@ -0,0 +1 @@ +export default function(e,o,r){let i={el:{},sel:{choicesSelect:"select.choices__input",choicesContainer:".choices"},undoManager:null,init(){i.setup(),i.el.$builder.on("wpformsBuilderReady",_.debounce(i.ready,250))},setup(){i.el.$document=r(e),i.el.$builder=r("#wpforms-builder")},ready(){try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoInputSimple=WPForms.Admin.Builder.UndoRedoInputSimple,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.undoManager=i.UndoRedo.undoManager,i.WPFormsChoicesJS=WPForms.Admin.Builder.WPFormsChoicesJS,i.el={...i.el,...i.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoInputChoicesJS: Dependency modules are not available.")}i.events()},events(){i.el.$document.on("mousedown",i.sel.choicesContainer,i.onChoicesFocus).on("focusin",i.sel.choicesContainer,i.onChoicesFocus).on("addItem",i.sel.choicesSelect,i.onChoicesSelectChange).on("removeItem",i.sel.choicesSelect,i.onChoicesSelectChange)},getChoicesSelectFromContainer(e){return e.find(i.sel.choicesSelect).first()},onChoicesFocus(e){var o,e=r(e.currentTarget);i.UndoRedoHelpers.isInFieldPreview(e)||0!==(e=i.getChoicesSelectFromContainer(e))?.length&&(o=i.UndoRedoHelpers.getElementKey(e),e=i.getChoicesValue(e),i.UndoRedo.trackedInputs.set(o,e))},onChoicesSelectChange(e){var o,n,t,e=r(e.target);i.UndoRedoInputSimple.preventRecordingCommand||i.UndoRedo.isSuppressed()||i.UndoRedo.isRecordPrevented()||i.UndoRedoHelpers.isInFieldPreview(e)||(t=i.UndoRedoHelpers.getElementKey(e),o=i.UndoRedo.trackedInputs.get(t),n=i.getChoicesValue(e),i.UndoRedo.trackedInputs.set(t,n),i.UndoRedoHelpers.areValuesEqual(o,n))||(t=i.UndoRedo.getCommand("InputChangeCommand",e,o,n),i.UndoRedo.record(t))},applyChoicesMultipleValue(e,o,n){if(o?.length){var t,r=n.config.choices;for(t of o)if(t){let o="object"==typeof t?t.value:t;var i=r.find(e=>e.value===o);"object"!=typeof t||i||n.setChoices([...r,{value:t.value,label:t.label}],"value","label",!0,!1,!0),n.setChoiceByValue(String(o))}}else e.val([])},applyChoicesValue(e,o,n){i.UndoRedoInputSimple.preventRecordingCommand=!0;try{n.removeActiveItems(),Array.isArray(o)?i.applyChoicesMultipleValue(e,o,n):null!=o&&""!==o?n.setChoiceByValue(String(o)):e.val("")}finally{Promise.resolve().then(()=>{e.trigger("input").trigger("change"),i.UndoRedoInputSimple.preventRecordingCommand=!1})}},getChoicesInstance(e){var o=i.WPFormsChoicesJS?.getRegistryData(e);let n=e.data("choicesjs")||e.data("choices");return n=o?.instance&&!n?i.WPFormsChoicesJS?.reinitFromRegistry(e):n},getChoicesValue(e){var o=i.getChoicesInstance(e)?.getValue(),e=e.is(".wpforms-file-upload-user-roles-select");return o&&Array.isArray(o)?e?o.filter(e=>"administrator"!==e.value):o:o?.value??o??""}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-codemirror.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-codemirror.min.js new file mode 100644 index 0000000..55e9ac8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-codemirror.min.js @@ -0,0 +1 @@ +export default function(e,o,r){class t extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="CodeMirrorChangeCommand";constructor(e,o,t,n="",d=""){super(e,n,d),this.editorId=o,this.editor=t}applyValue(o){if(this.editor){i.preventRecordingCommand=!0;let e=i.WPFormsCalculationsBuilder?.getEditorInstance(this.inputId);var t;e||(t=this.getElement(),i.WPFormsCalculationsBuilder?.setupSingleEditor(t,!0),e=i.WPFormsCalculationsBuilder?.getEditorInstance(this.inputId)),e&&(e.codemirror.setValue(o),e.codemirror.save()),i.preventRecordingCommand=!1}}}let i={el:{},sel:{insertFieldButton:".button-insert-field",aiCalcButton:".wpforms-ai-calculations-button:not(.education-modal)"},trackedEditors:new Map,init(){i.setup(),i.el.$builder.on("wpformsBuilderReady",_.debounce(i.ready,250)).on("wpformsCalculationsEditorReady",i.editorEvents)},setup(){i.el.$document=r(e),i.el.$builder=r("#wpforms-builder")},ready(){try{i.WPFormsCalculationsBuilder=WPFormsCalculationsBuilder}catch(e){return}try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.undoManager=i.UndoRedo.undoManager,i.el={...i.el,...i.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoInputCodeMirror: Dependency modules are not available.")}i.UndoRedo.registerCommand(t),i.events()},events(){i.el.$builder.on("click",i.sel.insertFieldButton,i.onClickInsertField).on("click",i.sel.aiCalcButton,i.onClickAiCalculationsButton),i.el.$document.on("wpformsUndoRedoRun",i.undoRedoRun).on("wpformsAiCalculationsFormulaInserted",i.onFormulaInserted).on("wpformsDropdownListSelect",i.onDropDownListSelect)},editorEvents(e,o){o?.codemirror?.on&&(o.codemirror.on("focus",i.onEditorFocus),o.codemirror.on("blur",i.onEditorBlur))},onEditorFocus(e){var o=r(e.getTextArea()),o=i.UndoRedoHelpers.getElementKey(o);i.UndoRedo.trackedInputs.set(o,e.getValue())},onEditorBlur(e){var o,t,n,d;i.UndoRedo.isSuppressed()||i.preventRecordingCommand||(d=r(e.getTextArea()),o=i.UndoRedoHelpers.getElementKey(d),t=i.UndoRedo.trackedInputs.get(o),n=e.getValue(),i.UndoRedoHelpers.areValuesEqual(t,n))||(d=i.UndoRedo.getCommand("CodeMirrorChangeCommand",d,o,e,t,n),i.UndoRedo.record(d))},onClickInsertField(){var e=r(this).closest(".wpforms-field-option-row-calculation_code").data("field-id"),e=i.getCodeMirrorInstance(e);e&&i.onEditorFocus(e)},onClickAiCalculationsButton(){var e=r(this).data("field-id"),e=i.getCodeMirrorInstance(e);e&&i.onEditorFocus(e)},onFormulaInserted(e){var e=e.originalEvent.detail.fieldId;e&&(e=i.getCodeMirrorInstance(e))&&i.onEditorBlur(e)},onDropDownListSelect(e){var e=r(e.target).closest(".wpforms-field-option-row-calculation_code");e.length&&(e=e.data("field-id"),e=i.getCodeMirrorInstance(e))&&i.onEditorBlur(e)},undoRedoRun(e,o,t){["ActionFieldAddCommand","ActionFieldDuplicateCommand","ActionFieldDeleteCommand","ActionFieldMoveCommand","ActionMultiFieldDeleteCommand","ActionMultiFieldDuplicateCommand","ActionMultiFieldPasteCommand","ToggleChangeCommand"].includes(t.constructor?.id)&&i.WPFormsCalculationsBuilder&&("ToggleChangeCommand"===t.constructor?.id?(t=i.UndoRedoHelpers.getElement(t.$input)?.closest(".wpforms-field-option-row-calculation_is_enabled").data("field-id"),i.reInitSingleEditor(t)):r("#wpforms-field-options .wpforms-field-option-row-calculation_code").each(function(){i.reInitSingleEditor(r(this).data("field-id"))}))},reInitSingleEditor(e){i.WPFormsCalculationsBuilder?.removeEditorInstance?.(`wpforms-field-option-${e}-calculation_code`),i.WPFormsCalculationsBuilder?.initDuplicatedFieldCodeEditor?.(e)},getCodeMirrorInstance(e){return i.WPFormsCalculationsBuilder?.getEditorInstance?.(`wpforms-field-option-${e}-calculation_code`)?.codemirror??null}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-command-base.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-command-base.min.js new file mode 100644 index 0000000..6aa0500 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-command-base.min.js @@ -0,0 +1 @@ +export default function(e,t,n){class a{constructor(e,t,n){this.$input=e,this.inputId=e.attr("id"),this.inputName=e.attr("name"),this.inputType=e.attr("type"),this.oldValue=t,this.newValue=n,this.actionName=this.getActionName()}execute(){i.UndoRedoHelpers.areValuesEqual(this.oldValue,this.newValue)||i.UndoRedo.executeTriggerEvents&&this.applyValue(this.newValue)}undo(){i.UndoRedoHelpers.areValuesEqual(this.oldValue,this.newValue)||i.UndoRedo.executeTriggerEvents&&this.applyValue(this.oldValue)}applyValue(e){}canMerge(e){return e instanceof this.constructor&&(this.inputName&&this.inputName===e.inputName||+(this.inputId&&this.inputId===e.inputId))}merge(e){this.newValue=e.newValue}getElement(e=this.$input){return i.UndoRedoHelpers.getElement(e)}getInputLabel(){return i.UndoRedoHelpers.getInputLabel(this.$input)}getActionName(){var e,t;return this.actionName||(e=i.UndoRedoHelpers.getSectionTitle(this.$input),t=this.getInputLabel(),[wp.i18n.__("Change","wpforms"),e,i.actionNameSeparator,t].filter(Boolean).join(" "))}}let i={init(){try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.undoManager=i.UndoRedo.undoManager,i.actionNameSeparator=i.UndoRedo.config.actionNameSeparator}catch(e){wpf.debug("UndoRedoInputCommandBase: Dependency modules are not available.")}},get(){return a}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-simple.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-simple.min.js new file mode 100644 index 0000000..be56db4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-simple.min.js @@ -0,0 +1 @@ +export default function(e,o,n){class t extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="InputChangeCommand";applyValue(e){var o,t;i.preventRecordingCommand=!0,"radio"===this.inputType?this.applyRadioValue(e):(o=this.getElement()).is(".wpforms-field-map-select:not(.choicesjs-select)")&&o.closest(".wpforms-field-map-table, .wpforms-builder-provider-connection-fields-table").length?this.applyFieldMapSelectValue(e):(t=i.UndoRedoInputChoicesJS.getChoicesInstance(o))?i.UndoRedoInputChoicesJS.applyChoicesValue(o,e,t):(o.val(e).attr("value",e).trigger("input").trigger("change"),o.is(".minicolors-input")&&o.trigger("keyup.minicolors")),i.preventRecordingCommand=!1}applyRadioValue(e){var o=i.el.$builder.find(`input[name="${CSS.escape(this.inputName)}"]`);let t=o.filter(`[value="${e}"]`);!t.length&&this.$input?.is(".minicolors-input")&&(this.$input.val(e).attr("value",e),t=this.$input),o.prop("checked",!1),t.prop("checked",!0),(t.is("input")?t:o.first()).trigger("input").trigger("change"),t.is(".minicolors-input")&&t.trigger("keyup.minicolors")}applyFieldMapSelectValue(e){var o="custom_value"===this.$input.val(),t=this.getElement();t.val(e),o&&((e=t.closest("tr")).find("td.field").removeClass("field-is-custom-value"),e.find(".insert-smart-tag-dropdown").addClass("closed")),t.trigger("input").trigger("change")}getActionName(){var e,o;return this.actionName||(e=i.UndoRedoHelpers.getSectionTitle(this.$input),o=(o=(o=i.UndoRedoHelpers.getCLInputLabel(this.$input))?.length?o:i.UndoRedoChoicesList.getInputLabel(this.$input))?.length?o:i.UndoRedoHelpers.getInputLabel(this.$input),[wp.i18n.__("Change","wpforms"),e,i.actionNameSeparator,o].filter(Boolean).join(" "))}}let i={el:{},sel:{inputSimple:'input[type="text"], input[type="number"], input[type="password"], input[type="radio"]:not([name*="[choices]"].default), textarea:not(.wp-editor-area), select',layoutToggles:".wpforms-field-option-row-preset label, .wpforms-field-option-row-display label",FPCFColorScheme:"#wpforms-panel-field-settings-conversational_forms_color_scheme-wrap label, #wpforms-panel-field-settings-conversational_forms_color_scheme-wrap .minicolors-swatch, #wpforms-panel-field-settings-form_pages_color_scheme-wrap label, #wpforms-panel-field-settings-form_pages_color_scheme-wrap .minicolors-swatch",flatpickrHiddenInput:'[type="hidden"].flatpickr-input'},undoManager:null,init(){i.setup(),i.el.$builder.on("wpformsBuilderReady",_.debounce(i.ready,250))},setup(){i.el.$document=n(e),i.el.$builder=n("#wpforms-builder")},ready(){try{i.UndoRedo=WPForms.Admin.Builder.UndoRedo,i.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,i.UndoRedoChoicesList=WPForms.Admin.Builder.UndoRedoChoicesList,i.UndoRedoInputChoicesJS=WPForms.Admin.Builder.UndoRedoInputChoicesJS,i.undoManager=i.UndoRedo.undoManager,i.actionNameSeparator=i.UndoRedo.config.actionNameSeparator,i.el={...i.el,...i.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoInputSimple: Dependency modules are not available.")}i.UndoRedo.registerCommand(t),i.events()},events(){i.el.$document.on("focus",i.sel.inputSimple,i.onInputFocus).on("click",i.sel.layoutToggles,i.onLayoutToggleClick).on("click",i.sel.FPCFColorScheme,i.onFPCFThemeClick).on("blur",i.sel.inputSimple,i.onInputBlur).on("input",i.sel.inputSimple,i.onInput).on("change",i.sel.inputSimple,i.onChange).on("wpformsUndoRedoChange","input, select",i.onTriggeredChange)},onInputFocus(e){var o,e=n(e.target);e.hasClass("wpforms-smart-tags-enabled")||e.prev(i.sel.flatpickrHiddenInput).length||(o=i.UndoRedoHelpers.getElementKey(e),i.UndoRedo.trackedInputs.set(o,i.getInputValue(e)))},onLayoutToggleClick(e){var o=n(e.target).attr("for");e.target=n("#"+o)[0],i.onInputFocus(e)},onFPCFThemeClick(e){var o=n(e.target).closest("label, .minicolors"),t=o.attr("for");e.target=o.is(".minicolors-swatch")?o.find("input"):n("#"+t)[0],i.onInputFocus(e)},onInputBlur(e){i.UndoRedo.isSuppressed()||(e=n(e.target)).is("select")||e.is(".wpforms-smart-tags-enabled")||e.closest(".wpforms-calculations-editor-wrap").length||e.prev(i.sel.flatpickrHiddenInput).length||i.recordCommand(e)},onTriggeredChange(e){i.UndoRedo.isSuppressed()||(e=n(e.target),i.recordCommand(e))},onInput(e){i.UndoRedo.isSuppressed()||(e=n(e.target)).is("select:not(.choices__input)")&&i.recordCommand(e)},onChange(e){i.UndoRedo.isSuppressed()||"radio"===(e=n(e.target)).attr("type")&&i.recordCommand(e)},getInputValue(e){var o;return"radio"===e.attr("type")?(o=e.attr("name"),i.el.$builder.find(`input[name="${CSS.escape(o)}"]`).filter(":checked").val()||""):e.val()},recordCommand(e){var o,t,n;i.preventRecordingCommand||i.UndoRedo.isRecordPrevented()||i.UndoRedoHelpers.isIgnoredElement(e)||(o=i.UndoRedoHelpers.getElementKey(e),t=i.UndoRedo.trackedInputs.get(o),n=i.getInputValue(e),i.UndoRedoHelpers.areValuesEqual(t,n))||(e=i.UndoRedo.getCommand("InputChangeCommand",e,t,n),i.UndoRedo.record(e),i.UndoRedo.trackedInputs.set(o,n))}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-smart-tags.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-smart-tags.min.js new file mode 100644 index 0000000..b09980a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/modules/undo-redo/input-smart-tags.min.js @@ -0,0 +1 @@ +export default function(e,t,d){class a extends WPForms.Admin.Builder.UndoRedoInputCommandBase.get(){static id="SmartTagWidgetChangeCommand";constructor(e,t,a,o){super(e,t,a),this.$widget=e,this.args=o,this.$originalInput=s.getOriginalInput(e)}applyValue(e){var t=this.getElement(this.$originalInput);t?.length&&(s.UndoRedo.preventRecord(!0),t.attr("value",e).val(e).trigger("input").trigger("wpformsSmartTagsInputSync"),(e=t.closest(".wpforms-field-map-custom-wrap")).length&&"close-custom-value"===this.args?.event&&(t=e.prev("select.wpforms-field-map-select"),e.is(":visible")?e.find(".wpforms-field-map-custom-value-close").trigger("click"):t.val("custom_value").trigger("change")),s.UndoRedo.preventRecord("continue"))}}let s={el:{},sel:{smartTagWidget:".wpforms-smart-tags-widget"},undoManager:null,trackedWidgets:new Map,lastRecordedWidgetState:new WeakMap,init(){s.setup(),s.el.$builder.on("wpformsBuilderReady",_.debounce(s.ready,250))},setup(){s.el.$document=d(e),s.el.$builder=d("#wpforms-builder")},ready(){try{s.UndoRedo=WPForms.Admin.Builder.UndoRedo,s.UndoRedoHelpers=WPForms.Admin.Builder.UndoRedoHelpers,s.undoManager=s.UndoRedo.undoManager,s.actionNameSeparator=s.UndoRedo.config.actionNameSeparator,s.el={...s.el,...s.UndoRedo.el}}catch(e){return void wpf.debug("UndoRedoInputSmartTags: Dependency modules are not available.")}s.UndoRedo.registerCommand(a),s.events()},events(){s.el.$document.on("focus",s.sel.smartTagWidget,s.onSmartTagsWidgetFocus).on("blur",s.sel.smartTagWidget,s.onSmartTagsWidgetBlur).on("mousedown",".wpforms-field-map-custom-value-close",s.onCustomValueCloseMousedown).on("click",".wpforms-field-map-custom-value-close",s.onCustomValueCloseClick)},onSmartTagsWidgetFocus(e){var e=d(e.target),t=s.getSmartTagsWidgetKey(e);s.trackedWidgets.set(t,{htmlContent:e.html(),inputValue:s.getOriginalInput(e).val()})},onSmartTagsWidgetBlur(e){var t,a,o,r=d(e.target),n=s.getSmartTagsWidgetKey(r),n=s.trackedWidgets.get(n);!n||(t=r.html()).includes('{let n={init(){l(n.ready)},ready(){n.bindEvents()},bindEvents(){n.$builder=l("#wpforms-builder"),n.$builder.on("change",".wpforms-field-option-row-choices_other input",n.toggleOtherOption),n.$builder.on("input",".wpforms-field-option-row-other_placeholder input",n.updateOtherOptionPlaceholder),n.$builder.on("change",".wpforms-field-option-row-other_size select",n.updateOptionInputFieldSize),l(e).on("wpformsAIModalAfterChoicesInsert",n.appendOtherOption),n.$builder.on("input",".wpforms-field-option-row-choices li.wpforms-choice-other-option input.value",n.updateOptionInputPreview),n.$builder.on("change",".wpforms-field-option-row-dynamic_choices select",n.toggleDynamicChoices),n.$builder.on("wpformsChoicesSetDefault",n.updateDefaultOptionState)},updateOptionInputPreview(){var e=l(this),i=e.closest(".choices-list").data("field-id"),o=l("#wpforms-field-option-"+i);o.find(".wpforms-field-option-row-show_values input").is(":checked")&&(e=e.val(),i=l("#wpforms-field-"+i).find(".wpforms-other-input"),o=o.find(".wpforms-field-option-row-other_placeholder input").val()||"",i.val(e??o))},updateOptionInputFieldSize(){var e=l(this),i=e.closest(".wpforms-field-option-row").data("field-id"),e=e.val()||"medium";n.setOtherSizeOnContainer(i,e)},updateDefaultOptionState(e,i){var o,i=l(i),t=i.closest(".choices-list");"radio"===t.data("field-type")&&(t=t.data("field-id"),o=i.closest("li"),t=l("#wpforms-field-"+t).find(".wpforms-other-input"),o.hasClass("wpforms-choice-other-option")?(o=i.is(":checked"),t.toggleClass("wpforms-hidden",!o)):t.addClass("wpforms-hidden").val(""))},toggleOtherOption(e){var i=l(this),o=i.closest(".wpforms-field-option-row").data("field-id"),t=l("#wpforms-field-option-"+o),i=i.is(":checked"),r=t.find(".wpforms-field-option-hidden-type").val(),d=l("#wpforms-field-option-row-"+o+"-choices .choices-list"),s=d.attr("data-next-id");i?(n.fieldChoiceAddOther(e,l(this),s),d.attr("data-next-id",++s)):(d.find("li.wpforms-choice-other-option").remove(),l("#wpforms-field-"+o).find(".wpforms-other-input").addClass("wpforms-hidden")),t.find(".wpforms-field-option-row-other_placeholder").toggleClass("wpforms-hidden",!i),t.find(".wpforms-field-option-row-other_size").toggleClass("wpforms-hidden",!i),i?(e=t.find(".wpforms-field-option-row-other_size select").val()||"medium",n.setOtherSizeOnContainer(o,e)):n.setOtherSizeOnContainer(o,null),WPFormsBuilder.fieldChoiceUpdate(r,o),n.updatePreviewState(o)},updateOtherOptionPlaceholder(){var e=l(this),i=e.closest(".wpforms-field-option-row").data("field-id"),e=e.val(),i=l("#wpforms-field-"+i+" .wpforms-other-input");i.length&&i.attr("placeholder",e)},toggleDynamicChoices(){var e,i=l(this);""!==i.val()&&(i=i.closest(".wpforms-field-option-row").data("field-id"),(e=l("#wpforms-field-option-"+i).find(".wpforms-field-option-row-choices_other input")).is(":checked")&&e.prop("checked",!1).trigger("change"),n.updatePreviewState(i))},createOtherChoice(e,i,o){var e=e.children("li").last().clone(),t=wpforms_builder.other;return e.attr("data-key",o),e.find("input.label").val(t).attr("name",`fields[${i}][choices][${o}][label]`),e.find("input.value").val("").attr("name",`fields[${i}][choices][${o}][value]`),e.find(".wpforms-image-upload input.source").val("").attr("name",`fields[${i}][choices][${o}][image]`),e.find(".wpforms-icon-select input.source-icon").val(wpforms_builder.icon_choices.default_icon).attr("name",`fields[${i}][choices][${o}][icon]`),e.find(".wpforms-icon-select input.source-icon-style").val(wpforms_builder.icon_choices.default_icon_style).attr("name",`fields[${i}][choices][${o}][icon_style]`),e.find(".wpforms-icon-select .ic-fa-preview").removeClass().addClass(`ic-fa-preview ic-fa-${wpforms_builder.icon_choices.default_icon_style} ic-fa-`+wpforms_builder.icon_choices.default_icon),e.find(".wpforms-icon-select .ic-fa-preview + span").text(wpforms_builder.icon_choices.default_icon),e.find("input.default").attr("name",`fields[${i}][choices][${o}][default]`).prop("checked",!1),e.find(".preview").empty(),e.find(".wpforms-image-upload-add").show(),e.addClass("wpforms-choice-other-option not-draggable"),e.find(".move, .add, .remove").addClass("wpforms-disabled"),e.find("input.other-flag").remove(),e.append(``),e},fieldChoiceAddOther(e,i,o){var i=l(i).closest(".wpforms-field-option-row").data("field-id"),t=l(`#wpforms-field-option-row-${i}-choices .choices-list`),i=n.createOtherChoice(t,i,o);t.append(i)},appendOtherOption(e){var i,o,e=e?.detail?.fieldId,t=l("#wpforms-field-option-"+e),r=t.find(".wpforms-field-option-row-choices_other input");r.length&&r.is(":checked")&&(0<(r=l(`#wpforms-field-option-row-${e}-choices .choices-list`)).find("li.wpforms-choice-other-option").length||(i=parseInt(r.attr("data-next-id"),10),i=isNaN(i)?1:i,o=n.createOtherChoice(r,e,i),r.append(o),r.attr("data-next-id",i+1),o=t.find(".wpforms-field-option-hidden-type").val(),WPFormsBuilder.fieldChoiceUpdate(o,e)))},setOtherSizeOnContainer(e,i){e=l("#wpforms-field-"+e+".wpforms-field-radio");e.removeClass("size-small size-medium size-large"),i&&e.addClass("size-"+i)},showPreviewOther(e){var i=e.find(".wpforms-other-input");i.length&&(i.removeClass("wpforms-hidden"),(e=e.find('li.wpforms-other-choice input[type="radio"]')).length)&&e.val(i.val())},hidePreviewOther(e){e=e.find(".wpforms-other-input");e.length&&e.addClass("wpforms-hidden").val("")},updatePreviewState(e){var i,o,t,r=l("#wpforms-field-option-"+e),e=l("#wpforms-field-"+e);r.find(".wpforms-field-option-row-choices_other input").is(":checked")?((i=r.find('.choices-list li.wpforms-choice-other-option input[type="radio"]')).length&&i.is(":checked")?n.showPreviewOther(e):n.hidePreviewOther(e),(i=e.find(".wpforms-other-input")).length&&(t=r.find(".wpforms-field-option-row-show_values input").is(":checked"),o=r.find(".wpforms-field-option-row-other_placeholder input").val()||"",(t?(t=r.find(".choices-list li.wpforms-choice-other-option input.value").val()||"",i.val(t)):i.val("")).attr("placeholder",o))):n.hidePreviewOther(e)}};return n})(document,(window,jQuery)),WPForms.Admin.Builder.MultipleChoices.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/panel-loader.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/panel-loader.min.js new file mode 100644 index 0000000..a61d328 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/panel-loader.min.js @@ -0,0 +1 @@ +var WPForms=window.WPForms||{};WPForms.Admin=WPForms.Admin||{},WPForms.Admin.Builder=WPForms.Admin.Builder||{},WPForms.Admin.Builder.PanelLoader=WPForms.Admin.Builder.PanelLoader||(n=>{let o={},e=[],i={init(){n(i.ready)},ready(){i.setup(),i.events(),o.$builder.trigger("wpformsBuilderLoaderReady")},setup(){o.$builder=n("#wpforms-builder"),o.$form=n("#wpforms-builder-form"),o.$panels=o.$builder.find(".wpforms-panels"),e.currentPanel=wpf.getQueryString("view")},events(){o.$builder.on("wpformsPanelSwitch",function(e,r){o.$builder.find(`.wpforms-panel-${r}-button .wpforms-loading-spinner`).length?e.preventDefault():o.$panels.find("#wpforms-panel-"+r).length||(e.preventDefault(),i.loadPanel(r))})},loadPanel(r){i.showSpinner(r),n.post(wpforms_builder.ajax_url,{nonce:wpforms_builder.nonce,action:"wpforms_builder_load_panel",panel:r,form_id:wpf.getQueryString("form_id")}).done(function(e){e.success&&e.data?.length?(i.embedPanel(r,e.data),i.switchPanel(r),o.$builder.trigger("wpformsBuilderPanelLoaded",[r])):i.displayErrorModal(`

            ${wpforms_builder.error_load_templates}

            ${wpforms_builder.error_contact_support}

            `)}).fail(function(){i.displayErrorModal(`

            ${wpforms_builder.something_went_wrong}.

            ${wpforms_builder.error_contact_support}

            `)}).always(function(){i.hideSpinner(r)})},showSpinner(e){e=n(`.wpforms-panel-${e}-button`);e.find("i.fa").addClass("wpforms-hidden"),e.prepend('')},hideSpinner(e){e=n(`.wpforms-panel-${e}-button`);e.find("i.fa").removeClass("wpforms-hidden"),e.find("i.wpforms-loading-spinner").remove()},embedPanel(e,r){o.$panels.append(r)},switchPanel(e){n("#wpforms-panels-toggle").find("button").removeClass("active"),n(".wpforms-panel").removeClass("active"),n(`.wpforms-panel-${e}-button`).addClass("active"),n("#wpforms-panel-"+e).addClass("active"),history.replaceState({},null,wpf.updateQueryString("view",e)),o.$builder.trigger("wpformsPanelSwitched",[e])},displayErrorModal(e){n.alert({title:wpforms_builder.uh_oh,content:e,icon:"fa fa-exclamation-circle",type:"red",buttons:{cancel:{text:wpforms_builder.close,btnClass:"btn-confirm",keys:["enter"]}}})}};return i})((document,window,jQuery)),WPForms.Admin.Builder.PanelLoader.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/payments-utils.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/payments-utils.min.js new file mode 100644 index 0000000..002ca06 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/payments-utils.min.js @@ -0,0 +1 @@ +let WPFormsBuilderPaymentsUtils=window.WPFormsBuilderPaymentsUtils||(o=>({toggleContent(){var e=o(this),n=e.closest(".wpforms-payment-settings"),n=(n.find(".wpforms-panel-content-section-payment-toggle-one-time .wpforms-toggle-control > input").is(":checked")&&n.find(".wpforms-panel-content-section-payment-toggle-recurring .wpforms-toggle-control > input").is(":checked")&&(e.prop("checked",!1),o.alert({title:wpforms_builder.heads_up,content:e.attr("name").includes("enable_recurring")?wpforms_builder_payments_utils.payments_disabled_recurring:wpforms_builder_payments_utils.payments_disabled_one_time,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})),e.closest(".wpforms-panel-content-section-payment")),e=e.prop("checked")&&!o("#wpforms-panel-field-settings-disable_entries").prop("checked");n.find(".wpforms-panel-content-section-payment-toggled-body").toggle(e),n.toggleClass("wpforms-panel-content-section-payment-open",e)},checkPlanName(){var e,n=o(this),t=n.closest(".wpforms-panel-content-section-payment-plan").find(".wpforms-panel-content-section-payment-plan-head-title");n.val()?t.html(n.val()):(e=wpforms_builder_payments_utils.payments_plan_placeholder,t.html(e),n.val(e))},togglePlan(){var e=o(this).closest(".wpforms-panel-content-section-payment-plan"),n=e.find(".wpforms-panel-content-section-payment-plan-head-buttons-toggle");n.toggleClass("fa-chevron-circle-up fa-chevron-circle-down"),e.find(".wpforms-panel-content-section-payment-plan-body").toggle(n.hasClass("fa-chevron-circle-down"))},deletePlan(){o(this).closest(".wpforms-panel-content-section-payment").find(".wpforms-panel-content-section-payment-button-add-plan").trigger("click")},renamePlan(){var e=o(this),n=e.closest(".wpforms-panel-content-section-payment-plan").find(".wpforms-panel-content-section-payment-plan-head-title");e.val()?n.html(e.val()):n.html("")}}))((document,window,jQuery)); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/admin/builder/providers.min.js b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/providers.min.js new file mode 100644 index 0000000..9e15346 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/admin/builder/providers.min.js @@ -0,0 +1 @@ +var WPForms=window.WPForms||{};WPForms.Admin=WPForms.Admin||{},WPForms.Admin.Builder=WPForms.Admin.Builder||{},WPForms.Admin.Builder.Providers=WPForms.Admin.Builder.Providers||((e,p)=>{let f={hasUnsavedNewConnection:!1,cache:{},config:{templates:["wpforms-providers-builder-content-connection-fields","wpforms-providers-builder-content-connection-conditionals"]},fields:{}},u={panelHolder:{},form:p("#wpforms-builder-form"),spinner:'',ajax:{_mergeData(e,r){e={id:u.form.data("id"),revision_id:u.form.data("revision"),nonce:wpforms_builder.nonce,action:"wpforms_builder_provider_ajax_"+e};return p.extend(e,r),e},request(n,t){let i=u.getProviderHolder(n),d=i.find(".wpforms-builder-provider-connections-save-lock"),e=i.find(".js-wpforms-builder-provider-connection-add"),r="connections_get"===t?.data?.task;var o={url:wpforms_builder.ajax_url,type:"post",dataType:"json",beforeSend(){i.addClass("loading"),r&&e.addClass("wpforms-disabled"),d.val(1),u.ui.getProviderError(n).hide()}};return r||i.find(".wpforms-builder-provider-title-spinner").removeClass("wpforms-hidden"),t.data=u.ajax._mergeData(n,t.data||{}),p.extend(o,t),p.ajax(o).fail(function(e,r,o){console.error("provider:",n),console.error(e),console.error(r),d.val(1),u.ui.showError(n)}).always(function(e,r,o){i.removeClass("loading"),WPForms.Admin.Builder.UndoRedo?.preventRecord(!0),setTimeout(()=>{p("#wpforms-builder").trigger("wpformsBuilderProviderConnectionAjaxAlways",[n,t]),WPForms.Admin.Builder.UndoRedo?.preventRecord("continue")},250)}).done(function(){d.val(0),r&&e.removeClass("wpforms-disabled")})}},cache:{get(e,r){return void 0!==f.cache[e]&&f.cache[e]instanceof Map?f.cache[e].get(r):null},getById(e,r,o){return void 0===this.get(e,r)||void 0===this.get(e,r)[o]?null:this.get(e,r)[o]},set(e,r,o){return void 0!==f.cache[e]&&f.cache[e]instanceof Map||(f.cache[e]=new Map),f.cache[e].set(r,o)},addTo(e,r,o,n){void 0!==f.cache[e]&&f.cache[e]instanceof Map||(f.cache[e]=new Map,this.set(e,r,{}));var t=this.get(e,r);return t[o]=n,this.set(e,r,t)},delete(e,r){return void 0!==f.cache[e]&&f.cache[e]instanceof Map?f.cache[e].delete(r):null},deleteFrom(e,r,o){var n;return void 0!==f.cache[e]&&f.cache[e]instanceof Map?(delete(n=this.get(e,r))[o],this.set(e,r,n)):null},clear(e){void 0!==f.cache[e]&&f.cache[e]instanceof Map&&f.cache[e].clear()}},init(){p(u.ready)},ready(){f.fields=p.extend({},wpf.getFields(!1,!0)),u.panelHolder=p("#wpforms-panel-providers, #wpforms-panel-settings"),u.Templates=WPForms.Admin.Builder.Templates,u.Templates.add(f.config.templates),u.bindActions(),u.ui.bindActions(),u.panelHolder.trigger("WPForms.Admin.Builder.Providers.ready")},bindActions(){p(e).on("wpformsSaved",function(){f.hasUnsavedNewConnection=!1;var e=u.panelHolder.find(".wpforms-builder-provider-connection");if(e.length){let n=!1;e.each(function(){let o=!1;var e,r;p(this).find("input.wpforms-required, select.wpforms-required, textarea.wpforms-required").each(function(){var e=p(this),r=e.val();_.isEmpty(r)&&!e.closest(".wpforms-builder-provider-connection-block").hasClass("wpforms-hidden")?(p(this).addClass("wpforms-error"),o=!0):p(this).removeClass("wpforms-error")}),o&&!n&&((e=p(this).closest(".wpforms-builder-provider").find(".wpforms-builder-provider-title").clone()).find("button").remove(),r=wpforms_builder.provider_required_flds,p.alert({title:wpforms_builder.heads_up,content:r.replace("{provider}",""+e.text().trim()+""),icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}}),n=!0)}),"fields"===wpf.getQueryString("view")&&u.updateMapSelects(e)}}),p(e).on("wpformsFieldUpdate",function(){var e=u.panelHolder.find(".wpforms-builder-provider-connection");u.updateMapSelects(e)}),u.panelHolder.on("connectionCreate",function(){f.hasUnsavedNewConnection=!0}),u.panelHolder.on("connectionGeneralSettingsRendered connectionRendered",function(e,n){"string"!=typeof n||f.hasUnsavedNewConnection||setTimeout(()=>{var e,r,o=wpf._getCurrentFormState();for([e,r]of Object.entries(o))new RegExp(`\\[?${n}[\\[\\]]`).test(e)&&void 0===wpf.savedFormState[e]&&(wpf.savedFormState[e]=r)},0)})},updateMapSelects(o){var e=p.extend({},wpf.getFields()),n=_.mapObject(e,function(e,r){return e.label}),t=_.mapObject(f.fields,function(e,r){return e.label});if(!(_.isEmpty(n)&&_.isEmpty(t)||JSON.stringify(n)===JSON.stringify(t))){let r=Object.keys(n).map(function(e){return parseInt(e,10)});var a,s=Object.keys(t).map(function(e){return parseInt(e,10)}).filter(function(e){return!r.includes(e)});for(let e=0;e",{value:"",text:t})),n.forEach(function(e){o.append(p("
            '),o.render(t,{sitekey:e,callback(){wpformsRecaptchaCallback(p("#"+t))}})}},amountTotal(e,t){t=t||!1;let r=p(e),a=r.closest(".wpforms-form"),i=m.amountTotalCalc(a);if(m.allowAmountTotalCalc(a,r,i)){let e=m.amountFormatSymbol(i);a.find(".wpforms-payment-total").each(function(){"hidden"===p(this).attr("type")||"text"===p(this).attr("type")?(p(this).val(e),"text"===p(this).attr("type")&&t&&a.data("validator")&&p(this).valid()):p(this).text(e)}),m.updateOrderSummaryItems(a,r,e)}},allowAmountTotalCalc(e,t,r){var e=e.data("formid");return m.getCache(e,"amountTotal")!==r?(m.updateCache(e,"amountTotal",r),!0):"radio"===(e=t.prop("type"))||"select-one"===e||"checkbox"===e},updateOrderSummaryItems(e,t,r){var a=e.find(".wpforms-order-summary-preview");if(0!==a.length){let i=e.find(".wpforms-payment-price");a.each(function(){let a=p(this),e=(""!==r&&a.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text(r),t=>{let r=Math.min(t+10,i.length);for(let e=t;ee(r),0)});e(0)})}},updateCache(e,t,r){m.cache[e]=m.cache[e]||{},m.cache[e][t]=r},getCache(e,t){return!(!Object.prototype.hasOwnProperty.call(m.cache,e)||!Object.prototype.hasOwnProperty.call(m.cache[e],t))&&m.cache[e][t]},updateOrderSummaryItem(i,o){if(i.hasClass("wpforms-payment-price")){let t=i.closest(".wpforms-field"),e=t.data("field-id"),r=i.prop("type"),a="block"===t.css("display");var s,n;"checkbox"===r||"radio"===r||"select-one"===r?o.find(`tr[data-field="${e}"]`).each(function(){var e=p(this).data("choice"),e="select-one"===r?e===parseInt(t.find("select").val(),10):t.find(`input[value="${e}"]`).is(":checked");p(this).toggle(a&&e)}):(s=o.find(`tr[data-field="${e}"]`),n=i.val(),s.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(m.amountSanitize(n))),s.toggle(a)),t.hasClass("wpforms-payment-quantities-enabled")?m.updateOrderSummaryItemQuantity(i):(m.updateSummaryPriceWidth(o),m.toggleSummaryPlaceholder(o))}},updateOrderSummaryItemQuantity(e){let t=e.closest(".wpforms-field"),a=t.find("input.wpforms-payment-price, select.wpforms-payment-price"),r=e.closest(".wpforms-form"),i=t.data("field-id"),o=m.getPaymentFieldQuantity(a),s=m.getPaymentFieldAmount(a),n=a.prop("type");r.find(".wpforms-order-summary-preview").each(function(){var e,t=p(this);let r;(r="checkbox"===n||"radio"===n||"select-one"===n?(e=a.val(),t.find(`tr[data-field="${i}"][data-choice="${e}"]`)):t.find(`tr[data-field="${i}"]`)).toggle(0'),e.append(''),e.get(0).submit())},formHasCaptcha(e){return!(!e||!e.length||"undefined"==typeof hcaptcha&&"undefined"==typeof grecaptcha&&"undefined"==typeof turnstile)&&(e=e.find(".wpforms-recaptcha-container"),Boolean(e.length))},resetFormRecaptcha(r){if(m.formHasCaptcha(r)){var a=r.find(".wpforms-recaptcha-container");let e,t;e=a.hasClass("wpforms-is-hcaptcha")?hcaptcha:a.hasClass("wpforms-is-turnstile")?turnstile:grecaptcha,t=r.find(".wpforms-submit").get(0).recaptchaID,m.empty(t)&&0!==t&&(a=r.find(".g-recaptcha, .h-captcha, .cf-turnstile")).length&&(t=a.data("recaptcha-id")),m.empty(t)&&0!==t||e.reset(t)}},consoleLogAjaxError(e){e?console.error("WPForms AJAX submit error:\n%s",e):console.error("WPForms AJAX submit error")},displayFormAjaxErrors(e,t){"string"==typeof t?m.displayFormAjaxGeneralErrors(e,t):(t=t&&"errors"in t?t.errors:null,m.empty(t)||m.empty(t.general)&&m.empty(t.field)?m.consoleLogAjaxError():(m.empty(t.general)||m.displayFormAjaxGeneralErrors(e,t.general),m.empty(t.field)||m.displayFormAjaxFieldErrors(e,t.field)))},displayFormAjaxGeneralErrors(e,t){var r,a;e&&e.length&&(m.empty(t)||(m.isModernMarkupEnabled()&&e.attr({"aria-invalid":"true","aria-errormessage":""}),"string"==typeof t?(a=m.isModernMarkupEnabled()?' role="alert"':"",r=m.isModernMarkupEnabled()?`${wpforms_settings.formErrorMessagePrefix}`:"",e.find(".wpforms-submit-container").before(`
            ${r}${t}
            `),m.setCurrentPage(e,{})):(a=e.data("formid"),m.printGeneralErrors(e,t,a))))},printGeneralErrors(i,e,o){p.each(e,function(e,t){switch(e){case"header":case"header_styled":i.prepend(t);break;case"footer":case"footer_styled":r=t,0===i.find(".wpforms-page-indicator").length?i.find(".wpforms-submit-container").before(r):i.find(".wpforms-page-1").append(r);break;case"recaptcha":r=t,i.find(".wpforms-recaptcha-container").append(r)}var r,a;m.isModernMarkupEnabled()&&(a=i.attr("aria-errormessage")||"",i.attr("aria-errormessage",a+` wpforms-${o}-${e}-error`))}),i.find(".wpforms-error-container").length&&m.animateScrollTop(i.find(".wpforms-error-container").first().offset().top-100)},clearFormAjaxGeneralErrors(e){e.find(".wpforms-error-container").remove(),e.find("#wpforms-field_recaptcha-error").remove(),m.isModernMarkupEnabled()&&e.attr({"aria-invalid":"false","aria-errormessage":""})},displayFormAjaxFieldErrors(a,i){var e;a&&a.length&&(m.empty(i)||(e=a.data("validator"))&&(i=m.splitFieldErrors(i),p.each(i,function(e,t){var r=p('[name="'+e+'"]',a);r.length?r.attr("data-server-error",t):delete i[e]}),e.showErrors(i),m.formHasCaptcha(a)||e.focusInvalid()))},splitFieldErrors:o=>(p.each(o,function(i,e){"string"!=typeof e&&p.each(e,function(e,t){var r=i.split("[").pop().replace("]",""),a=i.replace("["+r+"]","");r===e?o[i]=t:"string"==typeof e&&isNaN(e)&&(o[a+"["+e+"]"]=t)})}),o),formSubmitAjax:a=>{if(!a.length)return p.Deferred().reject();let r=a.closest(".wpforms-container"),e=a.find(".wpforms-submit-spinner"),i;r.css("opacity",.6),e.show(),m.clearFormAjaxGeneralErrors(a);var t=new FormData(a.get(0)),t=(t.append("action","wpforms_submit"),t.append("start_timestamp",m.getStartTimestampData(a)),t.append("end_timestamp",m.getTimestampSec()),{type:"post",dataType:"json",url:wpforms_settings.ajaxurl,data:t,cache:!1,contentType:!1,processData:!1});return t.success=function(e){var t;if(e)if(e.data&&e.data.action_required)a.trigger("wpformsAjaxSubmitActionRequired",e);else if(e.success){if(a.trigger("wpformsAjaxSubmitSuccess",e),e.data)return e.data.redirect_url?(t=e.data.new_tab||!1,a.trigger("wpformsAjaxSubmitBeforeRedirect",e),t?(d.open(e.data.redirect_url,"_blank"),void location.reload()):void(d.location=e.data.redirect_url)):void(e.data.confirmation&&(r.html(e.data.confirmation),i=r.find("div.wpforms-confirmation-scroll"),r.trigger("wpformsAjaxSubmitSuccessConfirmation",e),i.length)&&m.animateScrollTop(i.offset().top-100))}else m.resetFormRecaptcha(a),m.displayFormAjaxErrors(a,e.data),a.trigger("wpformsAjaxSubmitFailed",e),m.setCurrentPage(a,e.data);else m.consoleLogAjaxError()},t.error=function(e,t,r){m.consoleLogAjaxError(r),a.trigger("wpformsAjaxSubmitError",[e,t,r])},t.complete=function(e,t){e.responseJSON&&e.responseJSON.data&&(e.responseJSON.data.action_required||"success"===t&&e.responseJSON.data.redirect_url)||(m.restoreSubmitButton(a,r),a.trigger("wpformsAjaxSubmitCompleted",[e,t]))},WPFormsUtils.triggerEvent(a,"wpformsAjaxBeforeSubmit",[a]).isDefaultPrevented()?(m.restoreSubmitButton(a,r),p.Deferred().reject()):p.ajax(t)},setCurrentPage(a,i){if(0!==a.find(".wpforms-page-indicator").length){let r=[];if(a.find(".wpforms-page").each(function(e,t){if(1<=p(t).find(".wpforms-has-error").length)return r.push(p(t))}),0!==r.length||void 0===i.errors||void 0===i.errors.general||void 0!==i.errors.general.footer||void 0===i.errors.general.recaptcha){var o=0=1e3*wpforms_settings.token_cache_lifetime&&!this.isUpdatingToken},updateToken(t,r,a){var e=r.data("formid");let i=r.find(".wpforms-submit");this.isUpdatingToken=!0,i.prop("disabled",!0),p.post(wpforms_settings.ajaxurl,{action:"wpforms_get_token",formId:e}).done(function(e){e.success?(r.attr("data-token-time",t),r.attr("data-token",e.data.token),i.prop("disabled",!1),a.target===i[0]&&i.trigger("click")):console.error("Failed to update token: ",e)}).fail(function(e,t,r){console.error("AJAX request failed: ",t,r)}).always(function(){this.isUpdatingToken=!1,i.prop("disabled",!1)}.bind(this))},restoreSubmitButtonOnEventPersisted(){d.onpageshow=function(e){e.persisted&&p(".wpforms-form").each(function(){var e=p(this);m.restoreSubmitButton(e,e.closest(".wpforms-container"))})}},loadValidationGroups(e){var t=e.closest(".wpforms-form").data("validator");t&&p.extend(t.groups,m.getDateTimeValidationGroups(e))},getDateTimeValidationGroups(e){let a={};return e.find(".wpforms-field.wpforms-field-date-time").each(function(){var e=p(this);if(e.find(".wpforms-field-date-dropdown-wrap").length){let r=e.attr("id").replace("-container","");p.each(["month","day","year"],function(e,t){t=p(`#${r}-`+t).attr("name");a[t]=r})}}),a},getTimestampSec(){return Math.floor(Date.now()/1e3)},lockField(e){var t=e.data("field-type");(wpforms_settings.readOnlyDisallowedFields??[]).includes(t)||(e.addClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly",!0).attr("tabindex","-1"),e.hasClass("wpforms-field-select-style-modern")?((t=e.find("select")).data("choicesjs")?.disable(),t.removeAttr("disabled")):e.hasClass("wpforms-field-richtext")&&d.WPFormsRichTextField?.lockField(e))},unlockField(e){e.removeClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly",!1).attr("tabindex",null),e.hasClass("wpforms-field-select-style-modern")?e.find("select").data("choicesjs")?.enable():e.hasClass("wpforms-field-richtext")&&d.WPFormsRichTextField?.unlockField(e)},readOnlyFieldsInit(){p(".wpforms-field."+a).each(function(){m.lockField(p(this))})},field:{lock(e,t){m.lockField(p(`#wpforms-${e}-field_${t}-container`))},unlock(e,t){m.unlockField(p(`#wpforms-${e}-field_${t}-container`))},toggle(e,t,r="auto"){e=p(`#wpforms-${e}-field_${t}-container`),t=e.hasClass(a);("auto"===r?!t:r)?m.lockField(e):m.unlockField(e)},isLocked(e,t){return p(`#wpforms-${e}-field_${t}-container`).hasClass(a)},lockAll(e){p(`#wpforms-${e} .wpforms-field`).each(function(){m.lockField(p(this))})},unlockAll(e){p("#wpforms-"+e).find(".wpforms-field").each(function(){m.unlockField(p(this))})}}};return m})(document,window,jQuery);wpforms.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/api.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/api.min.js new file mode 100644 index 0000000..7460919 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/api.min.js @@ -0,0 +1 @@ +export default function(){let t={mode:"",actions:{rate:"wpforms_rate_ai_response",choices:"wpforms_get_ai_choices",forms:"wpforms_get_ai_form"},async ajax(e){e.nonce||(e.nonce=wpforms_ai_chat_element.nonce);e={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(e).toString()},e=await fetch(wpforms_ai_chat_element.ajaxurl,e).catch(e=>{throw"Failed to fetch"===e.message?new Error(wpforms_ai_chat_element.errors.network):new Error(e.message)});if(!e.ok)throw new Error(wpforms_ai_chat_element.errors.network);e=await e.json();if(!e.success||e.data?.error)throw new Error(e.data?.error??wpforms_ai_chat_element.errors.default,{cause:e.data?.code??400});return e.data},async prompt(e,r){e={action:t.actions[this.mode]??t.actions.choices,prompt:e};return r&&(e.session_id=r),t.ajax(e)},async rate(e,r){e={action:t.actions.rate,helpful:e,response_id:r};return t.ajax(e)},setUp(){return t.actions={...t.actions,...wpforms_ai_chat_element.actions},this},setMode(e){return this.mode=e,this}};return function(e){return{...t}.setUp().setMode(e)}} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-choices.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-choices.min.js new file mode 100644 index 0000000..82e7e4a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-choices.min.js @@ -0,0 +1,19 @@ +export default function(c){return{getAnswer(e){if(e.choices?.length<1)return"";var t,i=[];for(t in e.choices)i.push(` +
          • + ${c.htmlSpecialChars(e.choices[t])} +
          • + `);let r=` +

            ${c.htmlSpecialChars(e.heading??"")}

            +
              + ${i.join("")} +
            + `;return c.sessionId||(r+=`${c.modeStrings.footer}`),r},getAnswerButtonsPre(){return` + + `},getWarningMessage(){return c.triggerEvent("wpformsAIModalBeforeWarningMessageInsert",{fieldId:c.fieldId}),`
            +
            +
            + ${c.modeStrings.warning} +
            +
            `},isWelcomeScreen(){var t=document.getElementById(`wpforms-field-option-row-${c.fieldId}-choices`).querySelectorAll("li input.label");if(1!==t.length||t[0].value.trim()){if(3wpf.sanitizeHTML(e,wpforms_builder.allowed_label_html_tags)),t.choices=e.filter(e=>""!==e.trim())}return t},hasProhibitedCode(e,t){return t?.choices?.length!==e?.choices?.length},insertButtonClick(e){var t,e=e.target.closest(".wpforms-chat-item.wpforms-chat-item-choices"),i=e?.getAttribute("data-response-id"),r=(e?.querySelector("ol")).querySelectorAll(".wpforms-ai-chat-choices-item"),o=[];for(t in r)r.hasOwnProperty(t)&&r[t].textContent&&o.push(r[t].textContent.trim());c.wpformsAiApi.rate(!0,i),this.replaceChoices(o),jQuery("#wpforms-field-"+c.fieldId).click().promise().done(function(){jQuery(`#wpforms-field-option-basic-${c.fieldId} a.wpforms-field-option-group-toggle`).click()})},replaceChoices(e){var t,i=document.getElementById(`wpforms-field-option-row-${c.fieldId}-choices`).querySelector("ul.choices-list");let r=i.querySelector("li:first-child");for(t in WPFormsBuilder.triggerBuilderEvent("wpformsFieldChoiceBeforeCloning",[c.fieldId,jQuery(r)]),(r=r.cloneNode(!0)).innerHTML=r.innerHTML.replace(/\[choices\]\[\d+\]/g,"[choices][{{key}}]"),i.innerHTML="",e){var o=(Number(t)+1).toString(),l=e[t],s=r.cloneNode(!0),s=this.getUpdatedSingleChoiceItem(s,o,l);i.appendChild(s)}i.setAttribute("data-next-id",e.length+1);var n=document.getElementById("wpforms-field-option-"+c.fieldId).querySelector("input.wpforms-field-option-hidden-type")?.value;WPFormsBuilder.fieldChoiceUpdate(n,c.fieldId,e.length),WPFormsBuilder.triggerBuilderEvent("wpformsFieldChoiceAdd",[c.fieldId,jQuery(i),"ai-choices"]),c.triggerEvent("wpformsAIModalAfterChoicesInsert",{fieldId:c.fieldId})},getUpdatedSingleChoiceItem(e,t,i){e.setAttribute("data-key",t.toString()),e.innerHTML=e.innerHTML.replaceAll("{{key}}",t),i=wpf.sanitizeHTML(i);e.querySelector("input.default").removeAttribute("checked");t=e.querySelector("input.label"),t.value=i,t.setAttribute("value",i),t=e.querySelector("input.value"),t.value=i,t.setAttribute("value",i),t=e.querySelector(".wpforms-image-upload"),i=t.querySelector("input.source"),i.value="",i.setAttribute("value",""),t.querySelector(".preview").innerHTML="",t.querySelector(".wpforms-image-upload-add").style.display="block",i=e.querySelector(".wpforms-icon-select");return i.querySelector(".ic-fa-preview").setAttribute("class","ic-fa-preview ic-fa-regular ic-fa-face-smile"),i.querySelector("input.source-icon").value="face-smile",i.querySelector("input.source-icon-style").value="regular",e}}} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-forms.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-forms.min.js new file mode 100644 index 0000000..3caafa6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-forms.min.js @@ -0,0 +1,9 @@ +export default function(r){let t={init(){r.sessionId&&(WPFormsAIFormGenerator.state.chatStart=!0,WPFormsAIFormGenerator.main.el.$templateCard.next(".selected").removeClass("selected")),document.addEventListener("wpformsAIChatBeforeSendMessage",t.detectQuizBeforeSendMessage.bind(t))},resetInput(){r.resizeInput()},getAnswer(e){var t;return e?(t=Math.floor(Math.random()*r.modeStrings.footer.length),t=r.modeStrings.footer[t],` +

            ${e.explanation||(e.form_title??"")}

            + ${e.notice?`

            ${e.notice}

            `:""} + ${t} + `):""},getAnswerButtonsPre(){return` + + `},addedAnswer(e){t.updateInactiveAnswers()},setActiveAnswer(e){t.updateInactiveAnswers(),e.querySelector(".wpforms-chat-item-content").setAttribute("title","")},updateInactiveAnswers(){r.messageList.querySelectorAll(".wpforms-chat-item-answer:not(.active) .wpforms-chat-item-content").forEach(e=>{e.setAttribute("title",r.modeStrings.inactiveAnswerTitle)})},isWelcomeScreen(){return!0},sanitizeResponse(e){return e.explanation&&(e.explanation=wpf.sanitizeHTML(e.explanation,wpforms_builder.allowed_label_html_tags)),e},detectQuizBeforeSendMessage(e){let t=e.detail.message.toLowerCase();var r=wpforms_ai_form_generator.isPro,n=["quiz","test","exam","survey","evaluation"].some(e=>t.includes(e)),s=!Boolean(wpforms_ai_form_generator.addonsData?.quiz),a=WPFormsAIFormGenerator.modals?.isQuizInstallModalCanceled;r&&n&&!s&&!a&&(e.sendPrevented=!0,WPFormsAIFormGenerator.modals.openQuizInstallModal())}};return t} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-text.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-text.min.js new file mode 100644 index 0000000..3a5b172 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/modules/helpers-text.min.js @@ -0,0 +1,5 @@ +export default function(e){return{getAnswer(e){return` +

            ${e?.heading??""}

            +

            ${e?.text??""}

            + ${e?.footer??""} + `},getAnswerButtonsPre(){return""},addedAnswer(){},isWelcomeScreen(){return!0}}} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/wpforms-ai-chat-element.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/wpforms-ai-chat-element.min.js new file mode 100644 index 0000000..41636ed --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/chat-element/wpforms-ai-chat-element.min.js @@ -0,0 +1,43 @@ +(()=>{let r=wpforms_ai_chat_element.modules||[];Promise.all(r.map(e=>import(e.path))).then(e=>{let s={},i;e.forEach((e,t)=>{t=r[t].name;"api"===t?i=e.default():s[t]=e.default}),window.WPFormsAi={api:i,helpers:s},customElements.define("wpforms-ai-chat",WPFormsAIChatHTMLElement)}).catch(e=>{wpf.debug("Error importing modules:",e)})})();class WPFormsAIChatHTMLElement extends HTMLElement{eventInitializes=!1;prefillSubmitted=!1;inputHeight={min:54,max:95};constructor(){super()}connectedCallback(){this.chatMode=this.getAttribute("mode")??"text",this.fieldId=this.getAttribute("field-id")??"",this.prefill=this.getAttribute("prefill")??"",this.autoSubmit="true"===this.getAttribute("auto-submit"),this.modeStrings=wpforms_ai_chat_element[this.chatMode]??{},this.loadingState=!1,this.modeHelpers=this.getHelpers(this),this.modeHelpers?(this.innerHTML.trim()||(this.innerHTML=this.getInnerHTML()),this.wrapper=this.querySelector(".wpforms-ai-chat"),this.input=this.querySelector(".wpforms-ai-chat-message-input input, .wpforms-ai-chat-message-input textarea"),this.welcomeScreenSamplePrompts=this.querySelector(".wpforms-ai-chat-welcome-screen-sample-prompts"),this.sendButton=this.querySelector(".wpforms-ai-chat-send"),this.stopButton=this.querySelector(".wpforms-ai-chat-stop"),this.messageList=this.querySelector(".wpforms-ai-chat-message-list"),this.isTextarea="TEXTAREA"===this.input.tagName,this.preventResizeInput=!1,navigator.userAgent.includes("Macintosh")||this.messageList.classList.add("wpforms-scrollbar-compact"),this.events(),this.initAnswers(),"function"==typeof this.modeHelpers.init&&this.modeHelpers.init(),this.autoSubmit&&this.prefill&&!this.prefillSubmitted&&(this.input.value=this.prefill,this.prefillSubmitted=!0,setTimeout(()=>this.sendMessage(!0),250))):console.error(`WPFormsAI error: chat mode "${this.chatMode}" helpers not found`)}getInnerHTML(){return this.modeStrings.chatHtml?this.decodeHTMLEntities(this.modeStrings.chatHtml):` +
            +
            + ${this.getWelcomeScreen()} +
            +
            + ${this.getMessageInputField()} + + +
            +
            + `}getMessageInputField(){return"function"==typeof this.modeHelpers.getMessageInputField?this.modeHelpers.getMessageInputField():``}getWelcomeScreen(){let e;return e=this.modeHelpers.isWelcomeScreen()?this.getWelcomeScreenContent():(this.messagePreAdded=!0,this.modeHelpers.getWarningMessage()),` +
            +
            +
            +

            ${this.modeStrings.title}

            + ${this.modeStrings.description} + ${this.modeStrings.learnMore} + +
            + ${e} +
            +
            + `}getWelcomeScreenContent(){var e=this.modeStrings?.samplePrompts,t=[];if(!e&&!this.modeStrings?.initialChat)return"";if(e){for(var s in e)t.push(` +
          • + + ${this.escHTML(e[s].title)} +
          • + `);return` +
              + ${t.join("")} +
            + `}return 0'}events(){this.eventInitializes||(this.sendButton.addEventListener("click",this.sendMessage.bind(this)),this.stopButton.addEventListener("click",this.stopLoading.bind(this)),this.input.addEventListener("keydown",this.keyDown.bind(this)),this.input.addEventListener("keyup",this.keyUp.bind(this)),this.bindWelcomeScreenEvents(),document.addEventListener("wpformsAIChatBeforeAddAnswer",this.preAnswer.bind(this)),this.eventInitializes=!0)}bindWelcomeScreenEvents(){null!==this.welcomeScreenSamplePrompts&&this.welcomeScreenSamplePrompts.querySelectorAll("li").forEach(e=>{e.addEventListener("click",this.clickDefaultItem.bind(this)),e.addEventListener("keydown",e=>{"Enter"===e.code&&(e.preventDefault(),this.clickDefaultItem(e))})})}initAnswers(){this.modeStrings.chatHtml&&(this.wpformsAiApi=this.getAiApi(),this.messageList.querySelectorAll(".wpforms-chat-item-answer").forEach(e=>{this.initAnswer(e)}))}keyUp(e){switch(("function"==typeof this.modeHelpers.resizeInput?this.modeHelpers:this).resizeInput(e),e.code){case"Enter":this.isTextarea&&(this.isTextarea,e.shiftKey)||(e.preventDefault(),this.sendMessage());break;case"ArrowUp":this.isTextarea&&(this.isTextarea,!e.ctrlKey)||(e.preventDefault(),this.arrowUp());break;case"ArrowDown":this.isTextarea&&(this.isTextarea,!e.ctrlKey)||(e.preventDefault(),this.arrowDown());break;default:this.history.update({question:this.input.value})}}keyDown(e){this.preventResizeInput="Enter"===e.code&&!e.shiftKey,this.preventResizeInput&&(e.preventDefault(),this.setInputHeight(this.inputHeight.min))}resizeInput(){var e;this.preventResizeInput?this.preventResizeInput=!1:(this.input.style.height="",this.input.style.paddingTop="10px",this.input.style.paddingBottom="10px",e=this.input.scrollHeight,e=Math.min(e,this.inputHeight.max),e=Math.max(e,this.inputHeight.min),this.setInputHeight(e))}setInputHeight(e){e<=this.inputHeight.min&&(this.input.style.paddingTop="",this.input.style.paddingBottom=""),this.input.style.height=e+"px",this.style.setProperty("--wpforms-ai-chat-input-height",e+"px")}sendMessage(e=!1){let t=this.input.value;t&&(e||(t=this.htmlSpecialChars(t)),this.triggerEvent("wpformsAIChatBeforeSendMessage",{fieldId:this.fieldId,mode:this.chatMode,message:t}).sendPrevented||(this.addFirstMessagePre(),this.welcomeScreenSamplePrompts?.remove(),this.resetInput(),this.addMessage(t,!0),this.startLoading(),""===t.trim()?this.addEmptyResultsError():("function"==typeof this.modeHelpers.prepareMessage&&(t=this.modeHelpers.prepareMessage(t)),this.getAiApi().prompt(t,this.sessionId).then(this.addAnswer.bind(this)).catch(this.apiResponseError.bind(this)))))}apiResponseError(e){var t=e?.cause??null;this.triggerEvent("wpformsAIChatBeforeError",{fieldId:this.fieldId}),429===t?this.addError(this.modeStrings.errors.rate_limit||wpforms_ai_chat_element.errors.rate_limit,this.modeStrings.reasons.rate_limit||wpforms_ai_chat_element.reasons.rate_limit):500===t?this.addEmptyResultsError():(this.addError(e.message||this.modeStrings.errors.default||wpforms_ai_chat_element.errors.default,this.modeStrings.reasons.default||wpforms_ai_chat_element.reasons.default),wpf.debug("WPFormsAI error: ",e))}addFirstMessagePre(){var e;this.sessionId||this.messagePreAdded||(this.messagePreAdded=!0,(e=document.createElement("div")).classList.add("wpforms-ai-chat-divider"),this.messageList.appendChild(e))}clickDefaultItem(e){var t="LI"===e.target.nodeName?e.target:e.target.closest("li"),s=t.getAttribute("data-prompt"),s=s.length?s:t.querySelector("a")?.textContent;e.preventDefault(),s&&(this.input.value=s,this.history.push({question:s}),this.sendMessage())}clickDislikeButton(e){var e=e.target,t=e?.closest(".wpforms-chat-item-answer");t&&(e.classList.add("clicked"),e.setAttribute("disabled",!0),e=t.getAttribute("data-response-id"),this.wpformsAiApi.rate(!1,e))}async clickRefreshButton(){this.triggerEvent("wpformsAIChatBeforeRefreshConfirm",{fieldId:this.fieldId}),WPFormsAIModal.confirmModal({title:wpforms_ai_chat_element.confirm.refreshTitle,content:wpforms_ai_chat_element.confirm.refreshMessage,onConfirm:()=>{this.prefill="",this.messageList.innerHTML=this.getWelcomeScreen(),this.welcomeScreenSamplePrompts=this.querySelector(".wpforms-ai-chat-welcome-screen-sample-prompts"),this.bindWelcomeScreenEvents(),this.scrollMessagesTo("top"),this.wpformsAiApi=null,this.sessionId=null,this.messagePreAdded=null,this.wrapper.removeAttribute("data-session-id"),this.history.clear(),this.triggerEvent("wpformsAIChatAfterRefresh",{fieldId:this.fieldId})},onCancel:()=>{this.triggerEvent("wpformsAIChatCancelRefresh",{fieldId:this.fieldId})}})}startLoading(){this.loadingState=!0,this.sendButton.classList.add("wpforms-hidden"),this.stopButton.classList.remove("wpforms-hidden"),this.input.setAttribute("disabled",!0),this.input.setAttribute("placeholder",this.modeStrings.waiting)}stopLoading(){this.loadingState=!1,this.messageList.querySelector(".wpforms-chat-item-answer-waiting")?.remove(),this.sendButton.classList.remove("wpforms-hidden"),this.stopButton.classList.add("wpforms-hidden"),this.input.removeAttribute("disabled"),this.input.setAttribute("placeholder",this.modeStrings.placeholder),this.input.focus()}arrowUp(){var e=this.history.prev()?.question;void 0!==e&&(this.input.value=e)}arrowDown(){var e=this.history.next()?.question;void 0!==e&&(this.input.value=e)}getAiApi(){return this.wpformsAiApi||(this.sessionId=this.wrapper.getAttribute("data-session-id")||null,this.wpformsAiApi=window.WPFormsAi.api(this.chatMode,this.sessionId)),this.wpformsAiApi}scrollMessagesTo(e="bottom"){"top"===e?this.messageList.scrollTop=0:this.messageList.scrollHeight-this.messageList.scrollTop<22||(this.messageList.scrollTop=this.messageList.scrollHeight)}addMessage(e,t,s=null,i=!1){var r=this.messageList,a=document.createElement("div");if(a.classList.add("wpforms-chat-item"),i&&(a.classList.add("wpforms-chat-item-pre-message"),a.classList.add("pre-active")),r.appendChild(a),t){a.innerHTML=e,a.classList.add("wpforms-chat-item-question");var t=document.createElement("div"),n=document.createElement("div");t.classList.add("wpforms-chat-item-answer-waiting"),n.classList.add("wpforms-chat-item-spinner"),n.innerHTML=this.getSpinnerSvg(),t.appendChild(n),r.appendChild(t),this.history.push({})}else{n=document.createElement("div");if(n.classList.add("wpforms-chat-item-content"),a.appendChild(n),r.querySelector(".wpforms-chat-item-answer-waiting")?.remove(),this.messageList.querySelector(".wpforms-chat-item-answer.active")?.classList.remove("active"),this.messageList.querySelector(".wpforms-chat-item-answer.pre-active")?.classList.add("active"),this.messageList.querySelector(".wpforms-chat-item-answer.pre-active")?.classList.remove("pre-active"),a.classList.add("wpforms-chat-item-answer"),a.classList.add("active"),a.classList.add("wpforms-chat-item-typing"),a.classList.add("wpforms-chat-item-"+this.chatMode),a.setAttribute("data-response-id",s?.responseId??""),this.history.update({answer:e}),!i)return void this.typeText(n,e,this.addedAnswer.bind(this));n.innerHTML=e}this.scrollMessagesTo("bottom")}addError(e,t){this.addNotice(e,t)}addWarning(e,t){this.addNotice(e,t,"warning")}addNotice(e,t,s="error"){let i="";this.loadingState&&(e&&(i+=`

            ${e}

            `),t&&(i+=`${t}`),e=document.createElement("div"),t=document.createElement("div"),e.classList.add("wpforms-chat-item"),e.classList.add("wpforms-chat-item-"+s),t.classList.add("wpforms-chat-item-content"),e.appendChild(t),this.messageList.querySelector(".wpforms-chat-item-answer-waiting")?.remove(),this.messageList.appendChild(e),this.typeText(t,i,()=>{this.stopLoading()}))}addEmptyResultsError(){this.addError(this.modeStrings.errors.empty||wpforms_ai_chat_element.errors.empty,this.modeStrings.reasons.empty||wpforms_ai_chat_element.reasons.empty)}addProhibitedCodeWarning(){this.addWarning(this.modeStrings.warnings.prohibited_code||wpforms_ai_chat_element.warnings.prohibited_code,this.modeStrings.reasons.prohibited_code||wpforms_ai_chat_element.reasons.prohibited_code)}preAnswer(e){var t,e=e.detail.response;e.preMessage&&(e=this.sanitizeResponse({...e})).preMessage&&e.preMessage.title&&e.preMessage.text&&(t=`

            ${e.preMessage.title}

            ${e.preMessage.text}`,this.addMessage(t,!1,e,!0))}addAnswer(e){var t,s;this.loadingState&&e&&(e.processingData&&wpf.debug("WPFormsAI processing data:",e.processingData),t=this.sanitizeResponse({...e}),this.hasProhibitedCode(e,t)?(this.triggerEvent("wpformsAIChatBeforeError",{fieldId:this.fieldId}),this.addProhibitedCodeWarning()):(s=this.modeHelpers.getAnswer(t))?(this.sessionId=e.sessionId,this.wrapper.setAttribute("data-session-id",this.sessionId),this.triggerEvent("wpformsAIChatBeforeAddAnswer",{chat:this,response:t}),this.addMessage(s,!1,t),this.triggerEvent("wpformsAIChatAfterAddAnswer",{fieldId:this.fieldId})):(this.triggerEvent("wpformsAIChatBeforeError",{fieldId:this.fieldId}),this.addEmptyResultsError()))}hasProhibitedCode(e,t){return"function"==typeof this.modeHelpers.hasProhibitedCode&&this.modeHelpers.hasProhibitedCode(e,t)}sanitizeResponse(e){return"function"==typeof this.modeHelpers.sanitizeResponse?this.modeHelpers.sanitizeResponse(e):e}addedAnswer(e){e.innerHTML+=this.getAnswerButtons(),e.parentElement.classList.remove("wpforms-chat-item-typing"),this.stopLoading(),this.initAnswer(e),this.modeHelpers.addedAnswer(e),this.triggerEvent("wpformsAIChatAddedAnswer",{chat:this,element:e})}initAnswer(e){e&&(e.querySelectorAll(".wpforms-help-tooltip").forEach(e=>{var t;e.getAttribute("title")||(t=e.classList.contains("dislike")?wpforms_ai_chat_element.dislike:"",t=e.classList.contains("refresh")?wpforms_ai_chat_element.refresh:t,e.setAttribute("title",t)),e.classList.remove("tooltipstered")}),wpf.initTooltips(e),e.addEventListener("click",this.setActiveAnswer.bind(this)),e.querySelector(".wpforms-ai-chat-answer-button.dislike")?.addEventListener("click",this.clickDislikeButton.bind(this)),e.querySelector(".wpforms-ai-chat-answer-button.refresh")?.addEventListener("click",this.clickRefreshButton.bind(this)))}setActiveAnswer(e){var t=(t=e.target.closest(".wpforms-chat-item-answer"))||e.target;t.classList.contains("active")||(this.messageList.querySelector(".wpforms-chat-item-answer.active")?.classList.remove("active"),t.classList.add("active"),e=t.getAttribute("data-response-id"),this.modeHelpers.setActiveAnswer&&this.modeHelpers.setActiveAnswer(t),this.triggerEvent("wpformsAIChatSetActiveAnswer",{chat:this,responseId:e}))}getAnswerButtons(){return` +
            + ${this.modeHelpers.getAnswerButtonsPre()} +
            + + +
            +
            + `}typeText(s,i,r){let a=this,n=0,o="";!function e(){var t=i.substring(n,n+5);o+=t,s.innerHTML=o.replace(/<[^>]{0,300}$/g,""),(n+=5)]/g,e=>"�"+e.charCodeAt(0)+";")}decodeHTMLEntities(e){var t=document.createElement("textarea");return t.innerHTML=e,t.value}escHTML(e){var t=document.createElement("textarea");return t.textContent=e,t.innerHTML}triggerEvent(e,t={}){e=new CustomEvent(e,{detail:t});return document.dispatchEvent(e),e}history={data:[],pointer:0,defaultItem:{question:"",answer:null},get(e=null){return e&&(this.pointer=e),this.pointer<1?this.pointer=0:this.pointer>=this.data.length&&(this.pointer=this.data.length-1),this.data[this.pointer]??{}},prev(){return--this.pointer,this.get()},next(){return this.pointer+=1,this.get()},push(e){e.answer?this.data[this.data.length-1].answer=e.answer:(this.data.push({...this.defaultItem,...e}),this.pointer=this.data.length-1)},update(e){var t=0{function s(o){localStorage.setItem("wpforms-ai-chat-prefers-pinned","1"),o.find(".wpforms-ai-modal-pin").attr("title",wpforms_ai_chat_element.unpinChat);var a=e("#wpforms-builder-form .wpforms-toolbar");let i=a.offset().top+a.outerHeight();o.addClass("pinned"),e("#wpadminbar").is(":visible")&&o.addClass("with-wpadminbar"),o.insertAfter(a).promise().done(function(){o.css({top:i})})}function a(o){localStorage.setItem("wpforms-ai-chat-prefers-pinned","0"),o.find(".wpforms-ai-modal-pin").attr("title",wpforms_ai_chat_element.pinChat),o.removeClass("pinned"),o.removeClass("with-wpadminbar"),o.appendTo(e("body")).promise().done(function(){o.css({top:0})}),o.find(".wpforms-ai-modal-top-bar").removeClass("scrolled")}function n(){var o;e(this).hasClass("not-allowed")||(((o=e(this).closest(".jconfirm.jconfirm-wpforms-ai-modal")).hasClass("pinned")?a:s)(o),e(".jconfirm.jconfirm-wpforms-ai-modal").not(o).each(function(){var o=e(this);(o.hasClass("pinned")?a:s)(o),o.hide()}))}function t(o){"fields"!==e(o.target).closest("button").data("panel")&&e(".jconfirm.jconfirm-wpforms-ai-modal.pinned").each(function(){e(this).hide()})}function r(o){return e('wpforms-ai-chat[field-id="'+o+'"]').closest(".jconfirm.jconfirm-wpforms-ai-modal").last()}return{init:function(a){{var i=a;let e=r(i),o=e.find(".wpforms-ai-modal-pin").length;if(!o){let a=e.find(".jconfirm-closeIcon"),o=(a.after(`
            +
            +
            `).promise().done(function(){var o=e.find(".wpforms-ai-modal-top-bar");a.appendTo(o)}),a.attr("title",wpforms_ai_chat_element.close),e.find(".wpforms-ai-modal-top-bar")),i=e.find(".wpforms-ai-chat-message-list");i.off("scroll"),i.on("scroll",function(){0o.addClass("not-allowed")).on("wpformsAIChatBeforeError wpformsAIChatAfterTypeText",()=>o.removeClass("not-allowed")),e("#wpforms-panels-toggle button").off("click",t).on("click",t)}i=a,"0"!==(localStorage.getItem("wpforms-ai-chat-prefers-pinned")||"0")&&s(r(i))}}})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/choices/wpforms-ai-modal.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/choices/wpforms-ai-modal.min.js new file mode 100644 index 0000000..2b7a5c5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/choices/wpforms-ai-modal.min.js @@ -0,0 +1 @@ +var WPFormsAIModal=window.WPFormsAIModal||((e,o,t)=>{let n={defaultOptions:{title:!1,content:"",type:"ai",smoothContent:!0,bgOpacity:1,boxWidth:650,contentMaxHeight:600,closeIcon:!0,buttons:!1},init(){t(n.ready)},ready(){n.extendJqueryConfirm(),n.bindChoicesActions()},bindChoicesActions(){t(e).on("click",".wpforms-ai-choices-button",n.initChoicesModal).on("wpformsAIChatBeforeRefreshConfirm",n.beforeChoicesRefreshConfirm).on("wpformsAIModalBeforeWarningMessageInsert",n.refreshModalHeight).on("wpformsAIChatAfterRefresh",n.refreshModalHeight).on("wpformsAIChatCancelRefresh",n.cancelChoicesRefresh).on("wpformsAIChatBeforeSendMessage",function(e){n.resizeModalHeight(e.detail.fieldId)}).on("wpformsAIChatAfterAddAnswer",function(e){n.resizeModalHeight(e.detail.fieldId)}).on("wpformsAIModalAfterChoicesInsert",function(e){n.hideChoicesModal(e.detail.fieldId)}),t(o).on("resize",function(){t(".jconfirm-wpforms-ai-modal wpforms-ai-chat").each(function(){n.resizeModalHeight(t(this).attr("field-id"))})})},initModal(e){t.confirm({...n.defaultOptions,...e})},initChoicesModal(){var o=t(this);if(o.hasClass("wpforms-prevent-default"))o.trigger("blur");else{let i=o.data("field-id"),e=t(".jconfirm-wpforms-ai-modal-choices-"+i);if(t(`.jconfirm-wpforms-ai-modal:not(.jconfirm-wpforms-ai-modal-choices-${i})`).addClass("wpforms-hidden").fadeOut(),e.length)e.removeClass("wpforms-hidden").fadeIn();else{let e={},o=function(){return n.hideChoicesModal(i),!1};e.content=``,e.theme="wpforms-ai-modal, wpforms-ai-purple, wpforms-ai-modal-choices-"+i,e.backgroundDismiss=o,e.backgroundDismissAnimation="",e.contentMaxHeight=Math.min(n.defaultOptions.contentMaxHeight,n.getMaxModalHeight()),e.onOpen=function(){this.$closeIcon.off("click"),this.$closeIcon.on("click",o)},e.onOpenBefore=function(){wpFormsAIDock.init(i)},n.initModal(e)}}},hideChoicesModal(e){t(".jconfirm-wpforms-ai-modal-choices-"+e).addClass("wpforms-hidden").fadeOut()},showChoicesModal(e){t(".jconfirm-wpforms-ai-modal-choices-"+e).removeClass("wpforms-hidden").fadeIn()},resizeModalHeight(e){var o=n.getMaxModalHeight();t(".jconfirm-wpforms-ai-modal").filter(function(){return t(this).attr("class").match(new RegExp("jconfirm-wpforms-ai-modal-.*-"+e,"i"))}).find(".jconfirm-content-pane").css({height:o,"max-height":o})},beforeChoicesRefreshConfirm(e){e=e.detail?.fieldId||0;n.hideChoicesModal(e)},cancelChoicesRefresh(e){e=e.detail?.fieldId||0;n.showChoicesModal(e)},refreshModalHeight(e){var e=e.detail?.fieldId||0,o=Math.min(n.getMaxModalHeight(),n.defaultOptions.contentMaxHeight);n.showChoicesModal(e),t(`.jconfirm-wpforms-ai-modal-choices-${e} .jconfirm-content-pane`).css({height:o,"max-height":o})},getMaxModalHeight(){return Math.min(.8*t(o).height(),800)},extendJqueryConfirm(){o.Jconfirm.prototype._updateContentMaxHeight=function(){this.$contentPane.css({"max-height":this.contentMaxHeight+"px"})}},confirmModal(e){var o={title:!1,content:"",icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_ai_chat_element.btnYes,btnClass:"btn-confirm",keys:["enter"],action(){"function"==typeof e.onConfirm&&e.onConfirm()}},cancel:{text:wpforms_ai_chat_element.btnCancel,action(){"function"==typeof e.onCancel&&e.onCancel()}}}};t.confirm({...o,...e})}};return n})(document,window,jQuery);WPFormsAIModal.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/form-generator.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/form-generator.min.js new file mode 100644 index 0000000..6b19de9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/form-generator.min.js @@ -0,0 +1,23 @@ +var WPFormsAIFormGenerator=window.WPFormsAIFormGenerator||((e,r,s)=>{let l=wpforms_ai_form_generator,o={state:{},main:null,preview:null,init(){r.wpforms_builder?.is_ai_disabled||o.isLoaded||(o.updateLocationUrl(),o.events(),o.isLoaded=!0)},events(){s(e).on("wpformsSetupPanelBeforeInitTemplatesList",o.addTemplateCard),s("#wpforms-builder").on("wpformsBuilderReady",o.maybeSaveForm).on("wpformsBuilderPanelLoaded",o.panelLoaded)},panelLoaded(e,t){"setup"===t&&Promise.all([import(l.modules.main),import(l.modules.preview),import(l.modules.modals)]).then(([e,t,a])=>{o.main=e.default(o,s),o.preview=t.default(o,s),o.modals=a.default(o,s),o.main.init()})},addTemplateCard(){s("#wpforms-template-generate").length||(s("#wpforms-setup-templates-list .list").prepend(o.renderTemplateCard()),wpf.initTooltips(s("#wpforms-template-generate .wpforms-template-buttons")))},renderTemplateCard(){var e="generate"===r.wpforms_builder?.template_slug?"selected":"";let t="",a=!Object.keys(l.addonsData).length||l.dismissed.installAddons?"wpforms-template-generate":"wpforms-template-generate-install-addons";return l.isPro||l.liteConnectAllowed||(a+=" wpforms-inactive wpforms-help-tooltip wpforms-prevent-default",t=`data-tooltip-position="top" title="${l.templateCard.liteConnectNotAllowed}"`),l.isPro||l.liteConnectEnabled||!l.liteConnectAllowed||(a+=" enable-lite-connect-modal wpforms-prevent-default"),` +
            +
            +
            + ${l.templateCard.name} +
            +
            +
            +

            + ${l.templateCard.name} +

            + ${l.templateCard.new} +
            +

            + ${l.templateCard.desc} +

            + +
            + `},maybeSaveForm(){wpforms_ai_chat_element.forms?.chatHtml&&!wpf.getQueryString("newform")&&WPFormsBuilder.formSave(!1)},updateLocationUrl(){history.replaceState({},null,wpf.updateQueryString("session",null))}};return o})(document,window,jQuery);WPFormsAIFormGenerator.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/main.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/main.min.js new file mode 100644 index 0000000..6b04e86 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/main.min.js @@ -0,0 +1,22 @@ +export default function(o,n){let r=wpforms_ai_form_generator,l={el:{},init(){l.initState(),l.initElementsCache(),l.initStateProxy(),o.state.panelAdd=!0,o.preview.init(),o.modals.init(),l.events()},initState(){o.state={formId:n("#wpforms-builder-form").data("id"),panelAdd:!1,panelOpen:!1,chatStart:!1,aiResponse:null}},events(){l.el.$setupPanel.on("click",".wpforms-template-generate",l.event.clickGenerateFormBtn).on("click",".wpforms-template-generate-install-addons",o.modals.openAddonsModal),l.el.$generatorPanel.on("click",".wpforms-btn-back-to-templates",l.event.clickBackToTemplatesBtn).on("click",".wpforms-ai-chat-reload-link",l.event.reloadPage).on("click",".wpforms-ai-chat-use-form",l.event.useForm),l.el.$builder.on("wpformsPanelSwitch",l.event.panelSwitch),l.el.$doc.on("wpformsBuilderReady",l.maybeOpenPanel).on("wpformsAIChatBeforeAddAnswer",l.event.chatBeforeAddAnswer).on("wpformsAIChatAddedAnswer",l.event.chatAddedAnswer).on("wpformsAIChatAfterRefresh",l.event.chatAfterRefresh).on("wpformsAIChatSetActiveAnswer",l.event.chatSetActiveAnswer)},initElementsCache(){l.el.$doc=n(document),l.el.$builder=n("#wpforms-builder"),l.el.$builderToolbar=n("#wpforms-builder .wpforms-toolbar"),l.el.$templatesList=n("#wpforms-setup-templates-list .list"),l.el.$templateCard=n("#wpforms-template-generate"),l.el.$generatorPanel=n("#wpforms-panel-ai-form"),l.el.$setupPanel=n("#wpforms-panel-setup"),l.el.$panelsContainer=n(".wpforms-panels"),l.el.$allPanels=n(".wpforms-panel"),l.el.$chat=l.el.$generatorPanel.find("wpforms-ai-chat .wpforms-ai-chat")},initStateProxy(){o.state=new Proxy(o.state,{set(e,t,a){return e[t]=a,"function"==typeof l.setStateHandler[t]&&(l.setStateHandler[t](a),wpf.debug("Form Generator state changed:",t,"=",a)),!0}})},event:{clickGenerateFormBtn(e){e.preventDefault(),n(this).hasClass("wpforms-prevent-default")||(o.state.panelOpen=!0)},clickBackToTemplatesBtn(){o.state.panelOpen=!1},chatBeforeAddAnswer(e){o.state.aiResponse=e.originalEvent.detail?.response,o.state.aiResponseHistory=o.state.aiResponseHistory||{},o.state.aiResponseHistory[o.state.aiResponse?.responseId]=o.state.aiResponse},chatAddedAnswer(e){(e.originalEvent.detail?.chat||{})?.sessionId&&!o.state.chatStart&&(o.state.chatStart=!0)},chatAfterRefresh(){o.preview.clear()},chatSetActiveAnswer(e){o.state.aiResponse=o.state.aiResponseHistory[e.originalEvent.detail?.responseId]},useForm(e){e?.preventDefault();e=n(this);o.state.formId&&"generate"!==wpforms_builder.template_slug?o.modals.openExistingFormModal(e):l.useFormAjax(e)},reloadPage(e){e?.preventDefault(),window.location=window.location+"&ai-form"},panelSwitch(){o.state.panelOpen=!1}},setStateHandler:{panelAdd(e){e?l.el.$generatorPanel?.length||(l.el.$panelsContainer.append(l.render.generatorPanel()),l.el.$generatorPanel=n("#wpforms-panel-ai-form"),l.el.$chat=l.el.$generatorPanel.find("wpforms-ai-chat .wpforms-ai-chat")):l.el.$generatorPanel?.remove()},panelOpen(e){var t;l.el.$generatorPanel.toggleClass("active",e),l.el.$templateCard.addClass("selected"),l.setToolbarState(e),window.WPFormsChallenge?.core.freezeChallenge(e,r.misc.frozenChallengeTooltip),n("body").toggleClass("wpforms-ai-form-generator-active",e),!o.state.aiResponseHistory&&wpforms_ai_chat_element.forms.responseHistory&&(o.state.aiResponseHistory=wpforms_ai_chat_element.forms.responseHistory,t=(e=l.el.$chat.find(".wpforms-chat-item-answer.active")).data("response-id"),o.state.aiResponse=o.state.aiResponseHistory[t],e[0].scrollIntoView({behavior:"smooth",block:"end"}))},chatStart(e){e&&l.el.$templateCard.addClass("selected").find(".wpforms-template-generate").text(r.templateCard.buttonTextContinue)},aiResponse(e){e&&o.preview.update()},isPreviewUpdate(e){l.el.$chat.toggleClass("wpforms-ai-chat-inactive",e)}},render:{generatorPanel(){return` +
            +
            +
            +
            + +
            + +
            +
            +
            +
            +

            ${r.panel.emptyStateTitle}

            +

            ${r.panel.emptyStateDesc}

            +
            +
            +
            +
            +
            + `}},maybeOpenPanel(){if(window.location.search.includes("&ai-form")){history.replaceState({},null,wpf.updateQueryString("ai-form",null));let e=n(".wpforms-template-generate.enable-lite-connect-modal");e.length?setTimeout(function(){e.trigger("click")},0):!Object.keys(r.addonsData).length||r.dismissed.installAddons?o.state.panelOpen=!0:o.modals.openAddonsModal(null)}},useFormAjax(e){var t=e.closest(".wpforms-ai-chat").data("session-id"),a=e.closest(".wpforms-chat-item").data("response-id");WPFormsBuilder.showLoadingOverlay(),l.getChatElement()?.wpformsAiApi.rate(!0,a),WPFormsBuilder.setCloseConfirmation(!1);let s={action:"wpforms_use_ai_form",nonce:r.nonce,formId:o.state.formId,formData:o.state.aiResponseHistory[a],sessionId:t,chatHtml:e.closest("wpforms-ai-chat").html(),responseHistory:o.state.aiResponseHistory};o.preview.closeTooltips(),n.post(r.ajaxUrl,s).done(function(t){if(t.success){let e=s.formId?"":"&newform=1";window.WPFormsChallenge?WPFormsChallenge.core.resumeChallengeAndExec({},()=>{WPFormsChallenge.core.stepCompleted(2).done(()=>{window.location.assign(t.data.redirect+e)})}):window.location.assign(t.data.redirect+e)}else wpf.debug("Form Generator AJAX error:",t.data.error??t.data)}).fail(function(e){wpf.debug("Form Generator AJAX error:",e.responseText??e.statusText)})},setToolbarState(e){l.el.$builderToolbar.toggleClass("empty",e),l.el.$builderToolbar.find(".js-wpforms-help span").toggleClass("screen-reader-text",!e)},getChatElement(){return l.el.$chat.parent()[0]}};return l} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/modals.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/modals.min.js new file mode 100644 index 0000000..3becc13 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/modals.min.js @@ -0,0 +1,6 @@ +export default function(a,r){let l=wpforms_ai_form_generator,i={el:{},ajaxError:"Form Generator AJAX error:",spinner:'',init(){i.el.$doc=r(document),i.el.$templateCard=r("#wpforms-template-generate"),i.events()},events(){i.el.$doc.on("change",".wpforms-ai-forms-install-addons-modal-dismiss",i.dismissAddonsModal)},openAddonsModal(n){n?.preventDefault();let o="install"===l.addonsAction;n=o?l.addons.installContent:l.addons.activateContent,n={title:l.addons.installTitle,content:n,type:"purple",icon:"fa fa-info-circle",buttons:{confirm:{text:o?l.addons.installConfirmButton:l.addons.activateConfirmButton,btnClass:"btn-confirm",keys:["enter"],action(){var n=o?l.addons.installing:l.addons.activating;return this.$$confirm.prop("disabled",!0).html(i.spinner+n),this.$$cancel.prop("disabled",!0),i.installAddonsAjax(this),!1}},cancel:{text:l.addons.cancelButton,keys:["esc"],btnClass:"btn-cancel",action(){i.updateGenerateFormButton(!1),setTimeout(()=>{a.state.panelOpen=!0},250)}}},onOpenBefore(){var n=` + + `;this.$body.addClass("wpforms-ai-forms-install-addons-modal").find(".jconfirm-buttons").after(n)}};r.confirm(n)},installAddonsAjax(n){function o(n){n.success||wpf.debug(i.ajaxError,n.data.error??n.data),n.success||t||(t=!0,i.openErrorModal({title:"install"===l.addonsAction?l.addons.addonsInstallErrorTitle:l.addons.addonsActivateErrorTitle,content:l.addons.addonsInstallError}))}let a=null,t=!1;function e(n){var o;t||(n=n.responseText||l.addons.addonsInstallErrorNetwork,o=l.addons.addonsInstallError,o+=n&&"error"!==n?"
            "+n:"",wpf.debug(i.ajaxError,o),i.openErrorModal({title:"install"===l.addonsAction?l.addons.addonsInstallErrorTitle:l.addons.addonsActivateErrorTitle,content:o}),t=!0)}for(var s in WPFormsBuilder.setCloseConfirmation(!1),l.addonsData){var d=l.addonsData[s]?.url;let n={action:d?"wpforms_install_addon":"wpforms_activate_addon",nonce:l.adminNonce,plugin:d||l.addonsData[s]?.path,type:"addon"};(a=null===a?r.post(l.ajaxUrl,n,o):a.then(()=>r.post(l.ajaxUrl,n,o))).fail(e)}a.then(()=>{t||i.openAddonsInstalledModal()}).always(()=>{n.close(),i.updateGenerateFormButton(!1)})},dismissAddonsModal(){var n=r(this).prop("checked"),o={action:"wpforms_dismiss_ai_form",nonce:l.nonce,element:"install-addons-modal",dismiss:n};i.updateGenerateFormButton(!n),r.post(l.ajaxUrl,o).done(function(n){n.success||(i.openErrorModal({title:l.addons.dismissErrorTitle,content:l.addons.dismissError}),wpf.debug(i.ajaxError,n.data.error??n.data))}).fail(function(n){i.openErrorModal({title:l.addons.dismissErrorTitle,content:l.addons.dismissError+"
            "+l.addons.addonsInstallErrorNetwork}),wpf.debug(i.ajaxError,n.responseText??n.statusText)})},updateGenerateFormButton(n){n?r(".wpforms-template-generate").removeClass("wpforms-template-generate").addClass("wpforms-template-generate-install-addons"):r(".wpforms-template-generate-install-addons").removeClass("wpforms-template-generate-install-addons").addClass("wpforms-template-generate")},openAddonsInstalledModal(){var n={title:"install"===l.addonsAction?l.addons.addonsInstalledTitle:l.addons.addonsActivatedTitle,content:l.addons.addonsInstalledContent,icon:"fa fa-check-circle",type:"green",buttons:{confirm:{text:l.addons.okay,btnClass:"btn-confirm",keys:["enter"],action(){WPFormsBuilder.showLoadingOverlay(),window.location=window.location+"&ai-form"}}},onOpenBefore(){this.$body.addClass("wpforms-ai-forms-addons-installed-modal")}};r.confirm(n)},openExistingFormModal(n){r.confirm({title:wpforms_builder.heads_up,content:l.misc.warningExistingForm,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action(){a.main.useFormAjax(n)}},cancel:{text:wpforms_builder.cancel}}})},openErrorModal(n){n={title:n.title??!1,content:n.content??!1,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:l.addons.okay,btnClass:"btn-confirm",keys:["enter"]}}};r.confirm(n)},openQuizInstallModal(){let o=Boolean(l.addonsData.quiz?.url);var n={title:l.quiz.modalTitle,content:l.quiz.modalContent,type:"orange",icon:"fa fa-info-circle",buttons:{confirm:{text:o?l.addons.installConfirmButton:l.addons.activateConfirmButton,btnClass:"btn-confirm",keys:["enter"],action(){var n=o?l.addons.installing:l.addons.activating;return this.$$confirm.prop("disabled",!0).html(i.spinner+n),this.$$cancel.prop("disabled",!0),i.installActivateAddon(l.addonsData.quiz,this),!1}},cancel:{text:l.addons.cancelButton,keys:["esc"],btnClass:"btn-cancel",action(){i.isQuizInstallModalCanceled=!0,r("#wpforms-panel-ai-form .wpforms-ai-chat-send").trigger("click")}}}};r.confirm(n)},installActivateAddon(o,a){var n=o.url??null;let t=o.action;r.post(wpforms_education.ajax_url,{action:"install"===t?"wpforms_install_addon":"wpforms_activate_addon",nonce:l.adminNonce,plugin:n||o.path,type:"addon"}).done(function(n){a.close(),n.success?i.openAddonInstalledModal(o):(i.openErrorModal({title:"install"===t?l.addons.addonsInstallErrorTitle:l.addons.addonsActivateErrorTitle,content:l.addons.addonsInstallError}),wpf.debug(i.ajaxError,n.data.error??n.data))}).fail(function(n){i.openErrorModal({title:"install"===t?l.addons.addonsInstallErrorTitle:l.addons.addonsActivateErrorTitle,content:l.addons.addonsInstallError}),wpf.debug(i.ajaxError,n.responseText??n.statusText)})},openAddonInstalledModal(n){n={title:"install"===n.action?l.addons.addonInstalledTitle:l.addons.addonActivatedTitle,content:l.addons.addonInstalledContent,icon:"fa fa-check-circle",type:"green",buttons:{confirm:{text:l.addons.okay,btnClass:"btn-confirm",keys:["enter"],action(){i.isQuizInstallModalCanceled=!0,r("#wpforms-panel-ai-form .wpforms-ai-chat-send").trigger("click")}}},onOpenBefore(){this.$body.addClass("wpforms-ai-forms-addons-installed-modal")}};r.confirm(n)}};return i} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/preview.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/preview.min.js new file mode 100644 index 0000000..728ddda --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/ai/form-generator/modules/preview.min.js @@ -0,0 +1,6 @@ +export default function(s,i){let n=wpforms_ai_form_generator,r={el:{},mouse:{},init(){r.el.$contentWrap=s.main.el.$generatorPanel.find(".wpforms-panel-content-wrap"),r.el.$content=r.el.$contentWrap.find(".wpforms-panel-content"),r.el.$emptyState=r.el.$content.find(".wpforms-panel-empty-state"),r.events()},events(){i(document).on("mousemove",e=>{r.mouse.x=e.pageX,r.mouse.y=e.pageY}),r.el.$contentWrap.on("scroll",r.closeTooltips)},update(){var e=s.state.aiResponse;if(e&&e.fields){for(var t in s.state.isPreviewUpdate=!0,s.state.previewFields=[],r.clear(!1),r.displayHeader(e),r.initGradedQuizForm(e),e.fieldsOrder){var o=e.fieldsOrder[t];r.field(e.fields[o],t)}e.fieldsOrder?.length?r.displaySubmit(e.settings?.submit_text||n.panel.submitButton):(r.el.$emptyState.removeClass("wpforms-hidden-strict"),s.state.isPreviewUpdate=!1)}},async field(t,e){var o=` +
            +
            +
            +
            + `,o=(r.el.$content.append(o),{action:"wpforms_get_ai_form_field_preview",nonce:n.nonce,field:t});await r.delay(300*e),i.post(n.ajaxUrl,o).done(function(e){e.success?r.displayField(e.data??"",t):wpf.debug("Form Generator AJAX error:",e.data.error??e.data)}).fail(function(e){wpf.debug("Form Generator AJAX error:",e.responseText??e.statusText)})},displayField(e,t){var o,i;!t.id&&0!==t.id||(i=(o=r.el.$content.find("#wpforms-generator-field-"+t.id)).find(".wpforms-field"),o.find(".placeholder").addClass("fade-out"),i.html(e??"").addClass("fade-in").toggleClass("wpforms-hidden",!e).toggleClass("required","1"===t.required).toggleClass("label_empty",!t.label),r.initTooltip(i),r.initPageBreak(i,t),r.initQuizField(i,t),s.state.previewFields.push(t.id),s.state.previewFields.length!==Object.keys(s.state.aiResponse?.fields).length)||(s.state.isPreviewUpdate=!1)},getAddonsUsedInResponse(){var e=s.state.aiResponse;if(!e||!e.fields)return"";var t,o,i=[];for(t in e.fields){var r=wpforms_ai_form_generator.addonFields[e.fields[t].type];r&&(r=wpforms_addons["wpforms-"+r]?.title.replace(n.addons.addon,"").trim())&&!i.includes(r)&&i.push(r)}return i.length?(o=i.pop(),o+=" "+n.addons.addon,i.length?i.join(", ")+", "+n.addons.and+" "+o:o):""},initPageBreak(e,t){"pagebreak"!==t.type||["top","bottom"].includes(t.position)||e.addClass("wpforms-pagebreak-normal")},initTooltip(e){var t={content:n.panel.tooltipTitle+"
            "+n.panel.tooltipText,trigger:"manual",interactive:!0,animationDuration:100,delay:0,side:["top"],contentAsHTML:!0,functionPosition:(e,t,o)=>(o.coord.top=r.mouse.y-57,o.coord.left=r.mouse.x-130,o)};e.tooltipster(t),r.toggleTooltipOnClick(e)},toggleTooltipOnClick(t){t.on("click",()=>{r.closeTooltips();var e=t.tooltipster("status");t.tooltipster("closed"===e.state?"open":"close"),"closed"===e.state&&((e=t.tooltipster("instance"))._$tooltip.css({height:"auto"}),e._$tooltip.find(".tooltipster-arrow").css({left:"50%"}),setTimeout(function(){r.closeTooltips()},5e3))})},closeTooltips(){r.el.$content.find(".wpforms-field").each(function(){var e=i(this);e.hasClass("tooltipstered")&&e.parent().length&&e.tooltipster("close")})},displayHeader(e){e=`

            ${e.form_title??""}

            `;r.el.$content.prepend(e)},displaySubmit(e){r.el.$content.append(``)},clear(e=!0){r.el.$content.find(".wpforms-ai-form-generator-preview-field").remove(),r.el.$content.find(".wpforms-ai-form-generator-preview-placeholder").remove(),r.el.$content.find(".wpforms-ai-form-generator-preview-title").remove(),r.el.$content.find(".wpforms-ai-form-generator-preview-addons-notice").remove(),r.el.$content.find(".wpforms-ai-form-generator-preview-submit").remove(),r.el.$emptyState.toggleClass("wpforms-hidden-strict",!e)},delay(t){return new Promise(e=>{setTimeout(e,t)})},isGradedQuiz(e){return Boolean(e.settings?.quiz?.enabled&&"graded"===e.settings?.quiz?.type)},initGradedQuizForm(e){r.el.$content.toggleClass("wpforms-quiz-graded-type-selected",r.isGradedQuiz(e))},initQuizField(e,t){e.toggleClass("wpforms-quiz-field-included",t.quiz_enabled)}};return r} \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/auth.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/auth.min.js new file mode 100644 index 0000000..260b358 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/auth.min.js @@ -0,0 +1 @@ +let WPFormsConstantContactV3Auth=window.WPFormsConstantContactV3Auth||((o,s,i)=>{let c={isOpened:!1,listenURL:"",init:()=>{i(c.ready)},ready:()=>{var t=new URL(WPFormsConstantContactV3AuthVars.auth_url).searchParams.get("redirect_uri");c.listenURL=new URL(t).origin,i(o).on("click",".wpforms-constant-contact-v3-auth, .wpforms-builder-constant-contact-v3-provider-sign-up",c.showWindow).on("click","#wpforms-settings-constant-contact-v3-migration-prompt-link",c.promptMigration)},showWindow:n=>{if(n.preventDefault(),!c.isOpened){var n=WPFormsConstantContactV3AuthVars.auth_url,a=screen.width/2-250,r=screen.height/2-300,e=i(".wpforms-constant-contact-v3-auth").data("login-hint"),n=new URL(n);e&&n.searchParams.set("login_hint",e);let t=s.open(n.toString(),"authPopup","width=500, height=600, top="+r+", left="+a),o=(s.addEventListener("message",c.listenResponse),setInterval(()=>{t.closed&&(clearInterval(o),c.isOpened=!1)},1e3));c.isOpened=!0}},listenResponse:t=>{t.origin===c.listenURL&&(t.data?c.saveAccount(t.data):c.errorModal(WPFormsConstantContactV3AuthVars.strings.error))},saveAccount:t=>{let o=c.waitModal();i.post(WPFormsConstantContactV3AuthVars.ajax_url,{action:"wpforms_constant_contact_popup_auth",data:JSON.stringify({code:t}),nonce:WPFormsConstantContactV3AuthVars.nonce}).done(t=>{t.success?"undefined"==typeof WPFormsBuilder?(o.close(),s.location.href=WPFormsConstantContactV3AuthVars.page_url):WPFormsBuilder.formSave(!1).done(()=>{WPFormsBuilder.setCloseConfirmation(!1),WPFormsBuilder.showLoadingOverlay(),location.reload()}):(o.close(),t="

            "+WPFormsConstantContactV3AuthVars.strings.error+"

            "+wpf.sanitizeHTML(t.data)+"

            ",c.errorModal(t))})},waitModal:()=>i.alert({title:"",content:WPFormsConstantContactV3AuthVars.strings.wait,icon:"fa fa-info-circle",type:"blue",buttons:!1}),errorModal:t=>{var o=s?.wpforms_builder||s?.wpforms_admin;return i.alert({title:o.uh_oh,content:t,icon:"fa fa-exclamation-circle",type:"red",buttons:{cancel:{text:o.cancel,action:()=>{c.isOpened=!1}}}})},promptMigration(t){t.preventDefault();let o=c.waitModal();i.post({url:WPFormsConstantContactV3AuthVars.ajax_url,data:{action:"wpforms_constant_contact_migration_prompt",nonce:WPFormsConstantContactV3AuthVars.nonce},success:()=>{o.close(),s.location.href=WPFormsConstantContactV3AuthVars.page_url},error:()=>{o.close(),c.errorModal(WPFormsConstantContactV3AuthVars.strings.error)}})}};return c})(document,window,jQuery);WPFormsConstantContactV3Auth.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/builder.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/builder.min.js new file mode 100644 index 0000000..f909b45 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/constant-contact-v3/builder.min.js @@ -0,0 +1 @@ +WPForms.Admin.Builder.Providers.ConstantContactV3=WPForms.Admin.Builder.Providers.ConstantContactV3||((n,l)=>{let p={selectors:{accountField:".js-wpforms-builder-constant-contact-v3-provider-connection-account",actionData:".wpforms-builder-constant-contact-v3-provider-actions-data",actionField:".js-wpforms-builder-constant-contact-v3-provider-connection-action",connection:".wpforms-panel-content-section-constant-contact-v3 .wpforms-builder-provider-connection"},$elements:{$connections:l(".wpforms-panel-content-section-constant-contact-v3 .wpforms-builder-provider-connections"),$holder:l("#wpforms-panel-providers"),$panel:l("#constant-contact-v3-provider")},provider:"constant-contact-v3",Providers:{},Templates:{},Cache:{},isReady:!1,init(){"providers"===wpf.getQueryString("view")&&p.$elements.$holder.on("WPForms.Admin.Builder.Providers.ready",p.ready),l(n).on("wpformsPanelSwitched",function(n,e){"providers"===e&&p.ready()})},ready(){p.isReady||(p.Providers=WPForms.Admin.Builder.Providers,p.Templates=WPForms.Admin.Builder.Templates,p.Cache=p.Providers.cache,p.Templates.add(["wpforms-constant-contact-v3-builder-content-connection","wpforms-constant-contact-v3-builder-content-connection-error","wpforms-constant-contact-v3-builder-content-connection-select-field","wpforms-constant-contact-v3-builder-content-connection-conditionals"]),p.bindUIActions(),p.bindTriggers(),p.processInitial(),p.isReady=!0)},bindUIActions(){p.$elements.$panel.on("connectionCreate",p.connection.create).on("connectionDelete",p.connection.delete).on("change",p.selectors.accountField,p.ui.accountField.change).on("change",p.selectors.actionField,p.ui.actionField.change)},bindTriggers(){p.$elements.$connections.on("connectionsDataLoaded",function(n,e){if(!_.isEmpty(e.connections))for(var t in e.connections)p.connection.generate({connection:e.connections[t],conditional:e.conditionals[t]})}),p.$elements.$connections.on("connectionGenerated",function(n,e){var t=p.connection.getById(e.connection.id);_.has(e.connection,"isNew")&&e.connection.isNew?p.connection.replaceIds(e.connection.id,t):l(p.selectors.actionField,t).trigger("change")})},processInitial(){p.connection.dataLoad()},connection:{getById(n){return p.$elements.$connections.find('.wpforms-builder-provider-connection[data-connection_id="'+n+'"]')},replaceIds(e,n){n.find("input, select, label").each(function(){var n=l(this);n.attr("name")&&n.attr("name",n.attr("name").replace(/%connection_id%/gi,e)),n.attr("id")&&n.attr("id",n.attr("id").replace(/%connection_id%/gi,e)),n.attr("for")&&n.attr("for",n.attr("for").replace(/%connection_id%/gi,e)),n.attr("data-name")&&n.attr("data-name",n.attr("data-name").replace(/%connection_id%/gi,e))})},create(n,e){var t=(new Date).getTime().toString(16),e={id:t,name:e,isNew:!0};p.Cache.addTo(p.provider,"connections",t,e),p.connection.generate({connection:e})},delete(n,e){var t=p.Providers.getProviderHolder(p.provider);e.closest(t).length&&(t=e.data("connection_id"),_.isString(t))&&p.Cache.deleteFrom(p.provider,"connections",t)},generate(n){var e,t,o=p.Cache.get(p.provider,"accounts");if(!_.isEmpty(o)&&p.account.isAccountExists(n.connection.account_id,o))return e=p.Cache.get(p.provider,"actions"),t=p.Cache.get(p.provider,"lists"),p.connection.renderConnections(o,t,e,n)},renderConnections(n,e,t,o){var c,i;p.account.isAccountExists(o.connection.account_id,n)&&(c=p.Templates.get("wpforms-"+p.provider+"-builder-content-connection"),i=p.Templates.get("wpforms-constant-contact-v3-builder-content-connection-conditionals"),i=_.has(o.connection,"isNew")&&o.connection.isNew?i():o.conditional,p.$elements.$connections.prepend(c({accounts:n,lists:e,actions:t,connection:o.connection,conditional:i,provider:p.provider})),p.$elements.$connections.trigger("connectionGenerated",[o]))},dataLoad(){p.Providers.ajax.request(p.provider,{data:{task:"connections_get"}}).done(function(e){e.success&&_.has(e.data,"connections")&&(["accounts","actions","actions_fields","conditionals","connections","custom_fields","lists"].forEach(n=>{p.Cache.set(p.provider,n,jQuery.extend({},e.data[n]))}),p.$elements.$connections.trigger("connectionsDataLoaded",[e.data]))})}},account:{isAccountExists(n,e){return!_.isEmpty(e)&&(!!_.isEmpty(n)||_.has(e,n))}},ui:{accountField:{change(){var n=l(this),e=n.closest(p.selectors.connection),t=l(p.selectors.actionField,e);t.prop("selectedIndex",0).trigger("change"),_.isEmpty(n.val())?(t.prop("disabled",!0),l(p.selectors.actionData,e).html("")):(t.prop("disabled",!1),n.removeClass("wpforms-error"))}},actionField:{change(){var n=l(this),e=n.closest(p.selectors.connection),t=l(p.selectors.accountField,e),o=l(p.selectors.actionField,e);p.ui.actionField.render({action:"action",target:n,account_id:t.val(),action_name:o.val(),connection_id:e.data("connection_id")}),n.removeClass("wpforms-error")},render(n){var e=p.tmpl.renderActionFields(n),t=p.connection.getById(n.connection_id);l(p.selectors.actionData,t).html(e),p.$elements.$holder.trigger("connectionRendered",[p.provider,n.connection_id])},getList(n){var e=p.Cache.get(p.provider,"lists");return _.isEmpty(e)||_.isEmpty(e[n])?[]:e[n]}}},tmpl:{commonsHTML(){return console.warn('WARNING! Function "WPForms.Admin.Builder.Providers.ConstantContactV3.tmpl.commonsHTML()" has been deprecated!'),p.Templates.get("wpforms-"+p.provider+"-builder-content-connection-error")()},renderActionFields(c){let i=wpf.getFields(),r=p.Cache.get(p.provider,"actions_fields"),a=p.Cache.get(p.provider,"custom_fields"),s=p.Cache.getById(p.provider,"connections",c.connection_id),d="";return l.each(r[c.target.val()],function(n,e){var t,o;"custom_fields"===n?(t=p.Templates.get("wpforms-providers-builder-content-connection-fields"),d+=t({connection:s,fields:i,provider:{slug:p.provider,fields:a[c.account_id]},isSupportSubfields:!0})):(t="list"===n?p.ui.actionField.getList(c.account_id):Object.values(i),o="wpforms-"+p.provider+"-builder-content-connection-"+e.type+"-field",o=p.Templates.get(o),d+=o({connection:s,name:n,field:e,provider:{slug:p.provider,fields:r[c.target.val()]},options:t}))}),d}}};return p})(document,(window,jQuery)),WPForms.Admin.Builder.Providers.ConstantContactV3.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/divi/formselector.es5.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/divi/formselector.es5.min.js new file mode 100644 index 0000000..0bc8dab --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/divi/formselector.es5.min.js @@ -0,0 +1 @@ +!function o(n,i,u){function a(r,e){if(!i[r]){if(!n[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(c)return c(r,!0);throw new Error("Cannot find module '"+r+"'")}e=i[r]={exports:{}};n[r][0].call(e.exports,function(e){var t=n[r][1][e];return a(t||e)},e,e.exports,o,n,i,u)}return i[r].exports}for(var c="function"==typeof require&&require,e=0;e{if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);if("object"!=n(r=r.call(e,t||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string");return"symbol"==n(e)?e:e+""}var o,f,p,d=window.React,m=window.React.Component,_=(()=>{function t(e){if(this instanceof t)return(e=u(this,t,[e])).state={error:null,isLoading:!0,form:null},e;throw new TypeError("Cannot call a class as a function")}var e,r=t,o=m;if("function"!=typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function");return r.prototype=Object.create(o&&o.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),o&&s(r,o),r=t,(o=[{key:"componentDidUpdate",value:function(e){e.form_id===this.props.form_id&&e.show_title===this.props.show_title&&e.show_desc===this.props.show_desc||this.componentDidMount()}},{key:"componentDidMount",value:function(){var t=this,e=new FormData;e.append("nonce",wpforms_divi_builder.nonce),e.append("action","wpforms_divi_preview"),e.append("form_id",this.props.form_id),e.append("show_title",this.props.show_title),e.append("show_desc",this.props.show_desc),fetch(wpforms_divi_builder.ajax_url,{method:"POST",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache"},body:new URLSearchParams(e)}).then(function(e){return e.json()}).then(function(e){t.setState({isLoading:!1,form:e.data})},function(e){t.setState({isLoading:!1,error:e})})}},{key:"render",value:function(){var e,t=this.state,r=t.error,o=t.form,t=t.isLoaded?"wpforms-divi-form-preview loading":"wpforms-divi-form-preview";return""!==(null==(e=this.props)?void 0:e.form_id)&&Number(this.props.form_id)?r||!o?d.createElement("div",{className:"wpforms-divi-form-placeholder"},d.createElement("img",{src:wpforms_divi_builder.placeholder,alt:""})):d.createElement("div",{className:t},d.createElement("div",{dangerouslySetInnerHTML:{__html:o}})):d.createElement("div",{className:"wpforms-divi-empty-block"},d.createElement("img",{src:wpforms_divi_builder.block_empty_url,alt:""}),d.createElement("p",{dangerouslySetInnerHTML:{__html:wpforms_divi_builder.block_empty_text}}),d.createElement("button",{type:"button",onClick:function(){window.open(wpforms_divi_builder.get_started_url,"_blank")}},wpforms_divi_builder.get_started_text),d.createElement("p",{className:"wpforms-admin-no-forms-footer"},wpforms_divi_builder.help_text," ",d.createElement("a",{href:wpforms_divi_builder.guide_url,onClick:function(){window.open(wpforms_divi_builder.guide_url,"_blank")}},wpforms_divi_builder.guide_text,".")))}}])&&i(r.prototype,o),e&&i(r,e),Object.defineProperty(r,"prototype",{writable:!1}),r})();o=_,p="wpforms_selector",(f=l(f="slug"))in o?Object.defineProperty(o,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):o[f]=p,jQuery(window).on("et_builder_api_ready",function(e,t){t.registerModules([_])}).on("wpformsDiviModuleDisplay",function(){window.wpforms.init()}),jQuery(document).on("wpformsReady",function(){var t=jQuery;t(".choicesjs-select").each(function(){var e=t(this).data("choicesjs");e&&"function"==typeof e.disable&&e.disable()}),"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready()})},{}]},{},[1]); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/divi/modern/formselector.es5.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/divi/modern/formselector.es5.min.js new file mode 100644 index 0000000..499f360 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/divi/modern/formselector.es5.min.js @@ -0,0 +1 @@ +!function r(n,l,a){function i(o,e){if(!l[o]){if(!n[o]){var t="function"==typeof require&&require;if(!e&&t)return t(o,!0);if(s)return s(o,!0);throw new Error("Cannot find module '"+o+"'")}e=l[o]={exports:{}};n[o][0].call(e.exports,function(e){var t=n[o][1][e];return i(t||e)},e,e.exports,r,n,l,a)}return l[o].exports}for(var s="function"==typeof require&&require,e=0;e(e=((e,t)=>{if("object"!=c(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0===o)return("string"===t?String:Number)(e);if("object"!=c(o=o.call(e,t||"default")))return o;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string"),"symbol"==c(e)?e:e+""))(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}(0,i.addFilter)("divi.iconLibrary.icon.map","wpforms",function(e){return m(m({},e),{},v({},d.wpformsIcon.name,d.wpformsIcon))});var p={metadata:r.default,renderers:{edit:n.default,styles:l.default},settings:{content:a.default}};(0,i.addAction)("divi.moduleLibrary.registerModuleLibraryStore.after","wpforms",function(){(0,s.registerModule)(p.metadata,p)})},{"../../../../../src/Integrations/Divi/module.json":15,"./modules/components/FormSelectorEdit.js":2,"./modules/components/FormSelectorSettings.js":5,"./modules/components/FormSelectorStyles.js":6,"./modules/icons/WPFormsIcon.js":9,"./modules/vendor/DiviModule.js":11,"./modules/vendor/WPHooks.js":14}],2:[function(e,t,o){Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var n=c(e("../hooks/useFormRenderFetch.js")),l=e("../vendor/DiviModule.js"),r=c(e("./FormSelectorStyles.js")),a=c(e("./FormSelectorPlaceholder.js")),i=c(e("./FormSelectorLoading.js")),s=e("../vendor/WPElement.js"),d=c(e("../hooks/useInitWPFormsApp.js")),u=c(e("../vendor/Localized.js"));function c(e){return e&&e.__esModule?e:{default:e}}function f(e){var e=e.attrs,t=(0,l.getAttrByMode)(e.formId),o=(0,l.getAttrByMode)(e.showTitle),e=(0,l.getAttrByMode)(e.showDescription),r=0{if(Array.isArray(e))return e})(e)||((e,t)=>{var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var r,n,l,a,i=[],s=!0,d=!1;try{if(l=(o=o.call(e)).next,0===t){if(Object(o)!==o)return;s=!1}else for(;!(s=(r=l.call(o)).done)&&(i.push(r.value),i.length!==t);s=!0);}catch(e){d=!0,n=e}finally{try{if(!s&&null!=o.return&&(a=o.return(),Object(a)!==a))return}finally{if(d)throw n}}return i}})(e,t)||((e,t)=>{var o;if(e)return"string"==typeof e?r(e,t):"Map"===(o="Object"===(o={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:o)||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?r(e,t):void 0})(e,t)||(()=>{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 r(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=Array(t);o{let o={init(){o.events()},events(){t(e).on("elementor/init",function(){$e.hooks.registerUIAfter(new class extends $e.modules.hookUI.After{getCommand(){return"document/save/save"}getId(){return"wpforms-elementor-editor-context-after-save"}getConditions(){return!0}apply(){var e=elementor.$preview[0]?.contentWindow;e&&e.WPFormsElementorThemes.saveCustomThemes()}})})}};return o})((document,window),jQuery);WPFormsElementorEditorContext.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor-modern.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor-modern.min.js new file mode 100644 index 0000000..c632d95 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor-modern.min.js @@ -0,0 +1,4 @@ +var WPFormsElementorModern=window.WPFormsElementorModern||((i,d)=>{let c=wpformsElementorVars.strings,t=wpformsElementorVars.route_namespace,o=wpformsElementorVars.stockPhotos?.urlPath,{isPro:r,isLicenseActive:n}=wpformsElementorVars,s=wpformsElementorVars.stockPhotos?.pictures??[],a="",l={},p=["themes","field_styles","label_styles","button_styles","container_styles","background_styles","other_styles"],u={init(){u.events()},events(){d(i).on("elementor/frontend/init",function(e,o,t){elementor.channels.editor.on("section:activated",u.onSectionActivated),elementor.hooks.addAction("panel/open_editor/widget/wpforms",u.widgetPanelOpen),elementorFrontend.hooks.addAction("frontend/element_ready/wpforms.default",u.widgetReady)})},onSectionActivated(e,o){u.checkForLeadForms(e,o),u.stockPhotos.backgroundUrlEvents(e,o),u.blockProControls(e,o)},blockProControls(e,o){wpformsElementorVars.isPro&&wpformsElementorVars.isLicenseActive||"style"!==o.activeTab||(o.$el.find(".elementor-control-background_styles").addClass("wpforms-elementor-section-disabled").attr("data-wpforms-section","background"),o.$el.find(".elementor-control-container_styles").addClass("wpforms-elementor-section-disabled").attr("data-wpforms-section","container"),"background_styles"!==e&&"container_styles"!==e||o.$el.find(".elementor-control:not(.elementor-control-type-section)").addClass("wpforms-elementor-control-disabled").each(function(){0===d(this).find(".wpforms-disabled-control-overlay").length&&d(this).css("position","relative").append('
            ')}),o.$el.data("wpforms-overlay-handler-bound"))||(o.$el.on("click",".wpforms-disabled-control-overlay",function(e){e.preventDefault(),e.stopImmediatePropagation();e=d(this).closest(".elementor-control").prevAll(".elementor-control-type-section").first().attr("data-wpforms-section");r?n||u.showLicenseModal(c.pro_sections[e]):u.showProModal(e,c.pro_sections[e])}),o.$el.data("wpforms-overlay-handler-bound",!0))},checkForLeadForms(e,o){var t;p.includes(e)&&"wpforms"===o.model.attributes.widgetType&&(e=o.$childViewContainer[0],t=o.options.editedElementView.$el[0],o=o.model.attributes.settings.attributes.form_id,0!==(t=d(t).find("#wpforms-"+o)).length)&&t.hasClass("wpforms-lead-forms-container")&&(d(e).addClass("wpforms-elementor-disabled"),d(e).find(".wpforms-elementor-lead-forms-notice").css("display","block"))},widgetPanelOpen(e,o,t){o=o.get("settings");o.on("change:copyPasteJsonValue",e=>{u.pasteSettings(e,t)}),o.on("change",e=>{u.changeStyleSettings(e,t),e.changed.copyPasteJsonValue||e.changed.form_id||u.updateCopyPasteContent(e)}),o.on("change:form_id",e=>{e.attributes.copyPasteJsonValue||setTimeout(function(){u.updateCopyPasteContent(e)},0)})},widgetReady(e){var o=e.find(".wpforms-form").data("formid");u.updateAccentColors(e,o),u.loadChoicesJS(e,o),u.initRichTextField(o),u.initRepeaterField(o)},changeStyleSettings(e,o){var t=o.$el.find(".wpforms-container")[0];if(t){var r,n=e.parseGlobalSettings(e);for(r in e.changed)if(u.getStyleAttributesKeys().includes(r)){o.allowRender=!1;var s=["customThemeName","isCustomTheme","wpformsTheme"];if(!s.includes(r)){var a=u.getParsedValue(r,n),l=r.replace(/[A-Z]/g,e=>"-"+e.toLowerCase()),a=u.prepareComplexAttrValues(a,r);if("function"==typeof u.getStyleHandlers()[l])u.getStyleHandlers()[l](t,a,n);else switch(l){case"field-size":case"label-size":case"button-size":case"container-shadow-size":for(var i in wpformsElementorVars.sizes[l][a])t.style.setProperty(`--wpforms-${l}-`+i,wpformsElementorVars.sizes[l][a][i]);break;default:t.style.setProperty("--wpforms-"+l,a),"cover"===n.backgroundSize&&t.style.setProperty("--wpforms-background-size","cover")}}}else o.allowRender="copyPasteJsonValue"!==r}},getStyleHandlers(){return{"background-image":u.background.setContainerBackgroundImage,"background-position":u.background.setContainerBackgroundPosition,"background-repeat":u.background.setContainerBackgroundRepeat,"background-color":u.background.setBackgroundColor,"background-url":u.background.setBackgroundUrl,"background-size":u.background.handleSizeFromDimensions,"background-width":u.background.handleSizeFromWidth,"background-height":u.background.handleSizeFromHeight}},prepareComplexAttrValues(o,e){if(!["fieldBorderRadius","fieldBorderSize","buttonBorderRadius","buttonBorderSize","containerPadding","containerBorderWidth","containerBorderRadius","backgroundWidth","backgroundHeight"].includes(e)||"number"!=typeof o&&("string"!=typeof o||o.trim().endsWith("px"))||(o+="px"),"backgroundUrl"===e){let e="object"==typeof o?o?.url:o;o=e="string"!=typeof e||e.trim().startsWith("url(")?e:e?`url( ${e} )`:"url()"}return o},updateCopyPasteContent(e){var o=u.getStyleAttributesKeys();let t={},r=e.parseGlobalSettings(e);o.forEach(function(e){t[e]=u.getParsedValue(e,r)}),e.setExternalChange("copyPasteJsonValue",JSON.stringify(t))},resetGlobalStyleSettings(e,o){e.get("__globals__")&&!e.changed.__globals__&&elementorCommon.api.run("document/globals/settings",{container:o,settings:{},options:{external:!0,render:!1}})},pasteSettings(e,o){var t=e.changed.copyPasteJsonValue,r=u.parseValidateJson(t),o=o.container;r?(u.resetGlobalStyleSettings(e,o),e.set(r)):(t&&elementorCommon.dialogsManager.createWidget("alert",{message:c.copy_paste_error,headerMessage:c.heads_up}).show(),this.updateCopyPasteContent(e))},parseValidateJson(e){if("string"!=typeof e)return!1;let o;try{o=JSON.parse(e)}catch(e){o=!1}return o},getStyleAttributesKeys(){return["containerPadding","containerBorderStyle","containerBorderWidth","containerBorderRadius","containerShadowSize","containerBorderColor","fieldSize","fieldBorderStyle","fieldBorderRadius","fieldBorderSize","fieldBackgroundColor","fieldBorderColor","fieldTextColor","fieldMenuColor","pageBreakColor","labelSize","labelColor","labelSublabelColor","labelErrorColor","buttonSize","buttonBorderStyle","buttonBorderSize","buttonBorderRadius","buttonBackgroundColor","buttonBorderColor","buttonTextColor","backgroundColor","backgroundPosition","backgroundUrl","backgroundRepeat","backgroundSize","backgroundSizeMode","backgroundWidth","backgroundHeight","backgroundImage","customThemeName","isCustomTheme"]},getParsedValue(e,o){o=o[e];let t;return t=void 0!==o&&("object"==typeof o&&Object.prototype.hasOwnProperty.call(o,"value")?o.value:o)},initRichTextField(e){d(`#wpforms-${e} .wp-editor-wrap`).removeClass("html-active").addClass("tmce-active")},updateAccentColors(e,o){e=e.find("#wpforms-"+o),o=i.WPForms.FrontendModern;o.updateGBBlockPageIndicatorColor(e),o.updateGBBlockIconChoicesColor(e),o.updateGBBlockRatingColor(e)},loadChoicesJS(e,o){"function"==typeof i.Choices&&e.find("#wpforms-"+o).find(".choicesjs-select").each(function(e,t){var n=d(t);if("active"!==n.data("choice")){let e=i.wpforms_choicesjs_config||{},o=n.data("search-enabled"),r=n.closest(".wpforms-field");e.searchEnabled=void 0===o||o,e.callbackOnInit=function(){var e=d(this.passedElement.element),o=d(this.input.element),t=e.data("size-class");t&&d(this.containerOuter.element).addClass(t),e.prop("multiple")&&(o.data("placeholder",o.attr("placeholder")),this.getValue(!0).length)&&o.removeAttr("placeholder"),this.disable(),r.find(".is-disabled").removeClass("is-disabled")};try{var s=new Choices(t,e);n.data("choicesjs",s)}catch(e){}}})},initRepeaterField(e){d(`.wpforms-form[data-formid="${e}"] .wpforms-field-repeater > .wpforms-field-repeater-display-rows .wpforms-field-repeater-display-rows-buttons`).each(function(){var e=d(this),o=e.siblings(".wpforms-layout-column").find(".wpforms-field").first().find(".wpforms-field-label"),t=i.getComputedStyle(o.get(0))?.getPropertyValue("--wpforms-field-size-input-spacing")||0,o=(o.outerHeight()||0)+parseInt(t,10)+10;e.css({top:o})}),d(`.wpforms-form[data-formid="${e}"]`).each(function(){var e=d(this).find(".wpforms-field-repeater");e.find(".wpforms-field-repeater-display-rows-buttons").addClass("wpforms-init"),e.find(".wpforms-field-repeater-display-rows:last .wpforms-field-description").addClass("wpforms-init")})},showProModal(e,o){let t="pro",r=i.parent.wpforms_education??[],n=i.parent.WPFormsEducation??{};var s=r.upgrade.pro.message_plural.replace(/%name%/g,o);let a=elementor.getPanelView().$el,l={container:"Upgrade to Pro - Container Styles",background:"Upgrade to Pro - Background Styles",themes:"Upgrade to Pro - Themes"};d.alert({backgroundDismiss:!0,title:o+" "+r.upgrade.pro.title_plural,icon:"fa fa-lock",content:s,boxWidth:"550px",useBootstrap:!1,theme:"modern,wpforms-education",closeIcon:!0,onOpen(){this.$el.on("click",function(e){e.stopPropagation()})},onOpenBefore:function(){this.$btnc.after('
            '+r.upgrade_bonus+"
            "),this.$btnc.after(r.upgrade.pro.doc.replace(/%25name%25/g,"AP - "+o).replace("gutenberg","elementor")),this.$body.find(".jconfirm-content").addClass("lite-upgrade"),a.addClass("wpforms-elementor-disabled")},onClose(){a.removeClass("wpforms-elementor-disabled")},buttons:{confirm:{text:c.upgrade_button,btnClass:"btn-confirm",keys:["enter"],action:()=>{i.open(n.core.getUpgradeURL(l[e],t).replace("gutenberg","elementor"),"_blank")}}}})},showLicenseModal(e){let o=elementor.getPanelView().$el;d.alert({title:c.heads_up,content:c.license_message.replace(/%name%/g,`${e}`),icon:"fa fa-exclamation-circle",type:"orange",useBootstrap:!1,boxWidth:"400px",theme:"modern",onOpenBefore(){o.addClass("wpforms-elementor-disabled")},onOpen(){this.$el.on("click",function(e){e.stopPropagation()})},onClose(){o.removeClass("wpforms-elementor-disabled")},buttons:{confirm:{text:c.license_button,btnClass:"btn-confirm",keys:["enter"],action(){i.open(c.license_url,"_blank")}},cancel:{text:c.cancel}}})},background:{setContainerBackgroundImage(e,o){"none"===o&&e.style.setProperty("--wpforms-background-url","url()")},setBackgroundUrl(e,o){e.style.setProperty("--wpforms-background-url",o)},setBackgroundColor(e,o){e.style.setProperty("--wpforms-background-color",o)},setContainerBackgroundPosition(e,o){e.style.setProperty("--wpforms-background-position",o)},setContainerBackgroundRepeat(e,o){e.style.setProperty("--wpforms-background-repeat",o)},setContainerBackgroundWidth(e,o){e.style.setProperty("--wpforms-background-width",o)},setContainerBackgroundHeight(e,o){e.style.setProperty("--wpforms-background-height",o)},handleSizeFromDimensions(e,o,t){var r=u.prepareComplexAttrValues(t.backgroundWidth,"backgroundWidth"),t=u.prepareComplexAttrValues(t.backgroundHeight,"backgroundHeight");"cover"===o?(u.background.setContainerBackgroundWidth(e,r),u.background.setContainerBackgroundHeight(e,t),e.style.setProperty("--wpforms-background-size","cover")):e.style.setProperty("--wpforms-background-size",r+" "+t)},handleSizeFromWidth(e,o,t){var r=u.prepareComplexAttrValues(t.backgroundWidth,"backgroundWidth"),n=u.prepareComplexAttrValues(t.backgroundHeight,"backgroundHeight");u.background.setContainerBackgroundWidth(e,r),"cover"!==t.backgroundSize&&e.style.setProperty("--wpforms-background-size",o+" "+n)},handleSizeFromHeight(e,o,t){var r=u.prepareComplexAttrValues(t.backgroundWidth,"backgroundWidth");u.background.setContainerBackgroundHeight(e,o),"cover"!==t.backgroundSize&&e.style.setProperty("--wpforms-background-size",r+" "+o)}},stockPhotos:{openModal(e){u.stockPhotos.isPicturesAvailable()?u.stockPhotos.picturesModal():u.stockPhotos.installModal(e)},installModal(e){var o="themes"===e?c.stockInstallTheme:c.stockInstallBg;let t=elementor.getPanelView().$el;d.confirm({title:c.heads_up,content:o+" "+c.stockInstall,icon:"wpforms-exclamation-circle",type:"orange",theme:"modern",useBootstrap:!1,boxWidth:"400px",onOpen(){this.$el.on("click",function(e){e.stopPropagation()})},onOpenBefore(){t.addClass("wpforms-elementor-disabled")},onClose(){t.removeClass("wpforms-elementor-disabled")},buttons:{continue:{text:c.continue,btnClass:"btn-confirm",keys:["enter"],action(){return this.$$continue.prop("disabled",!0).html(''+c.installing),this.$$cancel.prop("disabled",!0),u.stockPhotos.install(this,e),!1}},cancel:{text:c.cancel,keys:["esc"]}}})},errorModal(e){elementorCommon.dialogsManager.createWidget("alert",{message:e,headerMessage:c.heads_up}).show()},picturesModal(){let e=elementor.getPanelView().$el;l.picturesModal=d.alert({title:`${c.picturesTitle}

            ${c.picturesSubTitle}

            `,content:u.stockPhotos.getPictureMarkup(),type:"picture-selector",useBootstrap:!1,boxWidth:"800px",closeIcon:!0,theme:"modern",buttons:!1,onOpenBefore(){e.addClass("wpforms-elementor-disabled")},onOpen(){this.$el.on("click",function(e){e.stopPropagation()}),this.$content.off("click").on("click",".wpforms-elementor-stock-photos-picture",u.stockPhotos.selectPicture)},onClose(){e.removeClass("wpforms-elementor-disabled")}})},install(e,o){l.isInstalling||(l.isInstalling=!0,wp.apiFetch({path:t+"stock-photos/install/",method:"POST"}).then(e=>{e.result?(s=e.pictures||[],"themes"!==o&&u.stockPhotos.picturesModal()):u.stockPhotos.errorModal(e.error)}).catch(e=>{u.stockPhotos.errorModal(`

            ${c.commonError}

            ${e.message||e}

            `)}).finally(()=>{l.isInstalling=!1,e.close()}))},isPicturesAvailable(){return Boolean(s?.length)},getPictureMarkup(){return u.stockPhotos.isPicturesAvailable()?(""===a&&(s.forEach(e=>{e=o+e;a+=`
            `}),a=`
            ${a}
            `),a):""},selectPicture(){var e=d(this).data("url");elementor.getPanelView().getCurrentPageView().getOption("editedElementView").model.get("settings").setExternalChange({backgroundUrl:{id:"",url:e}}),l.picturesModal?.close()},backgroundUrlEvents(e,o){"background_styles"===e&&"wpforms"===o.model.attributes.widgetType&&(e=o.$childViewContainer[0],d(e).find(".elementor-control-backgroundUrl .elementor-control-preview-area").off("click").on("click",e=>{"stock"!==o.model.attributes.settings.attributes.backgroundImage||d(e.target).closest(".elementor-control-media__content__remove").length||(e.preventDefault(),e.stopPropagation(),u.stockPhotos.openModal("bg-styles"))}))}}};return u})((document,window),jQuery);WPFormsElementorModern.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor.min.js new file mode 100644 index 0000000..9b35c20 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/editor.min.js @@ -0,0 +1 @@ +var WPFormsElementor=window.WPFormsElementor||((r,i)=>{var l={},s={init:function(){s.events()},events:function(){i(r).on("elementor/frontend/init",function(e,t,o){elementor.channels.editor.on("elementorWPFormsAddFormBtnClick",s.addFormBtnClick),elementorFrontend.hooks.addAction("frontend/element_ready/wpforms.default",s.widgetPreviewEvents),elementor.hooks.addAction("panel/open_editor/widget/wpforms",s.widgetPanelOpen),elementorFrontend.hooks.addAction("frontend/element_ready/wpforms.default",s.loadChoicesJS)})},loadChoicesJS(e){if("function"==typeof parent.Choices){e=e.find(".wpforms-field .choicesjs-select");let n=r.wpforms_choicesjs_config||{};e.each(function(e,t){if(t instanceof parent.HTMLSelectElement){var o=i(t);if(!o.data("choicesjs")){let r=o.closest(".wpforms-field");n.callbackOnInit=function(){var e=this,t=i(e.passedElement.element),o=i(e.input.element),n=t.data("size-class");n&&i(e.containerOuter.element).addClass(n),t.prop("multiple")&&(o.data("placeholder",o.attr("placeholder")),e.getValue(!0).length)&&o.hide(),this.disable(),r.find(".is-disabled").removeClass("is-disabled")},o.data("choicesjs",new parent.Choices(t,n))}}})}},widgetPreviewEvents:function(e){e.on("click",".wpforms-btn",s.addFormBtnClick).on("click",".wpforms-admin-no-forms-container a",s.clickLinkInPreview).on("change",".wpforms-elementor-form-selector select",s.selectFormInPreview).on("click mousedown focus keydown submit",".wpforms-container *",s.disableEvents).on("click",".wpforms-comprehensive-link",s.openComprehensiveLink),s.updateSameForms(e)},updateSameForms:function(e){var t=e.data("id"),o=e.find(".wpforms-container"),n=o.html(),r=o.attr("id");e.closest(".elementor-editor-active").find(".elementor-widget-wpforms:not(.elementor-element-"+t+")").each(function(){var e=i(this).find(".wpforms-container");e.attr("id")===r&&e.html(n)})},widgetPanelOpen:function(e,t){l.widgetId=t.attributes.id,l.formId=t.attributes.settings.attributes.form_id,s.widgetPanelInit(e),s.widgetPanelObserver.init(e)},widgetPanelInit:function(e){var t=e.$el.find(".elementor-control.elementor-control-form_id"),o=t.find("select"),n=e.$el.find(".elementor-control.elementor-control-add_form_notice"),r=e.$el.find(".elementor-control.elementor-control-test_form_notice");l.formSelectOptions&&o.html(l.formSelectOptions),l.formId&&""!==l.formId&&o.val(l.formId),(0{var t={forceLoadChoices:!1,forceSetStripe:!1,init(){t.events()},events(){e.addEventListener("elementor/popup/show",function(e){e=r("#elementor-popup-modal-"+e.detail.id).find(".wpforms-form");e.length&&(t.forceSetStripe=!0,t.initFields(e))}),e.addEventListener("elementor/popup/show",function(){e.WPFormsTextLimit?.initHint(".elementor-popup-modal")}),r(o).on("elementor/popup/show",()=>{t.forceLoadChoices=!0,wpforms.loadChoicesJS()}),r(o).on("wpformsBeforeLoadElementChoices",(e,o)=>{t.isFormInElementorPopup(o)&&!t.forceLoadChoices&&e.preventDefault()}),r(o).on("wpformsBeforeStripePaymentElementSetup",(e,o)=>{t.isFormInElementorPopup(o)&&!t.forceSetStripe&&e.preventDefault()})},isFormInElementorPopup(e){return r(e).parents('div[data-elementor-type="popup"]').length},initFields(e){wpforms.ready(),"undefined"!=typeof wpformsModernFileUpload&&wpformsModernFileUpload.init(),"undefined"!=typeof wpformsRecaptchaLoad&&("recaptcha"===wpformsElementorVars.captcha_provider&&"v3"===wpformsElementorVars.recaptcha_type?"undefined"!=typeof grecaptcha&&grecaptcha.ready(wpformsRecaptchaLoad):wpformsRecaptchaLoad()),"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready(),"undefined"!=typeof WPFormsStripePaymentElement&&WPFormsStripePaymentElement.setupStripeForm(e),r(o).trigger("wpforms_elementor_form_fields_initialized",[e])}};return t})(document,window,jQuery);WPFormsElementorFrontend.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/themes.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/themes.min.js new file mode 100644 index 0000000..c514e94 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/elementor/themes.min.js @@ -0,0 +1,15 @@ +var WPFormsElementorThemes=window.WPFormsElementorThemes||((e,m)=>{let{isAdmin:t,isPro:r,isLicenseActive:o,strings:u,route_namespace:s}=wpformsElementorVars,n={},h={wpforms:null,custom:null},a=null,i={},c={init(){i.$window=m(e),c.fetchThemesData(),c.events()},events(){m(e).on("elementor/frontend/init",function(){elementor.channels.editor.on("section:activated",c.themesControlSetup)})},getAllThemes(){return{...h.custom||{},...h.wpforms||{}}},themesControlSetup(e,t){"themes"===e&&"wpforms"===t.model.attributes.widgetType&&(e=t.$childViewContainer[0],e=m(e).find(".wpforms-elementor-themes-control"),c.isMac()&&e.addClass("wpforms-is-mac"),c.updateThemesList(t,e))},updateThemesList(e,t){var s=e.model.attributes.settings.attributes.wpformsTheme??"default",s=c.getThemesListMarkup(s);t.html(s),c.addThemesEvents(t,e)},addThemesEvents(s,r){let t=_.debounce(e=>{c.maybeCreateCustomTheme(e)},300);var e=r.model.get("settings");"true"!==e.attributes.isMigrated&&c.maybeMigrateToCustomTheme(e,s,r),e.on("change",e=>{t(e.attributes),c.maybeUpdateCustomTheme(e)});let o=s.find('[role="radio"]');o.off("click").on("click",function(){o.removeClass("is-active"),m(this).addClass("is-active");var e=m(this).val();c.selectTheme(e)}),elementor.channels.editor.off("WPFormsDeleteThemeButtonClick").on("WPFormsDeleteThemeButtonClick",()=>{c.deleteThemeModal(r.model.attributes.settings.attributes,r)}),r.model.get("settings").off("change:customThemeName").on("change:customThemeName",function(e){var t=e.get("customThemeName");c.changeThemeName(t,e),c.updateThemesList(r,s)})},maybeMigrateToCustomTheme(e,t,s){var r=e._previousAttributes,o=e.attributes;"copyPasteJsonValue"in r&&!r.wpformsTheme&&!o.isCustomTheme&&(r=c.getCurrentStyleAttributes(e.attributes),c.createCustomTheme(e.attributes,r,!0),c.updateThemesList(s,t)),e.setExternalChange({isMigrated:"true"})},maybeUpdateCustomTheme(e){var t=e.attributes;if("true"===t.isCustomTheme){var s,r,o=e.changed,m=WPFormsElementorModern.getStyleAttributesKeys();for(s in o)m.includes(s)&&(r=WPFormsElementorModern.prepareComplexAttrValues(o[s],s),c.updateCustomThemeAttribute(s,r,t))}},getThemesListMarkup(e){if(!h.wpforms)return c.fetchThemesData(),`
            ${u.themes_error}
            `;var t=c.getAllThemes();if(!t)return"";var s=Object.keys(t);let r,o;let m="";for(var n in c.isWPFormsTheme(e)||(o=e,m+=c.getThemesItemMarkup(c.getTheme(o),o,o)),s){n=s[n];o&&o===n||((r={...t.default,...t[n]||{}}).settings={...t.default.settings,...r.settings||{}},m+=c.getThemesItemMarkup(r,n,e))}return`
            + ${m} +
            `},getThemesItemMarkup(e,t,s){var r,o;return e?(r=0 +
            +
            ${r}
            +
            + +
            + + + + + +
            + `):""},getTheme(e){return c.getAllThemes()[e]||null},getEnabledThemes(){if(!a){let s=c.getAllThemes();if(r&&o)return s;a=Object.keys(s).reduce((e,t)=>(s[t].settings?.fieldSize&&!s[t].disabled&&(e[t]=s[t]),e),{})}return a},updateEnabledThemes(e,t){a=a&&{...a,[e]:t}},isDisabledTheme(e){return!c.getEnabledThemes()?.[e]},isWPFormsTheme(e){return Boolean(h.wpforms[e]?.settings)},fetchThemesData(){if(!n.isFetchingThemes&&!h.wpforms){n.isFetchingThemes=!0;try{wp.apiFetch({path:s+"elementor/themes/",method:"GET",cache:"no-cache"}).then(e=>{h.wpforms=e.wpforms||{},h.custom=e.custom||{}}).catch(e=>{console.error(e?.message)}).finally(()=>{n.isFetchingThemes=!1})}catch(e){console.error(e)}}},saveCustomThemes(){if(t&&!n.isSavingThemes&&h.custom){n.isSavingThemes=!0;try{wp.apiFetch({path:s+"elementor/themes/custom/",method:"POST",data:{customThemes:h.custom}}).then(e=>{e?.result||console.log(e?.error)}).catch(e=>{console.error(e?.message)}).finally(()=>{n.isSavingThemes=!1})}catch(e){console.error(e)}}},getCurrentStyleAttributes(e){var t,s=Object.keys(h.wpforms.default?.settings),r={};for(t in s){var o=s[t];r[o]=WPFormsElementorModern.prepareComplexAttrValues(e[o],s[t])??""}return r},maybeCreateCustomTheme(e){var t=c.getCurrentStyleAttributes(e),s=!!h.wpforms[e.wpformsTheme],r=!!h.custom[e.wpformsTheme];return!(s&&JSON.stringify(h.wpforms[e.wpformsTheme]?.settings)===JSON.stringify(t)||(!s&&r||c.createCustomTheme(e,t),0))},createCustomTheme(e,t=null,s=!1){let r=0,o=e.wpformsTheme;let m=(c.getTheme(e.wpformsTheme)||h.wpforms.default).name;for(h.custom=h.custom||{},s&&(o="custom",m=u.theme_custom);r++,o=o+"-copy-"+r,h.custom[o]&&r<1e4;);var n=r<2?u.theme_copy:u.theme_copy+" "+r;return m+=" ("+n+")",m=s&&r<2?u.theme_custom:m,h.custom[o]={name:m,settings:t||c.getCurrentStyleAttributes(e)},c.updateEnabledThemes(o,h.custom[o]),elementor.getPanelView().getCurrentPageView().getOption("editedElementView").model.get("settings").setExternalChange({wpformsTheme:o,isCustomTheme:"true",customThemeName:m}),!0},maybeCreateCustomThemeFromAttributes(e){var t=e.theme,s=c.getTheme(e.theme),r=Object.keys(e);let o=Boolean(s?.settings);if(o)for(var m in r){m=r[m];if(!s.settings[m]||s.settings[m]!==e[m]){o=!1;break}}if(!o){var n,a=Object.keys(h.wpforms.default.settings),i={};for(n in a){var l=a[n];i[l]=e[l]??""}h.custom[t]={name:e.themeName??u.theme_custom,settings:i},c.updateEnabledThemes(t,h.custom[t])}return t},updateCustomThemeAttribute(e,t,s){s=s.wpformsTheme;h.wpforms[s]||"themeName"!==e&&!h.wpforms.default.settings[e]||h.custom[s]&&("themeName"===e?h.custom[s].name=t:(h.custom[s].settings=h.custom[s].settings||h.wpforms.default.settings,h.custom[s].settings[e]=t))},setWidgetTheme(e){if(c.maybeDisplayUpgradeModal(e))return!1;var t=c.getTheme(e);if(!t?.settings)return!1;var s,r=Object.keys(t.settings),o=elementor.getPanelView().getCurrentPageView().getOption("editedElementView").model.get("settings"),m=!!h.custom[e],n=(o.setExternalChange({wpformsTheme:e,isCustomTheme:m?"true":"",customThemeName:m?h.custom[e].name:""}),{});for(s in r){var a=r[s],i=t.settings[a];n[a]="string"==typeof i?i.replace(/px$/,""):i}return c.updateStylesAtts(n,o),elementor.getPanelView().getCurrentPageView().$el.find(".elementor-control-isCustomTheme input").trigger("input"),!0},updateStylesAtts(t,e){var s,r,o=WPFormsElementorModern.getStyleAttributesKeys(),m={};for(s in t)if(o.includes(s)){let e=t[s];"backgroundUrl"===s&&"string"==typeof e&&(r=e.match(/^url\(\s*['"]?(.*?)['"]?\s*\)$/i),e=r&&r[1]?{id:"",url:r[1]}:""),m[s]=e}Object.keys(m).length&&e.setExternalChange(m)},maybeDisplayUpgradeModal(e){return!(!c.isDisabledTheme(e)||(r?o||(WPFormsElementorModern.showLicenseModal(u.form_themes),0):(WPFormsElementorModern.showProModal("themes",u.form_themes),0)))},selectTheme(e){c.setWidgetTheme(e)&&c.onSelectThemeWithBG(e)},changeThemeName(e,t){c.updateCustomThemeAttribute("themeName",e,t.attributes)},deleteThemeModal(e,t){var s=c.getTheme(e.wpformsTheme)?.name,s=`

            ${u.theme_delete_confirm.replace("%1$s",`${s}`)} ${u.theme_delete_cant_undone}

            `,r=t.$childViewContainer[0];let o=m(r).find(".wpforms-elementor-themes-control");elementorCommon.dialogsManager.createWidget("confirm",{message:s,headerMessage:u.theme_delete_title,onConfirm:()=>{delete h.custom[e.wpformsTheme],c.selectTheme("default"),c.updateThemesList(t,o)}}).show()},onSelectThemeWithBG(e){WPFormsElementorModern.stockPhotos.isPicturesAvailable()||c.isWPFormsTheme(e)&&(e=c.getTheme(e).settings?.backgroundUrl)?.length&&"url()"!==e&&WPFormsElementorModern.stockPhotos.installModal("themes")},isMac(){return navigator.userAgent.includes("Macintosh")}};return c})((document,window),jQuery);WPFormsElementorThemes.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/gutenberg/formselector-legacy.es5.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/gutenberg/formselector-legacy.es5.min.js new file mode 100644 index 0000000..4f3b140 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/gutenberg/formselector-legacy.es5.min.js @@ -0,0 +1 @@ +!function o(n,s,a){function l(r,e){if(!s[r]){if(!n[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(c)return c(r,!0);throw new Error("Cannot find module '"+r+"'")}e=s[r]={exports:{}};n[r][0].call(e.exports,function(e){var t=n[r][1][e];return l(t||e)},e,e.exports,o,n,s,a)}return s[r].exports}for(var c="function"==typeof require&&require,e=0;e{let s={},a={init(){r(a.ready)},ready(){var e,n,t;s.$singlePaymentControl=r("#wpforms-panel-field-square-enable_one_time"),s.$recurringPaymentControl=r("#wpforms-panel-field-square-enable_recurring"),s.$panelContent=r("#wpforms-panel-content-section-payment-square"),s.$AJAXSubmitOption=r("#wpforms-panel-field-settings-ajax_submit"),s.$cardButton=r("#wpforms-add-fields-square"),s.$alert=r("#wpforms-square-credit-card-alert"),s.$feeNotice=r(".wpforms-square-notice-info"),a.bindUIActions(),a.bindPlanUIActions(),wpforms_builder.square_is_pro||(t=(e=".wpforms-panel-content-section-square")+" .wpforms-panel-content-section-payment-plan-name input",r(n=e+" .wpforms-panel-content-section-payment-toggle input").each(WPFormsBuilderPaymentsUtils.toggleContent),r(t).each(WPFormsBuilderPaymentsUtils.checkPlanName),r("#wpforms-panel-payments").on("click",n,WPFormsBuilderPaymentsUtils.toggleContent).on("click",e+" .wpforms-panel-content-section-payment-plan-head-buttons-toggle",WPFormsBuilderPaymentsUtils.togglePlan).on("click",e+" .wpforms-panel-content-section-payment-plan-head-buttons-delete",WPFormsBuilderPaymentsUtils.deletePlan).on("input",t,WPFormsBuilderPaymentsUtils.renamePlan).on("focusout",t,WPFormsBuilderPaymentsUtils.checkPlanName))},bindUIActions(){r(e).on("wpformsSaved",a.ajaxRequiredCheck).on("wpformsSaved",a.paymentsEnabledCheck).on("wpformsSaved",a.requiredFieldsCheck).on("wpformsFieldAdd",a.fieldAdded).on("wpformsFieldDelete",a.fieldDeleted).on("wpformsPaymentsPlanCreated",a.toggleMultiplePlansWarning).on("wpformsPaymentsPlanCreated",a.bindPlanUIActions).on("wpformsPaymentsPlanDeleted",a.toggleMultiplePlansWarning),s.$cardButton.on("click",a.connectionCheck)},bindPlanUIActions(){s.$panelContent.find(".wpforms-panel-content-section-payment-plan-body .wpforms-panel-field-select select").on("change",a.resetRequiredPlanFieldError)},ajaxRequiredCheck(){!r("#wpforms-panel-fields .wpforms-field.wpforms-field-square").length||a.isAJAXSubmitEnabled()||r.alert({title:wpforms_builder.heads_up,content:wpforms_builder.square_ajax_required,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})},paymentsEnabledCheck(){!r("#wpforms-panel-fields .wpforms-field.wpforms-field-square").length||a.isPaymentsEnabled()||r.alert({title:wpforms_builder.heads_up,content:wpforms_builder.square_payments_enabled_required,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})},requiredFieldsCheck(){if(s.$recurringPaymentControl.is(":checked")&&!s.$panelContent.hasClass("wpforms-hidden")){let t=!1;if(s.$panelContent.find(".wpforms-panel-content-section-payment-plan").each(function(){var e=r(this).data("plan-id"),n=r(`#wpforms-panel-field-square-recurring-${e}-customer_email`),e=r(`#wpforms-panel-field-square-recurring-${e}-customer_name`);n.val()||(n.addClass("wpforms-required-field-error"),t=!0),e.val()||(e.addClass("wpforms-required-field-error"),t=!0)}),t){let e=wpforms_builder.square_recurring_payments_fields_required;r(".wpforms-panel-content-section-square").is(":visible")||(e+=" "+wpforms_builder.square_recurring_payments_fields_settings),r.alert({title:wpforms_builder.square_recurring_payments_fields_heading,content:e,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}},onOpen(){r(".wpforms-square-settings-redirect").on("click",a.settingsRedirect)}})}}},settingsRedirect(){r(".wpforms-panel-payments-button").trigger("click"),r(".wpforms-panel-sidebar-section-square").trigger("click"),n.location.href=n.location.pathname+n.location.search+"#wpforms-panel-field-square-enable_recurring-wrap",r(this).closest(".jconfirm-box").find(".btn-confirm").trigger("click")},resetRequiredPlanFieldError(){var e=r(this).attr("name");(e.includes("customer_email")||e.includes("customer_name"))&&r(this).toggleClass("wpforms-required-field-error",!r(this).val())},connectionCheck(){return!r(this).hasClass("wpforms-add-fields-button-disabled")&&(!r(this).hasClass("square-connection-required")||void r.alert({title:wpforms_builder.heads_up,content:wpforms_builder.square_connection_required,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}}))},fieldAdded(e,n,t){"square"===t&&(a.cardButtonToggle(!0),a.settingsToggle(!0),a.paymentsEnabledCheck(),s.$feeNotice.toggleClass("wpforms-hidden"))},fieldDeleted(e,n,t){"square"===t&&(a.cardButtonToggle(!1),a.settingsToggle(!1),a.disablePayments(),a.disableNotifications(),s.$feeNotice.toggleClass("wpforms-hidden"))},toggleMultiplePlansWarning(){s.$panelContent.find(".wpforms-square-multiple-plans-warning").toggleClass("wpforms-hidden",1===s.$panelContent.find(".wpforms-panel-content-section-payment-plan").length)},cardButtonToggle(e){s.$cardButton.prop("disabled",e).toggleClass("wpforms-add-fields-button-disabled",e)},settingsToggle(e){s.$alert.length&&(s.$alert.toggleClass("wpforms-hidden",e),r("#wpforms-panel-content-section-payment-square").toggleClass("wpforms-hidden",!e),e||(s.$singlePaymentControl.prop("checked",!1).trigger("change"),s.$recurringPaymentControl.prop("checked",!1).trigger("change")))},disablePayments(){r("#wpforms-panel-field-square-enable_one_time, #wpforms-panel-field-square-enable_recurring").prop("checked",!1).trigger("change").each(WPFormsBuilderPaymentsUtils.toggleContent)},disableNotifications(){var e=r('.wpforms-panel-content-section-notifications [id*="-square-wrap"]');e.find('input[id*="-square"]').prop("checked",!1),e.addClass("wpforms-hidden")},isPaymentsEnabled(){return s.$singlePaymentControl.is(":checked")||s.$recurringPaymentControl.is(":checked")},isAJAXSubmitEnabled(){return s.$AJAXSubmitOption.is(":checked")}};return a})(document,window,jQuery);WPFormsBuilderSquare.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/square/admin/settings-square.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/square/admin/settings-square.min.js new file mode 100644 index 0000000..ec11bdd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/square/admin/settings-square.min.js @@ -0,0 +1 @@ +let WPFormsSettingsSquare=window.WPFormsSettingsSquare||((a,r)=>{let s={sandboxModeCheckbox:r("#wpforms-setting-square-sandbox-mode"),sandboxConnectionStatusBlock:r("#wpforms-setting-row-square-connection-status-sandbox"),productionConnectionStatusBlock:r("#wpforms-setting-row-square-connection-status-production"),sandboxLocationBlock:r("#wpforms-setting-row-square-location-id-sandbox"),sandboxLocationStatusBlock:r("#wpforms-setting-row-square-location-status-sandbox"),productionLocationBlock:r("#wpforms-setting-row-square-location-id-production"),productionLocationStatusBlock:r("#wpforms-setting-row-square-location-status-production"),refreshBtn:r(".wpforms-square-refresh-btn"),copyButton:r("#wpforms-setting-row-square-webhooks-endpoint-set .wpforms-copy-to-clipboard"),webhooksEnableCheckbox:r("#wpforms-setting-square-webhooks-enabled"),webhookEndpointUrl:r("input#wpforms-square-webhook-endpoint-url"),webhookMethod:r('input[name="square-webhooks-communication"]'),webhookCommunicationStatusNotice:r("#wpforms-setting-row-square-webhooks-communication-status"),webhookConnectBtn:r("#wpforms-setting-square-webhooks-connect"),webhookConnectRow:r("#wpforms-setting-row-square-webhooks-connect"),webhookConnectStatusRow:r("#wpforms-setting-row-square-webhooks-connect-status-production, #wpforms-setting-row-square-webhooks-connect-status-sandbox")},c={init(){r(c.ready)},ready(){c.events()},events(){s.sandboxModeCheckbox.on("change",c.credentialsFieldsDisplay),s.refreshBtn.on("click",c.refreshTokensCallback),s.webhooksEnableCheckbox.on("change",c.webhooksEnableCallback),s.webhookConnectBtn.on("click",c.modals.displayWebhookConfigPopup),s.webhookMethod.on("change",c.updateWebhookEndpointUrl),s.copyButton.on("click",function(o){wpf.copyValueToClipboard(o,r(this),s.webhookEndpointUrl)})},updateWebhookEndpointUrl(){var o=s.webhookMethod.filter(":checked").val(),o=wpforms_admin.square.webhook_urls[o];s.webhookEndpointUrl.val(o),s.webhookCommunicationStatusNotice.removeClass("wpforms-hide")},webhooksEnableCallback(){s.webhookConnectRow.toggleClass("wpforms-hide",!r(this).is(":checked")),s.webhookConnectStatusRow.toggleClass("wpforms-hide",!r(this).is(":checked"))},createWebhook(o){return new Promise((e,t)=>{r.ajax({url:wpforms_admin.ajax_url,type:"post",dataType:"json",data:{action:"wpforms_square_create_webhook",nonce:wpforms_admin.nonce,token:o},success(o){(o.success?e:t)(o)},error(){t({success:!1,message:"An error occurred."})}})})},refreshTokensCallback(){let e=r(this),o=e.outerWidth(),t=e.text();var n={url:wpforms_admin.ajax_url,type:"post",dataType:"json",data:{action:"wpforms_square_refresh_connection",nonce:wpforms_admin.nonce,mode:e.data("mode")},beforeSend(){e.css("width",o).html(WPFormsAdmin.settings.iconSpinner).prop("disabled",!0)}};let s=wpforms_admin.square.refresh_error;r.ajax(n).done(function(o){o.success?(e.css("pointerEvents","none").removeClass("wpforms-btn-light-grey").addClass("wpforms-btn-grey").html("Refreshed!"),e.closest("form").css("cursor","wait"),a.location=e.data("url")):(Object.prototype.hasOwnProperty.call(o,"data")&&""!==o.data&&(s=o.data),e.css("width","auto").html(t).prop("disabled",!1),c.modals.refreshTokensError(s))}).fail(function(){e.css("width","auto").html(t).prop("disabled",!1),c.modals.refreshTokensError(s)})},credentialsFieldsDisplay(){var o=s.sandboxModeCheckbox.is(":checked");o?(s.sandboxConnectionStatusBlock.show(),s.sandboxLocationBlock.show(),s.sandboxLocationStatusBlock.show(),s.productionConnectionStatusBlock.hide(),s.productionLocationBlock.hide(),s.productionLocationStatusBlock.hide()):(s.sandboxConnectionStatusBlock.hide(),s.sandboxLocationBlock.hide(),s.sandboxLocationStatusBlock.hide(),s.productionConnectionStatusBlock.show(),s.productionLocationBlock.show(),s.productionLocationStatusBlock.show()),o&&s.sandboxConnectionStatusBlock.find(".wpforms-square-connected").length||!o&&s.productionConnectionStatusBlock.find(".wpforms-square-connected").length||c.modals.modeChangedWarning()},modals:{modeChangedWarning(){r.alert({title:wpforms_admin.heads_up,content:wpforms_admin.square.mode_update,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})},refreshTokensError(o){r.alert({title:!1,content:o,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})},displayWebhookConfigPopup(){r.confirm({title:wpforms_admin.square.webhook_create_title,content:wpforms_admin.square.webhook_create_description+'",icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action(){let e=this;var o=e.$content.find("#wpforms-square-personal-access-token");let t=e.$content.find(".error");o=o.val().trim();let n=e.$title;return s.webhookConnectBtn.addClass("inactive"),t.hide().text(""),""===o?t.text(wpforms_admin.square.token_is_required).show():(e.buttons.confirm.setText(wpforms_admin.loading),e.buttons.confirm.disable(),c.createWebhook(o).then(o=>{e.setContent("

            "+o.data.message+"

            "),e.buttons.confirm.hide(),n.text("").hide(),e.buttons.cancel.setText(wpforms_admin.close),e.buttons.cancel.action=function(){a.location.reload()}}).catch(o=>{t.text(o.data.message).show(),e.buttons.confirm.setText(wpforms_admin.ok),e.buttons.confirm.enable()})),!1}},cancel:{text:wpforms_admin.cancel,action(){s.webhookConnectBtn.removeClass("inactive"),this.close()}}}})}}};return c})((document,window),jQuery);WPFormsSettingsSquare.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/square/wpforms-square.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/square/wpforms-square.min.js new file mode 100644 index 0000000..c72061a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/square/wpforms-square.min.js @@ -0,0 +1 @@ +let WPFormsSquare=window.WPFormsSquare||((i,o,s)=>{let a,n={cardNumber:{empty:!0,valid:!1},expirationDate:{empty:!0,valid:!1},cvv:{empty:!0,valid:!1},postalCode:{empty:!0,valid:!1}},l={payments:null,lockedPageToSwitch:0,init(){l.payments=l.getPaymentsInstance(),null!==l.payments&&s(i).on("wpformsReady",l.setupForms).on("wpformsBeforePageChange",l.pageChange).on("wpformsPageChange",l.afterPageChange).on("wpformsProcessConditionalsField",l.conditionalLogicHandler)},setupForms(){void 0!==s.fn.validate&&s(".wpforms-square form").filter((e,r)=>"number"==typeof s(r).data("formid")).each(l.updateSubmitHandler)},async updateSubmitHandler(){var e=s(this),r=e.data("validator");!r||e.hasClass("wpforms-square-initialization")||e.hasClass("wpforms-square-initialized")||e.closest(".elementor-location-popup").length&&!e.closest(".elementor-popup-modal").length||(e.addClass("wpforms-square-initialization"),a=r.settings.submitHandler,r.settings.submitHandler=l.submitHandler,await l.getCardInstance(e))},conditionalLogicHandler(e,r,t,a,s){l.isVisibleField(a,s)&&(a=i.getElementById("wpforms-"+r+"-field_"+t))&&a.classList.contains("wpforms-field-square-cardnumber")&&o.dispatchEvent(new Event("resize"))},isVisibleField(e,r){return"show"===r&&e||"hide"===r&&!e},submitHandler(e){var e=s(e),r=e.data("validator").form(),t=e.find(".wpforms-square-credit-card-hidden-input").data("square-card");r&&void 0!==t&&l.isProcessedCard(e)?l.tokenize(e,t):a(e)},async tokenize(e,r){l.disableSubmitBtn(e),null===await l.getSourceId(e,r)?l.enableSubmitBtn(e):l.submitForm(e)},getPaymentsInstance(){if(!o.Square)return l.displaySdkError(s(".wpforms-square form"),wpforms_square.i18n.missing_sdk_script),null;try{return Square.payments(wpforms_square.client_id,wpforms_square.location_id)}catch(e){var r="object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"message")?e.message:wpforms_square.i18n.missing_creds;return l.displaySdkError(s(".wpforms-square form"),r),null}},async getCardInstance(r){var t={};t.style=wpforms_square.card_config.style||l.getModernMarkupCardStyles(r);try{var a=await l.payments.card(t),s=(await a.attach(r.find(".wpforms-field-square-cardnumber").get(0)),["focusClassAdded","focusClassRemoved"]),i=s.length;let e=0;for(;e'),t.token):(l.displayFormError(l.getCreditCardInput(r),l.getResponseError(t)),null)}catch(e){l.displayFormError(l.getCreditCardInput(r),wpforms_square.i18n.token_process_fail)}return null},getResponseError(e){return e.errors&&Array.isArray(e.errors)&&e.errors.length?e.errors[0].message:wpforms_square.i18n.token_status_error+" "+e.status},getChargeVerifyBuyerDetails(e){return{amount:l.getTotalInMinorUnits(wpforms.amountTotalCalc(e)),billingContact:l.getBillingContactDetails(e),currencyCode:wpforms_settings.currency_code,intent:"CHARGE",customerInitiated:!0,sellerKeyedIn:!1}},getTotalInMinorUnits(e){return parseInt(wpforms.numberFormat(e,wpforms_settings.currency_decimal,"",""),10).toString()},getBillingContactDetails(e){var e=e.data("formid"),e=wpforms_square.billing_details&&wpforms_square.billing_details[e]||{},r={},t=e.buyer_email?s(`.wpforms-field-email[data-field-id="${e.buyer_email}"]`):"",a=e.billing_name?s(`.wpforms-field-name[data-field-id="${e.billing_name}"]`):"",e=e.billing_address?s(`.wpforms-field-address[data-field-id="${e.billing_address}"]`):"";return t.length&&(t=t.find("input").first().val())&&""!==t.trim()&&(r.email=t),a.length&&jQuery.extend(r,l.getBillingNameDetails(a)),e.length&&jQuery.extend(r,l.getBillingAddressDetails(e)),r},getBillingNameDetails(e){var r={};let t="",a="";var s=e.find(".wpforms-field-name-first"),i=e.find(".wpforms-field-name-last");return s.length&&i.length?(t=s.val()||"",a=i.val()||"",t&&""!==t.trim()&&(r.givenName=t),a&&""!==a.trim()&&(r.familyName=a)):(s=e.find("input")).length&&(i=s.val().trim()).length&&(e=i.split(" "),t=e.shift()||"",a=e.join(" ")||"",t&&""!==t.trim()&&(r.givenName=t),a)&&""!==a.trim()&&(r.familyName=a),r},getBillingAddressDetails(e){var r={},e=e.closest(".wpforms-field"),t=e.find(".wpforms-field-address-address1").val()||"",a=e.find(".wpforms-field-address-address2").val()||"",s=e.find(".wpforms-field-address-city").val()||"",i=e.find(".wpforms-field-address-state").val()||"",e=e.find(".wpforms-field-address-country").val()||"US",t=[t,a].filter(e=>e&&""!==e.trim());return t.length&&(r.addressLines=t),s&&""!==s.trim()&&(r.city=s),i&&""!==i.trim()&&(r.state=i),e&&""!==e.trim()&&(r.countryCode=e),r},getCreditCardInput(e){return e.find(".wpforms-square-credit-card-hidden-input")},submitForm(e){e.data("validator")&&a(e)},isProcessedCard(e){var e=e.find(".wpforms-field-square-cardnumber"),r=e.closest(".wpforms-field-square").hasClass("wpforms-conditional-hide"),e=!!e.data("required");return!r&&(e||l.isCardDataNotEmpty())},isCardDataNotEmpty(){return!(n.cardNumber.empty&&n.expirationDate.empty&&n.cvv.empty&&n.postalCode.empty)},isCardDataValid(){return n.cardNumber.valid&&n.expirationDate.valid&&n.cvv.valid&&n.postalCode.valid},displaySdkError(e,r){e.find(".wpforms-square-credit-card-hidden-input").closest(".wpforms-field-square-number").append(s("",{text:r,class:"wpforms-error"}))},removeFieldError(e){e.find(".wpforms-field-square-number .wpforms-error").remove()},displayFormError(e,r){var t=e.attr("name"),a=e.closest("form"),s={};s[t]=r,wpforms.displayFormAjaxFieldErrors(a,s),wpforms.scrollToError(e)},disableSubmitBtn(e){e.find(".wpforms-submit").prop("disabled",!0)},enableSubmitBtn(e){e.find(".wpforms-submit").prop("disabled",!1)},escapeTextString(e){return s("").text(e).html()},pageChange(e,r,t,a){var s=t.find(".wpforms-field-square-cardnumber");!s.is(":visible")||!s.data("required")&&!l.isCardDataNotEmpty()||l.lockedPageToSwitch&&l.lockedPageToSwitch!==r||"prev"===a||(l.isCardDataValid()?l.removeFieldError(t):(l.lockedPageToSwitch=r,l.displayFormError(l.getCreditCardInput(t),wpforms_square.i18n.empty_details),e.preventDefault()))},afterPageChange(){o.dispatchEvent(new Event("resize"))},getCssPropertyValue(e,r){try{return e.css(r)}catch(e){return""}},needsStyles(){return!!(o.WPForms&&WPForms.FrontendModern||s("#wpforms-conversational-form-page").length||s(".wpforms-lead-forms-container").length)},getModernMarkupCardStyles(e){var r;return l.needsStyles()?(e=l.getCreditCardInput(e),r=l.getCssPropertyValue(e,"color"),e={fontSize:l.getCssPropertyValue(e,"font-size"),colorText:r,colorTextPlaceholder:r},WPFormsUtils.hasOwnProperty("cssColorsUtils")&&"function"==typeof WPFormsUtils.cssColorsUtils.getColorWithOpacity&&(e.colorText=WPFormsUtils.cssColorsUtils.getColorWithOpacity(r),e.colorTextPlaceholder=WPFormsUtils.cssColorsUtils.getColorWithOpacity(r,"0.5")),{input:{color:e.colorText,fontSize:e.fontSize},"input::placeholder":{color:e.colorTextPlaceholder},"input.is-error":{color:e.colorText}}):{}}};return l})(document,window,jQuery);WPFormsSquare.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-builder-modern-stripe.min.js b/wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-builder-modern-stripe.min.js new file mode 100644 index 0000000..c5ab57f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/js/integrations/stripe/admin-builder-modern-stripe.min.js @@ -0,0 +1 @@ +var WPFormsStripeModernBuilder=window.WPFormsStripeModernBuilder||((e,r)=>{let i={},a={init(){r(a.ready)},ready(){var e,t,n;a.customMetadataActions(),a.isLegacySettings()||(i={$alert:r("#wpforms-stripe-credit-card-alert"),$panelContent:r("#wpforms-panel-content-section-payment-stripe"),$feeNotice:r(".wpforms-stripe-notice-info")},a.bindUIActions(),a.bindPlanUIActions(),wpforms_builder_stripe.is_pro)||(n=(e=".wpforms-panel-content-section-stripe")+" .wpforms-panel-content-section-payment-plan-name input",r(t=e+" .wpforms-panel-content-section-payment-toggle input").each(WPFormsBuilderPaymentsUtils.toggleContent),r(n).each(WPFormsBuilderPaymentsUtils.checkPlanName),r("#wpforms-panel-payments").on("click",t,WPFormsBuilderPaymentsUtils.toggleContent).on("click",e+" .wpforms-panel-content-section-payment-plan-head-buttons-toggle",WPFormsBuilderPaymentsUtils.togglePlan).on("click",e+" .wpforms-panel-content-section-payment-plan-head-buttons-delete",WPFormsBuilderPaymentsUtils.deletePlan).on("input",n,WPFormsBuilderPaymentsUtils.renamePlan).on("focusout",n,WPFormsBuilderPaymentsUtils.checkPlanName))},customMetadataActions(){r("#wpforms-panel-payments").on("focusout",".wpforms-panel-field-stripe-custom-metadata-meta-key",function(){r(this).val(r(this).val().replace(/[^\p{L}\p{N}_-]/gu,""))}).on("click",".wpforms-panel-content-section-stripe-custom-metadata-add",function(e){e.preventDefault();var e=r(this).parents(".wpforms-panel-content-section-stripe-custom-metadata-table"),t=e.find("tr").last(),n=t.clone(!0),t=t.data("key"),i=t+1;n.attr("data-key",i),n.html(n.html().replaceAll("["+t+"]","["+i+"]").replaceAll("-"+t+"-","-"+i+"-")),n.find("select, input").val(""),n.find(".wpforms-panel-content-section-stripe-custom-metadata-delete").removeClass("hidden"),n.find(".wpforms-required-field-error").removeClass("wpforms-required-field-error"),e.find("tbody").append(n.get(0))}).on("click",".wpforms-panel-content-section-stripe-custom-metadata-delete",function(e){e.preventDefault(),r(this).parents(".wpforms-panel-content-section-stripe-custom-metadata-table tr").remove()})},bindUIActions(){r("#wpforms-builder").on("wpformsFieldDelete",a.disableNotifications).on("wpformsSaved",a.requiredFieldsCheck).on("wpformsFieldAdd",a.fieldAdded).on("wpformsFieldDelete",a.fieldDeleted).on("wpformsPaymentsPlanCreated",a.toggleMultiplePlansWarning).on("wpformsPaymentsPlanCreated",a.bindPlanUIActions).on("wpformsPaymentsPlanDeleted",a.toggleMultiplePlansWarning),i.$panelContent.find(".wpforms-panel-content-section-payment-one-time").on("change",".wpforms-panel-field-stripe-custom-metadata-meta-key",a.resetCustomMetaKeyErrorClass)},bindPlanUIActions(){i.$panelContent.find('.wpforms-panel-content-section-payment-plan-body .wpforms-panel-field-select select[name*="email"]').on("change",a.resetEmailAlertErrorClass),i.$panelContent.find(".wpforms-panel-content-section-payment-plan-body .wpforms-panel-field-stripe-custom-metadata-meta-key").on("change",a.resetCustomMetaKeyErrorClass),i.$panelContent.find(".wpforms-panel-content-section-payment-plan-period select").on("change",a.resetCyclesValues)},requiredFieldsCheck(){let e=a.validateFields();e?.invalid&&a.openAlert(a.getAlertMessage(e.type),()=>e.invalid.$element.focus())},validateFields(){var e;return!!i.$panelContent.hasClass("wpforms-hidden")||(e={},r("#wpforms-panel-field-stripe-enable_one_time").is(":checked")&&a.validateOneTimeFields(e),r("#wpforms-panel-field-stripe-enable_recurring").is(":checked")&&a.validateRecurringFields(e),e)},validateOneTimeFields(e){var t=i.$panelContent.find(".wpforms-panel-content-section-payment-one-time");e.type="one-time",a.validateCustomMetaTable(t,e)},validateRecurringFields(t){t.type=t.type?"both":"recurring",i.$panelContent.find(".wpforms-panel-content-section-payment-plan").each(function(){var e=r(this);a.validateEmailField(e,t),a.validateCustomMetaTable(e,t)})},validateEmailField(e,t){e=e.data("plan-id"),e=r(`#wpforms-panel-field-stripe-recurring-${e}-email`);e.val()||(e.addClass("wpforms-required-field-error"),t.invalid=t.invalid??{},t.invalid.email=!0,t.invalid.$element)||(t.invalid.$element=e)},validateCustomMetaTable(e,t){e=e.find(".wpforms-panel-content-section-stripe-custom-metadata-table tr[data-key]");if(!e.length)return!0;e.each(function(){var e=r(this);a.isValidCustomMetaRow(e)||(t.invalid=t.invalid??{},t.invalid.customMeta=!0,t.invalid.$element)||(t.invalid.$element=e.find(".wpforms-panel-field-stripe-custom-metadata-meta-key"))})},isValidCustomMetaRow(e){var t=e.find(".wpforms-panel-field-stripe-custom-metadata-meta-key"),e=!e.find(".wpforms-panel-field-stripe-custom-metadata-object-type").val()||!e.find(".wpforms-panel-field-stripe-custom-metadata-meta-value").val()||t.val();return t.toggleClass("wpforms-required-field-error",!e),e},resetEmailAlertErrorClass(){r(this).toggleClass("wpforms-required-field-error",!r(this).val())},resetCustomMetaKeyErrorClass(){var e=r(this).closest("tr[data-key]");a.isValidCustomMetaRow(e)},recurringEmailAlert(){console.warn('WARNING! Function "WPFormsStripeModernBuilder.recurringEmailAlert()" has been deprecated, please use the "WPFormsStripeModernBuilder.openAlert()" function instead!'),a.openAlert(wpforms_builder.stripe_recurring_email)},openAlert(e,t=()=>{}){r.alert({title:wpforms_builder.stripe_recurring_heading,content:e,icon:"fa fa-exclamation-circle",type:"red",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"],action:t}},onOpen(){r(".wpforms-stripe-settings-redirect").on("click",a.settingsRedirect)}})},getAlertMessage(e){var t;return r(".wpforms-panel-content-section-stripe").is(":visible")?(t={"one-time":"stripe_required_one_time_fields",recurring:"stripe_required_recurring_fields",both:"stripe_required_both_fields"},wpforms_builder[t[e]??t.recurring]):wpforms_builder.stripe_recurring_settings},settingsRedirect(){r(".wpforms-panel-payments-button").trigger("click"),r(".wpforms-panel-sidebar-section-stripe").trigger("click"),e.location.href=e.location.pathname+e.location.search+"#wpforms-panel-field-stripe-enable_recurring-wrap",r(this).closest(".jconfirm-box").find(".btn-confirm").trigger("click")},disableNotifications(e,t,n){a.isStripeField(n)&&!a.hasStripeCreditCardFieldInBuilder()&&((n=r('.wpforms-panel-content-section-notifications [id*="-stripe-wrap"]')).find('input[id*="-stripe"]').prop("checked",!1),n.addClass("wpforms-hidden"))},isLegacySettings(){return r("#wpforms-panel-field-stripe-enable").length},fieldAdded(e,t,n){a.isStripeField(n)&&a.hasStripeCreditCardFieldInBuilder()&&(a.settingsToggle(!0),i.$feeNotice.toggleClass("wpforms-hidden"))},fieldDeleted(e,t,n){!a.isStripeField(n)||a.hasStripeCreditCardFieldInBuilder()||(a.settingsToggle(!1),a.disablePayments(),i.$feeNotice.toggleClass("wpforms-hidden"))},isStripeField(e){return e===wpforms_builder_stripe.field_slug},hasStripeCreditCardFieldInBuilder(){return 0",{value:"unlimited",text:wpforms_builder_stripe.i18n.cycles_default})];for(let e=1;e<=i;e++)a.push(r("
            ' ), h = C.minicolors.defaults; + if ( t.data( "minicolors-initialized" ) ) return; + i = C.extend( ! 0, {}, h, i ), l.addClass( "minicolors-theme-" + i.theme ).toggleClass( "minicolors-with-opacity", i.opacity ), void 0 !== i.position && C.each( i.position.split( " " ), function() { + l.addClass( "minicolors-position-" + this ) + } ); + s = "rgb" === i.format ? i.opacity ? "25" : "20" : i.keywords ? "11" : "7"; + t.addClass( "minicolors-input" ).data( "minicolors-initialized", ! 1 ).data( "minicolors-settings", i ).prop( "size", s ).wrap( l ).after( '
            ' ), i.inline || ( t.after( '' ), t.next( ".minicolors-input-swatch" ).on( "click", function( i ) { + i.preventDefault(), t.trigger( "focus" ) + } ) ); + if ( ( e = t.parent().find( ".minicolors-panel" ) ).on( "selectstart", function() { + return ! 1 + } ).end(), i.swatches && 0 !== i.swatches.length ) for ( e.addClass( "minicolors-with-swatches" ), a = C( '
              ' ).appendTo( e ), c = 0; c < i.swatches.length; ++c ) n = "object" == typeof i.swatches[ c ] ? ( o = i.swatches[ c ].name, i.swatches[ c ].color ) : ( o = "", i.swatches[ c ] ), n = T( r = n ) ? I( n, ! 0 ) : L( M( n, ! 0 ) ), C( '
            • ' ).attr( "title", o ).appendTo( a ).data( "swatch-color", r ).find( ".minicolors-swatch-color" ).css( { + backgroundColor: "transparent" !== r ? p( n ) : "transparent", + opacity: String( n.a ) + } ), i.swatches[ c ] = n; + i.inline && t.parent().addClass( "minicolors-inline" ); + d( t, ! 1 ), t.data( "minicolors-initialized", ! 0 ) + }( C( this ), t ) + } ), C( this ) + } + } + } ), C( [ document ] ).on( "mousedown.minicolors touchstart.minicolors", function( i ) { + C( i.target ).parents().add( i.target ).hasClass( "minicolors" ) || a() + } ).on( "mousedown.minicolors touchstart.minicolors", ".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider", function( i ) { + var t = C( this ); + i.preventDefault(), C( i.delegateTarget ).data( "minicolors-target", t ), n( t, i, ! 0 ) + } ).on( "mousemove.minicolors touchmove.minicolors", function( i ) { + var t = C( i.delegateTarget ).data( "minicolors-target" ); + t && n( t, i ) + } ).on( "mouseup.minicolors touchend.minicolors", function() { + C( this ).removeData( "minicolors-target" ) + } ).on( "click.minicolors", ".minicolors-swatches li", function( i ) { + i.preventDefault(); + var t = C( this ), o = t.parents( ".minicolors" ).find( ".minicolors-input" ), s = t.data( "swatch-color" ); + x( o, s, D( s ) ), d( o ) + } ).on( "mousedown.minicolors touchstart.minicolors", ".minicolors-input-swatch", function( i ) { + var t = C( this ).parent().find( ".minicolors-input" ); + i.preventDefault(), s( t ) + } ).on( "focus.minicolors", ".minicolors-input", function() { + var i = C( this ); + i.data( "minicolors-initialized" ) && s( i ) + } ).on( "blur.minicolors", ".minicolors-input", function() { + var i, t, o, s, a, n = C( this ), r = n.data( "minicolors-settings" ); + n.data( "minicolors-initialized" ) && ( i = r.keywords ? C.map( r.keywords.split( "," ), function( i ) { + return i.toLowerCase().trim() + } ) : [], a = "" !== n.val() && -1 < C.inArray( n.val().toLowerCase(), i ) ? n.val() : null === ( o = T( n.val() ) ? I( n.val(), ! 0 ) : ( t = M( n.val(), ! 0 ) ) ? L( t ) : null ) ? r.defaultValue : "rgb" === r.format ? r.opacity ? I( "rgba(" + o.r + "," + o.g + "," + o.b + "," + n.attr( "data-opacity" ) + ")" ) : I( "rgb(" + o.r + "," + o.g + "," + o.b + ")" ) : p( o ), s = r.opacity ? n.attr( "data-opacity" ) : 1, "transparent" === a.toLowerCase() && ( s = 0 ), n.closest( ".minicolors" ).find( ".minicolors-input-swatch > span" ).css( "opacity", String( s ) ), n.val( a ), "" === n.val() && n.val( z( r.defaultValue, ! 0 ) ), n.val( k( n.val(), r.letterCase ) ) ) + } ).on( "keydown.minicolors", ".minicolors-input", function( i ) { + var t = C( this ); + if ( t.data( "minicolors-initialized" ) ) switch ( i.which ) { + case 9: + a(); + break; + case 13: + case 27: + a(), t.blur() + } + } ).on( "keyup.minicolors", ".minicolors-input", function() { + var i = C( this ); + i.data( "minicolors-initialized" ) && d( i, ! 0 ) + } ).on( "paste.minicolors", ".minicolors-input", function() { + var i = C( this ); + i.data( "minicolors-initialized" ) && setTimeout( function() { + d( i, ! 0 ) + }, 1 ) + } ) +} ); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.css b/wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.css new file mode 100644 index 0000000..25b6b41 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.css @@ -0,0 +1 @@ +.ui-timepicker-wrapper{overflow-y:auto;height:142px;width:6.5em;background:#fff;border:1px solid #e6e6e6;border-radius:3px;outline:none;z-index:10001;margin:0}.ui-timepicker-wrapper.ui-timepicker-with-duration{width:13em}.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60{width:11em}.ui-timepicker-list{margin:0;padding:0;list-style:none}.ui-timepicker-duration{margin-left:5px;color:#888}.ui-timepicker-list:hover .ui-timepicker-duration{color:#888}.ui-timepicker-list li{padding:3px 0 3px 5px;cursor:pointer;white-space:nowrap;color:#393939;list-style:none;margin:0;font-size:14px}.ui-timepicker-list:hover .ui-timepicker-selected{background:#fff;color:#393939}li.ui-timepicker-selected,.ui-timepicker-list li:hover,.ui-timepicker-list .ui-timepicker-selected:hover{background:#446cb3;color:#fff}li.ui-timepicker-selected .ui-timepicker-duration,.ui-timepicker-list li:hover .ui-timepicker-duration{color:#ccc}.ui-timepicker-list li.ui-timepicker-disabled,.ui-timepicker-list li.ui-timepicker-disabled:hover,.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{color:#888;cursor:default}.ui-timepicker-list li.ui-timepicker-disabled:hover,.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{background:#f2f2f2} diff --git a/wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.js b/wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.js new file mode 100644 index 0000000..3f5d186 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lib/jquery.timepicker/jquery.timepicker.min.js @@ -0,0 +1,7 @@ +/*! + * jquery-timepicker v1.11.5 - A jQuery timepicker plugin inspired by Google Calendar. It supports both mouse and keyboard navigation. + * Copyright (c) 2016 Jon Thornton - http://jonthornton.github.com/jquery-timepicker/ + * License: MIT + */ + +!function(a){"object"==typeof exports&&exports&&"object"==typeof module&&module&&module.exports===exports?a(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(a){var b=a[0];return b.offsetWidth>0&&b.offsetHeight>0}function c(b){if(b.minTime&&(b.minTime=t(b.minTime)),b.maxTime&&(b.maxTime=t(b.maxTime)),b.durationTime&&"function"!=typeof b.durationTime&&(b.durationTime=t(b.durationTime)),"now"==b.scrollDefault)b.scrollDefault=function(){return b.roundingFunction(t(new Date),b)};else if(b.scrollDefault&&"function"!=typeof b.scrollDefault){var c=b.scrollDefault;b.scrollDefault=function(){return b.roundingFunction(t(c),b)}}else b.minTime&&(b.scrollDefault=function(){return b.roundingFunction(b.minTime,b)});if("string"===a.type(b.timeFormat)&&b.timeFormat.match(/[gh]/)&&(b._twelveHourTime=!0),b.showOnFocus===!1&&-1!=b.showOn.indexOf("focus")&&b.showOn.splice(b.showOn.indexOf("focus"),1),b.disableTimeRanges.length>0){for(var d in b.disableTimeRanges)b.disableTimeRanges[d]=[t(b.disableTimeRanges[d][0]),t(b.disableTimeRanges[d][1])];b.disableTimeRanges=b.disableTimeRanges.sort(function(a,b){return a[0]-b[0]});for(var d=b.disableTimeRanges.length-1;d>0;d--)b.disableTimeRanges[d][0]<=b.disableTimeRanges[d-1][1]&&(b.disableTimeRanges[d-1]=[Math.min(b.disableTimeRanges[d][0],b.disableTimeRanges[d-1][0]),Math.max(b.disableTimeRanges[d][1],b.disableTimeRanges[d-1][1])],b.disableTimeRanges.splice(d,1))}return b}function d(b){var c=b.data("timepicker-settings"),d=b.data("timepicker-list");if(d&&d.length&&(d.remove(),b.data("timepicker-list",!1)),c.useSelect){d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};a.extend(a.expr.pseudos||a.expr[":"],{blank:function(c){return!b(""+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(""+d)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,customElements:[],onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)});var f=[":text","[type='password']","[type='file']","select","textarea","[type='number']","[type='search']","[type='tel']","[type='url']","[type='email']","[type='datetime']","[type='date']","[type='month']","[type='week']","[type='time']","[type='datetime-local']","[type='range']","[type='color']","[type='radio']","[type='checkbox']","[contenteditable]","[type='button']"],g=["select","option","[type='radio']","[type='checkbox']"];a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",f.concat(this.settings.customElements).join(", "),b).on("click.validate",g.concat(this.settings.customElements).join(", "),b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={},d=["input","select","textarea","[contenteditable]"];return a(this.currentForm).find(d.concat(this.settings.customElements).join(", ")).not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);this.abortRequest(b),"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||"")):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?"":a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},elementAjaxPort:function(a){return"validate"+a.name},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger("submit"),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},abortRequest:function(b){var c;this.pending[b.name]&&(c=this.elementAjaxPort(b),a.ajaxAbort(c),this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass))},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a["date"===b?"dateISO":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]="function"==typeof d&&"normalizer"!==a?d(c):d}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(a=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:-?\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),null!==i.valid&&i.old===h?i.valid:(i.old=h,i.valid=null,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:this.elementAjaxPort(c),dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(b,c,e){var f=b.port;"abort"===b.mode&&(a.ajaxAbort(f),d[f]=e)}):(c=a.ajax,a.ajax=function(b){var e=("mode"in b?b:a.ajaxSettings).mode,f=("port"in b?b:a.ajaxSettings).port;return"abort"===e?(a.ajaxAbort(f),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a.ajaxAbort=function(a){d[a]&&(d[a].abort(),delete d[a])},a}); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lib/list.min.js b/wp-content/plugins/wpforms-lite/assets/lib/list.min.js new file mode 100644 index 0000000..1b7ff95 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lib/list.min.js @@ -0,0 +1,2 @@ +/*! List.js v2.3.0 (http://listjs.com) by Jonny Strömberg (http://javve.com) */ +var List;List=function(){var t={"./src/add-async.js":function(t){t.exports=function(t){return function e(r,n,s){var i=r.splice(0,50);s=(s=s||[]).concat(t.add(i)),r.length>0?setTimeout((function(){e(r,n,s)}),1):(t.update(),n(s))}}},"./src/filter.js":function(t){t.exports=function(t){return t.handlers.filterStart=t.handlers.filterStart||[],t.handlers.filterComplete=t.handlers.filterComplete||[],function(e){if(t.trigger("filterStart"),t.i=1,t.reset.filter(),void 0===e)t.filtered=!1;else{t.filtered=!0;for(var r=t.items,n=0,s=r.length;nv.page,a=new g(t[s],void 0,n),v.items.push(a),r.push(a)}return v.update(),r}m(t.slice(0),e)}},this.show=function(t,e){return this.i=t,this.page=e,v.update(),v},this.remove=function(t,e,r){for(var n=0,s=0,i=v.items.length;s-1&&r.splice(n,1),v},this.trigger=function(t){for(var e=v.handlers[t].length;e--;)v.handlers[t][e](v);return v},this.reset={filter:function(){for(var t=v.items,e=t.length;e--;)t[e].filtered=!1;return v},search:function(){for(var t=v.items,e=t.length;e--;)t[e].found=!1;return v}},this.update=function(){var t=v.items,e=t.length;v.visibleItems=[],v.matchingItems=[],v.templater.clear();for(var r=0;r=v.i&&v.visibleItems.lengthe},innerWindow:function(t,e,r){return t>=e-r&&t<=e+r},dotted:function(t,e,r,n,s,i,a){return this.dottedLeft(t,e,r,n,s,i)||this.dottedRight(t,e,r,n,s,i,a)},dottedLeft:function(t,e,r,n,s,i){return e==r+1&&!this.innerWindow(e,s,i)&&!this.right(e,n)},dottedRight:function(t,e,r,n,s,i,a){return!t.items[a-1].values().dotted&&(e==n&&!this.innerWindow(e,s,i)&&!this.right(e,n))}};return function(e){var n=new i(t.listContainer.id,{listClass:e.paginationClass||"pagination",item:e.item||"
            • ",valueNames:["page","dotted"],searchClass:"pagination-search-that-is-not-supposed-to-exist",sortClass:"pagination-sort-that-is-not-supposed-to-exist"});s.bind(n.listContainer,"click",(function(e){var r=e.target||e.srcElement,n=t.utils.getAttribute(r,"data-page"),s=t.utils.getAttribute(r,"data-i");s&&t.show((s-1)*n+1,n)})),t.on("updated",(function(){r(n,e)})),r(n,e)}}},"./src/parse.js":function(t,e,r){t.exports=function(t){var e=r("./src/item.js")(t),n=function(r,n){for(var s=0,i=r.length;s0?setTimeout((function(){e(r,s)}),1):(t.update(),t.trigger("parseComplete"))};return t.handlers.parseComplete=t.handlers.parseComplete||[],function(){var e=function(t){for(var e=t.childNodes,r=[],n=0,s=e.length;n]/g.exec(t)){var e=document.createElement("tbody");return e.innerHTML=t,e.firstElementChild}if(-1!==t.indexOf("<")){var r=document.createElement("div");return r.innerHTML=t,r.firstElementChild}}},a=function(e,r,n){var s=void 0,i=function(e){for(var r=0,n=t.valueNames.length;r=1;)t.list.removeChild(t.list.firstChild)},function(){var r;if("function"!=typeof t.item){if(!(r="string"==typeof t.item?-1===t.item.indexOf("<")?document.getElementById(t.item):i(t.item):s()))throw new Error("The list needs to have at least one item on init otherwise you'll have to add a template.");r=n(r,t.valueNames),e=function(){return r.cloneNode(!0)}}else e=function(e){var r=t.item(e);return i(r)}}()};t.exports=function(t){return new e(t)}},"./src/utils/classes.js":function(t,e,r){var n=r("./src/utils/index-of.js"),s=/\s+/;Object.prototype.toString;function i(t){if(!t||!t.nodeType)throw new Error("A DOM element reference is required");this.el=t,this.list=t.classList}t.exports=function(t){return new i(t)},i.prototype.add=function(t){if(this.list)return this.list.add(t),this;var e=this.array();return~n(e,t)||e.push(t),this.el.className=e.join(" "),this},i.prototype.remove=function(t){if(this.list)return this.list.remove(t),this;var e=this.array(),r=n(e,t);return~r&&e.splice(r,1),this.el.className=e.join(" "),this},i.prototype.toggle=function(t,e){return this.list?(void 0!==e?e!==this.list.toggle(t,e)&&this.list.toggle(t):this.list.toggle(t),this):(void 0!==e?e?this.add(t):this.remove(t):this.has(t)?this.remove(t):this.add(t),this)},i.prototype.array=function(){var t=(this.el.getAttribute("class")||"").replace(/^\s+|\s+$/g,"").split(s);return""===t[0]&&t.shift(),t},i.prototype.has=i.prototype.contains=function(t){return this.list?this.list.contains(t):!!~n(this.array(),t)}},"./src/utils/events.js":function(t,e,r){var n=window.addEventListener?"addEventListener":"attachEvent",s=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==n?"on":"",a=r("./src/utils/to-array.js");e.bind=function(t,e,r,s){for(var o=0,l=(t=a(t)).length;o32)return!1;var a=n,o=function(){var t,r={};for(t=0;t=p;b--){var j=o[t.charAt(b-1)];if(C[b]=0===m?(C[b+1]<<1|1)&j:(C[b+1]<<1|1)&j|(v[b+1]|v[b])<<1|1|v[b+1],C[b]&d){var x=l(m,b-1);if(x<=u){if(u=x,!((c=b-1)>a))break;p=Math.max(1,2*a-c)}}}if(l(m+1,a)>u)break;v=C}return!(c<0)}},"./src/utils/get-attribute.js":function(t){t.exports=function(t,e){var r=t.getAttribute&&t.getAttribute(e)||null;if(!r)for(var n=t.attributes,s=n.length,i=0;i=48&&t<=57}function i(t,e){for(var i=(t+="").length,a=(e+="").length,o=0,l=0;o=i&&l=a?-1:l>=a&&o=i?1:i-a}i.caseInsensitive=i.i=function(t,e){return i((""+t).toLowerCase(),(""+e).toLowerCase())},Object.defineProperties(i,{alphabet:{get:function(){return e},set:function(t){r=[];var s=0;if(e=t)for(;s-1&&(a=a.substr(b+1));for(var c,d=decodeURI(a.split("#")[0]).split("&"),e={},f=0,g=d.length;f-1){var d=a.split("?");a=d.shift(),c=b.extend({},e(d[0]),c)}return a+"?"+b.param(c)}function g(a,b){var c=a.indexOf("#");return-1===c?b:(c>0&&(a=a.substr(c)),b+a)}function h(a,b,c,d){return b&&b.element().addClass("lity-iframe"),c&&(a=f(a,c)),d&&(a=g(d,a)),'
              ':"";this.$btnc.after('
              '+wpforms_education.upgrade_bonus+"
              "),this.$btnc.after(wpforms_education.upgrade[d].doc.replace(/%25name%25/g,a)),this.$btnc.after(e),this.$body.find(".jconfirm-content").addClass("lite-upgrade")},buttons:{confirm:{text:wpforms_education.upgrade[d].button,btnClass:"btn-confirm",keys:["enter"],action:()=>{l.open(WPFormsEducation.core.getUpgradeURL(n,d),"_blank"),WPFormsEducation.core.upgradeModalThankYou(d)}}}});c(l).on("resize",function(){e=WPFormsEducation.core.getUpgradeModalWidth(o),t.isOpen()&&t.setBoxWidth(e)})}}};return a})(document,window,jQuery),WPFormsEducation.liteCore.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lite/js/admin/education/lite-connect.min.js b/wp-content/plugins/wpforms-lite/assets/lite/js/admin/education/lite-connect.min.js new file mode 100644 index 0000000..49f0746 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lite/js/admin/education/lite-connect.min.js @@ -0,0 +1 @@ +var WPFormsEducation=window.WPFormsEducation||{};WPFormsEducation.liteConnect=window.WPFormsEducation.liteConnect||((i,n,l)=>{let c={init(){l(c.ready),l(n).on("load",function(){"function"==typeof l.ready.then?l.ready.then(c.load):c.load()})},ready(){},load(){c.events(),c.initLiteConnectToggle(),c.maybeRevealBuilderTopBar()},events(){c.enableLiteConnectToggleClick(),c.enableLiteConnectButtonClick(),c.dismissBuilderTopBarClick(),c.autoSaveToggleChange(),c.enableLiteConnectAIButtonClick()},initLiteConnectToggle(){l(".wpforms-toggle-control.wpforms-setting-lite-connect-auto-save-toggle input").prop("disabled",!1)},enableLiteConnectToggleClick(){l(i).on("mousedown touchstart","#wpforms-setting-row-lite-connect-enabled label, .wpforms-setting-lite-connect-auto-save-toggle label",function(e){"ontouchstart"in i.documentElement||e.preventDefault();let t=l(this).closest("#wpforms-setting-row-lite-connect-enabled, .wpforms-setting-lite-connect-auto-save-toggle").find("#wpforms-setting-lite-connect-enabled");t.prop("disabled")||(e=t.is(":checked"),c.openSettingsLiteConnectModal(e,function(){t.trigger("click").prop("disabled",!0)}))})},enableLiteConnectButtonClick(){l(i).on("click",".wpforms-dyk-lite-connect .button-primary",function(e){e.preventDefault();e=l(this);e.hasClass("wpforms-is-enabled")?n.open(e.attr("href")):c.openSettingsLiteConnectModal(!1,c.enableLiteConnectButtonModalConfirm)})},enableLiteConnectAIButtonClick(){l(i).on("click",".enable-lite-connect-modal",c.handleLiteConnectModalClick)},finalizeLiteConnectSetup(){return l.get(wpforms_education_lite_connect.ajax_url,{action:"wpforms_lite_connect_finalize",nonce:wpforms_education_lite_connect.nonce})},handleLiteConnectModalClick(e){e.preventDefault(),c.openAILiteConnectEnableModal(function(){c.saveSettingAjaxPost(!0,l(),function(){c.switchSettingView(!0,l("#wpforms-builder-lite-connect-top-bar .wpforms-toggle-control")),c.finalizeLiteConnectSetup().done(()=>{c.removeLiteConnectModalOnAIButtons()})})})},removeLiteConnectModalOnAIButtons(){l(".enable-lite-connect-modal.wpforms-prevent-default").each(function(){var e=l(this);e.removeClass("enable-lite-connect-modal wpforms-prevent-default"),e.hasClass("wpforms-template-generate")&&e.trigger("click"),l("#wpforms-builder-lite-connect-top-bar").length&&c.toggleBuilderTopBar(!1)})},enableLiteConnectButtonModalConfirm(){let e=l(".wpforms-dyk-lite-connect .button-primary");c.saveSettingAjaxPost(!0,e,function(){c.switchSettingView(!0,e)})},openSettingsLiteConnectModal(e,t){e?c.openSettingsLiteConnectDisableModal(t):c.openSettingsLiteConnectEnableModal(t)},openSettingsLiteConnectEnableModal(e){e={content:wp.template("wpforms-settings-lite-connect-modal-content")(),confirm:{text:wpforms_education_lite_connect.enable_modal.confirm,callback:e}};c.enableModal(e)},openAILiteConnectEnableModal(e){e={content:wp.template("wpforms-builder-ai-lite-connect-modal-content")(),confirm:{text:wpforms_education_lite_connect.enable_ai.confirm,callback:e},theme:"modern, ai-modal"};wpforms_education_lite_connect.update_result.enabled_title=wpforms_education_lite_connect.enable_ai.enabled_title,c.enableModal(e)},enableModal(t){l.alert({title:!1,content:t.content,icon:!1,type:"orange",boxWidth:550,theme:t.theme||"modern",useBootstrap:!1,scrollToPreviousElement:!1,buttons:{confirm:{text:t.confirm.text,btnClass:"btn-confirm",keys:["enter"],action(){var e;"function"==typeof t.confirm.callback&&t.confirm.callback(),"function"==typeof(e=n.WPFormsChallenge?WPFormsChallenge.embed&&WPFormsChallenge.embed.completeChallenge:e)&&e()}},cancel:{text:wpforms_education_lite_connect.enable_modal.cancel,action(){l(".wpforms-challenge-popup-container").removeClass("wpforms-invisible")}}},onOpenBefore(){l("body").addClass("wpforms-setting-lite-connect-modal"),l(".wpforms-challenge-popup-container").addClass("wpforms-invisible")},onDestroy(){l("body").removeClass("wpforms-setting-lite-connect-modal")}})},openSettingsLiteConnectDisableModal(e){l.alert({title:wpforms_education_lite_connect.disable_modal.title,content:wpforms_education_lite_connect.disable_modal.content,icon:"fa fa-exclamation-circle",type:"red",boxWidth:"400px",theme:"modern",useBootstrap:!1,animateFromElement:!1,scrollToPreviousElement:!1,buttons:{cancel:{text:wpforms_education_lite_connect.disable_modal.cancel,keys:["enter"],btnClass:"btn-confirm"},confirm:{text:wpforms_education_lite_connect.disable_modal.confirm,action(){"function"==typeof e&&e()}}}})},saveSettingAjaxPost(t,e,n){let o=(e=e||l()).find("input");l.post(wpforms_education_lite_connect.ajax_url,{action:"wpforms_update_lite_connect_enabled_setting",value:t?1:0,nonce:wpforms_education_lite_connect.nonce}).done(function(e){e.success?(c.updateResultModal(t?"enabled":"disabled"),"function"==typeof n&&n()):(o.prop("checked",!t),c.updateResultModal("error"))}).fail(function(){o.prop("checked",!t),c.updateResultModal("error")}).always(function(){o.prop("disabled",!1)})},autoSaveToggleChange(){l(i).on("change",".wpforms-toggle-control.wpforms-setting-lite-connect-auto-save-toggle input",function(){let e=l(this),t=e.closest(".wpforms-toggle-control"),n=e.is(":checked");c.saveSettingAjaxPost(n,t,function(){c.switchSettingView(n,t),c.removeLiteConnectModalOnAIButtons(),c.finalizeLiteConnectSetup()})})},switchSettingView(e,t){var t=t.closest(".wpforms-education-lite-connect-wrapper"),n=t.find(".wpforms-education-lite-connect-setting"),t=t.find(".wpforms-education-lite-connect-enabled-info");n.toggleClass("wpforms-hidden",e),t.toggleClass("wpforms-hidden",!e)},updateResultModal(e){wpforms_education_lite_connect.update_result[e]&&l.alert({title:wpforms_education_lite_connect.update_result[e+"_title"],content:wpforms_education_lite_connect.update_result[e],icon:"fa fa-check-circle",type:"error"===e?"red":"green",theme:"modern",boxWidth:"400px",useBootstrap:!1,animation:"scale",closeAnimation:"scale",animateFromElement:!1,scrollToPreviousElement:!1,buttons:{confirm:{text:wpforms_education_lite_connect.update_result.close,btnClass:"btn-confirm",keys:["enter"]}}})},maybeRevealBuilderTopBar(){n.wpforms_builder&&"1"!==wpforms_education_lite_connect.is_enabled&&0!==l("#wpforms-builder-lite-connect-top-bar").length&&setTimeout(function(){c.toggleBuilderTopBar(!0)},3e3)},toggleBuilderTopBar(e){var t="--wpforms-admin-bar-height",n=i.documentElement,o=parseInt(getComputedStyle(n).getPropertyValue(t),10);n.setAttribute("style",t+": "+(o+=e?45:-45)+"px!important;")},dismissBuilderTopBarClick(){l(i).on("click","#wpforms-builder-lite-connect-top-bar .wpforms-dismiss-button",function(){c.toggleBuilderTopBar(!1)})}};return c})(document,window,jQuery),WPFormsEducation.liteConnect.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/entry-list.min.js b/wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/entry-list.min.js new file mode 100644 index 0000000..916ca99 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/entry-list.min.js @@ -0,0 +1 @@ +let WPFormsEntryList=window.WPFormsEntryList||(t=>{let e={init(){t(e.ready)},ready(){e.events()},events(){t("#wpforms-entries-explore").on("click",e.showEntries),t("#wpforms-hide-sample-data").on("click",e.hideEntries),t("#wpforms-list-table-ext-edit-columns-cog").on("click",e.toggleActionDropdown),t("#wpcontent").on("click",e.hideActionDropdown)},showEntries(e){e.preventDefault(),t(".entries-modal").fadeOut(500,function(){t("#wpforms-sample-entry-main-notice").slideDown(250),t("#wpforms-entries-list").addClass("wpforms-entires-sample-view")}),wpCookies.set("wpforms_sample_entries","true",2592e3)},hideEntries(e){e.preventDefault(),t("#wpforms-sample-entry-main-notice").fadeOut(250,function(){t("#wpforms-entries-list").removeClass("wpforms-entires-sample-view"),t(".wpforms-sample-entry-notice").removeClass("wpf-no-animate"),t(".entries-modal").fadeIn(500)}),wpCookies.remove("wpforms_sample_entries")},toggleActionDropdown(e){e.preventDefault(),e.stopPropagation(),t(this).parent().toggleClass("is_active")},hideActionDropdown(){var e=t("#wpforms-list-table-ext-edit-columns-cog").parent();e.hasClass("is_active")&&e.removeClass("is_active")}};return e})((document,window,jQuery));WPFormsEntryList.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/view-entry.min.js b/wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/view-entry.min.js new file mode 100644 index 0000000..b17316d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lite/js/admin/entries/view-entry.min.js @@ -0,0 +1 @@ +let WPFormsViewEntry=window.WPFormsViewEntry||(t=>{let n={},e={init(){t(e.ready)},ready(){e.setup(),e.events()},setup(){n={menuClass:".wpforms-entries-settings-menu"}},events(){t("#wpforms-entries-settings-button").on("click",e.menuToggle),t("#wpcontent").on("click",e.menuHide)},menuToggle(e){e.preventDefault(),e.stopPropagation(),t(n.menuClass).toggle(0,function(){var e=t(this);e.attr("aria-expanded",e.is(":visible"))})},menuHide(e){t(e.target).closest(n.menuClass+":visible").length||t(n.menuClass).attr("aria-expanded","false").hide()}};return e})((document,window,jQuery));WPFormsViewEntry.init(); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/elementor/themes.json b/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/elementor/themes.json new file mode 100644 index 0000000..8e24219 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/elementor/themes.json @@ -0,0 +1,452 @@ +{ + "classic": { + "name": "Classic", + "settings": { + "fieldSize": "medium", + "fieldBorderRadius": "0px", + "fieldBorderStyle": "solid", + "fieldBorderSize": "1px", + "fieldBackgroundColor": "#ffffff", + "fieldBorderColor": "#cccccc", + "fieldTextColor": "#444444", + "fieldMenuColor": "#ffffff", + "labelSize": "small", + "labelColor": "#262626", + "labelSublabelColor": "#7f7f7f", + "labelErrorColor": "#ff0000", + "buttonSize": "medium", + "buttonBorderStyle": "solid", + "buttonBorderSize": "1px", + "buttonBorderRadius": "0px", + "buttonBorderColor": "#cccccc", + "buttonBackgroundColor": "#dddddd", + "buttonTextColor": "#666666", + "pageBreakColor": "#dddddd" + } + }, + "default": { + "name": "Default", + "settings": { + "fieldSize": "medium", + "fieldBorderRadius": "3px", + "fieldBorderStyle": "solid", + "fieldBorderSize": "1px", + "fieldBackgroundColor": "#ffffff", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )", + "fieldTextColor": "rgba( 0, 0, 0, 0.7 )", + "fieldMenuColor": "#ffffff", + "labelSize": "medium", + "labelColor": "rgba( 0, 0, 0, 0.85 )", + "labelSublabelColor": "rgba( 0, 0, 0, 0.55 )", + "labelErrorColor": "#d63637", + "buttonSize": "medium", + "buttonBorderStyle": "none", + "buttonBorderSize": "1px", + "buttonBorderRadius": "3px", + "buttonBorderColor": "#066aab", + "buttonBackgroundColor": "#066aab", + "buttonTextColor": "#ffffff", + "pageBreakColor": "#066aab" + } + }, + "cerulean": { + "name": "Cerulean", + "settings": { + "buttonBackgroundColor": "#0090bf", + "buttonTextColor": "#e5f4f9", + "labelColor": "#262c2e", + "labelSublabelColor": "#4c585d", + "fieldBorderColor": "#afb6b9" + } + }, + "ocean": { + "name": "Ocean", + "settings": { + "buttonBackgroundColor": "#348180", + "buttonTextColor": "#ebf2f2", + "labelColor": "#181c1c", + "labelSublabelColor": "#636c6c", + "fieldBorderColor": "#9ea3a3" + } + }, + "fern": { + "name": "Fern", + "settings": { + "buttonBackgroundColor": "#58bb5d", + "buttonTextColor": "#eef8ef", + "labelColor": "#383c39", + "labelSublabelColor": "#707971", + "fieldBorderColor": "#c6cbc6" + } + }, + "lilac": { + "name": "Lilac", + "settings": { + "buttonBackgroundColor": "#9864c0", + "buttonTextColor": "#f5eff9", + "labelColor": "#333135", + "labelSublabelColor": "#807b84", + "fieldBorderColor": "#bfbdc1" + } + }, + "taffy": { + "name": "Taffy", + "settings": { + "buttonBackgroundColor": "#f785c0", + "buttonTextColor": "#fef3f9", + "labelColor": "#484446", + "labelSublabelColor": "#b5aab0", + "fieldBorderColor": "#dad4d7" + } + }, + "tangerine": { + "name": "Tangerine", + "settings": { + "buttonBackgroundColor": "#e27730", + "buttonTextColor": "#fcf1ea", + "labelColor": "#3d3835", + "labelSublabelColor": "#79716b", + "fieldBorderColor": "#cbc6c2" + } + }, + "slate": { + "name": "Slate", + "settings": { + "buttonBackgroundColor": "#67687d", + "buttonTextColor": "#f0f0f2", + "labelColor": "#3a3a41", + "labelSublabelColor": "#686974", + "fieldBorderColor": "#c3c3c7" + } + }, + "iron": { + "name": "Iron", + "settings": { + "buttonBackgroundColor": "#2e2c2f", + "buttonTextColor": "#eaeaea", + "labelColor": "#2e2c2e", + "labelSublabelColor": "#969596", + "fieldBorderColor": "#cbcacb" + } + }, + "aero": { + "name": "Aero", + "settings": { + "buttonBackgroundColor": "#3961FF", + "buttonTextColor": "#FFFFFF", + "labelColor": "#000000", + "labelSublabelColor": "#6A6A6A", + "fieldBorderColor": "#D2D2D2" + } + }, + "blossom": { + "name": "Blossom", + "settings": { + "buttonBackgroundColor": "#d75e42", + "buttonTextColor": "#ffffff", + "labelColor": "#32261b", + "labelSublabelColor": "#634d36", + "fieldBorderColor": "rgba( 51, 26, 0, 0.15 )" + } + }, + "bokeh": { + "name": "Bokeh", + "settings": { + "buttonBackgroundColor": "#272633", + "buttonTextColor": "#FFFFFF", + "labelColor": "#272633", + "labelSublabelColor": "#625E53", + "fieldBorderColor": "#FCF5F3" + } + }, + "concrete": { + "name": "Concrete", + "settings": { + "buttonBackgroundColor": "#f04970", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.50)", + "fieldBorderColor": "rgba(255, 255, 255, 0.25)" + } + }, + "cottoncandy": { + "name": "Cotton Candy", + "settings": { + "buttonBackgroundColor": "#952653", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.75)", + "fieldBorderColor": "rgba(255, 255, 255, 0.5)" + } + }, + "craft": { + "name": "Craft", + "settings": { + "buttonBackgroundColor": "rgba(0 ,0 ,0 ,0)", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "#e0c5c5", + "fieldBorderColor": "rgba(255, 255, 255, 0.50)" + } + }, + "elegance": { + "name": "Elegance", + "settings": { + "buttonBackgroundColor": "#7d7d7d", + "buttonTextColor": "#ffffff", + "labelColor": "#7d7d7d", + "labelSublabelColor": "#7d7d7d", + "fieldBorderColor": "#e6e6e4" + } + }, + "feathered": { + "name": "Feathered", + "settings": { + "buttonBackgroundColor": "#46443a", + "buttonTextColor": "#ffffff", + "labelColor": "#46443a", + "labelSublabelColor": "#625e53", + "fieldBorderColor": "rgba(0, 0, 0, 0.15)" + } + }, + "flynn": { + "name": "Flynn", + "settings": { + "buttonBackgroundColor": "f0f0ff", + "buttonTextColor": "#4b49e0", + "labelColor": "#4b49e0", + "labelSublabelColor": "#4b49e0", + "fieldBorderColor": "#4b49e0" + } + }, + "fresh": { + "name": "Fresh", + "settings": { + "buttonBackgroundColor": "#2da314", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#404040", + "fieldBorderColor": "rgba(0, 0, 0, 0.30)" + } + }, + "frost": { + "name": "Frost", + "settings": { + "buttonBackgroundColor": "#e03f79", + "buttonTextColor": "#ffffff", + "labelColor": "#09598d", + "labelSublabelColor": "#578bad", + "fieldBorderColor": "#6e9fbe" + } + }, + "gloom": { + "name": "Gloom", + "settings": { + "buttonBackgroundColor": "#258c60", + "buttonTextColor": "#ffffff", + "labelColor": "#a9abad", + "labelSublabelColor": "rgba(255, 255, 255, .7)", + "fieldBorderColor": "#4a4b4f" + } + }, + "greenery": { + "name": "Greenery", + "settings": { + "buttonBackgroundColor": "#1e1f19", + "buttonTextColor": "#ffffff", + "labelColor": "#262c1e", + "labelSublabelColor": "rgba(38, 44, 30, 0.5)", + "fieldBorderColor": "rgba(0, 0, 0, 0.10)" + } + }, + "hallway": { + "name": "Hallway", + "settings": { + "buttonBackgroundColor": "#000000", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#000000", + "fieldBorderColor": "#cbcbcb" + } + }, + "harvest": { + "name": "Harvest", + "settings": { + "buttonBackgroundColor": "#984628", + "buttonTextColor": "#ffffff", + "labelColor": "#481f10", + "labelSublabelColor": "#984628", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "jungle": { + "name": "Jungle", + "settings": { + "buttonBackgroundColor": "rgba(14, 143, 28, 0.5)", + "buttonTextColor": "#ffffff", + "labelColor": "rgba(255, 255, 255, 0.7)", + "labelSublabelColor": "rgba(255, 255, 255, 0.6)", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "lush": { + "name": "Lush", + "settings": { + "buttonBackgroundColor": "#962d3c", + "buttonTextColor": "#ffffff", + "labelColor": "#312425", + "labelSublabelColor": "rgba(49, 36, 37, 0.5)", + "fieldBorderColor": "rgba(0, 0, 0, 0.10)" + } + }, + "manhattan": { + "name": "Manhattan", + "settings": { + "buttonBackgroundColor": "rgba(0, 0, 0, 0.32)", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.75)", + "fieldBorderColor": "rgba(255, 255, 255, 0.15)" + } + }, + "matrix": { + "name": "Matrix", + "settings": { + "buttonBackgroundColor": "#8ee8d6", + "buttonTextColor": "#111a12", + "labelColor": "#d8fff7", + "labelSublabelColor": "#d8fff7", + "fieldBorderColor": "#8ee8d6" + } + }, + "monstera": { + "name": "Monstera", + "settings": { + "buttonBackgroundColor": "#2f590f", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#6a6a6a", + "fieldBorderColor": "#a3a9c2" + } + }, + "negative": { + "name": "Negative", + "settings": { + "buttonBackgroundColor": "#ff4d24", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "#999999", + "fieldBorderColor": "#616265" + } + }, + "palm": { + "name": "Palm", + "settings": { + "buttonBackgroundColor": "#000000", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#6a6a6a", + "fieldBorderColor": "#636363" + } + }, + "plaster": { + "name": "Plaster", + "settings": { + "buttonBackgroundColor": "#494848", + "buttonTextColor": "#ffffff", + "labelColor": "#494848", + "labelSublabelColor": "#afafaf", + "fieldBorderColor": "#afafaf" + } + }, + "range": { + "name": "Range", + "settings": { + "buttonBackgroundColor": "#ae0120", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#6a6a6a", + "fieldBorderColor": "rgba(61, 0, 0, 0.15)" + } + }, + "rustic": { + "name": "Rustic", + "settings": { + "buttonBackgroundColor": "rgba(0, 0, 0, 0.5)", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.75)", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "scrap": { + "name": "Scrap", + "settings": { + "buttonBackgroundColor": "#2f3133", + "buttonTextColor": "#ffffff", + "labelColor": "#2f3133", + "labelSublabelColor": "#2f3133", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "solitude": { + "name": "Solitude", + "settings": { + "buttonBackgroundColor": "#0e0f32", + "buttonTextColor": "#ffffff", + "labelColor": "#0e0f32", + "labelSublabelColor": "#64647f", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "sonic": { + "name": "Sonic", + "settings": { + "buttonBackgroundColor": "#073eff", + "buttonTextColor": "#ffffff", + "labelColor": "#666666", + "labelSublabelColor": "#666666", + "fieldBorderColor": "#073eff" + } + }, + "tidal": { + "name": "Tidal", + "settings": { + "buttonBackgroundColor": "#474e54", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "#a7b3be", + "fieldBorderColor": "#474e54" + } + }, + "tranquil": { + "name": "Tranquil", + "settings": { + "buttonBackgroundColor": "#366ce3", + "buttonTextColor": "#ffffff", + "labelColor": "#373d4a", + "labelSublabelColor": "#606775", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "vintage": { + "name": "Vintage", + "settings": { + "buttonBackgroundColor": "#f2cd52", + "buttonTextColor": "#1a1a1a", + "labelColor": "#1a1a1a", + "labelSublabelColor": "#4d4d4d", + "fieldBorderColor": "#bababa" + } + }, + "western": { + "name": "Western", + "settings": { + "buttonBackgroundColor": "rgba(255, 255, 255, 0.05)", + "buttonTextColor": "#e0b495", + "labelColor": "#ffffff", + "labelSublabelColor": "#e0b495", + "fieldBorderColor": "#e0b495" + } + } +} diff --git a/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/formselector.es5.min.js b/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/formselector.es5.min.js new file mode 100644 index 0000000..e6d3137 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/formselector.es5.min.js @@ -0,0 +1 @@ +!function n(o,a,l){function s(r,e){if(!a[r]){if(!o[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(i)return i(r,!0);throw new Error("Cannot find module '"+r+"'")}e=a[r]={exports:{}};o[r][0].call(e.exports,function(e){var t=o[r][1][e];return s(t||e)},e,e.exports,n,o,a,l)}return a[r].exports}for(var i="function"==typeof require&&require,e=0;e{try{if(Object.assign){var e=new String("abc");if(e[5]="de","5"!==Object.getOwnPropertyNames(e)[0]){for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n,o=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"===o.join(""))return n={},"abcdefghijklmnopqrst".split("").forEach(function(e){n[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")?1:void 0}}}catch(e){}})()?Object.assign:function(e,t){for(var r,n=(e=>{if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)})(e),o=1;oe===t?0!==e||1/e==1/t:e!=e&&t!=t)(a,s[l]))return null;e=JSON.stringify(s,function(e,t){return"symbol"===b(t)?String(t):t});return new m("Invalid "+n+" `"+o+"` of value `"+String(a)+"` supplied to `"+r+"`, expected one of "+e+".")});"production"!==g.env.NODE_ENV&&v(1{var t=b(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}})(t)+" at index "+e+"."),o}return r(function(e,t,r,n,o){for(var a=[],l=0;l{if("function"==typeof(e=e&&(l&&e[l]||e[s])))return e})(e);if(!t)return!1;var r,n=t.call(e);if(t!==e.entries){for(;!(r=n.next()).done;)if(!i(r.value))return!1}else for(;!(r=n.next()).done;){var o=r.value;if(o&&!i(o[1]))return!1}}return!0;default:return!1}}function p(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":(e=e,"symbol"===t||e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)?"symbol":t)}function b(e){if(null==e)return""+e;var t=p(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}return m.prototype=Error.prototype,e.checkPropTypes=n,e.resetWarningCache=n.resetWarningCache,e.PropTypes=e}}.call(this,e("hmr7eR"))},{"./checkPropTypes":3,"./lib/ReactPropTypesSecret":7,"./lib/has":8,hmr7eR:1,"object-assign":2,"react-is":11}],6:[function(t,r,e){!function(e){"production"!==e.env.NODE_ENV?(e=t("react-is"),r.exports=t("./factoryWithTypeCheckers")(e.isElement,!0)):r.exports=t("./factoryWithThrowingShims")()}.call(this,t("hmr7eR"))},{"./factoryWithThrowingShims":4,"./factoryWithTypeCheckers":5,hmr7eR:1,"react-is":11}],7:[function(e,t,r){t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}],8:[function(e,t,r){t.exports=Function.call.bind(Object.prototype.hasOwnProperty)},{}],9:[function(e,t,O){!function(e){function t(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:var r=e.type;switch(r){case d:case m:case l:case i:case s:case p:return r;default:var n=r&&r.$$typeof;switch(n){case u:case f:case g:case b:case c:return n;default:return t}}case a:return t}}}function r(e){return t(e)===m}var o,a,l,s,i,c,u,d,m,f,p,n,b,g,y,h,w,v,k,S,C,_,E,P,R,T,B,x,j,I;"production"!==e.env.NODE_ENV&&(e="function"==typeof Symbol&&Symbol.for,o=e?Symbol.for("react.element"):60103,a=e?Symbol.for("react.portal"):60106,l=e?Symbol.for("react.fragment"):60107,s=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,c=e?Symbol.for("react.provider"):60109,u=e?Symbol.for("react.context"):60110,d=e?Symbol.for("react.async_mode"):60111,m=e?Symbol.for("react.concurrent_mode"):60111,f=e?Symbol.for("react.forward_ref"):60112,p=e?Symbol.for("react.suspense"):60113,n=e?Symbol.for("react.suspense_list"):60120,b=e?Symbol.for("react.memo"):60115,g=e?Symbol.for("react.lazy"):60116,y=e?Symbol.for("react.block"):60121,h=e?Symbol.for("react.fundamental"):60117,w=e?Symbol.for("react.responder"):60118,v=e?Symbol.for("react.scope"):60119,e=m,k=u,S=c,C=o,_=f,E=l,P=g,R=b,T=a,B=i,x=s,j=p,I=!1,O.AsyncMode=d,O.ConcurrentMode=e,O.ContextConsumer=k,O.ContextProvider=S,O.Element=C,O.ForwardRef=_,O.Fragment=E,O.Lazy=P,O.Memo=R,O.Portal=T,O.Profiler=B,O.StrictMode=x,O.Suspense=j,O.isAsyncMode=function(e){return I||(I=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),r(e)||t(e)===d},O.isConcurrentMode=r,O.isContextConsumer=function(e){return t(e)===u},O.isContextProvider=function(e){return t(e)===c},O.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},O.isForwardRef=function(e){return t(e)===f},O.isFragment=function(e){return t(e)===l},O.isLazy=function(e){return t(e)===g},O.isMemo=function(e){return t(e)===b},O.isPortal=function(e){return t(e)===a},O.isProfiler=function(e){return t(e)===i},O.isStrictMode=function(e){return t(e)===s},O.isSuspense=function(e){return t(e)===p},O.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===l||e===m||e===i||e===s||e===p||e===n||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===b||e.$$typeof===c||e.$$typeof===u||e.$$typeof===f||e.$$typeof===h||e.$$typeof===w||e.$$typeof===v||e.$$typeof===y)},O.typeOf=t)}.call(this,e("hmr7eR"))},{hmr7eR:1}],10:[function(e,t,r){var n="function"==typeof Symbol&&Symbol.for,o=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,l=n?Symbol.for("react.fragment"):60107,s=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,d=n?Symbol.for("react.async_mode"):60111,m=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,b=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,w=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,k=n?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case d:case m:case l:case i:case s:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case y:case g:case c:return e;default:return t}}case a:return t}}}function C(e){return S(e)===m}r.AsyncMode=d,r.ConcurrentMode=m,r.ContextConsumer=u,r.ContextProvider=c,r.Element=o,r.ForwardRef=f,r.Fragment=l,r.Lazy=y,r.Memo=g,r.Portal=a,r.Profiler=i,r.StrictMode=s,r.Suspense=p,r.isAsyncMode=function(e){return C(e)||S(e)===d},r.isConcurrentMode=C,r.isContextConsumer=function(e){return S(e)===u},r.isContextProvider=function(e){return S(e)===c},r.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},r.isForwardRef=function(e){return S(e)===f},r.isFragment=function(e){return S(e)===l},r.isLazy=function(e){return S(e)===y},r.isMemo=function(e){return S(e)===g},r.isPortal=function(e){return S(e)===a},r.isProfiler=function(e){return S(e)===i},r.isStrictMode=function(e){return S(e)===s},r.isSuspense=function(e){return S(e)===p},r.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===l||e===m||e===i||e===s||e===p||e===b||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===c||e.$$typeof===u||e.$$typeof===f||e.$$typeof===w||e.$$typeof===v||e.$$typeof===k||e.$$typeof===h)},r.typeOf=S},{}],11:[function(t,r,e){!function(e){"production"===e.env.NODE_ENV?r.exports=t("./cjs/react-is.production.min.js"):r.exports=t("./cjs/react-is.development.js")}.call(this,t("hmr7eR"))},{"./cjs/react-is.development.js":9,"./cjs/react-is.production.min.js":10,hmr7eR:1}],12:[function(e,t,r){var n=d(e("../../../js/integrations/gutenberg/modules/education.js")),o=d(e("../../../js/integrations/gutenberg/modules/common.js")),a=d(e("../../../js/integrations/gutenberg/modules/themes-panel.js")),l=d(e("../../../js/integrations/gutenberg/modules/container-styles.js")),s=d(e("../../../js/integrations/gutenberg/modules/background-styles.js")),i=d(e("../../../js/integrations/gutenberg/modules/button-styles.js")),c=d(e("../../../js/integrations/gutenberg/modules/advanced-settings.js")),u=d(e("../../../js/integrations/gutenberg/modules/field-styles.js"));function d(e){return e&&e.__esModule?e:{default:e}}function m(e){return(m="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})(e)}function f(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function p(n){for(var e=1;e(e=((e,t)=>{if("object"!=m(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);if("object"!=m(r=r.call(e,t||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string"),"symbol"==m(e)?e:e+""))(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):f(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))})}return n}var b,e=window.WPForms||{};e.FormSelector=e.FormSelector||(b={common:{},panels:{},init:function(){b.education=n.default,b.common=o.default,b.panels.themes=a.default,b.panels.container=l.default,b.panels.background=s.default,b.panels.button=i.default,b.panels.advanced=c.default,b.panels.field=u.default;var e={panels:b.panels,getThemesPanel:b.panels.themes.getThemesPanel,getFieldStyles:b.panels.field.getFieldStyles,getContainerStyles:b.panels.container.getContainerStyles,getBackgroundStyles:b.panels.background.getBackgroundStyles,getButtonStyles:b.panels.button.getButtonStyles,getCommonAttributes:b.getCommonAttributes,setStylesHandlers:b.getStyleHandlers(),education:b.education};b.panels.advanced.init(b.common),b.common.init(e)},getCommonAttributes:function(){return p(p(p(p({},b.panels.field.getBlockAttributes()),b.panels.container.getBlockAttributes()),b.panels.background.getBlockAttributes()),b.panels.button.getBlockAttributes())},getStyleHandlers:function(){return{"background-image":b.panels.background.setContainerBackgroundImage,"background-position":b.panels.background.setContainerBackgroundPosition,"background-repeat":b.panels.background.setContainerBackgroundRepeat,"background-width":b.panels.background.setContainerBackgroundWidth,"background-height":b.panels.background.setContainerBackgroundHeight,"background-color":b.panels.background.setBackgroundColor,"background-url":b.panels.background.setBackgroundUrl}}}),e.FormSelector.init()},{"../../../js/integrations/gutenberg/modules/advanced-settings.js":13,"../../../js/integrations/gutenberg/modules/background-styles.js":15,"../../../js/integrations/gutenberg/modules/button-styles.js":16,"../../../js/integrations/gutenberg/modules/common.js":17,"../../../js/integrations/gutenberg/modules/container-styles.js":18,"../../../js/integrations/gutenberg/modules/education.js":19,"../../../js/integrations/gutenberg/modules/field-styles.js":20,"../../../js/integrations/gutenberg/modules/themes-panel.js":21}],13:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o,a,l,s,i,c;r.default=(n=jQuery,o=wp.hooks.addFilter,r=wp.compose.createHigherOrderComponent,a=wp.element.Fragment,l=(wp.blockEditor||wp.editor).InspectorAdvancedControls,s=wp.components.TextareaControl,i=wpforms_gutenberg_form_selector.strings,c={init:function(e){c.common=e,c.hooks(),c.events()},hooks:function(){o("editor.BlockEdit","editorskit/custom-advanced-control",c.withAdvancedControls)},events:function(){n(document).on("focus click","textarea",c.copyPasteFocus)},copyPasteFocus:function(){var e=n(this);e.siblings("label").text()===i.copy_paste_settings&&e.select()},getFields:function(e){var t,r;return"wpforms/form-selector"===(null==e?void 0:e.name)&&null!=e&&null!=(t=e.attributes)&&t.formId?(r=c.common.getSettingsFieldsHandlers(e),React.createElement(l,null,React.createElement("div",{className:c.common.getPanelClass(e)+" advanced"},React.createElement(s,{className:"wpforms-gutenberg-form-selector-custom-css",label:i.custom_css,rows:"5",spellCheck:"false",value:e.attributes.customCss,onChange:function(e){return r.attrChange("customCss",e)}}),React.createElement("div",{className:"wpforms-gutenberg-form-selector-legend",dangerouslySetInnerHTML:{__html:i.custom_css_notice}}),React.createElement(s,{className:"wpforms-gutenberg-form-selector-copy-paste-settings",label:i.copy_paste_settings,rows:"4",spellCheck:"false",value:e.attributes.copyPasteJsonValue,onChange:function(e){return r.pasteSettings(e)}}),React.createElement("div",{className:"wpforms-gutenberg-form-selector-legend",dangerouslySetInnerHTML:{__html:i.copy_paste_notice}})))):null},withAdvancedControls:r(function(t){return function(e){return React.createElement(a,null,React.createElement(t,e),c.getFields(e))}},"withAdvancedControls")})},{}],14:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;e=(e=e("prop-types"))&&e.__esModule?e:{default:e};function n(e){var t=e.attributes,r=e.onRemoveBackground,n=e.onPreviewClicked,e=wp.components.Button,o=wpforms_gutenberg_form_selector.strings;return React.createElement("div",{className:"wpforms-gutenberg-form-selector-background-preview"},React.createElement("style",null,"\n\t\t\t\t\t.wpforms-gutenberg-form-selector-background-preview-image {\n\t\t\t\t\t\t--wpforms-background-url: ".concat(t.backgroundUrl,";\n\t\t\t\t\t}\n\t\t\t\t")),React.createElement("input",{className:"wpforms-gutenberg-form-selector-background-preview-image",onClick:n,tabIndex:0,type:"button",onKeyDown:function(e){"Enter"!==e.key&&" "!==e.key||n()}}),React.createElement(e,{isSecondary:!0,className:"is-destructive",onClick:r},o.remove_image))}n.propTypes={attributes:e.default.object.isRequired,onRemoveBackground:e.default.func.isRequired,onPreviewClicked:e.default.func.isRequired},r.default=n},{"prop-types":6}],15:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var m=(e=e("./background-preview.js"))&&e.__esModule?e:{default:e};var f,p,b,g,y,h,w,v,k,n,S;r.default=(f=(wp.blockEditor||wp.editor).PanelColorSettings,p=(e=wp.components).SelectControl,b=e.PanelBody,g=e.Flex,y=e.FlexBlock,h=e.__experimentalUnitControl,w=e.TextControl,v=e.Button,e=wpforms_gutenberg_form_selector,k=e.strings,n=e.defaults,S={getBlockAttributes:function(){return{backgroundImage:{type:"string",default:n.backgroundImage},backgroundPosition:{type:"string",default:n.backgroundPosition},backgroundRepeat:{type:"string",default:n.backgroundRepeat},backgroundSizeMode:{type:"string",default:n.backgroundSizeMode},backgroundSize:{type:"string",default:n.backgroundSize},backgroundWidth:{type:"string",default:n.backgroundWidth},backgroundHeight:{type:"string",default:n.backgroundHeight},backgroundColor:{type:"string",default:n.backgroundColor},backgroundUrl:{type:"string",default:n.backgroundUrl}}},getBackgroundStyles:function(t,r,n,e,o){var a=o.isNotDisabled,l=o.isProEnabled,s=o.showBackgroundPreview,i=o.setShowBackgroundPreview,c=o.lastBgImage,u=o.setLastBgImage,o=a?0:-1,d=n.getPanelClass(t)+(a?"":" wpforms-gutenberg-panel-disabled");return React.createElement(b,{className:d,title:k.background_styles},React.createElement("div",{className:"wpforms-gutenberg-form-selector-panel-body",onClick:function(e){if(!a){if(e.stopPropagation(),!l)return n.education.showProModal("background",k.background_styles);n.education.showLicenseModal("background",k.background_styles,"background-styles")}},onKeyDown:function(e){if(!a){if(e.stopPropagation(),!l)return n.education.showProModal("background",k.background_styles);n.education.showLicenseModal("background",k.background_styles,"background-styles")}}},React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement(p,{label:k.image,tabIndex:o,value:t.attributes.backgroundImage,options:[{label:k.none,value:"none"},{label:k.media_library,value:"library"},{label:k.stock_photo,value:"stock"}],onChange:function(e){return S.setContainerBackgroundImageWrapper(t,r,e,c,u)}})),React.createElement(y,null,("none"!==t.attributes.backgroundImage||!a)&&React.createElement(p,{label:k.position,value:t.attributes.backgroundPosition,tabIndex:o,options:[{label:k.top_left,value:"top left"},{label:k.top_center,value:"top center"},{label:k.top_right,value:"top right"},{label:k.center_left,value:"center left"},{label:k.center_center,value:"center center"},{label:k.center_right,value:"center right"},{label:k.bottom_left,value:"bottom left"},{label:k.bottom_center,value:"bottom center"},{label:k.bottom_right,value:"bottom right"}],disabled:"none"===t.attributes.backgroundImage&&a,onChange:function(e){return r.styleAttrChange("backgroundPosition",e)}}))),("none"!==t.attributes.backgroundImage||!a)&&React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement(p,{label:k.repeat,tabIndex:o,value:t.attributes.backgroundRepeat,options:[{label:k.no_repeat,value:"no-repeat"},{label:k.tile,value:"repeat"},{label:k.repeat_x,value:"repeat-x"},{label:k.repeat_y,value:"repeat-y"}],disabled:"none"===t.attributes.backgroundImage&&a,onChange:function(e){return r.styleAttrChange("backgroundRepeat",e)}})),React.createElement(y,null,React.createElement(p,{label:k.size,tabIndex:o,value:t.attributes.backgroundSizeMode,options:[{label:k.dimensions,value:"dimensions"},{label:k.cover,value:"cover"}],disabled:"none"===t.attributes.backgroundImage&&a,onChange:function(e){return S.handleSizeFromDimensions(t,r,e)}}))),("dimensions"===t.attributes.backgroundSizeMode&&"none"!==t.attributes.backgroundImage||!a)&&React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement(h,{label:k.width,tabIndex:o,value:t.attributes.backgroundWidth,isUnitSelectTabbable:a,onChange:function(e){return S.handleSizeFromWidth(t,r,e)}})),React.createElement(y,null,React.createElement(h,{label:k.height,tabIndex:o,value:t.attributes.backgroundHeight,isUnitSelectTabbable:a,onChange:function(e){return S.handleSizeFromHeight(t,r,e)}}))),(!s||"url()"===t.attributes.backgroundUrl)&&("library"===t.attributes.backgroundImage&&React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement(v,{isSecondary:!0,tabIndex:o,className:"wpforms-gutenberg-form-selector-media-library-button",onClick:S.openMediaLibrary.bind(null,t,r,i)},k.choose_image)))||"stock"===t.attributes.backgroundImage&&React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement(v,{isSecondary:!0,tabIndex:o,className:"wpforms-gutenberg-form-selector-media-library-button",onClick:null==e?void 0:e.openModal.bind(null,t,r,"bg-styles",i)},k.choose_image)))),(s&&"none"!==t.attributes.backgroundImage||"url()"!==t.attributes.backgroundUrl)&&React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement("div",null,React.createElement(m.default,{attributes:t.attributes,onRemoveBackground:function(){S.onRemoveBackground(i,r,u)},onPreviewClicked:function(){return"library"===t.attributes.backgroundImage?S.openMediaLibrary(t,r,i):null==e?void 0:e.openModal(t,r,"bg-styles",i)}})),React.createElement(w,{label:k.image_url,tabIndex:o,value:"none"!==t.attributes.backgroundImage&&t.attributes.backgroundUrl,className:"wpforms-gutenberg-form-selector-image-url",onChange:function(e){return r.styleAttrChange("backgroundUrl",e)},onLoad:function(e){return"none"!==t.attributes.backgroundImage&&r.styleAttrChange("backgroundUrl",e)}}))),React.createElement(g,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(y,null,React.createElement("div",{className:"wpforms-gutenberg-form-selector-control-label"},k.colors),React.createElement(f,{__experimentalIsRenderedInSidebar:!0,enableAlpha:!0,showTitle:!1,tabIndex:o,className:"wpforms-gutenberg-form-selector-color-panel",colorSettings:[{value:t.attributes.backgroundColor,onChange:function(e){a&&r.styleAttrChange("backgroundColor",e)},label:k.background}]})))))},openMediaLibrary:function(r,n,o){var a=wp.media({title:k.select_background_image,multiple:!1,library:{type:"image"},button:{text:k.select_image}});a.on("select",function(){var e=a.state().get("selection").first().toJSON(),t={};e.url&&(e="url(".concat(e.url,")"),t.backgroundUrl=e,r.setAttributes(t),n.styleAttrChange("backgroundUrl",e),o(!0))}),a.open()},setContainerBackgroundImage:function(e,t){return"none"===t&&e.style.setProperty("--wpforms-background-url","url()"),!0},setContainerBackgroundImageWrapper:function(e,t,r,n,o){"none"===r?(o(e.attributes.backgroundUrl),e.attributes.backgroundUrl="url()",t.styleAttrChange("backgroundUrl","url()")):n&&(e.attributes.backgroundUrl=n,t.styleAttrChange("backgroundUrl",n)),t.styleAttrChange("backgroundImage",r)},setContainerBackgroundPosition:function(e,t){return e.style.setProperty("--wpforms-background-position",t),!0},setContainerBackgroundRepeat:function(e,t){return e.style.setProperty("--wpforms-background-repeat",t),!0},handleSizeFromDimensions:function(e,t,r){"cover"===r?(e.attributes.backgroundSize="cover",t.styleAttrChange("backgroundWidth",e.attributes.backgroundWidth),t.styleAttrChange("backgroundHeight",e.attributes.backgroundHeight),t.styleAttrChange("backgroundSizeMode","cover"),t.styleAttrChange("backgroundSize","cover")):(e.attributes.backgroundSize="dimensions",t.styleAttrChange("backgroundSizeMode","dimensions"),t.styleAttrChange("backgroundSize",e.attributes.backgroundWidth+" "+e.attributes.backgroundHeight))},handleSizeFromWidth:function(e,t,r){e.attributes.backgroundSize=r+" "+e.attributes.backgroundHeight,e.attributes.backgroundWidth=r,t.styleAttrChange("backgroundSize",r+" "+e.attributes.backgroundHeight),t.styleAttrChange("backgroundWidth",r)},handleSizeFromHeight:function(e,t,r){e.attributes.backgroundSize=e.attributes.backgroundWidth+" "+r,e.attributes.backgroundHeight=r,t.styleAttrChange("backgroundSize",e.attributes.backgroundWidth+" "+r),t.styleAttrChange("backgroundHeight",r)},setContainerBackgroundWidth:function(e,t){return e.style.setProperty("--wpforms-background-width",t),!0},setContainerBackgroundHeight:function(e,t){return e.style.setProperty("--wpforms-background-height",t),!0},setBackgroundUrl:function(e,t){return e.style.setProperty("--wpforms-background-url",t),!0},setBackgroundColor:function(e,t){return e.style.setProperty("--wpforms-background-color",t),!0},_showBackgroundPreview:function(e){return"none"!==e.attributes.backgroundImage&&e.attributes.backgroundUrl&&"url()"!==e.attributes.backgroundUrl},onRemoveBackground:function(e,t,r){e(!1),t.styleAttrChange("backgroundUrl","url()"),r("")}})},{"./background-preview.js":14}],16:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o,a,l,s,i,c,u,n;r.default=(o=(wp.blockEditor||wp.editor).PanelColorSettings,a=(r=wp.components).SelectControl,l=r.PanelBody,s=r.Flex,i=r.FlexBlock,c=r.__experimentalUnitControl,r=wpforms_gutenberg_form_selector,u=r.strings,n=r.defaults,{getBlockAttributes:function(){return{buttonSize:{type:"string",default:n.buttonSize},buttonBorderStyle:{type:"string",default:n.buttonBorderStyle},buttonBorderSize:{type:"string",default:n.buttonBorderSize},buttonBorderRadius:{type:"string",default:n.buttonBorderRadius},buttonBackgroundColor:{type:"string",default:n.buttonBackgroundColor},buttonTextColor:{type:"string",default:n.buttonTextColor},buttonBorderColor:{type:"string",default:n.buttonBorderColor}}},getButtonStyles:function(e,t,r,n){return React.createElement(l,{className:n.getPanelClass(e),title:u.button_styles},React.createElement(s,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(i,null,React.createElement(a,{label:u.size,value:e.attributes.buttonSize,options:r,onChange:function(e){return t.styleAttrChange("buttonSize",e)}})),React.createElement(i,null,React.createElement(a,{label:u.border,value:e.attributes.buttonBorderStyle,options:[{label:u.none,value:"none"},{label:u.solid,value:"solid"},{label:u.dashed,value:"dashed"},{label:u.dotted,value:"dotted"}],onChange:function(e){return t.styleAttrChange("buttonBorderStyle",e)}}))),React.createElement(s,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(i,null,React.createElement(c,{label:u.border_size,value:"none"===e.attributes.buttonBorderStyle?"":e.attributes.buttonBorderSize,min:0,disabled:"none"===e.attributes.buttonBorderStyle,onChange:function(e){return t.styleAttrChange("buttonBorderSize",e)},isUnitSelectTabbable:!0})),React.createElement(i,null,React.createElement(c,{onChange:function(e){return t.styleAttrChange("buttonBorderRadius",e)},label:u.border_radius,min:0,isUnitSelectTabbable:!0,value:e.attributes.buttonBorderRadius}))),React.createElement("div",{className:"wpforms-gutenberg-form-selector-color-picker"},React.createElement("div",{className:"wpforms-gutenberg-form-selector-control-label"},u.colors),React.createElement(o,{__experimentalIsRenderedInSidebar:!0,enableAlpha:!0,showTitle:!1,className:n.getColorPanelClass(e.attributes.buttonBorderStyle),colorSettings:[{value:e.attributes.buttonBackgroundColor,onChange:function(e){return t.styleAttrChange("buttonBackgroundColor",e)},label:u.background},{value:e.attributes.buttonBorderColor,onChange:function(e){return t.styleAttrChange("buttonBorderColor",e)},label:u.border},{value:e.attributes.buttonTextColor,onChange:function(e){return t.styleAttrChange("buttonTextColor",e)},label:u.text}]}),React.createElement("div",{className:"wpforms-gutenberg-form-selector-legend wpforms-button-color-notice"},u.button_color_notice)))}})},{}],17:[function(M,z,e){function a(e){return(a="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})(e)}function U(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function n(n){for(var e=1;e(e=((e,t)=>{if("object"!=a(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);if("object"!=a(r=r.call(e,t||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string"),"symbol"==a(e)?e:e+""))(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):U(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))})}return n}function d(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((e,t)=>{var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,l,s=[],i=!0,c=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{if(!i&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(c)throw o}}return s}})(e,t)||((e,t)=>{var r;if(e)return"string"==typeof e?D(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(e,t):void 0})(e,t)||(()=>{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 D(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rt||aWPForms
              to build contact forms, surveys, payment forms, and more with just a few clicks.","wpforms-lite"),{b:React.createElement("strong",null)})),React.createElement("button",{type:"button",className:"get-started-button components-button is-primary",onClick:function(){F.openBuilderPopup(t)}},g("Get Started","wpforms-lite")),React.createElement("p",{className:"empty-desc"},r(g("Need some help? Check out our comprehensive guide.","wpforms-lite"),{a:React.createElement("a",{href:wpforms_gutenberg_form_selector.wpforms_guide,target:"_blank",rel:"noopener noreferrer"})})),React.createElement("div",{id:"wpforms-gutenberg-popup",className:"wpforms-builder-popup"},React.createElement("iframe",{src:"about:blank",width:"100%",height:"100%",id:"wpforms-builder-iframe",title:"WPForms Builder Popup"}))))},getBlockPlaceholder:function(e,t,r){var n=e.formId&&!F.isFormAvailable(e.formId);return React.createElement(q,{key:"wpforms-gutenberg-form-selector-wrap",className:"wpforms-gutenberg-form-selector-wrap"},React.createElement("img",{src:wpforms_gutenberg_form_selector.logo_url,alt:""}),n&&React.createElement("p",{style:{textAlign:"center",marginTop:"0"}},w.form_not_available_message),React.createElement(f,{key:"wpforms-gutenberg-form-selector-select-control",value:e.formId,options:r,onChange:function(e){return t.attrChange("formId",e)}}))}},hasPageBreak:function(e,t){var e=e.find(function(e){return parseInt(e.ID,10)===parseInt(t,10)});return!!e.post_content&&(e=null==(e=JSON.parse(e.post_content))?void 0:e.fields,Object.values(e).some(function(e){return"pagebreak"===e.type}))},hasRating:function(e,t){var e=e.find(function(e){return parseInt(e.ID,10)===parseInt(t,10)});return!!(e.post_content&&S&&C)&&(e=null==(e=JSON.parse(e.post_content))?void 0:e.fields,Object.values(e).some(function(e){return"rating"===e.type}))},getPanelClass:function(e){var t=1 div"),r=l.querySelector(e);return r=r?r:null==(t=l.querySelector('iframe[name="editor-canvas"]'))?void 0:t.contentWindow.document.querySelector(e)},getFormBlock:function(e){var t=l.querySelector('iframe[name="editor-canvas"]');return(null==t?void 0:t.contentWindow.document.querySelector("#wpforms-".concat(e)))||c("#wpforms-".concat(e))},updatePreviewCSSVarValue:function(e,t,r,n){if(r&&e){var o=e.replace(/[A-Z]/g,function(e){return"-".concat(e.toLowerCase())});if("function"==typeof O[o])O[o](r,t);else switch(o){case"field-size":case"label-size":case"button-size":case"container-shadow-size":for(var a in v[o][t])r.style.setProperty("--wpforms-".concat(o,"-").concat(a),v[o][t][a]);break;case"field-border-style":"none"===t?F.toggleFieldBorderNoneCSSVarValue(r,!0):(F.toggleFieldBorderNoneCSSVarValue(r,!1),r.style.setProperty("--wpforms-".concat(o),t));break;case"button-background-color":F.maybeUpdateAccentColor(n.attributes.buttonBorderColor,t,r),t=F.maybeSetButtonAltBackgroundColor(t,n.attributes.buttonBorderColor,r),F.maybeSetButtonAltTextColor(n.attributes.buttonTextColor,t,n.attributes.buttonBorderColor,r),r.style.setProperty("--wpforms-".concat(o),t);break;case"button-border-color":F.maybeUpdateAccentColor(t,n.attributes.buttonBackgroundColor,r),F.maybeSetButtonAltTextColor(n.attributes.buttonTextColor,n.attributes.buttonBackgroundColor,t,r),r.style.setProperty("--wpforms-".concat(o),t);break;case"button-text-color":F.maybeSetButtonAltTextColor(t,n.attributes.buttonBackgroundColor,n.attributes.buttonBorderColor,r),r.style.setProperty("--wpforms-".concat(o),t);break;default:r.style.setProperty("--wpforms-".concat(o),t),r.style.setProperty("--wpforms-".concat(o,"-spare"),t)}}},toggleFieldBorderNoneCSSVarValue:function(e,t){e=e.querySelector("form");t?(e.style.setProperty("--wpforms-field-border-style","solid"),e.style.setProperty("--wpforms-field-border-size","1px"),e.style.setProperty("--wpforms-field-border-color","transparent")):(e.style.setProperty("--wpforms-field-border-style",null),e.style.setProperty("--wpforms-field-border-size",null),e.style.setProperty("--wpforms-field-border-color",null))},maybeSetButtonAltBackgroundColor:function(e,t,r){return r.querySelector("form").style.setProperty("--wpforms-button-background-color-alt",e),WPFormsUtils.cssColorsUtils.isTransparentColor(e)?WPFormsUtils.cssColorsUtils.isTransparentColor(t)?E.buttonBackgroundColor:t:e},maybeSetButtonAltTextColor:function(e,t,r,n){var o=n.querySelector("form"),a=null;e=e.toLowerCase(),(WPFormsUtils.cssColorsUtils.isTransparentColor(e)||e===t||WPFormsUtils.cssColorsUtils.isTransparentColor(t)&&e===r)&&(a=WPFormsUtils.cssColorsUtils.getContrastColor(t)),n.style.setProperty("--wpforms-button-text-color-alt",e),o.style.setProperty("--wpforms-button-text-color-alt",a)},maybeUpdateAccentColor:function(e,t,r){var n=r.querySelector("form");e=WPFormsUtils.cssColorsUtils.isTransparentColor(e)?E.buttonBackgroundColor:e,WPFormsUtils.cssColorsUtils.isTransparentColor(t)?(n.style.setProperty("--wpforms-button-background-color-alt","rgba( 0, 0, 0, 0 )"),n.style.setProperty("--wpforms-button-background-color",e)):(r.style.setProperty("--wpforms-button-background-color-alt",t),n.style.setProperty("--wpforms-button-background-color-alt",null),n.style.setProperty("--wpforms-button-background-color",null))},getSettingsFieldsHandlers:function(a){return{styleAttrChange:function(e,t){var r=F.getBlockContainer(a),n=r.querySelector("#wpforms-".concat(a.attributes.formId)),o={};e.includes("Color")&&(t=null!=t?t:"rgba( 0, 0, 0, 0 )"),F.updatePreviewCSSVarValue(e,t,n,a),o[e]=t,F.setBlockRuntimeStateVar(a.clientId,"prevAttributesState",a.attributes),a.setAttributes(o),T=!1,this.updateCopyPasteContent(),F.panels.themes.updateCustomThemeAttribute(e,t,a),this.maybeToggleDropdown(a,e),j.$window.trigger("wpformsFormSelectorStyleAttrChange",[r,a,e,t])},maybeToggleDropdown:function(e,t){var r=this,n=e.attributes.formId,e=l.querySelector("#wpforms-form-".concat(n," .choices__list.choices__list--dropdown")),o=l.querySelector("#wpforms-form-".concat(n," .wpforms-field-select-style-classic select"));"fieldMenuColor"===t?(e?(e.classList.add("is-active"),e.parentElement.classList.add("is-open")):this.showClassicMenu(o),clearTimeout(V),V=setTimeout(function(){var e=l.querySelector("#wpforms-form-".concat(n," .choices__list.choices__list--dropdown"));e?(e.classList.remove("is-active"),e.parentElement.classList.remove("is-open")):r.hideClassicMenu(l.querySelector("#wpforms-form-".concat(n," .wpforms-field-select-style-classic select")))},5e3)):e?e.classList.remove("is-active"):this.hideClassicMenu(o)},showClassicMenu:function(e){e&&(e.size=2,e.style.cssText="padding-top: 40px; padding-inline-end: 0; padding-inline-start: 0; position: relative;",e.querySelectorAll("option").forEach(function(e){e.style.cssText="border-left: 1px solid #8c8f94; border-right: 1px solid #8c8f94; padding: 0 10px; z-index: 999999; position: relative;"}),e.querySelector("option:last-child").style.cssText="border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding: 0 10px; border-left: 1px solid #8c8f94; border-right: 1px solid #8c8f94; border-bottom: 1px solid #8c8f94; z-index: 999999; position: relative;")},hideClassicMenu:function(e){e&&(e.size=0,e.style.cssText="padding-top: 0; padding-inline-end: 24px; padding-inline-start: 12px; position: relative;",e.querySelectorAll("option").forEach(function(e){e.style.cssText="border: none;"}))},attrChange:function(e,t){var r={};r[e]=t,F.setBlockRuntimeStateVar(a.clientId,"prevAttributesState",a.attributes),a.setAttributes(r),T=!0,this.updateCopyPasteContent()},updateCopyPasteContent:function(){var e,t={},r=wp.data.select("core/block-editor").getBlockAttributes(a.clientId);for(e in E)t[e]=r[e];a.setAttributes({copyPasteJsonValue:JSON.stringify(t)})},pasteSettings:function(e){e=e.trim();var t,r=F.parseValidateJson(e);r?(r.copyPasteJsonValue=e,t=F.panels.themes.maybeCreateCustomThemeFromAttributes(r),F.setBlockRuntimeStateVar(a.clientId,"prevAttributesState",a.attributes),a.setAttributes(r),F.panels.themes.setBlockTheme(a,t),T=!1):(e&&wp.data.dispatch("core/notices").createErrorNotice(w.copy_paste_error,{id:"wpforms-json-parse-error"}),this.updateCopyPasteContent())}}},parseValidateJson:function(e){if("string"!=typeof e)return!1;var t;try{t=JSON.parse(e.trim())}catch(e){t=!1}return t},getIcon:function(){return t("svg",{width:20,height:20,viewBox:"0 0 612 612",className:"dashicon"},t("path",{fill:"currentColor",d:"M544,0H68C30.445,0,0,30.445,0,68v476c0,37.556,30.445,68,68,68h476c37.556,0,68-30.444,68-68V68 C612,30.445,581.556,0,544,0z M464.44,68L387.6,120.02L323.34,68H464.44z M288.66,68l-64.26,52.02L147.56,68H288.66z M544,544H68 V68h22.1l136,92.14l79.9-64.6l79.56,64.6l136-92.14H544V544z M114.24,263.16h95.88v-48.28h-95.88V263.16z M114.24,360.4h95.88 v-48.62h-95.88V360.4z M242.76,360.4h255v-48.62h-255V360.4L242.76,360.4z M242.76,263.16h255v-48.28h-255V263.16L242.76,263.16z M368.22,457.3h129.54V408H368.22V457.3z"}))},getWPFormsBlocks:function(){return wp.data.select("core/block-editor").getBlocks().filter(function(e){return"wpforms/form-selector"===e.name})},isClientIdAttrUnique:function(e){var t,r=F.getWPFormsBlocks();for(t in r)if(r[t].clientId!==e.clientId&&r[t].attributes.clientId===e.attributes.clientId)return!1;return!0},getBlockAttributes:function(){return I},getBlockRuntimeStateVar:function(e,t){return null==(e=R[e])?void 0:e[t]},setBlockRuntimeStateVar:function(e,t,r){return!(!e||!t||(R[e]=R[e]||{},"object"!==a(R[e][t]=r)||Array.isArray(r)||null===r||(R[e][t]=n({},r)),0))},getFormOptions:function(){var e=P.map(function(e){return{value:e.ID,label:e.post_title}});return e.unshift({value:"",label:w.form_select}),e},getSizeOptions:function(){return[{label:w.small,value:"small"},{label:w.medium,value:"medium"},{label:w.large,value:"large"}]},blockEdit:function(e,t){t=F.getBlockContainer(t);null!=t&&t.dataset&&F.initLeadFormSettings(t)},initLeadFormSettings:function(e){var t;F.isFullStylingEnabled()&&null!=e&&null!=(t=e.dataset)&&t.block&&(t=e.dataset.block,t=c(".wpforms-block-settings-".concat(t)),F.isLeadFormsEnabled(e)?(t.addClass("disabled_panel").find(".wpforms-gutenberg-panel-notice.wpforms-lead-form-notice").css("display","block"),t.find(".wpforms-gutenberg-panel-notice.wpforms-use-modern-notice").css("display","none")):(t.removeClass("disabled_panel").removeClass("wpforms-lead-forms-enabled").find(".wpforms-gutenberg-panel-notice.wpforms-lead-form-notice").css("display","none"),t.find(".wpforms-gutenberg-panel-notice.wpforms-use-modern-notice").css("display",null)))},formLoaded:function(e){F.initLeadFormSettings(e.detail.block),F.updateAccentColors(e.detail),F.loadChoicesJS(e.detail),F.initRichTextField(e.detail.formId),F.initRepeaterField(e.detail.formId),c(e.detail.block).off("click").on("click",F.blockClick)},blockClick:function(e){F.initLeadFormSettings(e.currentTarget)},updateAccentColors:function(e){var t;wpforms_gutenberg_form_selector.is_modern_markup&&null!=(t=s.WPForms)&&t.FrontendModern&&null!=e&&e.block&&(t=c(e.block.querySelector("#wpforms-".concat(e.formId))),(e=s.WPForms.FrontendModern).updateGBBlockPageIndicatorColor(t),e.updateGBBlockIconChoicesColor(t),e.updateGBBlockRatingColor(t))},loadChoicesJS:function(e){"function"==typeof s.Choices&&c(e.block.querySelector("#wpforms-".concat(e.formId))).find(".choicesjs-select").each(function(e,t){var r=c(t);if("active"!==r.data("choice")){var n=s.wpforms_choicesjs_config||{},o=r.data("search-enabled"),a=r.closest(".wpforms-field");n.searchEnabled=void 0===o||o,n.callbackOnInit=function(){var e=c(this.passedElement.element),t=c(this.input.element),r=e.data("size-class");r&&c(this.containerOuter.element).addClass(r),e.prop("multiple")&&(t.data("placeholder",t.attr("placeholder")),this.getValue(!0).length)&&t.hide(),this.disable(),a.find(".is-disabled").removeClass("is-disabled")};try{t instanceof parent.HTMLSelectElement||Object.setPrototypeOf(t,parent.HTMLSelectElement.prototype),r.data("choicesjs",new parent.Choices(t,n))}catch(e){}}})},initRichTextField:function(e){e=F.getFormBlock(e);e&&c(e).find(".wp-editor-wrap").removeClass("html-active").addClass("tmce-active")},initRepeaterField:function(e){var t=F.getFormBlock(e);t&&(c(t).find(".wpforms-field-repeater > .wpforms-field-repeater-display-rows .wpforms-field-repeater-display-rows-buttons").each(function(){var e,t=c(this),r=t.siblings(".wpforms-layout-column").find(".wpforms-field").find(".wpforms-field-label");r.length&&(r=r.first(),e=(null==(e=s.getComputedStyle(r.get(0)))?void 0:e.getPropertyValue("--wpforms-field-size-input-spacing"))||0,r=(r.outerHeight()||0)+parseInt(e,10)+10,t.css({top:r}))}),c('.wpforms-form[data-formid="'.concat(e,'"]')).each(function(){var e=c(this).find(".wpforms-field-repeater");e.find(".wpforms-field-repeater-display-rows-buttons").addClass("wpforms-init"),e.find(".wpforms-field-repeater-display-rows:last .wpforms-field-description").addClass("wpforms-init")}))},onSetTheme:function(e){N="url()"!==e.attributes.backgroundImage}})},{}],18:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,s,i,c,u,d,m,f,o,a;r.default=(n=jQuery,s=(wp.blockEditor||wp.editor).PanelColorSettings,i=(r=wp.components).SelectControl,c=r.PanelBody,u=r.Flex,d=r.FlexBlock,m=r.__experimentalUnitControl,r=wpforms_gutenberg_form_selector,f=r.strings,o=r.defaults,a={init:function(){n(a.ready)},ready:function(){a.events()},events:function(){},getBlockAttributes:function(){return{containerPadding:{type:"string",default:o.containerPadding},containerBorderStyle:{type:"string",default:o.containerBorderStyle},containerBorderWidth:{type:"string",default:o.containerBorderWidth},containerBorderColor:{type:"string",default:o.containerBorderColor},containerBorderRadius:{type:"string",default:o.containerBorderRadius},containerShadowSize:{type:"string",default:o.containerShadowSize}}},getContainerStyles:function(e,t,r,n){var o=r.getPanelClass(e),a=n.isNotDisabled,l=n.isProEnabled;return a||(o+=" wpforms-gutenberg-panel-disabled"),React.createElement(c,{className:o,title:f.container_styles},React.createElement("div",{className:"wpforms-gutenberg-form-selector-panel-body",onClick:function(e){if(!a){if(e.stopPropagation(),!l)return r.education.showProModal("container",f.container_styles);r.education.showLicenseModal("container",f.container_styles,"container-styles")}},onKeyDown:function(e){if(!a){if(e.stopPropagation(),!l)return r.education.showProModal("container",f.container_styles);r.education.showLicenseModal("container",f.container_styles,"container-styles")}}},React.createElement(u,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(d,null,React.createElement(m,{label:f.padding,tabIndex:a?0:-1,value:e.attributes.containerPadding,min:0,isUnitSelectTabbable:a,onChange:function(e){return t.styleAttrChange("containerPadding",e)}})),React.createElement(d,null,React.createElement(i,{label:f.border_style,tabIndex:a?0:-1,value:e.attributes.containerBorderStyle,options:[{label:f.none,value:"none"},{label:f.solid,value:"solid"},{label:f.dotted,value:"dotted"},{label:f.dashed,value:"dashed"},{label:f.double,value:"double"}],onChange:function(e){return t.styleAttrChange("containerBorderStyle",e)}}))),React.createElement(u,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(d,null,React.createElement(m,{label:f.border_width,tabIndex:a?0:-1,value:"none"===e.attributes.containerBorderStyle?"":e.attributes.containerBorderWidth,min:0,disabled:"none"===e.attributes.containerBorderStyle,isUnitSelectTabbable:a,onChange:function(e){return t.styleAttrChange("containerBorderWidth",e)}})),React.createElement(d,null,React.createElement(m,{label:f.border_radius,tabIndex:a?0:-1,value:e.attributes.containerBorderRadius,min:0,isUnitSelectTabbable:a,onChange:function(e){return t.styleAttrChange("containerBorderRadius",e)}}))),React.createElement(u,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(d,null,React.createElement(i,{label:f.shadow_size,tabIndex:a?0:-1,value:e.attributes.containerShadowSize,options:[{label:f.none,value:"none"},{label:f.small,value:"small"},{label:f.medium,value:"medium"},{label:f.large,value:"large"}],onChange:function(e){return t.styleAttrChange("containerShadowSize",e)}}))),React.createElement(u,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(d,null,React.createElement("div",{className:"wpforms-gutenberg-form-selector-control-label"},f.colors),React.createElement(s,{__experimentalIsRenderedInSidebar:!0,enableAlpha:!0,showTitle:!1,tabIndex:a?0:-1,className:"none"===e.attributes.containerBorderStyle?"wpforms-gutenberg-form-selector-color-panel wpforms-gutenberg-form-selector-color-panel-disabled":"wpforms-gutenberg-form-selector-color-panel",colorSettings:[{value:e.attributes.containerBorderColor,onChange:function(e){a&&t.styleAttrChange("containerBorderColor",e)},label:f.border_color}]})))))}})},{}],19:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a;r.default=(a=jQuery,{showProModal:function(e,t){var r="pro",n=wpforms_education.upgrade.pro.message_plural.replace(/%name%/g,t),o={container:"Upgrade to Pro - Container Styles",background:"Upgrade to Pro - Background Styles",themes:"Upgrade to Pro - Themes"};a.alert({backgroundDismiss:!0,title:t+" "+wpforms_education.upgrade.pro.title_plural,icon:"fa fa-lock",content:n,boxWidth:"550px",theme:"modern,wpforms-education",closeIcon:!0,onOpenBefore:function(){this.$btnc.after('
              '+wpforms_education.upgrade_bonus+"
              "),this.$btnc.after(wpforms_education.upgrade.pro.doc.replace(/%25name%25/g,"AP - "+t)),this.$body.find(".jconfirm-content").addClass("lite-upgrade")},buttons:{confirm:{text:wpforms_education.upgrade.pro.button,btnClass:"btn-confirm",keys:["enter"],action:function(){window.open(WPFormsEducation.core.getUpgradeURL(o[e],r),"_blank"),WPFormsEducation.core.upgradeModalThankYou(r)}}}})},showLicenseModal:function(e,t,r){WPFormsEducation.proCore.licenseModal(e,t,r)}})},{}],20:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o,a,l,s,i,c,u,n;r.default=(o=(wp.blockEditor||wp.editor).PanelColorSettings,a=(r=wp.components).SelectControl,l=r.PanelBody,s=r.Flex,i=r.FlexBlock,c=r.__experimentalUnitControl,r=wpforms_gutenberg_form_selector,u=r.strings,n=r.defaults,{getBlockAttributes:function(){return{fieldSize:{type:"string",default:n.fieldSize},fieldBorderStyle:{type:"string",default:n.fieldBorderStyle},fieldBorderSize:{type:"string",default:n.fieldBorderSize},fieldBorderRadius:{type:"string",default:n.fieldBorderRadius},fieldBackgroundColor:{type:"string",default:n.fieldBackgroundColor},fieldBorderColor:{type:"string",default:n.fieldBorderColor},fieldTextColor:{type:"string",default:n.fieldTextColor},fieldMenuColor:{type:"string",default:n.fieldMenuColor}}},getFieldStyles:function(e,t,r,n){return React.createElement(l,{className:n.getPanelClass(e),title:u.field_styles},React.createElement(s,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(i,null,React.createElement(a,{label:u.size,value:e.attributes.fieldSize,options:r,onChange:function(e){return t.styleAttrChange("fieldSize",e)}})),React.createElement(i,null,React.createElement(a,{label:u.border,value:e.attributes.fieldBorderStyle,options:[{label:u.none,value:"none"},{label:u.solid,value:"solid"},{label:u.dashed,value:"dashed"},{label:u.dotted,value:"dotted"}],onChange:function(e){return t.styleAttrChange("fieldBorderStyle",e)}}))),React.createElement(s,{gap:4,align:"flex-start",className:"wpforms-gutenberg-form-selector-flex",justify:"space-between"},React.createElement(i,null,React.createElement(c,{label:u.border_size,value:"none"===e.attributes.fieldBorderStyle?"":e.attributes.fieldBorderSize,min:0,disabled:"none"===e.attributes.fieldBorderStyle,onChange:function(e){return t.styleAttrChange("fieldBorderSize",e)},isUnitSelectTabbable:!0})),React.createElement(i,null,React.createElement(c,{label:u.border_radius,value:e.attributes.fieldBorderRadius,min:0,isUnitSelectTabbable:!0,onChange:function(e){return t.styleAttrChange("fieldBorderRadius",e)}}))),React.createElement("div",{className:"wpforms-gutenberg-form-selector-color-picker"},React.createElement("div",{className:"wpforms-gutenberg-form-selector-control-label"},u.colors),React.createElement(o,{__experimentalIsRenderedInSidebar:!0,enableAlpha:!0,showTitle:!1,className:n.getColorPanelClass(e.attributes.fieldBorderStyle),colorSettings:[{value:e.attributes.fieldBackgroundColor,onChange:function(e){return t.styleAttrChange("fieldBackgroundColor",e)},label:u.background},{value:e.attributes.fieldBorderColor,onChange:function(e){return t.styleAttrChange("fieldBorderColor",e)},label:u.border},{value:e.attributes.fieldTextColor,onChange:function(e){return t.styleAttrChange("fieldTextColor",e)},label:u.text},{value:e.attributes.fieldMenuColor,onChange:function(e){return t.styleAttrChange("fieldMenuColor",e)},label:u.menu}]})))}})},{}],21:[function(e,t,r){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})(e)}function o(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function u(t){for(var e=1;e(e=((e,t)=>{if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);if("object"!=n(r=r.call(e,t||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string"),"symbol"==n(e)?e:e+""))(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var l,s,i,c,d,m,f,p,b,g,y,h,w,v,k,S,C,E,P;r.default=(document,l=window,s=jQuery,r=wp.components,i=r.PanelBody,c=r.ColorIndicator,d=r.TextControl,m=r.Button,f=(r=wp.components).__experimentalRadio,p=r.__experimentalRadioGroup,r=wpforms_gutenberg_form_selector,b=r.isAdmin,g=r.isPro,y=r.isLicenseActive,h=r.strings,w=r.route_namespace,k={},S={wpforms:v=null,custom:null},C=null,E={},(P={init:function(){E.$window=s(l),P.fetchThemesData(),s(P.ready)},ready:function(){P.events()},events:function(){wp.data.subscribe(function(){var e,t,r,n,o;b&&(t=null==(t=wp.data.select("core/editor"))?void 0:t.isSavingPost(),r=null==(r=wp.data.select("core/editor"))?void 0:r.isAutosavingPost(),n=null==(n=wp.data.select("core/edit-widgets"))?void 0:n.isSavingWidgetAreas(),o=(null==(o=null==(o=wp.data.select("core/editor"))?void 0:o.getCurrentPost())||null==(e=o.type)?void 0:e.includes("wp_template"))||(null==o||null==(e=o.type)?void 0:e.includes("wp_block")),t||n||o)&&!r&&(o?_.debounce(P.saveCustomThemes,500)():P.saveCustomThemes())})},getAllThemes:function(){return u(u({},S.custom||{}),S.wpforms||{})},getTheme:function(e){return P.getAllThemes()[e]||null},getEnabledThemes:function(){if(!C){var n=P.getAllThemes();if(g&&y)return n;C=Object.keys(n).reduce(function(e,t){var r;return null!=(r=n[t].settings)&&r.fieldSize&&!n[t].disabled&&(e[t]=n[t]),e},{})}return C},updateEnabledThemes:function(e,t){C=C&&u(u({},C),{},a({},e,t))},isDisabledTheme:function(e){var t;return!(null!=(t=P.getEnabledThemes())&&t[e])},isWPFormsTheme:function(e){return Boolean(null==(e=S.wpforms[e])?void 0:e.settings)},fetchThemesData:function(){if(!k.isFetchingThemes&&!S.wpforms){k.isFetchingThemes=!0;try{wp.apiFetch({path:w+"themes/",method:"GET",cache:"no-cache"}).then(function(e){S.wpforms=e.wpforms||{},S.custom=e.custom||{}}).catch(function(e){console.error(null==e?void 0:e.message)}).finally(function(){k.isFetchingThemes=!1})}catch(e){console.error(e)}}},saveCustomThemes:function(){if(!k.isSavingThemes&&S.custom){k.isSavingThemes=!0;try{wp.apiFetch({path:w+"themes/custom/",method:"POST",data:{customThemes:S.custom}}).then(function(e){null!=e&&e.result||console.log(null==e?void 0:e.error)}).catch(function(e){console.error(null==e?void 0:e.message)}).finally(function(){k.isSavingThemes=!1})}catch(e){console.error(e)}}},getCurrentStyleAttributes:function(e){var t,r,n=Object.keys(null==(t=S.wpforms.default)?void 0:t.settings),o={};for(r in n){var a=n[r];o[a]=null!=(a=e.attributes[a])?a:""}return o},maybeCreateCustomTheme:function(e){var t,r=P.getCurrentStyleAttributes(e),n=!!S.wpforms[e.attributes.theme],o=!!S.custom[e.attributes.theme],a=!1;return!(n&&JSON.stringify(null==(t=S.wpforms[e.attributes.theme])?void 0:t.settings)===JSON.stringify(r)||(t=v.getBlockRuntimeStateVar(e.clientId,"prevAttributesState"),"default"!==e.attributes.theme||""!==e.attributes.themeName||t||(a=!0),!n&&o&&!a||P.createCustomTheme(e,r,a),0))},createCustomTheme:function(e){var t=1".concat(e.attributes.themeName,"
              ")),n='

              '.concat(n," ").concat(h.theme_delete_cant_undone,"

              ");s.confirm({title:h.theme_delete_title,content:n,icon:"wpforms-exclamation-circle",type:"red",buttons:{confirm:{text:h.theme_delete_yes,btnClass:"btn-confirm",keys:["enter"],action:function(){r.selectTheme("default"),E.$window.trigger("wpformsFormSelectorDeleteTheme",[t,e])}},cancel:{text:h.cancel,keys:["esc"]}}})},isMac:function(){return navigator.userAgent.includes("Macintosh")}}).init(),P)},{}]},{},[12]); \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/themes.json b/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/themes.json new file mode 100644 index 0000000..8e24219 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/lite/js/integrations/gutenberg/themes.json @@ -0,0 +1,452 @@ +{ + "classic": { + "name": "Classic", + "settings": { + "fieldSize": "medium", + "fieldBorderRadius": "0px", + "fieldBorderStyle": "solid", + "fieldBorderSize": "1px", + "fieldBackgroundColor": "#ffffff", + "fieldBorderColor": "#cccccc", + "fieldTextColor": "#444444", + "fieldMenuColor": "#ffffff", + "labelSize": "small", + "labelColor": "#262626", + "labelSublabelColor": "#7f7f7f", + "labelErrorColor": "#ff0000", + "buttonSize": "medium", + "buttonBorderStyle": "solid", + "buttonBorderSize": "1px", + "buttonBorderRadius": "0px", + "buttonBorderColor": "#cccccc", + "buttonBackgroundColor": "#dddddd", + "buttonTextColor": "#666666", + "pageBreakColor": "#dddddd" + } + }, + "default": { + "name": "Default", + "settings": { + "fieldSize": "medium", + "fieldBorderRadius": "3px", + "fieldBorderStyle": "solid", + "fieldBorderSize": "1px", + "fieldBackgroundColor": "#ffffff", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )", + "fieldTextColor": "rgba( 0, 0, 0, 0.7 )", + "fieldMenuColor": "#ffffff", + "labelSize": "medium", + "labelColor": "rgba( 0, 0, 0, 0.85 )", + "labelSublabelColor": "rgba( 0, 0, 0, 0.55 )", + "labelErrorColor": "#d63637", + "buttonSize": "medium", + "buttonBorderStyle": "none", + "buttonBorderSize": "1px", + "buttonBorderRadius": "3px", + "buttonBorderColor": "#066aab", + "buttonBackgroundColor": "#066aab", + "buttonTextColor": "#ffffff", + "pageBreakColor": "#066aab" + } + }, + "cerulean": { + "name": "Cerulean", + "settings": { + "buttonBackgroundColor": "#0090bf", + "buttonTextColor": "#e5f4f9", + "labelColor": "#262c2e", + "labelSublabelColor": "#4c585d", + "fieldBorderColor": "#afb6b9" + } + }, + "ocean": { + "name": "Ocean", + "settings": { + "buttonBackgroundColor": "#348180", + "buttonTextColor": "#ebf2f2", + "labelColor": "#181c1c", + "labelSublabelColor": "#636c6c", + "fieldBorderColor": "#9ea3a3" + } + }, + "fern": { + "name": "Fern", + "settings": { + "buttonBackgroundColor": "#58bb5d", + "buttonTextColor": "#eef8ef", + "labelColor": "#383c39", + "labelSublabelColor": "#707971", + "fieldBorderColor": "#c6cbc6" + } + }, + "lilac": { + "name": "Lilac", + "settings": { + "buttonBackgroundColor": "#9864c0", + "buttonTextColor": "#f5eff9", + "labelColor": "#333135", + "labelSublabelColor": "#807b84", + "fieldBorderColor": "#bfbdc1" + } + }, + "taffy": { + "name": "Taffy", + "settings": { + "buttonBackgroundColor": "#f785c0", + "buttonTextColor": "#fef3f9", + "labelColor": "#484446", + "labelSublabelColor": "#b5aab0", + "fieldBorderColor": "#dad4d7" + } + }, + "tangerine": { + "name": "Tangerine", + "settings": { + "buttonBackgroundColor": "#e27730", + "buttonTextColor": "#fcf1ea", + "labelColor": "#3d3835", + "labelSublabelColor": "#79716b", + "fieldBorderColor": "#cbc6c2" + } + }, + "slate": { + "name": "Slate", + "settings": { + "buttonBackgroundColor": "#67687d", + "buttonTextColor": "#f0f0f2", + "labelColor": "#3a3a41", + "labelSublabelColor": "#686974", + "fieldBorderColor": "#c3c3c7" + } + }, + "iron": { + "name": "Iron", + "settings": { + "buttonBackgroundColor": "#2e2c2f", + "buttonTextColor": "#eaeaea", + "labelColor": "#2e2c2e", + "labelSublabelColor": "#969596", + "fieldBorderColor": "#cbcacb" + } + }, + "aero": { + "name": "Aero", + "settings": { + "buttonBackgroundColor": "#3961FF", + "buttonTextColor": "#FFFFFF", + "labelColor": "#000000", + "labelSublabelColor": "#6A6A6A", + "fieldBorderColor": "#D2D2D2" + } + }, + "blossom": { + "name": "Blossom", + "settings": { + "buttonBackgroundColor": "#d75e42", + "buttonTextColor": "#ffffff", + "labelColor": "#32261b", + "labelSublabelColor": "#634d36", + "fieldBorderColor": "rgba( 51, 26, 0, 0.15 )" + } + }, + "bokeh": { + "name": "Bokeh", + "settings": { + "buttonBackgroundColor": "#272633", + "buttonTextColor": "#FFFFFF", + "labelColor": "#272633", + "labelSublabelColor": "#625E53", + "fieldBorderColor": "#FCF5F3" + } + }, + "concrete": { + "name": "Concrete", + "settings": { + "buttonBackgroundColor": "#f04970", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.50)", + "fieldBorderColor": "rgba(255, 255, 255, 0.25)" + } + }, + "cottoncandy": { + "name": "Cotton Candy", + "settings": { + "buttonBackgroundColor": "#952653", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.75)", + "fieldBorderColor": "rgba(255, 255, 255, 0.5)" + } + }, + "craft": { + "name": "Craft", + "settings": { + "buttonBackgroundColor": "rgba(0 ,0 ,0 ,0)", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "#e0c5c5", + "fieldBorderColor": "rgba(255, 255, 255, 0.50)" + } + }, + "elegance": { + "name": "Elegance", + "settings": { + "buttonBackgroundColor": "#7d7d7d", + "buttonTextColor": "#ffffff", + "labelColor": "#7d7d7d", + "labelSublabelColor": "#7d7d7d", + "fieldBorderColor": "#e6e6e4" + } + }, + "feathered": { + "name": "Feathered", + "settings": { + "buttonBackgroundColor": "#46443a", + "buttonTextColor": "#ffffff", + "labelColor": "#46443a", + "labelSublabelColor": "#625e53", + "fieldBorderColor": "rgba(0, 0, 0, 0.15)" + } + }, + "flynn": { + "name": "Flynn", + "settings": { + "buttonBackgroundColor": "f0f0ff", + "buttonTextColor": "#4b49e0", + "labelColor": "#4b49e0", + "labelSublabelColor": "#4b49e0", + "fieldBorderColor": "#4b49e0" + } + }, + "fresh": { + "name": "Fresh", + "settings": { + "buttonBackgroundColor": "#2da314", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#404040", + "fieldBorderColor": "rgba(0, 0, 0, 0.30)" + } + }, + "frost": { + "name": "Frost", + "settings": { + "buttonBackgroundColor": "#e03f79", + "buttonTextColor": "#ffffff", + "labelColor": "#09598d", + "labelSublabelColor": "#578bad", + "fieldBorderColor": "#6e9fbe" + } + }, + "gloom": { + "name": "Gloom", + "settings": { + "buttonBackgroundColor": "#258c60", + "buttonTextColor": "#ffffff", + "labelColor": "#a9abad", + "labelSublabelColor": "rgba(255, 255, 255, .7)", + "fieldBorderColor": "#4a4b4f" + } + }, + "greenery": { + "name": "Greenery", + "settings": { + "buttonBackgroundColor": "#1e1f19", + "buttonTextColor": "#ffffff", + "labelColor": "#262c1e", + "labelSublabelColor": "rgba(38, 44, 30, 0.5)", + "fieldBorderColor": "rgba(0, 0, 0, 0.10)" + } + }, + "hallway": { + "name": "Hallway", + "settings": { + "buttonBackgroundColor": "#000000", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#000000", + "fieldBorderColor": "#cbcbcb" + } + }, + "harvest": { + "name": "Harvest", + "settings": { + "buttonBackgroundColor": "#984628", + "buttonTextColor": "#ffffff", + "labelColor": "#481f10", + "labelSublabelColor": "#984628", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "jungle": { + "name": "Jungle", + "settings": { + "buttonBackgroundColor": "rgba(14, 143, 28, 0.5)", + "buttonTextColor": "#ffffff", + "labelColor": "rgba(255, 255, 255, 0.7)", + "labelSublabelColor": "rgba(255, 255, 255, 0.6)", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "lush": { + "name": "Lush", + "settings": { + "buttonBackgroundColor": "#962d3c", + "buttonTextColor": "#ffffff", + "labelColor": "#312425", + "labelSublabelColor": "rgba(49, 36, 37, 0.5)", + "fieldBorderColor": "rgba(0, 0, 0, 0.10)" + } + }, + "manhattan": { + "name": "Manhattan", + "settings": { + "buttonBackgroundColor": "rgba(0, 0, 0, 0.32)", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.75)", + "fieldBorderColor": "rgba(255, 255, 255, 0.15)" + } + }, + "matrix": { + "name": "Matrix", + "settings": { + "buttonBackgroundColor": "#8ee8d6", + "buttonTextColor": "#111a12", + "labelColor": "#d8fff7", + "labelSublabelColor": "#d8fff7", + "fieldBorderColor": "#8ee8d6" + } + }, + "monstera": { + "name": "Monstera", + "settings": { + "buttonBackgroundColor": "#2f590f", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#6a6a6a", + "fieldBorderColor": "#a3a9c2" + } + }, + "negative": { + "name": "Negative", + "settings": { + "buttonBackgroundColor": "#ff4d24", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "#999999", + "fieldBorderColor": "#616265" + } + }, + "palm": { + "name": "Palm", + "settings": { + "buttonBackgroundColor": "#000000", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#6a6a6a", + "fieldBorderColor": "#636363" + } + }, + "plaster": { + "name": "Plaster", + "settings": { + "buttonBackgroundColor": "#494848", + "buttonTextColor": "#ffffff", + "labelColor": "#494848", + "labelSublabelColor": "#afafaf", + "fieldBorderColor": "#afafaf" + } + }, + "range": { + "name": "Range", + "settings": { + "buttonBackgroundColor": "#ae0120", + "buttonTextColor": "#ffffff", + "labelColor": "#000000", + "labelSublabelColor": "#6a6a6a", + "fieldBorderColor": "rgba(61, 0, 0, 0.15)" + } + }, + "rustic": { + "name": "Rustic", + "settings": { + "buttonBackgroundColor": "rgba(0, 0, 0, 0.5)", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "rgba(255, 255, 255, 0.75)", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "scrap": { + "name": "Scrap", + "settings": { + "buttonBackgroundColor": "#2f3133", + "buttonTextColor": "#ffffff", + "labelColor": "#2f3133", + "labelSublabelColor": "#2f3133", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "solitude": { + "name": "Solitude", + "settings": { + "buttonBackgroundColor": "#0e0f32", + "buttonTextColor": "#ffffff", + "labelColor": "#0e0f32", + "labelSublabelColor": "#64647f", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "sonic": { + "name": "Sonic", + "settings": { + "buttonBackgroundColor": "#073eff", + "buttonTextColor": "#ffffff", + "labelColor": "#666666", + "labelSublabelColor": "#666666", + "fieldBorderColor": "#073eff" + } + }, + "tidal": { + "name": "Tidal", + "settings": { + "buttonBackgroundColor": "#474e54", + "buttonTextColor": "#ffffff", + "labelColor": "#ffffff", + "labelSublabelColor": "#a7b3be", + "fieldBorderColor": "#474e54" + } + }, + "tranquil": { + "name": "Tranquil", + "settings": { + "buttonBackgroundColor": "#366ce3", + "buttonTextColor": "#ffffff", + "labelColor": "#373d4a", + "labelSublabelColor": "#606775", + "fieldBorderColor": "rgba( 0, 0, 0, 0.25 )" + } + }, + "vintage": { + "name": "Vintage", + "settings": { + "buttonBackgroundColor": "#f2cd52", + "buttonTextColor": "#1a1a1a", + "labelColor": "#1a1a1a", + "labelSublabelColor": "#4d4d4d", + "fieldBorderColor": "#bababa" + } + }, + "western": { + "name": "Western", + "settings": { + "buttonBackgroundColor": "rgba(255, 255, 255, 0.05)", + "buttonTextColor": "#e0b495", + "labelColor": "#ffffff", + "labelSublabelColor": "#e0b495", + "fieldBorderColor": "#e0b495" + } + } +} diff --git a/wp-content/plugins/wpforms-lite/changelog.txt b/wp-content/plugins/wpforms-lite/changelog.txt new file mode 100644 index 0000000..81454eb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/changelog.txt @@ -0,0 +1,1998 @@ +== Changelog == + += 1.9.9.2 = +- Added: WordPress Abilities API integration for AI and automation-ready access to WPForms. +- Added: Ability to generate Quiz-enabled forms using the AI Form generator. +- Added: Support for multiple fields selection: you can now drag, duplicate, or delete multiple fields at once. +- Added: Keyboard shortcuts for field duplication (D), field removal (Delete), copy (Ctrl/Cmd + C), and paste (Ctrl/Cmd + V). +- Added: Undo/redo command manager with modular integrations for Form Builder inputs. +- Added: Divi 5 compatibility and a new block for the Divi page builder. +- Changed: Put the plugin on a diet – performed a cleanup, reducing plugin size. +- Changed: Improved compatibility with the MotoPress Content Editor plugin. +- Changed: Updated Chart.js library to v4.5.1. +- Fixed: Selected form type was not retained when refreshing the Forms Overview page. +- Fixed: Deprecation error with PHP 8.4 that occurred during WPForms installation. +- Fixed: Form creation via Form AI for users without manage_options capability. +- Fixed: Deprecation warning being logged in the browser console on the Dashboard admin page. +- Fixed: Fixed PHP 8.4 deprecated error in Stripe integration related to nullable parameter type declaration. +- Fixed: From Email/Name fields appeared blank for new notifications when WP Mail SMTP force settings were enabled. +- Fixed: The collapsible block height in the builder to be consistent with other fields. +- Fixed: Disabled field option toggle remained interactive. + += 1.9.8.7 = +- Fixed: A fatal error occurred on the admin dashboard with some third-party plugins. +- Fixed: Prevented loading of Divi assets on pages not containing a form. +- Fixed: Compatibility with the LeadConnector plugin. +- Fixed: Integration icons were misaligned on the Form Builder page. + += 1.9.8.4 = +- Added: Ability to hide choice images notifications. +- Added: Ability to set a user-defined choice for the Multiple Choice field. +- Changed: Updated DOMPurify library to 3.2.7. +- Changed: Updated Font Awesome library to 7.0.1. +- Changed: Validation of Custom Meta Keys on the Form Builder > Payments > Stripe screen. +- Fixed: Form Builder preview container height in empty state. +- Fixed: A conflict occurred when a non-Google captcha was used in the form and the Google reCAPTCHA API was loaded on the same page. +- Fixed: A fatal error in `wpforms_is_admin_page()` that occurred when the page request parameter was passed as an array instead of a string. +- Fixed: Console error when installing WPForms via a Block in the Block Editor. + += 1.9.8.2 = +- Fixed: Form Builder preview container height with empty state. + += 1.9.8.1 = +- Added: Ability to disconnect Stripe accounts through the Settings > Payments admin page. +- Added: Ability to set how many times a Stripe recurring payment will be repeated. +- Added: Back To Previous Page option for Confirmation Page Redirect. +- Changed: Improved accessibility for the Modern Dropdown field by adding ARIA attributes to support VoiceOver navigation. +- Changed: Notification email fields in the Form Builder now only display email-compatible Smart Tags. +- Fixed: PHP warnings might be generated for new forms created from a template by non-admin users. +- Fixed: Disabled fields (read-only) didn't look disabled. +- Fixed: Smart Tag fields in the sidebar had incorrect height. +- Fixed: The last step of the WPForms Challenge wasn't shown up for users in some cases. +- Fixed: Header Menu Links position has been adjusted to be on the same level on every screen. +- Fixed: Duplicated Square field button existed in the Form Builder. +- Fixed: Form authors with no capabilities to install addons did not get information about missing privileges. +- Fixed: HTMLPurifier threw a deprecated API call notice. +- Fixed: Users with no sufficient access permissions were able to display a broken Themes settings panel. +- Fixed: Custom CSS with quotes in selectors now displays correctly instead of showing broken HTML entities. +- Fixed: Pinned AI Chat layout in the Form Builder. +- Fixed: Log titles having apostrophes in them were not displayed correctly in the Log Viewer. +- Fixed: There might be errors when processing Stripe payments with customer metadata containing empty keys. + += 1.9.7.2 = +- Fixed: JS errors might affect the form submission on some environments with installed plugins for caching. + += 1.9.7.1 = +- Added: Ability to apply Styles and Themes directly within the WPForms Form Builder. +- Added: Ability to copy whole Smart Tags input content if it contains smart tags. +- Added: Number field validation messages control on the Settings > Validation page. +- Added: The Choices Limit option for the Payment Checkbox Items field. +- Added: Warning message in case corrupted form data is detected in the form builder. +- Changed: Optimized the calculation process of the total amount on payment forms. +- Changed: Improved compatibility with PHP 8.4. +- Changed: Improved error message in case 403 error occurred while saving a form. +- Changed: Improved compatibility with the Paid Memberships Pro plugin. +- Fixed: The spacing between the template badge and the form name was too small. +- Fixed: Square Credit Card field error was still displayed after entering valid details. +- Fixed: Various RTL problems on the form builder screen. + += 1.9.6.2 = +- Fixed: "Please enable JavaScript" message was displayed over a form even when JavaScript was enabled. + += 1.9.6.1 = +- Added: Smart Tags support in the Default Value setting for Name field subfields. +- Fixed: WPForms updates did not work consistently with the WP Umbrella plugin. +- Fixed: The layout of the Order Summary table was broken on Windows operating systems. +- Fixed: The layout of the Stripe custom fields mapping table was broken in the form builder. + += 1.9.6 = +- Added: Form Themes for Elementor. +- Added: Customer phone, Payment, and Customer metadata can now be configured on the Form Builder > Payments > Stripe screen. +- Changed: Improved styles on Tools > Scheduled Actions page with reset search filter. +- Changed: Improved Form Builder loading. +- Changed: Required select fields have default placeholder text to prevent the submission of default values. +- Changed: Improved message about missing PHP extensions. +- Changed: Updated DOMPurify library to 3.2.6. +- Fixed: Captcha verification was skipped for payment forms. +- Fixed: Email notification was malformed when a form had a Total field with the "Order Summary" enabled. +- Fixed: The marketing provider's name was not specified in the warning popup when a field with conditional logic was removed. +- Fixed: An error occurred when installing a plugin through the Gutenberg block. +- Fixed: Addon fields were not rendered on the front-end on multisite if addons were not activated site-wide. +- Fixed: Missing popup about unsaved changes when closing the form from the Marketing tab. +- Fixed: Compatibility with Elementor editor. +- Fixed: The "Plugin is in the Latest Version" error occurred when updating several addons using bulk update on the Plugins page. +- Fixed: There was no popup about unsaved changes displayed after typing into the MCE editor. +- Fixed: Layout issues of the Square credit card field. +- Fixed: JavaScript error occurred when a form was added in the Elementor popup. +- Fixed: Fields were added to the form in the wrong order under some conditions. + += 1.9.5.2 = +- Fixed: Issue sending form notifications using email fields that had ID=0. + += 1.9.5.1 = +- Fixed: AJAX request for Stripe payments was sent twice, which might lead to missed entries and payment records. +- Fixed: `{field_id="#"}` smart tag didn't work for CC field in email notifications. +- Fixed: Email notification was misformatted when the form had a Total field with the "Order Summary" enabled. + += 1.9.5 = +- IMPORTANT: Support for PHP 7.1 has been discontinued. If you are running PHP 7.1, you MUST upgrade PHP before installing WPForms 1.9.5. Failure to do that will disable WPForms core functionality. +- Added: Users can connect their Square accounts and receive payments via their payment forms. +- Added: New design for Smart Tags. +- Added: The ability to activate and deactivate email notifications through a status button in the form builder. +- Changed: Enhancing the prevention of duplicate form submissions. +- Changed: Improved the error messaging when creating new provider connections in the form builder. +- Changed: Improved the "From Email" setting validation in the Notifications screen. +- Changed: AI Chat Modal can be docked to the right of the builder. +- Changed: The order of the admin bar menu items. +- Changed: Improved compatibility with PHP 8.1. +- Changed: Improved UX for Dropdown and Dropdown Items fields. +- Fixed: Hidden by conditional logic items in the Order Summary table were shown in the Editors. +- Fixed: Stripe settings were active when the credit card field was removed from the form. +- Fixed: The notice for the minimum and maximum valid values of the Number Slider field is now correct. +- Fixed: WPForms Challenge RTL issues. +- Fixed: Incorrect wpforms_htaccess_file transient name generation. +- Fixed: Console error when users tried to embed a form into an existing page on the last step of the WPForms Challenge. +- Fixed: The submit button stays disabled after Stripe payment fails in some cases. +- Fixed: The Dropdown and Dropdown Items fields displayed placeholders instead of default values in the Form Builder. +- Fixed: Wrong paddings in the Form Builder sidebar on Windows in the RTL mode. +- Fixed: Improved the From Email notification setting. The Email field is detected now by a smart tag. +- Fixed: Improved notification template for the {entry_geolocation} smart tag. + += 1.9.4.2 = +- Fixed: Fatal error when trying to delete the plugin. +- Fixed: Character encoding issues in Email notifications when viewed on some Apple devices. + += 1.9.4.1 = +- Added: Minimum and maximum value validation for the Numbers field. +- Added: Implemented password protection and user access restrictions for uploaded files. +- Added: Automatic preview page reload was added after saving. +- Changed: Improved Gutenberg block UI by hiding settings when no form is selected. +- Changed: Updated stripe/stripe-php library to 16.5.0. +- Changed: Enhanced Tools > Scheduled Actions visibility for better compatibility with Action Scheduler, WooCommerce, and WP Rocket plugins. +- Changed: Improved Stripe payments customer address handling. +- Changed: Optimized number slider calculations for better decimal precision. +- Changed: Improved Numbers and Number Slider fields settings interface in the form builder. +- Fixed: Stripe Credit Card field payment element console warnings. +- Fixed: Resolved form submission debug log warnings. +- Fixed: URL referer smart tag functionality for external websites. +- Fixed: Addressed GDPR enhancements setting flashings on refresh. +- Fixed: Resolved Stripe payments processing for Indian accounts. +- Fixed: Corrected Payments Summary chart tooltip display. +- Fixed: Improved decimal precision in number slider field calculations. +- Fixed: Enhanced WPForms admin pages performance. +- Fixed: Backslash handling in form data after saving. +- Fixed: Prevented duplicate entry submissions with reCAPTCHA v3. +- Fixed: Restored missing Order Summary item names for hidden label fields. +- Fixed: Improved Order Summary performance with conditional Multiple Items fields. +- Fixed: Dynamic Choice fields button behavior. +- Fixed: Display of zero-price Payment Checkbox items. +- Fixed: Stripe Credit Card field styling in Divi builder. +- Fixed: Fatal error with a custom country address scheme. + += 1.9.3.2 = +- Fixed: GDPR enhancements sub-setting briefly flashed on the WPForms > Settings admin page after refresh. + += 1.9.3.1 = +- IMPORTANT: Support for PHP 7.0 has been discontinued. If you are running PHP 7.0, you MUST upgrade PHP before installing WPForms 1.9.3. Failure to do that will disable WPForms core functionality. +- Added: Ability to open the Form Builder with a specific section via URL parameter. +- Added: Support for Block API versions 2 and 3. +- Added: Support for the Constant Contact API v3. +- Added: Quick page navigation on the Forms Overview page. +- Added: Direct access to Tools sections from WPForms top admin menu. +- Changed: Updated stripe/stripe-php library to 16.3.0. +- Changed: Updated DOMPurify library to 3.2.3. +- Changed: Optimized Order Summary table display on mobile devices. +- Changed: Improved date formatting consistency in payments table. +- Changed: Removed dynamic missing translation fix to improve performance. +- Fixed: Tooltip text overlap in Choices.js dropdowns with long tags. +- Fixed: Default payment choice label visibility in order summary table. +- Fixed: Hidden single item field visibility in Order Summary table. +- Fixed: Unnecessary CSS variables output on pages without forms. +- Fixed: Toggle icon status glitch on the payments settings section. +- Fixed: Submit button text handling with empty values. +- Fixed: Non-Latin characters have been stripped from the URL when used in {page_url} and {url_referer} smart tags. +- Fixed: Block Editor field compatibility. +- Fixed: Warning appeared in the debug.log when non-string data were erroneously sent to translation. +- Fixed: Custom validation message display for sub-fields. +- Fixed: Stripe Credit Card field in Elementor popups. +- Fixed: Submit button default label handling. +- Fixed: An error was happening when removing “Copy / Paste Style Settings” in Elementor and Block editor. +- Fixed: The “Copy / Paste Style Settings” field default value was empty when adding an Elementor WPForms block. +- Fixed: Error handler improvements. +- Fixed: Some emails were not added to Constant Contact integration. +- Fixed: The WPForms Challenge steps were shown in the AI Form Generator panel. +- Fixed: PHP 7.1 and 7.2 compatibility. + += 1.9.2.3 = +- Changed: Creating a custom form theme is now available only to Administrators. +- Fixed: Translated form action notices had an "s" letter appended to the form/template translated name. +- Fixed: The Minimum time to submit setting consistently blocked form submissions on sites created in WordPress Studio. +- Fixed: The '_load_textdomain_just_in_time was called incorrectly' error with child themes. +- Fixed: In rare cases, a fatal error could happen on plugin activation. + += 1.9.2.2 = +- Fixed: _load_textdomain_just_in_time notice with WordPress 6.7. +- Fixed: Some translations were empty with WordPress 6.5+. + += 1.9.2.1 = +- Added: The Settings section in the WPForms admin bar menu. +- Added: Update Stripe payments status after canceling a refund in the Stripe dashboard. +- Added: Open the URL in the new tab for Confirmations. +- Added: New `$row_id` parameter to the `wpforms_pre_update_{$type}` and `wpforms_post_update_{$type}` actions. +- Added: AI chat warning messages if prohibited code has been removed. +- Changed: Updated jquery.validate library to 1.21.0. +- Changed: Updated stripe/stripe-php library to 16.1.0. +- Changed: Updated DOMPurify library to 3.1.7. +- Changed: Updated woocommerce/action-scheduler library to 3.8.2. +- Changed: Updated Chart.js library to v4.4.4. +- Changed: Smart tags are no longer processed in WordPress builders, such as Gutenberg, Elementor, Divi Builder, etc. +- Fixed: There was a potential infinite recursion in error handling. +- Fixed: Improved performance on the Templates page in the Form Builder. +- Fixed: Field labels were printed in the Order Summary table when the Hide Label option was enabled. +- Fixed: In some cases, adding a new account in Form Builder did not load the account data correctly. +- Fixed: Improved translation handling for addon names and descriptions. +- Fixed: Order Summary performance issue on large forms containing numerous payment conditional logic fields. +- Fixed: Mapped First/Last Name sub-fields were replaced by another after the initial field was deleted. +- Fixed: An extra field was displayed when WPForms were embedded using a shortcode in the Footer. +- Fixed: The non-Latin characters were not supported for the AI Choices prompt. + += 1.9.1.6 = +- Fixed: The Dropdown field placeholder was disabled on the Divi Builder preview screen. +- Fixed: When sending a form with an incorrect nonce field, no error was displayed. +- Fixed: An extra field was displayed when a form was embedded using a shortcode in the Footer. + += 1.9.1.5 = +- Fixed: PHP warnings appeared with WordPress widgets. + += 1.9.1.4 = +- Fixed: Multiple sending of weekly summary emails. + += 1.9.1.3 = +- Fixed: HTML tags didn't work in an agreement text of the GDPR field when a field's label was hidden. +- Fixed: HTML tags in choices of the Checkboxes, Multiple Choice, and Dropdown fields were escaped and didn't work as expected. + += 1.9.1.2 = +- Fixed: There was a conflict with the WooCommerce Subscriptions plugin. + += 1.9.1.1 = +- Added: State-of-the-art generative AI can help to build forms even faster. +- Added: New supported currencies. +- Added: New `wpforms_html_field_name` filter that allows modifying field labels in email notifications. +- Changed: Improved the UI for multiple dropdown elements in various places of the admin area. +- Changed: Updated Stripe Subscription to use the plan name as the description. +- Changed: Notice in the WPForms > Settings > Payments admin page when a selected currency is not supported by Stripe. +- Changed: WPForms admin notices are now sorted by type. +- Changed: Improved the Modern Dropdown field UI across the Block and Elementor editors. +- Changed: Updated DOMPurify library to 3.1.6. +- Changed: Updated `stripe/stripe-php` library to 15.8.0. +- Changed: Improved RTL support of plugin admin pages. +- Changed: Improved compatibility with Full Site Editor and Gutenberg plugin. +- Changed: Improved performance on admin pages. +- Changed: Form Builder: Alt+S shortcut toggles the sidebar on Windows and Linux. Ctrl+F shortcut has been improved to always open search field. +- Fixed: Resolved W3C validation error for the Order Summary table. +- Fixed: Fixed RTL display issues for submit spinner and payment fields with quantity enabled. +- Fixed: Resolved pagination button issues for WordPress versions 6.6 and higher. +- Fixed: Incorrect price was displayed in the Order Summary table for some currencies when the Single Item field with 'user defined' type was used. +- Fixed: Improved mobile responsiveness of the price column in the Order Summary table. +- Fixed: "The cron event list could not be saved" error could appear in the debug.log file in certain cases. +- Fixed: WPForms script was not defined in the Elementor popup. +- Fixed: Compatibility with the Jetpack Boost plugin. +- Fixed: PHP notice generated on the Single Payment screen in some cases. +- Fixed: Search on WPForms –> Tools –> Scheduled Actions page redirected users to the Import Screen. +- Fixed: The `wpforms_weekly_entries_count_cron` task was reporting an error in the debug log. +- Fixed: Resolved W3C errors and warnings reported for the Standard fields. +- Fixed: The browser tab could crash if the WPForms block was used with patterns. +- Fixed: The Order Summary text was not readable in some form themes when the `{order_summary}` smart tag was used in the Confirmation message. +- Fixed: Submit button hover styles were overridden in some themes and Elementor. +- Fixed: The "Missing 'wpforms' dependency" error appeared on pages without a form. + += 1.9.0.4 = +- Fixed: Unable to send a form with Constant Contact integration and fatal errors in the admin. + += 1.9.0.3 = +- Fixed: Compatibility issues with menus and popups on Elementor. +- Fixed: A fatal error with wp_remote_retrieve_headers occurred in CacheBase.php in some cases. +- Fixed: Compatibility with the Jetpack Boost plugin. + += 1.9.0.2 = +- Added: Modern Antispam protection for new forms. +- Added: Support conditional logic in the Layout field and add the ability to render the label and description for this field. +- Added: The notification to check prices is added when the currency is switched. +- Added: The new filter `wpforms_sanitize_amount_before` to filter a raw price amount before sanitization. +- Added: The new filter `wpforms_sanitize_amount` to filter a sanitized price amount. +- Added: The new filter `wpforms_enable_form_data_slashing` to enable the form data slashing. +- Added: The new filter `wpforms_frontend_js_header_force_load`allows the loading of JS assets in the header. +- Changed: Improved automatic recreation of custom database tables. +- Changed: Improved RTL support of plugin admin pages on desktop and mobile screens. +- Changed: Smart Tags for the Name field now allow retrieving partial data, such as Last Name. +- Changed: Improved layout of the Settings > Integrations page on small screens. +- Changed: Added notices for the Default value and Allowlist/Denylist settings on the Email field in case some values were invalid and have been removed. +- Changed: Improved the multi-select dropdowns UI across the Builder UI. +- Changed: Updated `stripe/stripe-php` library to v15.1.0. +- Changed: Updated `woocommerce/action-scheduler` library to v3.8.1. +- Changed: Allowed using the `&` symbol in Modern style Dropdown field choices. +- Changed: Improved compatibility with the WP JobSearch plugin. +- Changed: Updated `jQuery.Validate` library to v1.20.1. +- Changed: Updated `inputmask` library to v5.0.9. +- Fixed: Stripe payment form couldn't be submitted in the Elementor popup preview. +- Fixed: The Trash, Duplicate, Restore, and Delete actions for templates and forms now display a notice with the correct type. +- Fixed: Multiple Choice, Checkboxes, and Dropdown fields with empty values were displayed incorrectly in email notifications. +- Fixed: Database error on a single network site after creating a form if the plugin was network activated. +- Fixed: Fields reacted by hovering over them with the cursor on the Elementor editor screen. +- Fixed: Modern Dropdown fields were not appropriately loaded on Block (Gutenberg) and Elementor editors. +- Fixed: Forms with hidden labels had a big horizontal scrollbar when displayed on mobile with RTL languages. +- Fixed: Conditional logic affected the print page, which did not display hidden fields. +- Fixed: The RTE field was broken in the Elementor editor preview when the left menu was collapsed. +- Fixed: Rare exception with how we registered translations for download using the respective transient. +- Fixed: Pre-populating fields from another form with confirmation redirect URL was not handling multi-select fields. +- Fixed: The Gutenberg editor was not displaying the page title using Smart Tags. +- Fixed: The {page_url}Smart Tag value was wrong on the Gutenberg editor's page. +- Fixed: When all the provider's connections were removed, the check icon remained in the provider title. +- Fixed: The `{page_url}`Smart Tag was incorrect in the Divi builder. +- Fixed: Modern Dropdown fields didn't preview correctly for multiple instances of WPForms block on the Gutenberg editor's page. +- Fixed: The choice-based payment field Smart Tags didn't work in the prefilled URL. +- Fixed: In Dropdown, the & symbol was rendered as the corresponding HTML entity `&` for Modern Style. +- Fixed: The modern dropdown field was not loading correctly on the Elementor popup. +- Fixed: Empty forms couldn't be submitted without enabling the "Minimum time for submit" setting. +- Fixed: Switching to Live mode on the Payments Overview screen was impossible when all test payments were deleted. +- Fixed: Dropdown and Checkbox fields with multiple values were inline in email notifications. +- Fixed: Pressing the Enter key triggered the WPForms Insert Form modal in the Classic editor. +- Fixed: Dropdown field in forms with the `inline-fields` class had cropped dropdowns on Safari. +- Fixed: Payment quantity text was not centered on some themes. +- Fixed: Some fields were visible in the email notifications even if they were hidden by Conditional Logic. +- Fixed: The Robots.txt file wasn't valid due to the WPForms disallow rule. +- Fixed: After embedding to the new page, the `{page_title}` Smart Tag was empty in the Block Editor (Gutenberg). + += 1.8.9.6 = +- Changed: Improved compatibility with OceanWP theme. +- Fixed: Dropdown fields in forms with the `inline-fields` class had cropped dropdowns. +- Fixed: Button's hover color was wrong on the Ocean WP theme. +- Fixed: Form couldn't be submitted when Cloudflare Turnstile anti-spam integration was configured. + += 1.8.9.5 = +- Fixed: Stripe payment wasn't created when the Credit Card field was optional and users paid through Google Pay / Apple Pay. + += 1.8.9.4 = +- Added: New filter wpforms_sanitize_amount_before to filter a raw price amount before sanitization. +- Added: New filter wpforms_sanitize_amount to filter a sanitized price amount. + += 1.8.9.2 = +- Fixed: Reply-to field was not returning the correct email address. + += 1.8.9.1 = +- Added: Complex fields now can have separate error messages for each field. +- Added: Recommended, New, and Featured addons are now displayed first on the addons page. +- Changed: The Campaign Monitor, ConstantContact, GetResponse and ConvertKit logos were updated. +- Changed: Users can now see the category and subcategory of the selected template on the Setup panel. +- Changed: If Akismet is installed and configured for the form, marking entries as spam or not spam helps Akismet learn. +- Changed: Improved the behavior of Tools > Logs page and settings controls. +- Changed: Improved compatibility with the Hello Elementor theme. +- Changed: Process empty selected values for Choices, Checkbox, and Dropdown fields when Show Values option is selected. +- Changed: Choices.js library has been updated to v10.2.0. +- Changed: Modern multiple select field with search enabled now is more user-friendly across the admin area. +- Changed: Improved rendering of Payment Fields according to W3C requirements. +- Changed: Always display templates added by addons, even if the addon is not installed or activated. +- Changed: The form builder now hides the placeholder label for Image and Icon choices when left empty, while retaining the placeholder for Payment Choices and Checkboxes to maintain consistency with frontend behavior. +- Fixed: Incorrect alert modal was shown on the subscription plan removal in some cases. +- Fixed: Various RTL problems on the form builder screen. +- Fixed: The minimum payment amount for the Single Item field was not functioning correctly with currencies that use a comma as a decimal separator. +- Fixed: Validation error for the Postal code of the Stripe Credit Card field displayed twice. +- Fixed: Inconsistent spacing of Dropdown field in different browsers on desktop and mobile. +- Fixed: Stripe Credit Card field had incorrect placeholder color with Classic Markup. +- Fixed: Updated the WPForms Challenge to only start counting when you actually begin creating a form on the Forms Overview page. +- Fixed: User templates were not deleted on plugin uninstall. +- Fixed: The radio of the Multiple Choice field wasn't centered in Firefox. +- Fixed: Stripe processing error occurred on a multi-payments form when all credit card fields were hidden by conditional logic. +- Fixed: Color of validation errors was incorrect for the Stripe Credit Card field when Payment Element mode was used. +- Fixed: Additional padding was added for the form title on the Forms Overview page on mobile. +- Fixed: The plugin update process redirected to the Update page and did not redirect back to the Plugins page after the update. +- Fixed: The fetching of the new plugin version number and new plugin description has been run not-synchronously. +- Fixed: MySQL errors occurred when creating a table in some unique configurations. +- Fixed: Multiple Choice field with Icon Choices could not be selected in Firefox after reloading the page. +- Fixed: Inline javascript code could be parsed improperly and displayed as text on top pages for some configurations. +- Fixed: Cached token was not updated properly. +- Fixed: The Spinner layout of the Save button in the Form Builder was not centered. +- Fixed: In some exceptions, one-time payments appeared in the Stripe dashboard even though a payment form wasn't submitted. +- Fixed: Email notifications were not sent when a subject was empty after smart tag processing. +- Fixed: PHP warnings might have occurred in some cases on PHP 8.0+. +- Fixed: Upgrade to the Pro link had wrong styling on Bluehost hosted sites. +- Fixed: WPForms block in the editor showed an error when the selected form was trashed or deleted. +- Fixed: Some Stripe transactions were refunded almost immediately as the transactions were labeled fraudulent. +- Fixed: The validation process of Number Slider field could throw a fatal error on PHP 8.0+. + += 1.8.8.3 = +- Changed: Updated jQuery.Validate library to v1.20.0. +- Fixed: Screen Options on the Forms Overview and Entries Overview pages could cause PHP error in rare cases due to conflict with 3rd-party code. +- Fixed: Post Statuses on legacy Nav Menu management page could cause PHP error in rare cases due to conflict with 3rd-party code. +- Fixed: users couldn't duplicate their forms. + += 1.8.8.2 = +- Added: Forms can now be saved as user templates for future use. +- Added: New `Price Display` option was added for Single Item payment field. +- Added: Shipping and Billing addresses can now be configured on the Form Builder > Payments > Stripe screen. +- Added: New filter `wpforms_integrations_stripe_api_common_create_plan_name` to filter Stripe subscription plan name. +- Added: New filter `wpforms_integrations_lite_connect_api_request_timeout` to filter Lite Connect request timeout. +- Added: New styling/theming settings in the Block editor. +- Added: New context menu in the Form Builder for quick actions. +- Changed: New design for the Email Summaries email template with a weekly total and entry submission trends. +- Changed: The state of selected stat cards on the Payments Overview chart is preserved when applying date filtering. +- Changed: Updated `stripe/stripe-php` library to v13.15.0. +- Changed: Updated `woocommerce/action-scheduler` library to v3.7.2. +- Changed: Updated DOMPurify library to 3.0.9. +- Changed: Adjusted notifications on the empty forms screen. +- Changed: HTML tags are allowed in the Order Summary for the Total payment field. +- Changed: When the entry is marked as not spam, submit data to Akismet for learning and help make the Web a better place for everyone. +- Changed: Improved error handling when creating or updating a form. +- Changed: Improved fields layout on the frontend for better user experience on mobile devices. +- Changed: Bring the frontend markup of the form more in line with the W3C standards to reduce validator errors. +- Fixed: Various RTL problems in the admin dashboard, form builder and a form preview page. +- Fixed: Various responsive issues on admin pages. +- Fixed: The Paragraph field was allowed horizontal resizing. +- Fixed: Make sure we output valid robots.txt file rules if the file is empty. +- Fixed: PHP notices were thrown in some cases when Stripe subscription renewals were created. +- Fixed: Customer email was shown instead of customer name on the Payments Overview screen for Stripe subscription renewals in some cases. +- Fixed: The builder sidebar was hidden on the context menu edit actions. +- Fixed: Fatal error was thrown on the frontend with corrupted form data. +- Fixed: `0` (zero) as a choices field raw value was not saved. +- Fixed: The payment single field had the wrong spacing with enabled quantities. +- Fixed: Long placeholders being broken into multiple lines after Safari 17.3.1 update. +- Fixed: Media upload did not work in some cases on mobile devices. +- Fixed: Placeholder option was hidden for the Single Item field with 'user defined' type. +- Fixed: Incorrect prices in the Order Summary table when items in the Checkbox Items field had the hyphen symbol. +- Fixed: Modern multiple select fields with long placeholder text overlapped a drop-down arrow. +- Fixed: Infinite loading button was shown on mobile devices in some cases. +- Fixed: Multisite activation: plugin should stay activated on a single site after user activated it on a network level. +- Fixed: There was a race condition with invisible reCaptcha v2, preventing form submission in some edge cases. +- Fixed: Elementor widget styles were broken due to a conflict with the Gutenberg block. +- Fixed: Some unnecessary inline styles were applied for email notifications with HTML tags. +- Fixed: Payment fields weren't reflected properly in the Order Summary table in some cases. +- Fixed: WPCode Install/Activate modal and Entries Education Modal now look better on mobile screens. +- Fixed: `{author_*}` smart tags were returning incorrect results in some cases. +- Fixed: Incorrect styles were applied for "Order Summary" table in some cases. +- Fixed: Improved handling of corrupted payment submission data. + += 1.8.7.2 = +- Changed: "What's New" modal should be displayed based on the major version of the plugin. +- Changed: Improved Akismet integration efficiency. +- Fixed: Antispam token was passed as a simple form field, not protected from spam bots. +- Fixed: PHP warning was thrown in case of anonymous form submission when User ID smart tag was used. +- Fixed: Image positioning in the "What's New" blocks wasn't always correct. +- Fixed: Modal windows were not displayed on small screens. +- Fixed: The animation for opening the "What's New" modal worked improperly when the modal had small content. +- Fixed: The background was not entirely dimmed when scrolling the "What's New" popup. + += 1.8.7.1 = +- Added: The Announcements block in the Community page. +- Added: New way to expand the Form Templates subcategories list in the templates list sidebar. +- Added: New splash screen outlining notable features and changes in the release. +- Added: The user can see an overview of what they are purchasing by enabling the Order Summary for the Total payment field. +- Added: New `{order_summary}` smart tag. +- Changed: Improved compatibility with Twenty Twenty-Three theme. +- Changed: Improved plugin activation on WordPress multisite setups with both Lite and Pro versions installed. +- Changed: Improved support of sites hosted in the Azure platform using IIS. +- Changed: Updated DOMPurify library to 3.0.8. +- Changed: Removed `jquery-confirm` library in favor of jQuery.Confirm Reloaded drop-in replacement. +- Changed: Spam protection token is valid now for 3 days instead of 2. +- Changed: Spam protection token is no longer loaded with JS to avoid fails caused by script errors. +- Changed: Storing spam entries is now enabled by default for new forms. +- Changed: Users with limited capabilities are allowed to view the Forms Templates and Addons pages. +- Updated: `tijsverkoyen/css-to-inline-style` library to v2.2.7. +- Updated: `symphony/polyfill-iconv` library to v1.19.0. +- Updated: `symphony/polyfill-mbstring` library to v1.19.0. +- Updated: `woocommerce/action-scheduler` library to v3.7.1. +- Updated: `stripe/stripe-php` library to v13.9.0. +- Fixed: Some background actions could fail if triggered by WP-CLI via server cron. +- Fixed: Fatal error may occur in rare cases during migrations if they were triggered manually. +- Fixed: Read-only Number fields should not display spin buttons. +- Fixed: The Icons Choices field with a Large size was not centered in the Block Editor and Elementor. +- Fixed: Two messages appeared when clicking on the reCAPTCHA field after searching the fields in the Builder. +- Fixed: A form with a long title expanded the form selector dropdown in the Block Editor. +- Fixed: CSS Styles were not applied if Global Colors were already selected in Elementor Builder. +- Fixed: Payment method details were not stored for Stripe renewals. +- Fixed: The template page had style issues in the German language. +- Fixed: The Elementor popup preview had broken WPForms styles. +- Fixed: In some situations, payment amounts were improperly sanitized. +- Fixed: Some modals across the admin area were not responsive and did not fit on smaller screen sizes. +- Fixed: Templates' cache wasn't updated after the plugin update. +- Fixed: RTL support for WPForms Settings page. +- Fixed: RTL support for the Form Builder. +- Fixed: Some frontend fields were improperly rendered for RTL. +- Fixed: The user interface had different other issues when RTL language was in use. +- Fixed: The Form Builder settings screen had multiple visual issues when RTL language was used. +- Fixed: AJAX calls didn't work on servers with empty `$_SERVER['HTTP_REFERER']` value. +- Fixed: Improved Forms overview page display on mobile devices. +- Fixed: Improved Tools pages display on mobile devices. +- Fixed: Custom Captcha settings were duplicated on the Form Builder when the field was added through the Settings > Spam and Security screen. +- Fixed: Localization issues were present on the Get Started screen. +- Fixed: Subscriptions made by the Stripe Link payment method before 1.8.6. +- Fixed: Some non-optimized MySQL requests locked the database for seconds on huge sites with thousands of tables. +- Fixed: The Appearance of multiple dropdown values was incorrect. +- Fixed: Some information was missing if Smart Tags were processed in the background via cron. +- Fixed: The recent Chrome version for Windows was not displaying the custom scrollbars correctly. +- Fixed: `wpforms_plaintext_field_value` filter was unavailable since 1.8.5 version. +- Fixed: The form submission triggered an error on sites with long-term page caching. + += 1.8.6.4 = +- Fixed: Term notice was removed under the Stripe Credit Card field when Payment Elements were used. +- Fixed: An additional spinner appeared when the Setup panel button was clicked again. +- Fixed: Overflow of `img`, `video`, `canvas` and `svg` tags has been set to `clip` by default, as recommended by Google PageSpeed Insights. + += 1.8.6.3 = +- Fixed: The Name field was not clickable with Classic Markup and Base Styles. + += 1.8.6.2 = +- Added: New column selector and column reordering on the Forms Overview and Form Entries page. +- Added: New right-click context menu in the Form Builder. +- Added: Forms can now be imported programmatically. +- Added: New minimum price option for the Payment Single Item field that can help protect your forms against card testing by fraudsters. +- Added: Caching to the templates list markup on the Templates page and in the Form Builder for improved performance. +- Added: Customer name can now be configured on the Form Builder > Payments > Stripe screen. +- Added: Dark Mode support for email notifications. Users are now able to customize styling for each appearance theme. +- Changed: Improved compatibility with the Apple Pay feature for Stripe payments. +- Changed: Updated the design of the Addons page in the admin dashboard. +- Changed: Improved compatibility with latest versions of Divi theme. +- Changed: Improved compatibility with OceanWP theme. +- Changed: Improved compatibility with the Hello Elementor theme. +- Changed: Improved styles of various Lite Connect settings. +- Changed: Improved behavior of various Email settings on the WPForms Settings page. +- Changed: Improved form templates search. +- Changed: Significantly improved performance of the Form Builder when opening existing forms. +- Changed: Restrict media files to only valid image types for the Header Image field on the Email page, and Image Choices options in the Builder. +- Changed: Improved handling of empty choice labels of the Dropdown, Checkboxes, and Multiple Choice fields. +- Changed: Improved various messages across the admin area. +- Changed: Styles customizations of email notifications on the WPForms Settings page can now be previewed without saving them. +- Changed: Stripe library updated to the latest version. +- Changed: The Authorize.Net logo was updated. +- Fixed: Pressing Apply with no selected action on the Payments Overview page triggered WordPress' die screen. +- Fixed: Elementor widget preview is not properly updated after editing the form in the builder popup. +- Fixed: Plugin prefix added to all action links on the plugins page to prevent collisions with third-party CSS code. +- Fixed: Stripe Credit Card field styles are not applied in WordPress Site Customizer. +- Fixed: Stripe Elements field had too much spacing around the Submit button with Modern styles applied. +- Fixed: Trashed forms not removed during the plugin deletion process. +- Fixed: An empty value from the Dropdown field is saved if the choice with empty label is selected. +- Fixed: Some styles were incorrect for the Form Selector widget in Block Editor, Elementor and Divi. +- Fixed: Confirmation Page dropdown is not completely visible in some cases on smaller screens. +- Fixed: Header Image Size dropdown appeared on the Email Settings page even though there is no image set for the Email Header. +- Fixed: Scroll to the error message when the form is submitted with an error not working in some cases. +- Fixed: Some 3rd-party plugins could be included in the translation files check. +- Fixed: Email notification not rendered correctly if multiple smart tags are used. +- Fixed: PHP deprecation warning logged when the Weekly Summary email is triggered via cron on PHP 8.2. +- Fixed: Dropdown preview in the Form Builder not updated correctly. +- Fixed: Fields and a submit button not aligned properly on single line form layout. +- Fixed: Checkbox and multiple dropdown values displayed in one line with new email templates. +- Fixed: Do not display the "Install and Activate" button on the Geolocation and Coupons pages for Lite users if plugin installation is not allowed. +- Fixed: Read-only Number fields should not display spin buttons. +- Fixed: Incorrect error text displayed when uploading a file of an illegal format in the Form Builder. +- Fixed: Incorrect error messages displayed for the required Payment Total and Stripe Credit Card fields. +- Fixed: Prevent form pagination if the form is invalid. +- Fixed: Field validation error icon positioned incorrectly when a form inherited content centering from the theme. +- Fixed: Email addresses containing special characters are incorrectly validated against allow/deny list. +- Fixed: Fields with subfields displayed incorrectly on the frontend in latest Safari and other browsers using WebKit. +- Fixed: Email notifications using Plain Text format has some special characters that are converted into their HTML entities. +- Fixed: JavaScript deprecation notices in the browser's console when the Bar graph style is used on the Payments Overview page. +- Fixed: Stripe subscriptions paid by Link were unable to be renewed. +- Fixed: PHP warning was thrown for legacy subscription Stripe payment form. +- Fixed: PHP warning was thrown while connecting the Jetpack plugin account. + += 1.8.5.4 = +- Changed: The `Chart.js` library has been updated to v2.9.4. +- Fixed: Email Summary header image did not honor max width setting. + += 1.8.5.3 = +- Fixed: Better compatibility with default Block themes. +- Fixed: Form Embed Wizard was loaded on the YOOtheme Builder page. + += 1.8.5.2 = +- Added: New email templates are ready to use! +- Added: Email template can now be customized and previewed on the Settings. +- Added: Allow an email template to be specified on a per-form/notification basis. +- Added: Prefix all 3rd-party libraries to avoid compatibility issues with other plugins using different versions of the same libraries. +- Added: Added new filter making it possible to customize styles for the Stripe Credit Card field when Payment Elements are used. +- Added: WPCode integration. +- Changed: Updated DOMPurify library to 3.0.6. +- Changed: Improved significantly the performance of frontend email validation. +- Fixed: Addressed a few compatibility issues and deprecation errors with PHP 8.1 and newer versions. +- Fixed: Search didn't work on the Form Templates screen if a template name contained the dash symbol. +- Fixed: Stripe Credit Card field duplicate button was visible in the Form Builder in some cases. +- Fixed: Stripe webhook requests triggered a PHP error and returned the wrong response in some cases. +- Fixed: Image choices had some styling glitches in the builder preview. +- Fixed: Akismet protection didn't work when Email Confirmation was enabled for the Email field. +- Fixed: Translated strings weren't shown in the WPForms block in some cases. +- Fixed: In rare cases Turnstile Captcha was not displayed correctly when it expired and was refreshed. +- Fixed: Custom styles were overwritten for the Stripe Credit Card field when the Modern Markup setting was used. + += 1.8.4.1 = +- Fixed: A fatal error was thrown when using the WP-CLI command with the --context=admin parameter. +- Fixed: Stripe assets were loaded on every page when the Elementor plugin was activated. +- Fixed: Resized images in Image Choices were displayed in their original sizes inside Notifications. + += 1.8.4 = +- IMPORTANT: Support for PHP 5.6 has been discontinued. If you are running PHP 5.6, you MUST upgrade PHP before installing WPForms 1.8.4. Failure to do that will disable WPForms core functionality. +- IMPORTANT: Support for WordPress 5.4 and below has been discontinued. If you are running any of those outdated versions, you MUST upgrade WordPress before installing WPForms 1.8.4. Failure to do that will disable WPForms core functionality. +- Added: Statuses of Stripe payments can now be synchronized through webhooks! +- Added: Users can now perform payment refunds, subscription cancelations, and more for Stripe payments. +- Added: Payments can be filtered by type, gateway, and status on the Payments Overview page. +- Added: New stats added to the Payments Overview chart: Total Refunded, New Subscriptions, and Subscription Renewals. +- Added: When searching for forms on the Form Overview page, you can use a form ID now. +- Added: There is a new "Latest entry" date column on the Forms Overview page which is sortable. +- Changed: WPForms Challenge text is improved to be more clear. +- Changed: The `intl-tel-input` library has been updated to v18.2.1. +- Changed: Form templates are now ordered by creation date in ascending order. +- Changed: Styles for the Stripe Payment Links are improved. +- Changed: Notice text colors in the Form Builder are updated. +- Changed: Number slider behavior is improved. +- Changed: On the Forms Overview page, the Created column is renamed to Date. Now it displays the date and time when the form was updated. +- Changed: Admin pages were updated to use a new unified Design Language. +- Fixed: WPForms block did not get a list of forms dynamically. +- Fixed: Very long tag names in the Manage Tags modal on the Forms Overview page were not wrapped. +- Fixed: Disabled inputs looked different in the Form Builder > Notifications panel for the "From EMAIL" and "From NAME" options. +- Fixed: A splash screen was displayed when all payments were moved to Trash, preventing the ability to restore trashed payments. +- Fixed: Dynamic choices of custom taxonomies (tags) for the Checkboxes field were displayed incorrectly under some conditions. +- Fixed: Stripe Credit Card field error was not visible for multipage forms in some cases. +- Fixed: WPForms Challenge welcome pop-up was displayed above the splash screen on tablets. +- Fixed: The form submission "Send" button was not working correctly on click when Invisible Captcha had an invalid key. +- Fixed: HTML-ENTITIES encoding threw a deprecation warning on PHP 8.2. +- Fixed: An irrational scrolling occurred when quickly adding multiple fields in the Form Builder. +- Fixed: Fields with subfields were rendered differently in the Form Builder Preview pane and on the front end. +- Fixed: Stripe fields were misplaced in the Block Editor form preview with Lead Forms. +- Fixed: Multiple Modern Dropdown field value was not centered in the Modern Markup. +- Fixed: Failed payments were counted in the Total Sales chart. +- Fixed: Users were able to view trashed payments. +- Fixed: Splash screen was displayed when all payments were moved to Trash. +- Fixed: An incorrect currency of already processed payments was displayed when the global currency setting was changed. +- Fixed: There was an empty form name in the Single Payment details metabox if a payment form was deleted or no longer editable. + += 1.8.3.1 = +- Fixed: There were situations when Stripe Credit Card field wasn't working properly in Elementor. + += 1.8.3 = +- Added: New `{site_name}` smart tag. +- Added: Fields in the Form Builder can now be searched by name or related keywords. +- Changed: Adjusted error message for Stripe subscription payment failure. +- Changed: Elementor integration updated and improved. +- Changed: Improved cache busting of entry counts on the Dashboard widget. +- Changed: Anti-spam processing significantly improved. +- Changed: Various notifications for users without required permissions have been improved. +- Changed: Updated DOMPurify library to 3.0.5. +- Changed: Sidebar in the Form Builder now can be collapsed or expanded with a `Ctrl + T` keyboard shortcut. +- Changed: Updated Icon Choices Font Awesome library to 6.4.0. +- Changed: Improved empty states for blocks/widgets on Gutenberg and Elementor editor. +- Fixed: Submit button font family was not inherited from theme styles. +- Fixed: No spacing between the field label and the field on Settings pages. +- Fixed: Handling of string to array conversion type error in rare cases when the option in the database contained malformed value. +- Fixed: Improved the preview for the Dropdown choices with HTML tags in the Form Builder. +- Fixed: Stripe Payment fields previously ignoring "Include Form Styling" setting. +- Fixed: Improved responsive styles for multiple choice controls on the Settings pages. +- Fixed: Removed redundant space between Stripe credit card sub-fields when sub-labels are hidden. +- Fixed: Handling console error on post/page edit screen when not connected to Stripe. +- Fixed: Handling a PHP Notice that was generated when the legacy API is used for Stripe payments. +- Fixed: Revised link to Comprehensive Guide in the Elementor WPForms widget. +- Fixed: Akismet anti-spam check could be skipped in certain cases. +- Fixed: Stripe Payment field displaying a warning sign with an empty error message when card validation failed. +- Fixed: Hierarchical Dynamic Choices list that resulted in a PHP timeout error when the list was more than 3 levels deep. +- Fixed: CAPTCHA badge preventing the Divi Visual Builder preview from loading. +- Fixed: Inconsistent email validation between front-end and server. +- Fixed: Form Location title or slug occasionally not updating after updating a post. +- Fixed: Buttons in the confirmation modal that were not aligned correctly if they didn't fit in one line. + += 1.8.2.3 = +- Changed: Admin notice content and design is improved. +- Changed: We optimized the Help screen performance within the Form Builder. +- Fixed: The query string rewrite module from the 7G Firewall plugin was conflicting with the WPForms block in the Block Editor. +- Fixed: Payment fields were not inheriting a newly updated currency from the WPForms Settings > Payments page. +- Fixed: When duplicating a field in the Form Builder, the options panel for the newly duplicated field was not consistently active. +- Fixed: WPForms admin area was using a site language instead of the currently logged-in user language if languages were different. +- Fixed: When an email field contained long words without spaces, words were not properly wrapped. +- Fixed: Form settings were not reflecting new template settings when switching those templates. +- Fixed: WPForms Challenge pointers were overlapping text labels in some languages. +- Fixed: In some cases, the page with a form on the front end was not scrolled to the error field. +- Fixed: The Dropdown border width was wrong when the input was smaller than the dropdown. +- Fixed: It was possible to resize the Paragraph field larger than the containers. +- Fixed: Empty option was replaced with the default one for a duplicated dropdown. +- Fixed: There was a fatal error on the Analytics page if the MonsterInsights Lite plugin was active. +- Fixed: Form Location title and slug were incorrect after updating a post with that form embedded. +- Fixed: The "From Email" option validation message was invisible when the WP Mail SMTP plugin was active. +- Fixed: PHP warning 'Illegal string offset' appeared on some sites. +- Fixed: Placeholder text in the Dynamic choices of the Dropdown field was not displayed when the field was duplicated. +- Fixed: The "Let's Go!" button inside the Form Embed screen was disabled after the page title change. +- Fixed: Bulk option labels were not inline in some languages. +- Fixed: Some field titles were broken in Safari in the Twenty Twenty-One theme. + += 1.8.2.2 = +- Added: Developers can now use a new hook that is fired when the form is duplicated. +- Fixed: A PHP deprecation notice was generated when enabling or disabling auto-updates of any plugin. +- Fixed: Form challenge items were not aligned correctly in various languages. +- Fixed: Legacy Layout Classes didn't work when using the Modern Form Styles. +- Fixed: Custom Math Captcha was still large when the Lead Forms addon was disabled. +- Fixed: Checkboxes and Multiple Choice fields with icons were cut on mobile devices. +- Fixed: Words in the Form Export dropdown on the Tools > Export admin page were split by letters. +- Fixed: Links were stripped in choices labels. +- Fixed: Block Editor kept showing the unsaved changes dialog even though there weren't any changes. +- Fixed: `wpforms_sanitize_amount()` function did not work properly with exponent numbers. +- Fixed: Compatibility with the Popup Maker plugin was improved - Stripe Credit Card field didn't load when a payment form was inserted into a popup. +- Fixed: There was no empty state when no forms created for the WPForms widget in the Elementor screen. + += 1.8.2.1 = +- Added: Payment fields are now available for everyone. +- Added: Users can connect their Stripe accounts and receive payments via their payment forms. +- Added: There are new thumbnails displayed in all places where you see the list of available form templates (Form Builder and Form Templates page). +- Added: Plugin cache files are handled in a more performant way. +- Changed: An outdated version of the Moment.js library was removed from the plugin, and we switched to using the one bundled in WordPress. +- Changed: Preview labels for choices with HTML tags were improved. +- Fixed: There were situations when the `{user_ip}` smart tag was returning a server IP address instead of the actual user's IP address. +- Fixed: An unnecessary database query was run on all admin dashboard pages. +- Fixed: The Modern Multiple Dropdown couldn't be closed by clicking on the arrow. +- Fixed: The "Save" button wasn't fully clickable on the WPForms > Settings admin page. +- Fixed: Some UI elements didn't look correctly on the Form Builder page for non-English languages. +- Fixed: Some fields were non-responsive on mobile when using the Legacy Layout Classes. +- Fixed: Cron event `wpforms_email_summaries_cron` was not removed upon plugin deactivation. +- Fixed: It was possible to add disabled fields to the form again in the Form Builder. +- Fixed: The form was not displayed on the front end when the WPForms block was added to block templates. +- Fixed: On the Payments page for Stripe payments "N/A" was displayed as a payment title instead of the mapped email. +- Fixed: There were situations when PHP notices were generated on the Stripe Single Payment page. +- Fixed: Compatibility with the "AIOSEO - Local Business" plugin was improved. + += 1.8.1.3 = +- Changed: The Uncanny Automator logo is updated. +- Fixed: Debug information (controlled by a constant) is now properly escaped before being displayed on a page. +- Fixed: Turnstile Captcha verification message overlapped the captcha when the captcha type was changed from Invisible to Managed. +- Fixed: Fatal error with AMP plugin. + += 1.8.1.2 = +- Fixed: Checkboxes were shifting when the limit choices rule was triggered. +- Fixed: "Ask for a review" admin notice links improperly opened new tab. +- Fixed: There was a fatal error when settings were incorrectly reset by a 3rd-party plugin. + += 1.8.1.1 = +- Added: Modern Form Styles - easily control the appearance of form fields, labels, and buttons without writing code, right inside the Block Editor. +- Added: The new filter `wpforms_frontend_assets_header_force_load` allows forcing load assets in the header which is useful when the form is in the sidebar widget and similar locations. +- Changed: Tooltips design is improved. +- Fixed: The form preview page was incorrectly shown in some themes. +- Fixed: CF turnstile form ID was translated creating problems with analysis in Cloudflare Dashboard. +- Fixed: Notifications Settings styles were looking bad on a small screen in the Form Builder. +- Fixed: An "active column" state was stuck for a duplicated Layout field inside the Form Builder preview panel. +- Fixed: Limit Length functionality was broken in the Paragraph Text field. + += 1.8.0.2 = +- Changed: Updated DOMPurify library to 3.0.1. +- Fixed: An error occurred when the DreamHost Panel Login plugin and WPForms Lite were both active and WPForms Pro was activated. +- Fixed: Form template block in the Form Builder could overflow the container on smaller screen sizes. +- Fixed: Long links in the HTML email messages did not wrap and caused overflow issues. +- Fixed: Google reCAPTCHA v2 could not be reset on server-side validation failure. + += 1.8.0.1 = +- Added: Prevent spam submissions using the new Cloudflare Turnstile anti-spam integration. You can find it on the Settings > CAPTCHA page. +- Changed: Non-public taxonomies should not be displayed in Dynamic Choices' available sources. +- Changed: External usage of removed PHP classes is now handled gracefully without generating fatal errors. +- Changed: The performance of the Email field validation is improved when using an allowlist or denylist. +- Changed: Updated DOMPurify library to 2.4.3. +- Fixed: The Dropdown field text indentation was incorrect in the Form Builder in Firefox. +- Fixed: Various notification modals' titles had inconsistent sizes in the Form Builder. +- Fixed: Validation errors in various modals were inconsistent in the Form Builder. +- Fixed: When duplicating an inactive field, the settings of the active field are now removed properly. +- Fixed: Some cache files were unnecessarily re-downloaded on the front end. +- Fixed: Users with roles other than Administrator could not add the reCAPTCHA/hCaptcha field and dismiss notices even if they had sufficient permissions. +- Fixed: Number Slider field validation failed if a maximum value was not a multiple of steps.. +- Fixed: HTML markup in the Default Text of Paragraph Text fields was not being displayed on the front end and in the Form Builder preview. + += 1.7.9.1 = +- Fixed: Incorrect spacing around the Submit button in the Form Builder was fixed. +- Fixed: Missing assets were added to the plugin. + += 1.7.9 = +- Added: Icon Choices feature for Checkboxes and Multiple Choice fields - a selection of 2000+ icons can now be used with your choices! +- Changed: Avoid rendering the WPForms Import admin page if the user lacks `unfiltered_html` capability. +- Changed: Respect site settings for displaying avatars on the Revisions screen in the Form Builder. +- Changed: Color picker fields in the Form Builder are now correctly handling default colors. +- Changed: In the form Notifications you can now set up the Reply-To Name value in addition to the Reply-To Email using a special format. +- Changed: Updated jquery-confirm library to 3.3.4. +- Fixed: Prevent field duplication in the Form Builder performed multiple times when clicking fast inside the confirmation modal. +- Fixed: Action links were rendered on two lines in the admin dashboard widget. +- Fixed: PHP notices were generated when form locations logic ran for unregistered post types. +- Fixed: The Embed modal performance in the Form Builder was improved a lot when there are a ton of pages on a site. +- Fixed: The confirmation message for non-AJAX form submissions wasn't wrapped into the main form container. +- Fixed: Improved compatibility with Elementor popups v3.9+. +- Fixed: Notification email suggestion didn't work properly in WordPress installed in a subdomain. +- Fixed: `{page_title}` smart tag was conflicting with the wpSEO plugin. +- Fixed: Better compatibility with the Popup Maker plugin. + += 1.7.8 = +- Added: All anti-spam protection settings are grouped in one place in the Form Builder > Settings for easier access. +- Changed: Recently added Form Templates are now available in the "New Templates" category. +- Changed: Non-responsive (desktop) version of the Form Builder is not accessible on mobile devices. +- Fixed: jQuery deprecation notices were triggered in the browser's console. +- Fixed: Close button in dropdowns was displayed incorrectly in certain places. +- Fixed: A PHP warning was raised on certain site configurations when the user tried to submit a form. +- Fixed: Toggle control animation was working incorrectly in certain cases. +- Fixed: Text was overlapping the down arrow on dropdowns in the 2021 theme. +- Fixed: WPForms Challenge user experience was improved. +- Fixed: Smart tag list was too big in fields with warnings. +- Fixed: Some input masks caused the text in the Text field to be right-aligned. +- Fixed: Compatibility with the 2023 theme was improved. + += 1.7.7.2 = +- Added: There is a new filter `wpforms_builder_panel_sidebar_section_classes` to change builder panel sidebar section classes. +- Changed: Updated DOMPurify library to 2.4.0. +- Fixed: Placeholder text in the Dropdown field was cut off in the Form Builder. +- Fixed: The Form Builder had an inconsistent text strings escaping. +- Fixed: The information about "no form templates to display" did not disappear when a category was changed. + += 1.7.7.1 = +- Fixed: Very long field labels were not wrapped and were breaking mid-word. + += 1.7.7 = +- Added: All templates are now available on our new Form Templates admin page. +- Added: Form Templates can now be marked as favorite for easier access to forms inside the Form Builder. +- Added: The form fields column can now be collapsed in the Form Builder to give more space to the form preview panel. +- Changed: The DB tables row in the Site Health Info section is now private which means it's excluded from the copied data when the "Copy site info to clipboard" button is clicked. +- Fixed: WPForms Challenge was displayed after a forms search with no result. +- Fixed: WPForms Challenge disappeared after selecting a template for the new form. +- Fixed: After a form submission a PHP warning was generated in some cases when the Akismet anti-spam protection setting was enabled. +- Fixed: Using allow/deny list was breaking input mask validation for all fields above the Email field. +- Fixed: An unusually long text string in the confirmation message caused layout problems due to overflow. +- Fixed: `page_title` smart tag was working inconsistently on a form preview page. +- Fixed: From Email address check in the Form Builder > Notifications was incorrectly handling domain check containing the `www` prefix. +- Fixed: Input mask validation message didn't use what was previously saved on the WPForms > Settings > Validation page. +- Fixed: On the Form builder, a template selection didn't work if a page was translated through web extensions. + += 1.7.6 = +- Added: Form Submissions can now be checked against the Akismet API to prevent spam. +- Changed: Empty post titles and term names in Dynamic Choices are now treated the way WordPress does. +- Changed: Modern Dropdown field fuzzy search sensitivity is adjusted to display only exact matches. +- Changed: Allow typing choices in the modern Dropdown field with the Multiple Options Selection option enabled. +- Changed: WPForms Challenge experience is improved for new users. +- Changed: Lite Connect is now disabled in non-production environments. +- Changed: Lite Connect functionality improves handling of staging and cloned sites, and changed domain names. +- Changed: Unnecessary PHP packages are no longer shipped in WPForms Lite. +- Changed: Stylesheets loaded in the Form Builder and on certain plugin pages are better optimized and shrank to improve performance. +- Changed: WPForms now better integrates with the WP Mail SMTP plugin to enable overriding From Name and From Email values in existing forms. +- Changed: Form Notifications now have better validation of From Email settings. +- Changed: Start using new `elementor/widgets/register` hook introduced in Elementor 3.5.0. +- Changed: Updated DOMPurify library to 2.3.10. +- Changed: Updated jquery.validate library to 1.19.5. +- Fixed: Improved compatibility with Twenty Twenty-Two theme. +- Fixed: Added meaningful `alt` text to form submission spinner image to stop being flagged by certain SEO scanners. +- Fixed: Constant Contact Authorization Code and Account Nickname fields are now required on the Settings > Integrations page. +- Fixed: Constant Contact connection can now be added even if the Authorization Code is invalid. +- Fixed: Validation of required fields on Marketing section in the Form Builder was triggered even if the field is hidden. +- Fixed: Action Scheduler was triggering a PHP fatal error on the Tools > Scheduled Actions page on PHP 5.6. +- Fixed: Images breaking out of containers on smaller screens if Multiple Choice and Checkboxes fields were set to use image choices. +- Fixed: `query_var` smart tag was not working in Confirmations and Notifications. +- Fixed: Custom templates had an incorrect badge, "Addon" instead of "Custom". +- Fixed: The Confirmation Message label overlapped the editor when WYSIWYG mode was disabled. +- Fixed: Default form title was not changed when switching form templates. +- Fixed: Both `page_title` and `page_id` smart tags were returning incorrect values on non-singular pages if the form was used outside the Loop. +- Fixed: WPForms Block preview (on block hover) was rendered incorrectly in Site Editor. +- Fixed: Custom validation errors were not displayed with hCaptcha enabled upon AJAX form submission. +- Fixed: Validation errors were not shown when the field with an input mask was not fully filled. +- Fixed: Smart Tags could be added to Sender Email and Sender Name if the fields were managed by the WP Mail SMTP plugin. +- Fixed: The Confirmation message block had incorrect margins in the Twenty Twenty-Two theme. +- Fixed: Occasional errors during migration were fixed when upgrading from some older versions of WPForms. +- Fixed: The Confirmation Redirect URL can no longer be saved with an empty value. +- Fixed: Default choices were displayed on the frontend if a Dynamic Choices source had no objects (Dropdown, Multiple Choice, and Checkboxes fields were affected). + += 1.7.5.5 = +- Fixed: Migrations logic was broken in certain cases when addons have their own migrations. +- Fixed: Security-related improvements around email generation for notifications. + += 1.7.5.3 = +- Added: New filter to modify CSS classes of the form submit button on the frontend. +- Changed: Improve cached templates handling in the Form Builder. +- Fixed: Retrieving a current URL should not strip a custom port. +- Fixed: "JavaScript file not found" error when the "Load Assets Globally" option was enabled in Settings > General. +- Fixed: Do not cache an incorrect or empty response from the Templates API. + += 1.7.5.2 = +- Fixed: Increase chances for the templates inside the Form Builder to load properly, so occasional empty form creation from a template should be gone. +- Fixed: PHP fatal error was generated in some cases when Lite Connect attempted to generate site key too many times. + += 1.7.5.1 = +- Fixed: v1.7.5 migration did not complete when a database prefix other than `wp_` was used. +- Fixed: Incorrect Form Tags links to filter by tags were generated right after saving tags. + += 1.7.5 = +- Added: Form Tags: add tags to forms with an ability to filter by them; bulk add/edit/delete tags for multiple forms. +- Added: Display the status of the Lite Connect setting and the date-time when it was enabled (Tools > System Info). +- Added: New `{unique_value}` smart tag. +- Changed: The sodium library is now included in WordPress core, so we removed it from the plugin. +- Changed: Action Scheduler library was updated to 3.4.2 to fix deprecation notices with PHP 8.1. +- Changed: The jquery.validate library updated to 1.19.4. +- Changed: Conditional logic can now be applied to custom fields. +- Changed: Do not allow not completed Challenge to appear in the regular Form Builder. +- Fixed: For some fields, their default values were not always previewed in the Form Builder. +- Fixed: Regularly clean up additional information we store for each task we run within the plugin. +- Fixed: No fatal error anymore in Allow/Deny email lists with very long or international emails. +- Fixed: Correctly handle additional CSS classes for each WPForms block on the same page (Block Editor). +- Fixed: Modals order was incorrect when the Lite Connect feature was enabled or disabled on mobile. +- Fixed: Notification for the last step of the WPForms Challenge was not displayed on the Posts Page with the Gutenberg plugin. +- Fixed: Some Form Templates could be empty upon fresh installation. +- Fixed: Several minor issues in the Challenge flow are now fixed. +- Fixed: Color Palette was not shown in the Form Builder for duplicated fields. +- Fixed: Do not register Gutenberg block styles on the front end when no form is present on a page. +- Fixed: Limit the number of attempts to get the site key in Lite Connect. +- Fixed: Multiple Items (Radio) choice showed "Empty" on a single entry page if a selected choice value is undefined/empty. +- Fixed: Added focus state indication for admin tabs. +- Fixed: GDPR sub-settings remained enabled if GDPR is disabled and sub-setting was left enabled. +- Fixed: Duplicate/Trash form actions did not work after sorting forms by Name, Author, or Created Date. +- Fixed: Notices appeared in the debug.log when the user created a Custom Template and used it in the Form Builder. +- Fixed: hCaptcha pointer had a weird thick dark border since WordPress 6.0. +- Fixed: Check GDPR settings before trying to use a cookie. + += 1.7.4.2 = +- Changed: DOMPurify library updated to 2.3.8. +- Fixed: WordPress 6.0 compatibility - WPForms block styling fixed inside the Full Site Editor. +- Fixed: Lite Connect: submitted form entries counting improved. + += 1.7.4.1 = +- Fixed: LiteConnect auth key request didn't work with plain permalinks and with subdirectory install. +- Fixed: Form Locations compatibility with the Full Site Editor template parts. + += 1.7.4 = +- Added: Form Locations! On the Forms Overview page easily check all places where each form is currently embedded. +- Added: Back up form submissions into the cloud and restore them to your database as Entries after upgrading to a paid plan. +- Changed: Improved text wrapping of field labels and descriptions. +- Changed: Each smart tag inserted by a user in the Form Builder will now be placed as the last one in relevant inputs. +- Changed: The input field in the Form Embed wizard popup in the Form Builder is now focused by default. +- Changed: Updated DOMPurify lib to 2.3.6. +- Fixed: Search result was not reset when the user clicked "x" sign in the search field on the Addons page. +- Fixed: The form could be saved while still adding a field, but it should not. +- Fixed: Improved compatibility with Elementor popups. +- Fixed: Cleaned up deprecation notice for `_register_controls()` with recent Elementor versions. + += 1.7.3 = +- IMPORTANT: Support for PHP 5.5 has been discontinued. If you are running PHP 5.5, you MUST upgrade PHP before installing WPForms 1.7.3. Failure to do that will disable WPForms core functionality. +- IMPORTANT: Support for WordPress 5.1 has been discontinued. If you are running WordPress 5.1, you MUST upgrade WordPress before installing WPForms 1.7.3. Failure to do that will disable WPForms core functionality. +- Added: Forms now can be moved to Trash and restored on the Forms Overview page. +- Added: Forms now support Revisions with new UI and ability to switch between them. +- Added: Form Template Export selection on the Tools > Export page now supports search. +- Changed: Improved support for WordPress Core UI colors and admin themes in the admin notifications panel. +- Changed: Improved submitted email field value validation (take into account real-world usage and RFC information). +- Changed: Updated Action Scheduler library to 3.4.0. +- Changed: Hide Sub-Labels option should be hidden for some formats in the Name field. +- Changed: Improved performance of Action Scheduler tasks. +- Changed: Drop jQuery matchHeight library in favor of a CSS solution. +- Changed: Unified and improved modals across all plugin pages and the Form Builder. +- Changed: Forms now can be deleted when the user who created them is deleted. +- Fixed: Long field titles didn't wrap within the field container. +- Fixed: Stuck on loading the Form Builder when switching to a new form template with unsaved changes and dismissing the native browser prompt. +- Fixed: Buttons had no spacing when the Embed button is not available for a user without the capability to edit pages and/or posts. +- Fixed: Incorrect position of the notification counter in the admin bar when a notification was dismissed. +- Fixed: Make the form Submit button disabled all the time after the submit action when AJAX form submission or confirmation redirect are enabled. +- Fixed: Toggle control labels did not have a hand cursor. +- Fixed: The dropdown list was shown partially when located at the end of the form in the Twenty Twenty theme. +- Fixed: Multiple selected options in the Classic Dropdown field didn't have a visual active state. +- Fixed: Deprecation notice when processing smart tags. +- Fixed: False JavaScript issue error when WP Rocket's Delay JavaScript execution option is on. +- Fixed: PHP notice generated when email notifications were sent. +- Fixed: "Did You Know" block now always spaned across all columns. +- Fixed: Validation error if an email was not required and left empty. +- Fixed: Email field validation failed with long and invalid emails. +- Fixed: Import from other plugins. +- Fixed: Compatibility with PHP 8.1. + += 1.7.2.1 = +- Fixed: Compatibility with PHP 8.0 and PHP 8.1. +- Fixed: Compatibility with WordPress 5.9, including its new Full Site Editing feature. +- Fixed: Broken cache directory path if `WP_CONTENT_DIR` is set in the `wp-config.php` without trailing slash. +- Fixed: PHP Notice when using the `wpforms_log()` function in certain conditions. +- Fixed: Type mismatch brakes a list of scheduled actions in Action Scheduler if typed arguments are passed. + += 1.7.2 = +- Added: Search by form name and description is available on the Forms Overview page. +- Added: New "Author" column in the Forms Overview table to display a name of a person who created the form. +- Changed: Adjusted an error message for the Locked Field modal when attempting to delete required form fields. +- Changed: Hide image choice style options if image choices are not enabled. +- Changed: Improved sanitization for Page and Form IDs in Form embed wizard popup. +- Changed: Adjusted Weekly Summary email text for Lite users. +- Changed: Updated the WPForms > About Us page. +- Changed: Updated jQuery inputmask lib to 5.0.7-beta29. +- Changed: Updated DOMPurify lib to 2.3.4. +- Fixed: Missing search docs in the Form Builder Help. +- Fixed: Display empty table instead of empty state screen for Unread (0), Starred (0), Abandoned (0), etc., views. +- Fixed: Media modal 'Actions' menu was missing when using the Divi Builder. +- Fixed: PHP notice was generated on a form preview if a page template is changed. +- Fixed: Correctly handle the legacy widget options (show/hide form title and description) on the front-end. +- Fixed: If a form with configured Google reCAPTCHA v3 is submitted after 2 minutes, there was an error "Google reCAPTCHA verification failed, please try again later." +- Fixed: Better compatibility for From Name and From Email fields in the Form Builder > Notifications screen when the WP Mail SMTP plugin forces those values. +- Fixed: PHP warning occurred when the `%` symbol is used inside some Form Builder settings. +- Fixed: Form Preview didn't work properly on the upcoming Twenty Twenty-Two theme. +- Fixed: PHP timeout occurred in the Form Builder when large multi-level term taxonomies were used as dynamic choices for Checkboxes/Multiple Choices/Dropdown fields. +- Fixed: PHP fatal error generated in some cases when Site Health information was displayed. +- Fixed: WP.com VIP clients used to have caching issues with external data. +- Fixed: WooCommerce product import (CSV) to update existing products wasn't updating product images while WPForms was active. +- Fixed: Form couldn't be submitted on the Lite version of the plugin when it contained the Page Break field from the paid version. + += 1.7.1.2 = +- Fixed: Edge case when form tokens (anti-spam protection) failed verification at certain time of a new day. + += 1.7.1.1 = +- Changed: Improved translations by removing confusion if non-translatable placeholders are used. +- Changed: Improved support for WordPress Core UI colors and admin themes in the admin bar menu. +- Changed: Improved display of empty and hidden field labels in Form Builder preview. +- Changed: Field helper notification in the Form Builder now can be dismissed. +- Changed: Improved and standardized look of classic and modern Dropdown field across Form Builder, admin area, and frontend. +- Fixed: Strip slashes from Paragraph Text field when the value is dynamically populated. +- Fixed: SMTP settings page linked to Setup Wizard even when SMTP settings are already configured. +- Fixed: Notifications count in the admin bar is misaligned. +- Fixed: Field helper notification in the Form Builder overlaps and blocks Duplicate and Delete actions when hovered. +- Fixed: Non-latin (Punycode) email addresses are not converted for display in email suggestion hints. + += 1.7.0 = +- Added: Uncanny Automator integration. +- Changed: Updated jQuery Validation library to v1.9.3. +- Fixed: Incorrect handling of language files downloads when the plugin is activated, or site language is changed. +- Fixed: Alignment for admin notification counter. +- Fixed: Javascript error in Elementor page builder. +- Fixed: Embedded forms into global sidebar report about an error in the Divi page builder. +- Fixed: Change settings were not applied for a Duplicated Modern Dropdown field. +- Fixed: Form fields not displaying full width on mobile devices with Base form styling selected. + += 1.6.9 = +- Added: Keyboard Shortcuts informational popup in the Form Builder, triggered with `Ctrl + /` shortcut. +- Added: Separate category for templates added by addons. +- Added: Smart Tags support in Confirmation Messages. +- Added: Punycode support for the Email field to allow using international domain names. +- Added: Compatibility with PHP 8. +- Changed: Display only WPForms related actions on the Tools > Scheduled Actions page. +- Changed: Enable AJAX form submission by default for new forms created using Blank template and addon templates. +- Changed: Default state on the CAPTCHA Settings screen on new installs is now set to None. +- Changed: Improved consistency of various modal popups in the Form Builder. +- Changed: Speed up form preview in the Form Builder by limiting the number of choices displayed. +- Changed: Updated ActionScheduler library to 3.2.1. +- Fixed: Missing down arrow in the Dropdown field in the Twenty Twenty-One theme on a fresh install. +- Fixed: Clicking on the Field Options tab in the Form Builder always opens options for the first field in the form. +- Fixed: Form Setting panels can be broken by horizontally resizing textarea fields. +- Fixed: Insert/edit link button not working in the Confirmation Message editor. +- Fixed: Prevent editor styles from loading on various settings pages. +- Fixed: Missing Conditional Logic class in the Lite version causing errors when using custom integration that extends the `WPForms_Provider` class. +- Fixed: Console error in Chrome when re-ordering choices in the Dropdown, Checkboxes and Multiple Choice field settings. +- Fixed: Unrelated admin notices are no longer displayed on the WPForms admin pages. +- Fixed: Modern Dropdown field not initialized properly in the Divi Builder. +- Fixed: Dropdown preview in the Form Builder not updated if the first option's value is empty. +- Fixed: Preserve reply-to in the Notifications settings when creating a form from a template. +- Fixed: Minor button styling issue in WordPress 4.9. +- Fixed: Avoid error by allowing objects implementing the `__invoke()` method as a hook callback. +- Fixed: Various Dropdown field CSS issues in the Form Builder. + += 1.6.8.1 = +- Changed: Allow using right-click to open a form preview in a new tab or window. +- Fixed: Notifications disabled on the previous version were enabled after the 1.6.8 update. +- Fixed: Block preview in new WordPress 5.8 Widgets Block Editor now aligned properly. +- Fixed: Word wrapping issues in various places for non-English languages. + += 1.6.8 = +- Added: Form Builder visual modernization and improved user experience. +- Added: Form Builder is now more optimized, loading and performing faster. +- Added: More tooltips in various areas of the Form Builder to provide context for different options. +- Added: A lot more Templates that you can use for one-click forms creation. +- Added: Categorize Form Templates into different sections and improve search, allowing faster access and better user experience. +- Added: New Preview button for all Templates, so you can check how your form will look like before applying the Template. +- Changed: Dropped support for IE11 in the Form Builder (same as WordPress 5.8). +- Changed: Introducing tabs instead of accordion for Field Options in the Form Builder: General, Advanced, Smart Logic. +- Changed: Allow underscore symbol usage in Allowlist/Denylist in Email field. +- Changed: Updated DOMPurify lib to 2.3.0. +- Fixed: A lot of visual inconsistencies inside the Form Builder. +- Fixed: TinyMCE editor in the default Confirmation has 2 tabs (Visual, Text), which previously had incorrect height. +- Fixed: Firefox-specific issue that prevents fields from being drag-n-dropped inside the Preview area of the Form Builder. +- Fixed: Form Builder performance issue with large number of choices added to option fields. +- Fixed: Missing down arrow in Dropdown field in Twenty Twenty-One theme. +- Fixed: Checkboxes and Multiple Choice input fields rendered incorrectly in Twenty Twenty-One theme. +- Fixed: Breaking words when wrapping in Modern Dropdown field. +- Fixed: Download all relevant translations when initiating an upgrade from Lite to Pro on the plugin Settings page. +- Fixed: Preserve line breaks when pasting blocks of text into Paragraph field with word limit option enabled. + += 1.6.7.3 = +- Changed: Renamed a misspelled `wpforms_display_sumbit_spinner_src` filter to `wpforms_display_submit_spinner_src`, old name is now deprecated. +- Fixed: Expired transients are not deleted automatically. +- Fixed: Entries count race condition under high load in the plugin Lite version. +- Fixed: Form Builder product education links. + += 1.6.7.2 = +- Fixed: Admin notice option flag reference. + += 1.6.7.1 = +- Changed: Improved logic of pasting a text in the fields with word and character limits. +- Changed: Updated DOMPurify lib to 2.2.9. +- Changed: Some admin notices can be dismissed on a per-user basis. +- Fixed: Smart Tags don't parse dot and comma symbols well. +- Fixed: In rare cases, WPForms functions calls are not handled correctly inside the third-party frontend AJAX calls. +- Fixed: Incorrect `wpforms_smart_tag_process` filter deprecation notice. +- Fixed: Compatibility with the Elementor 3.1.x, 3.2.x and 3.3.x. + += 1.6.7 = +- Changed: Email Summaries can now be tweaked via the hook to have multiple "To" recipients. +- Changed: Email Summaries subject line is changed to reduce a chance of going into spam folder. +- Changed: Rewrote inline captcha scripts in vanilla JS to improve its compatibility with a third-party code. +- Changed: Replaced jQuery.isFunction() (deprecated as of jQuery 3.3) usages with a recommended counterpart. +- Changed: Refine smart tags system to improve extensibility. +- Changed: Each addon title is linked to a related documentation on the Addons page. +- Changed: Externally disabled fields are displayed inside the Form Builder as dismissible notices. +- Changed: Updated DOMPurify lib to 2.2.8. +- Fixed: Inconsistent Form Builder JS events loading order in jQuery 3+ across different browsers. + += 1.6.6 = +- Added: WordPress 5.7 new color scheme compatibility. +- Changed: Allow using 0/false values in choices label for Checkboxes, Multiple Choice, Dropdown fields. +- Changed: Better AJAX form submit error messages handling for the Email field. +- Changed: Refactored Tools page with all of its subpages for easier long-term support. +- Changed: Updated the WPForms > About Us page. +- Changed: Updated DOMPurify lib to 2.2.7. +- Changed: Replaced jQuery.ready() function usage with a recommended way since jQuery 3.0. +- Fixed: HTML layout is broken on the Analytics page for some site languages. +- Fixed: Incorrect permission checks for different places in the dashboard and the Form Builder. +- Fixed: RTL support for Name, Email fields. +- Fixed: Speed up the Form Builder rendering by loading certain scripts only when the Embed functionality is triggered. +- Fixed: The `iframe` HTML element was rendered incorrectly in the Twenty Twenty theme. +- Fixed: The Checkboxes and Multiple Choice fields CSS issues in Twenty Twenty-One theme. +- Fixed: WPForms Challenge was drunk in the Firefox browser. +- Fixed: reCAPTCHA doesn't render in a popup when the same form exists in another place. + += 1.6.5 = +- Changed: Updated DOMPurify lib to 2.2.6. +- Changed: Reload the Form Builder after Save and Embed option usage, and going back using the browser Back button. +- Changed: Disable From Name and From Email fields in Form Builder > Notifications when the WP Mail SMTP plugin forces those values. +- Fixed: The Gutenberg block JavaScript issue in WordPress 5.0-5.1.1 versions. +- Fixed: The Gutenberg block CSS issues in Twenty Twenty-One theme. +- Fixed: AMP incompatible script for Lite version. +- Fixed: Logs records on WPForms > Tools > Logs may not be clickable under certain circumstances, preventing previewing the logged information. +- Fixed: Email Summaries ignoring timezone offset while generating reports. +- Fixed: Email Suggestion feature when using two or more forms on a page. +- Fixed: Missing on-hover tooltips' after cloning/duplicating elements in the Form Builder. +- Fixed: Minor styling issues on the WPForms > Tools > Logs page. +- Fixed: Issues while importing forms saved in UTF-8 with BOM. +- Fixed: Improve performance of the WPForms Challenge. +- Fixed: WPForms module icon compatibility with the latest Elementor version. +- Fixed: Incorrect CPT and taxonomy terms alphabetical sorting of the Dynamic Choice option values for fields that support this Advanced Option. +- Fixed: Compatibility with WordPress 4.9 on the WPForms > Analytics/SMTP pages. +- Fixed: AJAX form submissions on some server configuration. +- Fixed: Improve Admin Menu Bar support since WordPress 5.2. + += 1.6.4.1 = +- Added: Frontend form warning indicating missing WPForms JS (visible to admin only). +- Changed: Help hCaptcha process all requests in a more efficient way, so bot detection will work better. +- Fixed: Improve pagination on Tools > Logs page inside the plugin admin area. +- Fixed: Various JavaScript issues on create post/page/form pages in WordPress 5.6. +- Fixed: Edge cases when custom fields mapping for providers was broken. + += 1.6.4 = +- Added: hCaptcha support, see WPForms > CAPTCHA settings. +- Added: Character/word limit validation message control inside Settings > Validation page. +- Changed: Dropdown fields using the Modern format will only show the search option if at least 8 choices are provided. +- Changed: Updated jQuery inputmask library to v5.0.6-beta20 +- Changed: Improved Form Builder Help documentation caching. +- Changed: Only create our Logs database table when specifically enabled in the Tools settings. +- Changed: Updated WPForms install count and rating information. +- Changed: Added "Copy to Clipboard" button inside Form Embed modal. +- Fixed: PHP Warning caused by Email field changes. +- Fixed: Editing multiline text in Paragraph field breaks new lines in submitted text. +- Fixed: Javascript conflicts with IE11. +- Fixed: Possible errors if web host had `set_time_limit()` disabled. +- Fixed: Email validation issue if form is in a page multiple times. +- Fixed: Footer links in the Summary email are now working properly. +- Fixed: Double-click issue for "Add New Account" buttons on the Settings > Integrations page. +- Fixed: Gutenberg block ignores "Include Form Styling" setting and forces full CSS stylesheet. + += 1.6.3.1 = +- Added: Native integration with Divi. +- Added: Email field Allowlist/Denylist restrictions, see Email field Advanced Options. +- Added: Form builder Help - contextual help, search docs, and more. +- Added: Logging, which can be enabled for troubleshooting from WPForms > Tools > Logs. +- Changed: Nicely notify users in the Form Builder when their WordPress session has expired, and they can't save the form anymore without a page reload. +- Changed: Better AJAX form submit field error messages handling. +- Fixed: Custom metabox heading styling due to WordPress core changes. +- Fixed: Page title smart tag not working in some use cases when using AJAX form submissions. +- Fixed: Various admin area display issues when the field label is empty. +- Fixed: Logo Translate plugin integration issues. +- Fixed: Elementor widget edge case issues. +- Fixed: Form settings could be visible before the form was created. +- Fixed: Form builder styling inconsistencies with Dropdown field styles. +- Fixed: Input mask issues with some mobile browsers, notably Chrome. +- Fixed: Always display the WPForms admin area in the user's language regardless of the site language. +- Fixed: Do not load certain JS variables twice on the front end. +- Fixed: Form title display issue inside the form builder with smaller view ports. +- Fixed: Elementor widget display issue on frontend when no form has been created. + += 1.6.2.3 = +- Changed: Added shortcode access to a form embed modal and enhanced modal navigation. +- Changed: Improved empty states for All Forms and Builder no fields preview panel. +- Changed: Improved Email Summaries footer text. +- Fixed: Custom validation messages for the fields appear correctly with Ajax form submission enabled. +- Fixed: Base style CSS introduces no additional scrollbars now. +- Fixed: Correct cursor for image choices validation messages. +- Fixed: Getting the license details from DB works as expected regardless of a context. +- Fixed: Getting the list of WPForms addons for user license level works as expected regardless of a context. +- Fixed: Number Slider field increment is checked to be more than zero. +- Fixed: Modern Dropdown validation works as expected for AJAX forms. + += 1.6.2.2 = +- Added: Caching friendly anti-spam protection (form tokens). +- Added: Native integration with Elementor: add to the page and create new forms right inside its builder. +- Added: Add a preview to the WPForms Gutenberg block. +- Changed: Greatly improve WPForms Challenge experience. +- Changed: Improve word counting when the Limit Length field option is used with Single Line Text/Paragraph Text fields. +- Changed: Improve Number field input restrictions with various browsers. +- Changed: Form field validation will now fail if input mask is enabled and user input does not complete required input mask elements. +- Changed: Icon for the Multiple Choice field is now more representative. +- Changed: Hide Delete button for a "Default Notification" in the Form Builder. +- Changed: Improve Lite migrations for WordPress Multisite installations. +- Changed: Update Constant Contact logos because of their rebranding. +- Changed: Improve descriptions of various plugin options and add more context to them. +- Fixed: Properly map fields in various addons when the first field is added in the Form Builder. +- Fixed: Issue when editing Checkbox field entry values when dynamic choices were enabled and multiple values were saved. +- Fixed: Refresh the list of form fields that are required to properly render marketing addons. +- Fixed: "Invalid Form" error for logged out users upon submitting an AJAX form on some server configurations. +- Fixed: Multiple Choice fields had issues in the builder with image choices with empty labels. +- Fixed: Make bulk actions at the bottom of the Forms Overview work. +- Fixed: "Single Line Text" and "Paragraph Text" calculate empty field word count incorrectly. +- Fixed: Do not allow Action Scheduler to generate errors during the plugin uninstallation procedure. +- Fixed: Input mask validation produces a JS error on jQuery 3.x. + += 1.6.1 = +- Added: Display a list of scheduled actions on WPForms > Tools > Scheduled Actions page. +- Added: Multiple select option for Dropdown field (off by default). +- Added: New Modern style option for Dropdown field (off by default). +- Added: Support Smart Tags in form descriptions. +- Fixed: Properly handle multiple clicks on various accordion-like elements on Form Builder and Settings > Integrations pages. +- Fixed: Remove all the plugin-related information on uninstall from the DB when opted-in in plugin settings. +- Fixed: Replace all new lines characters with spaces in notification email subjects (e.g., when an address field value is used in a subject via a smart tag). +- Fixed: Make sure the plugin doesn't crash when `iconv` PHP extension is not installed on a server. +- Fixed: Properly handle fields with choices with new lines in their labels when connected to Conditional Logic. +- Fixed: Google Invisible v2 reCAPTCHA should show Submit Button Processing Text when the form is submitted. +- Fixed: Display the list of countries in the "Countries" preset and in the Address field in alphabetical order regardless of the current site language. + += 1.6.0.2 = +- Fixed: The default value 0 (zero) of the Paragraph Text field does not display on the frontend. +- Fixed: Product education URL encoding issues. +- Fixed: Securely store WPForms anonymized cookie, so it cannot be sent along with cross-site requests (samesite). +- Fixed: Various PHP notices that may appear during wildly complicated forms submissions. +- Fixed: Improved escaping inside Form Builder live preview, props Fortinet Fortiguard Labs. +- Fixed: Incorrect interval value was used when running a cleanup job after notifications sent. +- Fixed: Delete orphaned plugin translation files when cleanup option in plugin settings is checked and the plugin is deleted from the site. + += 1.6.0.1 = +- Added: Admin bar menu item. +- Added: Form Builder alert when using browser "Back" button if form contains unsaved changes. +- Added: Settings > Emails: "Optimize Email Sending" option which enables sending emails asynchronously. +- Changed: Async form notification emails are now off by default. +- Changed: Number Slider field display improvements on small devices. +- Fixed: Error if there are some plugins or themes add `widget_title` filter. +- Fixed: Choice Images not displaying in form notifications if no label is set. +- Fixed: Form Builder "drag zone" not available when all fields are deleted. +- Fixed: Empty `div` appended to end of form display. +- Fixed: Block alignment issues (WordPress 5.4+). +- Fixed: Form Builder field option panel is not available if field is placed before the last form field. +- Fixed: Fallback population for fields with choices (checkbox, radio etc) when special characters are used. +- Fixed: Integrity of decoded data with additional sanitizing. +- Fixed: Compatibility issues with Elementor. + += 1.5.9.5 = +- Fixed: do not try to process entries in Lite. + += 1.5.9.4 = +- Changed: Improve async notification emails scheduling compatibility with certain caching plugins and site installs. +- Fixed: Some smart tags are not rendered correctly in the email notifications if sent asynchronously. + += 1.5.9.1 = +- Fixed: Checkbox image click doesn't work well to select an option. +- Fixed: Do not allow empty connection names (spaces only) for providers. + += 1.5.9 = +- IMPORTANT: Support for PHP 5.4 has been discontinued. If you are running PHP 5.4, you MUST upgrade PHP before installing WPForms 1.5.9. Failure to do that will disable WPForms core functionality. +- Added: New hooks and filters in several places, e.g. pre-deletion for entries/forms. +- Added: Async/scheduled tasks management support (e.g. sending emails in the background). +- Changed: Update the "How to Create Your First Contact Form" video URL. +- Changed: Update the "How to Embed A Form" video URL in a Form Builder "Embed" modal. +- Changed: Number Slider field: allow empty value in "Value Display" option. +- Changed: Improved admin input field focus states to be more consistent with WordPress core. +- Fixed: Numbers/Numbers Slider field: allow `0` value in email notifications and field smart tags output. +- Fixed: Required Checkbox fields with `0` value not passing validation. +- Fixed: Multiple Choice field could generate a PHP notice when the form was created after using a custom form template. +- Fixed: Initialize tooltips properly for newly created Notifications/Confirmations. +- Fixed: Ajax button should be re-enabled after incorrect form submission. +- Fixed: Remove Javascript alert notice when form is viewed in AMP. +- Fixed: Improve compatibility with the "Lazy Loading Feature Plugin" for Ajax spinner image on front-end. +- Fixed: Validation issue with required Checkbox fields using Image Choices. +- Fixed: Form builder preview issue with a field using Dynamic Choices setting. +- Fixed: Number Field values not allowing leading zeros. +- Fixed: Form Builder: templates search bar shows icon over text. +- Fixed: Security hardening and improvements. + += 1.5.8.2 = +- Fixed: Can't add new line in textareas in the form builder (Notifications > Message etc). +- Fixed: Choices editing block inside the form builder is hidden if creating a form using a template. + += 1.5.8.1 = +- Fixed: "Invalid form" error on form submit if AJAX form submissions is enabled and user is not logged in. + += 1.5.8 = +- Changed: Sullie logo in the Form Builder got his left hand back. +- Changed: Hide image choices options if dynamic choices is enabled. +- Changed: Adjusted Number field input to improve consistency across different browsers/devices. +- Changed: Improve Block detection to load CSS styles earlier. +- Changed: Open New Provider Connection modal after account has been added. +- Changed: Improve the way Lite and Pro versions of the plugin activation handled. +- Changed: Remove the unnecessary "Required" setting from a Number Slider field. +- Fixed: Number slider incorrect label display in the form Builder preview panel. +- Fixed: Quick links menu generating browser console error on Survey Print results page. +- Fixed: Required validation message isn't removed immediately on choices selection. +- Fixed: Form Builder styles compatibility with the new WordPress 5.3 styles. +- Fixed: Correctly process Enter key press in Smart phone field when Enter is used to submit a form. +- Fixed: Remove not-needed GET params from URL in Builder when a new form created to prevent race conditions with certain providers loading logic. +- Fixed: Properly scroll in all major browsers to a faulty field in a form, including multi-page forms. +- Fixed: Textarea character limit check returns an error if the content pasted is too large and contains '\r\n' line breaks. + += 1.5.7 = +- Added: Number Slider field. +- Added: reCAPTCHA field in Form Builder allowing to easily manage the reCAPTCHA for a form. +- Added: Admin area quick links menu. +- Added: Analytics sub-menu page. +- Added: SMTP sub-menu page. +- Changed: Improved forms bulk actions processing. +- Changed: Added a Form Builder splash screen which is displayed on mobile devices. +- Changed: Display warning message if JavaScript is disabled in the browser. +- Changed: Improved form front-end display and alignment for Gutenberg focused themes. +- Changed: Improved invisible reCAPTCHA behavior when form is submitted. +- Changed: Improved actions and filters for notification emails. +- Fixed: Duplicate of the duplicated form created on page reload. +- Fixed: Do not submit the form via AJAX (if enabled in form settings) when in AMP mode. +- Fixed: WordPress 5.3 admin area styling issues. +- Fixed: Number field incorrectly processing negative numbers. +- Fixed: `page_url` Smart Tag issues. + += 1.5.6.2 = +- Added: Default value for "Paragraph text" field. +- Fixed: WordPress 5.3 compatibility. +- Fixed: Smart Phone countries squashed dropdown on screen-width <= 600px on themes with Base form styling selected. +- Fixed: Field's Default value `0` disappears after saving and exiting the form builder. +- Fixed: Smart Email field did not recognize `.dev` top level domains as valid. + += 1.5.6.1 = +- N/A: Pro only release. + += 1.5.6 = +- IMPORANT: Support for PHP 5.3 has been discontinued. If you are running PHP 5.3, you MUST upgrade PHP before installing WPForms 1.5.6. Failure to do that will disable WPForms core functionality. +- Added: Single Line Text/Paragraph fields limitation options (limit by character or word count). +- Added: "Community" sub-menu page for easy access to helpful resources and links. +- Changed: Minimum PHP version requirement is now PHP 5.4. +- Changed: Minimum WordPress version requirement is now WordPress 4.9. + += 1.5.5.1 = +- Fixed: Broken reCAPTCHA checkbox in Builder > Settings > General if reCAPTCHA type does not set in WPForms > Settings. +- Fixed: Email field server-side validation issue. +- Fixed: Broken "Bulk add" option in Builder in IE 11. +- Fixed: Broken image choices selection and styling (layout) issue in IE 11. +- Fixed: Backward compatible filters for some fields when displaying them were missing. + += 1.5.5 = +- Added: WPForms details inside Site Health Info reports (Tools > Site Health > Info). +- Added: Filter `wpforms_emails_summaries_is_disabled` to easily disable Email Summaries functionality. +- Added: New smart tag: `{field_html_id="42"}` - that will postprocess field value and display its HTML representation. +- Changed: Improve `wpforms_get_ip()` IP detection and related `{user_ip}` smart-tag value. +- Fixed: Giving access to WPForms for Editors (and other roles) should give access to dashboard widget as well. +- Fixed: Add 'attr' property to 'input_container' for radio/checkbox-based fields. +- Fixed: Various typos. +- Fixed: WP Mail SMTP plugin description on About us page. + += 1.5.4.2 = +- Changed: Renamed certain actions with typos in their names, backwards-compatible. Added a deprecation text using `do_action_deprecated()`. +- Fixed: About Us page behaviour when WP Mail SMTP Pro is installed. +- Fixed: reCAPTCHA settings could be saved without providing reCAPTCHA type. + += 1.5.4.1 = +- Fixed: Plugin Settings > Misc > 'View Email Summary Example' link errors. + += 1.5.4 = +- Added: Email Summaries. +- Added: Form builder hotkey to save changes, CTRL + S. +- Changed: Team photo under WPForms > About Us. :) +- Fixed: Dynamic field population populates checkbox and radio fields values but not adding 'wpforms-selected' class to its containers. +- Fixed: Dropdown field attributes are now accessible with `wpforms_field_properties` filter. +- Fixed: Form builder field buttons overflowing when translated. +- Fixed: Dashboard widget PHP error. +- Fixed: Form can be submitted multiple times if "Submit button processing text" form setting empty. +- Fixed: "Error loading block" in Gutenberg if Additional CSS form settings are provided. + += 1.5.3.1 = +- Fixed: Checkbox field validation issue when field is not required. + += 1.5.3 = +- Added: AJAX form submissions. +- Added: Full support and compatiblity with Google AMP. +- Added: Google reCAPTCHA v3. +- Changed: WPForms uninstall script for better cleanup process. +- Changed: Email field mailcheck feature to offer additional controls. New filters: `wpforms_mailcheck_enabled`, `wpforms_mailcheck_domains`, and `wpforms_mailcheck_toplevel_domains`. +- Fixed: Special characters aren't encoded when Smart Tags are processed in query string. +- Fixed: Fields with Image choices are not working with some Android and older desktop browsers. +- Fixed: Form Builder: Several alert modals are displayed in batch if multiple providers have configuration issues. +- Fixed: WP_Post object is returned from `wpforms()->form->get()` if form data is requested with a non-WPForms post ID. + += 1.5.2.3 = +- Fixed: PHP error if checkbox field is empty when form is submitted. + += 1.5.2.2 = +- Fixed: PHP notice/warnings from undefined constant (typo). + += 1.5.2.1 = +- Fixed: Required Checkbox fields asking for all inputs to be checked to pass validation. + += 1.5.2 = +- Added: Choice Limit advanced option for Checkbox fields. +- Added: Smart domain name typo detection for Email fields. +- Added: New Gutenberg block keywords to help with discovery. +- Added: Link to "How to Properly Test Your WordPress Forms Before Launching" doc inside Gutenberg block. +- Changed: Form builder field delete icon, now a trash can. +- Changed: Updated jQuery inputmask library to v4.0.6. +- Changed: Updated jQuery validation plugin to v1.19.0. +- Changed: Clear Dashboard widget cache when form is created/deleted/updated. +- Fixed: Blank form if using form template containing `target="_blank"`. +- Fixed: Honeypot field not using unique IDs. +- Fixed: Duplicating forms creating another duplicate if afterwards the table was sorted. +- Fixed: Minor issues with Gutenberg editor. +- Fixed: Form Builder embed modal showing Classic Editor instructions for Gutenberg users. +- Fixed: Number field allowing non-numerical characters on iOS devices. +- Fixed: Field Dynamic Choices not showing in form preview when using "Post Type". + += 1.5.1.3 = +- Fixed: Importing forms that containing `target="_blank"`. +- Fixed: Quote support/display inside query param Smart Tags. +- Fixed: Other minor fixes. + += 1.5.1.1 = +- Fixed: Conflict with WordPress 5.1 if form contained target="_blank". +- Fixed: Unable to uncheck default Multiple Choice value in form builder after being set initially. +- Fixed: PHP error when entries are exported after a field has been deleted. +- Fixed: Form builder Email notification conditional logic settings display issue after new notification is added. +- Fixed: Conflict with some themes preventing Multiple Choice fields from being selectable. + += 1.5.1 = +- Added: Complete translations for Spanish, Italian, Japanese, and German. +- Added: Smart Tag for referencing user meta data, `{user_meta key=""}`. +- Changed: Improved support with LocoTranslate plugin. +- Changed: Refactored Form Preview functionality, no longer requiring hidden private page to be created. +- Changed: Always load full WPForms styling inside Gutenberg so forms render correctly. +- Fixed: Typos, grammar, and other i18n related issues. +- Fixed: Created alias class for `WPForms` to prevent issue with namespacing introduced in 1.5.0. +- Fixed: Dynamic population issue when using Image Choices field setting. + += 1.5.0.4 = +- Changed: Dashboard widget improvements. +- Fixed: Various typos. + += 1.5.0.3 = +- Changed: Minor improvements to Gutenberg block for WordPress 5.0. +- Fixed: Error when activating WPForms Pro if WPForms Lite is still activated. + += 1.5.0 = +- IMPORTANT: Support for PHP 5.2 has been discontinued. If you are running PHP 5.2, you MUST upgrade PHP before installing WPForms 1.5. Failure to do that will disable WPForms core functionality. +- Added: Dashboard widget. +- Added: WPForms Challenge: an interactive step-by-step guide to creating a form for new users. +- Added: Dynamic field population, available to enable from form settings. +- Added: "About Us" admin page (WPForms > About Us). +- Added: {user_first_name} and {user_last_name} Smart Tags. +- Changed: Improved randomizing if field is configured to randomize items. +- Changed: Improved i18n support. +- Fixed: Form builder errors if user had Visual Editor disabled in profile. +- Fixed: Form builder Windows styling issues. +- Fixed: Form builder dynamic choices warning not always removing. +- Fixed: Form builder "Show Layout" CSS formatting. +- Fixed: reCAPTCHA compatibility when form is inside OptinMonster popup. +- Fixed: Gutenberg block returning error if no forms have been created. + += 1.4.9 = +- Added: Pirate Forms importer. +- Changed: Some form builder tooltips to contain documentation links. +- Fixed: Form builder javascript conflict with jQuery non-conflict mode. +- Fixed: PHP Notice from WPForms widget. +- Fixed: Incorrect markup around Addons submenu item. + += 1.4.8.1 = +- Fixed: Certain confirmation settings, before 1.4.8, not displaying correctly in the form builder. + += 1.4.8 = +- Added: Gutenberg block. +- Added: WP Mail SMTP detection and hints in the form builder notification settings. +- Added: Alt and title tags to image choices images on frontend display. +- Changed: i18n improvements. +- Fixed: Incorrect param used with `shortcode_atts`. +- Fixed: Accessing `wpforms_setting` in frontend javascript before checking if it exists. +- Fixed: PHP error toggling form builder notifications in some use cases. +- Fixed: GDPR field Agreement text not updating in real time. +- Fixed: Marketing provider connections containing an escaped apostrophe. +- Fixed: Pressing "Enter" in the form builder resulting in unexpected behavior. +- Fixed: Security enhancements and other misc. bug fixes. + += 1.4.7.2 = +- Fixed: Honeypot field using a none unique CSS ID. +- Fixed: Form builder Bulk Add display issues in certain use cases. +- Fixed: Checkbox field values not saving if Show Values field option is enabled. + += 1.4.7.1 = +- Changed: Updated Russian translation. +- Fixed: Various i18n issues. + += 1.4.7 = +- Added: New Providers class and functionality. +- Changed: Old PHP version (5.2 and 5.3) admin warning adjusted to reflect new August 2018 time line. +- Fixed: Multiple Choice fields showing as Radio fields in the builder preview when first created. +- Fixed: Duplicating fields in the form builder causing issues with certain field types. +- Fixed: Escaping issue with provider connection names contained an apostrophe. +- Fixed: Alignment issues with the Addons page display. +- Fixed: Incorrect text on the Welcome activation page. + += 1.4.6 = +- Added: GDPR Enhancements plugin setting [doc](https://wpforms.com/how-to-create-gdpr-compliant-forms/). +- Added: GDPR Enhancement: User Agreement form field. +- Changed: PHP warning that alerts users support for PHP 5.4 and below will be dropped this summer. +- Changed: Spam logging, to improve performance. +- Fixed: Typo in base form CSS. +- Fixed: Stripping HTML from the checkbox and mulitple choice labels in the form builder. +- Fixed: Form builder icon visibility when field labels are hidden. + += 1.4.5.3 = +- Changed: Use minified admin assets when appropriate. +- Changed: Show helpful doc link in form embed modal. +- Fixed: reCAPTCHA v2 showing in form builder when using Invisible reCAPTCHA. +- Fixed: Remove jQuery shorthand references in `admin-utils` to prevent conflicts. + += 1.4.5.2 = +- Fixed: Incorrect documenation link for Input Mask. +- Fixed: Input Mask value disappearing when form builder is refreshed. + += 1.4.5.1 = +- Fixed: Dynamic choices not displaying correctly for Multiple Choice and Checkbox fields. + += 1.4.5 = +- Added: Image choices feature with Checkbox and Multiple Choice fields; Images can now be uploaded and displayed with your choices! +- Added: Custom input masks for Single Line Text fields (Advanced Options). +- Added: No-Conflict Mode for Google reCAPTCHA (Settings > reCAPTCHA). Removes other reCAPTCHA occurrences, to prevent conflicts. +- Added: SSL Connection Test (Tools > System Info). Quicky verify that your web host correct supports SSL connections. +- Added: `{user_full_name}` Smart Tag, displays users first and last name. +- Added: Discalimer / Terms of Service Display formatting option for Checkbox fields (Advanced Options). +- Added: Basic CSS styling for `disabled` fields. +- Added: Uninstall routine, available from Settings > Misc. +- Added: Form builder performance improvements. Editing a form with hundreds of fields is now 500%+ faster! +- Changed: New Settings tab: Misc, moved Hide Annoucements option to new tab. +- Changed: `{user_display}` Smart Tag diplays user's display name (in most cases, this is the user's name). +- Changed: All `
              ` attributes can now be changed via `wpforms_frontend_form_atts` filter. +- Fixed: Form builder tab icon alignment conflicts with third party plugin CSS. +- Fixed: Smart Tag dropdown display issues in the form builder. +- Fixed: Form builder drag and drop area disappearing if all fields are removed from a form. + += 1.4.4.1 = +- Changed: Textdomain loading to a later priority. +- Changed: Allow the `WPForms_Builder` class to be accessible. +- Changed: Move the confirmation message `wpautop` to an earlier priority to not conflict with content added using filters. +- Fixed: Form builder templates area not aligning correctly in some browsers. +- Fixed: Incorrect permissions check for annoucements feed. + += 1.4.4 = +- Added: Advanced setting for Multiple Choice and Checkbox fields to randomize choices +- Changed: Admin menu icons now uses SVG instead of custom font icon +- Changed: Reviewed all translatable strings, improved escaping and formatting +- Changed: External links have `rel="noopener noreferrer"` improve security +- Changed: Permission check centralized into a single function (`wpforms_current_user_can()`) +- Changed: Required label field text centralized into a single function (`wpforms_get_required_label()`) +- Fixed: Typo in German translation +- Fixed: Required email provider connection fields not highlighting when left empty +- Fixed: Inside form builder, notification name area breaking into multiple lines on smaller screens + += 1.4.3 = +- Added: Early filter for form data before form output, `wpforms_frontend_form_data` +- Changed: Standardize and tweak modal window button styles +- Changed: Default mail notification settings are now sent "from" the site administrator email; user email is used in Reply-To where applicable (to hopefully improve email deliverability) +- Changed: Removed "Hide form name and description" form setting as it was a common source or confusion +- Fixed: Site cache being flushed when it shouldn't have been, affecting performance in some scenarios +- Fixed: Country, state, months and days not properly exposed to i18n +- Fixed: CSV export dates not properly using i18n +- Fixed: WPForms custom post types omitting labels +- Fixed: Smart Tag value encoding issues with email notifications +- Fixed: Infinite recursion issue when using Dynamic Values option +- Fixed: PHP notice in form builder + += 1.4.2.2 = +- Changed: Announcement feed data + += 1.4.2.1 = +- Added: Setting to hide Announcement feed + += 1.4.2 = +- Added: Import your old Ninja Forms or Contact Form 7 forms! (WPForms > Tools > Import) +- Changed: Dropdown/Checkbox/Multiple Choice "Show Values" setting has been hidden by default to avoid confusion, can be re-enabled using the `wpforms_fields_show_options_setting` filter +- Fixed: reCAPTCHA now showing in the Form Builder preview when enabled +- Fixed: Encoded/escaped entities in email notifications +- Fixed: German translation issue + += 1.4.1.1 = +- Changed: Improved the loading order of javascript files for forms builder +- Changed: Update some strings for Russian translation + += 1.4.1= +- Added: Ability to rename Form>Settings>Notifications>Single notification panels +- Added: Define a minimum PHP version support in plugin readme.txt file +- Added: Display a friendly link to a full page version, when form is previewed on AMP pages +- Added: Ability to collapse Form>Settings>Notifications>Single notification panels +- Added: Russian translation +- Added: Allow more than 1 default selection for checkboxes fields +- Changed: Bump minimum WordPress version to 4.6 +- Changed: Improved localization support of the plugin +- Changed: Improved texts in various places +- Changed: Code style improvements throughout the plugin +- Changed: Combine WPFORMS_DEBUG and WPFORMS_DEVELOPMENT into one, use `wpforms_debug()` to check +- Changed: All HTTP requests now validate target sites SSL certificates with WP bundled certificates (since 3.7) +- Fixed: Notification email is empty if submitted form has no user values (displaying user friendly message instead) +- Fixed: Pressing enter in "Enter a notification name" popup does nothing +- Fixed: Fancy Fields can be dragged into form, but then get stuck +- Fixed: Deprecate a misspelled `wpforms_csv_export_seperator` filter, introduced a proper name for it +- Fixed: Conditional logic comparison issues if rule contained special characters + += 1.4.0.1 = +- Added: Non-dismissible Dashboard page admin only notice about PHP 5.2. + += 1.4.0 = +- Added: Announcement feed +- Changed: Core form templates are now displayed separate in the form builder from other custom templates +- Changed: Refactored CSV exporting for better support +- Fixed: Dynamic Choices large items modal render issue +- Fixed: Certain characters (such as comma) breaking CSV export format +- Fixed: Cursor issues inside the form builder +- Fixed: CSS Layout Generator class name typo +- Fixed: Dynamic choices with nesting sometimes causing form builder to time out +- Fixed: Settings page typos +- Fixed: Tools page export description text typo +- Fixed: Widget state not displayed correctly when adding via Customizer, without forcing user to select a form + += 1.3.9.1 = +- Changed: Template Export excludes array items with empty strings +- Fixed: Admin notices displaying on plugin Welcome/activation screen +- Fixed: WPForms admin pages displaying blank due to conflicts with a few other plugins + += 1.3.9 = +- Added: Complete redesign and refactor of admin area +- Added: New Settings API +- Added: Entry print preview compact mode +- Added: Entry print preview view entry notes +- Added: Dynamic field choices nest hierarchical items +- Added: Form import/export to Tools sub page +- Added: Form template export to Tools sub page +- Changed: System Info content to new Tools sub-page +- Changed: Shortcode provided in form builder now includes title/description arguments + += 1.3.8 = +- Changed: Available conditional logic rules/functionality with Providers have been updated +- Changed: Updated form builder modals (jquery-confirm.js) +- Changed: Many Form Builder performance enhancements +- Fixed: Number field validation message not saving +- Fixed: Email confirmation setting not displaying correctly with Small field size + += 1.3.7.4 = +- Added: Marketing tab in the form builder shows all possible providers. + += 1.3.7.3 +- Fixed: Required setting checkbox getting out of sync when duplicating fields +- Fixed: CSS class name typo in the form builder layout selector +- Fixed: Smart Tag `field_id` stripping line breaks +- Fixed: Form JS settings `wpforms_settings` missing due to some caching plugins +- Fixed: Empty classes causing `array` string to be printed in some use cases + += 1.3.7.2 = +- Fixed: Error for some users with PHP 5.4 and below + += 1.3.7.1 +- Fixed: Issue sending form notifications using email fields that had confirmation enabled + += 1.3.7 = +- Added: Google Invisible reCAPTCHA support +- Added: Custom field validation messages (see WPForms Settings page) +- Added: Bulk add choices for Checkbox, Multiple Choice, and Dropdown fields +- Added: Filter to allow email notifications to include empty fields, `wpforms_email_display_empty_fields` +- Added: Field CSS layout selector +- Changed: Leverage `wp_json_encode` instead of native PHP function +- Changed: Various WordPress coding standard improvements (work in progress) +- Changed: Refactored form front-end code to allow for more customizations +- Changed: Refactored text, textarea, email, number, and name fields to allow for more customizations (more coming next release) +- Fixed: Welcome page typo +- Fixed: SmartTag selectors getting off sync inside form builder + += 1.3.6.2 = +- Changed: Improved messaging on Entries page (Lite) + += 1.3.6.1 = +- Added: Option to disable activation welcome screen, `wpforms_activation_redirect` + += 1.3.6 = +- Added: Constant Contact integration +- Changed: Don't strip tags from plain text emails +- Fixed: Form builder javascript conflict with Clef plugin +- Fixed: Form builder logo URL double slash +- Fixed: Form builder embed code field not being selectable + += 1.3.5 = +- Fixed: Some browsers allowing unexpected characters inside number input fields +- Fixed: Issue with Dropdown field placeholder text +- Fixed: Other plugins loading conflicting scripts in form builder + += 1.3.4 = +- Added: reCAPTCHA improvements; reCAPTCHA now required if turned on +- Fixed: Date/Time Smart Tag not using WordPress time zone settings +- Fixed: Name field defaults not processing Smart Tags + += 1.3.3 = +- Added: Default value support in the email field +- Added: Various new hooks and filters for improved extendability +- Fixed: Possible errors if web host had `set_time_limit()` disabled + += 1.3.2 = +- Added: New form class, `.inline-fields`, to apply single line form layout +- Changed: All Smart Tags now available for Email Subject field in form notifications +- Fixed: Email addresses reporting as invalid of the domain contained capitalization +- Fixed: Author related Smart Tags not working in form notification fields +- Fixed: Typo on settings page related to Carbon Copy +- Fixed: PHP 7.1 warning messages inside the form builder + += 1.3.1.2 = +- Fixed: Plugin name to correctly indicate Lite for Lite release + += 1.3.1.1 = +- Fixed: Error with 1.3.1 Lite release + += 1.3.1 = +- Added: Smart Tags for author ID, email, and name +- Added: Carbon Copy (CC) support for form notifications; enable in WPForms Settings +- Fixed: Field duplication issues +- Fixed: TinyMCE "Add Form" button not opening modal with dynamic TinyMCE instances +- Fixed: Email formatting issues when using plain text formatting +- Fixed: Number field validation tripping when number submitted is zero +- Fixed: reCAPTCHA validation passing when reCAPTCHA left blank +- Fixed: Dropdown field size not reflecting in builder + += 1.3.0 = +- Added: Email field confirmation +- Added: Support for Visual Composer +- Added: Field class to force elements to full-width on mobile devices, `wpforms-mobile-full` +- Changed: Placeholders are added/updated in real-time for Dropdown fields in the form builder +- Changed: Add empty value to select element placeholders when displaying form for better markup validation +- Fixed: Multiple instances of reCAPTCHA on a page not correctly loading +- Fixed: Field choice defaults not restoring in form builder +- Fixed: Field alignment issues in the form builder when dragging field more than once +- Fixed: PHP fatal erroring if form notification email address provided is not valid upon sending +- Fixed: Compatibility issues when network activated on a Multisite install + += 1.2.9 = +- Added: Individual fields can be duplicated in the form builder +- Changed: How data is stored for fields using Dynamic Choices +- Fixed: Global assets setting causing errors in some cases +- Fixed: Writing setting ("correct invalidly nested XHTML") breaking forms containing HTML +- Fixed: Forms being displayed/included on the native WordPress Export page +- Fixed: Dynamic Choices erroring when used with Post Types +- Fixed: Form labels including blank IDs + += 1.2.8.1 = +- Fixed: Form javascript email validation being too strict (introduced in 1.2.8) + += 1.2.8 = +- Added: Dynamic choice feature for Dropdown, Multiple Choice, and Checkbox fields +- Changed: Loading order of templates and field classes - moved to `init` +- Changed: Form javascript email validation requires domain TLD to pass +- Fixed: HTML email notification templates uses site locale text-direction +- Fixed: Javascript in the form builder conflicting with certain locales + += 1.2.7 = +- Added: Store initial plugin activation date +- Added: Duplicate form submit protection +- Fixed: Strip slashes from entry data before processing + += 1.2.6 = +- Added: Miscellaneous internal improvements +- Fixed: Incorrectly named variables in the front-end javascript preventing features from properly being extendable + += 1.2.5.1 = +- Fixed: Removed duplicate Settings page title + += 1.2.5 = +- Added: Setting for Email template background color +- Added: Form setting for form wrapper CSS class +- Changed: Multiple Payment field stores Choice label text +- Changed: reCAPTCHA tweaks and added filter +- Changed: Improved IP detection +- Fixed: Mapped select fields in builder triggered JS error + += 1.2.4.1 = +- Fixed: Plugin settings page not correctly showing + += 1.2.4 = +- Added: Additional logging and error reporting +- Changed: Footer asset detection priority, for improved capability with other services +- Changed: Refactored and refined front-end javascript +- Fixed: Rogue PHP notices + += 1.2.3.2 = +- Fixed: Default field validation considered 0 as empty + += 1.2.3.1 = +- Fixed: Blank form email notification defaults + += 1.2.3 = +- Added: Form notification message setting +- Added: Additional Smart Tags available inside Form Settings panels +- Added: Process Smart Tags inside form confirmation messages and URLs +- Added: Hide WPForms Preview page from WordPress dashboard +- Added: System Details tab to WPForms Settings, to display debug information, etc +- Changed: Many form builder javascript improvements +- Changed: Improved internal logging and debugging tools +- Fixed: Large forms not always saving because of max_input_vars PHP setting + += 1.2.2.2 = +- Fixed: Javascript asset not loading due to incorrect path + += 1.2.2.1 = +- Fixed: Form select inside modal window overflowing when a form exists with a long title + += 1.2.2 = +- Changed: Choice Layouts now use flexbox instead of CSS columns for better rendering +- Fixed: Class name typo in a CSS column class introduced with 1.2.1 +- Fixed: PHP notice on Entries page when there are no forms + += 1.2.1 = +* Added: Drag and drop field buttons - simply drag the desired field to the form! +* Added: Choice Layout option for Checkboxes and Multiple Choice fields (under Advanced Options) +* Added: Full and expanded column class/grid support +* Changed: Refactored CSS column classes, previous classes are deprecated +* Fixed: Form ending with column classes not closing correctly +* Fixed: reCAPTCHA button overlaying submit button preventing it from being clicked + += 1.2.0.1 = +* Changed: Improved field and column gutter consistency + += 1.2.0 = +* Added: Form preview +* Added: Column classes for Checkbox and Multiple choice inputs +* Changed: Some fields did not have the correct (unique) CSS ID, this has been corrected, which means custom styling may need to be adjusted +* Changed: Removed nonce verification + += 1.1.8.4 = +* Changed: Form notification settings hide if set to Off + += 1.1.8.3 = +* Fixed: Issue with submit button position when form ends with columns classes + += 1.1.8.2 = +* Changed: reCAPTCHA settings description to include link to how-to article + += 1.1.8.1 = +* Fixed: PHP warnings inside the form builder + += 1.1.8 = +* Changed: Moved email related settings into email settings group + += 1.1.7.2 = +* Added: "WPForm" to new-content admin bar menu item + += 1.1.7.1 = +* Changed: Removed "New" field name prefix + += 1.1.7 = +* Added: Smart Tag for Dropdown/Multiple choice raw values, allowing for conditional email address notifications (https://wpforms.com/docs/how-to-create-conditional-form-notifications-in-wpforms) +* Added: Three column CSS field classes (https://wpforms.com/docs/how-to-create-multi-column-form-layouts-in-wpforms/) +* Changed: Checkbox/Multiple Choice fields allow certain HTML to display in choice labels + += 1.1.6.1 = +* Added: Support for WordPress Zero Spam plugin (https://wordpress.org/plugins/zero-spam/) +* Fixed: Issue when stacking fields with 2 column classes + += 1.1.5.3 = +* Changed: Email Header Image setting description to include recommended sizing + += 1.1.5.2 = +* Fixed: reCAPTCHA cutting off with full form theme + += 1.1.5.1 = +* Fixed: Debug output from wpforms.js + += 1.1.5 = +* Changed: HTML Email template footer text appearance + += 1.1.4.2 = +* Fixed: HTML emails not displaying correctly in Thunderbird + += 1.1.4.1 = +* Fixed: Form builder textareas not displaying full width + += 1.1.4 = +* Added: Form general setting for "Submit Button CSS Class" +* Added: Duplicate forms from the Forms Overview page (All Forms) +* Changed: Adjusted field display inside the Form Builder to better resemble full theme +* Fixed: Don't allow inserting shortcode via modal if there are no forms +* Fixed: Error when deleting a form + += 1.1.3.2 = +* Added: Suggestion form template + += 1.1.3.1 = +* Fixed: Form base theme CSS compatibility issue with Firefox + += 1.1.3 = +* Added: New class that handles sending/processing emails +* Added: Form notification setting for "From Address", defaults to site administrator's email address +* Added: HTML email template for sleek emails (enabled by default, see more below) +* Added: General setting to configure email notification format +* Added: General setting to optionally configure email notification header image +* Changed: Default email notification format is now HTML, can go back to plain text format via option on WPForms > Settings page +* Changed: Empty fields are no longer included in email notifications +* Fixed: Issue with Checkbox field when empty + += 1.1.2 = +* Added: Form option to scroll page to form after submit, defaults on for new forms +* Changed: Revamped "Full" form theme to be more consistent across different themes, browsers, and devices +* Changed: Full theme and bare theme separated + += 1.1.1.1 = +* Changed: Upgrade information + += 1.1.1 = +* Fixed: Settings page typo + += 1.1 = +* Changed: CSS updates to improve compatibility +* Fixed: PHP notices when saving plugin Settings + += 1.0.9 = +* Changed: Email field required by default + += 1.0.8 = +* Fixed: Name field setting always showing Required +* Fixed: Debug function incorrectly requiring WP_DEBUG + += 1.0.7 = +* Changed: CSS tweaks +* Fixed: Filter (wpforms_manage_cap) incorrectly named in some instances + += 1.0.6 = +* Added: Embed button inside the Form Builder +* Added: Basic two column CSS class support +* Added: French translation +* Changed: Form names are no longer required, if no form name is provided the template name is used +* Changed: Inputmask script, for better broad device support +* Changed: Field specific assets are now conditionally loaded +* Changed: CSS tweaks for form display +* Fixed: Issue with Date/Time field +* Fixed: Issue Address field preventing Country select from hiding in some configurations +* Fixed: Localization string errors + += 1.0.5 = +* Changed: Checkboxes/Dropdown/Multiple Choice fields always show choice label value in e-mail notifications +* Fixed: PHP notices inside the Form Builder +* Fixed: Typo inside Form Builder tooltip + += 1.0.4.2 = +* Changed: Removed files not needed for WordPress.org release [Lite] + += 1.0.4.1 = +* Added: Check for TinyMCE in the builder before triggering TinyMCE save +* Fixed: Sub labels showing when configured to hide +* Fixed: Forms pagination number screen setting not saving +* Fixed: Email notification setting always displaying "On" + += 1.0.4 = +* Changed: Improved marketing provider conditional logic +* Changed: Addons page [Lite] +* Fixed: Variable assignment in the builder + += 1.0.3 = +* Added: Basic TinyMCE editor for form confirmation messages +* Changed: Removed form ID from form overview table, ID still visible in shortcode column +* Fixed: Checkbox/radio form elements alignment +* Fixed: Quotation slashes in email notification text +* Fixed: SSL verification preventing proper API calls on some servers + += 1.0.2 = +* Added: Widget to display form +* Added: Function to display form, `wpforms_display( $form_id )` +* Changed: Default notification settings for Contact form template +* Changed: Success message styling for full form theme + += 1.0.1 = +* Added: "From Name" and "Reply To" Setting>Notification fields +* Added: Smart Tags feature to all Setting>Notification fields + += 1.0.0 = +* Initial release. diff --git a/wp-content/plugins/wpforms-lite/includes/admin/admin.php b/wp-content/plugins/wpforms-lite/includes/admin/admin.php new file mode 100644 index 0000000..daa3546 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/admin.php @@ -0,0 +1,785 @@ +=' ) ) { + wp_enqueue_style( + 'wpforms-admin-wp5.7-color', + WPFORMS_PLUGIN_URL . "assets/css/admin-wp5.7-colors{$min}.css", + [ 'wpforms-admin' ], + WPFORMS_VERSION + ); + } +} +add_action( 'admin_enqueue_scripts', 'wpforms_admin_styles', 5 ); + +/** + * Load scripts for all WPForms-related admin screens. + * + * @since 1.3.9 + * + * @noinspection HtmlUnknownTarget + */ +function wpforms_admin_scripts() { + + if ( ! wpforms_is_admin_page() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + if ( wpforms_is_admin_page( 'settings', 'email' ) ) { + wp_enqueue_media(); + } + + // jQuery.Confirm Reloaded. + wp_enqueue_script( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.js', + [ 'jquery' ], + '1.0.0', + false + ); + + // Minicolors (color picker). + wp_enqueue_script( + 'minicolors', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.minicolors/jquery.minicolors.min.js', + [ 'jquery' ], + '2.3.6', + false + ); + + // Choices.js. + wp_enqueue_script( + 'choicesjs', + WPFORMS_PLUGIN_URL . 'assets/lib/choices.min.js', + [], + '10.2.0', + false + ); + + // jQuery Conditionals. + wp_enqueue_script( + 'conditions', + WPFORMS_PLUGIN_URL . 'assets/lib/conditions.min.js', + [ 'jquery' ], + '1.1.0', + false + ); + + wp_enqueue_script( + 'wpforms-generic-utils', + WPFORMS_PLUGIN_URL . "assets/js/share/utils{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + // Load admin utils JS. + wp_enqueue_script( + 'wpforms-admin-utils', + WPFORMS_PLUGIN_URL . "assets/js/admin/share/admin-utils{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + // Main admin script. + wp_enqueue_script( + 'wpforms-admin', + WPFORMS_PLUGIN_URL . "assets/js/admin/admin{$min}.js", + [ 'jquery', 'underscore', 'wp-util' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-multiselect-checkboxes', + WPFORMS_PLUGIN_URL . 'assets/lib/wpforms-multiselect/wpforms-multiselect-checkboxes.min.js', + [], + WPFORMS_VERSION, + true + ); + + $default_choicesjs_loading_text = esc_html__( 'Loading...', 'wpforms-lite' ); + $default_choicesjs_no_results_text = esc_html__( 'No results found', 'wpforms-lite' ); + $default_choicesjs_no_choices_text = esc_html__( 'No choices to choose from', 'wpforms-lite' ); + + $image_extensions = wpforms_chain( get_allowed_mime_types() ) + ->map( + static function ( $mime ) { + + return strpos( $mime, 'image/' ) === 0 ? $mime : ''; + } + ) + ->array_filter() + ->array_values() + ->value(); + + $strings = [ + 'addon_activate' => esc_html__( 'Activate', 'wpforms-lite' ), + 'addon_activated' => esc_html__( 'Activated', 'wpforms-lite' ), + 'addon_active' => esc_html__( 'Active', 'wpforms-lite' ), + 'addon_deactivate' => esc_html__( 'Deactivate', 'wpforms-lite' ), + 'addon_inactive' => esc_html__( 'Inactive', 'wpforms-lite' ), + 'addon_install' => esc_html__( 'Install Addon', 'wpforms-lite' ), + 'addon_error' => sprintf( + wp_kses( /* translators: %1$s - addon download URL, %2$s - link to manual installation guide, %3$s - link to contact support. */ + __( 'Could not install the addon. Please download it from wpforms.com and install it manually, or contact support for assistance.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => true, + 'target' => true, + 'rel' => true, + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/account/licenses/', 'Licenses', 'Addons Error' ) ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-manually-install-addons-in-wpforms/', 'Addons Doc', 'Addons Error' ) ), + esc_url( wpforms_utm_link( 'https://wpforms.com/contact/', 'Contact', 'Addons Error' ) ) + ), + 'plugin_error' => esc_html__( 'Could not install the plugin automatically. Please download and install it manually.', 'wpforms-lite' ), + 'addon_search' => esc_html__( 'Searching Addons', 'wpforms-lite' ), + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'cancel' => esc_html__( 'Cancel', 'wpforms-lite' ), + 'continue' => esc_html__( 'Continue', 'wpforms-lite' ), + 'close' => esc_html__( 'Close', 'wpforms-lite' ), + 'close_refresh' => esc_html__( 'Close and Refresh', 'wpforms-lite' ), + 'column_selector_title' => esc_html__( 'Change columns to display', 'wpforms-lite' ), + 'column_selector_no_fields' => esc_html__( 'Sorry, there are no form fields that match your criteria.', 'wpforms-lite' ), + 'column_selector_no_meta' => esc_html__( 'Sorry, there is no entry meta that match your criteria.', 'wpforms-lite' ), + 'entry_delete_confirm' => esc_html__( 'Are you sure you want to delete this entry? This will also remove all associated files, notes, and logs.', 'wpforms-lite' ), + 'entry_delete_all_confirm' => esc_html__( 'Are you sure you want to delete ALL entries? This will also remove all associated files, notes, and logs.', 'wpforms-lite' ), + 'entry_delete_n_confirm' => sprintf( /* translators: %s - entry count. */ + esc_html__( 'Are you sure you want to delete %s entries? This will also remove all associated files, notes, and logs.', 'wpforms-lite' ), + '{entry_count}' + ), + 'entry_trash_confirm' => esc_html__( 'Are you sure you want to trash this entry? This will also remove all associated files, notes, and logs.', 'wpforms-lite' ), + 'entry_trash_all_confirm' => esc_html__( 'Are you sure you want to trash ALL entries? This will also remove all associated files, notes, and logs.', 'wpforms-lite' ), + 'entry_trash_n_confirm' => sprintf( /* translators: %s - entry count. */ + esc_html__( 'Are you sure you want to trash %s entries? This will also remove all associated files, notes, and logs.', 'wpforms-lite' ), + '{entry_count}' + ), + 'entry_empty_fields_hide' => esc_html__( 'Hide Empty Fields', 'wpforms-lite' ), + 'entry_empty_fields_show' => esc_html__( 'Show Empty Fields', 'wpforms-lite' ), + 'entry_note_delete_confirm' => esc_html__( 'Are you sure you want to delete this note?', 'wpforms-lite' ), + 'entry_unstar' => esc_html__( 'Unstar entry', 'wpforms-lite' ), + 'entry_star' => esc_html__( 'Star entry', 'wpforms-lite' ), + 'entry_read' => esc_html__( 'Mark entry read', 'wpforms-lite' ), + 'entry_unread' => esc_html__( 'Mark entry unread', 'wpforms-lite' ), + 'form_delete_confirm' => esc_html__( 'Are you sure you want to delete this form and all its entries?', 'wpforms-lite' ), + 'template_delete_confirm' => esc_html__( 'Are you sure you want to delete this template and all its entries?', 'wpforms-lite' ), + 'form_delete_n_confirm' => esc_html__( 'Are you sure you want to delete the selected forms and all their entries?', 'wpforms-lite' ), + 'form_delete_all_confirm' => esc_html__( 'Are you sure you want to delete ALL the forms in the trash and all their entries?', 'wpforms-lite' ), + 'form_duplicate_confirm' => esc_html__( 'Are you sure you want to duplicate this form?', 'wpforms-lite' ), + 'template_duplicate_confirm' => esc_html__( 'Are you sure you want to duplicate this template?', 'wpforms-lite' ), + 'heads_up' => esc_html__( 'Heads up!', 'wpforms-lite' ), + 'importer_forms_required' => esc_html__( 'Please select at least one form to import.', 'wpforms-lite' ), + 'isPro' => wpforms()->is_pro(), + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + 'almost_done' => esc_html__( 'Almost Done', 'wpforms-lite' ), + 'thanks_for_interest' => esc_html__( 'Thanks for your interest in WPForms Pro!', 'wpforms-lite' ), + 'oops' => esc_html__( 'Oops!', 'wpforms-lite' ), + 'uh_oh' => esc_html__( 'Uh oh!', 'wpforms-lite' ), + 'ok' => esc_html__( 'OK', 'wpforms-lite' ), + 'plugin_install_activate_btn' => esc_html__( 'Install and Activate', 'wpforms-lite' ), + 'plugin_install_activate_confirm' => esc_html__( 'needs to be installed and activated to import its forms. Would you like us to install and activate it for you?', 'wpforms-lite' ), + 'plugin_activate_btn' => esc_html__( 'Activate', 'wpforms-lite' ), + 'plugin_activate_confirm' => esc_html__( 'needs to be activated to import its forms. Would you like us to activate it for you?', 'wpforms-lite' ), + 'provider_delete_confirm' => esc_html__( 'Are you sure you want to disconnect this account? Any form connections you have set up will be lost.', 'wpforms-lite' ), + 'provider_delete_error' => esc_html__( 'Could not disconnect this account.', 'wpforms-lite' ), + 'provider_auth_error' => esc_html__( 'Could not authenticate with the provider.', 'wpforms-lite' ), + 'connecting' => esc_html__( 'Connecting...', 'wpforms-lite' ), + 'save_refresh' => esc_html__( 'Save and Refresh', 'wpforms-lite' ), + 'save_changes' => esc_html__( 'Save Changes', 'wpforms-lite' ), + 'server_error' => esc_html__( 'Unfortunately there was a server connection error.', 'wpforms-lite' ), + 'unknown_error' => esc_html__( 'Unknown error.', 'wpforms-lite' ), + 'settings_form_style_base' => sprintf( + wp_kses( /* translators: %s - WPForms.com docs page URL. */ + __( 'You\'ve selected Base Styling Only, which may result in styling issues. Please check out our tutorial for common issues and recommendations.', 'wpforms-lite' ), + [ + 'strong' => [], + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-choose-an-include-form-styling-setting/', 'settings-license-modal', 'Base Styling Only' ) ) + ), + 'settings_form_style_none' => sprintf( + wp_kses( /* translators: %s - WPForms.com docs page URL. */ + __( 'You\'ve selected No Styling, which will likely result in significant styling issues and is recommended only for developers. Please check out our tutorial for more details and recommendations.', 'wpforms-lite' ), + [ + 'strong' => [], + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-choose-an-include-form-styling-setting/', 'settings-license-modal', 'No Styling' ) ) + ), + 'testing' => esc_html__( 'Testing', 'wpforms-lite' ), + 'recreating' => esc_html__( 'Recreating', 'wpforms-lite' ), + 'upgrade_completed' => esc_html__( 'Upgrade was successfully completed!', 'wpforms-lite' ), + 'upload_image_title' => esc_html__( 'Upload or Choose Your Image', 'wpforms-lite' ), + 'upload_image_button' => esc_html__( 'Use Image', 'wpforms-lite' ), + 'upload_image_extensions' => $image_extensions, + 'upload_image_extensions_error' => esc_html__( 'You tried uploading a file type that is not allowed. Please try again.', 'wpforms-lite' ), + 'upgrade_modal' => wpforms_get_upgrade_modal_text(), + 'choicesjs_loading' => $default_choicesjs_loading_text, + 'choicesjs_no_results' => $default_choicesjs_no_results_text, + 'choicesjs_no_choices' => $default_choicesjs_no_choices_text, + 'debug' => wpforms_debug(), + 'edit_license' => esc_html__( 'To edit the License Key, please first click the Remove Key button. Please note that removing this key will remove access to updates, addons, and support.', 'wpforms-lite' ), + 'something_went_wrong' => esc_html__( 'Something went wrong', 'wpforms-lite' ), + 'success' => esc_html__( 'Success', 'wpforms-lite' ), + 'loading' => esc_html__( 'Loading...', 'wpforms-lite' ), + 'use_default_template' => esc_html__( 'Use Default Template', 'wpforms-lite' ), + 'error_select_template' => esc_html__( 'Something went wrong while applying the form template. Please try again. If the error persists, contact our support team.', 'wpforms-lite' ), + 'try_again' => sprintf( + wp_kses( /* translators: %s - link to WPForms.com docs page. */ + __( 'Something went wrong. Please try again, and if the problem persists, contact our support team.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/contact/', 'error-modal', 'contact our support team' ) ) + ), + ]; + + /** + * Allow theme/plugin developers to adjust main strings on backend/admin part. + * + * @since 1.3.9 + * + * @param array $strings Main admin localized strings. + */ + $strings = (array) apply_filters( 'wpforms_admin_strings', $strings ); + + /** + * Allow theme/plugin developers to adjust Choices.js settings on backend/admin part. + * + * @see https://github.com/Choices-js/Choices#setup For configuration options. + * + * @since 1.7.3 + * + * @param array $choicesjs_config Choicesjs configuration. + */ + $choicesjs_config = (array) apply_filters( + 'wpforms_admin_scripts_choicesjs_config', + [ + 'searchEnabled' => false, + // Forces the search to look for exact matches anywhere in the string. + 'fuseOptions' => [ + 'threshold' => 0.1, + 'distance' => 1000, + ], + 'loadingText' => ! empty( $strings['choicesjs_loading'] ) ? $strings['choicesjs_loading'] : $default_choicesjs_loading_text, + 'noResultsText' => ! empty( $strings['choicesjs_no_results'] ) ? $strings['choicesjs_no_results'] : $default_choicesjs_no_results_text, + 'noChoicesText' => ! empty( $strings['choicesjs_no_choices'] ) ? $strings['choicesjs_no_choices'] : $default_choicesjs_no_choices_text, + ] + ); + + wp_localize_script( + 'wpforms-admin', + 'wpforms_admin_choicesjs_config', + $choicesjs_config + ); + + wp_localize_script( + 'wpforms-admin', + 'wpforms_admin', + $strings + ); +} +add_action( 'admin_enqueue_scripts', 'wpforms_admin_scripts' ); + +/** + * Add body class to WPForms admin pages for easy reference. + * + * @since 1.3.9 + * + * @param string $classes CSS classes, space separated. + * + * @return string + */ +function wpforms_admin_body_class( $classes ) { + + if ( ! wpforms_is_admin_page() ) { + return $classes; + } + + return "$classes wpforms-admin-page"; +} +add_filter( 'admin_body_class', 'wpforms_admin_body_class' ); + +/** + * Output the WPForms admin header. + * + * @since 1.3.9 + */ +function wpforms_admin_header() { + + // Bail if we're not on a WPForms screen or page (also exclude form builder). + if ( ! wpforms_is_admin_page() ) { + return; + } + + /** + * Prevent admin header outputting if needed. + * + * @since 1.5.7 + * + * @param bool $is_admin_header_visible True if admin page header should be outputted. + */ + if ( ! apply_filters( 'wpforms_admin_header', true ) ) { + return; + } + + // Omit header from the Welcome activation screen. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated + if ( sanitize_key( $_REQUEST['page'] ) === 'wpforms-getting-started' ) { + return; + } + + $current_screen = get_current_screen(); + $show_screen_options = $current_screen && $current_screen->show_screen_options(); + + /** + * Fire before the admin header is outputted. + * + * @since 1.5.7 + */ + do_action( 'wpforms_admin_header_before' ); + ?> +
              +
              + + [ + 'medium' => 'header_links', + 'content' => $current_page . '_docs', + ], + 'support' => [ + 'medium' => 'header_links', + 'content' => $current_page . '_support', + ], + ] + ); + ?> +
              + [], // remove all callbacks. + 'admin_notices' => [], + 'all_admin_notices' => [], + 'admin_footer' => [ + 'render_delayed_admin_notices', // remove this particular callback. + ], + ]; + + // Extra deny callbacks (will be removed for each hook tag defined in $rules). + $common_deny_callbacks = [ + 'wpformsdb_admin_notice', // 'Database for WPForms' plugin. + ]; + + $notice_types = array_keys( $rules ); + + foreach ( $notice_types as $notice_type ) { + if ( empty( $wp_filter[ $notice_type ]->callbacks ) || ! is_array( $wp_filter[ $notice_type ]->callbacks ) ) { + continue; + } + + $remove_all_filters = empty( $rules[ $notice_type ] ); + + foreach ( $wp_filter[ $notice_type ]->callbacks as $priority => $hooks ) { + foreach ( $hooks as $name => $arr ) { + if ( is_object( $arr['function'] ) && is_callable( $arr['function'] ) ) { + if ( $remove_all_filters ) { + unset( $wp_filter[ $notice_type ]->callbacks[ $priority ][ $name ] ); + } + continue; + } + + $class = ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) ? strtolower( get_class( $arr['function'][0] ) ) : ''; + + // Remove all callbacks except WPForms notices. + if ( $remove_all_filters && strpos( $class, 'wpforms' ) === false ) { + unset( $wp_filter[ $notice_type ]->callbacks[ $priority ][ $name ] ); + continue; + } + + $cb = is_array( $arr['function'] ) ? $arr['function'][1] : $arr['function']; + + // Remove a specific callback. + if ( ! $remove_all_filters ) { + if ( in_array( $cb, $rules[ $notice_type ], true ) ) { + unset( $wp_filter[ $notice_type ]->callbacks[ $priority ][ $name ] ); + } + continue; + } + + // Remove non-WPForms callbacks from `$common_deny_callbacks` denylist. + if ( in_array( $cb, $common_deny_callbacks, true ) ) { + unset( $wp_filter[ $notice_type ]->callbacks[ $priority ][ $name ] ); + } + } + } + } +} +add_action( 'admin_print_scripts', 'wpforms_admin_hide_unrelated_notices' ); + +/** + * Upgrade a link used within the various admin pages. + * + * Previously was only included as a method in wpforms-lite.php, but made + * available globally in 1.3.9. + * + * @since 1.3.9 + * + * @param string $medium URL parameter: utm_medium. + * @param string $content URL parameter: utm_content. + * + * @return string + */ +function wpforms_admin_upgrade_link( $medium = 'link', $content = '' ) { + + $url = 'https://wpforms.com/lite-upgrade/'; + + if ( wpforms()->is_pro() ) { + $license_key = wpforms_get_license_key(); + $url = add_query_arg( + 'license_key', + sanitize_text_field( $license_key ), + 'https://wpforms.com/pricing/' + ); + } + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + $upgrade = wpforms_utm_link( $url, apply_filters( 'wpforms_upgrade_link_medium', $medium ), $content ); + + /** + * Modify upgrade link. + * + * @since 1.5.1 + * + * @param string $upgrade Upgrade links. + */ + return apply_filters( 'wpforms_upgrade_link', $upgrade ); +} + +/** + * Check the current PHP version and display a notice if on unsupported PHP. + * + * @since 1.4.0.1 + * @since 1.5.0 Raising this awareness of old PHP version message from 5.2 to 5.3. + * @since 1.7.9 Raising this awareness of old PHP version message to 7.1. + * @since 1.8.4 Raising this awareness of old PHP version message to 7.3. + * + * @noinspection HtmlUnknownTarget + */ +function wpforms_check_php_version() { + + // Display for PHP below 7.4. + if ( PHP_VERSION_ID >= 70400 ) { + return; + } + + // Display for admins only. + if ( ! is_super_admin() ) { + return; + } + + // Display on Dashboard page only. + if ( isset( $GLOBALS['pagenow'] ) && $GLOBALS['pagenow'] !== 'index.php' ) { + return; + } + + // Display the notice, finally. + Notice::error( + '

              ' . + sprintf( + wp_kses( /* translators: %1$s - WPForms plugin name; %2$s - WPForms.com URL to a related doc. */ + __( 'Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. Read more for additional information.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + 'WPForms', + 'https://wpforms.com/docs/supported-php-version/' + ) . + '

              ' . + wp_kses( + __( 'Please Note: Support for PHP 7.3 and below will be discontinued soon. After this, if no further action is taken, WPForms functionality will be disabled.', 'wpforms-lite' ), + [ + 'strong' => [], + 'em' => [], + ] + ) . + '

              ' + ); +} +add_action( 'admin_init', 'wpforms_check_php_version' ); + +/** + * Get an upgrade modal text. + * + * @since 1.4.4 + * + * @param string $type Either "pro" or "elite". Default is "pro". + * + * @return string + * @noinspection HtmlUnknownTarget + */ +function wpforms_get_upgrade_modal_text( $type = 'pro' ) { + + switch ( $type ) { + case 'elite': + $level = 'WPForms Elite'; + break; + + case 'pro': + default: + $level = 'WPForms Pro'; + } + + if ( wpforms()->is_pro() ) { + return '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com contact page URL. */ + __( 'Thank you for considering upgrading. If you have any questions, please let us know.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/contact/', + 'Upgrade Follow Up Modal', + 'Contact Support' + ) + ) + ) . + '

              ' . + '

              ' . + wp_kses( + __( 'After upgrading, your license key will remain the same.
              You may need to do a quick refresh to unlock your new addons. In your WordPress admin, go to WPForms » Settings. If you don\'t see your updated plan, click refresh.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'em' => [], + ] + ) . + '

              ' . + '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com upgrade from Lite to paid docs page URL. */ + __( 'Check out our documentation for step-by-step instructions.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/upgrade-wpforms-license/', 'Upgrade License Doc', 'Upgrade Now' ) ) + ) . + '

              '; + } + + return '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com contact page URL. */ + __( 'If you have any questions or issues just let us know.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/contact/', + 'Upgrade Intention Alert', + 'Upgrade Intention Alert' + ) + ) + ) . + '

              ' . + '

              ' . + sprintf( + wp_kses( /* translators: %s - license level, WPForms Pro or WPForms Elite. */ + __( 'After purchasing a license, just enter your license key on the WPForms Settings page. This will let your site automatically upgrade to %s! (Don\'t worry, all your forms and settings will be preserved.)', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + ] + ), + $level + ) . + '

              ' . + '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com upgrade from Lite to paid docs page URL. */ + __( 'Check out our documentation for step-by-step instructions.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/upgrade-wpforms-lite-paid-license/', + 'Upgrade Intention Alert', + 'Upgrade Documentation' + ) + ) + ) . + '

              '; +} + +/** + * Hide the wp-admin area "Version x.x" in footer on WPForms pages. + * + * @since 1.5.7 + * + * @param string $text Default "Version x.x" or "Get Version x.x" text. + * + * @return string + */ +function wpforms_admin_hide_wp_version( $text ) { + + // Reset text if we're not on a WPForms screen or page. + if ( wpforms_is_admin_page() ) { + return 'WPForms ' . WPFORMS_VERSION; + } + + return $text; +} +add_filter( 'update_footer', 'wpforms_admin_hide_wp_version', PHP_INT_MAX ); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/ajax-actions.php b/wp-content/plugins/wpforms-lite/includes/admin/ajax-actions.php new file mode 100644 index 0000000..813469f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/ajax-actions.php @@ -0,0 +1,951 @@ +obj( 'builder_save_form' )->process_fields( $data['fields'], $data ); + + // Get form tags. + $form_tags = isset( $data['settings']['form_tags_json'] ) ? json_decode( wp_unslash( $data['settings']['form_tags_json'] ), true ) : []; + + // Clear unnecessary data. + unset( $data['settings']['form_tags_json'] ); + + // Store tags labels in the form settings. + $data['settings']['form_tags'] = wp_list_pluck( $form_tags, 'label' ); + + // Update form data. + $form_id = (int) wpforms()->obj( 'form' )->update( $data['id'], $data, [ 'context' => 'save_form' ] ); + + /** + * Fires after updating form data. + * + * @since 1.4.0 + * + * @param int $form_id Form ID. + * @param array $data Form data. + */ + do_action( 'wpforms_builder_save_form', $form_id, $data ); + + if ( ! $form_id ) { + wp_send_json_error( esc_html__( 'Something went wrong while saving the form.', 'wpforms-lite' ) ); + } + + // Update form tags. + wp_set_post_terms( + $form_id, + wpforms()->obj( 'forms_tags_ajax' )->get_processed_tags( $form_tags ), + WPForms_Form_Handler::TAGS_TAXONOMY + ); + + $response_data = [ + 'form_name' => esc_html( $data['settings']['form_title'] ), + 'form_desc' => $data['settings']['form_desc'], + 'redirect' => admin_url( 'admin.php?page=wpforms-overview' ), + ]; + + /** + * Allows filtering ajax response data after the form was saved. + * + * @since 1.5.1 + * + * @param array $response_data The data to be sent in the response. + * @param int $form_id Form ID. + * @param array $data Form data. + */ + $response_data = apply_filters( + 'wpforms_builder_save_form_response_data', + $response_data, + $form_id, + $data + ); + + wp_send_json_success( $response_data ); +} + +add_action( 'wp_ajax_wpforms_save_form', 'wpforms_save_form' ); + +/** + * Prepare form data. + * + * @since 1.9.4 + * + * @param object $form_post Form data received from $_POST. + * + * @return array + */ +function wpforms_prepare_form_data( $form_post ): array { + + $data = [ + 'fields' => [], + ]; + + if ( ! $form_post ) { + return $data; + } + + $new_post_data_accum = []; + + foreach ( $form_post as $post_input_data ) { + // For input names that are arrays (e.g. `menu-item-db-id[3][4][5]`), + // derive the array path keys via regex and set the value in $_POST. + preg_match( '#([^\[]*)(\[(.+)])?#', $post_input_data->name, $matches ); + + $array_bits = [ $matches[1] ]; + + if ( isset( $matches[3] ) ) { + /** + * This array_merge is not slow because it is new for each loop iteration. + * + * @noinspection SlowArrayOperationsInLoopInspection + */ + $array_bits = array_merge( $array_bits, explode( '][', $matches[3] ) ); + } + + $new_post_data = []; + + // Build the new array value from leaf to trunk. + for ( $i = count( $array_bits ) - 1; $i >= 0; $i-- ) { + if ( $i === count( $array_bits ) - 1 ) { + $new_post_data[ $array_bits[ $i ] ] = wp_slash( $post_input_data->value ); + } else { + $new_post_data = [ + $array_bits[ $i ] => $new_post_data, + ]; + } + } + + $new_post_data_accum[] = $new_post_data; + } + + return array_replace_recursive( $data, ...$new_post_data_accum ); +} + +/** + * Create a new form. + * + * @since 1.0.0 + */ +function wpforms_new_form() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Prevent the second form creating if a user has no license set. + // Redirect will lead to the warning page. + if ( wpforms()->is_pro() && empty( wpforms_get_license_type() ) && wp_count_posts( 'wpforms' )->publish >= 1 ) { + wp_send_json_success( [ 'redirect' => admin_url( 'admin.php?page=wpforms-builder&view=setup' ) ] ); + } + + if ( empty( $_POST['title'] ) ) { + wp_send_json_error( + [ + 'error_type' => 'missing_form_title', + 'message' => esc_html__( 'No Form Name Provided', 'wpforms-lite' ), + ] + ); + } + + $form_title = sanitize_text_field( wp_unslash( $_POST['title'] ) ); + $form_template = empty( $_POST['template'] ) ? 'blank' : sanitize_text_field( wp_unslash( $_POST['template'] ) ); + $category = empty( $_POST['category'] ) ? 'all' : sanitize_text_field( wp_unslash( $_POST['category'] ) ); + $subcategory = empty( $_POST['subcategory'] ) ? 'all' : sanitize_text_field( wp_unslash( $_POST['subcategory'] ) ); + + if ( ! wpforms()->obj( 'builder_templates' )->is_valid_template( $form_template ) ) { + wp_send_json_error( + [ + 'error_type' => 'invalid_template', + 'message' => esc_html__( 'The template you selected is currently not available, but you can try again later. If you continue to have trouble, please reach out to support.', 'wpforms-lite' ), + ] + ); + } + + $title_query = new WP_Query( + [ + 'post_type' => 'wpforms', + 'title' => $form_title, + 'posts_per_page' => 1, + 'fields' => 'ids', + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'no_found_rows' => true, + ] + ); + $title_exists = $title_query->post_count > 0; + $form_id = wpforms()->obj( 'form' )->add( + $form_title, + [], + [ + 'template' => $form_template, + 'category' => $category, + 'subcategory' => $subcategory, + ] + ); + + if ( $title_exists ) { + + // Skip creating a revision for this action. + remove_action( 'post_updated', 'wp_save_post_revision' ); + + wp_update_post( + [ + 'ID' => $form_id, + 'post_title' => $form_title . ' (ID #' . $form_id . ')', + ] + ); + + // Restore the initial revisions state. + add_action( 'post_updated', 'wp_save_post_revision' ); + } + + if ( ! $form_id ) { + wp_send_json_error( + [ + 'error_type' => 'cant_create_form', + 'message' => esc_html__( 'Error Creating Form', 'wpforms-lite' ), + ] + ); + } + + if ( wpforms_current_user_can( 'edit_form_single', $form_id ) ) { + wp_send_json_success( + [ + 'id' => $form_id, + 'redirect' => add_query_arg( + [ + 'view' => 'fields', + 'form_id' => $form_id, + 'newform' => '1', + ], + admin_url( 'admin.php?page=wpforms-builder' ) + ), + ] + ); + } + + if ( wpforms_current_user_can( 'view_forms' ) ) { + wp_send_json_success( [ 'redirect' => admin_url( 'admin.php?page=wpforms-overview' ) ] ); + } + + wp_send_json_success( [ 'redirect' => admin_url() ] ); +} + +add_action( 'wp_ajax_wpforms_new_form', 'wpforms_new_form' ); + +/** + * Update form template. + * + * @since 1.0.0 + */ +function wpforms_update_form_template() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error( + [ + 'error_type' => 'permissions_denied', + 'message' => esc_html__( 'You are not allowed to perform this action.', 'wpforms-lite' ), + ] + ); + } + + // Check for form ID. + if ( empty( $_POST['form_id'] ) ) { + wp_send_json_error( + [ + 'error_type' => 'invalid_form_id', + 'message' => esc_html__( 'No Form ID Provided', 'wpforms-lite' ), + ] + ); + } + + // Set initial variables. + $form_id = absint( $_POST['form_id'] ); + $form_template = empty( $_POST['template'] ) ? 'blank' : sanitize_text_field( wp_unslash( $_POST['template'] ) ); + $category = empty( $_POST['category'] ) ? 'all' : sanitize_text_field( wp_unslash( $_POST['category'] ) ); + $subcategory = empty( $_POST['subcategory'] ) ? 'all' : sanitize_text_field( wp_unslash( $_POST['subcategory'] ) ); + + // Check for valid template. + if ( ! wpforms()->obj( 'builder_templates' )->is_valid_template( $form_template ) ) { + wp_send_json_error( + [ + 'error_type' => 'invalid_template', + 'message' => esc_html__( 'The template you selected is currently not available, but you can try again later. If you continue to have trouble, please reach out to support.', 'wpforms-lite' ), + ] + ); + } + + // Get current form data. + $data = wpforms()->obj( 'form' )->get( + $form_id, + [ + 'content_only' => true, + ] + ); + + // Get the cached data from the form template JSON. + $template_data = wpforms()->obj( 'builder_templates' )->get_template( $form_template ); + + // If the template title is set, use it. Otherwise, clear the form title. + $template_title = ! empty( $template_data['name'] ) ? $template_data['name'] : ''; + + // If the form title is set, use it. Otherwise, use the template title. + $form_title = ! empty( $_POST['title'] ) ? sanitize_text_field( wp_unslash( $_POST['title'] ) ) : $template_title; + + // Check if the current form title is equal to the previous template name. + // If so, set the form title equal to the new template name. + $prev_template_slug = $data['meta']['template'] ?? ''; + $prev_template = wpforms()->obj( 'builder_templates' )->get_template( $prev_template_slug ); + $form_title = isset( $prev_template['name'] ) && $prev_template['name'] === $form_title ? $template_title : $form_title; + + // If these template titles are empty, use the form title. + $form_pages_title = $template_title ? $template_title : $form_title; + $form_conversational_title = ! empty( $template_data['data']['settings']['conversational_forms_title'] ) ? $template_data['data']['settings']['conversational_forms_title'] : $form_title; + + // If these template slugs are empty, use the form title. + $form_conversational_slug = ! empty( $template_data['data']['settings']['conversational_forms_page_slug'] ) ? $template_data['data']['settings']['conversational_forms_page_slug'] : $form_title; + $form_pages_slug = ! empty( $template_data['data']['settings']['form_pages_page_slug'] ) ? $template_data['data']['settings']['form_pages_page_slug'] : $form_title; + + // Loop over notifications. + $notifications = $template_data['data']['settings']['notifications'] ?? []; + + foreach ( $notifications as $key => $notification ) { + // If the subject is empty, set it to an empty string. + $notification_subject = ! empty( $notification['subject'] ) ? sanitize_text_field( $notification['subject'] ) : ''; + + $data['settings']['notifications'][ $key ]['subject'] = $notification_subject; + } + + // Loop over confirmations. + $confirmations = $template_data['data']['settings']['confirmations'] ?? []; + + foreach ( $confirmations as $key => $confirmation ) { + + // If the message is empty, set it to an empty string. + $confirmation_message = ! empty( $confirmation['message'] ) ? wp_kses_post( $confirmation['message'] ) : ''; + + $data['settings']['confirmations'][ $key ]['message'] = $confirmation_message; + } + + // Set updated form titles. + $data['settings']['form_title'] = sanitize_text_field( $form_title ); + $data['settings']['form_pages_title'] = sanitize_text_field( $form_pages_title ); + $data['settings']['conversational_forms_title'] = sanitize_text_field( $form_conversational_title ); + + // Set updated form slugs. + $data['settings']['form_pages_page_slug'] = sanitize_title( $form_pages_slug ); + $data['settings']['conversational_forms_page_slug'] = sanitize_title( $form_conversational_slug ); + + // Try to update the form. + $updated = (bool) wpforms()->obj( 'form' )->update( + $form_id, + $data, + [ + 'template' => $form_template, + 'category' => $category, + 'subcategory' => $subcategory, + ] + ); + + // If the form was updated, return the form ID and redirect to the form builder. + if ( $updated ) { + wp_send_json_success( + [ + 'id' => $form_id, + 'redirect' => add_query_arg( + [ + 'view' => 'fields', + 'form_id' => $form_id, + ], + admin_url( 'admin.php?page=wpforms-builder' ) + ), + ] + ); + } + + // Otherwise, return an error. + wp_send_json_error( + [ + 'error_type' => 'cant_update', + 'message' => esc_html__( 'Error Updating Template', 'wpforms-lite' ), + ] + ); +} + +add_action( 'wp_ajax_wpforms_update_form_template', 'wpforms_update_form_template' ); + +/** + * Form Builder update next field ID. + * + * @since 1.2.9 + */ +function wpforms_builder_increase_next_field_id() { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error(); + } + + // Check for required items. + if ( empty( $_POST['form_id'] ) ) { + wp_send_json_error(); + } + + $args = []; + + // In the case of duplicating the Layout field that contains a bunch of fields, + // we need to set the next `field_id` to the desired value which is passed via POST argument. + if ( ! empty( $_POST['field_id'] ) ) { + $args['field_id'] = sanitize_text_field( wp_unslash( $_POST['field_id'] ) ); + } + + wpforms()->obj( 'form' )->next_field_id( absint( $_POST['form_id'] ), $args ); + + wp_send_json_success(); +} + +add_action( 'wp_ajax_wpforms_builder_increase_next_field_id', 'wpforms_builder_increase_next_field_id' ); + +/** + * Form Builder Dynamic Choices option toggle. + * + * This can be triggered with select/radio/checkbox fields. + * + * @since 1.2.8 + */ +function wpforms_builder_dynamic_choices() { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error(); + } + + // Check for valid/required items. + if ( ! isset( $_POST['field_id'] ) || empty( $_POST['type'] ) || ! in_array( $_POST['type'], [ 'post_type', 'taxonomy' ], true ) ) { + wp_send_json_error(); + } + + $type = sanitize_key( $_POST['type'] ); + $id = sanitize_text_field( wp_unslash( $_POST['field_id'] ) ); + + // Fetch the option row HTML to be returned to the builder. + $field = new WPForms_Field_Select( false ); + $field_args = [ + 'id' => $id, + 'dynamic_choices' => $type, + ]; + $option_row = $field->field_option( 'dynamic_choices_source', $field_args, [], false ); + + wp_send_json_success( + [ + 'markup' => $option_row, + ] + ); +} + +add_action( 'wp_ajax_wpforms_builder_dynamic_choices', 'wpforms_builder_dynamic_choices' ); + +/** + * Form Builder Dynamic Choices Source option toggles. + * + * This can be triggered with select/radio/checkbox fields. + * + * @since 1.2.8 + */ +function wpforms_builder_dynamic_source() { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error(); + } + + // Check for required items. + if ( ! isset( $_POST['field_id'] ) || empty( $_POST['form_id'] ) || empty( $_POST['type'] ) || empty( $_POST['source'] ) ) { + wp_send_json_error(); + } + + $type = sanitize_key( $_POST['type'] ); + $source = sanitize_key( $_POST['source'] ); + $id = sanitize_text_field( wp_unslash( $_POST['field_id'] ) ); + $form_id = absint( $_POST['form_id'] ); + $items = []; + $total = 0; + $source_name = ''; + $type_name = ''; + + if ( $type === 'post_type' ) { + $type_name = esc_html__( 'post type', 'wpforms-lite' ); + $args = [ + 'post_type' => $source, + 'posts_per_page' => 20, + 'orderby' => 'title', + 'order' => 'ASC', + ]; + + /** + * Filters the arguments used to query the post type for dynamic choices. + * + * @since 1.4.1 + * + * @param array $args Arguments used to query the post's type for dynamic choices. + * @param array $field Field. + * @param int $form_id Form ID. + */ + $args = (array) apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, [ 'id' => $id ], $form_id ); + $posts = wpforms_get_hierarchical_object( $args, true ); + $total = wp_count_posts( $source ); + $total = $total->publish; + $pt = get_post_type_object( $source ); + + if ( $pt !== null ) { + $source_name = $pt->labels->name; + } + + foreach ( $posts as $post ) { + $items[] = esc_html( wpforms_get_post_title( $post ) ); + } + } elseif ( $type === 'taxonomy' ) { + $type_name = esc_html__( 'taxonomy', 'wpforms-lite' ); + $args = [ + 'taxonomy' => $source, + 'hide_empty' => false, + 'number' => 20, + ]; + + /** + * Filters the arguments used to query the taxonomy for dynamic choices. + * + * @since 1.4.1 + * + * @param array $args Arguments used to query the post's type for dynamic choices. + * @param array $field Field. + * @param int $form_id Form ID. + */ + $args = apply_filters( 'wpforms_dynamic_choice_taxonomy_args', $args, [ 'id' => $id ], $form_id ); + $terms = wpforms_get_hierarchical_object( $args, true ); + $total = wp_count_terms( $source ); + $tax = get_taxonomy( $source ); + $source_name = $tax->labels->name; + + foreach ( $terms as $term ) { + $items[] = esc_html( wpforms_get_term_name( $term ) ); + } + } + + if ( empty( $items ) ) { + $items = []; + } + + wp_send_json_success( + [ + 'items' => $items, + 'source' => $source, + 'source_name' => $source_name, + 'total' => $total, + 'type' => $type, + 'type_name' => $type_name, + ] + ); +} + +add_action( 'wp_ajax_wpforms_builder_dynamic_source', 'wpforms_builder_dynamic_source' ); + +/** + * Perform a test connection to verify that the current web host can successfully + * make outbound SSL connections. + * + * @since 1.4.5 + */ +function wpforms_verify_ssl() { + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( + [ + 'msg' => esc_html__( 'You do not have permission to perform this operation.', 'wpforms-lite' ), + ] + ); + } + + $response = wp_remote_post( 'https://wpforms.com/connection-test.php' ); + + if ( 200 === wp_remote_retrieve_response_code( $response ) ) { + wp_send_json_success( + [ + 'msg' => esc_html__( 'Success! Your server can make SSL connections.', 'wpforms-lite' ), + ] + ); + } + + wp_send_json_error( + [ + 'msg' => esc_html__( 'There was an error and the connection failed. Please contact your web host with the technical details below.', 'wpforms-lite' ), + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r + 'debug' => '
              ' . print_r( map_deep( $response, 'wp_strip_all_tags' ), true ) . '
              ', + ] + ); +} +add_action( 'wp_ajax_wpforms_verify_ssl', 'wpforms_verify_ssl' ); + +/** + * Recreate custom database tables. + * + * @since 1.9.0 + */ +function wpforms_recreate_tables() { + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( + [ + 'msg' => esc_html__( 'You do not have permission to perform this operation.', 'wpforms-lite' ), + ] + ); + } + + DB::create_custom_tables( true ); + + if ( DB::custom_tables_exist() ) { + wp_send_json_success( + [ + 'msg' => esc_html__( 'WPForms custom database tables are recreated.', 'wpforms-lite' ), + ] + ); + } + + wp_send_json_error( + [ + 'msg' => esc_html__( 'Error recreating WPForms custom database tables.', 'wpforms-lite' ), + ] + ); +} + +add_action( 'wp_ajax_wpforms_recreate_tables', 'wpforms_recreate_tables' ); + +/** + * Deactivate addon. + * + * @since 1.0.0 + * @since 1.6.2.3 Updated the permissions checking. + */ +function wpforms_deactivate_addon() { + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + // Check for permissions. + if ( ! current_user_can( 'deactivate_plugins' ) ) { + wp_send_json_error( esc_html__( 'Plugin deactivation is disabled for you on this site.', 'wpforms-lite' ) ); + } + + $type = empty( $_POST['type'] ) ? 'addon' : sanitize_key( $_POST['type'] ); + + if ( isset( $_POST['plugin'] ) ) { + $plugin = sanitize_text_field( wp_unslash( $_POST['plugin'] ) ); + + deactivate_plugins( $plugin ); + + /** + * Fire after the plugin deactivating via the WPForms installer. + * + * @since 1.6.3 + * + * @param string $plugin Plugin deactivated. + */ + do_action( 'wpforms_plugin_deactivated', $plugin ); + + if ( $type === 'plugin' ) { + wp_send_json_success( esc_html__( 'Plugin deactivated.', 'wpforms-lite' ) ); + } else { + wp_send_json_success( esc_html__( 'Addon deactivated.', 'wpforms-lite' ) ); + } + } + + wp_send_json_error( esc_html__( 'Could not deactivate the addon. Please deactivate from the Plugins page.', 'wpforms-lite' ) ); +} +add_action( 'wp_ajax_wpforms_deactivate_addon', 'wpforms_deactivate_addon' ); + +/** + * Activate addon. + * + * @since 1.0.0 + * @since 1.6.2.3 Updated the permissions checking. + */ +function wpforms_activate_addon() { + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + // Check for permissions. + if ( ! current_user_can( 'activate_plugins' ) ) { + wp_send_json_error( esc_html__( 'Plugin activation is disabled for you on this site.', 'wpforms-lite' ) ); + } + + $success_messages = [ + 'plugin' => __( 'Plugin activated.', 'wpforms-lite' ), + 'addon' => __( 'Addon activated.', 'wpforms-lite' ), + ]; + $error_messages = [ + 'plugin' => __( 'Could not activate the plugin. Please activate it on the Plugins page.', 'wpforms-lite' ), + 'addon' => __( 'Could not activate the addon. Please activate it on the Plugins page.', 'wpforms-lite' ), + ]; + + $type = ! empty( $_POST['type'] ) ? sanitize_key( $_POST['type'] ) : 'addon'; + $success_message = $success_messages[ $type ]; + $error_message = $error_messages[ $type ]; + + if ( isset( $_POST['plugin'] ) ) { + $plugin = sanitize_text_field( wp_unslash( $_POST['plugin'] ) ); + $activate = wpforms_activate_plugin( $plugin ); + + /** + * Fire after the plugin activating via the WPForms installer. + * + * @since 1.6.3.1 + * + * @param string $plugin Path to the plugin file relative to the plugins' directory. + */ + do_action( 'wpforms_plugin_activated', $plugin ); + + if ( $activate === null ) { + wp_send_json_success( wp_kses_post( $success_message ) ); + } + + $error_message = $activate->get_error_message(); + } + + wp_send_json_error( wp_kses_post( $error_message ) ); +} + +add_action( 'wp_ajax_wpforms_activate_addon', 'wpforms_activate_addon' ); + +/** + * Install addon. + * + * @since 1.0.0 + * @since 1.6.2.3 Updated the permissions checking. + * + * @noinspection HtmlUnknownTarget + */ +function wpforms_install_addon() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + $generic_error = esc_html__( 'There was an error while performing your request.', 'wpforms-lite' ); + $type = ! empty( $_POST['type'] ) ? sanitize_key( $_POST['type'] ) : 'addon'; + + // Check if new installations are allowed. + if ( ! wpforms_can_install( $type ) ) { + wp_send_json_error( $generic_error ); + } + + $error = $type === 'plugin' + ? esc_html__( 'Could not install the plugin. Please download and install it manually.', 'wpforms-lite' ) + : sprintf( + wp_kses( /* translators: %1$s - addon download URL, %2$s - link to a manual installation guide, %3$s - link to contact support. */ + __( 'Could not install the addon. Please download it from wpforms.com and install it manually, or contact support for assistance.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => true, + 'target' => true, + 'rel' => true, + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/account/licenses/', 'Licenses', 'Addons Error' ) ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-manually-install-addons-in-wpforms/', 'Addons Doc', 'Addons Error' ) ), + esc_url( wpforms_utm_link( 'https://wpforms.com/contact/', 'Contact', 'Addons Error' ) ) + ); + + $plugin_url = ! empty( $_POST['plugin'] ) ? esc_url_raw( wp_unslash( $_POST['plugin'] ) ) : ''; + + if ( empty( $plugin_url ) ) { + wp_send_json_error( $error ); + } + + $args_str = ! empty( $_POST['args'] ) ? sanitize_text_field( wp_unslash( $_POST['args'] ) ) : ''; + $args = json_decode( $args_str, true ) ?? []; + + // Set the current screen to avoid undefined notices. + set_current_screen( 'wpforms_page_wpforms-settings' ); + + // Prepare variables. + $url = esc_url_raw( + add_query_arg( + [ + 'page' => 'wpforms-addons', + ], + admin_url( 'admin.php' ) + ) + ); + + ob_start(); + $creds = request_filesystem_credentials( $url, '', false, false ); + + // Hide the filesystem credentials form. + ob_end_clean(); + + // Check for file system permissions. + if ( $creds === false ) { + wp_send_json_error( $error ); + } + + if ( ! WP_Filesystem( $creds ) ) { + wp_send_json_error( $error ); + } + + /* + * We do not need any extra credentials if we have gotten this far, so let's install the plugin. + */ + + // Do not allow WordPress to search/download translations, as this will break JS output. + remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 ); + + // Create the plugin upgrader with our custom skin. + $installer = new WPForms\Helpers\PluginSilentUpgrader( new WP_Ajax_Upgrader_Skin() ); + + // Error check. + if ( ! method_exists( $installer, 'install' ) ) { + wp_send_json_error( $error ); + } + + $installer->install( $plugin_url, $args ); + + // Flush the cache and return the newly installed plugin basename. + wp_cache_flush(); + + $plugin_basename = $installer->plugin_info(); + + if ( empty( $plugin_basename ) ) { + wp_send_json_error( $error ); + } + + $result = [ + 'msg' => $generic_error, + 'is_activated' => false, + 'basename' => $plugin_basename, + ]; + + // Check for permissions. + if ( ! current_user_can( 'activate_plugins' ) ) { + $result['msg'] = $type === 'plugin' ? esc_html__( 'Plugin installed.', 'wpforms-lite' ) : esc_html__( 'Addon installed.', 'wpforms-lite' ); + + wp_send_json_success( $result ); + } + + // Activate the plugin silently. + $activated = activate_plugin( $plugin_basename ); + + if ( ! is_wp_error( $activated ) ) { + + /** + * Fire after the plugin activating via the WPForms installer. + * + * @since 1.7.0 + * + * @param string $plugin_basename Path to the plugin file relative to the plugins' directory. + */ + do_action( 'wpforms_plugin_activated', $plugin_basename ); + + $result['is_activated'] = true; + $result['msg'] = $type === 'plugin' ? esc_html__( 'Plugin installed & activated.', 'wpforms-lite' ) : esc_html__( 'Addon installed & activated.', 'wpforms-lite' ); + + wp_send_json_success( $result ); + } + + // Fallback error just in case. + wp_send_json_error( $result ); +} +add_action( 'wp_ajax_wpforms_install_addon', 'wpforms_install_addon' ); + +/** + * Search pages for dropdown. + * + * @since 1.7.9 + */ +function wpforms_ajax_search_pages_for_dropdown() { + + // Run a security check. + if ( ! check_ajax_referer( 'wpforms-builder', 'nonce', false ) ) { + wp_send_json_error( esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ); + } + + if ( ! array_key_exists( 'search', $_GET ) ) { + wp_send_json_error( esc_html__( 'Incorrect usage of this operation.', 'wpforms-lite' ) ); + } + + $search = sanitize_text_field( wp_unslash( $_GET['search'] ) ); + $result_pages = []; + $previous_page_label = esc_html__( 'Back to Previous Page (Referrer) ', 'wpforms-lite' ); + + if ( stripos( strtolower( $previous_page_label ), $search ) !== false ) { + $result_pages[] = [ + 'value' => 'previous_page', + 'label' => $previous_page_label, + ]; + } + + $result_pages += wpforms_search_pages_for_dropdown( $search ); + + if ( empty( $result_pages ) ) { + wp_send_json_success( [] ); + } + + wp_send_json_success( $result_pages ); +} +add_action( 'wp_ajax_wpforms_ajax_search_pages_for_dropdown', 'wpforms_ajax_search_pages_for_dropdown' ); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/builder/class-builder.php b/wp-content/plugins/wpforms-lite/includes/admin/builder/class-builder.php new file mode 100644 index 0000000..1668d53 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/builder/class-builder.php @@ -0,0 +1,1552 @@ +view = isset( $_GET['view'] ) ? sanitize_key( $_GET['view'] ) : 'fields'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + } else { + // The default view for the new form is the setup panel. + $this->view = isset( $_GET['view'] ) ? sanitize_key( $_GET['view'] ) : 'setup'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + } + + if ( $this->view === 'setup' && ! wpforms_current_user_can( 'create_forms' ) ) { + wp_die( esc_html__( 'Sorry, you are not allowed to create new forms.', 'wpforms-lite' ), 403 ); + } + + if ( $this->view === 'fields' && ! wpforms_current_user_can( 'edit_form_single', $form_id ) ) { + wp_die( esc_html__( 'Sorry, you are not allowed to edit this form.', 'wpforms-lite' ), 403 ); + } + + // Fetch form. + $form_obj = wpforms()->obj( 'form' ); + $this->form = $form_obj ? $form_obj->get( $form_id ) : null; + + if ( ! empty( $form_id ) && empty( $this->form ) ) { + $this->abort_message = esc_html__( 'It looks like the form you are trying to access is no longer available.', 'wpforms-lite' ); + $this->abort = true; + } + + if ( ! empty( $this->form->post_status ) && $this->form->post_status === 'trash' ) { + $this->abort_message = esc_html__( 'You can\'t edit this form because it\'s in the trash.', 'wpforms-lite' ); + $this->abort = true; + } + + // Retrieve form data. + $this->form_data = $this->form ? wpforms_decode( $this->form->post_content ) : false; + + /** + * Active form template data filter. + * + * Allows developers to modify fields' structure and form settings in the template of the current form. + * + * @since 1.6.8 + * + * @param array $template Template data. + * @param WP_Post|false $form_id Form object. + */ + $this->template = apply_filters( 'wpforms_builder_template_active', [], $this->form ); + + // Load builder panels. + $this->load_panels(); + + // Modify meta-viewport tag if desktop view is forced. + add_filter( 'admin_viewport_meta', [ $this, 'viewport_meta' ] ); + + add_action( 'admin_head', [ $this, 'admin_head' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ], PHP_INT_MAX ); + add_action( 'admin_print_footer_scripts', [ $this, 'footer_scripts' ] ); + add_action( 'wpforms_admin_page', [ $this, 'output' ] ); + + // Display Abort Message screen. + add_action( 'wpforms_admin_page', [ $this, 'display_abort_message' ] ); + + // Save the timestamp when the Builder has been opened for the first time. + add_option( 'wpforms_builder_opened_date', time(), '', 'no' ); + + /** + * Form Builder init action. + * + * Executes after all the form builder UI output. + * Intended to use in addons. + * + * @since 1.6.8 + * + * @param string $view Current view. + */ + do_action( 'wpforms_builder_init', $this->view ); + + add_filter( 'teeny_mce_plugins', [ $this, 'tinymce_buttons' ] ); + } + + /** + * Clear common wp-admin styles, keep only allowed. + * + * @since 1.6.8 + */ + public function deregister_common_wp_admin_styles(): void { + + if ( ! wpforms_is_admin_page( 'builder' ) ) { + return; + } + + /** + * Filter the allowed common wp-admin styles. + * + * @since 1.6.8 + * + * @param array $allowed_styles Styles allowed in the Form Builder. + */ + $allowed_styles = (array) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_admin_builder_allowed_common_wp_admin_styles', + [ + 'wp-editor', + 'wp-editor-font', + 'editor-buttons', + 'dashicons', + 'media-views', + 'imgareaselect', + 'wp-mediaelement', + 'mediaelement', + 'buttons', + 'admin-bar', + ] + ); + + wp_styles()->registered = array_intersect_key( wp_styles()->registered, array_flip( $allowed_styles ) ); + } + + /** + * Process form actions. + * + * @since 1.8.8 + */ + public function process_actions(): void { + + $form_id = isset( $_GET['form_id'] ) ? (int) $_GET['form_id'] : 0; + $action = isset( $_REQUEST['action'] ) ? sanitize_key( $_REQUEST['action'] ) : false; + $nonce = isset( $_GET['_wpnonce'] ) ? sanitize_key( $_GET['_wpnonce'] ) : false; + + if ( ! $this->is_allowed_action( $form_id, $action ) ) { + return; + } + + if ( ! wp_verify_nonce( $nonce, 'wpforms_' . $action . '_form_nonce' ) ) { + return; + } + + $this->process_action( $form_id, $action ); + } + + /** + * Check whether the form action is valid and allowed. + * + * @since 1.8.8 + * + * @param int $form_id Form ID. + * @param string $action Action name. + * + * @return bool + */ + private function is_allowed_action( int $form_id, string $action ): bool { + + if ( empty( $form_id ) || empty( $action ) ) { + return false; + } + + return in_array( $action, [ 'save_as_template', 'template_to_form', 'duplicate' ], true ); + } + + /** + * Process a single form action. + * + * The action can be triggered via URL: + * wp_nonce_url( + * add_query_arg( [ 'action' => '', 'form_id' => $form_id ] ), + * 'wpforms_save_as_template_form_nonce' + * ); + * + * @since 1.8.8 + * + * @param int $form_id Form ID. + * @param string $action Action name. + */ + private function process_action( int $form_id, string $action ): void { + + $form_handler = wpforms()->obj( 'form' ); + + if ( ! $form_handler ) { + return; + } + + $id = false; + + if ( $action === 'save_as_template' ) { + $id = $form_handler->convert( $form_id, 'template' ); + } + + if ( $action === 'template_to_form' ) { + $id = $form_handler->convert( $form_id, 'form' ); + } + + if ( $action === 'duplicate' ) { + $ids = $form_handler->duplicate( $form_id ); + $id = ! empty( $ids ) ? current( $ids ) : false; + } + + // Reload the form builder with the target object. + if ( ! empty( $id ) ) { + wp_safe_redirect( $this->get_edit_url( $id, $this->view ) ); + exit; + } + } + + /** + * Get the form edit URL. + * + * @since 1.8.8 + * + * @param string|int $form_id Form ID. + * @param string $view View name. + * + * @return string + */ + private function get_edit_url( $form_id, string $view = '' ): string { + + if ( empty( $view ) || ! in_array( $view, $this->panels, true ) ) { + $view = 'fields'; + } + + return add_query_arg( + [ + 'view' => $view, + 'form_id' => $form_id, + ], + admin_url( 'admin.php?page=wpforms-builder' ) + ); + } + + /** + * Define TinyMCE buttons to use with our fancy editor instances. + * + * @since 1.0.3 + * + * @param array $buttons List of default buttons. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function tinymce_buttons( $buttons ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + return [ 'colorpicker', 'lists', 'wordpress', 'wpeditimage', 'wplink' ]; + } + + /** + * Load panels. + * + * @since 1.0.0 + */ + public function load_panels(): void { + + // Base class and functions. + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-base.php'; + + /** + * Form Builder panels slugs array filter. + * + * Allows developers to disable loading of some builder panels. + * + * @since 1.0.0 + * + * @param array $panels Panels slugs array. + */ + $this->panels = apply_filters( + 'wpforms_builder_panels', + [ + 'setup', + 'fields', + 'settings', + 'providers', + 'payments', + 'revisions', + ] + ); + + foreach ( $this->panels as $panel ) { + $panel = sanitize_file_name( $panel ); + $file = WPFORMS_PLUGIN_DIR . "includes/admin/builder/panels/class-{$panel}.php"; + $file_pro = WPFORMS_PLUGIN_DIR . "pro/includes/admin/builder/panels/class-{$panel}.php"; + + if ( file_exists( $file ) ) { + require_once $file; + } elseif ( file_exists( $file_pro ) ) { + require_once $file_pro; + } + } + } + + /** + * Admin head area inside the form builder. + * + * @since 1.4.6 + */ + public function admin_head(): void { + + // Force hide an admin side menu. + echo ''; + + /** + * Form Builder admin head action. + * + * @param string $view Current view. + * + * @since 1.4.6 + */ + do_action( 'wpforms_builder_admin_head', $this->view ); + } + + /** + * Enqueue assets for the builder. + * + * @since 1.0.0 + * @since 1.6.8 All the panel's stylesheets restructured and moved here. + */ + public function enqueues(): void { + + $this->suppress_conflicts(); + + /** + * Form Builder enqueues before action. + * + * @param string $view Current view. + * + * @since 1.0.0 + */ + do_action( 'wpforms_builder_enqueues_before', $this->view ); + + $min = wpforms_get_min_suffix(); + + /* + * Builder CSS. + */ + $builder_styles = [ + 'overlay', + 'basic', + 'third-party', + 'alerts', + 'ui-general', + 'panels', + 'subsystems', + 'fields', + 'fields-types', + ]; + + foreach ( $builder_styles as $style ) { + wp_enqueue_style( + $style === 'basic' ? 'wpforms-builder' : 'wpforms-builder-' . $style, + WPFORMS_PLUGIN_URL . "assets/css/builder/builder-{$style}{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /* + * Third-party CSS. + */ + wp_enqueue_style( + 'wpforms-font-awesome', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/all.min.css', + null, + '7.0.1' + ); + + // FontAwesome v4 compatibility shims. + wp_enqueue_style( + 'wpforms-font-awesome-v4-shim', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/v4-shims.min.css', + null, + '4.7.0' + ); + + wp_enqueue_style( + 'tooltipster', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.tooltipster/jquery.tooltipster.min.css', + null, + '4.2.6' + ); + + // jQuery.Confirm Reloaded. + wp_enqueue_style( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.css', + null, + '1.0.0' + ); + + wp_enqueue_style( + 'minicolors', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.minicolors/jquery.minicolors.min.css', + null, + '2.3.6' + ); + + // Remove TinyMCE editor styles from third-party themes and plugins. + remove_editor_styles(); + + /* + * JavaScript. + */ + wp_enqueue_media(); + wp_enqueue_script( 'jquery-ui-sortable' ); + wp_enqueue_script( 'jquery-ui-draggable' ); + wp_enqueue_script( 'wp-util' ); + + wp_enqueue_script( + 'tooltipster', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.tooltipster/jquery.tooltipster.min.js', + [ 'jquery' ], + '4.2.6', + false + ); + + // jQuery.Confirm Reloaded. + wp_enqueue_script( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.js', + [ 'jquery' ], + '1.0.0', + false + ); + + wp_enqueue_script( + 'insert-at-caret', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.insert-at-caret.min.js', + [ 'jquery' ], + '1.1.4', + false + ); + + wp_enqueue_script( + 'minicolors', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.minicolors/jquery.minicolors.min.js', + [ 'jquery' ], + '2.3.6', + false + ); + + wp_enqueue_script( + 'conditions', + WPFORMS_PLUGIN_URL . 'assets/lib/conditions.min.js', + [ 'jquery' ], + '1.1.0', + false + ); + + wp_enqueue_script( + 'choicesjs', + WPFORMS_PLUGIN_URL . 'assets/lib/choices.min.js', + [], + '10.2.0', + false + ); + + wp_enqueue_script( + 'listjs', + WPFORMS_PLUGIN_URL . 'assets/lib/list.min.js', + [ 'jquery' ], + '2.3.0', + false + ); + + wp_enqueue_script( + 'dom-purify', + WPFORMS_PLUGIN_URL . 'assets/lib/purify.min.js', + [], + '3.2.7', + false + ); + + if ( wp_is_mobile() ) { + wp_enqueue_script( 'jquery-touch-punch' ); + } + + wp_enqueue_script( + 'wpforms-utils', + WPFORMS_PLUGIN_URL . "assets/js/admin/share/admin-utils{$min}.js", + [ 'jquery', 'dom-purify' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-generic-utils', + WPFORMS_PLUGIN_URL . "assets/js/share/utils{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-builder-choicesjs', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/wpforms-choicesjs{$min}.js", + [ 'jquery', 'choicesjs' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-admin-builder-dropdown-list', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/dropdown-list{$min}.js", + [ 'jquery', 'listjs' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-oops', + WPFORMS_PLUGIN_URL . 'assets/lib/oops.min.js', + [], + '1.0.2', + false + ); + + wp_enqueue_script( + 'wpforms-builder', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/admin-builder{$min}.js", + [ + 'wpforms-utils', + 'wpforms-admin-builder-templates', + 'jquery-ui-sortable', + 'jquery-ui-draggable', + 'tooltipster', + 'jquery-confirm', + 'choicesjs', + 'wpforms-builder-choicesjs', + ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-admin-builder-templates', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/templates{$min}.js", + [ 'wp-util' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-builder-smart-tags', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/smart-tags{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-builder-field-map', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/field-map{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_register_script( + 'wpforms-builder-choices-list', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/choices-list{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_register_script( + 'wpforms-builder-chocolate-choices', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/chocolate-choices{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-builder', + 'wpforms_builder', + $this->get_localized_strings() + ); + + /** + * Form Builder enqueues action. + * + * Executes after all the form builder assets were enqueued. + * Intended to use in addons. + * + * @since 1.0.0 + * + * @param string $view Current view. + */ + do_action( 'wpforms_builder_enqueues', $this->view ); + } + + /** + * Remove conflicting scripts and styles. + * + * @since 1.9.0 + */ + private function suppress_conflicts(): void { + + // Remove conflicting styles (e.g., WP JobSearch plugin). + wp_deregister_style( 'font-awesome' ); + + // Remove conflicting scripts. + wp_deregister_script( 'serialize-object' ); + wp_deregister_script( 'wpclef-ajax-settings' ); + } + + /** + * Get localized strings. + * + * @since 1.6.8 + * + * @return array + * @noinspection HtmlUnknownTarget + */ + private function get_localized_strings(): array { + + /** + * It is a phpcs bug. This local variable is used below. + * + * @noinspection PhpUnusedLocalVariableInspection + */ + $min = wpforms_get_min_suffix(); + + /** + * It is a phpcs bug. This local variable is used below. + * + * @noinspection PhpUnusedLocalVariableInspection + */ + $image_extensions = wpforms_chain( get_allowed_mime_types() ) + ->map( + static function ( $mime ) { + + return strpos( $mime, 'image/' ) === 0 ? $mime : ''; + } + ) + ->array_filter() + ->array_values() + ->value(); + + $strings = [ + 'and' => esc_html__( 'And', 'wpforms-lite' ), + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'bulk_add_button' => esc_html__( 'Add New Choices', 'wpforms-lite' ), + 'bulk_add_show' => esc_html__( 'Bulk Add', 'wpforms-lite' ), + 'are_you_sure_to_close' => esc_html__( 'Are you sure you want to leave? You have unsaved changes', 'wpforms-lite' ), + 'bulk_add_hide' => esc_html__( 'Hide Bulk Add', 'wpforms-lite' ), + 'bulk_add_heading' => esc_html__( 'Add Choices (one per line)', 'wpforms-lite' ), + 'bulk_add_placeholder' => esc_html__( "Blue\nRed\nGreen", 'wpforms-lite' ), + 'bulk_add_presets_show' => esc_html__( 'Show presets', 'wpforms-lite' ), + 'bulk_add_presets_hide' => esc_html__( 'Hide presets', 'wpforms-lite' ), + 'date_select_day' => 'DD', + 'date_select_month' => 'MM', + 'date_select_year' => 'YYYY', + 'debug' => wpforms_debug(), + 'version' => WPFORMS_VERSION, + 'content_url' => content_url(), // Absolute URL to wp-content directory. + 'dynamic_choices' => [ + 'limit_message' => sprintf( /* translators: %1$s - data source name (e.g., Categories, Posts), %2$s - data source type (e.g., post type, taxonomy), %3$s - display limit, %4$s - total number of items. */ + esc_html__( 'The %1$s %2$s contains over %3$s items (%4$s). This may make the field difficult for your visitors to use and/or cause the form to be slow.', 'wpforms-lite' ), + '{source}', + '{type}', + '{limit}', + '{total}' + ), + 'empty_message' => sprintf( /* translators: %1$s - data source name (e.g., Categories, Posts), %2$s - data source type (e.g., post type, taxonomy). */ + esc_html__( 'This field will not be displayed in your form since there are no %2$s belonging to %1$s.', 'wpforms-lite' ), + '{source}', + '{type}' + ), + 'entities' => [ + 'post_type' => esc_html__( 'posts', 'wpforms-lite' ), + 'taxonomy' => esc_html__( 'terms', 'wpforms-lite' ), + ], + ], + 'cancel' => esc_html__( 'Cancel', 'wpforms-lite' ), + 'ok' => esc_html__( 'OK', 'wpforms-lite' ), + 'close' => esc_html__( 'Close', 'wpforms-lite' ), + 'conditionals_change' => esc_html__( 'Due to form changes, conditional logic rules will be removed or updated:', 'wpforms-lite' ), + 'conditionals_disable' => esc_html__( 'Are you sure you want to disable conditional logic? This will remove the rules for this field or setting.', 'wpforms-lite' ), + 'field' => esc_html__( 'Field', 'wpforms-lite' ), + 'field_locked' => esc_html__( 'Field Locked', 'wpforms-lite' ), + 'field_locked_msg' => esc_html__( 'This field cannot be deleted or duplicated.', 'wpforms-lite' ), + 'field_locked_no_delete_msg' => esc_html__( 'This field cannot be deleted.', 'wpforms-lite' ), + 'field_locked_no_duplicate_msg' => esc_html__( 'This field cannot be duplicated.', 'wpforms-lite' ), + 'fields_available' => esc_html__( 'Available Fields', 'wpforms-lite' ), + 'fields_unavailable' => esc_html__( 'No fields available', 'wpforms-lite' ), + 'heads_up' => esc_html__( 'Heads up!', 'wpforms-lite' ), + 'image_placeholder' => WPFORMS_PLUGIN_URL . 'assets/images/builder/placeholder-200x125.svg', + 'nonce' => wp_create_nonce( 'wpforms-builder' ), + 'admin_nonce' => wp_create_nonce( 'wpforms-admin' ), + 'no_email_fields' => esc_html__( 'No email fields', 'wpforms-lite' ), + 'notification_delete' => esc_html__( 'Are you sure you want to delete this notification?', 'wpforms-lite' ), + 'notification_prompt' => esc_html__( 'Enter a notification name', 'wpforms-lite' ), + 'notification_ph' => esc_html__( 'Eg: User Confirmation', 'wpforms-lite' ), + 'notification_error' => esc_html__( 'You must provide a notification name', 'wpforms-lite' ), + 'notification_def_name' => esc_html__( 'Default Notification', 'wpforms-lite' ), + 'confirmation_delete' => esc_html__( 'Are you sure you want to delete this confirmation?', 'wpforms-lite' ), + 'confirmation_prompt' => esc_html__( 'Enter a confirmation name', 'wpforms-lite' ), + 'confirmation_ph' => esc_html__( 'Eg: Alternative Confirmation', 'wpforms-lite' ), + 'confirmation_error' => esc_html__( 'You must provide a confirmation name', 'wpforms-lite' ), + 'confirmation_def_name' => esc_html__( 'Default Confirmation', 'wpforms-lite' ), + 'save' => esc_html__( 'Save', 'wpforms-lite' ), + 'saving' => esc_html__( 'Saving', 'wpforms-lite' ), + 'saved' => esc_html__( 'Saved!', 'wpforms-lite' ), + 'save_exit' => esc_html__( 'Save and Exit', 'wpforms-lite' ), + 'save_embed' => esc_html__( 'Save and Embed', 'wpforms-lite' ), + 'saved_state' => '', + 'layout_selector_show' => esc_html__( 'Show Layouts', 'wpforms-lite' ), + 'layout_selector_hide' => esc_html__( 'Hide Layouts', 'wpforms-lite' ), + 'layout_selector_layout' => esc_html__( 'Select your layout', 'wpforms-lite' ), + 'layout_selector_column' => esc_html__( 'Select your column', 'wpforms-lite' ), + 'loading' => esc_html__( 'Loading', 'wpforms-lite' ), + 'template_name' => ! empty( $this->template['name'] ) ? $this->template['name'] : '', + 'template_slug' => ! empty( $this->template['slug'] ) ? $this->template['slug'] : '', + 'template_modal_title' => ! empty( $this->template['modal']['title'] ) ? $this->template['modal']['title'] : '', + 'template_modal_msg' => ! empty( $this->template['modal']['message'] ) ? $this->template['modal']['message'] : '', + 'template_modal_display' => ! empty( $this->template['modal_display'] ) ? $this->template['modal_display'] : '', + 'template_select' => esc_html__( 'Use Template', 'wpforms-lite' ), + 'template_confirm' => esc_html__( 'Changing the template on this form will delete existing fields, reset external connections, and unsaved changes will be lost. Are you sure you want to apply the new template?', 'wpforms-lite' ), + 'use_default_template' => esc_html__( 'Use Default Template', 'wpforms-lite' ), + 'embed' => esc_html__( 'Embed', 'wpforms-lite' ), + 'exit' => esc_html__( 'Exit', 'wpforms-lite' ), + 'exit_url' => wpforms_current_user_can( 'view_forms' ) ? admin_url( 'admin.php?page=wpforms-overview' ) : admin_url(), + 'exit_confirm' => esc_html__( 'Your form contains unsaved changes. Would you like to save your changes first.', 'wpforms-lite' ), + 'delete_confirm' => esc_html__( 'Are you sure you want to delete this field?', 'wpforms-lite' ), + /* translators: %s - number of fields.*/ + 'delete_confirm_multiple' => esc_html__( 'Are you sure you want to delete these %s fields?', 'wpforms-lite' ), + 'delete_confirm_multiple_title' => esc_html__( 'Delete Fields', 'wpforms-lite' ), + 'delete_choice_confirm' => esc_html__( 'Are you sure you want to delete this choice?', 'wpforms-lite' ), + 'duplicate_confirm' => esc_html__( 'Are you sure you want to duplicate this field?', 'wpforms-lite' ), + 'duplicate_confirm_title' => esc_html__( 'Duplicate Field', 'wpforms-lite' ), + /* translators: %s - number of fields. */ + 'duplicate_confirm_multiple' => esc_html__( 'Are you sure you want to duplicate these %s fields?', 'wpforms-lite' ), + 'duplicate_confirm_multiple_title' => esc_html__( 'Duplicate Fields', 'wpforms-lite' ), + 'duplicate_copy' => esc_html__( '(copy)', 'wpforms-lite' ), + 'error_title' => esc_html__( 'Please enter a form name.', 'wpforms-lite' ), + 'error_choice' => esc_html__( 'This item must contain at least one choice.', 'wpforms-lite' ), + 'off' => esc_html__( 'Off', 'wpforms-lite' ), + 'on' => esc_html__( 'On', 'wpforms-lite' ), + 'or' => esc_html__( 'or', 'wpforms-lite' ), + 'other' => esc_html__( 'Other', 'wpforms-lite' ), + 'operator_is' => esc_html__( 'is', 'wpforms-lite' ), + 'operator_is_not' => esc_html__( 'is not', 'wpforms-lite' ), + 'operator_empty' => esc_html__( 'empty', 'wpforms-lite' ), + 'operator_not_empty' => esc_html__( 'not empty', 'wpforms-lite' ), + 'operator_contains' => esc_html__( 'contains', 'wpforms-lite' ), + 'operator_not_contains' => esc_html__( 'does not contain', 'wpforms-lite' ), + 'operator_starts' => esc_html__( 'starts with', 'wpforms-lite' ), + 'operator_ends' => esc_html__( 'ends with', 'wpforms-lite' ), + 'operator_greater_than' => esc_html__( 'greater than', 'wpforms-lite' ), + 'operator_less_than' => esc_html__( 'less than', 'wpforms-lite' ), + 'payments_entries_off' => esc_html__( 'Entry storage is currently disabled, but is required to accept payments. Please enable in your form settings.', 'wpforms-lite' ), + 'payments_on_entries_off' => sprintf( /* translators: %s - marketing or gateway integration name. */ + esc_html__( 'Some third-party integrations require entry storage. If you’d like to continue, you’ll first need to disable %s.', 'wpforms-lite' ), + '{integration}' + ), + 'entry_storage_required' => esc_html__( 'Entry Storage Required', 'wpforms-lite' ), + 'previous' => esc_html__( 'Previous', 'wpforms-lite' ), + 'provider_required_flds' => sprintf( /* translators: %s - marketing integration name. */ + esc_html__( 'In order to complete your form\'s %s integration, please check that all required (*) fields have been filled out.', 'wpforms-lite' ), + '{provider}' + ), + 'rule_create' => esc_html__( 'Create new rule', 'wpforms-lite' ), + 'rule_create_group' => esc_html__( 'Add New Group', 'wpforms-lite' ), + 'rule_delete' => esc_html__( 'Delete rule', 'wpforms-lite' ), + 'smart_tags_dropdown_title' => esc_html__( 'Smart Tags', 'wpforms-lite' ), + 'select_field' => esc_html__( '--- Select Field ---', 'wpforms-lite' ), + 'select_choice' => esc_html__( '--- Select Choice ---', 'wpforms-lite' ), + 'upload_image_title' => esc_html__( 'Upload or Choose Your Image', 'wpforms-lite' ), + 'upload_image_button' => esc_html__( 'Use Image', 'wpforms-lite' ), + 'upload_image_remove' => esc_html__( 'Remove Image', 'wpforms-lite' ), + 'upload_image_extensions' => $image_extensions, + 'upload_image_extensions_error' => esc_html__( 'You tried uploading a file type that is not allowed. Please try again.', 'wpforms-lite' ), + 'provider_add_new_acc_btn' => esc_html__( 'Add', 'wpforms-lite' ), + 'pro' => wpforms()->is_pro(), + 'is_gutenberg' => ! is_plugin_active( 'classic-editor/classic-editor.php' ), + 'cl_fields_supported' => wpforms_get_conditional_logic_form_fields_supported(), + 'redirect_url_field_error' => esc_html__( 'You should enter a valid absolute address to the Confirmation Redirect URL field.', 'wpforms-lite' ), + 'add_custom_value_label' => esc_html__( 'Add Custom Value', 'wpforms-lite' ), + 'choice_empty_label_tpl' => sprintf( /* translators: %s - choice number. */ + esc_html__( 'Choice %s', 'wpforms-lite' ), + '{number}' + ), + 'payment_choice_empty_label_tpl' => sprintf( /* translators: %s - choice number. */ + esc_html__( 'Item %s', 'wpforms-lite' ), + '{number}' + ), + 'error_save_form' => esc_html__( 'Something went wrong while saving the form. Please reload the page and try again.', 'wpforms-lite' ), + 'error_contact_support' => esc_html__( 'Please contact support if this behavior persists.', 'wpforms-lite' ), + 'error_select_template' => esc_html__( 'Something went wrong while applying the form template. Please try again. If the error persists, contact our support team.', 'wpforms-lite' ), + 'error_load_templates' => esc_html__( "Couldn't load the Setup panel.", 'wpforms-lite' ), + 'blank_form' => esc_html__( 'Blank Form', 'wpforms-lite' ), + 'something_went_wrong' => esc_html__( 'Something went wrong', 'wpforms-lite' ), + 'field_cannot_be_reordered' => esc_html__( 'This field cannot be moved.', 'wpforms-lite' ), + 'empty_label' => esc_html__( 'Empty Label', 'wpforms-lite' ), + 'submit_text' => esc_html__( 'Submit', 'wpforms-lite' ), + 'name_field_formats' => [ + 'full' => esc_html__( 'Full', 'wpforms-lite' ), + 'first' => esc_html__( 'First', 'wpforms-lite' ), + 'middle' => esc_html__( 'Middle', 'wpforms-lite' ), + 'last' => esc_html__( 'Last', 'wpforms-lite' ), + ], + 'no_pages_found' => esc_html__( 'No results found', 'wpforms-lite' ), + 'no_results_found' => esc_html__( 'Sorry, no results found', 'wpforms-lite' ), + 'search' => esc_html__( 'Search', 'wpforms-lite' ), + 'number_slider_error_valid_default_value' => sprintf( /* translators: %1$s - from value %2$s - to value. */ + esc_html__( 'Please enter a valid value or change the Increment. The nearest valid values are %1$s and %2$s.', 'wpforms-lite' ), + '{from}', + '{to}' + ), + 'form_meta' => $this->form_data['meta'] ?? [], + 'scrollbars_css_url' => WPFORMS_PLUGIN_URL . "assets/css/builder/builder-scrollbars$min.css", + 'is_ai_disabled' => AIHelpers::is_disabled(), + 'connection_label' => esc_html__( 'Connection', 'wpforms-lite' ), + 'cl_reference' => sprintf( /* translators: %s - Integration name. */ + esc_html__( '%s connection', 'wpforms-lite' ), + '{integration}' + ), + ]; + + $strings = $this->add_localized_currencies( $strings ); + + $strings['disable_entries'] = sprintf( + wp_kses( /* translators: %s - link to the WPForms.com doc article. */ + __( 'Disabling entry storage for this form will completely prevent any new submissions from getting saved to your site. If you still intend to keep a record of entries through notification emails, then please test your form to ensure emails are sent reliably.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/how-to-properly-test-your-wordpress-forms-before-launching-checklist/', + 'Builder Notifications', + 'Testing A Form Documentation' + ) + ) + ); + + $strings['akismet_not_installed'] = sprintf( + wp_kses( /* translators: %1$s - link to the plugin search page, %2$s - link to the WPForms.com doc article. */ + __( 'This feature cannot be used at this time because the Akismet plugin has not been installed. For information on how to use this feature, please refer to our documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( admin_url( 'plugin-install.php' ) ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/setting-up-akismet-anti-spam-protection/', + 'Builder Settings', + 'Akismet Documentation' + ) + ) + ); + + $strings['akismet_not_activated'] = sprintf( + wp_kses( /* translators: %1$s - link to the plugin page, %2$s - link to the WPForms.com doc article. */ + __( 'This feature cannot be used at this time because the Akismet plugin has not been activated. For information on how to use this feature, please refer to our documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( admin_url( 'plugins.php' ) ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/setting-up-akismet-anti-spam-protection/', + 'Builder Settings', + 'Akismet Documentation' + ) + ) + ); + + $strings['akismet_no_api_key'] = sprintf( + wp_kses( /* translators: %1$s - link to the Akismet settings page, %2$s - link to the WPForms.com doc article. */ + __( 'This feature cannot be used at this time because the Akismet plugin has not been properly configured. For information on how to use this feature, please refer to our documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( admin_url( 'options-general.php?page=akismet-key-config&view=start' ) ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/setting-up-akismet-anti-spam-protection/', + 'Builder Settings', + 'Akismet Documentation' + ) + ) + ); + + $strings['error_save_form_forbidden'] = sprintf( + wp_kses( /* translators: %1$s - Documentation page URL. */ + __( 'The form cannot be saved due to a 403 error.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + wpforms_utm_link( 'https://wpforms.com/docs/troubleshooting-403-forbidden-errors/', 'Builder - Settings', '403 Form Errors' ) + ); + + $strings['js_modules'] = $this->get_js_modules(); + + /** + * Form Builder localized strings filter. + * + * @since 1.8.0 + * + * @param array $strings Localized strings. + * @param WP_Post $form Form object. + */ + $strings = (array) apply_filters( 'wpforms_builder_strings', $strings, $this->form ); + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['form_id'] ) ) { + $form_id = (int) $_GET['form_id']; + + $strings['preview_url'] = esc_url( add_query_arg( 'new_window', 1, wpforms_get_form_preview_url( $form_id ) ) ); + $strings['entries_url'] = esc_url( admin_url( 'admin.php?page=wpforms-entries&view=list&form_id=' . $form_id ) ); + } + // phpcs:enable + + return $strings; + } + + /** + * Get JS modules. + * + * Modules become available in the browser context as `WPForms.Admin.Builder.{key}`, + * for example, `WPForms.Admin.Builder.CopyPaste`. + * + * @since 1.9.9 + * + * @return array List of JS modules. + */ + public function get_js_modules(): array { + + $min = wpforms_get_min_suffix(); + + $modules = [ + 'KeyboardShortcuts' => "keyboard-shortcuts$min.js", + 'UndoRedoHelpers' => "undo-redo/helpers$min.js", + 'UndoRedoHelpersFields' => "undo-redo/helpers-fields$min.js", + 'UndoRedoInputCommandBase' => "undo-redo/input-command-base$min.js", + 'UndoRedoActionCommandBase' => "undo-redo/action-command-base$min.js", + 'UndoRedoInputSimple' => "undo-redo/input-simple$min.js", + 'UndoRedoInputToggle' => "undo-redo/input-toggle$min.js", + 'UndoRedoInputChoicesJS' => "undo-redo/input-choicesjs$min.js", + 'UndoRedoInputSmartTags' => "undo-redo/input-smart-tags$min.js", + 'UndoRedoInputCodeMirror' => "undo-redo/input-codemirror$min.js", + 'UndoRedoInputTinyMCE' => "undo-redo/input-tinymce$min.js", + 'UndoRedoChoicesList' => "undo-redo/choices-list$min.js", + 'UndoRedoFormThemes' => "undo-redo/form-themes$min.js", + 'UndoRedoDateTimePickers' => "undo-redo/date-time-pickers$min.js", + 'UndoRedoActionFieldAdd' => "undo-redo/action-field-add$min.js", + 'UndoRedoActionFieldDelete' => "undo-redo/action-field-delete$min.js", + 'UndoRedoActionFieldDuplicate' => "undo-redo/action-field-duplicate$min.js", + 'UndoRedoActionFieldMove' => "undo-redo/action-field-move$min.js", + 'UndoRedoActionMultiFieldDelete' => "undo-redo/action-multi-field-delete$min.js", + 'UndoRedoActionMultiFieldDuplicate' => "undo-redo/action-multi-field-duplicate$min.js", + 'UndoRedoActionMultiFieldPaste' => "undo-redo/action-multi-field-paste$min.js", + 'UndoRedoActionSettingsBlockAdd' => "undo-redo/action-settings-block-add$min.js", + 'UndoRedoActionSettingsBlockDelete' => "undo-redo/action-settings-block-delete$min.js", + 'UndoRedoActionItemsAddRemove' => "undo-redo/action-items-add-remove$min.js", + 'UndoRedoActionImageAddRemove' => "undo-redo/action-image-add-remove$min.js", + 'UndoRedo' => "undo-redo$min.js", + 'MultiSelectActions' => "multi-select/actions$min.js", + 'MultiSelect' => "multi-select/multi-select$min.js", + 'MultiSelectKeyboardShortcuts' => "multi-select/keyboard-shortcuts$min.js", + 'CopyPaste' => "copy-paste$min.js", + ]; + + /** + * Filters the list of Form Builder JS modules. + * + * Allows developers to add their own modules. + * The modules are loaded asynchronously. + * Custom module's path value should be absolute. + * + * @since 1.9.9 + * + * @param array $modules List of JS modules. + */ + return apply_filters( 'wpforms_builder_js_modules', $modules ); + } + + /** + * Footer JavaScript. + * + * @since 1.3.7 + */ + public function footer_scripts(): void { + + $countries = wpforms_countries(); + $countries_postal = array_keys( $countries ); + $countries = array_values( $countries ); + + sort( $countries_postal ); + sort( $countries ); + + $choices = [ + 'countries' => [ + 'name' => esc_html__( 'Countries', 'wpforms-lite' ), + 'choices' => $countries, + ], + 'countries_postal' => [ + 'name' => esc_html__( 'Countries Postal Code', 'wpforms-lite' ), + 'choices' => $countries_postal, + ], + 'states' => [ + 'name' => esc_html__( 'States', 'wpforms-lite' ), + 'choices' => array_values( wpforms_us_states() ), + ], + 'states_postal' => [ + 'name' => esc_html__( 'States Postal Code', 'wpforms-lite' ), + 'choices' => array_keys( wpforms_us_states() ), + ], + 'months' => [ + 'name' => esc_html__( 'Months', 'wpforms-lite' ), + 'choices' => array_values( wpforms_months() ), + ], + 'days' => [ + 'name' => esc_html__( 'Days', 'wpforms-lite' ), + 'choices' => array_values( wpforms_days() ), + ], + ]; + + // phpcs:disable WPForms.Comments.ParamTagHooks.InvalidParamTagsQuantity + /** + * Choice preset array filter. + * + * Allows developers to edit the choice preset used in all choice-based fields. + * + * @since 1.3.7 + * + * @param array $choices { + * Choices presets is the [ `slug` => `preset`, ... ] array. + * + * @param array $preset { + * Each preset data is the array with two elements: + * + * @param string $name Name of the preset + * @param array $choices Choices array. + * } + * ... + * } + */ + $choices = apply_filters( 'wpforms_builder_preset_choices', $choices ); + // phpcs:enable WPForms.Comments.ParamTagHooks.InvalidParamTagsQuantity + + echo ''; + + /** + * Form Builder footer scripts action. + * + * @since 1.3.8 + */ + do_action( 'wpforms_builder_print_footer_scripts' ); + } + + /** + * Load the appropriate files to build the page. + * + * @since 1.0.0 + */ + public function output(): void { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + if ( $this->abort ) { + return; + } + + /** + * Allow developers to disable Form Builder output. + * + * @since 1.5.8.2 + * + * @param bool $is_enabled Is builder output enabled? Defaults to `true`. + */ + if ( ! apply_filters( 'wpforms_builder_output', true ) ) { + return; + } + + $form_id = $this->form ? absint( $this->form->ID ) : ''; + $field_id = ! empty( $this->form_data['field_id'] ) ? $this->form_data['field_id'] : ''; + $revisions_obj = wpforms()->obj( 'revisions' ); + $revision = $revisions_obj ? $revisions_obj->get_revision() : null; + $preview_url = wpforms_get_form_preview_url( $form_id, true ); + $allowed_caps = [ 'edit_posts', 'edit_other_posts', 'edit_private_posts', 'edit_published_posts', 'edit_pages', 'edit_other_pages', 'edit_published_pages', 'edit_private_pages' ]; + $can_embed = array_filter( $allowed_caps, 'current_user_can' ); + $preview_classes = [ 'wpforms-btn', 'wpforms-btn-toolbar', 'wpforms-btn-light-grey' ]; + $builder_classes = [ 'wpforms-admin-page' ]; + + if ( ! $can_embed ) { + $preview_classes[] = 'wpforms-alone'; + } + + $revision_id = null; + + if ( $revision ) { + $revision_id = $revision->ID; + $builder_classes[] = 'wpforms-is-revision'; + } + + if ( $this->form && wp_revisions_enabled( $this->form ) ) { + $builder_classes[] = 'wpforms-revisions-enabled'; + } + + /** + * Allow modifying builder container classes. + * + * @since 1.7.9 + * + * @param array $classes List of classes. + * @param array|bool $form_data Form data and settings or false when the form isn't created. + */ + $builder_classes = (array) apply_filters( 'wpforms_builder_output_classes', $builder_classes, $this->form_data ); + + /** + * Allow developers to add content before the top toolbar in the Form Builder. + * + * @since 1.7.4 + * + * @param string $content Content before the toolbar. Defaults to empty string. + */ + $before_toolbar = apply_filters( 'wpforms_builder_output_before_toolbar', '' ); + ?> + +
              + + + +
              +
              + + +
              +
              + + + + + + + + + +
              + +
              + <?php esc_attr_e( 'Sullie the WPForms mascot', 'wpforms-lite' ); ?> +
              + +
              + + form ) : ?> + + + + + + + form_data['settings']['form_title'] ?? $this->form->post_title ); ?> + + + form->post_type === 'wpforms-template' ) : ?> + + + + + + + +
              + +
              + + + + form ) : ?> +
              + + + + get_context_menu_args(), true ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
              + + + + + + + + + form->post_type === 'wpforms-template' ) : ?> + + + + + + + + + + + + +
              + +
              + + +
              + + form, $this->view ); + ?> + +
              + +
              + + form, $this->view ); + ?> + +
              + + + +
              + + abort ) { + return; + } + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/fullscreen/abort-message', + [ + 'message' => $this->abort_message, + ], + true + ); + } + + /** + * Change the default admin meta viewport tag upon request to force a scrollable desktop view on small screens. + * + * @since 1.7.8 + * + * @param string|mixed $value Default meta viewport tag value. + * + * @return string + */ + public function viewport_meta( $value ): string { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['force_desktop_view'] ) ) { + return 'width=1024, initial-scale=1'; + } + + return (string) $value; + } + + /** + * Get localized currency strings for the builder. + * + * @since 1.8.2 + * + * @param array $strings Array of localized strings. + * + * @return array + */ + private function add_localized_currencies( array $strings ): array { + + $currency = wpforms_get_currency(); + $currencies = wpforms_get_currencies(); + + $strings['currency'] = sanitize_text_field( $currency ); + $strings['currency_name'] = isset( $currencies[ $currency ]['name'] ) ? sanitize_text_field( $currencies[ $currency ]['name'] ) : ''; + $strings['currency_decimals'] = wpforms_get_currency_decimals( $currencies[ $currency ] ); + $strings['currency_decimal'] = isset( $currencies[ $currency ]['decimal_separator'] ) ? sanitize_text_field( $currencies[ $currency ]['decimal_separator'] ) : '.'; + $strings['currency_thousands'] = isset( $currencies[ $currency ]['thousands_separator'] ) ? sanitize_text_field( $currencies[ $currency ]['thousands_separator'] ) : ','; + $strings['currency_symbol'] = isset( $currencies[ $currency ]['symbol'] ) ? sanitize_text_field( $currencies[ $currency ]['symbol'] ) : '$'; + $strings['currency_symbol_pos'] = isset( $currencies[ $currency ]['symbol_pos'] ) ? sanitize_text_field( $currencies[ $currency ]['symbol_pos'] ) : 'left'; + + return $strings; + } + + /** + * Get context menu arguments, depending on the Lite/Pro version and form or form template type. + * + * @since 1.8.8 + * + * @return array + */ + private function get_context_menu_args(): array { + + $payment_obj = wpforms()->obj( 'payment' ); + $args = [ + 'form_id' => $this->form->ID, + 'is_form_template' => $this->form->post_type === 'wpforms-template', + 'has_payments' => $payment_obj && $payment_obj->get_by( 'form_id', $this->form->ID ) !== null, + ]; + + if ( wpforms()->is_pro() ) { + $entry_obj = wpforms()->obj( 'entry' ); + $args['has_entries'] = $entry_obj && $entry_obj->get_entries( [ 'form_id' => $this->form->ID ], true ) > 0; + $args['can_duplicate'] = $this->can_duplicate(); + } + + return $args; + } + + /** + * Check if the current user is allowed to duplicate the form. + * + * @since 1.8.8 + * + * @return bool + */ + private function can_duplicate(): bool { + + if ( ! wpforms_current_user_can( 'create_forms' ) ) { + return false; + } + + if ( ! wpforms_current_user_can( 'view_form_single', $this->form->ID ) ) { + return false; + } + + return true; + } +} + +WPForms_Builder::instance(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/builder/functions.php b/wp-content/plugins/wpforms-lite/includes/admin/builder/functions.php new file mode 100644 index 0000000..b352403 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/builder/functions.php @@ -0,0 +1,942 @@ + [ 'class' => [] ] ] ) : ''; + $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( $args['class'] ) : ''; + $input_class = ! empty( $args['input_class'] ) ? wpforms_sanitize_classes( $args['input_class'] ) : ''; + $default = $args['default'] ?? ''; + $placeholder = ! empty( $args['placeholder'] ) ? esc_attr( $args['placeholder'] ) : ''; + $data_attr = ''; + $output = ''; + $smarttags_toggle = ''; + $input_id = sprintf( 'wpforms-panel-field-%s-%s', sanitize_html_class( $panel_id ), sanitize_html_class( $field ) ); + + if ( ! empty( $args['input_id'] ) ) { + $input_id = esc_attr( $args['input_id'] ); + } + + // Sanitize the subsection only if it doesn't contain a connection ID tag. + if ( strpos( $subsection, '%connection_id%' ) === false ) { + $subsection = sanitize_html_class( $subsection ); + } + + // Check for smart tags. + if ( ! empty( $args['smarttags'] ) ) { + $type = ! empty( $args['smarttags']['type'] ) ? esc_attr( $args['smarttags']['type'] ) : 'fields'; + $fields = ! empty( $args['smarttags']['fields'] ) ? esc_attr( $args['smarttags']['fields'] ) : ''; + $is_repeater_allowed = ! empty( $args['smarttags']['allow-repeated-fields'] ) ? esc_attr( $args['smarttags']['allow-repeated-fields'] ) : ''; + $allowed_smarttags = ! empty( $args['smarttags']['allowed'] ) ? esc_attr( $args['smarttags']['allowed'] ) : ''; + $location = ! empty( $args['location'] ) ? esc_attr( $args['location'] ) : ''; + + $args['data'] = [ + 'location' => $location, + 'type' => $type, + 'fields' => $fields, + 'allow-repeated-fields' => $is_repeater_allowed, + 'allowed-smarttags' => $allowed_smarttags, + ]; + + // BC for old addons that use the old smart tags system. + $smarttags_toggle = sprintf( + ' + %4$s + ', + esc_attr( $type ), + esc_attr( $fields ), + esc_attr( $is_repeater_allowed ), + esc_html__( 'Show Smart Tags', 'wpforms-lite' ), + esc_attr( $location ), + esc_attr( $allowed_smarttags ) + ); + } + + if ( ! empty( $args['pro_badge'] ) ) { + $label .= Helpers::get_badge( 'Pro', 'sm', 'inline', 'silver' ); + } + + // Check if we should store values in a parent array. + if ( ! empty( $parent ) ) { + if ( $subsection && ! wpforms_is_empty_string( $index ) ) { + $field_name = sprintf( '%s[%s][%s][%s][%s]', $parent, $panel, $subsection, $index, $field ); + $value = $form_data[ $parent ][ $panel ][ $subsection ][ $index ][ $field ] ?? $default; + $input_id = sprintf( 'wpforms-panel-field-%s-%s-%s-%s', sanitize_html_class( $panel_id ), $subsection, sanitize_html_class( $index ), sanitize_html_class( $field ) ); + } elseif ( ! empty( $subsection ) ) { + $field_name = sprintf( '%s[%s][%s][%s]', $parent, $panel, $subsection, $field ); + $value = $form_data[ $parent ][ $panel ][ $subsection ][ $field ] ?? $default; + $input_id = sprintf( 'wpforms-panel-field-%s-%s-%s', sanitize_html_class( $panel_id ), $subsection, sanitize_html_class( $field ) ); + } else { + $field_name = sprintf( '%s[%s][%s]', $parent, $panel, $field ); + $value = $form_data[ $parent ][ $panel ][ $field ] ?? $default; + } + } else { + $field_name = sprintf( '%s[%s]', $panel, $field ); + $value = $form_data[ $panel ][ $field ] ?? $default; + } + + if ( isset( $args['field_name'] ) ) { + $field_name = $args['field_name']; + } + + if ( isset( $args['value'] ) ) { + $value = $args['value']; + } + + // Check for data attributes. + if ( ! empty( $args['data'] ) ) { + foreach ( $args['data'] as $key => $val ) { + if ( is_array( $val ) ) { + $val = wp_json_encode( $val ); + } + $data_attr .= ' data-' . $key . '=\'' . $val . '\''; + } + } + + // Check for readonly inputs. + if ( ! empty( $args['readonly'] ) ) { + $data_attr .= 'readonly'; + } + + // Determine what field type to output. + switch ( $option ) { + // Text input. + case 'text': + // Handle min and max attributes for number fields. + if ( ! empty( $args['type'] ) && $args['type'] === 'number' ) { + if ( isset( $args['min'] ) && is_int( $args['min'] ) ) { + $data_attr .= sprintf( ' min="%1$d" oninput="validity.valid||(value=\'%1$d\');" ', esc_attr( $args['min'] ) ); + } + + if ( isset( $args['max'] ) && is_int( $args['max'] ) ) { + $data_attr .= sprintf( ' max="%1$d" oninput="validity.valid||(value=\'%1$d\');" ', esc_attr( $args['max'] ) ); + } + } + + $output = sprintf( + '', + ! empty( $args['type'] ) ? esc_attr( $args['type'] ) : 'text', + $input_id, + $field_name, + esc_attr( $value ), + $placeholder, + $input_class, + $data_attr + ); + break; + + // Image uploader. + case 'image_upload': + $output = wpforms_panel_field_image_upload_control( + $option, + $args, + $panel, + $parent, + $field, + $form_data, + $field_name, + $input_id + ); + break; + + // Textarea. + case 'textarea': + $output = sprintf( + '', + $input_id, + $field_name, + ! empty( $args['rows'] ) ? (int) $args['rows'] : '3', + $placeholder, + $input_class, + $data_attr, + esc_textarea( $value ) + ); + break; + + // TinyMCE. + case 'tinymce': + $id = str_replace( '-', '_', $input_id ); + $args['tinymce']['textarea_name'] = $field_name; + $args['tinymce']['teeny'] = true; + $args['tinymce'] = wp_parse_args( + $args['tinymce'], + [ + 'media_buttons' => false, + 'teeny' => true, + ] + ); + + ob_start(); + wp_editor( $value, $id, $args['tinymce'] ); + + $output = ob_get_clean(); + break; + + // Checkbox. + case 'checkbox': + $output = sprintf( + '', + $input_id, + $field_name, + $input_class, + checked( '1', $value, false ), + $data_attr + ); + $output .= sprintf( + ''; + break; + + // Toggle. + case 'toggle': + $toggle_args = $args; + $toggle_args['input-class'] = $input_class; + $output = wpforms_panel_field_toggle_control( $toggle_args, $input_id, $field_name, $label, $value, $data_attr ); + break; + + // Radio. + case 'radio': + $options = $args['options']; + $radio_counter = 1; + + foreach ( $options as $key => $item ) { + if ( empty( $item['label'] ) ) { + continue; + } + + $item_value = ! empty( $item['value'] ) ? $item['value'] : $key; + + $output .= ''; + + if ( ! empty( $item['pre_label'] ) ) { + $output .= ''; + + ++$radio_counter; + } + + if ( ! empty( $output ) ) { + $output = '
              ' . $output . '
              '; + } + break; + + // Select. + case 'select': + if ( empty( $args['options'] ) && empty( $args['field_map'] ) && empty( $args['multiple'] ) ) { + return ''; + } + + if ( ! empty( $args['field_map'] ) ) { + $options = []; + $available_fields = wpforms_get_form_fields( $form_data, $args['field_map'] ); + + if ( ! empty( $available_fields ) ) { + foreach ( $available_fields as $id => $available_field ) { + $options[ $id ] = ! empty( $available_field['label'] ) + ? esc_attr( $available_field['label'] ) + : sprintf( /* translators: %d - field ID. */ + esc_html__( 'Field #%d', 'wpforms-lite' ), + absint( $id ) + ); + } + } + $input_class .= ' wpforms-field-map-select'; + $data_attr .= ' data-field-map-allowed="' . implode( ' ', $args['field_map'] ) . '"'; + + if ( ! empty( $placeholder ) ) { + $data_attr .= ' data-field-map-placeholder="' . esc_attr( $placeholder ) . '"'; + } + } else { + $options = $args['options']; + } + + if ( array_key_exists( 'choicesjs', $args ) && is_array( $args['choicesjs'] ) ) { + $input_class .= ' choicesjs-select'; + $data_attr .= ! empty( $args['choicesjs']['use_ajax'] ) ? ' data-choicesjs-use-ajax=1' : ''; + $data_attr .= ! empty( $args['choicesjs']['callback_fn'] ) ? ' data-choicesjs-callback-fn="' . esc_attr( $args['choicesjs']['callback_fn'] ) . '"' : ''; + } + + if ( ! empty( $args['multiple'] ) ) { + $data_attr .= ' multiple'; + } + + $output = sprintf( + ''; + break; + + case 'color': + $class .= ' wpforms-panel-field-colorpicker'; + $input_class .= ' wpforms-color-picker'; + $fallback_value = $args['data']['fallback-color'] ?? $value; + + $output = sprintf( + '', + $input_id, + $field_name, + esc_attr( $value ), + esc_attr( $fallback_value ), + wpforms_sanitize_classes( $input_class ), + $data_attr + ); + break; + + /** + * Number input. + * + * @since 1.9.8 + */ + case 'number': + if ( isset( $args['min'] ) ) { + $data_attr .= sprintf( ' min="%1$d" oninput="validity.valid||(value=\'%1$d\');" ', esc_attr( $args['min'] ) ); + } + + if ( isset( $args['step'] ) ) { + $data_attr .= sprintf( ' step="%1$d" oninput="validity.valid||(value=\'%1$d\');" ', esc_attr( $args['step'] ) ); + } + + $output = '
              '; + + $output .= sprintf( + '', + $input_id, + $field_name, + esc_attr( $value ), + $placeholder, + $input_class, + $data_attr + ); + + if ( ! empty( $args['show_unit'] ) ) { + $output .= '' . $args['show_unit'] . ''; + } + + $output .= '
              '; + break; + } + + // Put the pieces together. + $field_open = sprintf( + '
              ', + $input_id, + $class, + 'wpforms-panel-field-' . sanitize_html_class( $option ) + ); + $field_open .= ! empty( $args['before'] ) ? $args['before'] : ''; + + if ( $option !== 'toggle' && $option !== 'checkbox' && ! empty( $label ) ) { + $field_label = sprintf( + ''; + + if ( ! empty( $args['after_label'] ) ) { + $field_label .= $args['after_label']; + } + } else { + $field_label = ''; + } + + $field_close = ''; + + $field_close .= ! empty( $args['after'] ) ? $args['after'] : ''; + $field_close .= '
              '; + $output = $field_open . $field_label . $output . $field_close; + + // Wash our hands. + if ( $do_echo ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $output; + + return null; + } + + return $output; +} + +/** + * Create toggle control. + * + * It's like a regular checkbox but with a modern visual appearance. + * + * @since 1.6.8 + * + * @param array $args Arguments array. + * + * @type bool $status If `true`, control will display the current status next to the toggle. + * @type string $status_on Status `On` text. By default, `On`. + * @type string $status_off Status `Off` text. By default, `Off`. + * @type bool $label_hide If `true `, then the label will not display. + * @type string $tooltip Tooltip text. + * @type string $input_class CSS class for the hidden ``. + * @type string $control_class CSS class for the wrapper ``. + * + * @param string $input_id Input ID. + * @param string $field_name Field name. + * @param string $label Label text. Can contain HTML to display additional badges. + * @param mixed $value Value. + * @param string $data_attr Attributes. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ +function wpforms_panel_field_toggle_control( $args, $input_id, $field_name, $label, $value, $data_attr ): string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $checked = checked( true, (bool) $value, false ); + $status = ''; + + if ( ! empty( $args['status'] ) ) { + $status_on = ! empty( $args['status-on'] ) ? $args['status-on'] : esc_html__( 'On', 'wpforms-lite' ); + $status_off = ! empty( $args['status-off'] ) ? $args['status-off'] : esc_html__( 'Off', 'wpforms-lite' ); + $status = sprintf( + '', + esc_attr( $input_id ), + esc_attr( $status_on ), + esc_attr( $status_off ), + esc_html( $value ? $status_on : $status_off ) + ); + } + + $label_html = empty( $args['label-hide'] ) && ! empty( $label ) ? + sprintf( + '', + esc_attr( $input_id ), + $label + ) : ''; + $label_html .= isset( $args['tooltip'] ) ? + sprintf( + '', + esc_attr( $args['tooltip'] ) + ) : ''; + + $label_left = ! empty( $args['label-left'] ) ? $label_html . $status : ''; + $label_right = empty( $args['label-left'] ) ? $status . $label_html : ''; + $title = isset( $args['title'] ) ? ' title="' . esc_attr( $args['title'] ) . '"' : ''; + $control_class = ! empty( $args['control-class'] ) ? $args['control-class'] : ''; + $input_class = ! empty( $args['input-class'] ) ? $args['input-class'] : ''; + + return sprintf( + ' + %1$s + + + %6$s + ', + $label_left, + esc_attr( $input_id ), + esc_attr( $field_name ), + $checked, + $data_attr, + $label_right, + wpforms_sanitize_classes( $input_class ), + wpforms_sanitize_classes( $control_class ), + $title, + ! empty( $args['disabled'] ) ? 'disabled' : '' + ); +} + +/** + * Get a settings block state, whether it's opened or closed. + * + * @since 1.4.8 + * + * @param int $form_id Form ID. + * @param int $block_id Block ID. + * @param string $block_type Block type. + * + * @return string + */ +function wpforms_builder_settings_block_get_state( $form_id, $block_id, $block_type ): string { + + $form_id = absint( $form_id ); + $block_id = absint( $block_id ); + $block_type = sanitize_key( $block_type ); + $state = 'opened'; + + $all_states = get_user_meta( get_current_user_id(), 'wpforms_builder_settings_collapsable_block_states', true ); + + if ( empty( $all_states ) ) { + return $state; + } + + if ( + is_array( $all_states ) && + ! empty( $all_states[ $form_id ][ $block_type ][ $block_id ] ) && + $all_states[ $form_id ][ $block_type ][ $block_id ] === 'closed' + ) { + $state = 'closed'; + } + + // Backward compatibility for notifications. + if ( $block_type === 'notification' && $state !== 'closed' ) { + $notification_states = get_user_meta( get_current_user_id(), 'wpforms_builder_notification_states', true ); + } + + if ( + ! empty( $notification_states[ $form_id ][ $block_id ] ) && + $notification_states[ $form_id ][ $block_id ] === 'closed' + ) { + $state = 'closed'; + } + + if ( $block_type === 'notification' ) { + // Backward compatibility for notifications. + + /** + * Filters notification get state. + * + * @since 1.4.8 + * + * @param string $state Notification get state. + * @param int $form_id Form ID. + * @param int $block_id Block ID. + * + * @return string + */ + return (string) apply_filters( 'wpforms_builder_notification_get_state', $state, $form_id, $block_id ); // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + } + + /** + * Filters settings block state. + * + * @since 1.4.8 + * + * @param string $state Settings block state. + * @param int $form_id Form ID. + * @param int $block_id Block ID. + * @param string $block_type Block type. + * + * @return string + */ + return apply_filters( 'wpforms_builder_settings_block_get_state', $state, $form_id, $block_id, $block_type ); +} + +/** + * Get the list of allowed tags, used in a pair with the wp_kses () function. + * This allows removing of all potentially harmful HTML tags and attributes. + * + * @since 1.5.9 + * + * @return array Allowed Tags. + */ +function wpforms_builder_preview_get_allowed_tags(): array { + + static $allowed_tags; + + if ( ! empty( $allowed_tags ) ) { + return $allowed_tags; + } + + $atts = [ 'align', 'class', 'type', 'id', 'for', 'style', 'src', 'rel', 'href', 'target', 'value', 'width', 'height' ]; + $tags = [ 'label', 'iframe', 'style', 'button', 'strong', 'small', 'table', 'span', 'abbr', 'code', 'pre', 'div', 'img', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'ul', 'li', 'em', 'hr', 'br', 'th', 'tr', 'td', 'p', 'a', 'b', 'i' ]; + + $allowed_atts = array_fill_keys( $atts, [] ); + $allowed_tags = array_fill_keys( $tags, $allowed_atts ); + + return $allowed_tags; +} + +/** + * Output builder panel fields group wrapper. + * + * @since 1.6.6 + * + * @param string $inner Inner HTML to wrap. + * @param array $args Array of arguments. + * @param bool $do_echo Flag to display. + * + * @return string|null + * @noinspection HtmlUnknownAttribute + */ +function wpforms_panel_fields_group( $inner, $args = [], $do_echo = true ): ?string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $group = ! empty( $args['group'] ) ? $args['group'] : ''; + $unfoldable = ! empty( $args['unfoldable'] ); + $default = ( ! empty( $args['default'] ) && $args['default'] === 'opened' ) ? ' opened' : ''; + $opened = ! empty( $_COOKIE[ 'wpforms_fields_group_' . $group ] ) && $_COOKIE[ 'wpforms_fields_group_' . $group ] === 'true' ? ' opened' : $default; + $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( $args['class'] ) : ''; + + $output = sprintf( + '
              ', + $class, + $unfoldable ? ' unfoldable' . $opened : '', + $unfoldable ? ' data-group="' . $group . '"' : '' + ); + + if ( ! empty( $args['borders'] ) && in_array( 'top', $args['borders'], true ) ) { + $output .= '
              '; + } + + if ( ! empty( $args['title'] ) ) { + $chevron = $unfoldable ? '' : ''; + $output .= '
              ' . esc_html( $args['title'] ) . $chevron . '
              '; + } + + if ( ! empty( $args['description'] ) ) { + $output .= '
              ' . wp_kses_post( $args['description'] ) . '
              '; + } + + $output .= sprintf( + '
              %s
              ', + empty( $opened ) && $unfoldable ? ' style="display: none;"' : '', + $inner + ); + + if ( ! empty( $args['borders'] ) && in_array( 'bottom', $args['borders'], true ) ) { + $output .= '
              '; + } + + $output .= '
              '; + + if ( ! $do_echo ) { + return $output; + } + + echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + return null; +} + +/** + * Get the pages for the "Show Page" dropdown selection in Confirmations Settings in Builder. + * + * @since 1.7.9 + * + * @param array $form_data Form data. + * @param int $confirmation_id Confirmation ID. + * + * @return array + */ +function wpforms_builder_form_settings_confirmation_get_pages( $form_data, $confirmation_id ): array { + + $pre_selected_page_id = empty( $form_data['settings']['confirmations'][ $confirmation_id ]['page'] ) + ? 0 + : absint( $form_data['settings']['confirmations'][ $confirmation_id ]['page'] ); + + $pages = [ 'previous_page' => esc_html__( 'Back to Previous Page (Referrer) ', 'wpforms-lite' ) ]; + $pages += wp_list_pluck( wpforms_search_posts(), 'post_title', 'ID' ); + + if ( empty( $pre_selected_page_id ) || isset( $pages[ $pre_selected_page_id ] ) ) { + return $pages; + } + + // If the pre-selected page isn't in `$pages`, we manually fetch it include it in `$pages`. + $pre_selected_page = get_post( $pre_selected_page_id ); + + if ( empty( $pre_selected_page ) ) { + return $pages; + } + + $pages[ $pre_selected_page->ID ] = wpforms_get_post_title( $pre_selected_page ); + + return $pages; +} + +/** + * Generates an image upload control for WPForms builder panels. + * + * @since 1.8.0 + * + * @param string $option Field type. + * @param array $args Arguments for the control: + * - default_id - Default image ID if no value is set. + * - default_size - Default image size ('full', 'large', 'medium', 'small'). + * - default_position - Default image position ('left', 'center', 'right'). + * - default_url - Default image URL if no value is set. + * @param string $panel Panel name. + * @param string $parent_name Parent field name. + * @param string $field Field name. + * @param array $form Form data. + * @param string $field_name Field name attribute. + * @param string $input_id Input ID attribute. + * + * @return string HTML markup for the image upload control. + */ +function wpforms_panel_field_image_upload_control( // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded + string $option, + array $args, + string $panel, + string $parent_name, + string $field, + array $form, + string $field_name, + string $input_id +): string { + + // Handle subsection, which is the primary use case. + $subsection = ! empty( $args['subsection'] ) ? $args['subsection'] : ''; + + // Set default values from args if they exist. + $image_id = ! empty( $args['default_id'] ) ? $args['default_id'] : 0; + $image_size = ! empty( $args['default_size'] ) ? $args['default_size'] : 'medium'; + $image_position = ! empty( $args['default_position'] ) ? $args['default_position'] : 'left'; + $image_url = ! empty( $args['default_url'] ) ? $args['default_url'] : ''; + $hidden_fields = ! empty( $args['hidden_fields'] ) ? $args['hidden_fields'] : []; + + $key_id = $field . '_id'; + $key_size = $field . '_size'; + $key_position = $field . '_position'; + $key_url = $field . '_url'; + + // Get stored values if they exist. + if ( + isset( $form[ $parent_name ][ $panel ][ $subsection ][ $key_url ] ) + ) { + $image_id = absint( $form[ $parent_name ][ $panel ][ $subsection ][ $key_id ] ?? $image_id ); + $image_size = $form[ $parent_name ][ $panel ][ $subsection ][ $key_size ] ?? $image_size; + $image_position = $form[ $parent_name ][ $panel ][ $subsection ][ $key_position ] ?? $image_position; + $image_url = $form[ $parent_name ][ $panel ][ $subsection ][ $key_url ]; + } + + // Check if we have an image. + $has_image = ! empty( $image_id ) || ! empty( $image_url ); + + if ( ! empty( $image_id ) && empty( $image_url ) ) { + $image_attributes = wp_get_attachment_image_src( $image_id, 'full' ); + + if ( $image_attributes ) { + $image_url = $image_attributes[0]; + } else { + // The image doesn't exist or is invalid. + $has_image = false; + $image_id = 0; + } + } + + // Determine button visibility classes. + $upload_button_class = $has_image ? 'wpforms-image-upload-button wpforms-hidden' : 'wpforms-image-upload-button'; + $remove_button_class = $has_image ? 'wpforms-image-remove-button' : 'wpforms-image-remove-button wpforms-hidden'; + + // Set preview image source. + $preview_src = $has_image && $image_url ? $image_url : ''; + + // Define standard sizes. + $sizes = [ + 'full' => esc_html__( 'Full', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + ]; + + // Define standard positions. + $positions = [ + 'left' => esc_html__( 'Left', 'wpforms-lite' ), + 'center' => esc_html__( 'Center', 'wpforms-lite' ), + 'right' => esc_html__( 'Right', 'wpforms-lite' ), + ]; + + // Prepare the field name prefix. Remove the square bracket at the end if present. + $field_name_prefix = preg_replace( '/]$/', '', $field_name ); + + // Start output buffering to capture HTML. + ob_start(); + + ?> +
              +
              +
              +
              + <?php echo $has_image ? esc_attr__( 'Preview of selected image', 'wpforms-lite' ) : esc_attr__( 'No image selected', 'wpforms-lite' ); ?> +
              + +
              + +
              + + +
              + + + +
              + + +
              + + +
              + + + +
              +
              + + + + +
              +
              +
              + form = wpforms()->obj( 'form' )->get( $form_id ); + + $this->form_data = $this->form ? wpforms_decode( $this->form->post_content ) : false; + + // Get current revision, if available. + $revision = wpforms()->obj( 'revisions' )->get_revision(); + + // If we're viewing a valid revision, replace the form data so the Form Builder shows correct state. + if ( $revision && isset( $revision->post_content ) ) { + $this->form_data = wpforms_decode( $revision->post_content ); + } + + // Bootstrap. + $this->init(); + + // Save instance. + self::$instance = $this; + + // Primary panel button. + add_action( 'wpforms_builder_panel_buttons', [ $this, 'button' ], $this->order, 2 ); + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $is_active = $this->slug === sanitize_key( $_GET['view'] ?? 'setup' ); + + if ( $this->on_demand && ! $is_active ) { + // Load panel loader enqueues. + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues_loader' ] ); + } + + + // Load payments panel enqueues. + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues_payments' ] ); + + // Load panel specific enqueues. + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ], 15 ); + + if ( $is_active || ! $this->on_demand ) { + // Output. + add_action( 'wpforms_builder_panels', [ $this, 'panel_output' ], $this->order, 2 ); + } + } + + /** + * Get class instance. + * + * @since 1.7.7 + * + * @return static + */ + public static function instance() { + + if ( self::$instance === null || ! self::$instance instanceof static ) { + self::$instance = new static(); + } + + return self::$instance; + } + + /** + * All systems go. Used by children. + * + * @since 1.0.0 + */ + public function init() { + } + + /** + * Enqueue assets for the builder. Used by children. + * + * @since 1.0.0 + */ + public function enqueues() { + } + + /** + * Enqueue panel loader assets. + * + * @since 1.8.6 + */ + public function enqueues_loader() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-panel-loader', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/panel-loader{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Enqueue assets for the payments panel. + * + * @since 1.9.5 + */ + public function enqueues_payments() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-payments-utils', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/payments-utils{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + $strings = [ + 'payments_plan_placeholder' => esc_html__( 'Plan Name', 'wpforms-lite' ), + 'payments_disabled_recurring' => esc_html__( 'You can only use one payment type at a time. If you\'d like to enable Recurring Payments, please disable One-Time Payments.', 'wpforms-lite' ), + 'payments_disabled_one_time' => esc_html__( 'You can only use one payment type at a time. If you\'d like to enable One-Time Payments, please disable Recurring Payments.', 'wpforms-lite' ), + ]; + + wp_localize_script( + 'wpforms-builder-payments-utils', + 'wpforms_builder_payments_utils', + $strings + ); + } + + /** + * Primary panel button in the left panel navigation. + * + * @since 1.0.0 + * + * @param mixed $form + * @param string $view + */ + public function button( $form, $view ) { + + $active = $view === $this->slug ? 'active' : ''; + ?> + + + + sidebar ? 'wpforms-panel-sidebar-content' : 'wpforms-panel-full-content'; + $classes = [ 'wpforms-panel' ]; + + // Determine whether the form data is corrupted and a dedicated alert message needs to be shown, + // keep the revisions panel to be able to restore the form. + $is_form_corrupted = is_array( $this->form_data ) && empty( $this->form_data ) && $this->slug !== 'revisions'; + + if ( in_array( $this->slug, [ 'fields', 'revisions' ], true ) ) { + $classes[] = 'wpforms-panel-fields'; + } + + if ( $view === $this->slug ) { + $classes[] = 'active'; + } + + if ( $is_form_corrupted ) { + $classes[] = 'wpforms-panel-corrupted-data'; + } + + printf( '
              ', wpforms_sanitize_classes( $classes, true ), esc_attr( $this->slug ) ); + + printf( '
              ', esc_attr( $wrap ) ); + + if ( $this->sidebar === true && ! $is_form_corrupted ) { + + if ( $this->slug === 'fields' ) { + echo '
              '; + } + + echo '
              '; + + do_action( 'wpforms_builder_before_panel_sidebar', $this->form, $this->slug ); + + $this->panel_sidebar(); + + do_action( 'wpforms_builder_after_panel_sidebar', $this->form, $this->slug ); + + echo '
              '; + + /** + * Allow adding custom content after the panel sidebar in the Form Builder. + * + * @since 1.9.7 + * + * @param object $form Current form object. + * @param string $slug Current panel slug. + */ + do_action( 'wpforms_builder_panel_sidebar_after', $this->form, $this->slug ); + } + + echo '
              '; + + echo '
              '; + + if ( $is_form_corrupted ) { + $this->form_corrupted_message(); + } else { + + /** + * Allow adding custom content before the panel content in the Form Builder. + * + * @since 1.0.0 + * + * @param object $form Current form object. + * @param string $slug Current panel slug. + */ + do_action( 'wpforms_builder_before_panel_content', $this->form, $this->slug ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $this->panel_content(); + + /** + * Allow adding custom content after the panel content in the Form Builder. + * + * @since 1.0.0 + * + * @param object $form Current form object. + * @param string $slug Current panel slug. + */ + do_action( 'wpforms_builder_after_panel_content', $this->form, $this->slug ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + echo '
              '; + + echo '
              '; + + echo '
              '; + + echo '
              '; + } + + /** + * Output the panel's sidebar if we have one. + * + * @since 1.0.0 + */ + public function panel_sidebar() { + } + + /** + * Output panel sidebar sections. + * + * @since 1.0.0 + * + * @param string $name Sidebar section name. + * @param string $slug Sidebar section slug. + * @param string $icon Sidebar section icon. + */ + public function panel_sidebar_section( $name, $slug, $icon = '' ) { + + $default_classes = [ + 'wpforms-panel-sidebar-section', + 'wpforms-panel-sidebar-section-' . $slug, + ]; + + if ( $slug === 'default' ) { + $default_classes[] = 'default'; + } + + if ( ! empty( $icon ) ) { + $default_classes[] = 'icon'; + } + + /** + * Allow adding custom CSS classes to a sidebar section in the Form Builder. + * + * @since 1.7.7.2 + * + * @param array $classes Sidebar section classes. + * @param string $name Sidebar section name. + * @param string $slug Sidebar section slug. + * @param string $icon Sidebar section icon. + */ + $classes = (array) apply_filters( 'wpforms_builder_panel_sidebar_section_classes', [], $name, $slug, $icon ); + $classes = array_merge( $default_classes, $classes ); + + echo ''; + + if ( ! empty( $icon ) ) { + echo ''; + } + + echo esc_html( $name ); + + echo ''; + + echo ''; + } + + /** + * Output the panel's primary content. + * + * @since 1.0.0 + */ + public function panel_content() { + } + + /** + * Error message for a corrupted form. + * + * @since 1.9.7 + */ + private function form_corrupted_message(): void { + ?> + +
              +
              +

              + +

              +
              +
              +

              + Form Revisions.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + ], + ] + ) + ); + ?> +

              +
              +

              + please contact support.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/account/support/', 'Corrupted Form Data' ) ) + ); + ?> +

              +
              +
              + name = esc_html__( 'Fields', 'wpforms-lite' ); + $this->slug = 'fields'; + $this->icon = 'fa-list-alt'; + $this->order = 10; + $this->sidebar = true; + + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.8 + * + * @return void + */ + private function hooks(): void { + + if ( ! $this->form ) { + return; + } + + add_action( 'wpforms_builder_fields', [ $this, 'search' ], 5 ); + add_action( 'wpforms_builder_fields', [ $this, 'fields' ] ); + add_action( 'wpforms_builder_fields_options', [ $this, 'fields_options' ] ); + add_action( 'wpforms_builder_preview', [ $this, 'preview' ] ); + add_filter( 'wpforms_builder_strings', [ $this, 'multi_select_strings' ] ); + + // Template for form builder previews. + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'field_preview_templates' ] ); + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'choices_limit_message_template' ] ); + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'choices_empty_message_template' ] ); + } + + /** + * Enqueue assets for the Fields panel. + * + * @since 1.0.0 + * @since 1.6.8 All the builder stylesheets enqueues moved to the `\WPForms_Builder::enqueues()`. + * + * @noinspection ReturnTypeCanBeDeclaredInspection + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-drag-fields', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/drag-fields{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-builder-search-fields', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/search-fields{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Add Multi-Select Builder strings. + * + * @since 1.9.9 + * + * @param array $strings Form Builder strings. + * + * @return array Form Builder strings. + */ + public function multi_select_strings( array $strings ): array { + + $strings['multi_select'] = [ + 'repeater_tooltip' => esc_html__( "The Repeater field can't be selected with other fields.", 'wpforms-lite' ), + 'layout_tooltip' => esc_html__( "The Layout field can't be selected with other fields.", 'wpforms-lite' ), + 'general_tooltip' => esc_html__( 'This field can’t be selected alongside Layout or Repeater fields.', 'wpforms-lite' ), + /* translators: %s - Cmd or Ctrl key. */ + 'copy_toast_single' => esc_html__( 'Field copied. Use %1$s + V to paste.', 'wpforms-lite' ), + /* translators: %d - number of fields, %s - Cmd or Ctrl key. */ + 'copy_toast_multiple' => esc_html__( '%1$d fields copied. Use %2$s + V to paste.', 'wpforms-lite' ), + ]; + + return $strings; + } + + /** + * Output the Field panel sidebar. + * + * @since 1.0.0 + * + * @noinspection ReturnTypeCanBeDeclaredInspection + */ + public function panel_sidebar() { + + // Sidebar contents are not valid unless we have a form. + if ( ! $this->form ) { + return; + } + ?> + + +
              + form ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ?> +
              + +
              + form ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ?> +
              + form ) { + echo '
              '; + echo wp_kses( + __( 'You need to set up your form before you can manage the fields.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'data-panel' => [], + ], + ] + ); + echo '
              '; + + return; + } + + ?> + +
              + +
              + +
              +
              +

              + form_data['settings']['form_title'] ?? $this->form->post_title ); ?> +

              + + form_data['settings']['form_desc'] ?? $this->form->post_excerpt, + wpforms_builder_preview_get_allowed_tags() + ); + ?> + +
              +
              + + form_data ); + ?> + +
              + no_fields_options(); ?> + no_fields_preview(); ?> +
              + +
              + form ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ?> +
              + + + +
              +
              +
              + + + +
              +
              +

              hCaptcha

              +

              reCAPTCHA

              +

              Turnstile

              +

              + +

              +
              +
              +
              + + form_data['settings']['submit_text'] ) ? $this->form_data['settings']['submit_text'] : esc_html__( 'Submit', 'wpforms-lite' ); + $submit_style = empty( $this->form_data['fields'] ) ? 'display: none;' : ''; + + printf( '

              ', esc_attr( $submit_style ), esc_attr( $submit ) ); + + /** This action is documented in includes/class-frontend.php. */ + do_action( 'wpforms_display_submit_after', $this->form_data, 'submit' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ?> + + form_data ); ?> +
              + +
              + + $group ) { + + usort( $group['fields'], [ $this, 'field_order' ] ); + + echo '
              '; + + echo ''; + + echo '' . esc_html( $group['group_name'] ) . ''; + + echo ''; + + echo ''; + + echo '
              '; + + foreach ( $group['fields'] as $field ) { + /** + * Attributes of the form field button on the Add Fields tab in the Form Builder. + * + * @since 1.5.1 + * + * @param array $attributes Field attributes. + * @param array $field Field data. + * @param array $form_data Form data. + */ + $atts = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_builder_field_button_attributes', + [ + 'id' => 'wpforms-add-fields-' . $field['type'], + 'class' => [ 'wpforms-add-fields-button' ], + 'data' => [ + 'field-type' => $field['type'], + ], + 'atts' => [], + ], + $field, + $this->form_data + ); + + if ( ! empty( $field['keywords'] ) ) { + $atts['data']['field-keywords'] = $field['keywords']; + } + + if ( ! empty( $field['class'] ) ) { + $atts['class'][] = $field['class']; + } + + echo ''; + } + + echo '
              '; + + echo '
              '; + } + } + + /** + * Editor Field Options. + * + * @since 1.0.0 + */ + public function fields_options(): void { + + // Check to make sure the form actually has fields created already. + if ( empty( $this->form_data['fields'] ) ) { + $this->no_fields_options(); + + return; + } + + $fields = $this->form_data['fields']; + + foreach ( $fields as $field ) { + + /** + * Filters the class attribute of the field option container in the Form Builder. + * + * @since 1.3.0 + * + * @param string $class Field option class. + * @param array $field Field data. + */ + $class = apply_filters( 'wpforms_builder_field_option_class', '', $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + printf( '
              ', sanitize_html_class( $field['type'] ), wpforms_sanitize_classes( $class ), (int) $field['id'], (int) $field['id'] ); + + printf( '', (int) $field['id'], (int) $field['id'] ); + + printf( '', (int) $field['id'], esc_attr( $field['type'] ) ); + + /** + * Fires after the field option container in the Form Builder. + * + * @since 1.0.0 + * + * @param array $field Field data. + */ + do_action( "wpforms_builder_fields_options_{$field['type']}", $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + echo '
              '; + } + } + + /** + * Editor preview (right pane). + * + * @since 1.0.0 + */ + public function preview(): void { + + // Check to make sure the form actually has fields created already. + if ( empty( $this->form_data['fields'] ) ) { + $this->no_fields_preview(); + + return; + } + + /** + * Filters the fields which must be displayed on the base level on the preview panel in the Form Builder. + * + * @since 1.7.7 + * + * @param array $fields Form fields data. + */ + $fields = (array) apply_filters( 'wpforms_builder_panel_fields_preview_fields', $this->form_data['fields'] ); + + foreach ( $fields as $field ) { + + $this->preview_single_field( + $field, + [] + ); + } + } + + /** + * Preview a single field. + * + * @since 1.7.7 + * + * @param array $field Field data. + * @param array $args Additional arguments. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function preview_single_field( $field, $args ): void { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $class = ! empty( $field['size'] ) ? 'size-' . esc_attr( $field['size'] ) : ''; + $class .= ! empty( $field['label_hide'] ) ? ' label_hide' : ''; + $class .= ! empty( $field['read_only'] ) ? ' readonly' : ''; + $class .= isset( $field['label'] ) && empty( $field['label'] ) && ! in_array( $field['type'], [ 'html', 'content' ], true ) ? ' label_empty' : ''; + $class .= ! empty( $field['sublabel_hide'] ) ? ' sublabel_hide' : ''; + $class .= ! empty( $field['required'] ) ? ' required' : ''; + $class .= isset( $field['meta']['delete'] ) && $field['meta']['delete'] === false ? ' no-delete' : ''; + $class .= isset( $field['meta']['duplicate'] ) && $field['meta']['duplicate'] === false ? ' no-duplicate' : ''; + + if ( ! empty( $field['input_columns'] ) ) { + $class .= $field['input_columns'] === '2' ? ' wpforms-list-2-columns' : ''; + $class .= $field['input_columns'] === '3' ? ' wpforms-list-3-columns' : ''; + $class .= $field['input_columns'] === 'inline' ? ' wpforms-list-inline' : ''; + } + + /** + * Filters class attribute of the field preview container in the Form Builder. + * + * @since 1.4.0 + * + * @param string $css Field preview class. + * @param array $field Field data. + */ + $class = apply_filters( 'wpforms_field_preview_class', $class, $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! has_action( "wpforms_display_field_{$field['type']}" ) ) { + $this->unavailable_fields_preview( $field ); + + return; + } + + printf( + '
              ', + esc_attr( $field['type'] ), + esc_attr( $class ), + wpforms_validate_field_id( $field['id'] ) + ); + + /** + * Filters display the field duplicate button flag. + * + * @since 1.5.6.2 + * + * @param bool $display_duplicate_button Display field duplicate button flag. + * @param array $field Field data. + * @param array $form_data Form data. + */ + if ( apply_filters( 'wpforms_field_preview_display_duplicate_button', true, $field, $this->form_data ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + printf( + '', + esc_attr__( 'Duplicate Field', 'wpforms-lite' ) + ); + } + + printf( + '', + esc_attr__( 'Delete Field', 'wpforms-lite' ) + ); + + // Multi-field actions menu. + echo $this->get_multi_field_menu_html(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + if ( empty( $_COOKIE['wpforms_field_helper_hide'] ) ) { + printf( + '
              + %s + %s + + + +
              ', + esc_html__( 'Click to Edit', 'wpforms-lite' ), + esc_html__( 'Drag to Reorder', 'wpforms-lite' ), + esc_attr__( 'Hide Helper', 'wpforms-lite' ) + ); + } + + /** + * Fires after the field preview output in the Form Builder. + * + * @since 1.0.0 + * + * @param array $field Field data. + */ + do_action( "wpforms_builder_fields_previews_{$field['type']}", $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + echo '
              '; + } + + /** + * Generate HTML for hidden inputs from given data. + * + * @since 1.6.7 + * + * @param array $data Field array data. + * @param string $name Input name prefix. + */ + private function generate_hidden_inputs( $data = [], string $name = '' ): void { + + if ( ! is_array( $data ) || empty( $data ) ) { + return; + } + + foreach ( $data as $key => $value ) { + if ( $key === 'id' ) { + continue; + } + + $key = ! empty( $data['id'] ) ? sprintf( '[%s][%s]', $data['id'], $key ) : sprintf( '[%s]', $key ); + + if ( ! empty( $name ) ) { + $key = trim( $name ) . $key; + } + + if ( is_array( $value ) ) { + $this->generate_hidden_inputs( $value, $key ); + } else { + printf( "", esc_attr( $key ), esc_attr( $value ) ); + } + } + } + + /** + * Unavailable builder field display. + * + * @since 1.6.7 + * + * @param array $field Field array data. + * + * @noinspection HtmlUnknownTarget + */ + public function unavailable_fields_preview( array $field ): void { + + // Using ucwords() for certain fields may generate incorrect words. + switch ( $field['type'] ) { + case 'url': + $field_type = 'URL'; + break; + + case 'html': + $field_type = 'HTML'; + break; + + case 'gdpr-checkbox': + $field_type = 'GDPR Checkbox'; + break; + + default: + $field_type = ucwords( preg_replace( '/[_-]/', ' ', $field['type'] ) ); + } + + $warning_message = sprintf( /* translators: %s - unavailable field name. */ + esc_html__( 'Unfortunately, the %s field is not available and will be ignored on the front end.', 'wpforms-lite' ), + '' . $field_type . '' + ); + + $field_id = $field['id'] ?? 0; + + printf( + '
              ', + wpforms_validate_field_id( $field['id'] ) + ); + + printf( + '
              +

              %1$s

              +
              +
              + %3$s +
              ', + $warning_message, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'https://wpforms.com/docs/how-to-import-and-export-wpforms/#field-missing', + esc_html__( 'Learn More', 'wpforms-lite' ), + esc_attr__( 'Dismiss this message. The field will be deleted as well.', 'wpforms-lite' ), + wpforms_validate_field_id( $field_id ) + ); + + // Save unavailable fields data in hidden inputs. + $this->generate_hidden_inputs( $field, 'fields' ); + + echo '
              '; + } + + /** + * No fields options markup. + * + * @since 1.6.0 + */ + public function no_fields_options(): void { + + printf( + '

              %s

              ', + esc_html__( 'You don\'t have any fields yet.', 'wpforms-lite' ) + ); + } + + /** + * No fields preview placeholder markup. + * + * @since 1.6.0 + */ + public function no_fields_preview(): void { + + printf( + '
              +

              %1$s

              +

              %2$s

              +
              ', + esc_html__( 'You don\'t have any fields yet. Add some!', 'wpforms-lite' ), + esc_html__( 'Take your pick from our wide variety of fields and start building out your form!', 'wpforms-lite' ) + ); + } + + /** + * Sort Add Field buttons by order provided. + * + * @since 1.0.0 + * + * @param array $a First item. + * @param array $b Second item. + * + * @return int + */ + public function field_order( array $a, array $b ): int { + + return $a['order'] - $b['order']; + } + + /** + * Template for form builder preview. + * + * @since 1.4.5 + */ + public function field_preview_templates(): void { + + // Checkbox, Radio, and Payment Multiple/Checkbox field choices. + ?> + + + + + + +
              +
              + + + +
              + +
              +
              +
              +
              +
              + +
              +

              + +

              +
              +
              + name = esc_html__( 'Payments', 'wpforms-lite' ); + $this->slug = 'payments'; + $this->icon = 'fa-usd'; + $this->order = 10; + $this->sidebar = true; + } + + /** + * Output the Payments panel sidebar. + * + * @since 1.0.0 + */ + public function panel_sidebar() { + + // Sidebar contents are not valid unless we have a form. + if ( ! $this->form ) { + return; + } + + $this->panel_sidebar_section( esc_html__( 'Default', 'wpforms-lite' ), 'default' ); + + do_action( 'wpforms_payments_panel_sidebar', $this->form ); + } + + /** + * Output the Payments panel primary content. + * + * @since 1.0.0 + */ + public function panel_content() { + + // An array of all the active provider addons. + $payments_active = apply_filters( 'wpforms_payments_available', [] ); + + if ( ! $this->form ) { + + // Check if there is a form created. When no form has been created + // yet let the user know we need a form to setup a payment. + echo '
              '; + echo wp_kses( + __( 'You need to setup your form before you can manage these settings.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'data-panel' => [], + ], + ] + ); + echo '
              '; + + return; + } + + if ( empty( $payments_active ) ) { + + // Check for active payment addons. When no payment addons are + // activated let the user know they need to install/activate an + // addon to setup a payment. + echo '
              +
              +
              ' . esc_html__( 'Install Your Payment Integration', 'wpforms-lite' ) . '
              +

              ' . sprintf( + wp_kses( + /* translators: %s - addons page URL. */ + __( 'It seems you do not have any payment addons activated. You can head over to the Addons page to install and activate the addon for your payment service.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + ], + ] + ), + esc_url( admin_url( 'admin.php?page=wpforms-addons' ) ) + ) . + '

              +
              '; + + } else { + + // Everything is good - display default instructions. + echo '
              +
              +
              ' . esc_html__( 'Install Your Payment Integration', 'wpforms-lite' ) . '
              +

              ' . esc_html__( 'It seems you don\'t have any payment addons activated. Click one of the available addons and start accepting payments today!', 'wpforms-lite' ) . '

              +
              '; + } + + do_action( 'wpforms_payments_panel_content', $this->form ); + } +} +new WPForms_Builder_Panel_Payments(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-providers.php b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-providers.php new file mode 100644 index 0000000..939eb53 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-providers.php @@ -0,0 +1,154 @@ +name = esc_html__( 'Marketing', 'wpforms-lite' ); + $this->slug = 'providers'; + $this->icon = 'fa-bullhorn'; + $this->order = 10; + $this->sidebar = true; + } + + /** + * Enqueue assets for the Providers panel. + * + * @since 1.0.0 + * @since 1.6.8 All the builder stylesheets enqueues moved to the `\WPForms_Builder::enqueues()`. + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-providers', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/admin-builder-providers{$min}.js", + [ 'jquery', 'wpforms-builder' ], + WPFORMS_VERSION, + false + ); + + wp_localize_script( + 'wpforms-builder-providers', + 'wpforms_builder_providers', + [ + 'url' => esc_url( remove_query_arg( [ 'newform', 'section' ], add_query_arg( [ 'view' => 'providers' ] ) ) ), + 'confirm_save' => esc_html__( 'We need to save your progress to continue to the Marketing panel. Is that OK?', 'wpforms-lite' ), + 'confirm_connection' => esc_html__( 'Are you sure you want to delete this connection?', 'wpforms-lite' ), + /* translators: %s - connection type. */ + 'prompt_connection' => esc_html( sprintf( __( 'Enter a %s nickname', 'wpforms-lite' ), '%type%' ) ), + 'prompt_placeholder' => esc_html__( 'Eg: Newsletter Optin', 'wpforms-lite' ), + 'error_name' => esc_html__( 'You must provide a connection nickname.', 'wpforms-lite' ), + 'required_field' => esc_html__( 'Field required', 'wpforms-lite' ), + 'custom_fields_placeholder' => esc_html__( '--- Select Form Field ---', 'wpforms-lite' ), + ] + ); + } + + /** + * Output the Provider panel sidebar. + * + * @since 1.0.0 + */ + public function panel_sidebar() { + + // Sidebar contents are not valid unless we have a form. + if ( ! $this->form ) { + return; + } + + $this->panel_sidebar_section( esc_html__( 'Default', 'wpforms-lite' ), 'default' ); + + do_action( 'wpforms_providers_panel_sidebar', $this->form ); + } + + /** + * Output the Provider panel primary content. + * + * @since 1.0.0 + * + * @noinspection HtmlUnknownTarget + */ + public function panel_content() { + + if ( ! $this->form ) { + + // Check if there is a form created. + // When no form has been created yet let the user know, we need a form to set up a provider. + echo '
              '; + echo wp_kses( + __( 'You need to set up your form before you can manage these settings.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'data-panel' => [], + ], + ] + ); + echo '
              '; + + return; + } + + // An array of all the active provider addons. + $providers_active = wpforms_get_providers_available(); + + if ( empty( $providers_active ) ) { + + // Check for active provider addons. + // When no provider addons are activated, + // let the user know they need to install/activate an addon to set up a provider. + echo ''; + } else { + + // Everything is good - display default instructions. + echo '
              +
              +
              ' . esc_html__( 'Select Your Marketing Integration', 'wpforms-lite' ) . '
              +

              ' . esc_html__( /** @lang text */ 'Select your email marketing service provider or CRM from the options on the left. If you don\'t see your email marketing service listed, then let us know and we\'ll do our best to get it added as fast as possible.', 'wpforms-lite' ) . '

              +
              '; + } + + do_action( 'wpforms_providers_panel_content', $this->form ); + } +} + +new WPForms_Builder_Panel_Providers(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-revisions.php b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-revisions.php new file mode 100644 index 0000000..6f011e3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-revisions.php @@ -0,0 +1,205 @@ +name = esc_html__( 'Revisions', 'wpforms-lite' ); + $this->slug = 'revisions'; + $this->icon = 'fa-history'; + $this->order = 10; + $this->sidebar = true; + + $this->title = $this->form && $this->form->post_type === 'wpforms-template' ? + __( 'Form Template Revisions', 'wpforms-lite' ) : + __( 'Form Revisions', 'wpforms-lite' ); + + $this->hooks(); + } + + /** + * Hook into WordPress lifecycle. + * + * @since 1.7.3 + */ + private function hooks() { + + // Add a notice above all panels if revision is loaded. + add_action( 'wpforms_builder_panels', [ $this, 'panel_notice' ], 100, 2 ); + } + + /** + * Primary panel button in the left panel navigation. + * + * @since 1.7.3 + * + * @param mixed $form The form object. + * @param string $view Current view/panel. + */ + public function button( $form, $view ) { + + $classes = 'wpforms-panel-revisions-button'; + + if ( $view === $this->slug ) { + $classes .= ' active'; + } + + $badge = ''; + + if ( $this->form && ! wp_revisions_enabled( $this->form ) && ! wpforms()->obj( 'revisions' )->panel_viewed() ) { + $badge = ' + + + + + '; + } + + printf( + '
              + ', + esc_attr( $classes ), + esc_attr( $this->slug ), + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $badge, + esc_attr( $this->icon ), + esc_html( $this->name ), + esc_html( $this->title ) + ); + } + + /** + * Output the Settings panel sidebar. + * + * @since 1.7.3 + */ + public function panel_sidebar() { + + // Sidebar contents are not valid unless we have a form. + if ( ! $this->form ) { + return; + } + + printf( + '
              +

              %s

              +

              %s

              +
              ', + esc_html( $this->title ), + esc_html__( 'Select a revision to roll back to that version. All changes, including settings, will be reverted.', 'wpforms-lite' ) + ); + + // Render a list of form revisions, including current version. All data is safe, escaped in the template. + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms()->obj( 'revisions' )->render_revisions_list(); + + $revisions_to_keep = wp_revisions_to_keep( $this->form ); + + if ( $revisions_to_keep === 0 ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'builder/revisions/notice-disabled' ); + } + + if ( $revisions_to_keep > 0 ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/revisions/notice-limited', + [ + 'revisions_to_keep' => $revisions_to_keep, + ], + true + ); + } + } + + /** + * Output revision notice above the panels. + * + * @since 1.7.3 + * + * @return void + */ + public function panel_notice() { + + $revision = wpforms()->obj( 'revisions' )->get_revision(); + + if ( ! $revision ) { + return; + } + + $restore_link = sprintf( + '%2$s', + esc_url( + wp_nonce_url( + wpforms()->obj( 'revisions' )->get_url( + [ + 'revision_id' => $revision->ID, + 'action' => 'restore_revision', + ] + ), + 'restore_revision', + 'wpforms_nonce' + ) + ), + __( 'Restore this revision', 'wpforms-lite' ) + ); + + $back_link = sprintf( + '%2$s', + esc_url( wpforms()->obj( 'revisions' )->get_url() ), + __( 'go back to the current version', 'wpforms-lite' ) + ); + + $message = sprintf( /* translators: %1$s - revision date, %2$s - revision time, %3$s - "Restore this revision" link, %4$s - "go back to the current version" link. */ + __( 'You’re currently viewing a form revision from %1$s at %2$s. %3$s or %4$s.', 'wpforms-lite' ), + wpforms()->obj( 'revisions' )->get_formatted_datetime( $revision->post_modified_gmt ), + wpforms()->obj( 'revisions' )->get_formatted_datetime( $revision->post_modified_gmt, 'time' ), + $restore_link, + $back_link + ); + + printf( + '
              +

              %s

              +
              ', + wp_kses( + $message, + [ + 'a' => [ + 'href' => [], + ], + ] + ) + ); + } +} + +new WPForms_Builder_Panel_Revisions(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-settings.php b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-settings.php new file mode 100644 index 0000000..4b8a403 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-settings.php @@ -0,0 +1,385 @@ +name = esc_html__( 'Settings', 'wpforms-lite' ); + $this->slug = 'settings'; + $this->icon = 'fa-sliders'; + $this->order = 10; + $this->sidebar = true; + + /** + * Filters the form data for the form builder. + * + * @since 1.9.0 + * + * @param array $form_data Form data. + */ + $this->form_data = apply_filters( 'wpforms_builder_panel_settings_init_form_data', $this->form_data ); + } + + /** + * Output the Settings panel sidebar. + * + * @since 1.0.0 + */ + public function panel_sidebar() { + + // Sidebar contents are not valid unless we have a form. + if ( ! $this->form ) { + return; + } + + $sections = [ + 'general' => esc_html__( 'General', 'wpforms-lite' ), + 'anti_spam' => esc_html__( 'Spam Protection and Security', 'wpforms-lite' ), + 'themes' => esc_html__( 'Themes', 'wpforms-lite' ), + 'notifications' => esc_html__( 'Notifications', 'wpforms-lite' ), + 'confirmation' => esc_html__( 'Confirmations', 'wpforms-lite' ), + ]; + + /** + * Filters builder settings sections. + * + * @since 1.1.9 + * + * @param array $sections Sections. + * @param array $form_data Form data. + * + * @return array + */ + $sections = (array) apply_filters( 'wpforms_builder_settings_sections', $sections, $this->form_data ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + foreach ( $sections as $slug => $section ) { + $this->panel_sidebar_section( $section, $slug ); + } + } + + /** + * Enqueue assets. + * + * @since 1.7.5 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-settings', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/settings{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-builder-settings', + 'wpforms_builder_settings', + [ + 'choicesjs_config' => $this->get_choicesjs_config(), + 'all_tags_choices' => Tags::get_all_tags_choices(), + ] + ); + } + + /** + * Get Choices.js configuration. + * + * @since 1.7.5 + * + * @return array + */ + private function get_choicesjs_config(): array { + + $config = Tags::get_choicesjs_config(); + + $config['noResultsText'] = esc_html__( 'Press Enter or "," key to add new tag', 'wpforms-lite' ); + + return $config; + } + + /** + * Output the Settings panel primary content. + * + * @since 1.0.0 + */ + public function panel_content() { + + // Check if there is a form created. + if ( ! $this->form ) { + echo '
              '; + echo wp_kses( + __( 'You need to setup your form before you can manage the settings.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'data-panel' => [], + ], + ] + ); + echo '
              '; + + return; + } + + /* + * General. + */ + echo '
              '; + echo '
              '; + esc_html_e( 'General', 'wpforms-lite' ); + echo '
              '; + + wpforms_panel_field( + 'text', + 'settings', + 'form_title', + $this->form_data, + esc_html__( 'Form Name', 'wpforms-lite' ), + [ + 'default' => $this->form->post_title, + ] + ); + wpforms_panel_field( + 'textarea', + 'settings', + 'form_desc', + $this->form_data, + esc_html__( 'Form Description', 'wpforms-lite' ), + [ + 'tooltip' => esc_html__( 'Enter descriptive text or instructions to help your users understand the requirements of your form.', 'wpforms-lite' ), + 'input_class' => 'wpforms-smart-tags-enabled', + 'data' => [ + 'type' => 'all', + 'fields' => '', + ], + ] + ); + + if ( $this->form->post_type === 'wpforms-template' ) { + wpforms_panel_field( + 'textarea', + 'settings', + 'template_description', + $this->form_data, + esc_html__( 'Template Description', 'wpforms-lite' ), + [ + 'tooltip' => esc_html__( 'Describe the use case for your template. Only displayed internally.', 'wpforms-lite' ), + ] + ); + } + + $this->general_setting_tags(); + + wpforms_panel_field( + 'text', + 'settings', + 'submit_text', + $this->form_data, + esc_html__( 'Submit Button Text', 'wpforms-lite' ), + [ + 'default' => esc_html__( 'Submit', 'wpforms-lite' ), + ] + ); + wpforms_panel_field( + 'text', + 'settings', + 'submit_text_processing', + $this->form_data, + esc_html__( 'Submit Button Processing Text', 'wpforms-lite' ), + [ + 'tooltip' => esc_html__( 'Enter the submit button text you would like the button display while the form submit is processing.', 'wpforms-lite' ), + ] + ); + + $this->general_setting_advanced(); + + echo '
              '; + + /* + * Notifications. + */ + echo '
              '; + + /** + * Output notifications. + * + * @since 1.6.7.3 + * + * @param WPForms_Builder_Panel_Settings $settings Current settings. + */ + do_action( 'wpforms_form_settings_notifications', $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + echo '
              '; + + /* + * Confirmations. + */ + echo '
              '; + + /** + * Output confirmations. + * + * @since 1.6.7.3 + * + * @param WPForms_Builder_Panel_Settings $settings Current settings. + */ + do_action( 'wpforms_form_settings_confirmations', $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + echo '
              '; + + /** + * Output custom panels. + * + * @since 1.6.7.3 + * + * @param WPForms_Builder_Panel_Settings $settings Current settings. + */ + do_action( 'wpforms_form_settings_panel_content', $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Output the Tags setting. + * + * @since 1.7.5 + */ + private function general_setting_tags() { + + $form_tags = []; + + if ( ! empty( $this->form_data['settings']['form_tags'] ) ) { + $form_tags = get_terms( + [ + 'taxonomy' => WPForms_Form_Handler::TAGS_TAXONOMY, + 'name' => $this->form_data['settings']['form_tags'], + 'hide_empty' => false, + ] + ); + $form_tags = is_wp_error( $form_tags ) ? [] : (array) $form_tags; + } + + $tags_value = wp_list_pluck( $form_tags, 'term_id' ); + $tags_options = wp_list_pluck( $form_tags, 'name', 'term_id' ); + + wpforms_panel_field( + 'select', + 'settings', + 'form_tags', + $this->form_data, + esc_html__( 'Tags', 'wpforms-lite' ), + [ + 'options' => $tags_options, + 'value' => $tags_value, + 'multiple' => true, + 'tooltip' => esc_html__( 'Mark form with the tags. To create a new tag, simply type it and press Enter.', 'wpforms-lite' ), + ] + ); + } + + /** + * Output the *CAPTCHA settings. + * + * @since 1.6.8 + * + * @noinspection HtmlUnknownTarget + */ + private function general_setting_advanced() { + + ob_start(); + + wpforms_panel_field( + 'text', + 'settings', + 'form_class', + $this->form_data, + esc_html__( 'Form CSS Class', 'wpforms-lite' ), + [ + 'tooltip' => esc_html__( 'Enter CSS class names for the form wrapper. Multiple class names should be separated with spaces.', 'wpforms-lite' ), + ] + ); + + wpforms_panel_field( + 'text', + 'settings', + 'submit_class', + $this->form_data, + esc_html__( 'Submit Button CSS Class', 'wpforms-lite' ), + [ + 'tooltip' => esc_html__( 'Enter CSS class names for the form submit button. Multiple names should be separated with spaces.', 'wpforms-lite' ), + ] + ); + + wpforms_panel_field( + 'toggle', + 'settings', + 'dynamic_population', + $this->form_data, + esc_html__( 'Enable Prefill by URL', 'wpforms-lite' ), + [ + 'tooltip' => sprintf( + '%2$s', + wpforms_utm_link( 'https://wpforms.com/developers/how-to-enable-dynamic-field-population/', 'Builder Settings', 'Prefill by URL Tooltip' ), + esc_html__( 'How to use Prefill by URL', 'wpforms-lite' ) + ), + ] + ); + + wpforms_panel_field( + 'toggle', + 'settings', + 'ajax_submit', + $this->form_data, + esc_html__( 'Enable AJAX form submission', 'wpforms-lite' ), + [ + 'tooltip' => esc_html__( 'Enables form submission without page reload.', 'wpforms-lite' ), + ] + ); + + /** + * Fires after general settings. + * + * @since 1.0.2 + * + * @param WPForms_Builder_Panel_Settings $settings Current settings. + */ + do_action( 'wpforms_form_settings_general', $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + // Wrap advanced settings to the unfoldable group. + wpforms_panel_fields_group( + ob_get_clean(), + [ + 'borders' => [ 'top' ], + 'unfoldable' => true, + 'group' => 'settings_advanced', + 'title' => esc_html__( 'Advanced', 'wpforms-lite' ), + ] + ); + } +} + +new WPForms_Builder_Panel_Settings(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-setup.php b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-setup.php new file mode 100644 index 0000000..ebef068 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/builder/panels/class-setup.php @@ -0,0 +1,132 @@ +name = esc_html__( 'Setup', 'wpforms-lite' ); + $this->slug = 'setup'; + $this->icon = 'fa-cog'; + $this->order = 5; + $this->on_demand = true; + + $this->addons_obj = wpforms()->obj( 'addons' ); + } + + /** + * Enqueue assets for the Setup panel. + * + * @since 1.0.0 + * @since 1.6.8 All the builder stylesheets enqueues moved to the `\WPForms_Builder::enqueues()`. + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-setup', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/setup{$min}.js", + [ 'wpforms-builder', 'listjs' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Output the Settings panel primary content. + * + * @since 1.0.0 + * + * @noinspection HtmlUnknownTarget + */ + public function panel_content() { + + ?> +
              + + +
              + +
              + + +
              + +

              + blank form or create your own.', 'wpforms-lite' ), + [ + 'strong' => [], + 'a' => [ + 'href' => [], + 'class' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-create-a-custom-form-template/', 'builder-templates', 'Create Your Own Template Documentation' ) ) + ); + + if ( AIHelpers::is_disabled() ) { + echo ' '; + printf( + wp_kses( /* translators: %1$s - create a template doc link, %2$s - Contact us page link. */ + __( 'Have a suggestion for a new template? We’d love to hear it!', 'wpforms-lite' ), + [ + 'strong' => [], + 'a' => [ + 'href' => [], + 'class' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/form-template-suggestion/', 'builder-templates', 'Suggest a Template' ) ) + ); + } + ?> +

              + + output_templates_content(); + + /** + * Fires after WPForms builder setup panel. + * + * @since 1.0.6 + */ + do_action( 'wpforms_setup_panel_after' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } +} + +new WPForms_Builder_Panel_Setup(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/class-about.php b/wp-content/plugins/wpforms-lite/includes/admin/class-about.php new file mode 100644 index 0000000..208d676 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/class-about.php @@ -0,0 +1,1820 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.2.3 + */ + private function hooks(): void { + + // Maybe load tools page. + add_action( 'admin_init', [ $this, 'init' ] ); + } + + /** + * Determining if the user is viewing our page, if so, party on. + * + * @since 1.5.0 + */ + public function init(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Check what page we are on. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; + + // Only load if we are actually on the settings page. + if ( $page !== self::SLUG ) { + return; + } + + /* + * Define the core views for our tab. + */ + $about_us = esc_html__( 'About Us', 'wpforms-lite' ); + $getting_started = esc_html__( 'Getting Started', 'wpforms-lite' ); + + /** + * Filter the views for the About Us tab. + * + * @since 1.5.0 + * + * @param array $views Array of views. + */ + $this->views = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_admin_about_views', + [ + $about_us => [ 'about' ], + $getting_started => [ 'getting-started' ], + ] + ); + + $license = $this->get_license_type(); + + if ( + ( + $license === 'pro' || + ! in_array( $license, self::$licenses_pro_and_top, true ) + ) || + wpforms_debug() + ) { + $vs_tab_name = sprintf( /* translators: %1$s - current license type, %2$s - suggested license type. */ + esc_html__( '%1$s vs %2$s', 'wpforms-lite' ), + ucfirst( $license ), + $this->get_next_license( $license ) + ); + + $this->views[ $vs_tab_name ] = [ 'versus' ]; + } + + // Determine the current active settings tab. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $this->view = ! empty( $_GET['view'] ) ? sanitize_text_field( wp_unslash( $_GET['view'] ) ) : self::DEFAULT_TAB; + + // If the user tries to load an invalid view - fallback to About Us. + if ( + ! has_action( 'wpforms_admin_about_display_tab_' . sanitize_key( $this->view ) ) && + ! in_array( $this->view, array_merge( ...array_values( $this->views ) ), true ) + ) { + $this->view = self::DEFAULT_TAB; + } + + add_action( 'wpforms_admin_page', [ $this, 'output' ] ); + + /** + * Fires on the About WPForms admin page init after main classes/methods initiation. + * + * Used by addons to hook into About page initialization. + * + * @since 1.5.0 + */ + do_action( 'wpforms_admin_about_init' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Output the basic page structure. + * + * @since 1.5.0 + * + * @noinspection HtmlUnknownTarget + */ + public function output(): void { + + $show_nav = false; + + foreach ( $this->views as $view ) { + if ( in_array( $this->view, (array) $view, true ) ) { + $show_nav = true; + + break; + } + } + + ?> +
              + '; + foreach ( $this->views as $label => $view ) { + $class = in_array( $this->view, $view, true ) ? 'active' : ''; + + echo '
            • '; + printf( + '%3$s', + esc_url( admin_url( 'admin.php?page=' . self::SLUG . '&view=' . sanitize_key( $view[0] ) ) ), + esc_attr( $class ), + esc_html( $label ) + ); + echo '
            • '; + } + echo ''; + } + + ?> +

              + view ) { + case 'about': + $this->output_about(); + break; + + case 'getting-started': + $this->output_getting_started(); + break; + + case 'versus': + $this->output_versus(); + break; + + default: + /** + * Display custom tab content in the About WPForms admin page. + * The variable part of the hook name is the current tab view being displayed. + * + * @since 1.5.0 + */ + do_action( 'wpforms_admin_about_display_tab_' . sanitize_key( $this->view ) ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + break; + } + + ?> +
              + output_about_info(); + $this->output_about_addons(); + } + + /** + * Display the General Info section of the About tab. + * + * @since 1.5.8 + * + * @noinspection HtmlUnknownTarget + */ + protected function output_about_info(): void { + + ?> +
              +
              +

              + +

              +

              + +

              +

              + +

              +

              + WPBeginner, the most popular lead-generation software, OptinMonster, the best WordPress analytics plugin, MonsterInsights, and more!', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + 'https://www.wpbeginner.com/?utm_source=wpformsplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpforms', + 'https://optinmonster.com/?utm_source=wpformsplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpforms', + 'https://www.monsterinsights.com/?utm_source=wpformsplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpforms' + ); + ?> +

              +

              + +

              +
              + +
              +
              + <?php esc_attr_e( 'The WPForms Team photo', 'wpforms-lite' ); ?> +
              +
              +
              +
              +
              +
              + get_am_plugins(); + $can_install_plugins = wpforms_can_install( 'plugin' ); + $can_activate_plugins = wpforms_can_activate( 'plugin' ); + + ?> +
              +
              + $details ) : + $plugin_data = $this->get_plugin_data( $plugin, $details, $all_plugins ); + $plugin_ready_to_activate = $can_activate_plugins + && isset( $plugin_data['status_class'] ) + && $plugin_data['status_class'] === 'status-installed'; + $plugin_not_activated = ! isset( $plugin_data['status_class'] ) + || $plugin_data['status_class'] !== 'status-active'; + + ?> +
              +
              +
              + <?php echo esc_attr( $plugin_data['details']['name'] ); ?> +
              + +
              +

              + +

              +
              +
              +
              + + ' . wp_kses_post( $plugin_data['status_text'] ) . '' + ); + ?> + +
              +
              + + + + + + + + +
              +
              +
              +
              + +
              +
              + get_license_type(); + $utm_campaign = $license === 'lite' ? 'liteplugin' : 'plugin'; + + $links = [ + 'add-new' => "https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Add a New Form#add-new", + 'customize-fields' => "https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Customize Form Fields#customize-fields", + 'display-form' => "https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Display Forms on Your Site#display-form", + 'right-form-field' => "https://wpforms.com/docs/how-to-choose-the-right-form-field-for-your-forms/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Choose the Right Form Field", + 'complete-guide' => "https://wpforms.com/docs/a-complete-guide-to-wpforms-settings/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=A Complete Guide to WPForms Settings", + 'gdpr-compliant' => "https://wpforms.com/docs/how-to-create-gdpr-compliant-forms/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Create GDPR Complaint Forms", + 'install-activate-addons' => "https://wpforms.com/docs/install-activate-wpforms-addons/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Install and Activate WPForms Addons", + ]; + ?> + +
              + +
              + +

              + +

              + +

              + +

              + +

              + +

              + +

              + +

              + + + +
              + +
              + +
              + +
              + + +
              + +
              +

              + +

              + +

              + Upgrade to WPForms Pro to unlock all the awesome features and experience
              why WPForms is consistently rated the best WordPress form builder.', 'wpforms-lite' ), + [ + 'br' => [], + 'strong' => [], + ] + ); + ?> +

              + +

              + 13,000+ five star ratings (%s) and is active on over 6 million websites.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ), + '' . + '' . + '' . + '' . + '' + ); + ?> +

              +
              + +
              +
              +
              +
                +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              +
              +
              +
                +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              +
              +
              + +
              + +

              + %2$s', + esc_url( wpforms_admin_upgrade_link( 'wpforms-about-page', 'Get WPForms Pro Today' ) ), + esc_html__( 'Get WPForms Pro Today and Unlock all the Powerful Features', 'wpforms-lite' ) + ); + + ?> +

              + + +

              + 50% off regular price, automatically applied at checkout.', 'wpforms-lite' ), + [ + 'span' => [ + 'class' => [], + ], + ] + ); + ?> +

              + +
              + +
              + + +
              +
              + +
              +
              +

              + +

              + +

              + +

              + + + + +
              +
              + +
              +
              + +
              +
              +

              + +

              + +

              + +

              + + + + +
              +
              + +
              +
              + +
              +
              +

              + +

              + +

              + +

              + + + + +
              +
              + +
              +
              + +
              +
              +

              + +

              + +

              + +

              + + + + +
              +
              + + 'Pro', + 'Basic' => 'Pro', + 'Plus' => 'Pro', + 'Pro' => 'Elite', + ]; + + return $license_pairs[ $current ] ?? 'Elite'; + } + + /** + * Display the Versus tab content. + * + * @since 1.5.0 + * + * @noinspection HtmlUnknownTarget + */ + protected function output_versus(): void { + + $license = $this->get_license_type(); + $next_license = $this->get_next_license( $license ); + + ?> +
              +

              + vs +

              + +

              + +

              +
              + +
              +
              +
              +

              + +

              +
              +
              +

              + +

              +
              +
              +

              + +

              +
              +
              +
              + + get_licenses_features_list() as $slug => $name ) { + $current = $this->get_license_data( $slug, $license ); + $next = $this->get_license_data( $slug, strtolower( $next_license ) ); + + if ( empty( $current ) || empty( $next ) ) { + continue; + } + + $current_status = $current['status']; + + if ( $current['text'] !== $next['text'] && $current_status === 'full' ) { + $current_status = 'partial'; + } + ?> + + + + + + +
              +

              +
              + +

              + ', $current['text'] ) ); ?> +

              + +
              + +

              + ', $next['text'] ) ); ?> +

              + +
              +
              +
              + +
              +
              +

              + %2$s', + esc_url( wpforms_admin_upgrade_link( 'wpforms-about-page', 'Get WPForms Pro Today' ) ), + sprintf( /* translators: %s - next license level. */ + esc_html__( 'Get WPForms %s Today and Unlock all the Powerful Features', 'wpforms-lite' ), + esc_html( $next_license ) + ) + ); + ?> +

              + + +

              + 50% off regular price, automatically applied at checkout.', 'wpforms-lite' ), + [ + 'span' => [ + 'class' => [], + ], + ] + ); + ?> +

              + +
              +
              + [ + 'icon' => $images_url . 'plugin-om.png', + 'name' => esc_html__( 'OptinMonster', 'wpforms-lite' ), + 'desc' => esc_html__( 'Instantly get more subscribers, leads, and sales with the #1 conversion optimization toolkit. Create high converting popups, announcement bars, spin a wheel, and more with smart targeting and personalization.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/optinmonster/', + 'url' => 'https://downloads.wordpress.org/plugin/optinmonster.zip', + ], + + 'google-analytics-for-wordpress/googleanalytics.php' => [ + 'icon' => $images_url . 'plugin-mi.png', + 'name' => esc_html__( 'MonsterInsights', 'wpforms-lite' ), + 'desc' => esc_html__( 'The leading WordPress analytics plugin that shows you how people find and use your website, so you can make data driven decisions to grow your business. Properly set up Google Analytics without writing code.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/google-analytics-for-wordpress/', + 'url' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip', + 'pro' => [ + 'plug' => 'google-analytics-premium/googleanalytics-premium.php', + 'icon' => $images_url . 'plugin-mi.png', + 'name' => esc_html__( 'MonsterInsights Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'The leading WordPress analytics plugin that shows you how people find and use your website, so you can make data driven decisions to grow your business. Properly set up Google Analytics without writing code.', 'wpforms-lite' ), + 'url' => 'https://www.monsterinsights.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'wp-mail-smtp/wp_mail_smtp.php' => [ + 'icon' => $images_url . 'plugin-smtp.png', + 'name' => esc_html__( 'WP Mail SMTP', 'wpforms-lite' ), + 'desc' => esc_html__( "Improve your WordPress email deliverability and make sure that your website emails reach user's inbox with the #1 SMTP plugin for WordPress. Over 3 million websites use it to fix WordPress email issues.", 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/wp-mail-smtp/', + 'url' => 'https://downloads.wordpress.org/plugin/wp-mail-smtp.zip', + 'pro' => [ + 'plug' => 'wp-mail-smtp-pro/wp_mail_smtp.php', + 'icon' => $images_url . 'plugin-smtp.png', + 'name' => esc_html__( 'WP Mail SMTP Pro', 'wpforms-lite' ), + 'desc' => esc_html__( "Improve your WordPress email deliverability and make sure that your website emails reach user's inbox with the #1 SMTP plugin for WordPress. Over 3 million websites use it to fix WordPress email issues.", 'wpforms-lite' ), + 'url' => 'https://wpmailsmtp.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'all-in-one-seo-pack/all_in_one_seo_pack.php' => [ + 'icon' => $images_url . 'plugin-aioseo.png', + 'name' => esc_html__( 'AIOSEO', 'wpforms-lite' ), + 'desc' => esc_html__( "The original WordPress SEO plugin and toolkit that improves your website's search rankings. Comes with all the SEO features like Local SEO, WooCommerce SEO, sitemaps, SEO optimizer, schema, and more.", 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/all-in-one-seo-pack/', + 'url' => 'https://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip', + 'pro' => [ + 'plug' => 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php', + 'icon' => $images_url . 'plugin-aioseo.png', + 'name' => esc_html__( 'AIOSEO Pro', 'wpforms-lite' ), + 'desc' => esc_html__( "The original WordPress SEO plugin and toolkit that improves your website's search rankings. Comes with all the SEO features like Local SEO, WooCommerce SEO, sitemaps, SEO optimizer, schema, and more.", 'wpforms-lite' ), + 'url' => 'https://aioseo.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'coming-soon/coming-soon.php' => [ + 'icon' => $images_url . 'plugin-seedprod.png', + 'name' => esc_html__( 'SeedProd', 'wpforms-lite' ), + 'desc' => esc_html__( 'The fastest drag & drop landing page builder for WordPress. Create custom landing pages without writing code, connect them with your CRM, collect subscribers, and grow your audience. Trusted by 1 million sites.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/coming-soon/', + 'url' => 'https://downloads.wordpress.org/plugin/coming-soon.zip', + 'pro' => [ + 'plug' => 'seedprod-coming-soon-pro-5/seedprod-coming-soon-pro-5.php', + 'icon' => $images_url . 'plugin-seedprod.png', + 'name' => esc_html__( 'SeedProd Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'The fastest drag & drop landing page builder for WordPress. Create custom landing pages without writing code, connect them with your CRM, collect subscribers, and grow your audience. Trusted by 1 million sites.', 'wpforms-lite' ), + 'url' => 'https://www.seedprod.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'rafflepress/rafflepress.php' => [ + 'icon' => $images_url . 'plugin-rp.png', + 'name' => esc_html__( 'RafflePress', 'wpforms-lite' ), + 'desc' => esc_html__( 'Turn your website visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with the most powerful giveaways & contests plugin for WordPress.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/rafflepress/', + 'url' => 'https://downloads.wordpress.org/plugin/rafflepress.zip', + 'pro' => [ + 'plug' => 'rafflepress-pro/rafflepress-pro.php', + 'icon' => $images_url . 'plugin-rp.png', + 'name' => esc_html__( 'RafflePress Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'Turn your website visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with the most powerful giveaways & contests plugin for WordPress.', 'wpforms-lite' ), + 'url' => 'https://rafflepress.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'pushengage/main.php' => [ + 'icon' => $images_url . 'plugin-pushengage.png', + 'name' => esc_html__( 'PushEngage', 'wpforms-lite' ), + 'desc' => esc_html__( 'Connect with your visitors after they leave your website with the leading web push notification software. Over 10,000+ businesses worldwide use PushEngage to send 15 billion notifications each month.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/pushengage/', + 'url' => 'https://downloads.wordpress.org/plugin/pushengage.zip', + ], + + 'instagram-feed/instagram-feed.php' => [ + 'icon' => $images_url . 'plugin-sb-instagram.png', + 'name' => esc_html__( 'Smash Balloon Instagram Feeds', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display Instagram content on your WordPress site without writing any code. Comes with multiple templates, ability to show content from multiple accounts, hashtags, and more. Trusted by 1 million websites.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/instagram-feed/', + 'url' => 'https://downloads.wordpress.org/plugin/instagram-feed.zip', + 'pro' => [ + 'plug' => 'instagram-feed-pro/instagram-feed.php', + 'icon' => $images_url . 'plugin-sb-instagram.png', + 'name' => esc_html__( 'Smash Balloon Instagram Feeds Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display Instagram content on your WordPress site without writing any code. Comes with multiple templates, ability to show content from multiple accounts, hashtags, and more. Trusted by 1 million websites.', 'wpforms-lite' ), + 'url' => 'https://smashballoon.com/instagram-feed/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'custom-facebook-feed/custom-facebook-feed.php' => [ + 'icon' => $images_url . 'plugin-sb-fb.png', + 'name' => esc_html__( 'Smash Balloon Facebook Feeds', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display Facebook content on your WordPress site without writing any code. Comes with multiple templates, ability to embed albums, group content, reviews, live videos, comments, and reactions.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/custom-facebook-feed/', + 'url' => 'https://downloads.wordpress.org/plugin/custom-facebook-feed.zip', + 'pro' => [ + 'plug' => 'custom-facebook-feed-pro/custom-facebook-feed.php', + 'icon' => $images_url . 'plugin-sb-fb.png', + 'name' => esc_html__( 'Smash Balloon Facebook Feeds Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display Facebook content on your WordPress site without writing any code. Comes with multiple templates, ability to embed albums, group content, reviews, live videos, comments, and reactions.', 'wpforms-lite' ), + 'url' => 'https://smashballoon.com/custom-facebook-feed/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'feeds-for-youtube/youtube-feed.php' => [ + 'icon' => $images_url . 'plugin-sb-youtube.png', + 'name' => esc_html__( 'Smash Balloon YouTube Feeds', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display YouTube videos on your WordPress site without writing any code. Comes with multiple layouts, ability to embed live streams, video filtering, ability to combine multiple channel videos, and more.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/feeds-for-youtube/', + 'url' => 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip', + 'pro' => [ + 'plug' => 'youtube-feed-pro/youtube-feed.php', + 'icon' => $images_url . 'plugin-sb-youtube.png', + 'name' => esc_html__( 'Smash Balloon YouTube Feeds Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display YouTube videos on your WordPress site without writing any code. Comes with multiple layouts, ability to embed live streams, video filtering, ability to combine multiple channel videos, and more.', 'wpforms-lite' ), + 'url' => 'https://smashballoon.com/youtube-feed/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'custom-twitter-feeds/custom-twitter-feed.php' => [ + 'icon' => $images_url . 'plugin-sb-twitter.png', + 'name' => esc_html__( 'Smash Balloon Twitter Feeds', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display Twitter content in WordPress without writing any code. Comes with multiple layouts, ability to combine multiple Twitter feeds, Twitter card support, tweet moderation, and more.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/custom-twitter-feeds/', + 'url' => 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip', + 'pro' => [ + 'plug' => 'custom-twitter-feeds-pro/custom-twitter-feed.php', + 'icon' => $images_url . 'plugin-sb-twitter.png', + 'name' => esc_html__( 'Smash Balloon Twitter Feeds Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'Easily display Twitter content in WordPress without writing any code. Comes with multiple layouts, ability to combine multiple Twitter feeds, Twitter card support, tweet moderation, and more.', 'wpforms-lite' ), + 'url' => 'https://smashballoon.com/custom-twitter-feeds/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'trustpulse-api/trustpulse.php' => [ + 'icon' => $images_url . 'plugin-trustpulse.png', + 'name' => esc_html__( 'TrustPulse', 'wpforms-lite' ), + 'desc' => esc_html__( 'Boost your sales and conversions by up to 15% with real-time social proof notifications. TrustPulse helps you show live user activity and purchases to help convince other users to purchase.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/trustpulse-api/', + 'url' => 'https://downloads.wordpress.org/plugin/trustpulse-api.zip', + ], + + 'searchwp/index.php' => [ + 'icon' => $images_url . 'plugin-searchwp.png', + 'name' => esc_html__( 'SearchWP', 'wpforms-lite' ), + 'desc' => esc_html__( 'The most advanced WordPress search plugin. Customize your WordPress search algorithm, reorder search results, track search metrics, and everything you need to leverage search to grow your business.', 'wpforms-lite' ), + 'wporg' => false, + 'url' => 'https://searchwp.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + + 'affiliate-wp/affiliate-wp.php' => [ + 'icon' => $images_url . 'plugin-affwp.png', + 'name' => esc_html__( 'AffiliateWP', 'wpforms-lite' ), + 'desc' => esc_html__( 'The #1 affiliate management plugin for WordPress. Easily create an affiliate program for your eCommerce store or membership site within minutes and start growing your sales with the power of referral marketing.', 'wpforms-lite' ), + 'wporg' => false, + 'url' => 'https://affiliatewp.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + + 'stripe/stripe-checkout.php' => [ + 'icon' => $images_url . 'plugin-wp-simple-pay.png', + 'name' => esc_html__( 'WP Simple Pay', 'wpforms-lite' ), + 'desc' => esc_html__( 'The #1 Stripe payments plugin for WordPress. Start accepting one-time and recurring payments on your WordPress site without setting up a shopping cart. No code required.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/stripe/', + 'url' => 'https://downloads.wordpress.org/plugin/stripe.zip', + 'pro' => [ + 'plug' => 'wp-simple-pay-pro-3/simple-pay.php', + 'icon' => $images_url . 'plugin-wp-simple-pay.png', + 'name' => esc_html__( 'WP Simple Pay Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'The #1 Stripe payments plugin for WordPress. Start accepting one-time and recurring payments on your WordPress site without setting up a shopping cart. No code required.', 'wpforms-lite' ), + 'url' => 'https://wpsimplepay.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + + 'easy-digital-downloads/easy-digital-downloads.php' => [ + 'icon' => $images_url . 'plugin-edd.png', + 'name' => esc_html__( 'Easy Digital Downloads', 'wpforms-lite' ), + 'desc' => esc_html__( 'The best WordPress eCommerce plugin for selling digital downloads. Start selling eBooks, software, music, digital art, and more within minutes. Accept payments, manage subscriptions, advanced access control, and more.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/easy-digital-downloads/', + 'url' => 'https://downloads.wordpress.org/plugin/easy-digital-downloads.zip', + ], + + 'sugar-calendar-lite/sugar-calendar-lite.php' => [ + 'icon' => $images_url . 'plugin-sugarcalendar.png', + 'name' => esc_html__( 'Sugar Calendar', 'wpforms-lite' ), + 'desc' => esc_html__( 'A simple & powerful event calendar plugin for WordPress that comes with all the event management features including payments, scheduling, timezones, ticketing, recurring events, and more.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/sugar-calendar-lite/', + 'url' => 'https://downloads.wordpress.org/plugin/sugar-calendar-lite.zip', + 'pro' => [ + 'plug' => 'sugar-calendar/sugar-calendar.php', + 'icon' => $images_url . 'plugin-sugarcalendar.png', + 'name' => esc_html__( 'Sugar Calendar Pro', 'wpforms-lite' ), + 'desc' => esc_html__( 'A simple & powerful event calendar plugin for WordPress that comes with all the event management features including payments, scheduling, timezones, ticketing, recurring events, and more.', 'wpforms-lite' ), + 'url' => 'https://sugarcalendar.com/?utm_source=wpformsplugin&utm_medium=link&utm_campaign=About%20WPForms', + 'act' => 'go-to-url', + ], + ], + 'charitable/charitable.php' => [ + 'icon' => $images_url . 'plugin-charitable.png', + 'name' => esc_html__( 'Charitable', 'wpforms-lite' ), + 'desc' => esc_html__( 'Top-rated WordPress donation and fundraising plugin. Over 10,000+ non-profit organizations and website owners use Charitable to create fundraising campaigns and raise more money online.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/charitable/', + 'url' => 'https://downloads.wordpress.org/plugin/charitable.zip', + ], + 'insert-headers-and-footers/ihaf.php' => [ + 'icon' => $images_url . 'plugin-wpcode.png', + 'name' => esc_html__( 'WPCode', 'wpforms-lite' ), + 'desc' => esc_html__( 'Future proof your WordPress customizations with the most popular code snippet management plugin for WordPress. Trusted by over 1,500,000+ websites for easily adding code to WordPress right from the admin area.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/insert-headers-and-footers/', + 'url' => 'https://downloads.wordpress.org/plugin/insert-headers-and-footers.zip', + ], + 'duplicator/duplicator.php' => [ + 'icon' => $images_url . 'plugin-duplicator.png', + 'name' => esc_html__( 'Duplicator', 'wpforms-lite' ), + 'desc' => esc_html__( 'Leading WordPress backup & site migration plugin. Over 1,500,000+ smart website owners use Duplicator to make reliable and secure WordPress backups to protect their websites. It also makes website migration really easy.', 'wpforms-lite' ), + 'wporg' => 'https://wordpress.org/plugins/duplicator/', + 'url' => 'https://downloads.wordpress.org/plugin/duplicator.zip', + ], + ]; + } + + /** + * Get the array of data that compared the license data. + * + * @since 1.5.0 + * + * @param string $feature Feature name. + * @param string $license License type to get data for. + * + * @return array|false + */ + protected function get_license_data( string $feature, string $license ) { + + $data = [ + 'entries' => [ + 'lite' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Entries via Email Only', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Complete Entry Management inside WordPress', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Complete Entry Management inside WordPress', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Complete Entry Management inside WordPress', 'wpforms-lite' ) . '', + ], + ], + ], + 'fields' => [ + 'lite' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Standard and Payment Fields', 'wpforms-lite' ) . '', + esc_html__( 'Name, Email, Single Line Text, Paragraph Text, Dropdown, Multiple Choice, Checkboxes, Numbers, Number Slider, and Payment Fields (Single Item, Total, etc.)', 'wpforms-lite' ), + ], + ], + 'basic' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Access to all Standard, Fancy, and Payment Fields', 'wpforms-lite' ) . '', + esc_html__( 'Address, Phone, Website / URL, Date / Time, Password, File Upload, Layout, Rich Text, Content, HTML, Pagebreaks, Entry Preview, Section Dividers, Ratings, and Hidden Field', 'wpforms-lite' ), + ], + ], + 'plus' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Access to all Standard, Fancy, and Payment Fields', 'wpforms-lite' ) . '', + esc_html__( 'Address, Phone, Website / URL, Date / Time, Password, File Upload, Layout, Rich Text, Content, HTML, Pagebreaks, Entry Preview, Section Dividers, Ratings, and Hidden Field', 'wpforms-lite' ), + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Access to all Standard, Fancy, and Payment Fields', 'wpforms-lite' ) . '', + esc_html__( 'Address, Phone, Website / URL, Date / Time, Password, File Upload, Layout, Rich Text, Content, HTML, Pagebreaks, Entry Preview, Section Dividers, Ratings, and Hidden Field', 'wpforms-lite' ), + ], + ], + ], + 'conditionals' => [ + 'lite' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'Not available', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Powerful Form Logic for Building Smart Forms', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Powerful Form Logic for Building Smart Forms', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Powerful Form Logic for Building Smart Forms', 'wpforms-lite' ) . '', + ], + ], + ], + 'templates' => [ + 'lite' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Basic Form Templates', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Basic Form Templates', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Basic Form Templates', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . + sprintf( /* translators: %s - number of templates. */ + esc_html__( 'All Form Templates including Bonus %s pre-made form templates', 'wpforms-lite' ), + '2000+' + ) . + '', + ], + ], + ], + 'antispam' => [ + 'lite' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Basic Anti-Spam Settings', 'wpforms-lite' ) . '', + esc_html__( 'Basic Protection, reCAPTCHA, hCaptcha, Cloudflare Turnstile and Akismet', 'wpforms-lite' ), + ], + ], + 'basic' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Additional Anti-Spam Settings', 'wpforms-lite' ) . '', + esc_html__( 'Basic Protection, reCAPTCHA, hCaptcha, Cloudflare Turnstile, Akismet, Country Filter, Keyword Filter, and Custom Captcha', 'wpforms-lite' ), + ], + ], + 'plus' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Additional Anti-Spam Settings', 'wpforms-lite' ) . '', + esc_html__( 'Basic Protection, reCAPTCHA, hCaptcha, Cloudflare Turnstile, Akismet, Country Filter, Keyword Filter, and Custom Captcha', 'wpforms-lite' ), + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Additional Anti-Spam Settings', 'wpforms-lite' ) . '', + esc_html__( 'Basic Protection, reCAPTCHA, hCaptcha, Cloudflare Turnstile, Akismet, Country Filter, Keyword Filter, and Custom Captcha', 'wpforms-lite' ), + ], + ], + ], + 'marketing' => [ + 'lite' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Marketing Integration', 'wpforms-lite' ) . '', + esc_html__( 'Constant Contact only', 'wpforms-lite' ), + ], + ], + 'basic' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Marketing Integration', 'wpforms-lite' ) . '', + esc_html__( 'Constant Contact only', 'wpforms-lite' ), + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Additional Marketing Integrations', 'wpforms-lite' ) . '', + wpforms_list_array( + [ + 'Constant Contact', + 'Mailchimp', + 'AWeber', + 'GetResponse', + 'Campaign Monitor', + 'Brevo', + 'Drip', + 'MailerLite', + 'MailPoet', + 'Kit', + 'Slack', + 'Twilio', + ] + ), + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Additional Marketing Integrations', 'wpforms-lite' ) . '', + wpforms_list_array( + [ + 'Constant Contact', + 'Mailchimp', + 'AWeber', + 'GetResponse', + 'Campaign Monitor', + 'Brevo', + 'Drip', + 'MailerLite', + 'MailPoet', + 'Kit', + 'Slack', + 'Twilio', + 'Make', + 'n8n', + ] + ), + '', + wp_kses( + __( 'Bonus: 9000+ integrations with Zapier.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ), + ], + ], + 'elite' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Marketing Integrations', 'wpforms-lite' ) . '', + wpforms_list_array( + [ + 'ActiveCampaign', + 'Constant Contact', + 'Mailchimp', + 'AWeber', + 'GetResponse', + 'Campaign Monitor', + 'Salesforce', + 'Brevo', + 'HubSpot', + 'Drip', + 'MailerLite', + 'MailPoet', + 'Kit', + 'Slack', + 'Twilio', + 'Pipedrive', + 'Make', + 'Zoho CRM', + 'n8n', + ] + ), + '', + wp_kses( + __( 'Bonus: 9000+ integrations with Zapier.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ), + ], + ], + 'ultimate' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Marketing Integrations', 'wpforms-lite' ) . '', + wpforms_list_array( + [ + 'ActiveCampaign', + 'Constant Contact', + 'Mailchimp', + 'AWeber', + 'GetResponse', + 'Campaign Monitor', + 'Salesforce', + 'Brevo', + 'HubSpot', + 'Drip', + 'MailerLite', + 'MailPoet', + 'Kit', + 'Slack', + 'Twilio', + 'Pipedrive', + 'Make', + 'Zoho CRM', + 'n8n', + ] + ), + '', + wp_kses( + __( 'Bonus: 9000+ integrations with Zapier.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ), + ], + ], + 'agency' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Marketing Integrations', 'wpforms-lite' ) . '', + wpforms_list_array( + [ + 'ActiveCampaign', + 'Constant Contact', + 'Mailchimp', + 'AWeber', + 'GetResponse', + 'Campaign Monitor', + 'Salesforce', + 'Brevo', + 'HubSpot', + 'Drip', + 'MailerLite', + 'MailPoet', + 'Kit', + 'Slack', + 'Twilio', + 'Pipedrive', + 'Make', + 'Zoho CRM', + 'n8n', + ] + ), + '', + wp_kses( + __( 'Bonus: 9000+ integrations with Zapier.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ), + ], + ], + ], + 'payments' => [ + 'lite' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using Stripe and Square only', 'wpforms-lite' ), + ], + ], + 'basic' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using Stripe and Square only', 'wpforms-lite' ), + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using Stripe and Square only', 'wpforms-lite' ), + ], + ], + 'pro' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Create Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using PayPal Commerce, Stripe, Square, and PayPal Standard', 'wpforms-lite' ), + ], + ], + 'elite' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Create Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using PayPal Commerce, Stripe, Square, PayPal Standard, and Authorize.Net', 'wpforms-lite' ), + ], + ], + 'agency' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Create Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using PayPal Commerce, Stripe, Square, PayPal Standard, and Authorize.Net', 'wpforms-lite' ), + ], + ], + 'ultimate' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Create Payment Forms', 'wpforms-lite' ) . '', + esc_html__( 'Accept payments using PayPal Commerce, Stripe, Square, PayPal Standard, and Authorize.Net', 'wpforms-lite' ), + ], + ], + ], + 'surveys' => [ + 'lite' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'Not Available', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'Not Available', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'Not Available', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Create interactive Surveys, Polls, and Quizzes with beautiful reports', 'wpforms-lite' ) . '', + ], + ], + ], + 'advanced' => [ + 'lite' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'No Advanced Features', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Advanced Features', 'wpforms-lite' ) . '', + esc_html__( 'Multi-page Forms, File Upload Forms, Multiple Form Notifications, File Upload and CSV Attachments, Conditional Form Confirmation', 'wpforms-lite' ), + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Limited Advanced Features', 'wpforms-lite' ) . '', + esc_html__( 'Multi-page Forms, File Upload Forms, Multiple Form Notifications, File Upload and CSV Attachments, Conditional Form Confirmation, Save and Resume Form', 'wpforms-lite' ), + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Advanced Features', 'wpforms-lite' ) . '', + esc_html__( 'Multi-page Forms, File Upload Forms, Multiple Form Notifications, File Upload and CSV Attachments, Conditional Form Confirmation, Custom CAPTCHA, Offline Forms, Signature Forms, Save and Resume Form, Coupons', 'wpforms-lite' ), + ], + ], + ], + 'addons' => [ + 'lite' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'No Addons Included', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'No Addons Included', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Email Marketing Addons included', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Pro Addons Included', 'wpforms-lite' ) . '', + $this->get_pro_addon_list(), + ], + ], + 'elite' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Addons Included', 'wpforms-lite' ) . '', + self::get_top_addons_list(), + ], + ], + 'ultimate' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Addons Included', 'wpforms-lite' ) . '', + self::get_top_addons_list(), + ], + ], + 'agency' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'All Addons Included', 'wpforms-lite' ) . '', + self::get_top_addons_list(), + ], + ], + ], + 'support' => [ + 'lite' => [ + 'status' => 'none', + 'text' => [ + '' . esc_html__( 'Limited Support', 'wpforms-lite' ) . '', + ], + ], + 'basic' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Standard Support', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( 'Standard Support', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Priority Support', 'wpforms-lite' ) . '', + ], + ], + 'elite' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Premium Support', 'wpforms-lite' ) . '', + ], + ], + 'ultimate' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Premium Support', 'wpforms-lite' ) . '', + ], + ], + 'agency' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Premium Support', 'wpforms-lite' ) . '', + ], + ], + ], + 'sites' => [ + 'basic' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( '1 Site', 'wpforms-lite' ) . '', + ], + ], + 'plus' => [ + 'status' => 'partial', + 'text' => [ + '' . esc_html__( '3 Sites', 'wpforms-lite' ) . '', + ], + ], + 'pro' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( '5 Sites', 'wpforms-lite' ) . '', + ], + ], + 'elite' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Unlimited Sites', 'wpforms-lite' ) . '', + ], + ], + 'ultimate' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Unlimited Sites', 'wpforms-lite' ) . '', + ], + ], + 'agency' => [ + 'status' => 'full', + 'text' => [ + '' . esc_html__( 'Unlimited Sites', 'wpforms-lite' ) . '', + ], + ], + ], + ]; + + // Wrong feature? + if ( ! isset( $data[ $feature ] ) ) { + return false; + } + + // Is a top level license? + $is_licenses_pro_and_top = in_array( $license, self::$licenses_pro_and_top, true ); + + // Wrong license type? + if ( ! isset( $data[ $feature ][ $license ] ) && ! $is_licenses_pro_and_top ) { + return false; + } + + // Some licenses have partial data. + return $data[ $feature ][ $license ] ?? ( $is_licenses_pro_and_top ? $data[ $feature ]['pro'] : $data[ $feature ][ $license ] ); + } + + /** + * Get the current installation license type (always lowercase). + * + * @since 1.5.0 + * + * @return string + */ + protected function get_license_type(): string { + + $type = wpforms_get_license_type(); + + return $type ? $type : 'lite'; + } + + /** + * Get the list of features for the licenses. + * + * @since 1.8.2.3 + * + * @return array + */ + private function get_licenses_features_list(): array { + + self::$licenses_features = [ + 'entries' => esc_html__( 'Form Entries', 'wpforms-lite' ), + 'fields' => esc_html__( 'Form Fields', 'wpforms-lite' ), + 'templates' => esc_html__( 'Form Templates', 'wpforms-lite' ), + 'antispam' => esc_html__( 'Spam Protection and Security', 'wpforms-lite' ), + 'conditionals' => esc_html__( 'Smart Conditional Logic', 'wpforms-lite' ), + 'marketing' => esc_html__( 'Marketing Integrations', 'wpforms-lite' ), + 'payments' => esc_html__( 'Payment Forms', 'wpforms-lite' ), + 'surveys' => esc_html__( 'Surveys, Polls, and Quizzes', 'wpforms-lite' ), + 'advanced' => esc_html__( 'Advanced Form Features', 'wpforms-lite' ), + 'addons' => esc_html__( 'WPForms Addons', 'wpforms-lite' ), + 'support' => esc_html__( 'Customer Support', 'wpforms-lite' ), + 'sites' => esc_html__( 'Number of Sites', 'wpforms-lite' ), + ]; + + return self::$licenses_features; + } + + /** + * Get the list of addons included in Pro license. + * + * @since 1.9.8.3 + * + * @return string + */ + private function get_pro_addon_list(): string { + + static $pro_addons_list = null; + + if ( $pro_addons_list === null ) { + $pro_addons = Requirements::get_instance()->get_addons_by_license( 'basic, plus, pro' ); + $pro_addons_list = sprintf( + /* translators: %s - number of addons. */ + esc_html__( 'PDF, Calculations, Form Abandonment, Conversational Forms, Lead Forms, Frontend Post Submission, User Registration, Geolocation, Google Sheets, Coupons, Dropbox, Google Calendar, Google Drive, Airtable, Notion, and more (%1$s+ total)', 'wpforms-lite' ), + count( $pro_addons ) + ); + } + + return $pro_addons_list; + } + + /** + * Get the list of addons included in Elite, Ultimate, and Agency licenses. + * + * @since 1.9.8.3 + * + * @return string + */ + private static function get_top_addons_list(): string { + + static $top_addons_list = null; + + if ( $top_addons_list === null ) { + $pro_addons = Requirements::get_instance()->get_addons_by_license( Requirements::BASIC_PLUS_PRO_AND_TOP ); + $top_addons_list = sprintf( + /* translators: %s - number of addons. */ + esc_html__( 'PDF, Calculations, Form Abandonment, Conversational Forms, Lead Forms, Frontend Post Submission, User Registration, Geolocation, Webhooks, Google Sheets, Coupons, Dropbox, Google Calendar, Google Drive, Entry Automation, Airtable, Notion, and more (%1$s+ total)', 'wpforms-lite' ), + count( $pro_addons ) + ); + } + + return $top_addons_list; + } +} + +new WPForms_About(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/class-editor.php b/wp-content/plugins/wpforms-lite/includes/admin/class-editor.php new file mode 100644 index 0000000..d8370a2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/class-editor.php @@ -0,0 +1,383 @@ +is_post_editor_page(), $editor_id ) ) { + return; + } + + // Setup the icon - currently using a dashicon. + $icon = ''; + + printf( + '', + esc_attr( $editor_id ), + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $icon, + esc_html__( 'Add Form', 'wpforms-lite' ) + ); + + $min = wpforms_get_min_suffix(); + + // If we have made it this far then load the JS. + wp_enqueue_script( + 'wpforms-editor', + WPFORMS_PLUGIN_URL . "assets/js/admin/admin-editor{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + add_action( 'admin_footer', [ $this, 'shortcode_modal' ] ); + } + + /** + * Check if we are on the post editor admin page. + * + * @since 1.6.2 + * + * @returns boolean True if it is post editor admin page. + */ + public function is_post_editor_page() { + + if ( ! is_admin() ) { + return false; + } + + // get_current_screen() is loaded after 'admin_init' hook and may not exist yet. + if ( ! function_exists( 'get_current_screen' ) ) { + return false; + } + + $screen = get_current_screen(); + + return $screen !== null && $screen->parent_base === 'edit'; + } + + /** + * Modal window for inserting the form shortcode into TinyMCE. + * + * Thickbox is old and busted so we don't use that. Creating a custom view in + * Backbone would make me pull my hair out. So instead we offer a small clean + * modal that is based off of the WordPress insert link modal. + * + * @since 1.0.0 + */ + public function shortcode_modal() { + ?> + + + + hooks(); + } + + /** + * Hooks. + * + * @since 1.9.7.3 + * + * @return void + */ + private function hooks(): void { + + // Let's make some menus. + add_action( 'admin_menu', [ $this, 'register_menus' ], 9 ); + add_action( 'admin_head', [ $this, 'hide_wpforms_submenu_items' ] ); + add_action( 'admin_head', [ $this, 'adjust_pro_menu_item' ] ); + add_action( 'admin_head', [ $this, 'admin_menu_styles' ], 11 ); + + // Plugins page settings link. + add_filter( 'plugin_action_links_' . plugin_basename( WPFORMS_PLUGIN_DIR . 'wpforms.php' ), [ $this, 'settings_link' ], 10, 4 ); + + add_action( 'activated_plugin', [ $this, 'activated_rotation_plugin' ], 10, 2 ); + } + + /** + * Register our menus. + * + * @since 1.0.0 + */ + public function register_menus(): void { + + $manage_cap = wpforms_get_capability_manage_options(); + $access = wpforms()->obj( 'access' ); + + if ( ! $access || ! method_exists( $access, 'get_menu_cap' ) ) { + return; + } + + // Default Forms top level menu item. + add_menu_page( + esc_html__( 'WPForms', 'wpforms-lite' ), + esc_html__( 'WPForms', 'wpforms-lite' ), + $access->get_menu_cap( 'view_forms' ), + 'wpforms-overview', + [ $this, 'admin_page' ], + // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode + 'data:image/svg+xml;base64,' . base64_encode( '' ), + /** + * Filters WPForms menu position. + * + * @since 1.6.0.2 + * + * @param string|int|float $position Menu position. + */ + apply_filters( 'wpforms_menu_position', '58.9' ) // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ); + + // All Forms sub menu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'WPForms', 'wpforms-lite' ), + esc_html__( 'All Forms', 'wpforms-lite' ), + $access->get_menu_cap( 'view_forms' ), + 'wpforms-overview', + [ $this, 'admin_page' ] + ); + + // Add New submenu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'WPForms Builder', 'wpforms-lite' ), + esc_html__( 'Add New Form', 'wpforms-lite' ), + $access->get_menu_cap( [ 'create_forms', 'edit_forms' ] ), + 'wpforms-builder', + [ $this, 'admin_page' ] + ); + + // Entries sub menu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'Form Entries', 'wpforms-lite' ), + esc_html__( 'Entries', 'wpforms-lite' ), + $access->get_menu_cap( 'view_entries' ), + 'wpforms-entries', + [ $this, 'admin_page' ] + ); + + // Payments sub menu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'Payments', 'wpforms-lite' ), + esc_html__( 'Payments', 'wpforms-lite' ) . $this->get_new_badge_html(), + $manage_cap, + WPForms\Admin\Payments\Payments::SLUG, + [ $this, 'admin_page' ] + ); + + do_action_deprecated( // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + 'wpform_admin_menu', + [ $this ], + '1.5.5 of the WPForms plugin', + 'wpforms_admin_menu' + ); + + /** + * Fires after constructing the WPForms admin menu. + * + * @since 1.5.4.2 + * + * @param WPForms_Admin_Menu $instance WPForms Admin Menu instance. + */ + do_action( 'wpforms_admin_menu', $this ); + + // Templates sub menu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'WPForms Templates', 'wpforms-lite' ), + esc_html__( 'Form Templates', 'wpforms-lite' ), + $access->get_menu_cap( 'edit_forms' ), + 'wpforms-templates', + [ $this, 'admin_page' ] + ); + + // Settings submenu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'WPForms Settings', 'wpforms-lite' ), + esc_html__( 'Settings', 'wpforms-lite' ), + $manage_cap, + 'wpforms-settings', + [ $this, 'admin_page' ] + ); + + // Tools sub menu item. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'WPForms Tools', 'wpforms-lite' ), + esc_html__( 'Tools', 'wpforms-lite' ), + $access->get_menu_cap( [ 'create_forms', 'view_forms', 'view_entries' ] ), + 'wpforms-tools', + [ $this, 'admin_page' ] + ); + + // Hidden placeholder paged used for misc content. + add_submenu_page( + 'wpforms-settings', + esc_html__( 'WPForms', 'wpforms-lite' ), + esc_html__( 'Info', 'wpforms-lite' ), + $access->get_menu_cap( 'any' ), + 'wpforms-page', + [ $this, 'admin_page' ] + ); + + // Addons submenu page. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'WPForms Addons', 'wpforms-lite' ), + '' . esc_html__( 'Addons', 'wpforms-lite' ) . '', + $access->get_menu_cap( 'edit_forms' ), + 'wpforms-addons', + [ $this, 'admin_page' ] + ); + + // Rotating submenu. + $rotation = $this->get_rotating_submenu(); + + if ( $rotation ) { + add_submenu_page( + 'wpforms-overview', + $rotation['page_title'], + $rotation['menu_title'], + $manage_cap, + $rotation['menu_slug'], + [ $this, 'admin_page' ] + ); + } + + // SMTP submenu page. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'SMTP', 'wpforms-lite' ), + esc_html__( 'SMTP', 'wpforms-lite' ), + $manage_cap, + WPForms\Admin\Pages\SMTP::SLUG, + [ $this, 'admin_page' ] + ); + + // About submenu page. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'About WPForms', 'wpforms-lite' ), + esc_html__( 'About Us', 'wpforms-lite' ), + $access->get_menu_cap( 'any' ), + WPForms_About::SLUG, + [ $this, 'admin_page' ] + ); + + // Community submenu page. + add_submenu_page( + 'wpforms-overview', + esc_html__( 'Community', 'wpforms-lite' ), + esc_html__( 'Community', 'wpforms-lite' ), + $manage_cap, + WPForms\Admin\Pages\Community::SLUG, + [ $this, 'admin_page' ] + ); + + if ( ! wpforms()->is_pro() ) { + add_submenu_page( + 'wpforms-overview', + esc_html__( 'Upgrade to Pro', 'wpforms-lite' ), + esc_html__( 'Upgrade to Pro', 'wpforms-lite' ), + $manage_cap, + wpforms_admin_upgrade_link( 'admin-menu' ) + ); + } + } + + /** + * Hide the "Add New" admin menu item if a user can't create forms. + * + * @since 1.5.8 + */ + public function hide_wpforms_submenu_items(): void { + + if ( wpforms_current_user_can( 'create_forms' ) ) { + return; + } + + global $submenu; + + if ( ! isset( $submenu['wpforms-overview'] ) ) { + return; + } + + foreach ( $submenu['wpforms-overview'] as $key => $item ) { + if ( isset( $item[2] ) && $item[2] === 'wpforms-builder' ) { + unset( $submenu['wpforms-overview'][ $key ] ); + break; + } + } + + $this->hide_wpforms_menu_item(); + } + + /** + * Hide the "WPForms" admin menu if it has no submenu items. + * + * @since 1.5.8 + */ + public function hide_wpforms_menu_item(): void { + + global $submenu, $menu; + + if ( ! empty( $submenu['wpforms-overview'] ) ) { + return; + } + + unset( $submenu['wpforms-overview'] ); + + foreach ( $menu as $key => $item ) { + if ( isset( $item[2] ) && $item[2] === 'wpforms-overview' ) { + unset( $menu[ $key ] ); + break; + } + } + } + + /** + * Make changes to the PRO menu item. + * + * @since 1.8.1 + */ + public function adjust_pro_menu_item(): void { + + global $submenu; + + // Bail if a plugin menu is not registered. + if ( ! isset( $submenu['wpforms-overview'] ) ) { + return; + } + + $upgrade_link_position = key( + array_filter( + $submenu['wpforms-overview'], + static function ( $item ) { + + return strpos( urldecode( $item[2] ), 'wpforms.com/lite-upgrade' ) !== false; + } + ) + ); + + // Bail if "Upgrade to Pro" menu item is not registered. + if ( $upgrade_link_position === null ) { + return; + } + + // Add the PRO badge to the menu item. + // phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited + if ( isset( $submenu['wpforms-overview'][ $upgrade_link_position ][4] ) ) { + $submenu['wpforms-overview'][ $upgrade_link_position ][4] .= ' wpforms-sidebar-upgrade-pro'; + } else { + $submenu['wpforms-overview'][ $upgrade_link_position ][] = 'wpforms-sidebar-upgrade-pro'; + } + + $current_screen = get_current_screen(); + $upgrade_utm_content = $current_screen === null ? 'Upgrade to Pro' : 'Upgrade to Pro - ' . $current_screen->base; + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $upgrade_utm_content = empty( $_GET['view'] ) ? $upgrade_utm_content : $upgrade_utm_content . ': ' . sanitize_key( $_GET['view'] ); + + // Add utm_content to the menu item. + $submenu['wpforms-overview'][ $upgrade_link_position ][2] = esc_url( + add_query_arg( + 'utm_content', + $upgrade_utm_content, + $submenu['wpforms-overview'][ $upgrade_link_position ][2] + ) + ); + // phpcs:enable WordPress.WP.GlobalVariablesOverride.Prohibited + } + + /** + * Wrapper for the hook to render our custom settings pages. + * + * @since 1.0.0 + */ + public function admin_page(): void { + + /** + * Fires to show the WPForms admin page. + * + * @since 1.0.0 + */ + do_action( 'wpforms_admin_page' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Add a settings link to the Plugins page. + * + * @since 1.3.9 + * + * @param array|mixed $links Plugin row links. + * @param string $plugin_file Path to the plugin file relative to the plugins' directory. + * @param array $plugin_data An array of plugin data. See `get_plugin_data()`. + * @param string $context The plugin context. + * + * @return array $links + * @noinspection PhpUnusedParameterInspection + * @noinspection HtmlUnknownTarget + * @noinspection PhpMissingParamTypeInspection + */ + public function settings_link( $links, $plugin_file, $plugin_data, $context ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $custom['wpforms-pro'] = sprintf( + '%3$s', + esc_url( + wpforms_admin_upgrade_link( + 'all-plugins', + 'Get WPForms Pro' + ) + ), + esc_attr__( 'Upgrade to WPForms Pro', 'wpforms-lite' ), + esc_html__( 'Get WPForms Pro', 'wpforms-lite' ) + ); + + $custom['wpforms-settings'] = sprintf( + '%s', + esc_url( + add_query_arg( + [ 'page' => 'wpforms-settings' ], + admin_url( 'admin.php' ) + ) + ), + esc_attr__( 'Go to WPForms Settings page', 'wpforms-lite' ), + esc_html__( 'Settings', 'wpforms-lite' ) + ); + + $custom['wpforms-docs'] = sprintf( + '%3$s', + esc_url( + add_query_arg( + [ + 'utm_content' => 'Documentation', + 'utm_campaign' => 'liteplugin', + 'utm_medium' => 'all-plugins', + 'utm_source' => 'WordPress', + ], + 'https://wpforms.com/docs/' + ) + ), + esc_attr__( 'Read the documentation', 'wpforms-lite' ), + esc_html__( 'Docs', 'wpforms-lite' ) + ); + + return array_merge( $custom, (array) $links ); + } + + /** + * Determine which submenu item to show (rotation). + * + * Current behavior: + * - Show item until the plugin has been activated for 7 or more days. + * - Once 7+ days have passed since activation - show next item. + * - Once the last item has been active for more than 7 days, always display the first item (WP Consent page). + * + * @since 1.9.8.6 + * + * @return array|null { menu_title, page_title, menu_slug } or null to show none. + */ + private function get_rotating_submenu(): ?array { + + $items = $this->get_rotation_items(); + $now = time(); + $defaults = [ + 'label' => '', + 'menu_slug' => '', + 'slug' => '', + 'plugin_file' => '', + ]; + + // Find the first item that should be displayed. + foreach ( $items as $item ) { + $item = wp_parse_args( $item, $defaults ); + + $label = (string) $item['label']; + $menu_slug = (string) $item['menu_slug']; + $plugin_slug = (string) $item['slug']; + + if ( empty( $label ) || empty( $menu_slug ) ) { + continue; // Skip misconfigured items. + } + + $timestamp = $this->get_promo_plugin_activation_timestamp( $plugin_slug ); + + // Show if a plugin has never activated or within 7 days of activation. + $within = $timestamp === 0 || ( $now - $timestamp ) < 7 * DAY_IN_SECONDS; + + if ( $within ) { + return [ + 'menu_title' => $label, + 'page_title' => $label, + 'menu_slug' => $menu_slug, + ]; + } + } + + // If all items are considered "complete", return the first one (cycle back). + $first = $items[0]; + $label = $first['label']; + $menu_slug = $first['menu_slug']; + + if ( ! empty( $label ) && ! empty( $menu_slug ) ) { + return [ + 'menu_title' => $label, + 'page_title' => $label, + 'menu_slug' => $menu_slug, + ]; + } + + return null; + } + + /** + * List of rotating plugins files. + * + * @since 1.9.8.6 + * + * @return array + */ + private function get_rotation_plugins(): array { + + return [ + 'wpconsent-cookies-banner-privacy-suite/wpconsent.php' => 'wpconsent', + 'wpconsent-premium/wpconsent-premium.php' => 'wpconsent', + 'sugar-calendar-lite/sugar-calendar-lite.php' => 'sugar-calendar', + 'sugar-calendar/sugar-calendar.php' => 'sugar-calendar', + 'duplicator/duplicator.php' => 'duplicator', + 'duplicator-pro/duplicator-pro.php' => 'duplicator', + 'uncanny-automator/uncanny-automator.php' => 'uncanny-automator', + 'uncanny-automator-pro/uncanny-automator-pro.php' => 'uncanny-automator', + ]; + } + + /** + * Record the activation time of a rotation plugin. + * + * @since 1.9.8.6 + * + * @param string $plugin Path to the plugin file relative to the plugins' directory. + * @param bool $network_wide Whether the plugin is being activated network wide. + */ + public function activated_rotation_plugin( string $plugin, bool $network_wide ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $rotation_plugins = $this->get_rotation_plugins(); + $plugin_key = $rotation_plugins[ $plugin ] ?? ''; + + if ( empty( $plugin_key ) ) { + return; + } + + $activated_plugins = (array) get_option( 'wpforms_rotation_activated_plugins', [] ); + + // Skip if already recorded. + if ( isset( $activated_plugins[ $plugin_key ] ) ) { + return; + } + + $activated_plugins[ $plugin_key ] = time(); + + update_option( 'wpforms_rotation_activated_plugins', $activated_plugins ); + } + + /** + * Editable list of rotating submenu items. + * + * @since 1.9.8.6 + * + * @return array + */ + private function get_rotation_items(): array { + + return [ + [ + 'label' => esc_html__( 'Privacy Compliance', 'wpforms-lite' ), + 'menu_slug' => WPForms\Admin\Pages\PrivacyCompliance::SLUG, + 'slug' => 'wpconsent', + 'plugin_file' => 'wpconsent-cookies-banner-privacy-suite/wpconsent.php', + ], + [ + 'label' => esc_html__( 'Events', 'wpforms-lite' ), + 'menu_slug' => WPForms\Admin\Pages\SugarCalendar::SLUG, + 'slug' => 'sugar-calendar', + 'plugin_file' => 'sugar-calendar-lite/sugar-calendar-lite.php', + ], + [ + 'label' => esc_html__( 'Backups', 'wpforms-lite' ), + 'menu_slug' => WPForms\Admin\Pages\Duplicator::SLUG, + 'slug' => 'duplicator', + 'plugin_file' => 'duplicator/duplicator.php', + ], + [ + 'label' => esc_html__( 'Automation', 'wpforms-lite' ), + 'menu_slug' => WPForms\Admin\Pages\UncannyAutomator::SLUG, + 'slug' => 'uncanny-automator', + 'plugin_file' => 'uncanny-automator/uncanny-automator.php', + ], + ]; + } + + /** + * Get the HTML for the "NEW!" badge. + * + * @since 1.7.8 + * + * @return string + */ + private function get_new_badge_html(): string { + + return ' NEW!'; + } + + /** + * Output inline styles for the admin menu. + * + * @since 1.7.8 + */ + public function admin_menu_styles(): void { + + $styles = '#adminmenu .wpforms-menu-new { display: inline-block; color: #f18500; vertical-align: super; font-size: 9px; font-weight: 600; padding-inline-start: 2px; }'; + + if ( ! wpforms()->is_pro() ) { + $styles .= 'a.wpforms-sidebar-upgrade-pro { background-color: #00a32a !important; color: #fff !important; font-weight: 600 !important; }'; + } + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + printf( '', $styles ); + } + + /** + * Get a timestamp. + * + * @since 1.9.8.6 + * + * @param string $slug Slug of the plugin. + * + * @return int + */ + private function get_promo_plugin_activation_timestamp( string $slug ): int { + + $activated_plugins = (array) get_option( 'wpforms_rotation_activated_plugins', [] ); + + return isset( $activated_plugins[ $slug ] ) ? (int) $activated_plugins[ $slug ] : 0; + } +} + +new WPForms_Admin_Menu(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/class-notices.php b/wp-content/plugins/wpforms-lite/includes/admin/class-notices.php new file mode 100644 index 0000000..dd3d00d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/class-notices.php @@ -0,0 +1,139 @@ +notices ); + } + + /** + * Add notice to instance property. + * + * @since 1.3.9 + * + * @param string $message Message to display. + * @param string $type Type of the notice (default: ''). + */ + public static function add( $message, $type = '' ) { + + _deprecated_function( __METHOD__, '1.7.2 of the WPForms plugin' ); + + $instance = self::getInstance(); + $id = 'wpforms-notice-' . ( count( $instance->notices ) + 1 ); + $type = ! empty( $type ) ? 'notice-' . $type : ''; + $notice = sprintf( '
              %s
              ', $type, $id, wpautop( $message ) ); + + $instance->notices[] = $notice; + } + + /** + * Add Info notice. + * + * @since 1.3.9 + * + * @param string $message Message to display. + */ + public static function info( $message ) { + self::add( $message, 'info' ); + } + + /** + * Add Error notice. + * + * @since 1.3.9 + * + * @param string $message Message to display. + */ + public static function error( $message ) { + self::add( $message, 'error' ); + } + + /** + * Add Success notice. + * + * @since 1.3.9 + * + * @param string $message Message to display. + */ + public static function success( $message ) { + self::add( $message, 'success' ); + } + + /** + * Add Warning notice. + * + * @since 1.3.9 + * + * @param string $message Message to display. + */ + public static function warning( $message ) { + self::add( $message, 'warning' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/admin/class-review.php b/wp-content/plugins/wpforms-lite/includes/admin/class-review.php new file mode 100644 index 0000000..bcfb80d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/class-review.php @@ -0,0 +1,346 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + * + * @return void + */ + private function hooks(): void { + + // Admin notice requesting review. + add_action( 'admin_init', [ $this, 'review_request' ] ); + + // Admin footer text. + add_filter( 'admin_footer_text', [ $this, 'admin_footer' ], 1, 2 ); + add_action( 'in_admin_footer', [ $this, 'promote_wpforms' ] ); + } + + /** + * Add admin notices as needed for reviews. + * + * @since 1.3.2 + */ + public function review_request() { + + if ( + // Only consider showing the review request to admin users. + ! is_super_admin() || + // If the user has opted out of product announcement notifications, don't display the review request. + wpforms_setting( 'hide-announcements' ) || + // Do not show the review request on Addons page. + wpforms_is_admin_page( 'addons' ) + ) { + return; + } + + // Verify that we can do a check for reviews. + $notices = (array) get_option( 'wpforms_admin_notices', [] ); + $time = time(); + $load = false; + + if ( empty( $notices['review_request'] ) ) { + $notices['review_request'] = [ + 'time' => $time, + 'dismissed' => false, + ]; + + update_option( 'wpforms_admin_notices', $notices ); + + return; + } + + // Check if it has been dismissed or not. + if ( + isset( $notices['review_request']['dismissed'], $notices['review_request']['time'] ) && + ! $notices['review_request']['dismissed'] && + ( ( $notices['review_request']['time'] + DAY_IN_SECONDS ) <= $time ) + ) { + $load = true; + } + + // If we cannot load, return early. + if ( ! $load ) { + return; + } + + // The Logic is slightly different depending on what's at our disposal. + if ( class_exists( 'WPForms_Entry_Handler', false ) && wpforms()->is_pro() ) { + $this->review(); + } else { + $this->review_lite(); + } + } + + /** + * Maybe show review request. + * + * @since 1.3.9 + */ + public function review() { + + // Fetch total entries. + $entry_handler = wpforms()->obj( 'entry' ); + $entries = $entry_handler ? $entry_handler->get_entries( [ 'number' => 50 ], true ) : 0; + + // Only show review request if the site has collected at least 50 entries. + if ( empty( $entries ) || $entries < 50 ) { + return; + } + + ob_start(); + + // We have a candidate! Output a review message. + $this->review_content(); + + Notice::info( + ob_get_clean(), + [ + 'dismiss' => Notice::DISMISS_GLOBAL, + 'slug' => 'review_request', + 'autop' => false, + 'class' => 'wpforms-review-notice', + ] + ); + } + + /** + * Maybe show Lite review request. + * + * @since 1.3.9 + */ + public function review_lite() { + + // Do not show the review request on Entries pages. + if ( wpforms_is_admin_page( 'entries' ) ) { + return; + } + + // Fetch when plugin was initially installed. + $activated = (array) get_option( 'wpforms_activated', [] ); + + if ( ! empty( $activated['lite'] ) ) { + // Only continue if the plugin has been installed for at least 14 days. + if ( ( $activated['lite'] + ( DAY_IN_SECONDS * 14 ) ) > time() ) { + return; + } + } else { + $activated['lite'] = time(); + + update_option( 'wpforms_activated', $activated ); + + return; + } + + // Only proceed with displaying if the user created at least one form. + $form_count = wp_count_posts( 'wpforms' ); + + if ( empty( $form_count->publish ) ) { + return; + } + + // Check if the Constant Contact notice is displaying. + $cc = get_option( 'wpforms_constant_contact', false ); + + // If it's displaying don't ask for review until they configure CC or + // dismiss the notice. + if ( $cc ) { + return; + } + + ob_start(); + + // We have a candidate! Output a review message. + $this->review_content(); + + Notice::info( + ob_get_clean(), + [ + 'dismiss' => Notice::DISMISS_GLOBAL, + 'slug' => 'review_lite_request', + 'autop' => false, + 'class' => 'wpforms-review-notice', + ] + ); + } + + /** + * Output the review content. + * + * @since 1.8.7.2 + */ + private function review_content(): void { + + ?> +

              +

              + + + +
              + + + +
              + + + +

              + id ) && strpos( $current_screen->id, 'wpforms' ) !== false ) { + $url = wpforms_wp_org_review_link(); + $text = sprintf( + wp_kses( /* translators: $1$s - WPForms plugin name, $2$s - WP.org review link, $3$s - WP.org review link. */ + __( 'Please rate %1$s ★★★★★ on WordPress.org to help us spread the word.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + 'WPForms', + $url, + $url + ); + } + + return $text; + } + + /** + * Pre-footer promotion block, displayed on all WPForms admin pages except Form Builder. + * + * @since 1.8.0 + */ + public function promote_wpforms() { + + // phpcs:ignore WordPress.Security.NonceVerification + $current_page = isset( $_REQUEST['page'] ) ? sanitize_key( $_REQUEST['page'] ) : ''; + + if ( ! in_array( $current_page, self::PAGES, true ) ) { + return; + } + + $links = [ + [ + 'url' => wpforms()->is_pro() ? + wpforms_utm_link( + 'https://wpforms.com/account/support/', + 'Plugin Footer', + 'Contact Support' + ) : 'https://wordpress.org/support/plugin/wpforms-lite/', + 'text' => __( 'Support', 'wpforms-lite' ), + 'target' => '_blank', + ], + [ + 'url' => wpforms_utm_link( + 'https://wpforms.com/docs/', + 'Plugin Footer', + 'Plugin Documentation' + ), + 'text' => __( 'Docs', 'wpforms-lite' ), + 'target' => '_blank', + ], + [ + 'url' => 'https://www.facebook.com/groups/wpformsvip/', + 'text' => __( 'VIP Circle', 'wpforms-lite' ), + 'target' => '_blank', + ], + [ + 'url' => admin_url( 'admin.php?page=wpforms-about' ), + 'text' => __( 'Free Plugins', 'wpforms-lite' ), + ], + ]; + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/promotion', + [ + 'title' => __( 'Made with ♥ by the WPForms Team', 'wpforms-lite' ), + 'links' => $links, + ], + true + ); + } +} + +new WPForms_Review(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/class-settings.php b/wp-content/plugins/wpforms-lite/includes/admin/class-settings.php new file mode 100644 index 0000000..a426b67 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/class-settings.php @@ -0,0 +1,820 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.8.5.4 + */ + private function hooks() { + + // Maybe load settings page. + add_action( 'admin_init', [ $this, 'init' ] ); + } + + /** + * Determine if the user is viewing the settings page, if so, party on. + * + * @since 1.0.0 + */ + public function init() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Only load if we are actually on the settings page. + if ( ! wpforms_is_admin_page( 'settings' ) ) { + return; + } + + // Include API callbacks and functions. + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/settings-api.php'; + + // Show downgraded notice. + $this->maybe_display_downgraded_notice(); + + // Watch for triggered save. + $this->save_settings(); + + // Determine the current active settings tab. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $this->view = isset( $_GET['view'] ) ? sanitize_key( wp_unslash( $_GET['view'] ) ) : 'general'; + + $this->modify_url(); + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + add_action( 'wpforms_admin_page', [ $this, 'output' ] ); + + // Monitor custom tables. + $this->monitor_custom_tables(); + + // Hook for addons. + do_action( 'wpforms_settings_init', $this ); + } + + /** + * Remove `wpforms-integration` query arg from URL. + * The `wpforms-integration` query arg is used to highlight a specific provider on the Integrations page. + * + * @since 1.8.5.4 + */ + private function modify_url() { + + if ( $this->view !== 'integrations' ) { + return; + } + + $_SERVER['REQUEST_URI'] = remove_query_arg( 'wpforms-integration' ); + } + + /** + * Display admin notice about using a downgraded version of WPForms. + * + * @since 1.8.5.4 + */ + private function maybe_display_downgraded_notice() { + + if ( ! $this->is_downgraded_version() ) { + return; + } + + $notice = sprintf( + wp_kses( /* translators: %1$s - WPForms.com doc page URL; %2$s - button text. */ + __( + 'It looks like you\'ve downgraded to an older version of WPForms. We recommend always using the latest version as some features may not function as expected in older versions. %2$s', + 'wpforms-lite' + ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/why-you-should-always-use-the-latest-version-of-wpforms/', 'Settings', 'Downgrade notice' ) ), + esc_html__( 'Learn More', 'wpforms-lite' ) + ); + + Notice::warning( + $notice, + [ + 'dismiss' => Notice::DISMISS_GLOBAL, + 'slug' => 'wpforms_is_downgraded', + ] + ); + } + + /** + * Check if plugin was downgraded. + * + * @since 1.8.5.4 + * + * @return bool + */ + private function is_downgraded_version(): bool { + + // Get all installed versions. + $installed_versions = wpforms()->is_pro() ? + (array) get_option( Migrations::MIGRATED_OPTION_NAME, [] ) : + (array) get_option( LiteMigration::MIGRATED_OPTION_NAME, [] ); + + // Get the most recent installed version. + $db_latest = array_keys( $installed_versions )[ count( $installed_versions ) - 1 ]; + + // Check if downgrade happened. + return version_compare( $db_latest, WPFORMS_VERSION, '>' ); + } + + /** + * Sanitize and save settings. + * + * @since 1.3.9 + */ + public function save_settings() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded, Generic.Metrics.NestingLevel.MaxExceeded + + // Check nonce and other various security checks. + if ( ! isset( $_POST['wpforms-settings-submit'] ) || empty( $_POST['nonce'] ) ) { + return; + } + + if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'wpforms-settings-nonce' ) ) { + return; + } + + if ( ! wpforms_current_user_can() ) { + return; + } + + if ( empty( $_POST['view'] ) ) { + return; + } + + $current_view = sanitize_key( $_POST['view'] ); + + // Get registered fields and current settings. + $fields = $this->get_registered_settings( $current_view ); + $settings = get_option( 'wpforms_settings', [] ); + $original_settings = $settings; + + // Views excluded from saving list. + $exclude_views = apply_filters( 'wpforms_settings_exclude_view', [], $fields, $settings ); + + if ( is_array( $exclude_views ) && in_array( $current_view, $exclude_views, true ) ) { + // Run a custom save processing for excluded views. + do_action( 'wpforms_settings_custom_process', $current_view, $fields, $settings ); + + return; + } + + if ( empty( $fields ) || ! is_array( $fields ) ) { + return; + } + + // Sanitize and prep each field. + foreach ( $fields as $id => $field ) { + + // Certain field types are not valid for saving and are skipped. + $exclude = apply_filters( 'wpforms_settings_exclude_type', [ 'content', 'license', 'providers' ] ); + + if ( empty( $field['type'] ) || in_array( $field['type'], $exclude, true ) ) { + continue; + } + + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $value = isset( $_POST[ $id ] ) ? wp_unslash( $_POST[ $id ] ) : false; + $value_prev = isset( $settings[ $id ] ) ? $settings[ $id ] : false; + + // Trim all string values. + if ( is_string( $value ) ) { + $value = trim( $value ); + } + + // Custom filter can be provided for sanitizing, otherwise use defaults. + if ( ! empty( $field['filter'] ) && is_callable( $field['filter'] ) ) { + + $value = call_user_func( $field['filter'], $value, $id, $field, $value_prev ); + + } else { + + switch ( $field['type'] ) { + case 'checkbox': + case 'toggle': + $value = (bool) $value; + break; + + case 'image': + $value = esc_url_raw( $value ); + break; + + case 'color': + $value = wpforms_sanitize_hex_color( $value ); + break; + + case 'color_scheme': + $value = array_map( 'wpforms_sanitize_hex_color', $value ); + break; + + case 'number': + $value = (float) $value; + break; + + case 'radio': + case 'select': + $value = $this->validate_field_with_options( $field, $value, $value_prev ); + break; + + case 'text': + default: + $value = sanitize_text_field( $value ); + break; + } + } + + // Add to settings. + $settings[ $id ] = $value; + } + + // Save settings. + wpforms_update_settings( $settings ); + + Notice::success( esc_html__( 'Settings were successfully saved.', 'wpforms-lite' ) ); + + if ( isset( $original_settings['currency'], $settings['currency'] ) && $original_settings['currency'] !== $settings['currency'] ) { + + Notice::warning( esc_html__( "You've changed your currency. Please double-check the product prices in your forms and verify that they're correct.", 'wpforms-lite' ) ); + } + } + + /** + * Enqueue assets for the settings page. + * + * @since 1.0.0 + */ + public function enqueues() { + + do_action( 'wpforms_settings_enqueue' ); + } + + /** + * Return registered settings tabs. + * + * @since 1.3.9 + * + * @return array + */ + public function get_tabs() { + + $tabs = [ + 'general' => [ + 'name' => esc_html__( 'General', 'wpforms-lite' ), + 'form' => true, + 'submit' => esc_html__( 'Save Settings', 'wpforms-lite' ), + ], + 'validation' => [ + 'name' => esc_html__( 'Validation', 'wpforms-lite' ), + 'form' => true, + 'submit' => esc_html__( 'Save Settings', 'wpforms-lite' ), + ], + 'integrations' => [ + 'name' => esc_html__( 'Integrations', 'wpforms-lite' ), + 'form' => false, + 'submit' => false, + ], + 'geolocation' => [ + 'name' => esc_html__( 'Geolocation', 'wpforms-lite' ), + 'form' => false, + 'submit' => false, + ], + 'misc' => [ + 'name' => esc_html__( 'Misc', 'wpforms-lite' ), + 'form' => true, + 'submit' => esc_html__( 'Save Settings', 'wpforms-lite' ), + ], + ]; + + return apply_filters( 'wpforms_settings_tabs', $tabs ); + } + + /** + * Output tab navigation area. + * + * @since 1.3.9 + */ + public function tabs() { + + $tabs = $this->get_tabs(); + + echo '
                '; + foreach ( $tabs as $id => $tab ) { + + $active = $id === $this->view ? 'active' : ''; + $link = add_query_arg( 'view', $id, admin_url( 'admin.php?page=wpforms-settings' ) ); + + echo '
              • ' . esc_html( $tab['name'] ) . '
              • '; + } + echo '
              '; + } + + /** + * Return all the default registered settings fields. + * + * @since 1.3.9 + * + * @param string $view The current view (tab) on Settings page. + * + * @return array + */ + public function get_registered_settings( $view = '' ) { + + $defaults = [ + // General Settings tab. + 'general' => [ + 'license-heading' => [ + 'id' => 'license-heading', + 'content' => '

              ' . esc_html__( 'License', 'wpforms-lite' ) . '

              ' . esc_html__( 'Your license key provides access to updates and addons.', 'wpforms-lite' ) . '

              ', + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading' ], + ], + 'license-key' => [ + 'id' => 'license-key', + 'name' => esc_html__( 'License Key', 'wpforms-lite' ), + 'type' => 'license', + ], + 'general-heading' => [ + 'id' => 'general-heading', + 'content' => '

              ' . esc_html__( 'General', 'wpforms-lite' ) . '

              ', + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading', 'no-desc' ], + ], + 'disable-css' => [ + 'id' => 'disable-css', + 'name' => esc_html__( 'Include Form Styling', 'wpforms-lite' ), + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com form styling setting URL. */ + __( 'Determines which CSS files to load and use for the site. "Base and Form Theme Styling" is recommended, unless you are experienced with CSS or instructed by support to change settings. Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + 'class' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-choose-an-include-form-styling-setting/', 'settings-license', 'Form Styling Documentation' ) ) + ), + 'type' => 'select', + 'choicesjs' => true, + 'default' => 1, + 'options' => [ + 1 => esc_html__( 'Base and form theme styling', 'wpforms-lite' ), + 2 => esc_html__( 'Base styling only', 'wpforms-lite' ), + 3 => esc_html__( 'No styling', 'wpforms-lite' ), + ], + ], + 'global-assets' => [ + 'id' => 'global-assets', + 'name' => esc_html__( 'Load Assets Globally', 'wpforms-lite' ), + 'desc' => esc_html__( 'Load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support.', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + ], + 'gdpr-heading' => [ + 'id' => 'GDPR', + 'content' => '

              ' . esc_html__( 'GDPR', 'wpforms-lite' ) . '

              ', + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading', 'no-desc' ], + ], + 'gdpr' => [ + 'id' => 'gdpr', + 'name' => esc_html__( 'GDPR Enhancements', 'wpforms-lite' ), + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com GDPR documentation URL. */ + __( 'Enable GDPR related features and enhancements. Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + 'class' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-create-gdpr-compliant-forms/', 'settings-license', 'GDPR Documentation' ) ) + ), + 'type' => 'toggle', + 'status' => true, + ], + ], + // Validation messages settings tab. + 'validation' => [ + 'validation-heading' => [ + 'id' => 'validation-heading', + 'content' => sprintf( /* translators: %s - WPForms.com smart tags documentation URL. */ + esc_html__( '%1$s These messages are displayed to the users as they fill out a form in real-time. Messages can include plain text and/or %2$sSmart Tags%3$s.', 'wpforms-lite' ), + '

              ' . esc_html__( 'Validation Messages', 'wpforms-lite' ) + . '

              ', + '', + '' + ), + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading' ], + ], + 'validation-required' => [ + 'id' => 'validation-required', + 'name' => esc_html__( 'Required', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'This field is required.', 'wpforms-lite' ), + ], + 'validation-email' => [ + 'id' => 'validation-email', + 'name' => esc_html__( 'Email', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Please enter a valid email address.', 'wpforms-lite' ), + ], + 'validation-email-suggestion' => [ + 'id' => 'validation-email-suggestion', + 'name' => esc_html__( 'Email Suggestion', 'wpforms-lite' ), + 'type' => 'text', + 'default' => sprintf( /* translators: %s - suggested email address. */ + esc_html__( 'Did you mean %s?', 'wpforms-lite' ), + '{suggestion}' + ), + ], + 'validation-email-restricted' => [ + 'id' => 'validation-email-restricted', + 'name' => esc_html__( 'Email Restricted', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'This email address is not allowed.', 'wpforms-lite' ), + ], + 'validation-number' => [ + 'id' => 'validation-number', + 'name' => esc_html__( 'Number', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Please enter a valid number.', 'wpforms-lite' ), + ], + 'validation-number-positive' => [ + 'id' => 'validation-number-positive', + 'name' => esc_html__( 'Number Positive', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Please enter a valid positive number.', 'wpforms-lite' ), + ], + 'validation-minimum-price' => [ + 'id' => 'validation-minimum-price', + 'name' => esc_html__( 'Minimum Price', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Amount entered is less than the required minimum.', 'wpforms-lite' ), + ], + 'validation-confirm' => [ + 'id' => 'validation-confirm', + 'name' => esc_html__( 'Confirm Value', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Field values do not match.', 'wpforms-lite' ), + ], + 'validation-inputmask-incomplete' => [ + 'id' => 'validation-inputmask-incomplete', + 'name' => esc_html__( 'Input Mask Incomplete', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Please fill out the field in required format.', 'wpforms-lite' ), + ], + 'validation-check-limit' => [ + 'id' => 'validation-check-limit', + 'name' => esc_html__( 'Checkbox Selection Limit', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'You have exceeded the number of allowed selections: {#}.', 'wpforms-lite' ), + ], + 'validation-character-limit' => [ + 'id' => 'validation-character-limit', + 'name' => esc_html__( 'Character Limit', 'wpforms-lite' ), + 'type' => 'text', + 'default' => sprintf( /* translators: %1$s - characters limit, %2$s - number of characters left. */ + esc_html__( 'Limit is %1$s characters. Characters remaining: %2$s.', 'wpforms-lite' ), + '{limit}', + '{remaining}' + ), + ], + 'validation-word-limit' => [ + 'id' => 'validation-word-limit', + 'name' => esc_html__( 'Word Limit', 'wpforms-lite' ), + 'type' => 'text', + 'default' => sprintf( /* translators: %1$s - words limit, %2$s - number of words left. */ + esc_html__( 'Limit is %1$s words. Words remaining: %2$s.', 'wpforms-lite' ), + '{limit}', + '{remaining}' + ), + ], + 'validation-requiredpayment' => [ + 'id' => 'validation-requiredpayment', + 'name' => esc_html__( 'Payment Required', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Payment is required.', 'wpforms-lite' ), + ], + 'validation-creditcard' => [ + 'id' => 'validation-creditcard', + 'name' => esc_html__( 'Credit Card', 'wpforms-lite' ), + 'type' => 'text', + 'default' => esc_html__( 'Please enter a valid credit card number.', 'wpforms-lite' ), + ], + 'validation-min' => [ + 'id' => 'validation-min', + 'name' => esc_html__( 'Minimum Value', 'wpforms-lite' ), + 'type' => 'text', + 'default' => sprintf( /* translators: %s - value to compare with. */ + esc_html__( 'Please enter a value greater than or equal to %s.', 'wpforms-lite' ), + '{value}' + ), + ], + 'validation-max' => [ + 'id' => 'validation-max', + 'name' => esc_html__( 'Maximum Value', 'wpforms-lite' ), + 'type' => 'text', + 'default' => sprintf( /* translators: %s - value to compare with. */ + esc_html__( 'Please enter a value less than or equal to %s.', 'wpforms-lite' ), + '{value}' + ), + ], + ], + // Provider integrations settings tab. + 'integrations' => [ + 'integrations-heading' => [ + 'id' => 'integrations-heading', + 'content' => '

              ' . esc_html__( 'Integrations', 'wpforms-lite' ) . '

              ' . esc_html__( 'Manage integrations with popular providers such as Constant Contact, Mailchimp, Zapier, and more.', 'wpforms-lite' ) . '

              ', + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading' ], + ], + 'integrations-providers' => [ + 'id' => 'integrations-providers', + 'content' => '

              ' . esc_html__( 'Integrations', 'wpforms-lite' ) . '

              ' . esc_html__( 'Manage integrations with popular providers such as Constant Contact, Mailchimp, Zapier, and more.', 'wpforms-lite' ) . '

              ', + 'type' => 'providers', + 'wrap' => 'none', + ], + ], + // Misc. settings tab. + 'misc' => [ + 'misc-heading' => [ + 'id' => 'misc-heading', + 'content' => '

              ' . esc_html__( 'Miscellaneous', 'wpforms-lite' ) . '

              ', + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading', 'no-desc' ], + ], + 'delete-spam-entries' => [ + 'id' => 'delete-spam-entries', + 'name' => esc_html__( 'Delete Spam Entries', 'wpforms-lite' ), + 'desc' => esc_html__( 'Choose the frequency spam entries are automatically deleted.', 'wpforms-lite' ), + 'type' => 'select', + 'default' => 90, + 'is_hidden' => ! $this->show_spam_entries_setting(), + 'options' => [ + 7 => esc_html__( '7 Days', 'wpforms-lite' ), + 15 => esc_html__( '15 Days', 'wpforms-lite' ), + 30 => esc_html__( '30 Days', 'wpforms-lite' ), + 90 => esc_html__( '90 Days', 'wpforms-lite' ), + ], + ], + 'hide-announcements' => [ + 'id' => 'hide-announcements', + 'name' => esc_html__( 'Hide Announcements', 'wpforms-lite' ), + 'desc' => esc_html__( 'Hide plugin announcements and update details.', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + ], + 'hide-admin-bar' => [ + 'id' => 'hide-admin-bar', + 'name' => esc_html__( 'Hide Admin Bar Menu', 'wpforms-lite' ), + 'desc' => esc_html__( 'Hide the WPForms admin bar menu.', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + ], + 'uninstall-data' => [ + 'id' => 'uninstall-data', + 'name' => esc_html__( 'Uninstall WPForms', 'wpforms-lite' ), + 'desc' => $this->get_uninstall_desc(), + 'type' => 'toggle', + 'status' => true, + ], + ], + ]; + + $defaults = apply_filters( 'wpforms_settings_defaults', $defaults ); + + // Take care of invalid views. + if ( ! empty( $view ) && ! array_key_exists( $view, $defaults ) ) { + $this->view = key( $defaults ); + + return reset( $defaults ); + } + + return empty( $view ) ? $defaults : $defaults[ $view ]; + } + + /** + * Get uninstall description. + * + * @since 1.8.4 + * + * @return string + */ + private function get_uninstall_desc() { + + $desc = esc_html__( 'Remove ALL WPForms data upon plugin deletion.', 'wpforms-lite' ); + $warning = esc_html__( 'All forms and settings will be unrecoverable.', 'wpforms-lite' ); + + if ( wpforms()->is_pro() ) { + $desc = esc_html__( 'Remove ALL WPForms data upon plugin deletion.', 'wpforms-lite' ); + $warning = esc_html__( 'All forms, entries, and uploaded files will be unrecoverable.', 'wpforms-lite' ); + } + + return sprintf( '%s %s', $desc, $warning ); + } + + /** + * Return array containing markup for all the appropriate settings fields. + * + * @since 1.3.9 + * + * @param string $view View slug. + * + * @return array + */ + public function get_settings_fields( $view = '' ) { + + $fields = []; + $settings = $this->get_registered_settings( $view ); + + foreach ( $settings as $id => $args ) { + + $fields[ $id ] = wpforms_settings_output_field( $args ); + } + + return apply_filters( 'wpforms_settings_fields', $fields, $view ); + } + + /** + * Build the output for the plugin settings page. + * + * @since 1.0.0 + */ + public function output() { + + $tabs = $this->get_tabs(); + $fields = $this->get_settings_fields( $this->view ); + ?> + +
              + + tabs(); ?> + +

              + + is_pro() && class_exists( 'WPForms_License', false ) ) { + wpforms()->obj( 'license' )->notices( true ); + } + ?> + +
              + + view ]['form'] ) ) : + ?> +
              + + + + + + view, $fields ); ?> + + + + view ]['submit'] ) ) : ?> +

              + +

              + + + view, $fields ); ?> + + view ]['form'] ) ) : ?> +
              + + +
              + +
              + + General page only. + * + * @since 1.6.2 + */ + public function monitor_custom_tables() { + + // Proceed on Settings plugin admin area page only. + if ( $this->view !== 'general' ) { + return; + } + + /* + * Tasks Meta table. + */ + $meta = new \WPForms\Tasks\Meta(); + + if ( $meta->table_exists() ) { + return; + } + + $meta->create_table(); + } + + /** + * Validate radio and select fields. + * + * @since 1.7.5.5 + * + * @param array $field Field. + * @param mixed $value Value. + * @param mixed $value_prev Previous value. + * + * @return mixed + */ + private function validate_field_with_options( $field, $value, $value_prev ) { + + $value = sanitize_text_field( $value ); + + if ( isset( $field['options'] ) && array_key_exists( $value, $field['options'] ) ) { + return $value; + } + + return isset( $field['default'] ) ? $field['default'] : $value_prev; + } + + /** + * Check if spam entries setting should be shown. + * + * Show setting only if WPFORMS_DELETE_SPAM_ENTRIES is not defined, and the plugin is Pro. + * + * @since 1.9.1 + * + * @return bool + */ + private function show_spam_entries_setting(): bool { + + return ! defined( 'WPFORMS_DELETE_SPAM_ENTRIES' ) && wpforms()->is_pro(); + } +} + +new WPForms_Settings(); diff --git a/wp-content/plugins/wpforms-lite/includes/admin/class-welcome.php b/wp-content/plugins/wpforms-lite/includes/admin/class-welcome.php new file mode 100644 index 0000000..59a5103 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/admin/class-welcome.php @@ -0,0 +1,394 @@ +is_pro() ? 'pro' : 'lite'; + ?> + +
              + +
              + +
              + +
              + <?php esc_attr_e( 'Sullie the WPForms mascot', 'wpforms-lite' ); ?> +
              + +
              +

              +
              +
              + + + <?php esc_attr_e( 'Watch how to create your first form', 'wpforms-lite' ); ?> + + +
              + +
              + +
              +
              + + + +
              +
              + + + +
              +
              + +
              + +
              + +
              + +
              + +

              +
              + +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              +

              +
              + +
              + +
              + + + +
              + +
              + +
              + +
              + +
              + +
              +

              +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              • +
              +
              + +
              +

              PRO

              +
              + 199
              + +
              + + + +
              + +
              + +
              + +
              + +
              + +

              + +
              + +

              +

              +

              Bill Erickson, Erickson Web Consulting

              +
              + +
              + +

              +

              +

              David Henzel, MaxCDN

              +
              + +
              + +
              + + + +
              + +
              + 'display:none;' ] : [] + ); + + // Build standard field markup and return. + $output = "
              "; + + if ( ! empty( $args['name'] ) && empty( $args['no_label'] ) ) { + $output .= ''; + $output .= ''; + $output .= ''; + } + + $output .= ''; + $output .= $field; + + if ( ! empty( $args['desc_after'] ) ) { + $output .= '
              ' . $args['desc_after'] . '
              '; + } + + $output .= '
              '; + $output .= '
              '; + + return $output; +} + +/** + * Missing Callback. + * + * If a function is missing for settings, callbacks alert the user. + * + * @since 1.3.9 + * + * @param array $args Arguments passed by the setting. + * + * @return string + */ +function wpforms_settings_missing_callback( array $args ): string { + + return sprintf( + /* translators: %s - ID of a setting. */ + esc_html__( 'The callback function used for the %s setting is missing.', 'wpforms-lite' ), + '' . wpforms_sanitize_key( $args['id'] ) . '' + ); +} + +/** + * Settings content field callback. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_content_callback( array $args ): string { + + return ! empty( $args['content'] ) ? $args['content'] : ''; +} + +/** + * Settings license field callback. + * + * @since 1.3.9 + * + * @param array $args Settings arguments. + * + * @return string + * @noinspection HtmlUnknownTarget + * @noinspection PhpUnusedParameterInspection + */ +function wpforms_settings_license_callback( array $args ): string { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $output = '

              ' . esc_html__( 'You\'re using WPForms Lite - no license needed. Enjoy!', 'wpforms-lite' ) . ' 🙂

              '; + $output .= + '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com upgrade URL. */ + __( 'To unlock more features consider upgrading to PRO.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'target' => [], + 'rel' => [], + ], + 'strong' => [], + ] + ), + esc_url( wpforms_admin_upgrade_link( 'settings-license', 'Upgrade to WPForms Pro text Link' ) ) + ) . + '

              '; + $output .= + '

              ' . + wp_kses( + __( 'As a valued WPForms Lite user you receive 50% off, automatically applied at checkout!', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ) . + '

              '; + + $output .= '

              ' . esc_html__( 'Already purchased? Simply enter your license key below to enable WPForms PRO!', 'wpforms-lite' ) . '

              '; + $output .= '

              '; + $output .= ''; + $output .= ''; + $output .= '

              '; + + /** + * Filter license settings HTML output. + * + * @since 1.7.9 + * + * @param string $output HTML markup to be rendered in place of license settings. + */ + return (string) apply_filters( 'wpforms_settings_license_output', $output ); +} + +/** + * Settings text input field callback. + * + * @since 1.3.9 + * + * @param array $args Settings arguments. + * + * @return string + */ +function wpforms_settings_text_callback( array $args ): string { + + if ( ! in_array( $args['type'], [ 'text', 'password' ], true ) ) { + $args['type'] = 'text'; + } + + $default = isset( $args['default'] ) ? esc_html( $args['default'] ) : ''; + $value = wpforms_setting( $args['id'], $default ); + $id = wpforms_sanitize_key( $args['id'] ); + + $output = ''; + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings password input field callback. + * + * @since 1.8.4 + * + * @param array $args Setting field arguments. + * + * @return string + */ +function wpforms_settings_password_callback( array $args ): string { + + return wpforms_settings_text_callback( $args ); +} + +/** + * Settings number input field callback. + * + * @since 1.5.3 + * + * @param array $args Setting field arguments. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ +function wpforms_settings_number_callback( array $args ): string { + + $default = isset( $args['default'] ) ? esc_html( $args['default'] ) : ''; + $id = 'wpforms-setting-' . wpforms_sanitize_key( $args['id'] ); + $attr = [ + 'value' => wpforms_setting( $args['id'], $default ), + 'name' => wpforms_sanitize_key( $args['id'] ), + ]; + $data = ! empty( $args['data'] ) ? $args['data'] : []; + + if ( ! empty( $args['attr'] ) ) { + $attr = array_merge( $attr, $args['attr'] ); + } + + $output = sprintf( + '', + wpforms_html_attributes( $id, [], $data, $attr ) + ); + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings select field callback. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_select_callback( array $args ): string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $default = isset( $args['default'] ) ? esc_html( $args['default'] ) : ''; + $value = wpforms_setting( $args['id'], $default ); + $id = wpforms_sanitize_key( $args['id'] ); + $select_name = $id; + $class = ! empty( $args['choicesjs'] ) ? 'choicesjs-select' : ''; + $choices = ! empty( $args['choicesjs'] ); + $data = isset( $args['data'] ) ? (array) $args['data'] : []; + $attr = isset( $args['attr'] ) ? (array) $args['attr'] : []; + + if ( $choices && ! empty( $args['search'] ) ) { + $data['search'] = 'true'; + } + + if ( ! empty( $args['placeholder'] ) ) { + $data['placeholder'] = $args['placeholder']; + } + + $size_attr = ''; + + if ( $choices && ! empty( $args['multiple'] ) ) { + $attr[] = 'multiple'; + $select_name = $id . '[]'; + $size_attr = ' size="1"'; + } + + foreach ( $data as $name => $val ) { + $data[ $name ] = 'data-' . sanitize_html_class( $name ) . '="' . esc_attr( $val ) . '"'; + } + + $data = implode( ' ', $data ); + $attr = implode( ' ', array_map( 'sanitize_html_class', $attr ) ); + + $output = $choices ? '' : ''; + $output .= ''; + $output .= $choices ? '' : ''; + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings checkbox field callback. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_checkbox_callback( array $args ): string { + + $value = wpforms_setting( $args['id'] ); + $id = wpforms_sanitize_key( $args['id'] ); + $checked = ! empty( $value ) ? checked( 1, $value, false ) : ''; + $disabled = ! empty( $args['disabled'] ) ? ' disabled' : ''; + + $output = ''; + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + if ( ! empty( $args['disabled_desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['disabled_desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings radio field callback. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_radio_callback( array $args ): string { + + $default = isset( $args['default'] ) ? esc_html( $args['default'] ) : ''; + $value = wpforms_setting( $args['id'], $default ); + $id = wpforms_sanitize_key( $args['id'] ); + $output = ''; + $x = 1; + + foreach ( $args['options'] as $option => $name ) { + + $checked = checked( $value, $option, false ); + $output .= ''; + $output .= ''; + $output .= ''; + $output .= ''; + + ++$x; + } + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Email template endpoint field callback. + * + * @since 1.8.5 + * + * @param array $args Field arguments. + * + * @return string + */ +function wpforms_settings_email_template_callback( array $args ): string { + + $id = wpforms_sanitize_key( $args['id'] ); + $is_pro = wpforms()->is_pro(); + $output = ''; + $x = 1; + $education_args = [ + 'name' => esc_html__( 'Email Templates', 'wpforms-lite' ), + 'plural' => '1', + 'action' => 'upgrade', + ]; + + foreach ( $args['options'] as $option => $attrs ) { + $checked = checked( $args['value'], $option, false ); + $has_education = ! $is_pro && isset( $attrs['is_pro'] ) && $attrs['is_pro']; + $class = [ 'wpforms-settings-field-radio-wrapper', 'wpforms-card-image' ]; + $data = []; + + // Add class and data attributes for education modal, if needed. + if ( $has_education ) { + $class[] = 'education-modal'; // This class is used for JS. + $data = $education_args; // This data is used for JS. + } + + $output .= ''; + $output .= ''; + $output .= ''; + $output .= ''; + + ++$x; + } + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings toggle field callback. + * + * @since 1.7.4 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_toggle_callback( array $args ): string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $value = ! empty( $args['value'] ) ? $args['value'] : wpforms_setting( $args['id'] ); + $id = wpforms_sanitize_key( $args['id'] ); + $class = ! empty( $args['control-class'] ) ? $args['control-class'] : ''; + $class .= ! empty( $args['is-important'] ) ? ' wpforms-important' : ''; + $input_attr = ! empty( $args['input-attr'] ) ? $args['input-attr'] : ''; + + $default_args = [ + 'control-class' => $class, + ]; + + $args = wp_parse_args( $args, $default_args ); + + $output = wpforms_panel_field_toggle_control( + $args, + 'wpforms-setting-' . $id, + $id, + ! empty( $args['label'] ) ? $args['label'] : '', + $value, + $input_attr + ); + + $desc_on = ! empty( $args['desc'] ) ? $args['desc'] : ''; + $desc_on = ! empty( $args['desc-on'] ) ? $args['desc-on'] : $desc_on; + $desc_off = ! empty( $args['desc-off'] ) ? $args['desc-off'] : ''; + + $output .= sprintf( + '

              %2$s

              ', + empty( $value ) && ! empty( $desc_off ) ? ' wpforms-hidden' : '', + wp_kses_post( $desc_on ) + ); + + if ( ! empty( $desc_off ) ) { + $output .= sprintf( + '

              %2$s

              ', + empty( $value ) ? '' : ' wpforms-hidden', + wp_kses_post( $desc_off ) + ); + } + + if ( ! empty( $args['disabled_desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['disabled_desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings image uploads field callback. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_image_callback( array $args ): string { + + $default = isset( $args['default'] ) ? esc_html( $args['default'] ) : ''; + $value = wpforms_setting( $args['id'], $default ); + $id = wpforms_sanitize_key( $args['id'] ); + $output = ''; + + if ( ! empty( $value ) ) { + $output .= ''; + } + + $output .= ''; + + // Show the remove button if specified. + if ( isset( $args['show_remove'] ) && $args['show_remove'] ) { + $output .= ''; + } + + $output .= ''; + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings color picker field callback. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + */ +function wpforms_settings_color_callback( array $args ): string { + + $default = isset( $args['default'] ) ? esc_html( $args['default'] ) : ''; + $value = wpforms_setting( $args['id'], $default ); + $id = wpforms_sanitize_key( $args['id'] ); + $data = isset( $args['data'] ) ? (array) $args['data'] : []; + + foreach ( $data as $name => $val ) { + $data[ $name ] = 'data-' . sanitize_html_class( $name ) . '="' . esc_attr( $val ) . '"'; + } + + $data = implode( ' ', $data ); + + $output = ''; + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Color scheme endpoint fieldset callback. + * This function will output a fieldset with color picker inputs. + * + * @since 1.8.5 + * + * @param array $args Field arguments. + * + * @return string + */ +function wpforms_settings_color_scheme_callback( array $args ): string { + + $id = wpforms_sanitize_key( $args['id'] ); + $value = wpforms_setting( $args['id'], [] ); + $output = ''; + + foreach ( $args['colors'] as $color => $attrs ) { + $data = isset( $attrs['data'] ) ? (array) $attrs['data'] : []; + $default_value = isset( $data['fallback-color'] ) ? wpforms_sanitize_hex_color( $data['fallback-color'] ) : ''; + $field_id = "{$id}-{$color}"; + $field_value = isset( $value[ $color ] ) ? wpforms_sanitize_hex_color( $value[ $color ] ) : $default_value; + $input_attributes = wpforms_html_attributes( + "wpforms-setting-{$field_id}", + [ 'wpforms-color-picker' ], + $data, + [ + 'type' => 'text', + 'name' => "{$id}[{$color}]", + 'value' => esc_attr( $field_value ), + ] + ); + + $output .= ""; + $output .= ''; + } + + if ( ! empty( $args['desc'] ) ) { + $output .= '

              ' . wp_kses_post( $args['desc'] ) . '

              '; + } + + return $output; +} + +/** + * Settings providers field callback - this is for the Integrations tab. + * + * @since 1.3.9 + * + * @param array $args Arguments. + * + * @return string + * @noinspection PhpUnusedParameterInspection + */ +function wpforms_settings_providers_callback( array $args ): string { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $active = wpforms_get_providers_available(); + $providers = wpforms_get_providers_options(); + + $output = '
              '; + + ob_start(); + + /** + * Output settings providers. + * + * @since 1.3.9.1 + * + * @param array $active Active providers. + * @param array $providers Providers options. + */ + do_action( 'wpforms_settings_providers', $active, $providers ); + + $output .= ob_get_clean(); + $output .= '
              '; + + return $output; +} + +/** + * Webhooks' endpoint field callback. + * + * @since 1.8.4 + * + * @param array $args Field arguments. + * + * @return string + */ +function wpforms_settings_webhook_endpoint_callback( array $args ): string { + + if ( empty( $args['url'] ) ) { + return ''; // Early return if no URL is provided. + } + + $provider = $args['provider'] ?? 'stripe'; + $input_id = "wpforms-{$provider}-webhook-endpoint-url"; + $copy_btn = ''; + $input_field = ''; + + $output = sprintf( + '
              %2$s %3$s
              ', + esc_attr( "wpforms-{$provider}-webhook-endpoint-url" ), + $input_field, + $copy_btn + ); + + if ( ! empty( $args['desc'] ) ) { + $output .= sprintf( '

              %s

              ', wp_kses_post( $args['desc'] ) ); + } + + return $output; +} + +/** + * Settings field columns callback. + * + * @since 1.5.8 + * + * @param array $args Arguments passed by the setting. + * + * @return string + */ +function wpforms_settings_columns_callback( array $args ): string { + + if ( empty( $args['columns'] ) || ! is_array( $args['columns'] ) ) { + return ''; + } + + $output = '
              '; + + foreach ( $args['columns'] as $column ) { + + // Define default callback for this field type. + $callback = ! empty( $column['type'] ) ? 'wpforms_settings_' . $column['type'] . '_callback' : ''; + + // Allow custom callback to be provided via arg. + if ( ! empty( $column['callback'] ) ) { + $callback = $column['callback']; + } + + $output .= '
              '; + + if ( ! empty( $column['name'] ) ) { + $output .= ''; + } + + if ( function_exists( $callback ) ) { + $output .= $callback( $column ); + } + + $output .= '
              '; + } + + $output .= '
              '; + + return $output; +} diff --git a/wp-content/plugins/wpforms-lite/includes/class-db.php b/wp-content/plugins/wpforms-lite/includes/class-db.php new file mode 100644 index 0000000..b36641b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-db.php @@ -0,0 +1,949 @@ +cache_group = static::class . '_cache'; + $this->cache_disabled = defined( 'WPFORMS_DISABLE_DB_CACHE' ) && WPFORMS_DISABLE_DB_CACHE; + + $this->hooks(); + } + + /** + * Query filter. + * + * @since 1.9.0 + * + * @return void + */ + private function hooks() { + + add_filter( 'query', [ $this, 'query_filter' ] ); + } + + /** + * Retrieve the list of columns for the database table. + * Subclasses should define an array of columns here. + * + * @since 1.1.6 + * + * @return array List of columns. + */ + public function get_columns() { + + return []; + } + + /** + * Retrieve column defaults. + * Subclasses can define default for any/all columns defined in the get_columns() method. + * + * @since 1.1.6 + * + * @return array All defined column defaults. + */ + public function get_column_defaults() { + + return []; + } + + /** + * Filter the query. + * + * @since 1.9.0 + * + * @param string|mixed $query Query. + * + * @return string + */ + public function query_filter( $query ): string { + + $query = (string) $query; + + if ( strpos( $query, $this->table_name ) === false ) { + // Not a query for our table, bail out. + return $query; + } + + if ( ! $this->is_select( $query ) ) { + // Flush cache on non-SELECT queries. + $this->cache_flush_group(); + } + + return $query; + } + + /** + * Retrieve a row from the database based on a given row ID. + * + * @since 1.1.6 + * + * @param int $row_id Row ID. + * + * @return null|object + */ + public function get( $row_id ) { + + global $wpdb; + + $key = md5( __METHOD__ . $row_id ); + $row = $this->cache_get( $key, $found ); + + if ( $found ) { + return $row; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $row = $wpdb->get_row( + $wpdb->prepare( + "SELECT * FROM $this->table_name WHERE $this->primary_key = %d LIMIT 1;", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + (int) $row_id + ) + ); + + $this->cache_set( $key, $row ); + + return $row; + } + + /** + * Retrieve a row based on column and row ID. + * + * @since 1.1.6 + * + * @param string $column Column name. + * @param int|string $value Column value. + * + * @return object|null Database query result, object or null on failure. + */ + public function get_by( $column, $value ) { + + global $wpdb; + + if ( + empty( $value ) || + ! array_key_exists( $column, $this->get_columns() ) + ) { + return null; + } + + $key = md5( __METHOD__ . $column . $value ); + $row = $this->cache_get( $key, $found ); + + if ( $found ) { + return $row; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $row = $wpdb->get_row( + $wpdb->prepare( + "SELECT * FROM $this->table_name WHERE $column = %s LIMIT 1;", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $value + ) + ); + + $this->cache_set( $key, $row ); + + return $row; + } + + /** + * Retrieve a value based on column name and row ID. + * + * @since 1.1.6 + * + * @param string $column Column name. + * @param int|string $row_id Row ID. + * + * @return string|null Database query result (as string), or null on failure. + * @noinspection PhpUnused + */ + public function get_column( $column, $row_id ) { + + global $wpdb; + + if ( empty( $row_id ) || ! array_key_exists( $column, $this->get_columns() ) ) { + return null; + } + + $key = md5( __METHOD__ . $column . $row_id ); + $var = $this->cache_get( $key, $found ); + + if ( $found ) { + return $var; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $var = $wpdb->get_var( + $wpdb->prepare( + "SELECT $column FROM $this->table_name WHERE $this->primary_key = %d LIMIT 1;", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + (int) $row_id + ) + ); + + $this->cache_set( $key, $var ); + + return $var; + } + + /** + * Retrieve one column value based on another given column and matching value. + * + * @since 1.1.6 + * + * @param string $column Column name. + * @param string $column_where Column to match against in the WHERE clause. + * @param string $column_value Value to match to the column in the WHERE clause. + * + * @return string|null Database query result (as string), or null on failure. + * @noinspection PhpUnused + */ + public function get_column_by( $column, $column_where, $column_value ) { + + global $wpdb; + + if ( + empty( $column ) || + empty( $column_where ) || + empty( $column_value ) || + ! array_key_exists( $column_where, $this->get_columns() ) || + ! array_key_exists( $column, $this->get_columns() ) + ) { + return null; + } + + $key = md5( __METHOD__ . $column . $column_where . $column_value ); + $var = $this->cache_get( $key, $found ); + + if ( $found ) { + return $var; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $var = $wpdb->get_var( + $wpdb->prepare( + "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $column_value + ) + ); + + $this->cache_set( $key, $var ); + + return $var; + } + + /** + * Clone of $wpdb->query() with caching. + * + * @since 1.9.0 + * + * @param string $query Database query. + * + * @return int|bool Boolean true for CREATE, ALTER, TRUNCATE and DROP queries. Number of rows + * affected/selected for all other queries. Boolean false on error. + * + * @noinspection PhpMissingParamTypeInspection + */ + public function query( $query ) { + + global $wpdb; + + if ( ! $this->is_select( $query ) ) { + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + return $wpdb->query( $query ); + } + + $key = md5( __METHOD__ . $query ); + $results = $this->cache_get( $key, $found ); + + if ( $found ) { + return $results; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $results = $wpdb->query( $query ); + + $this->cache_set( $key, $results ); + + return $results; + } + + /** + * Clone of $wpdb->get_results() with caching. + * + * @since 1.9.0 + * + * @param string|null $query SQL query. + * @param string $output Any of ARRAY_A | ARRAY_N | OBJECT | OBJECT_K constants. + * + * @return array|object|null Database query results. + * @noinspection PhpMissingParamTypeInspection + */ + public function get_results( $query = null, $output = OBJECT ) { + + global $wpdb; + + if ( ! $this->is_select( $query ) ) { + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + return $wpdb->get_results( $query, $output ); + } + + $key = md5( __METHOD__ . $query . $output ); + $results = $this->cache_get( $key, $found ); + + if ( $found ) { + return $results; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $results = $wpdb->get_results( $query, $output ); + + $this->cache_set( $key, $results ); + + return $results; + } + + /** + * Clone of $wpdb->get_col() with caching. + * + * @since 1.9.4 + * + * @param string|null $query SQL query. + * @param int $x Column to return. Indexed from 0. + * + * @return array Database query results. + * @noinspection PhpMissingParamTypeInspection + */ + public function get_col( $query = null, $x = 0 ) { + + global $wpdb; + + if ( ! $this->is_select( $query ) ) { + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + return $wpdb->get_col( $query ); + } + + $key = md5( __METHOD__ . $query . $x ); + $col = $this->cache_get( $key, $found ); + + if ( $found ) { + return $col; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $col = $wpdb->get_col( $query, $x ); + + $this->cache_set( $key, $col ); + + return $col; + } + + /** + * Clone of $wpdb->get_row() with caching. + * + * @since 1.9.0 + * + * @param string|null $query SQL query. + * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which + * correspond to an stdClass object, an associative array, or a numeric array, + * respectively. Default OBJECT. + * @param int $y Optional. Row to return. Indexed from 0. Default 0. + * + * @return array|int|object|stdClass|null Database query result in format specified by $output or null on failure. + * @noinspection PhpMissingParamTypeInspection + */ + public function get_row( $query = null, $output = OBJECT, $y = 0 ) { + + global $wpdb; + + if ( ! $query ) { + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + return $wpdb->get_row( $query, $output, $y ); + } + + $key = md5( __METHOD__ . $query . $output . $y ); + $row = $this->cache_get( $key, $found ); + + if ( $found ) { + return $row; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $row = $wpdb->get_row( $query, $output, $y ); + + $this->cache_set( $key, $row ); + + return $row; + } + + /** + * Clone of $wpdb->get_var() with caching. + * + * @since 1.9.0 + * + * @param string|null $query Optional. SQL query. Defaults to null, use the result from the previous query. + * @param int $x Optional. Column of value to return. Indexed from 0. Default 0. + * @param int $y Optional. Row of value to return. Indexed from 0. Default 0. + * + * @return string|null Database query result (as string), or null on failure. + * + * @noinspection PhpMissingParamTypeInspection + */ + public function get_var( $query = null, $x = 0, $y = 0 ) { + + global $wpdb; + + if ( ! $query ) { + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + return $wpdb->get_var( $query, $x, $y ); + } + + $key = md5( __METHOD__ . $query . $x . $y ); + $var = $this->cache_get( $key, $found ); + + if ( $found ) { + return $var; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $var = $wpdb->get_var( $query, $x, $y ); + + $this->cache_set( $key, $var ); + + return $var; + } + + /** + * Insert a new record into the database. + * + * @since 1.1.6 + * + * @param array $data Column data. + * @param string $type Optional. Data type context. + * + * @return int ID for the newly inserted record. Zero otherwise. + */ + public function add( $data, $type = '' ) { + + global $wpdb; + + // Set default values. + $data = wp_parse_args( $data, $this->get_column_defaults() ); + + do_action( 'wpforms_pre_insert_' . $type, $data ); + + // Initialise column format array. + $column_formats = $this->get_columns(); + + // Force fields to lower a case. + $data = array_change_key_case( $data ); + + // Whitelist columns. + $data = array_intersect_key( $data, $column_formats ); + + // Reorder $column_formats to match the order of columns given in $data. + $data_keys = array_keys( $data ); + $column_formats = array_merge( array_flip( $data_keys ), $column_formats ); + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery + $wpdb->insert( $this->table_name, $data, $column_formats ); + + do_action( 'wpforms_post_insert_' . $type, $wpdb->insert_id, $data ); + + return $wpdb->insert_id; + } + + /** + * Insert a new record into the database. This runs the add() method. + * + * @see add() + * + * @since 1.1.6 + * + * @param array $data Column data. + * + * @return int ID for the newly inserted record. + */ + public function insert( $data ) { + + return $this->add( $data ); + } + + /** + * Update an existing record in the database. + * + * @since 1.1.6 + * + * @param int|string $row_id Row ID for the record being updated. + * @param array $data Optional. Array of columns and associated data to update. Default empty array. + * @param string $where Optional. Column to match against in the WHERE clause. If empty, $primary_key + * will be used. Default empty. + * @param string $type Optional. Data type context, e.g. 'affiliate', 'creative', etc. Default empty. + * + * @return bool False if the record could not be updated, true otherwise. + */ + public function update( $row_id, $data = [], $where = '', $type = '' ) { + + global $wpdb; + + // Row ID must be a positive integer. + $row_id = absint( $row_id ); + + if ( empty( $row_id ) ) { + return false; + } + + if ( empty( $where ) ) { + $where = $this->primary_key; + } + + /** + * Fires before updating a record in the database. + * + * @since 1.5.9 + * @since 1.9.2 Added $row_id parameter. + * + * @param array $data Array of columns and associated data to update. + * @param int $row_id Row ID for the record being updated. + */ + do_action( "wpforms_pre_update_{$type}", $data, $row_id ); + + // Initialise column format array. + $column_formats = $this->get_columns(); + + // Force fields to the lower case. + $data = array_change_key_case( $data ); + + // Whitelist columns. + $data = array_intersect_key( $data, $column_formats ); + + // Reorder $column_formats to match the order of columns given in $data. + $data_keys = array_keys( $data ); + $column_formats = array_merge( array_flip( $data_keys ), $column_formats ); + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + if ( $wpdb->update( $this->table_name, $data, [ $where => $row_id ], $column_formats ) === false ) { + return false; + } + + /** + * Fires after a record has been updated in the database. + * + * @since 1.1.6 + * @since 1.9.2 Added $row_id parameter. + * + * @param array $data Array of columns and associated data that were updated. + * @param int $row_id Row ID for the record that was updated. + */ + do_action( "wpforms_post_update_{$type}", $data, $row_id ); + + return true; + } + + /** + * Delete a record from the database. + * + * @since 1.1.6 + * + * @param int|string $row_id Row ID. + * + * @return bool False if the record could not be deleted, true otherwise. + */ + public function delete( $row_id = 0 ): bool { + + global $wpdb; + + // Row ID must be a positive integer. + $row_id = absint( $row_id ); + + if ( empty( $row_id ) ) { + return false; + } + + /** + * Fires before a record is deleted from the database. + * + * @since 1.5.9 + * + * @param int $row_id Row ID. + */ + do_action( 'wpforms_pre_delete', $row_id ); + + /** + * Fires before a record is deleted from the database by type. + * + * @since 1.5.9 + * @since 1.8.6 Added `$primary_key` parameter. + * + * @param int $row_id Column value. + * @param string $primary_key Column name. + */ + do_action( 'wpforms_pre_delete_' . $this->type, $row_id, $this->primary_key ); + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $result = $wpdb->query( + $wpdb->prepare( + "DELETE FROM $this->table_name WHERE $this->primary_key = %d", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $row_id + ) + ); + + if ( $result === false ) { + return false; + } + + do_action( 'wpforms_post_delete', $row_id ); + do_action( 'wpforms_post_delete_' . $this->type, $row_id ); + + return true; + } + + /** + * Delete a record from the database by column. + * + * @since 1.1.6 + * + * @param string $column Column name. + * @param int|string $column_value Column value. + * + * @return bool False if the record could not be deleted, true otherwise. + */ + public function delete_by( $column, $column_value ) { + + global $wpdb; + + if ( + empty( $column ) || + empty( $column_value ) || + ! array_key_exists( $column, $this->get_columns() ) + ) { + return false; + } + + // This action is documented in includes/class-db.php method delete(). + do_action( 'wpforms_pre_delete', $column_value ); + + // This action is documented in includes/class-db.php method delete(). + do_action( 'wpforms_pre_delete_' . $this->type, $column_value, $column ); + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $result = $wpdb->query( + $wpdb->prepare( + "DELETE FROM $this->table_name WHERE $column = %s", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $column_value + ) + ); + + if ( $result === false ) { + return false; + } + + do_action( 'wpforms_post_delete', $column_value ); + do_action( 'wpforms_post_delete_' . $this->type, $column_value ); + + return true; + } + + /** + * Delete record(s) from the database using WHERE IN syntax. + * + * @since 1.6.4 + * + * @param string $column Column name. + * @param mixed $column_values Column values. + * + * @return int|bool Number of deleted records, false otherwise. + */ + public function delete_where_in( $column, $column_values ) { + + global $wpdb; + + if ( empty( $column ) || empty( $column_values ) ) { + return false; + } + + if ( ! array_key_exists( $column, $this->get_columns() ) ) { + return false; + } + + $values = (array) $column_values; + + foreach ( $values as $key => $value ) { + // Check if a string contains an integer and sanitize accordingly. + if ( (string) (int) $value === $value ) { + $values[ $key ] = (int) $value; + $placeholders[ $key ] = '%d'; + } else { + $values[ $key ] = sanitize_text_field( $value ); + $placeholders[ $key ] = '%s'; + } + } + + $placeholders = isset( $placeholders ) ? implode( ',', $placeholders ) : ''; + $sql = "DELETE FROM $this->table_name WHERE $column IN ( $placeholders )"; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + return $wpdb->query( $wpdb->prepare( $sql, $values ) ); + } + + /** + * Check if the given table exists. + * + * @since 1.1.6 + * @since 1.5.9 Default value is now the current child class table name. + * + * @param string $table The table name. Defaults to the child class table name. + * + * @return bool If the table name exists. + */ + public function table_exists( string $table = '' ): bool { + + $table = ! empty( $table ) ? sanitize_text_field( $table ) : $this->table_name; + + return DB::table_exists( $table ); + } + + /** + * Build WHERE for a query. + * + * @since 1.7.2.2 + * + * @param array $args Optional args. + * @param array $keys Allowed arg items. + * @param string|string[] $formats Formats of arg items. + * + * @return string + */ + protected function build_where( $args, $keys = [], $formats = [] ) { + + $formats = array_pad( $formats, count( $keys ), '%d' ); + $where = ''; + + foreach ( $keys as $index => $key ) { + // Value `$args[ $key ]` can be a natural number and a numeric string. + // We should skip empty string values, but continue working with '0'. + if ( empty( $args[ $key ] ) && $args[ $key ] !== '0' ) { + continue; + } + + $ids = wpforms_wpdb_prepare_in( $args[ $key ], $formats[ $index ] ); + + $where .= empty( $where ) ? 'WHERE' : 'AND'; + $where .= " `{$key}` IN ( {$ids} ) "; + } + + return $where; + } + + /** + * WP Cache Get wrapper. + * + * @since 1.9.0 + * + * @param int|string $key Cache key. + * @param bool|null $found Whether the key was found in the cache. + * + * @return false|mixed + * @noinspection PhpMissingParamTypeInspection + */ + private function cache_get( $key, &$found ) { + + if ( $this->cache_disabled ) { + $found = false; + + return false; + } + + $all_keys = wp_cache_get( self::ALL_KEYS, $this->cache_group, false, $found ); + $all_keys = $found ? (array) $all_keys : []; + + if ( ! in_array( $key, $all_keys, true ) ) { + $found = false; + + return false; + } + + $data = wp_cache_get( $key, $this->cache_group, false, $found ); + + return $found ? $data : false; + } + + /** + * WP Cache Set wrapper. + * + * @since 1.9.0 + * + * @param string $key Cache key. + * @param mixed $data Cache data. + * + * @return bool + * @noinspection PhpReturnValueOfMethodIsNeverUsedInspection + */ + private function cache_set( string $key, $data ): bool { + + if ( $this->cache_disabled ) { + return false; + } + + $all_keys = wp_cache_get( self::ALL_KEYS, $this->cache_group, false, $found ); + $all_keys = $found ? array_unique( array_merge( (array) $all_keys, [ $key ] ) ) : [ $key ]; + + return ( + wp_cache_set( $key, $data, $this->cache_group ) && + wp_cache_set( self::ALL_KEYS, $all_keys, $this->cache_group ) + ); + } + + /** + * Flush the cache group. + * + * @since 1.9.0 + * + * @return bool + * @noinspection PhpReturnValueOfMethodIsNeverUsedInspection + */ + private function cache_flush_group(): bool { + + if ( $this->cache_disabled ) { + return false; + } + + $all_keys = wp_cache_get( self::ALL_KEYS, $this->cache_group, false, $found ); + + if ( ! $found ) { + return true; + } + + $result = wp_cache_delete( self::ALL_KEYS, $this->cache_group ); + + foreach ( (array) $all_keys as $key ) { + $result = wp_cache_delete( $key, $this->cache_group ) && $result; + } + + return $result; + } + + /** + * Check if the query is a SELECT query. + * + * @since 1.9.0 + * + * @param string|null $query SQL query. + * + * @return bool + * @noinspection PhpMissingParamTypeInspection + */ + private function is_select( $query ): bool { + + return stripos( trim( (string) $query ), 'SELECT' ) === 0; + } + + /** + * Get an instance of the current class. + * Used to reload the class while going through the blogs of multisite. + * + * @see WPForms_Install::maybe_create_tables() + * + * @since 1.8.9 + */ + public static function get_instance(): WPForms_DB { + + return new static(); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/class-fields.php b/wp-content/plugins/wpforms-lite/includes/class-fields.php new file mode 100644 index 0000000..dfa4d74 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-fields.php @@ -0,0 +1,98 @@ +init(); + } + + /** + * Initialize hooks. + * + * @since 1.2.8 + * @since 1.8.2 Moved base class loading to \WPForms\WPForms::includes. + */ + public function init() { + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.7.7 + */ + private function hooks() { + + // Load default fields on WP init. + add_action( 'init', [ $this, 'load' ] ); + } + + /** + * Load default field types. + * + * @since 1.0.0 + * @since 1.9.4 Removed Pro fields from the list. They loaded in the main Loader class. + */ + public function load() { + + $fields = [ + 'text', + 'textarea', + 'select', + 'radio', + 'checkbox', + 'email', + 'name', + 'number', + 'number-slider', + 'internal-information', + ]; + + // Include GDPR Checkbox field if GDPR enhancements are enabled. + if ( wpforms_setting( 'gdpr' ) ) { + $fields[] = 'gdpr-checkbox'; + } + + /** + * Filters array of fields to be loaded. + * + * @since 1.0.0 + * + * @param array $fields Field types. + */ + $fields = (array) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_load_fields', + $fields + ); + + foreach ( $fields as $field ) { + + $file = WPFORMS_PLUGIN_DIR . 'includes/fields/class-' . $field . '.php'; + + if ( file_exists( $file ) ) { + require_once $file; + } + } + + // We have to put it here due to tests for restricted emails. + new WPForms_Field_Email(); + } +} + +new WPForms_Fields(); diff --git a/wp-content/plugins/wpforms-lite/includes/class-form.php b/wp-content/plugins/wpforms-lite/includes/class-form.php new file mode 100644 index 0000000..47e1336 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-form.php @@ -0,0 +1,1566 @@ +is_form_data_slashing_enabled = wpforms_is_form_data_slashing_enabled(); + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.7.5 + */ + private function hooks(): void { + + // Register wpforms custom post type and taxonomy. + add_action( 'init', [ $this, 'register_taxonomy' ] ); + add_action( 'init', [ $this, 'register_cpt' ] ); + + // Add wpforms to a new-content admin bar menu. + add_action( 'admin_bar_menu', [ $this, 'admin_bar' ], 99 ); + add_action( 'wpforms_create_form', [ $this, 'track_first_form' ], 10, 3 ); + + // @WPFormsBackCompat Support Zapier v1.5.0 and earlier. + add_filter( 'wpforms_form_handler_add_notices', [ $this, '_zapier_disconnected_on_duplication' ], 10, 3 ); + } + + /** + * Register the custom post type to be used for forms. + * + * @since 1.0.0 + */ + public function register_cpt(): void { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Filters Custom Post Type arguments. + * + * @since 1.0.0 + * + * @param array $args Arguments. + */ + $args = apply_filters( + 'wpforms_post_type_args', + [ + 'label' => 'WPForms', + 'public' => false, + 'exclude_from_search' => true, + 'show_ui' => false, + 'show_in_admin_bar' => false, + 'rewrite' => false, + 'query_var' => false, + 'can_export' => false, + 'supports' => [ 'title', 'author', 'revisions' ], + 'capability_type' => 'wpforms_form', // Not using 'capability_type' anywhere. It just has to be custom for security reasons. + 'map_meta_cap' => false, // Don't let WP to map meta caps to have a granular control over this process via 'map_meta_cap' filter. + ] + ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + // Register the post type. + register_post_type( 'wpforms', $args ); + } + + /** + * Register the new taxonomy for tags. + * + * @since 1.7.5 + */ + public function register_taxonomy(): void { + + /** + * Filters Tags taxonomy arguments. + * + * @since 1.7.5 + * + * @param array $args Arguments. + */ + $args = apply_filters( + 'wpforms_form_handler_register_taxonomy_args', + [ + 'hierarchical' => false, + 'rewrite' => false, + 'public' => false, + ] + ); + + register_taxonomy( self::TAGS_TAXONOMY, 'wpforms', $args ); + } + + /** + * Add "WPForms" item to new-content admin bar menu item. + * + * @since 1.1.7.2 + * + * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference. + */ + public function admin_bar( $wp_admin_bar ): void { + + if ( ! is_admin_bar_showing() || ! wpforms_current_user_can( 'create_forms' ) ) { + return; + } + + $args = [ + 'id' => 'wpforms', + 'title' => esc_html__( 'WPForms', 'wpforms-lite' ), + 'href' => admin_url( 'admin.php?page=wpforms-builder' ), + 'parent' => 'new-content', + ]; + + $wp_admin_bar->add_node( $args ); + } + + /** + * Preserve the timestamp when the very first form has been created. + * + * @since 1.6.7.1 + * + * @param int $form_id Newly created form ID. + * @param array $form Array past to create a new form in the wp_posts table. + * @param array $data Additional form data. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function track_first_form( $form_id, $form, $data ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + // Do we have the value already? + $time = get_option( 'wpforms_forms_first_created' ); + + // Check whether we have already saved this option - skip. + if ( ! empty( $time ) ) { + return; + } + + // Check whether we have any forms other than the currently created one. + $other_form = $this->get( + '', + [ + 'posts_per_page' => 1, + 'nopaging' => false, + 'fields' => 'ids', + 'post__not_in' => [ $form_id ], // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'cap' => false, + ] + ); + + // As we have other forms - we are not certain about the situation, skip. + if ( ! empty( $other_form ) ) { + return; + } + + add_option( 'wpforms_forms_first_created', time(), '', 'no' ); + } + + /** + * Fetch forms. + * + * @since 1.0.0 + * + * @param mixed $id Form ID. + * @param array $args Additional arguments array. + * + * @return array|false|WP_Post + */ + public function get( $id = '', array $args = [] ) { + + if ( $id === false ) { + return false; + } + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Allow developers to filter the WPForms_Form_Handler::get() arguments. + * + * @since 1.0.0 + * + * @param array $args Arguments array. + * @param mixed $id Form ID. + */ + $args = (array) apply_filters( 'wpforms_get_form_args', $args, $id ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + // By default, we should return only published forms. + $defaults = [ + 'post_status' => 'publish', + ]; + + $args = wp_parse_args( $args, $defaults ); + + $forms = empty( $id ) ? $this->get_multiple( $args ) : $this->get_single( $id, $args ); + + return ! empty( $forms ) ? $forms : false; + } + + /** + * Fetch a single form. + * + * @since 1.5.8 + * + * @param string|int $id Form ID. + * @param array $args Additional arguments array. + * + * @return array|false|WP_Post + */ + protected function get_single( $id = '', array $args = [] ) { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Allow developers to filter the get_single() arguments. + * + * @since 1.5.8 + * + * @param array $args Arguments' array, same as for `get_post()` function. + * @param string|int $id Form ID. + */ + $args = apply_filters( 'wpforms_get_single_form_args', $args, $id ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $access_obj = wpforms()->obj( 'access' ); + + if ( ! $access_obj ) { + return false; + } + + if ( ! isset( $args['cap'] ) && $access_obj->init_allowed() ) { + $args['cap'] = 'view_form_single'; + } + + if ( ! empty( $args['cap'] ) && ! wpforms_current_user_can( $args['cap'], $id ) ) { + return false; + } + + // If no ID provided, we can't get a single form. + if ( empty( $id ) ) { + return false; + } + + // If ID is provided, we get a single form. + $form = get_post( absint( $id ) ); + + // Check if the form exists. + if ( empty( $form ) || ! $form instanceof WP_Post ) { + return false; + } + + // Check if the form is of the allowed post type. + if ( ! in_array( $form->post_type, self::POST_TYPES, true ) ) { + return false; + } + + // Decode the form content. + if ( ! empty( $args['content_only'] ) ) { + $form = wpforms_decode( $form->post_content ); + } + + return $form; + } + + /** + * Fetch multiple forms. + * + * @since 1.5.8 + * @since 1.7.2 Added support for $args['search']['term'] - search form title or description by term. + * + * @param array $args Additional arguments array. + * + * @return array + */ + protected function get_multiple( array $args = [] ): array { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Allow developers to filter the get_multiple() arguments. + * + * @since 1.5.8 + * + * @param array $args Arguments' array. Almost the same as for the `get_posts ()` function. + * Additional element: + * ['search']['term'] - search the form title or description by term. + */ + $args = (array) apply_filters( 'wpforms_get_multiple_forms_args', $args ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + // No ID provided, get multiple forms. + $defaults = [ + 'orderby' => 'id', + 'order' => 'ASC', + 'no_found_rows' => true, + 'nopaging' => true, + 'suppress_filters' => false, + ]; + + $args = wp_parse_args( $args, $defaults ); + + $post_type = $args['post_type'] ?? []; + + // Post type should be one of the allowed post types. + $post_type = array_intersect( (array) $post_type, self::POST_TYPES ); + + // If no valid (allowed) post types are provided, use the default one. + $args['post_type'] = ! empty( $post_type ) ? $post_type : 'wpforms'; + + /** + * Allow developers to execute some code before get_posts() call inside \WPForms_Form_Handler::get_multiple(). + * + * @since 1.7.2 + * + * @param array $args Arguments of the `get_posts()`. + */ + do_action( 'wpforms_form_handler_get_multiple_before_get_posts', $args ); + + $forms = get_posts( $args ); + + /** + * Allow developers to execute some code right after the get_posts () call inside \WPForms_Form_Handler::get_multiple(). + * + * @since 1.7.2 + * + * @param array $args Arguments of the `get_posts`. + * @param array $forms Forms data. Result of getting multiple forms. + */ + do_action( 'wpforms_form_handler_get_multiple_after_get_posts', $args, $forms ); + + /** + * Allow developers to filter the result of get_multiple(). + * + * @since 1.7.2 + * + * @param array $forms Result of getting multiple forms. + */ + return apply_filters( 'wpforms_form_handler_get_multiple_forms_result', $forms ); + } + + /** + * Update the form status. + * + * @since 1.7.3 + * + * @param int $form_id Form ID. + * @param string $status New status. + * + * @return bool + */ + public function update_status( $form_id, $status ): bool { + + // Status updates are used only in trash and restore actions, + // which are actually part of the deletion operation. + // Therefore, we should check the `delete_form_single` and not `edit_form_single` permission. + if ( ! wpforms_current_user_can( 'delete_form_single', $form_id ) ) { + return false; + } + + $form_id = absint( $form_id ); + $status = empty( $status ) ? 'publish' : sanitize_key( $status ); + + /** + * Filters the allowed form statuses. + * + * @since 1.7.3 + * + * @param array $allowed_statuses Array of allowed form statuses. Default: publish, trash. + */ + $allowed = (array) apply_filters( 'wpforms_form_handler_update_status_allowed', [ 'publish', 'trash' ] ); + + if ( ! in_array( $status, $allowed, true ) ) { + return false; + } + + $result = wp_update_post( + [ + 'ID' => $form_id, + 'post_status' => $status, + ] + ); + + /** + * Allow developers to execute some code after changing form status. + * + * @since 1.8.1 + * + * @param string $form_id Form ID. + * @param string $status New form status, `publish` or `trash`. + */ + do_action( 'wpforms_form_handler_update_status', $form_id, $status ); + + return $result !== 0; + } + + /** + * Delete all forms in the Trash. + * + * @since 1.7.3 + * + * @return int|bool Number of deleted forms OR false. + */ + public function empty_trash() { + + $forms = $this->get_multiple( + [ + 'post_type' => self::POST_TYPES, + 'post_status' => 'trash', + 'fields' => 'ids', + 'suppress_filters' => true, // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters + ] + ); + + if ( empty( $forms ) ) { + return false; + } + + return $this->delete( $forms ) ? count( $forms ) : false; + } + + /** + * Delete forms. + * + * @since 1.0.0 + * + * @param array $ids Form IDs. + * + * @return bool + */ + public function delete( $ids = [] ): bool { + + if ( ! is_array( $ids ) ) { + $ids = [ $ids ]; + } + + $ids = array_map( 'absint', $ids ); + + foreach ( $ids as $id ) { + + // Check for permissions. + if ( ! wpforms_current_user_can( 'delete_form_single', $id ) ) { + return false; + } + + $entry_obj = wpforms()->obj( 'entry' ); + $entry_meta_obj = wpforms()->obj( 'entry_meta' ); + $entry_fields_obj = wpforms()->obj( 'entry_fields' ); + + if ( $entry_obj && $entry_meta_obj && $entry_fields_obj ) { + $entry_obj->delete_by( 'form_id', $id ); + $entry_meta_obj->delete_by( 'form_id', $id ); + $entry_fields_obj->delete_by( 'form_id', $id ); + } + + $form = wp_delete_post( $id, true ); + + if ( ! $form ) { + return false; + } + } + + /** + * Fires when forms are deleted. + * + * @since 1.5.1 + * + * @param array $ids Array of form IDs. + */ + do_action( 'wpforms_delete_form', $ids ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + return true; + } + + /** + * Add a new form. + * + * @since 1.0.0 + * + * @param string $title Form title. + * @param array $args Additional arguments. + * @param array $data Form data. + * + * @return false|int|WP_Error + */ + public function add( $title = '', $args = [], $data = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks, Generic.Metrics.CyclomaticComplexity.TooHigh + + // Must have a title. + if ( empty( $title ) ) { + return false; + } + + // Check for permissions. + if ( ! wpforms_current_user_can( 'create_forms' ) ) { + return false; + } + + $this->remove_form_content_filters(); + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Filters form creation arguments. + * + * @since 1.0.0 + * + * @param array $args Form creation arguments. + * @param array $data Additional data. + */ + $args = apply_filters( 'wpforms_create_form_args', $args, $data ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $form_content = [ + 'field_id' => '0', + 'settings' => [ + 'form_title' => sanitize_text_field( $title ), + 'form_desc' => '', + ], + ]; + + if ( $this->is_form_data_slashing_enabled ) { + $form_content = wp_slash( $form_content ); + } + + $args_form_data = isset( $args['post_content'] ) ? json_decode( wp_unslash( $args['post_content'] ), true ) : null; + + // Prevent $args['post_content'] from overwriting predefined $form_content. + // Typically, it happens if the form was created with a form template and a user was not redirected to a form editing screen afterward. + // This is only possible if a user has 'wpforms_create_forms' and no 'wpforms_edit_own_forms' capability. + if ( is_array( $args_form_data ) ) { + $args['post_content'] = wpforms_encode( array_replace_recursive( $form_content, $args_form_data ) ); + } + + // Merge args and create the form. + $form = wp_parse_args( + $args, + [ + 'post_title' => esc_html( $title ), + 'post_status' => 'publish', + 'post_type' => 'wpforms', + 'post_content' => wpforms_encode( $form_content ), + ] + ); + + $form_id = wp_insert_post( $form ); + + // Set form tags. + if ( ! empty( $form_id ) && ! empty( $args_form_data['settings']['form_tags'] ) ) { + wp_set_post_terms( + $form_id, + implode( ',', $args_form_data['settings']['form_tags'] ), + self::TAGS_TAXONOMY + ); + } + + // If a user has no editing permissions, the form considered to be created out of the WPForms form builder's context. + if ( ! wpforms_current_user_can( 'edit_form_single', $form_id ) ) { + $data['builder'] = false; + } + + // If the form is created outside the context of the WPForms form + // builder, then we define some additional default values. + if ( ! empty( $form_id ) && isset( $data['builder'] ) && $data['builder'] === false ) { + $form_data = json_decode( wp_unslash( $form['post_content'] ), true ); + $form_data['id'] = $form_id; + $form_data['settings']['submit_text'] = esc_html__( 'Submit', 'wpforms-lite' ); + $form_data['settings']['submit_text_processing'] = esc_html__( 'Sending...', 'wpforms-lite' ); + $form_data['settings']['notification_enable'] = '1'; + $form_data['settings']['notifications'] = [ + '1' => [ + 'email' => '{admin_email}', + 'subject' => sprintf( /* translators: %s - form name. */ + esc_html__( 'New Entry: %s', 'wpforms-lite' ), + esc_html( $title ) + ), + 'sender_name' => get_bloginfo( 'name' ), + 'sender_address' => '{admin_email}', + 'message' => '{all_fields}', + ], + ]; + $form_data['settings']['confirmations'] = [ + '1' => [ + 'type' => 'message', + 'message' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ), + 'message_scroll' => '1', + ], + ]; + + $this->update( $form_id, $form_data, [ 'cap' => 'create_forms' ] ); + } + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Fires after the form was created. + * + * @since 1.0.0 + * + * @param int $form_id Form ID. + * @param array $form Form data. + * @param array $data Additional data. + */ + do_action( 'wpforms_create_form', $form_id, $form, $data ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + return $form_id; + } + + /** + * Update form. + * + * @since 1.0.0 + * + * @param string|int $form_id Form ID. + * @param array $data Data retrieved from $_POST and processed. + * @param array $args Empty by default. May have custom data not intended to be saved. + * + * @return int|false + */ + public function update( $form_id = '', array $data = [], array $args = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks, Generic.Metrics.CyclomaticComplexity.TooHigh + + if ( empty( $data ) ) { + return false; + } + + if ( empty( $form_id ) && isset( $data['id'] ) ) { + $form_id = $data['id']; + } + + if ( ! isset( $args['cap'] ) ) { + $args['cap'] = 'edit_form_single'; + } + + if ( ! empty( $args['cap'] ) && ! wpforms_current_user_can( $args['cap'], $form_id ) ) { + return false; + } + + $this->remove_form_content_filters(); + + if ( $this->is_form_data_slashing_enabled ) { + // Even though we are not going to unslash some data, + // columns-json and calculation_code fields must be unslashed. + $data = $this->unslash_field_keys( $data, [ 'columns-json', 'calculation_code' ] ); + } else { + $data = (array) wp_unslash( $data ); + } + + $title = empty( $data['settings']['form_title'] ) ? get_the_title( $form_id ) : $data['settings']['form_title']; + $desc = empty( $data['settings']['form_desc'] ) ? '' : $data['settings']['form_desc']; + + $data['field_id'] = ! empty( $data['field_id'] ) ? wpforms_validate_field_id( $data['field_id'] ) : '0'; + + // Preserve the explicit "Do not store spam entries" state. + $data['settings']['store_spam_entries'] = $data['settings']['store_spam_entries'] ?? '0'; + + // Use the default 'submit' button text if not provided. + $data['settings']['submit_text'] = ! empty( $data['settings']['submit_text'] ) ? $data['settings']['submit_text'] : esc_html__( 'Submit', 'wpforms-lite' ); + + // Preserve form meta. + $meta = $this->get_meta( $form_id ); + + /** + * Filters the form meta before saving. + * + * @since 1.9.8 + * + * @param array $meta Form meta. + * @param int $form_id Form ID. + * @param array $data Form data. + */ + $meta = apply_filters( 'wpforms_form_handler_update_meta', $meta, $form_id, $data ); + + if ( $meta ) { + $data['meta'] = $meta; + } + + // Update category and subcategory only if available. + if ( ! empty( $args['category'] ) ) { + $data['meta']['category'] = $args['category']; + } + + if ( ! empty( $args['subcategory'] ) ) { + $data['meta']['subcategory'] = $args['subcategory']; + } + + // Preserve fields meta. + if ( isset( $data['fields'] ) ) { + $data['fields'] = $this->update__preserve_fields_meta( $data['fields'], $form_id ); + } + + // Sanitize - don't allow tags for users who do not have the appropriate cap. + // If we don't do this, forms for these users can get corrupt due to conflicts with wp_kses(). + if ( ! current_user_can( 'unfiltered_html' ) ) { + $data = map_deep( $data, 'wp_strip_all_tags' ); + } + + // Sanitize notifications names. + if ( isset( $data['settings']['notifications'] ) ) { + $data['settings']['notifications'] = $this->update__sanitize_notifications_names( $data['settings']['notifications'] ); + } + + unset( $notification ); + + /** + * Allow changing post data before saving. + * + * @since 1.0.0 + * + * @param array $post_data Post data. + * @param array $form_data Form data. + * @param array $args Empty by default. May have custom data not intended to be saved. + */ + $form = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_save_form_args', + [ + 'ID' => $form_id, + 'post_title' => esc_html( $title ), + 'post_excerpt' => $desc, + 'post_content' => wpforms_encode( $data ), + ], + $data, + $args + ); + + if ( ! empty( $args['skip_revision'] ) ) { + remove_action( 'post_updated', 'wp_save_post_revision' ); + } + + $_form_id = wp_update_post( $form ); + + if ( ! empty( $args['skip_revision'] ) ) { + add_action( 'post_updated', 'wp_save_post_revision' ); + } + + if ( is_wp_error( $_form_id ) ) { + return false; + } + + /** + * Fires after saving the form. + * + * @since 1.0.0 + * + * @param int $_form_id Form ID. + * @param array $form Form. + */ + do_action( 'wpforms_save_form', $_form_id, $form ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + return $_form_id; + } + + /** + * Preserve fields meta in 'update' method. + * + * @since 1.5.8 + * + * @param array $fields Form fields. + * @param string|int $form_id Form ID. + * + * @return array + */ + protected function update__preserve_fields_meta( $fields, $form_id ): array { + + foreach ( $fields as $i => $field_data ) { + if ( isset( $field_data['id'] ) ) { + $field_meta = $this->get_field_meta( $form_id, $field_data['id'] ); + + if ( $field_meta ) { + $fields[ $i ]['meta'] = $field_meta; + } + } + } + + return $fields; + } + + /** + * Sanitize notifications names meta in 'update' method. + * + * @since 1.5.8 + * + * @param array $notifications Form notifications. + * + * @return array + */ + protected function update__sanitize_notifications_names( $notifications ): array { + + foreach ( $notifications as &$notification ) { + if ( ! empty( $notification['notification_name'] ) ) { + $notification['notification_name'] = sanitize_text_field( $notification['notification_name'] ); + } + } + + return $notifications; + } + + /** + * Duplicate forms. + * + * @since 1.1.4 + * @since 1.8.8 Return array of new form IDs instead of true. + * + * @param array|string $ids Form IDs to duplicate. + * + * @return bool|array Array of new form IDs or false. + */ + public function duplicate( $ids ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks, Generic.Metrics.CyclomaticComplexity.TooHigh + + // Check for permissions. + if ( ! wpforms_current_user_can( 'create_forms' ) ) { + return false; + } + + $this->remove_form_content_filters(); + + if ( ! is_array( $ids ) ) { + $ids = [ $ids ]; + } + + $ids = array_map( 'absint', $ids ); + + $duplicate_ids = []; + + foreach ( $ids as $id ) { + + // Get the original entry. + $form = get_post( $id ); + + if ( ! wpforms_current_user_can( 'view_form_single', $id ) ) { + return false; + } + + // Confirm form exists. + if ( empty( $form ) ) { + return false; + } + + // Get the form data. + $new_form_data = (array) wpforms_decode( $form->post_content ); + + if ( $this->is_form_data_slashing_enabled ) { + $new_form_data = (array) wp_slash( $new_form_data ); + } + + // Remove form ID from the title if present. + $new_form_data['settings']['form_title'] = str_replace( '(ID #' . absint( $id ) . ')', '', $new_form_data['settings']['form_title'] ); + + // Remove '(copy)' from the form template title if present. + $new_form_data['settings']['form_title'] = str_replace( __( '(copy)', 'wpforms-lite' ), '', $new_form_data['settings']['form_title'] ); + + // Remove trailing spaces. + $new_form_data['settings']['form_title'] = rtrim( $new_form_data['settings']['form_title'] ); + + // Remove the `-template ` suffix and all after it from the post name. + $post_name = preg_replace( '/-template(-\d+)?/', '', $form->post_name ); + + // Add some notice messages before form preview area. + $new_form_data = $this->add_notices( $new_form_data, (int) $id ); + + // Create the duplicate form. + $new_form = [ + 'post_content' => wpforms_encode( $new_form_data ), + 'post_excerpt' => $form->post_excerpt, + 'post_status' => $form->post_status, + 'post_title' => $new_form_data['settings']['form_title'], + 'post_type' => $form->post_type, + 'post_name' => wpforms_is_form_template( $id ) ? $post_name . '-template' : $post_name, + ]; + $new_form_id = wp_insert_post( $new_form ); + + if ( ! $new_form_id || is_wp_error( $new_form_id ) ) { + return false; + } + + // Set a new form name. + $new_form_data['settings']['form_title'] .= $form->post_type === 'wpforms-template' ? + ' ' . __( '(copy)', 'wpforms-lite' ) : + ' (ID #' . absint( $new_form_id ) . ')'; + + // Set a new form ID. + $new_form_data['id'] = absint( $new_form_id ); + + // Update a new duplicate form. + $new_form_id = $this->update( $new_form_id, $new_form_data, [ 'cap' => 'create_forms' ] ); + + if ( ! $new_form_id ) { + return false; + } + + // Add tags to the new form. + if ( ! empty( $new_form_data['settings']['form_tags'] ) ) { + wp_set_post_terms( + $new_form_id, + implode( ',', (array) $new_form_data['settings']['form_tags'] ), + self::TAGS_TAXONOMY + ); + } + + /** + * Fires after the form was duplicated. + * + * @since 1.8.2.2 + * + * @param int $id Original form ID. + * @param int $new_form_id New form ID. + * @param array $new_form_data New form data. + */ + do_action( 'wpforms_form_handler_duplicate_form', $id, $new_form_id, $new_form_data ); + + $duplicate_ids[] = $new_form_id; + } + + return $duplicate_ids; + } + + /** + * Convert form to a template and vice versa. + * + * @since 1.8.8 + * + * @param string|int $form_id Form ID. + * @param string $convert_to Convert to, `form` or `template`. + * + * @return false|int New object ID or false on failure. + */ + public function convert( $form_id, string $convert_to ) { + + if ( ! in_array( $convert_to, [ 'form', 'template' ], true ) ) { + return false; + } + + // Duplicate the form. + $ids = $this->duplicate( $form_id ); + + if ( empty( $ids ) ) { + return false; + } + + $new_form_id = current( $ids ); + $form = get_post( $new_form_id ); + $form_data = wpforms_decode( $form->post_content ); + + if ( $this->is_form_data_slashing_enabled ) { + $form_data = wp_slash( $form_data ); + } + + /** + * Filters the form data before converting it to a template or vice versa. + * + * @since 1.8.8 + * + * @param array $form_data Form data. + * @param string|int $form_id Form ID. + * @param string $convert_to Convert to, `form` or `template`. + */ + $form_data = apply_filters( 'wpforms_form_handler_convert_form_data', $form_data, $form_id, $convert_to ); + + // Set default post type. + $post_type = 'wpforms'; + + // Remove the numeric suffix from the post name. + // Duplication always adds `-{numeric}` suffix. + $post_name = preg_replace( '/-\d+$/', '', $form->post_name ); + + // Remove the `-template ` suffix and all after it from the post name. + $post_name = preg_replace( '/-template(-\d+)?/', '', $post_name ); + + // Remove (copy) from the form title, if present. + $form_data['settings']['form_title'] = str_replace( __( '(copy)', 'wpforms-lite' ), '', $form_data['settings']['form_title'] ); + + // Remove trailing spaces. + $form_data['settings']['form_title'] = rtrim( $form_data['settings']['form_title'] ); + + // Remove template description. + unset( $form_data['settings']['template_description'] ); + + if ( $convert_to === 'template' ) { + $post_type = 'wpforms-template'; + + // Remove (ID #
              ) from the form title, if present. + $form_data['settings']['form_title'] = preg_replace( '/\(ID #\d+\)/', '', $form_data['settings']['form_title'] ); + + // Set an empty template description. + $form_data['settings']['template_description'] = ''; + + // Remove traces of any other template that may have been used to create the original form by setting itself as a template. + $form_data['meta']['template'] = 'wpforms-user-template-' . $new_form_id; + + // Add `-template` suffix to the post name. + $post_name .= '-template'; + } + + wp_update_post( + [ + 'ID' => $new_form_id, + 'post_title' => $form_data['settings']['form_title'], + 'post_type' => $post_type, + 'post_content' => wpforms_encode( $form_data ), + 'post_name' => $post_name, + ] + ); + + return $new_form_id; + } + + /** + * Append notice(s) before form preview, if needed. + * + * @since 1.8.8 + * + * @param array $new_form_data New form data. + * @param int $form_id Original form ID. + * + * @return array + */ + private function add_notices( array $new_form_data, int $form_id ): array { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + /** + * Add custom notices to be displayed in the preview area of the Form Builder + * after a form or a form template has been duplicated or converted. + * + * @since 1.8.8 + * + * @param array $notices Array of notices. + * @param array $new_form_data Form data of the newly duplicated form or form template. + * @param int $form_id Original form ID. + */ + $notices = apply_filters( 'wpforms_form_handler_add_notices', [], $new_form_data, $form_id ); + + if ( empty( $notices ) ) { + return $new_form_data; + } + + $current_field_id = ! empty( $new_form_data['fields'] ) ? max( array_keys( $new_form_data['fields'] ) ) : 0; + $code_fields = array_column( $new_form_data['fields'], 'code' ); + $next_field_id = $current_field_id; + $warning = []; + + foreach ( $notices as $notice ) { + // Skip the duplicate notice if it already exists. + if ( ! empty( $notice['code'] ) && in_array( $notice['code'], $code_fields, true ) ) { + continue; + } + + $next_field_id = ++$current_field_id; + $warning[ $next_field_id ] = [ + 'id' => $next_field_id, + 'type' => 'internal-information', + 'code' => ! empty( $notice['code'] ) ? esc_attr( $notice['code'] ) : '', + 'description' => '', + ]; + + $warning[ $next_field_id ]['description'] .= ! empty( $notice['title'] ) ? '' . esc_html( $notice['title'] ) . '' : ''; + $warning[ $next_field_id ]['description'] .= ! empty( $notice['message'] ) ? '

              ' . wp_kses_post( $notice['message'] ) . '

              ' : ''; + + // Do not add notice with empty body. + if ( empty( $warning[ $next_field_id ]['description'] ) ) { + unset( $warning[ $next_field_id ] ); + --$next_field_id; // Reset the next field ID to the previous value. + } + } + + if ( ! empty( $warning ) ) { + $new_form_data['fields'] = $warning + $new_form_data['fields']; + + // Update the next field ID to be used for future created fields. Otherwise, the IIF field would be overwritten. + $new_form_data['field_id'] = $next_field_id + 1; + } + + return $new_form_data; + } + + /** + * Add a notice about Zapier zaps disconnected after the form being duplicated or converted to/from the template. + * + * @WPFormsBackCompat Support Zapier v1.5.0 and earlier. + * + * @since 1.8.8 + * + * @param array $notices Array of notices. + * @param array $new_form_data Form data. + * @param int $form_id Original form ID. + * + * @return array + * @noinspection HtmlUnknownTarget + * @noinspection PhpUnusedParameterInspection + */ + public function _zapier_disconnected_on_duplication( $notices, array $new_form_data, int $form_id ): array { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore + + // Check if the original form had any Zaps connected. + $is_zapier_connected = get_post_meta( $form_id, 'wpforms_zapier', true ); + + if ( ! $is_zapier_connected ) { + return $notices; + } + + $notices['zapier'] = [ + 'title' => esc_html__( 'Zaps Have Been Disabled', 'wpforms-lite' ), + 'code' => 'disconnected_on_duplication', + 'message' => sprintf( /* translators: %s - URL the to list of Zaps. */ + __( 'Head over to the Zapier settings in the Marketing tab or visit your Zapier account to restore them.', 'wpforms-lite' ), + esc_url( 'https://zapier.com/app/zaps' ) + ), + ]; + + return $notices; + } + + /** + * Get the next available field ID and increment by one. + * + * @since 1.0.0 + * + * @param string|int $form_id Form ID. + * @param array $args Additional arguments. + * + * @return mixed int or false + */ + public function next_field_id( $form_id, $args = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks, Generic.Metrics.CyclomaticComplexity.TooHigh + + if ( empty( $form_id ) ) { + return false; + } + + $defaults = [ + 'content_only' => true, + ]; + + if ( isset( $args['cap'] ) ) { + $defaults['cap'] = $args['cap']; + } + + $form = $this->get( $form_id, $defaults ); + + if ( $this->is_form_data_slashing_enabled ) { + $form = wp_slash( $form ); + } + + if ( empty( $form ) ) { + return false; + } + + $field_id = 0; + $max_field_id = ! empty( $form['fields'] ) ? max( array_keys( $form['fields'] ) ) : 0; + + // We pass the `field_id` after duplicating the Layout field that contains a bunch of fields. + // This is needed to avoid multiple AJAX calls after duplicating each field in the Layout. + if ( isset( $args['field_id'] ) ) { + $set_field_id = absint( $args['field_id'] ) - 1; + $field_id = $set_field_id > $max_field_id ? $set_field_id : $max_field_id + 1; + } elseif ( ! empty( $form['field_id'] ) ) { + $field_id = absint( $form['field_id'] ); + $field_id = $max_field_id > $field_id ? $max_field_id + 1 : $field_id; + } + + $form['field_id'] = $field_id + 1; + + // Skip creating a revision for this action. + remove_action( 'post_updated', 'wp_save_post_revision' ); + + $this->update( $form_id, $form ); + + // Restore the initial revisions state. + add_action( 'post_updated', 'wp_save_post_revision' ); + + return $field_id; + } + + /** + * Get private meta information for a form. + * + * @since 1.0.0 + * + * @param string|int $form_id Form ID. + * @param string $field Field. + * @param array $args Additional arguments. + * + * @return false|array + */ + public function get_meta( $form_id, $field = '', $args = [] ) { + + if ( empty( $form_id ) ) { + return false; + } + + $defaults = [ + 'content_only' => true, + ]; + + if ( isset( $args['cap'] ) ) { + $defaults['cap'] = $args['cap']; + } + + $data = $this->get( $form_id, $defaults ); + + if ( ! isset( $data['meta'] ) ) { + return false; + } + + if ( empty( $field ) ) { + return $data['meta']; + } + + return $data['meta'][ $field ] ?? false; + } + + /** + * Update or add form meta information to a form. + * + * @since 1.4.0 + * + * @param string|int $form_id Form ID. + * @param string $meta_key Meta key. + * @param mixed $meta_value Meta value. + * @param array $args Additional arguments. + * + * @return false|int|WP_Error + */ + public function update_meta( $form_id, $meta_key, $meta_value, $args = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks, Generic.Metrics.CyclomaticComplexity.TooHigh + + if ( empty( $form_id ) || empty( $meta_key ) ) { + return false; + } + + $this->remove_form_content_filters(); + + if ( ! isset( $args['cap'] ) ) { + $args['cap'] = 'edit_form_single'; + } + + $form = $this->get_single( absint( $form_id ), $args ); + + if ( empty( $form ) ) { + return false; + } + + $data = (array) wpforms_decode( $form->post_content ); + $meta_key = wpforms_sanitize_key( $meta_key ); + + $data['meta'][ $meta_key ] = $meta_value; + + $form = [ + 'ID' => $form_id, + 'post_content' => wpforms_encode( $data ), + ]; + + /** + * Allow changing form before updating form meta. + * + * @since 1.4.0 + * + * @param array $form Form. + * @param array $data Form data. + */ + $form = (array) apply_filters( 'wpforms_update_form_meta_args', $form, $data ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! empty( $args['skip_revision'] ) ) { + remove_action( 'post_updated', 'wp_save_post_revision' ); + } + + $result = wp_update_post( $form ); + + if ( is_wp_error( $result ) ) { + return $result; + } + + if ( ! empty( $args['skip_revision'] ) ) { + add_action( 'post_updated', 'wp_save_post_revision' ); + } + + /** + * Fires when form meta is updated. + * + * @since 1.4.0 + * + * @param string|int $form_id Form ID. + * @param array $form Form. + * @param string $meta_key Meta key. + * @param mixed $meta_value Meta value. + */ + do_action( 'wpforms_update_form_meta', $form_id, $form, $meta_key, $meta_value ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + return $form_id; + } + + /** + * Delete form meta information from a form. + * + * @since 1.4.0 + * + * @param string|int $form_id Form ID. + * @param string $meta_key Meta key. + * @param array $args Additional arguments. + * + * @return false|int|WP_Error + */ + public function delete_meta( $form_id, $meta_key, $args = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( empty( $form_id ) || empty( $meta_key ) ) { + return false; + } + + $this->remove_form_content_filters(); + + if ( ! isset( $args['cap'] ) ) { + $args['cap'] = 'edit_form_single'; + } + + $form = $this->get_single( absint( $form_id ), $args ); + + if ( empty( $form ) ) { + return false; + } + + $data = (array) wpforms_decode( $form->post_content ); + $meta_key = wpforms_sanitize_key( $meta_key ); + + unset( $data['meta'][ $meta_key ] ); + + $form = [ + 'ID' => $form_id, + 'post_content' => wpforms_encode( $data ), + ]; + + /** + * Filters form which meta to be deleted. + * + * @since 1.4.0 + * + * @param array $form Form. + * @param array $data Form data. + */ + $form = (array) apply_filters( 'wpforms_delete_form_meta_args', $form, $data ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + $result = wp_update_post( $form ); + + if ( is_wp_error( $result ) ) { + return $result; + } + + /** + * Fires when form meta is deleted. + * + * @since 1.4.0 + * + * @param string|int $form_id Form ID. + * @param array $form Form. + * @param string $meta_key Meta key. + */ + do_action( 'wpforms_delete_form_meta', $form_id, $form, $meta_key ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + return $form_id; + } + + /** + * Get private meta information for a form field. + * + * @since 1.0.0 + * + * @param string|int $form_id Form ID. + * @param string $field_id Field ID. + * @param array $args Additional arguments. + * + * @return array|false + */ + public function get_field( $form_id, $field_id = '', $args = [] ) { + + if ( empty( $form_id ) ) { + return false; + } + + $defaults = [ + 'content_only' => true, + ]; + + if ( isset( $args['cap'] ) ) { + $defaults['cap'] = $args['cap']; + } + + $data = $this->get( $form_id, $defaults ); + + return $data['fields'][ $field_id ] ?? false; + } + + /** + * Get private meta information for a form field. + * + * @since 1.0.0 + * + * @param string|int $form_id Form ID. + * @param string $field_id Field ID. + * @param array $args Additional arguments. + * + * @return array|false + */ + public function get_field_meta( $form_id, $field_id = '', $args = [] ) { + + $field = $this->get_field( $form_id, $field_id, $args ); + + if ( ! $field ) { + return false; + } + + return $field['meta'] ?? false; + } + + /** + * Checks if any forms are present on the site. + * + * @since 1.8.8 + * + * @retun bool + */ + public function forms_exist(): bool { + + return (bool) $this->get( + '', + [ + 'numberposts' => 1, + 'fields' => 'ids', + 'no_found_rows' => true, + 'suppress_filters' => true, // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters + 'nopaging' => false, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + ] + ); + } + + /** + * Get the forms' count per page. + * + * @since 1.8.8 + * + * @return int + */ + public function get_count_per_page(): int { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** + * Allow developers to modify the number of forms per page. + * + * @since 1.8.8 + * + * @param array $count Forms count per page. + */ + return (int) apply_filters( 'wpforms_forms_per_page', 20 ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Unslash field keys. + * + * @since 1.9.0 + * + * @param array $data Form data. + * @param array $keys Field keys. + * + * @return array + * @noinspection PhpSameParameterValueInspection + */ + private function unslash_field_keys( array $data, array $keys ): array { + + if ( empty( $data['fields'] ) ) { + return $data; + } + + /** + * Filter field keys to be unslashed before saving. + * + * Works used with the filter wpforms_enable_form_data_slashing set to true. + * + * @since 1.9.0 + * + * @param array $keys Field keys. + * + * @return array + */ + $keys = (array) apply_filters( 'wpforms_form_handler_unslash_field_keys', $keys ); + + if ( empty( $keys ) ) { + return $data; + } + + foreach ( $data['fields'] as $id => $field ) { + foreach ( $keys as $key ) { + if ( isset( $field[ $key ] ) ) { + $data['fields'][ $id ][ $key ] = wp_unslash( $field[ $key ] ); + } + } + } + + return $data; + } + + /** + * Removes content filters that may break forms with HTML and adds a filter to prevent JSON damage. + * + * Specifically, it removes filters that sanitize content in a way that disrupts form functionality: + * - `balanceTags` to prevent unintended tag balancing. + * - `wp_filter_post_kses` to bypass permission-based sanitization (`unfiltered_html` capability). + * + * Additionally, adds a filter to clear `link rel` attributes to avoid unintended JSON issues. + * + * @since 1.9.8 + */ + private function remove_form_content_filters(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + // This filter breaks forms if they contain HTML. + remove_filter( 'content_save_pre', 'balanceTags', 50 ); + // This filter breaks forms if the current user doesn't have "unfiltered_html" capability. + remove_filter( 'content_save_pre', 'wp_filter_post_kses' ); + + // Add a filter of the link rel attr to avoid JSON damage. + add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/class-install.php b/wp-content/plugins/wpforms-lite/includes/class-install.php new file mode 100644 index 0000000..5c58e05 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-install.php @@ -0,0 +1,229 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.9.0 + * + * @return void + */ + private function hooks() { + + // Watch for new multisite blogs. + add_action( 'wp_initialize_site', [ $this, 'new_multisite_blog' ], 10, 2 ); + + // Watch for delayed admin install. + add_action( 'admin_init', [ $this, 'admin' ] ); + } + + /** + * Perform certain actions on plugin activation. + * + * @since 1.0.0 + * + * @param bool $network_wide Whether to enable the plugin for all sites in the network + * or just the current site. Multisite only. Default is false. + * + * @noinspection DisconnectedForeachInstructionInspection + */ + public function install( $network_wide = false ) { + + // Check if we are on multisite and network activating. + if ( $network_wide && is_multisite() ) { + + // Multisite - go through each subsite and run the installer. + $sites = get_sites( + [ + 'fields' => 'ids', + 'number' => 0, + ] + ); + + foreach ( $sites as $blog_id ) { + switch_to_blog( $blog_id ); + $this->run(); + restore_current_blog(); + } + } else { + + // Normal single site. + $this->run(); + } + + set_transient( 'wpforms_just_activated', wpforms()->is_pro() ? 'pro' : 'lite', 60 ); + + // Abort, so we only set the transient for single site installs. + if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return; + } + + // Add transient to trigger redirect to the Welcome screen. + set_transient( 'wpforms_activation_redirect', true, 30 ); + } + + /** + * Run manual installation. + * + * @since 1.5.4.2 + * + * @param bool $silent Silent install, disables welcome page. + */ + public function manual( $silent = false ) { + + $this->install( is_plugin_active_for_network( plugin_basename( WPFORMS_PLUGIN_FILE ) ) ); + + if ( $silent ) { + delete_transient( 'wpforms_activation_redirect' ); + } + } + + /** + * Perform certain actions on plugin deactivation. + * + * @since 1.5.9 + */ + public function deactivate() { + + // Unschedule all ActionScheduler actions by group. + wpforms()->obj( 'tasks' )->cancel_all(); + + // Remove plugin cron jobs. + wp_clear_scheduled_hook( 'wpforms_email_summaries_cron' ); + + // Check if the event is scheduled before attempting to clear it. + // This event is only registered for the Lite edition of the plugin. + // It's advisable to verify if the CRON event is scheduled using `wp_next_scheduled`. + // This precaution ensures that you are not attempting to clear a scheduled + // hook that may not exist, which could result in unexpected behavior. + if ( wp_next_scheduled( 'wpforms_weekly_entries_count_cron' ) ) { + wp_clear_scheduled_hook( 'wpforms_weekly_entries_count_cron' ); + } + } + + /** + * Watch for delayed install procedure from WPForms admin. + * + * @since 1.5.4.2 + */ + public function admin() { + + if ( ! is_admin() ) { + return; + } + + $install = get_option( 'wpforms_install', false ); + + if ( empty( $install ) ) { + return; + } + + $this->manual( true ); + + delete_option( 'wpforms_install' ); + } + + /** + * Run the actual installer. + * + * @since 1.5.4.2 + */ + protected function run() { + + // Create custom database tables. + $this->maybe_create_tables(); + + // Hook for Pro users. + /** + * Fires before WPForms plugin installation is performed. + * + * @since 1.3.0 + */ + do_action( 'wpforms_install' ); + + /* + * Set the current version to be referenced in future updates. + */ + // Used by Pro migrations. + update_option( 'wpforms_version', WPFORMS_VERSION ); + // Used by Lite migrations. + update_option( 'wpforms_version_lite', WPFORMS_VERSION ); + + // Store the date when the initial activation was performed. + $type = class_exists( 'WPForms_Lite', false ) ? 'lite' : 'pro'; + $activated = (array) get_option( 'wpforms_activated', [] ); + + if ( empty( $activated[ $type ] ) ) { + $activated[ $type ] = time(); + + update_option( 'wpforms_activated', $activated ); + } + } + + /** + * When a new site is created in multisite, see if we are network activated, + * and if so run the installer. + * + * @since 1.3.0 + * @since 1.8.4 Added $new_site and $args parameters and removed $blog_id, $user_id, $domain, $path, $site_id, + * and $meta parameters. + * + * @param WP_Site $new_site New site object. + * @param array $args Arguments for the initialization. + * + * @noinspection PhpUnusedParameterInspection + * @noinspection PhpMissingParamTypeInspection + */ + public function new_multisite_blog( $new_site, $args ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + if ( is_plugin_active_for_network( plugin_basename( WPFORMS_PLUGIN_FILE ) ) ) { + switch_to_blog( $new_site->blog_id ); + $this->run(); + restore_current_blog(); + } + } + + /** + * Create database tables if they do not exist. + * It covers new installations. + * + * @since 1.8.2 + */ + private function maybe_create_tables() { + + DB::create_custom_tables( true ); + } +} + +new WPForms_Install(); diff --git a/wp-content/plugins/wpforms-lite/includes/class-process.php b/wp-content/plugins/wpforms-lite/includes/class-process.php new file mode 100644 index 0000000..889c1bd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-process.php @@ -0,0 +1,2282 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.3 + */ + private function hooks() { + + add_action( 'wp', [ $this, 'listen' ] ); + add_action( 'wp_ajax_wpforms_submit', [ $this, 'ajax_submit' ] ); + add_action( 'wp_ajax_nopriv_wpforms_submit', [ $this, 'ajax_submit' ] ); + add_filter( 'wpforms_ajax_submit_redirect', [ $this, 'maybe_open_in_new_tab' ] ); + add_filter( 'wpforms_smarttags_process_value', [ Notifications::class, 'filter_smarttags_process_value' ], PHP_INT_MAX, 6 ); + } + + /** + * Listen to see if this is a return callback or a posted form entry. + * + * @since 1.0.0 + */ + public function listen() { + + // Catch the post_max_size overflow. + if ( $this->post_max_size_overflow() ) { + return; + } + + // phpcs:disable WordPress.Security.NonceVerification + if ( ! empty( $_GET['wpforms_return'] ) ) { + // Additional redirect trigger for addons. + $this->entry_confirmation_redirect( '', sanitize_text_field( wp_unslash( $_GET['wpforms_return'] ) ) ); + } + + $form_id = ! empty( $_POST['wpforms']['id'] ) ? absint( $_POST['wpforms']['id'] ) : 0; + + if ( ! $form_id ) { + return; + } + + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $this->process( wp_unslash( $_POST['wpforms'] ) ); + // phpcs:enable WordPress.Security.NonceVerification + + /** + * Runs right after the processing form entry. + * + * @since 1.9.0 + * + * @param array $fields Entry fields data. + * @param array $entry_id Entry ID. + * @param array $form_data Form data. + */ + do_action( 'wpforms_process_after', $this->fields, $this->entry_id, $this->form_data ); + + if ( ! wpforms_is_amp() ) { + return; + } + + // Send 400 Bad Request when there are errors. + if ( empty( $this->errors[ $form_id ] ) ) { + $this->entry_confirmation_redirect( $this->form_data ); + wp_send_json( + [ + 'message' => $this->get_confirmation_message( $this->form_data, $this->fields, $this->entry_id ), + ], + 200 + ); + + return; + } + + $message_parts = [ $this->errors[ $form_id ]['header'] ]; + + if ( ! empty( $this->errors[ $form_id ]['recaptcha'] ) ) { + $message_parts[] = $this->errors[ $form_id ]['recaptcha']; + } + + if ( ! empty( $this->errors[ $form_id ]['footer'] ) ) { + $message_parts[] = $this->errors[ $form_id ]['footer']; + } + + wp_send_json( + [ + 'message' => implode( '
              ', $message_parts ), + ], + 400 + ); + } + + /** + * Process the form entry. + * + * @since 1.0.0 + * @since 1.6.4 Added hCaptcha support. + * + * @param array $entry Form submission raw data ($_POST). + * + * @noinspection HtmlUnknownTarget + */ + public function process( $entry ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded, Generic.Metrics.NestingLevel.MaxExceeded + + $this->errors = []; + $this->fields = []; + + $form_id = absint( $entry['id'] ); + $form = wpforms()->obj( 'form' )->get( $form_id ); + + // Validate form is real and active (published). + if ( ! $form || $form->post_status !== 'publish' ) { + $this->errors[ $form_id ]['header'] = esc_html__( 'Invalid form.', 'wpforms-lite' ); + + return; + } + + /** + * Filter form data obtained during the form process. + * + * @since 1.5.3 + * + * @param array $form_data Form data. + * @param array $entry Form entry. + */ + $this->form_data = (array) apply_filters( 'wpforms_process_before_form_data', wpforms_decode( $form->post_content ), $entry ); + + if ( ! empty( $this->form_data['settings']['ajax_submit'] ) && ! $this->is_valid_ajax_submit_action() ) { + wpforms_log( + 'Attempt to submit corrupted post data.', + wp_unslash( $_POST ), + [ + 'type' => [ 'error', 'entry' ], + 'form_id' => $this->form_data['id'], + ] + ); + + $this->errors[ $form_id ]['header'] = esc_html__( 'Attempt to submit corrupted post data.', 'wpforms-lite' ); + + /** + * Fires when corrupted form submission is detected. + * + * @since 1.9.8 + * + * @param array $form_data Form data. + */ + do_action( 'wpforms_process_submission_corrupted', $this->form_data ); + + return; + } + + $store_spam_entries = ! empty( $this->form_data['settings']['store_spam_entries'] ); + + /** + * Check the modern Anti-Spam (v3) protection. + * + * Run as early as possible to remove the honeypot field from the entry to prevent unnecessary field processing. + * Bail early if the form is marked as spam and storing spam entries is disabled. + * + * Important! We should check first on modern Anti-Spam because it is skipped in case $store_spam_entries === true. + */ + // phpcs:ignore Generic.Commenting.DocComment.MissingShort + /** @noinspection NotOptimalIfConditionsInspection */ + if ( ! $this->modern_anti_spam_check( $entry ) && ! $store_spam_entries ) { + return; + } + + if ( ! isset( $this->form_data['fields'], $this->form_data['id'] ) ) { + $error_id = uniqid( '', true ); + + // Logs missing form data. + wpforms_log( + /* translators: %s - error unique ID. */ + sprintf( esc_html__( 'Missing form data on form submission process %s', 'wpforms-lite' ), $error_id ), + esc_html__( 'Form data is not an array in `\WPForms_Process::process()`. It might be caused by incorrect data returned by `wpforms_process_before_form_data` filter. Verify whether you have a custom code using this filter and debug value it is returning.', 'wpforms-lite' ), + [ + 'type' => [ 'error', 'entry' ], + 'form_id' => $form_id, + ] + ); + + $error_messages[] = esc_html__( 'Your form has not been submitted because data is missing from the entry.', 'wpforms-lite' ); + + if ( wpforms_setting( 'logs-enable' ) && wpforms_current_user_can( wpforms_get_capability_manage_options() ) ) { + $error_messages[] = sprintf( + wp_kses( /* translators: %s - URL to the WForms Logs admin page. */ + __( 'Check the WPForms » Tools » Logs for more details.', 'wpforms-lite' ), + [ 'a' => [ 'href' => [] ] ] + ), + esc_url( + add_query_arg( + [ + 'page' => 'wpforms-tool', + 'view' => 'logs', + ], + admin_url( 'admin.php' ) + ) + ) + ); + + /* translators: %s - error unique ID. */ + $error_messages[] = sprintf( esc_html__( 'Error ID: %s.', 'wpforms-lite' ), $error_id ); + } + + $errors[ $form_id ]['header'] = implode( '
              ', $error_messages ); + $this->errors = $errors; + + return; + } + + /** + * Filter form entry before processing. + * Data are not validated or cleaned yet, so use them with caution. + * + * @since 1.4.0 + * + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data. + */ + $entry = apply_filters( 'wpforms_process_before_filter', $entry, $this->form_data ); + + /** + * Pre-process hook. + * + * @since 1.4.0 + * + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data. + */ + do_action( 'wpforms_process_before', $entry, $this->form_data ); + + /** + * Pre-process hook by form ID. + * + * @since 1.4.0 + * + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data. + */ + do_action( "wpforms_process_before_{$form_id}", $entry, $this->form_data ); + + // Validate fields. + foreach ( $this->form_data['fields'] as $field_properties ) { + + $field_id = $field_properties['id']; + $field_type = $field_properties['type']; + $field_submit = $entry['fields'][ $field_id ] ?? ''; + + /** + * Field type validation hook. + * + * @since 1.4.0 + * + * @param string|int $field_id Field ID as a numeric string. + * @param mixed $field_submit Submitted field value (raw data). + * @param array $form_data Form data. + */ + do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $this->form_data ); + } + + // Check if combined upload size exceeds allowed maximum. + $this->validate_combined_upload_size( $form ); + + /** + * Filter initial errors. + * Don't proceed if there are any errors thus far. + * We provide a filter so that other features, such as conditional logic, can adjust blocking errors. + * + * @since 1.4.0 + * + * @param array $errors List of errors. + * @param array $form_data Form data. + */ + $errors = apply_filters( 'wpforms_process_initial_errors', $this->errors, $this->form_data ); + + if ( isset( $_POST['__amp_form_verify'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing + if ( empty( $errors[ $form_id ] ) ) { + wp_send_json( [], 200 ); + } else { + $verify_errors = []; + + foreach ( $errors[ $form_id ] as $field_id => $error_fields ) { + $field = $this->form_data['fields'][ $field_id ]; + $field_properties = wpforms()->obj( 'frontend' )->get_field_properties( $field, $this->form_data ); + + if ( is_string( $error_fields ) ) { + $name = ''; + + if ( $field['type'] === 'checkbox' || $field['type'] === 'radio' || $field['type'] === 'select' ) { + $first = current( $field_properties['inputs'] ); + $name = $first['attr']['name']; + } elseif ( isset( $field_properties['inputs']['primary']['attr']['name'] ) ) { + $name = $field_properties['inputs']['primary']['attr']['name']; + } + + $verify_errors[] = [ + 'name' => $name, + 'message' => $error_fields, + ]; + } else { + foreach ( $error_fields as $error_field => $error_message ) { + $name = $field_properties['inputs'][ $error_field ]['attr']['name'] ?? ''; + + $verify_errors[] = [ + 'name' => $name, + 'message' => $error_message, + ]; + } + } + } + + wp_send_json( + [ + 'verifyErrors' => $verify_errors, + ], + 400 + ); + } + + return; + } + + if ( ! empty( $errors[ $form_id ] ) ) { + + if ( empty( $errors[ $form_id ]['header'] ) && empty( $errors[ $form_id ]['footer'] ) ) { + $errors[ $form_id ]['header'] = esc_html__( 'Form has not been submitted, please see the errors below.', 'wpforms-lite' ); + } + + $this->errors = $errors; + + return; + } + + // If a logged-in user fails the nonce check, we want to log the entry, disable the errors and fail silently. + // Please note that logs may be disabled, and in this case, nothing will be logged or reported. + if ( + is_user_logged_in() && + ( empty( $entry['nonce'] ) || ! wp_verify_nonce( $entry['nonce'], "wpforms::form_{$form_id}" ) ) + ) { + // Logs XSS attempt depending on log levels set. + wpforms_log( + 'Cross-site scripting attempt ' . uniqid( '', true ), + [ true, $entry ], + [ + 'type' => [ 'security' ], + 'form_id' => $this->form_data['id'], + ] + ); + + $this->errors[ $this->form_data['id'] ]['footer_styled'] = esc_html__( 'The form could not be submitted due to a security issue.', 'wpforms-lite' ); + + return; + } + + // Format fields. + foreach ( (array) $this->form_data['fields'] as $field_properties ) { + + $field_id = $field_properties['id']; + $field_type = $field_properties['type']; + $field_submit = $entry['fields'][ $field_id ] ?? ''; + + /** + * Format field by type. + * + * @since 1.4.0 + * + * @param string $field_id Field ID. + * @param string $field_submit Submitted field value. + * @param array $form_data Form data and settings. + */ + do_action( "wpforms_process_format_{$field_type}", $field_id, $field_submit, $this->form_data ); + } + + $honeypot = wpforms()->obj( 'honeypot' )->validate( $this->form_data, $this->fields, $entry ); + + // If we trigger the honey pot, we want to log the entry, disable the errors, and fail silently. + if ( $honeypot ) { + + $this->log_spam_entry( $entry, $honeypot ); + + // Fail silently. + return; + } + + $token = wpforms()->obj( 'token' )->validate( $this->form_data, $this->fields, $entry ); + + // If spam - return early. + // For antispam, we want to make sure that we have a value, we are not using AMP, and the value is an error string. + if ( $token && is_string( $token ) && ! wpforms_is_amp() ) { + $this->errors[ $this->form_data['id'] ]['header'] = $token; + + $this->log_spam_entry( $entry, $token ); + + return; + } + + // Detect direct POST requests when the AJAX submission is enabled. + $this->direct_post_request_check( $entry ); + + $is_pro = wpforms()->is_pro(); + + if ( ! $this->is_bypass_spam_check( $entry ) ) { + // Store spam entries detected by filtering. + if ( $is_pro && ! empty( $this->form_data['settings']['anti_spam']['filtering_store_spam'] ) ) { + $this->country_filter_check( $entry, $form_id ); + $this->keyword_filter_check( $entry, $form_id ); + } + + // Check if the form was submitted too quickly. + $this->time_limit_check(); + + // Check for spam. + $this->process_spam_check( $entry ); + } + + // Convert spam errors to form errors if spam entries are not stored. + if ( ! $store_spam_entries && ! empty( $this->spam_errors ) ) { + $this->errors = $this->spam_errors; + } + + // Store spam reason. + if ( $this->spam_reason ) { + $this->form_data['spam_reason'] = $this->spam_reason; + } + + // Pass the form creation date into the form data. + $this->form_data['created'] = $form->post_date; + + /** + * Format form data after all fields have been processed. + * This hook is for internal purposes and should not be leveraged. + * + * @since 1.4.0 + * + * @param array $form_data Form data and settings. + */ + do_action( 'wpforms_process_format_after', $this->form_data ); + + /** + * Filter fields before processing. + * Process hooks/filter - this is where most addons should hook + * because at this point we have completed all field validations and formatted the data. + * + * @since 1.4.0 + * + * @param array $fields Form fields. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data and settings. + */ + $this->fields = apply_filters( 'wpforms_process_filter', $this->fields, $entry, $this->form_data ); + /** + * Process form fields. + * + * @since 1.4.0 + * + * @param array $fields Form fields. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data and settings. + */ + do_action( 'wpforms_process', $this->fields, $entry, $this->form_data ); + + /** + * Process form fields by form ID. + * + * @since 1.4.0 + * + * @param array $fields Form fields. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data and settings. + */ + do_action( "wpforms_process_{$form_id}", $this->fields, $entry, $this->form_data ); + + /** + * Filter fields after processing. + * + * @since 1.4.0 + * + * @param array $fields Form fields. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data and settings. + */ + $this->fields = apply_filters( 'wpforms_process_after_filter', $this->fields, $entry, $this->form_data ); + + // One last error check - don't proceed if there are any errors. + if ( ! empty( $this->errors[ $form_id ] ) ) { + + if ( empty( $this->errors[ $form_id ]['header'] ) && empty( $this->errors[ $form_id ]['footer'] ) ) { + $this->errors[ $form_id ]['header'] = esc_html__( 'Form has not been submitted, please see the errors below.', 'wpforms-lite' ); + } + + return; + } + + // Set raw post data. + $this->form_data['post_data_raw'] = [ + 'page_url' => isset( $_POST['page_url'] ) ? esc_url_raw( wp_unslash( $_POST['page_url'] ) ) : '', + ]; + + // Success - add entry to a database. + $this->entry_id = $this->entry_save( $this->fields, $entry, $this->form_data['id'], $this->form_data ); + + // Add payment to a database. + $payment_id = $this->payment_save( $entry ); + + $this->form_data['entry_meta'] = [ + 'page_url' => isset( $_POST['page_url'] ) ? esc_url_raw( wp_unslash( $_POST['page_url'] ) ) : '', + 'page_title' => isset( $_POST['page_title'] ) ? sanitize_text_field( wp_unslash( $_POST['page_title'] ) ) : '', + 'page_id' => isset( $_POST['page_id'] ) ? absint( $_POST['page_id'] ) : '', + 'url_referer' => isset( $_POST['url_referer'] ) ? esc_url_raw( wp_unslash( $_POST['url_referer'] ) ) : '', + 'user_id' => get_current_user_id(), + ]; + + // Save meta data. + $this->save_meta( $this->entry_id, $this->form_data['id'] ); + + /** + * Runs right after adding an entry to the database. + * + * @since 1.7.7 + * @since 1.8.2 Added Payment ID param. + * + * @param array $fields Fields data. + * @param array $entry User submitted data. + * @param array $form_data Form data. + * @param int $entry_id Entry ID. + * @param int $payment_id Payment ID. + */ + do_action( 'wpforms_process_entry_saved', $this->fields, $entry, $this->form_data, $this->entry_id, $payment_id ); + + // Fire the logic to send notification emails. + $this->entry_email( $this->fields, $entry, $this->form_data, $this->entry_id, 'entry' ); + + // Pass completed and formatted fields in POST. + $_POST['wpforms']['complete'] = $this->fields; + + // Pass entry ID in POST. + $_POST['wpforms']['entry_id'] = $this->entry_id; + + // Logs entry depending on log levels set. + if ( $is_pro ) { + wpforms_log( + $this->entry_id ? "Entry {$this->entry_id}" : 'Entry', + $this->fields, + [ + 'type' => [ 'entry' ], + 'parent' => $this->entry_id, + 'form_id' => $this->form_data['id'], + ] + ); + } + + // Mark the submission as spam if one of the spam checks failed and spam entries are stored. + $marked_as_spam = $this->spam_reason && $store_spam_entries; + + // Proceed if the entry is not marked as spam. + if ( ! $marked_as_spam ) { + $this->process_complete( $form_id, $this->form_data, $this->fields, $entry, $this->entry_id ); + } else { + /** + * Fires in the case the entry was marked as spam during the form submission. + * + * @since 1.9.8.1 + * + * @param int $entry_id Entry ID. + * @param int $form_id Form ID. + */ + do_action( 'wpforms_process_anti_spam_entry_marked_as_spam', $this->entry_id, $form_id ); + } + + $this->entry_confirmation_redirect( $this->form_data ); + } + + /** + * Run the modern Anti-Spam check. + * + * @since 1.9.0 + * + * @param array $entry Form submission raw data ($_POST). + * + * @return bool True if the modern Anti-Spam check was passed, false otherwise. + */ + private function modern_anti_spam_check( array &$entry ): bool { + + // Skip if spam was already detected. + if ( $this->spam_reason ) { + return false; + } + + /** + * Allow bypassing the modern Anti-Spam check. + * + * @since 1.9.0 + * + * @param bool $bypass Whether to bypass the modern Anti-Spam check, default false. + * @param array $form_data Form data. + * @param array $entry Form submission raw data ($_POST). + * + * @return bool + */ + if ( apply_filters( 'wpforms_process_anti_spam_honeypot_bypass', false, $this->form_data, $entry ) ) { + return true; + } + + // Skip if the modern Anti-Spam check was passed. + if ( wpforms()->obj( 'anti_spam' )->validate( $this->form_data, $this->fields, $entry ) ) { + return true; + } + + $form_id = $this->form_data['id'] ?? 0; + + $this->spam_errors[ $form_id ]['header'] = esc_html__( 'Anti-spam Honeypot V2 verification was failed, please try again later.', 'wpforms-lite' ); + + $this->spam_reason = 'Honeypot V2'; + + // Log the spam entry depending on log levels set. + $this->log_spam_entry( + $entry, + 'Anti-spam Honeypot V2 verification was failed.' + ); + + return false; + } + + /** + * Detect direct POST requests when the AJAX submission is enabled. + * For Anti-spam Modern (v3) enabled forms only. + * + * @since 1.9.0 + * + * @param array $entry Form submission raw data ($_POST). + */ + private function direct_post_request_check( array $entry ) { + + if ( + // Skip if spam was already detected. + $this->spam_reason || + + // Skip if the Anti-spam Modern (v3) is not enabled. + empty( $this->form_data['settings']['antispam_v3'] ) + ) { + return; + } + + /** + * Allow bypassing the direct POST request check. + * + * @since 1.9.0 + * + * @param bool $bypass Whether to bypass the direct POST request check, default is false. + * @param array $form_data Form data. + * @param array $entry Form entry. + */ + if ( apply_filters( 'wpforms_process_anti_spam_direct_post_bypass', false, $this->form_data, $entry ) ) { + return; + } + + // phpcs:disable WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput + $is_ajax_form = ! empty( $this->form_data['settings']['ajax_submit'] ); + $is_post = ( $_SERVER['REQUEST_METHOD'] ?? 'GET' ) === 'POST'; + $is_direct_post = ! wpforms_is_frontend_ajax() && $is_post; + // phpcs:enable WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput + + if ( ! ( $is_ajax_form && $is_direct_post ) ) { + return; + } + + $form_id = $this->form_data['id'] ?? 0; + + $this->spam_errors[ $form_id ]['header'] = esc_html__( 'Direct POST requests are not allowed when the AJAX submission is enabled.', 'wpforms-lite' ); + + $this->spam_reason = esc_html__( 'Direct POST request', 'wpforms-lite' ); + + // Log the spam entry depending on log levels set. + $this->log_spam_entry( + $entry, + 'Direct POST request form submission' + ); + } + + /** + * Run Country filter check. + * + * @since 1.9.2 + * + * @param array $entry Form submission raw data ($_POST). + * @param int $form_id Form ID. + */ + private function country_filter_check( array $entry, int $form_id ) { + + // Skip if spam was already detected. + if ( $this->spam_reason ) { + return; + } + + $country_filter = wpforms()->obj( 'antispam_country_filter' ); + + // Skip if the Country check was passed. + if ( $country_filter->is_valid( $this->form_data ) ) { + return; + } + + $error_message = $country_filter->get_error_message( $this->form_data ); + + if ( $this->is_block_submission_by_spam_filtering_enabled() ) { + $this->errors[ $form_id ]['footer'] = $error_message; + + return; + } + + $this->spam_errors[ $form_id ]['footer'] = $error_message; + + $this->spam_reason = 'Country Filter'; + + // Log the spam entry depending on log levels set. + $this->log_spam_entry( + $entry, + 'Country filter verification was failed.' + ); + } + + /** + * Run Keyword filter check. + * + * @since 1.9.2 + * + * @param array $entry Form submission raw data ($_POST). + * @param int $form_id Form ID. + */ + private function keyword_filter_check( array $entry, int $form_id ) { + + // Skip if spam was already detected. + if ( $this->spam_reason ) { + return; + } + + $keyword_filter = wpforms()->obj( 'antispam_keyword_filter' ); + + // Skip if the Keyword check was passed. + if ( $keyword_filter->is_valid( $this->form_data, $this->fields ) ) { + return; + } + + $error_message = $keyword_filter->get_error_message( $this->form_data ); + + if ( $this->is_block_submission_by_spam_filtering_enabled() ) { + $this->errors[ $form_id ]['footer'] = $error_message; + + return; + } + + $this->spam_errors[ $form_id ]['footer'] = $error_message; + + $this->spam_reason = 'Keyword Filter'; + + // Log the spam entry depending on log levels set. + $this->log_spam_entry( + $entry, + 'Keyword filter verification was failed.' + ); + } + + /** + * Save entry meta data. + * + * @since 1.8.7 + * + * @param int $entry_id Entry ID. + * @param int $form_id Form ID. + */ + protected function save_meta( $entry_id, $form_id ) { + + if ( ! wpforms()->is_pro() ) { + return; + } + + $meta_data = $this->form_data['entry_meta']; + $entry_meta = wpforms()->obj( 'entry_meta' ); + + foreach ( $meta_data as $type => $value ) { + $entry_meta->add( + [ + 'entry_id' => $entry_id, + 'form_id' => $form_id, + 'user_id' => get_current_user_id(), + 'type' => $type, + 'data' => $value, + ], + 'entry_meta' + ); + } + } + + /** + * Log spam entry. + * + * @since 1.8.3 + * + * @param array $entry Form submission raw data ($_POST). + * @param string $message Spam message. + */ + private function log_spam_entry( $entry, $message ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Log the spam entry message after processing the entry when the entry ID is generated. + add_action( + 'wpforms_process_after', + static function ( $fields, $entry_id, $form_data ) use ( $entry, $message ) { + + wpforms_log( + 'Spam Entry ' . uniqid( '', true ), + [ $message, $entry ], + [ + 'type' => [ 'spam' ], + 'form_id' => $form_data['id'] ?? 0, + 'parent' => $entry_id, + ] + ); + }, + 10, + 3 + ); + } + + /** + * Check if the form was submitted too quickly. + * + * @since 1.8.3 + */ + private function time_limit_check() { + + /** + * Allow bypassing the time limit check. + * + * @since 1.8.3 + * + * @param bool $bypass Whether to bypass the time limit check, default false. + * @param array $form_data Form data. + * + * @return bool + */ + if ( apply_filters( 'wpforms_process_time_limit_check_bypass', false, $this->form_data ) ) { + return; + } + + $settings = $this->form_data['settings']; + $time_limit = ! empty( $settings['anti_spam']['time_limit'] ) ? $settings['anti_spam']['time_limit'] : []; + + $enabled = ! empty( $time_limit['enable'] ); + $duration = ! empty( $time_limit['duration'] ) ? absint( $time_limit['duration'] ) : 0; + + if ( ! $enabled || $duration <= 0 ) { + return; + } + + //phpcs:disable WordPress.Security.NonceVerification.Missing + $start = ! empty( $_POST['start_timestamp'] ) ? absint( $_POST['start_timestamp'] ) : 0; + $end = ! empty( $_POST['end_timestamp'] ) ? absint( $_POST['end_timestamp'] ) : 0; + //phpcs:enable WordPress.Security.NonceVerification.Missing + + // Filter out empty fields. + $fields = array_filter( + $this->fields, + static function ( $field ) { + + return ! empty( $field['value'] ); + } + ); + + // Skip the time limit check if the form was submitted with prefilled values. + if ( $start === 0 && ! empty( $fields ) ) { + return; + } + + // If the form was submitted too quickly, add an error. + if ( ( $end - $start ) < $duration || $start === 0 ) { + $this->errors[ $this->form_data['id'] ]['header'] = esc_html__( 'Please wait a little longer before submitting. We’re running a quick security check.', 'wpforms-lite' ); + } + } + + /** + * Process complete. + * + * @since 1.8.3 + * + * @param int $form_id Form ID. + * @param array $form_data Form data and settings. + * @param array $fields Fields data. + * @param array $entry Form submission raw data ($_POST). + * @param int $entry_id Entry ID. + */ + public function process_complete( $form_id, $form_data, $fields, $entry, $entry_id ) { + /** + * Runs right after the form has been successfully submitted. + * + * @since 1.0.0 + * @since 1.8.3 Added $entry parameter. + * + * @param array $fields Fields data. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data. + * @param int $entry_id Entry ID. + */ + do_action( 'wpforms_process_complete', $fields, $entry, $form_data, $entry_id ); + + /** + * Runs right after the form has been successfully submitted by form ID. + * + * @since 1.0.0 + * @since 1.8.3 Added $entry parameter. + * + * @param array $fields Fields data. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data. + * @param int $entry_id Entry ID. + */ + do_action( "wpforms_process_complete_{$form_id}", $fields, $entry, $form_data, $entry_id ); + } + + /** + * Check for spam. + * + * @since 1.8.3 + * + * @param array $entry Form submission raw data ($_POST). + */ + public function process_spam_check( $entry ) { + + // CAPTCHA check. + $this->process_captcha( $entry ); + + if ( $this->spam_reason ) { + return; + } + + $akismet = wpforms()->obj( 'akismet' )->validate( $this->form_data, $entry ); + + // If Akismet marks the entry as spam, we want to log the entry and fail silently. + if ( $akismet ) { + + $this->spam_errors[ $this->form_data['id'] ]['header'] = $akismet; + + // Log the spam entry depending on log levels set. + $this->log_spam_entry( $entry, $akismet ); + + $this->spam_reason = esc_html__( 'Akismet', 'wpforms-lite' ); + } + } + + /** + * Is bypass spam check. + * + * @since 1.8.3 + * + * @param array $entry Form submission raw data ($_POST). + * + * @return bool + */ + protected function is_bypass_spam_check( $entry ) { + + /** + * Filter to bypass CAPTCHA check. + * + * @since 1.6.6 + * + * @param bool $bypass_captcha Whether to bypass CAPTCHA check. + * @param array $entry Form submission raw data ($_POST). + * @param array $form_data Form data. + */ + return apply_filters( 'wpforms_process_bypass_captcha', false, $entry, $this->form_data ); + } + + /** + * Process captcha. + * + * @since 1.8.0 + * @since 1.8.3 Removed $captcha_settings parameter. + * + * @param array $entry Form submission raw data ($_POST). + * + * @return void + */ + private function process_captcha( $entry ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Skip if spam was already detected. + if ( $this->spam_reason ) { + return; + } + + $captcha_settings = wpforms_get_captcha_settings(); + + if ( ! $this->allow_process_captcha( $entry, $captcha_settings ) ) { + return; + } + + $provider = $captcha_settings['provider']; + + $current_captcha = $this->get_captcha( $provider ); + + if ( empty( $current_captcha ) ) { + return; + } + + $verify_url_raw = $current_captcha['verify_url_raw']; + $captcha_provider = $current_captcha['provider']; + $post_key = $current_captcha['post_key']; + + /* translators: %s - The CAPTCHA provider name. */ + $error = wpforms_setting( "{$provider}-fail-msg", sprintf( esc_html__( '%s verification failed, please try again later.', 'wpforms-lite' ), $captcha_provider ) ); + + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.NonceVerification.Missing + $token = ! empty( $_POST[ $post_key ] ) ? $_POST[ $post_key ] : false; + + $is_recaptcha_v3 = $provider === 'recaptcha' && $captcha_settings['recaptcha_type'] === 'v3'; + + if ( $is_recaptcha_v3 ) { + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.NonceVerification.Missing + $token = ! empty( $_POST['wpforms']['recaptcha'] ) ? $_POST['wpforms']['recaptcha'] : false; + } + + $verify_query_arg = [ + 'secret' => $captcha_settings['secret_key'], + 'response' => $token, + 'remoteip' => wpforms_get_ip(), + ]; + + if ( ! $token ) { + $this->errors[ $this->form_data['id'] ]['recaptcha'] = $error; + + return; + } + + /* + * hCaptcha uses user IP to better detect bots and their attacks on a form. + * Majority of our users have GDPR disabled. + * So we remove this data from the request only when it's unnecessary, + * depending on wpforms_is_collecting_ip_allowed($this->form_data) check. + */ + if ( ! wpforms_is_collecting_ip_allowed( $this->form_data ) ) { + unset( $verify_query_arg['remoteip'] ); + } + + /** + * Change query arguments for remote call to the captcha API. + * + * @since 1.8.0 + * + * @param array $verify_query_arg The query arguments for verify URL. + * @param array $form_data Form data and settings. + */ + $verify_query_arg = apply_filters( 'wpforms_process_captcha_verify_query_arg', $verify_query_arg, $this->form_data ); + + /** + * Filter the CAPTCHA verify URL. + * + * @since 1.6.4 + * @since 1.8.0 Added $form_data argument. + * + * @param string $verify_url The full `CAPTCHA verify URL`. + * @param string $verify_url_raw The `CAPTCHA verify URL` without query. + * @param array $verify_query_arg The query arguments for verify URL. + * @param array $form_data Form data and settings. + */ + $verify_url = apply_filters( 'wpforms_process_captcha_verify_url', $verify_url_raw, $verify_url_raw, $verify_query_arg, $this->form_data ); + + $response = wp_safe_remote_post( $verify_url, [ 'body' => $verify_query_arg ] ); + + $response_body = json_decode( wp_remote_retrieve_body( $response ), false ); + + if ( + empty( $response_body->success ) || + ( $is_recaptcha_v3 && $response_body->score <= wpforms_setting( 'recaptcha-v3-threshold', '0.4' ) ) + ) { + if ( $is_recaptcha_v3 && isset( $response_body->score ) ) { + $error .= ' (' . esc_html( $response_body->score ) . ')'; + } + + $this->spam_errors[ $this->form_data['id'] ]['recaptcha'] = $error; + + $this->log_spam_entry( $entry, $error ); + + $this->spam_reason = $captcha_provider; + } + } + + /** + * Check if CAPTCHA processing is allowed. + * + * @since 1.8.3 + * + * @param array $entry Form entry data. + * @param array $captcha_settings CAPTCHA settings. + * + * @return bool + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + private function allow_process_captcha( $entry, $captcha_settings ) { + + // Skip captcha processing if an AMP form. + if ( isset( $_POST['__amp_form_verify'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing + return false; + } + + // Skip captcha processing if the provider is not set. + if ( empty( $captcha_settings['provider'] ) ) { + return false; + } + + $provider = $captcha_settings['provider']; + + // Skip captcha processing if the provider is set to none. + if ( $provider === 'none' ) { + return false; + } + + // Skip captcha processing if a site key or secret key is empty. + if ( empty( $captcha_settings['site_key'] ) || empty( $captcha_settings['secret_key'] ) ) { + return false; + } + + $form_data_settings = $this->form_data['settings'] ?? []; + $is_recaptcha = isset( $form_data_settings['recaptcha'] ) && (int) $form_data_settings['recaptcha'] === 1; + + // Skip captcha processing if reCAPTCHA is disabled for this form. + if ( ! $is_recaptcha ) { + return false; + } + + $recaptcha_type = $captcha_settings['recaptcha_type']; + $is_recaptcha_v3 = $provider === 'recaptcha' && $recaptcha_type === 'v3'; + + // Skip captcha processing on AMP if not using reCAPTCHA v3. AMP requires Google reCAPTCHA v3. + return $is_recaptcha_v3 || ! wpforms_is_amp(); + } + + /** + * Get all available CAPTCHA providers. + * + * @since 1.8.3 + * + * @return array + */ + private function get_captcha_providers() { + + /** + * Filter the CAPTCHA providers. + * + * @since 1.8.3 + * + * @param array $providers The CAPTCHA providers. + */ + return apply_filters( + 'wpforms_process_captcha_providers', + [ + 'hcaptcha' => [ + 'verify_url_raw' => 'https://hcaptcha.com/siteverify', + 'provider' => 'hCaptcha', + 'post_key' => 'h-captcha-response', + ], + 'recaptcha' => [ + 'verify_url_raw' => 'https://www.google.com/recaptcha/api/siteverify', + 'provider' => 'Google reCAPTCHA', + 'post_key' => 'g-recaptcha-response', + ], + 'turnstile' => [ + 'verify_url_raw' => 'https://challenges.cloudflare.com/turnstile/v0/siteverify', + 'provider' => 'Cloudflare Turnstile', + 'post_key' => 'cf-turnstile-response', // The key is specified by the API. + ], + ] + ); + } + + /** + * Get CAPTCHA provider data. + * + * @since 1.8.3 + * + * @param string $provider CAPTCHA provider. + * + * @return array + */ + private function get_captcha( $provider ) { + + $captcha_providers = $this->get_captcha_providers(); + + return $captcha_providers[ $provider ] ?? []; + } + + /** + * Check if combined upload size exceeds allowed maximum. + * + * @since 1.6.0 + * + * @param WP_Post $form Form post object. + */ + public function validate_combined_upload_size( $form ): void { + + $form_id = (int) $form->ID; + $upload_fields = wpforms_get_form_fields( $form, [ 'file-upload' ] ); + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + if ( ! empty( $upload_fields ) && ! empty( $_FILES ) ) { + + // Get $_FILES keys generated by WPForms only. + $files_keys = preg_filter( '/^/', 'wpforms_' . $form_id . '_', array_keys( $upload_fields ) ); + + // Filter uploads without errors. Individual errors are handled by WPForms\Pro\Forms\Fields\FileUpload\Field class. + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $files = wp_list_filter( wp_array_slice_assoc( $_FILES, $files_keys ), [ 'error' => 0 ] ); + $files_size = array_sum( wp_list_pluck( $files, 'size' ) ); + $files_size_max = wpforms_max_upload( true ); + + if ( $files_size > $files_size_max ) { + + // Add a new header error preserving previous ones. + $this->errors[ $form_id ]['header'] = ! empty( $this->errors[ $form_id ]['header'] ) ? $this->errors[ $form_id ]['header'] . '
              ' : ''; + $this->errors[ $form_id ]['header'] .= esc_html__( 'Uploaded files combined size exceeds allowed maximum.', 'wpforms-lite' ); + } + } + } + + /** + * Validate the form return hash. + * + * @since 1.0.0 + * + * @param string $hash Base64-encoded hash of form and entry IDs. + * + * @return array|false False for invalid or form id. + */ + public function validate_return_hash( $hash = '' ) { + + // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode + $query_args = base64_decode( $hash ); + + parse_str( $query_args, $output ); + + // Verify hash matches. + if ( wp_hash( $output['form_id'] . ',' . $output['entry_id'] ) !== $output['hash'] ) { + return false; + } + + // Get lead and verify it is attached to the form we received with it. + $entry = wpforms()->obj( 'entry' )->get( $output['entry_id'], [ 'cap' => false ] ); + + if ( empty( $entry->form_id ) ) { + return false; + } + + if ( $output['form_id'] !== $entry->form_id ) { + return false; + } + + return [ + 'form_id' => absint( $output['form_id'] ), + 'entry_id' => absint( $output['form_id'] ), + 'fields' => $entry !== null && isset( $entry->fields ) ? $entry->fields : [], + ]; + } + + /** + * Check if the confirmation data are valid. + * + * @since 1.6.4 + * + * @param array $data The confirmation data. + * + * @return bool + */ + protected function is_valid_confirmation( $data ) { + + if ( empty( $data['type'] ) ) { + return false; + } + + // Confirmation type: redirect, page or message. + $type = $data['type']; + + return isset( $data[ $type ] ) && ! wpforms_is_empty_string( $data[ $type ] ); + } + + /** + * Redirect the user to a page or URL specified in the form confirmation settings. + * + * @since 1.0.0 + * + * @param array $form_data Form data and settings. + * @param string $hash Base64-encoded hash of form and entry IDs. + */ + public function entry_confirmation_redirect( $form_data = [], $hash = '' ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Maybe process return hash. + if ( ! empty( $hash ) ) { + + $hash_data = $this->validate_return_hash( $hash ); + + if ( ! $hash_data || ! is_array( $hash_data ) ) { + return; + } + + $this->valid_hash = true; + $this->entry_id = absint( $hash_data['entry_id'] ); + $this->fields = json_decode( $hash_data['fields'], true ); + $this->form_data = wpforms()->obj( 'form' )->get( + absint( $hash_data['form_id'] ), + [ + 'content_only' => true, + ] + ); + + } else { + + $this->form_data = $form_data; + } + + // Backward compatibility. + if ( empty( $this->form_data['settings']['confirmations'] ) ) { + $this->form_data['settings']['confirmations'][1]['type'] = ! empty( $this->form_data['settings']['confirmation_type'] ) ? $this->form_data['settings']['confirmation_type'] : 'message'; + $this->form_data['settings']['confirmations'][1]['message'] = ! empty( $this->form_data['settings']['confirmation_message'] ) ? $this->form_data['settings']['confirmation_message'] : esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ); + $this->form_data['settings']['confirmations'][1]['message_scroll'] = ! empty( $this->form_data['settings']['confirmation_message_scroll'] ) ? $this->form_data['settings']['confirmation_message_scroll'] : 1; + $this->form_data['settings']['confirmations'][1]['page'] = ! empty( $this->form_data['settings']['confirmation_page'] ) ? $this->form_data['settings']['confirmation_page'] : ''; + $this->form_data['settings']['confirmations'][1]['redirect'] = ! empty( $this->form_data['settings']['confirmation_redirect'] ) ? $this->form_data['settings']['confirmation_redirect'] : ''; + } + + if ( empty( $this->form_data['settings']['confirmations'] ) || ! is_array( $this->form_data['settings']['confirmations'] ) ) { + return; + } + + $confirmations = $this->form_data['settings']['confirmations']; + + /** + * Filter confirmations before processing. + * + * Allows addons to replace confirmations with their own data. + * + * @since 1.9.8.6 + * + * @param array $confirmations Confirmations data. + * @param array $form_data Form data and settings. + * @param array $fields Submitted form fields. + * @param int $entry_id Entry ID. + */ + $confirmations = (array) apply_filters( 'wpforms_process_entry_confirmation_redirect_confirmations', $confirmations, $this->form_data, $this->fields, $this->entry_id ); + + // Reverse sort confirmations by id to process newer ones first. + krsort( $confirmations ); + + $confirmation_id = $this->get_confirmation_id( $confirmations ); + + $this->confirmation = $confirmations[ $confirmation_id ] ?? []; + + $url = ''; + // Redirect, if needed, to either a page or URL, after form processing. + if ( ! empty( $confirmations[ $confirmation_id ]['type'] ) && $confirmations[ $confirmation_id ]['type'] !== 'message' ) { + + if ( $confirmations[ $confirmation_id ]['type'] === 'redirect' ) { + + $rawurlencode_callback = static function ( $value ) { + return $value === null ? null : rawurlencode( $value ); + }; + + add_filter( 'wpforms_smarttags_process_field_id_value', $rawurlencode_callback ); + + $url = wpforms_process_smart_tags( + $confirmations[ $confirmation_id ]['redirect'], + $this->form_data, + $this->fields, + $this->entry_id, + 'confirmation_redirect' + ); + + remove_filter( 'wpforms_smarttags_process_field_id_value', $rawurlencode_callback ); + } + + if ( $confirmations[ $confirmation_id ]['type'] === 'page' ) { + $url = $this->get_confirmation_redirect_page( (array) $confirmations[ $confirmation_id ] ); + } + } + + if ( ! empty( $url ) ) { + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + $url = apply_filters( 'wpforms_process_redirect_url', $url, $this->form_data['id'], $this->fields, $this->form_data, $this->entry_id ); + + if ( wpforms_is_amp() ) { + /** This filter is documented in wp-includes/pluggable.php */ + // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + $url = apply_filters( 'wp_redirect', $url, 302 ); + $url = wp_sanitize_redirect( $url ); + + header( sprintf( 'AMP-Redirect-To: %s', $url ) ); + header( 'Access-Control-Expose-Headers: AMP-Redirect-To', false ); + wp_send_json( + [ + 'message' => __( 'Redirecting…', 'wpforms-lite' ), + 'redirecting' => true, + ], + 200 + ); + } else { + wp_redirect( esc_url_raw( $url ) ); // phpcs:ignore + } + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + do_action( 'wpforms_process_redirect', $this->form_data['id'] ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + do_action( "wpforms_process_redirect_{$this->form_data['id']}", $this->form_data['id'] ); + + exit; + } + + // Pass a message to a frontend if no redirection happened. + if ( ! empty( $confirmations[ $confirmation_id ]['type'] ) && $confirmations[ $confirmation_id ]['type'] === 'message' ) { + $this->confirmation_message = $confirmations[ $confirmation_id ]['message']; + + if ( ! empty( $confirmations[ $confirmation_id ]['message_scroll'] ) ) { + wpforms()->obj( 'frontend' )->confirmation_message_scroll = true; + } + } + } + + /** + * Get redirect URL for page type confirmation. + * + * @since 1.9.8 + * + * @param array $confirmation Confirmation. + * + * @return string + */ + private function get_confirmation_redirect_page( array $confirmation ): string { + + if ( empty( $confirmation['page'] ) ) { + return ''; + } + + if ( $confirmation['page'] !== 'previous_page' ) { + $url = (string) get_permalink( (int) $confirmation['page'] ); + + return $this->add_url_params_page_confirmation( $confirmation, $url ); + } + + $url = wpforms_process_smart_tags( + '{url_referer}', + $this->form_data, + $this->fields, + $this->entry_id, + 'confirmation_redirect' + ); + + /** + * Filter the previous page URL for the redirect confirmation. + * + * @since 1.9.8 + * + * @param string $url Previous page URL. + * @param array $confirmation Confirmation data. + * @param array $form_data Form data and settings. + */ + $url = (string) apply_filters( 'wpforms_process_confirmation_previous_page_url', $url, $confirmation, $this->form_data ); + + // Double-check if the referer exists and it's not an external website. + if ( $url && wp_validate_redirect( $url ) ) { + return $this->add_url_params_page_confirmation( $confirmation, $url ); + } + + /** + * Filter the fallback URL when the previous page URL is invalid. + * + * @since 1.9.8 + * + * @param string $fallback_url Default homepage URL. + * @param array $confirmation Confirmation data. + * @param array $form_data Form data and settings. + */ + $fallback_url = (string) apply_filters( 'wpforms_process_confirmation_fallback_url', home_url(), $confirmation, $this->form_data ); + + return $this->add_url_params_page_confirmation( $confirmation, $fallback_url ); + } + + /** + * Determine which confirmation to process. + * + * @since 1.9.2 + * + * @param array $confirmations List of confirmations. + * + * @return int Confirmation ID. + */ + private function get_confirmation_id( array $confirmations ) { + + $default_confirmation_key = min( array_keys( $confirmations ) ); + + $confirmation_id = 0; + + foreach ( $confirmations as $confirmation_id => $confirmation ) { + // Last confirmation should execute in any case. + if ( $default_confirmation_key === $confirmation_id ) { + break; + } + + if ( ! $this->is_valid_confirmation( $confirmation ) ) { + continue; + } + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Process confirmation filter. + * + * @since 1.4.8 + * + * @param bool $process Whether to process the logic or not. + * @param array $fields List of submitted fields. + * @param array $form_data Form data and settings. + * @param int $id Confirmation ID. + */ + $process_confirmation = apply_filters( 'wpforms_entry_confirmation_process', true, $this->fields, $this->form_data, $confirmation_id ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + if ( $process_confirmation ) { + break; + } + } + + return $confirmation_id; + } + + /** + * Add URL parameters to the page confirmation URL. + * + * @since 1.9.8 + * + * @param array $confirmation Confirmation data. + * @param string $url Page URL. + * + * @return string Modified URL with parameters. + */ + private function add_url_params_page_confirmation( array $confirmation, string $url ): string { + + if ( empty( $confirmation['page_url_parameters'] ) ) { + return $url; + } + + parse_str( $confirmation['page_url_parameters'], $url_params ); + + if ( empty( $url_params ) ) { + return $url; + } + + /** + * Filter the URL parameters before adding them to the URL for page confirmation. + * + * @since 1.9.8 + * + * @param array $url_params Array of URL parameters. + * @param array $confirmation Confirmation data. + * @param array $form_data Form data and settings. + */ + $url_params = apply_filters( 'wpforms_process_confirmation_url_parameters', $url_params, $confirmation, $this->form_data ); + + return add_query_arg( $url_params, $url ); + } + + /** + * Get a confirmation message. + * + * @since 1.5.3 + * + * @param array $form_data Form data and settings. + * @param array $fields Sanitized field data. + * @param int $entry_id Entry id. + * + * @return string Confirmation message. + */ + public function get_confirmation_message( $form_data, $fields, $entry_id ) { + + if ( empty( $this->confirmation_message ) ) { + return ''; + } + + $confirmation_message = wpforms_process_smart_tags( $this->confirmation_message, $form_data, $fields, $entry_id, 'confirmation' ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + return apply_filters( 'wpforms_frontend_confirmation_message', wpautop( $confirmation_message ), $form_data, $fields, $entry_id ); + } + + /** + * Get current confirmation. + * + * @since 1.6.9 + * + * @return array + */ + public function get_current_confirmation() { + + return ! empty( $this->confirmation ) ? $this->confirmation : []; + } + + /** + * Catch the post_max_size overflow. + * + * @since 1.5.2 + * + * @return bool + */ + public function post_max_size_overflow() { + + // phpcs:disable WordPress.Security.NonceVerification + if ( empty( $_SERVER['CONTENT_LENGTH'] ) || empty( $_GET['wpforms_form_id'] ) ) { + return false; + } + + $form_id = (int) $_GET['wpforms_form_id']; + $total_size = (int) $_SERVER['CONTENT_LENGTH']; + $post_max_size = wpforms_size_to_bytes( ini_get( 'post_max_size' ) ); + + if ( ! ( $total_size > $post_max_size && empty( $_POST ) && $form_id > 0 ) ) { + return false; + } + // phpcs:enable WordPress.Security.NonceVerification + + $error_msg = esc_html__( 'Form has not been submitted, please see the errors below.', 'wpforms-lite' ); + $error_msg .= '
              ' . sprintf( /* translators: %1$.3f - total size of the selected files in megabytes, %2$.3f - allowed file upload limit in megabytes.*/ + esc_html__( 'The total size of the selected files %1$.3f MB exceeds the allowed limit %2$.3f MB.', 'wpforms-lite' ), + esc_html( $total_size / 1048576 ), + esc_html( $post_max_size / 1048576 ) + ); + + $this->errors[ $form_id ]['header'] = $error_msg; + + return true; + } + + /** + * Send entry email notifications. + * + * @since 1.0.0 + * + * @param array $fields List of fields. + * @param array $entry Submitted form entry. + * @param array $form_data Form data and settings. + * @param int $entry_id Saved entry id. + * @param string $context In which context this email is sent. + */ + public function entry_email( $fields, $entry, $form_data, $entry_id, $context = '' ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Check that the form was configured for email notifications. + if ( empty( $form_data['settings']['notification_enable'] ) ) { + return; + } + + /** + * Allow entry email notifications to be disabled. + * + * @since 1.0.0 + * + * @param bool $enabled Whether to send the email. + * @param array $fields List of fields. + * @param array $entry Form submission raw data. + * @param array $form_data Form data and settings. + */ + if ( ! apply_filters( 'wpforms_entry_email', true, $fields, $entry, $form_data ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return; + } + + // Make sure we have an entry id. + if ( empty( $this->entry_id ) ) { + $this->entry_id = (int) $entry_id; + } + + /** + * Filter entry email notifications data. + * + * @since 1.0.0 + * + * @param array $fields List of fields. + * @param array $entry Form submission raw data. + * @param array $form_data Form data and settings. + */ + $fields = apply_filters( 'wpforms_entry_email_data', $fields, $entry, $form_data ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + // Backwards compatibility for notifications before v1.4.3. + if ( empty( $form_data['settings']['notifications'] ) && ! empty( $form_data['settings']['notification_email'] ) ) { + $notifications[1] = [ + 'email' => $form_data['settings']['notification_email'], + 'subject' => $form_data['settings']['notification_subject'], + 'sender_name' => $form_data['settings']['notification_fromname'], + 'sender_address' => $form_data['settings']['notification_fromaddress'], + 'replyto' => $form_data['settings']['notification_replyto'], + 'message' => '{all_fields}', + ]; + } else { + $notifications = $form_data['settings']['notifications']; + } + + $notifications_count = count( $notifications ); + $is_pro = wpforms()->is_pro(); + + foreach ( $notifications as $notification_id => $notification ) : + + if ( empty( $notification['email'] ) ) { + continue; + } + + // You can disable the email notification for a specific notification only if there are more than one notification. + // BC: The notification should be enabled even when the `enabled` key doesn't exist. + // The key is missed for old forms or forms created using the Lite version. + if ( $is_pro && $notifications_count > 1 && isset( $notification['enable'] ) && (int) $notification['enable'] === 0 ) { + continue; + } + + /** + * Allow entry email notifications to be disabled for a specific notification. + * + * @since 1.0.0 + * + * @param bool $enabled Whether to send the email. + * @param array $fields List of fields. + * @param array $form_data Form data and settings. + * @param int $notification_id Notification ID. + * @param string $context In which context this email is sent. + */ + $process_email = apply_filters( 'wpforms_entry_email_process', true, $fields, $form_data, $notification_id, $context ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! $process_email ) { + continue; + } + + $email = []; + $is_carboncopy_enabled = wpforms_setting( 'email-carbon-copy' ); + + // Setup email properties. + $email['subject'] = ! empty( $notification['subject'] ) ? + $notification['subject'] : + sprintf( /* translators: %s - form name. */ + esc_html__( 'New %s Entry', 'wpforms-lite' ), + $form_data['settings']['form_title'] + ); + $email['address'] = explode( ',', wpforms_process_smart_tags( $notification['email'], $form_data, $fields, $this->entry_id, 'notification-send-to-email' ) ); + $email['address'] = array_filter( array_map( 'sanitize_email', $email['address'] ) ); + $email['sender_address'] = ! empty( $notification['sender_address'] ) ? $notification['sender_address'] : get_option( 'admin_email' ); + $email['sender_name'] = ! empty( $notification['sender_name'] ) ? $notification['sender_name'] : get_bloginfo( 'name' ); + $email['replyto'] = ! empty( $notification['replyto'] ) ? $notification['replyto'] : false; + $email['message'] = ! empty( $notification['message'] ) ? $notification['message'] : '{all_fields}'; + $email['template'] = ! empty( $notification['template'] ) ? $notification['template'] : ''; + + if ( $is_carboncopy_enabled && ! empty( $notification['carboncopy'] ) ) { + $email['carboncopy'] = explode( + ',', + wpforms_process_smart_tags( + $notification['carboncopy'], + $form_data, + $fields, + $this->entry_id, + 'notification-carboncopy', + [ 'to_email' => $email['address'] ] + ) + ); + $email['carboncopy'] = array_filter( array_map( 'sanitize_email', $email['carboncopy'] ) ); + } + + /** + * Filter entry email notifications attributes. + * + * @since 1.0.0 + * + * @param array $email Email attributes. + * @param array $fields List of fields. + * @param array $entry Form submission raw data. + * @param array $form_data Form data and settings. + * @param int $notification_id Notification ID. + */ + $email = apply_filters( 'wpforms_entry_email_atts', $email, $fields, $entry, $form_data, $notification_id ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + // Create a new email. + $emails = ( new Notifications() )->init( $email['template'] ); + + $emails->__set( 'form_data', $form_data ); + $emails->__set( 'fields', $fields ); + $emails->__set( 'notification_id', $notification_id ); + $emails->__set( 'entry_id', $this->entry_id ); + $emails->__set( 'from_name', $email['sender_name'] ); + $emails->__set( 'from_address', $email['sender_address'] ); + $emails->__set( 'reply_to', $email['replyto'] ); + + // Reset headers to support multiple notifications. They will be set on sending. + $emails->__set( 'headers', null ); + + // Maybe include CC. + if ( $is_carboncopy_enabled && ! empty( $email['carboncopy'] ) ) { + $emails->__set( 'cc', $email['carboncopy'] ); + } + + /** + * Filter entry email notifications before sending. + * + * @since 1.0.0 + * + * @param object $emails WPForms_WP_Emails instance. + */ + $emails = apply_filters( 'wpforms_entry_email_before_send', $emails ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $this->email_handler = $emails; + + // Go. + foreach ( $email['address'] as $address ) { + $emails->send( trim( $address ), $email['subject'], $email['message'] ); + } + endforeach; + } + + /** + * Save entry to a database. + * + * @since 1.0.0 + * + * @param array $fields List of form fields. + * @param array $entry User submitted data. + * @param int $form_id Form ID. + * @param array $form_data Prepared form settings. + * + * @return int + */ + public function entry_save( $fields, $entry, $form_id, $form_data = [] ) { + + $fields = $this->remove_raw_data_before_save( $fields ); + + /** + * Fires on entry save. + * + * @since 1.0.0 + * + * @param array $fields List of form fields. + * @param array $entry Form submission raw data. + * @param int $form_id Form ID. + * @param array $form_data Prepared form settings. + */ + do_action( 'wpforms_process_entry_save', $fields, $entry, $form_id, $form_data ); + + return $this->entry_id; + } + + /** + * Remove raw data from fields before saving. + * This is needed to prevent raw password data from being saved to the database. + * + * @since 1.8.6 + * + * @param array $fields List of form fields. + * + * @return array + */ + private function remove_raw_data_before_save( array $fields ): array { + + foreach ( $fields as $key => $field ) { + if ( ! empty( $field['type'] ) && $field['type'] === 'password' ) { + unset( $fields[ $key ]['value_raw'] ); + } + } + + return $fields; + } + + /** + * Save payment to the database. + * + * @since 1.8.2 + * + * @param array $entry User submitted data. + * + * @return int Payment ID. + */ + private function payment_save( $entry ) { + + if ( ! wpforms_has_payment( 'entry', $this->fields ) ) { + return 0; + } + + $entry['entry_id'] = $this->entry_id; + + $form_submission = wpforms()->obj( 'submission' )->register( $this->fields, $entry, $this->form_data['id'], $this->form_data ); + + // Prepare the payment data. + $payment_data = $form_submission->prepare_payment_data(); + + // Bail early in case the payment field exists, + // but no payment data was provided (e.g., old payment addon is used). + if ( empty( $payment_data['gateway'] ) ) { + return 0; + } + + // Create payment. + $payment_id = wpforms()->obj( 'payment' )->add( $payment_data ); + + if ( ! $payment_id ) { + return 0; + } + + // Insert payment meta. + wpforms()->obj( 'payment_meta' )->bulk_add( $payment_id, $form_submission->prepare_payment_meta() ); + + /** + * Fire after payment was saved to a database. + * + * @since 1.8.2 + * + * @param int $payment_id Payment id. + * @param array $fields Form fields. + * @param array $form_data Form data. + */ + do_action( 'wpforms_process_payment_saved', $payment_id, $this->fields, $this->form_data ); + + return $payment_id; + } + + /** + * Process AJAX form submit. + * + * @since 1.5.3 + */ + public function ajax_submit() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // phpcs:disable WordPress.Security.NonceVerification.Missing + $form_id = isset( $_POST['wpforms']['id'] ) ? absint( $_POST['wpforms']['id'] ) : 0; + + if ( empty( $form_id ) ) { + wp_send_json_error(); + } + + if ( isset( $_POST['wpforms']['post_id'] ) ) { + // We don't have a global $post when processing ajax requests. + // Therefore, it's necessary to set a global $post manually for compatibility with functions used in smart tag processing. + global $post; + // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited + $post = WP_Post::get_instance( absint( $_POST['wpforms']['post_id'] ) ); + } + // phpcs:enable WordPress.Security.NonceVerification.Missing + + add_filter( 'wp_redirect', [ $this, 'ajax_process_redirect' ], 999 ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_ajax_submit_before_processing', $form_id ); + + // If redirect happens in listen(), ajax_process_redirect() gets executed because of the filter on `wp_redirect`. + // The code, that is below listen(), runs only if no redirect happened. + $this->listen(); + + $form_data = $this->form_data; + + if ( empty( $form_data ) ) { + $form_data = wpforms()->obj( 'form' )->get( $form_id, [ 'content_only' => true ] ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $form_data = apply_filters( 'wpforms_frontend_form_data', $form_data ); + } + + if ( ! empty( $this->errors[ $form_id ] ) ) { + $this->ajax_process_errors( $form_id, $form_data ); + wp_send_json_error(); + } + + ob_start(); + + wpforms()->obj( 'frontend' )->confirmation( $form_data ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $response = apply_filters( 'wpforms_ajax_submit_success_response', [ 'confirmation' => ob_get_clean() ], $form_id, $form_data ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_ajax_submit_completed', $form_id, $response ); + + wp_send_json_success( $response ); + } + + /** + * Process AJAX errors. + * + * @since 1.5.3 + * + * @todo This should be re-used/combined for AMP verify-xhr requests. + * + * @param int $form_id Form ID. + * @param array $form_data Form data and settings. + */ + protected function ajax_process_errors( $form_id, $form_data ) { + + $errors = $this->errors[ $form_id ] ?? []; + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $errors = apply_filters( 'wpforms_ajax_submit_errors', $errors, $form_id, $form_data ); + + if ( empty( $errors ) ) { + wp_send_json_error(); + } + + // General errors are errors that cannot be populated with the jQuery Validate plugin. + $general_errors = array_intersect_key( $errors, array_flip( [ 'header', 'footer', 'header_styled', 'footer_styled', 'recaptcha' ] ) ); + + foreach ( $general_errors as $key => $error ) { + ob_start(); + wpforms()->obj( 'frontend' )->form_error( $key, $error, $form_data ); + $general_errors[ $key ] = ob_get_clean(); + } + + $fields = $form_data['fields'] ?? []; + + // Get registered fields errors only. + $field_errors = array_intersect_key( $errors, $fields ); + + // Transform field ids to field names for jQuery Validate plugin. + foreach ( $field_errors as $key => $error ) { + + $name = $this->ajax_error_field_name( $fields[ $key ], $form_data, $error ); + + if ( $name ) { + $field_errors[ $name ] = $error; + } + + unset( $field_errors[ $key ] ); + } + + $response = []; + + if ( $general_errors ) { + $response['errors']['general'] = $general_errors; + } + + if ( $field_errors ) { + $response['errors']['field'] = $field_errors; + } + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $response = apply_filters( 'wpforms_ajax_submit_errors_response', $response, $form_id, $form_data ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_ajax_submit_completed', $form_id, $response ); + + wp_send_json_error( $response ); + } + + /** + * Get a field name for an ajax error message. + * + * @since 1.6.3 + * + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * @param string|string[] $error Error message. + * + * @return string + */ + private function ajax_error_field_name( array $field, array $form_data, $error ): string { + + $props = wpforms()->obj( 'frontend' )->get_field_properties( $field, $form_data ); + + /** + * Filter the field name for an ajax error message. + * + * @since 1.6.3 + * + * @param string $name Error field name. + * @param array $field Field. + * @param array $props Field properties. + * @param string|string[] $error Error message. + */ + return (string) apply_filters( 'wpforms_process_ajax_error_field_name', '', $field, $props, $error ); + } + + /** + * Process AJAX redirect. + * + * @since 1.5.3 + * + * @param string $url Redirect URL. + */ + public function ajax_process_redirect( $url ) { + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $form_id = isset( $_POST['wpforms']['id'] ) ? absint( $_POST['wpforms']['id'] ) : 0; + + if ( empty( $form_id ) ) { + wp_send_json_error(); + } + + $response = [ + 'form_id' => $form_id, + 'redirect_url' => $url, + ]; + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $response = apply_filters( 'wpforms_ajax_submit_redirect', $response, $form_id, $url ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_ajax_submit_completed', $form_id, $response ); + + wp_send_json_success( $response ); + } + + /** + * Conditionally add a new_tab key to the AJAX response. + * + * @since 1.9.2 + * + * @param array $response AJAX response. + * + * @return array AJAX response. + */ + public function maybe_open_in_new_tab( array $response ): array { + + $open_in_new_tab = $this->confirmation['redirect_new_tab'] ?? false; + + if ( $open_in_new_tab ) { + $response['new_tab'] = true; + } + + return $response; + } + + /** + * Validate action value for ajax form submission. + * + * @since 1.9.3 + * + * @return bool + */ + private function is_valid_ajax_submit_action(): bool { + + // In the case of AMP form submission, the action is not set. + if ( wpforms_is_amp( false ) ) { + return true; + } + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + return ! empty( $_POST['action'] ) && $_POST['action'] === 'wpforms_submit'; + } + + /** + * Get current email handler. + * + * @since 1.9.4 + * + * @return mixed|Mailer|WPForms_WP_Emails|null + */ + public function get_email_handler() { + + return $this->email_handler; + } + + /** + * Determines if blocking submissions by spam filtering is enabled. + * + * @since 1.9.9 + * + * @return bool True if blocking submissions by spam filtering is enabled, false otherwise. + */ + private function is_block_submission_by_spam_filtering_enabled(): bool { + + /** + * Determines if blocking submissions by spam filtering should be forced. + * + * @since 1.9.9 + * + * @param bool $enabled True if blocking submissions should be forced. + */ + return (bool) apply_filters( 'wpforms_process_is_block_submission_by_spam_filtering_enabled', false ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/class-providers.php b/wp-content/plugins/wpforms-lite/includes/class-providers.php new file mode 100644 index 0000000..e45f086 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-providers.php @@ -0,0 +1,86 @@ +init(); + } + + /** + * Load and init the base provider class. + * + * @since 1.3.6 + */ + public function init() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Parent class template. + require_once WPFORMS_PLUGIN_DIR . 'includes/providers/class-base.php'; + + // Load default templates on WP init. + add_action( 'wpforms_loaded', [ $this, 'load' ] ); + } + + /** + * Load default marketing providers. + * + * @since 1.3.6 + */ + public function load() { + + $providers = []; + + if ( ConstantContact::get_current_version() === 2 ) { + $providers[] = 'constant-contact'; + } + + /** + * Allow third-party plugins to load their own providers. + * + * @since 1.7.0 + * + * @param array $providers Array of providers to load. + */ + $providers = (array) apply_filters( 'wpforms_load_providers', $providers ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + foreach ( $providers as $provider ) { + + $provider = sanitize_file_name( $provider ); + $path = WPFORMS_PLUGIN_DIR . 'includes/providers/class-' . $provider . '.php'; + + if ( file_exists( $path ) ) { + require_once $path; + } + + /** + * Allow third-party plugins to load their own providers. + * + * @since 1.7.0 + */ + do_action( "wpforms_load_{$provider}_provider" ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + } +} + +new WPForms_Providers(); diff --git a/wp-content/plugins/wpforms-lite/includes/class-templates.php b/wp-content/plugins/wpforms-lite/includes/class-templates.php new file mode 100644 index 0000000..ddd67dd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-templates.php @@ -0,0 +1,66 @@ +init(); + } + + /** + * Load and init the base form template class. + * + * @since 1.2.8 + */ + public function init() { + + // Parent class template. + require_once WPFORMS_PLUGIN_DIR . 'includes/templates/class-base.php'; + + // Load default templates on WP init. + add_action( 'init', [ $this, 'load' ] ); + } + + /** + * Load default form templates. + * + * @since 1.0.0 + */ + public function load() { + + $templates = apply_filters( + 'wpforms_load_templates', + [ + 'blank', + 'simple-contact-form', + ] + ); + + foreach ( $templates as $template ) { + + $template = sanitize_file_name( $template ); + + if ( file_exists( WPFORMS_PLUGIN_DIR . 'includes/templates/class-' . $template . '.php' ) ) { + require_once WPFORMS_PLUGIN_DIR . 'includes/templates/class-' . $template . '.php'; + } elseif ( file_exists( WPFORMS_PLUGIN_DIR . 'pro/includes/templates/class-' . $template . '.php' ) && wpforms()->is_pro() ) { + require_once WPFORMS_PLUGIN_DIR . 'pro/includes/templates/class-' . $template . '.php'; + } + } + } +} + +new WPForms_Templates; diff --git a/wp-content/plugins/wpforms-lite/includes/class-widget.php b/wp-content/plugins/wpforms-lite/includes/class-widget.php new file mode 100644 index 0000000..1ef1274 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/class-widget.php @@ -0,0 +1,192 @@ +defaults = [ + 'title' => '', + 'form_id' => '', + 'show_title' => false, + 'show_desc' => false, + ]; + + // Widget Slug. + $widget_slug = 'wpforms-widget'; + + // Widget basics. + $widget_ops = [ + 'classname' => $widget_slug, + 'description' => esc_html_x( 'Display a form.', 'Widget', 'wpforms-lite' ), + 'show_instance_in_rest' => false, + ]; + + // Widget controls. + $control_ops = [ + 'id_base' => $widget_slug, + ]; + + // Load widget. + parent::__construct( $widget_slug, esc_html_x( 'WPForms', 'Widget', 'wpforms-lite' ), $widget_ops, $control_ops ); + } + + /** + * Output the HTML for this widget. + * + * @since 1.0.2 + * + * @param array $args An array of standard parameters for widgets in this theme. + * @param array $instance An array of settings for this widget instance. + */ + public function widget( $args, $instance ) { + + // Merge with defaults. + $instance = wp_parse_args( (array) $instance, $this->defaults ); + $args = wp_parse_args( + $args, + [ + 'before_widget' => '', + 'after_widget' => '', + 'before_title' => '', + 'after_title' => '', + ] + ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $args['before_widget']; + + if ( ! empty( $instance['title'] ) ) { + // phpcs:ignore + echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $args['after_title']; + } + + if ( ! empty( $instance['form_id'] ) ) { + wpforms()->obj( 'frontend' )->output( absint( $instance['form_id'] ), (bool) $instance['show_title'], (bool) $instance['show_desc'] ); + } + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $args['after_widget']; + } + + /** + * Deal with the settings when they are saved by the admin. Here is + * where any validation should be dealt with. + * + * @since 1.0.2 + * + * @param array $new_instance An array of new settings as submitted by the admin. + * @param array $old_instance An array of the previous settings. + * + * @return array The validated and (if necessary) amended settings + */ + public function update( $new_instance, $old_instance ) { + + $new_instance['title'] = wp_strip_all_tags( $new_instance['title'] ); + $new_instance['form_id'] = ! empty( $new_instance['form_id'] ) ? (int) $new_instance['form_id'] : 0; + $new_instance['show_title'] = isset( $new_instance['show_title'] ) && $new_instance['show_title'] ? '1' : false; + $new_instance['show_desc'] = isset( $new_instance['show_desc'] ) && $new_instance['show_desc'] ? '1' : false; + + return $new_instance; + } + + /** + * Display the form for this widget on the Widgets page of the WP Admin area. + * + * @since 1.0.2 + * + * @param array $instance An array of the current settings for this widget. + */ + public function form( $instance ) { + + // Merge with defaults. + $instance = wp_parse_args( (array) $instance, $this->defaults ); + ?> +

              + + +

              +

              + + +

              +

              + > + +
              + > + +

              + version. + * + * @since 1.8.0 + */ + const CLASSES = [ + 'WPForms\Pro\Admin\Entries\DefaultScreen' => '1.8.2', + 'WPForms\Pro\Integrations\AI\AI' => '1.9.4', + 'WPForms\Pro\Integrations\AI\Helpers' => '1.9.4', + 'WPForms_Install_Skin' => '1.9.5', + 'WPForms_Install_Silent_Skin' => '1.5.6.1', + 'WPForms\Helpers\PluginSilentUpgraderSkin' => '1.9.5', + ]; + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + */ + public function __construct() { + + self::trigger_error(); + } + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + * + * @param string $name Property name. + */ + public function __get( $name ) { + + self::trigger_error( $name ); + } + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + * + * @param string $name Property name. + * @param mixed $value Property value. + */ + public function __set( $name, $value ) { + + self::trigger_error( $name ); + } + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + * + * @param string $name Property name. + */ + public function __isset( $name ) { + + self::trigger_error( $name ); + } + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + * + * @param string $name Method name. + * @param array $arguments List of arguments. + */ + public function __call( $name, $arguments ) { + + self::trigger_error( $name ); + } + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + * + * @param string $name Method name. + * @param array $arguments List of arguments. + */ + public static function __callStatic( $name, $arguments ) { + + self::trigger_error( $name ); + } + + /** + * Inform clients that the class is removed. + * + * @since 1.8.0 + * + * @param string $element_name Property or method name. + */ + private static function trigger_error( $element_name = '' ) { + + $current_class = static::class; + $removed_element = $current_class; + + if ( $element_name ) { + $removed_element .= '::' . $element_name; + } + + $version = ! empty( self::CLASSES[ $current_class ] ) ? self::CLASSES[ $current_class ] : WPFORMS_VERSION; + + trigger_error( + sprintf( + '%1$s has been removed in %2$s of the WPForms plugin', + esc_html( $removed_element ), + esc_html( $version ) + ), + E_USER_WARNING + ); + } + } +} + +namespace WPForms\Forms { + + use WPForms\Removed; + + class Loader extends Removed {} +} + +namespace { + /** + * Legacy `WPForms_Addons` class was refactored and moved to the new `WPForms\Pro\Admin\Pages\Addons` class. + * This alias is a safeguard to those developers who use our internal class WPForms_Addons, + * which we deleted. + * + * @since 1.6.7 + */ + class_alias( wpforms()->is_pro() ? 'WPForms\Pro\Admin\Pages\Addons' : 'WPForms\Lite\Admin\Pages\Addons', 'WPForms_Addons' ); + + /** + * This alias is a safeguard to those developers who decided to use our internal class WPForms_Smart_Tags, + * which we deleted. + * + * @since 1.6.7 + */ + class_alias( wpforms()->is_pro() ? 'WPForms\Pro\SmartTags\SmartTags' : 'WPForms\SmartTags\SmartTags', 'WPForms_Smart_Tags' ); + + /** + * This alias is a safeguard to those developers who decided to use our internal class \WPForms\Providers\Loader, + * which we deleted. + * + * @since 1.7.3 + */ + class_alias( '\WPForms\Providers\Providers', '\WPForms\Providers\Loader' ); + + /** + * Legacy `\WPForms\Admin\Notifications` class was refactored and moved to the new `\WPForms\Admin\Notifications\Notifications` class. + * This alias is a safeguard to those developers who use our internal class \WPForms\Admin\Notifications, + * which we deleted. + * + * @since 1.7.5 + */ + class_alias( '\WPForms\Admin\Notifications\Notifications', '\WPForms\Admin\Notifications' ); + + /** + * Legacy `\WPForms_Field_Payment_Checkbox` class was refactored and moved to the new `\WPForms\Forms\Fields\PaymentCheckbox\Field` class. + * This alias is a safeguard to those developers who use our internal class \WPForms_Field_Payment_Checkbox, + * which we deleted. + * + * @since 1.8.2 + */ + class_alias( '\WPForms\Forms\Fields\PaymentCheckbox\Field', '\WPForms_Field_Payment_Checkbox' ); + + /** + * Legacy `\WPForms_Field_Payment_Multiple` class was refactored and moved to the new `\WPForms\Forms\Fields\PaymentMultiple\Field` class. + * This alias is a safeguard to those developers who use our internal class \WPForms_Field_Payment_Multiple, + * which we deleted. + * + * @since 1.8.2 + */ + class_alias( '\WPForms\Forms\Fields\PaymentMultiple\Field', '\WPForms_Field_Payment_Multiple' ); + + /** + * Legacy `\WPForms_Field_Payment_Single` class was refactored and moved to the new `\WPForms\Forms\Fields\PaymentSingle\Field` class. + * This alias is a safeguard to those developers who use our internal class \WPForms_Field_Payment_Single, + * which we deleted. + * + * @since 1.8.2 + */ + class_alias( '\WPForms\Forms\Fields\PaymentSingle\Field', '\WPForms_Field_Payment_Single' ); + + /** + * Legacy `\WPForms_Field_Payment_Total` class was refactored and moved to the new `\WPForms\Forms\Fields\PaymentTotal\Field` class. + * This alias is a safeguard to those developers who use our internal class \WPForms_Field_Payment_Total, + * which we deleted. + * + * @since 1.8.2 + */ + class_alias( '\WPForms\Forms\Fields\PaymentTotal\Field', '\WPForms_Field_Payment_Total' ); + + /** + * Legacy `\WPForms_Field_Payment_Select` class was refactored and moved to the new `\WPForms\Forms\Fields\PaymentSelect\Field` class. + * This alias is a safeguard to those developers who use our internal class \WPForms_Field_Payment_Select, + * which we deleted. + * + * @since 1.8.2 + */ + class_alias( '\WPForms\Forms\Fields\PaymentSelect\Field', '\WPForms_Field_Payment_Select' ); + + /** + * Legacy `\WPForms\Migrations` class was refactored and moved to the new `\WPForms\Migrations\Migrations` class. + * This alias is a safeguard to those developers who use our internal class \WPForms\Migrations, which we deleted. + * + * @since 1.7.5 + */ + class_alias( '\WPForms\Migrations\Migrations', '\WPForms\Migrations' ); + + /** + * Legacy `\WPForms_Frontend` class was refactored and moved to the new `\WPForms\Frontend\Frontend` class. + * This alias is a safeguard to those developers who use our internal class \WPForms_Frontend, which we deleted. + * + * @since 1.8.1 + */ + class_alias( '\WPForms\Frontend\Frontend', '\WPForms_Frontend' ); + + /** + * This alias is a safeguard to those developers who use our internal class \WPForms_Overview, which we deleted. + * + * @since 1.8.6 + */ + class_alias( '\WPForms\Admin\Forms\Page', '\WPForms_Overview' ); + + /** + * This alias is a safeguard to those developers who use our internal class \WPForms_Overview_Table, which we deleted. + * + * @since 1.8.6 + */ + class_alias( '\WPForms\Admin\Forms\ListTable', '\WPForms_Overview_Table' ); + + /** + * This alias is a safeguard to those developers who use our internal + * class \WPForms\Emails\FetchInfoBlocksTask, which we deleted. + * + * @since 1.9.8 + */ + class_alias( '\WPForms\Emails\Tasks\FetchInfoBlocksTask', '\WPForms\Emails\FetchInfoBlocksTask' ); + + // Pro specific aliases. + if ( wpforms()->is_pro() ) { + /** + * Legacy `\WPForms\Pro\Migrations` class was refactored and moved to the new `\WPForms\Pro\Migrations\Migrations` class. + * This alias is a safeguard to those developers who use our internal class \WPForms\Migrations, which we deleted. + * + * @since 1.7.5 + */ + class_alias( '\WPForms\Pro\Migrations\Migrations', '\WPForms\Pro\Migrations' ); + + /** + * Legacy `\WPForms\Pro\Integrations\TranslationsPress\Translations` class was refactored and moved to the new + * `\WPForms\Pro\Integrations\Translations\Translations` class. + * This alias is a safeguard to those developers who use our internal class \WPForms\Pro\Integrations\TranslationsPress, which we deleted. + * + * @since 1.8.2.2 + */ + class_alias( '\WPForms\Pro\Integrations\Translations\Translations', '\WPForms\Pro\Integrations\TranslationsPress\Translations' ); + + /** + * This alias is a safeguard to those developers who use our internal class \WPForms_Entries_List, which we deleted. + * + * @since 1.8.6 + */ + class_alias( '\WPForms\Pro\Admin\Entries\Page', '\WPForms_Entries_List' ); + + /** + * This alias is a safeguard to those developers who use our internal class \WPForms_Entries_Table, which we deleted. + * + * @since 1.8.6 + */ + class_alias( '\WPForms\Pro\Admin\Entries\ListTable', '\WPForms_Entries_Table' ); + + /** + * This alias is a safeguard to those developers who use our internal class \WPForms_Field_Layout, which we deleted. + * + * @since 1.8.9 + */ + class_alias( '\WPForms\Pro\Forms\Fields\Layout\Field', '\WPForms_Field_Layout' ); + + /** + * These aliases are a safeguard to those developers who use our internal legacy field classes, which we deleted. + * + * @since 1.9.4 + */ + class_alias( '\WPForms\Pro\Forms\Fields\Address\Field', '\WPForms_Field_Address' ); + class_alias( '\WPForms\Pro\Forms\Fields\Content\Field', '\WPForms_Field_Content' ); + class_alias( '\WPForms\Pro\Forms\Fields\DateTime\Field', '\WPForms_Field_Date_Time' ); + class_alias( '\WPForms\Pro\Forms\Fields\Divider\Field', '\WPForms_Field_Divider' ); + class_alias( '\WPForms\Pro\Forms\Fields\EntryPreview\Field', '\WPForms_Entry_Preview' ); + class_alias( '\WPForms\Pro\Forms\Fields\FileUpload\Field', '\WPForms_Field_File_Upload' ); + class_alias( '\WPForms\Pro\Forms\Fields\Hidden\Field', '\WPForms_Field_Hidden' ); + class_alias( '\WPForms\Pro\Forms\Fields\Html\Field', '\WPForms_Field_HTML' ); + class_alias( '\WPForms\Pro\Forms\Fields\Pagebreak\Field', '\WPForms_Field_Page_Break' ); + class_alias( '\WPForms\Pro\Forms\Fields\Password\Field', '\WPForms_Field_Password' ); + class_alias( '\WPForms\Pro\Forms\Fields\CreditCard\Field', '\WPForms_Field_CreditCard' ); + class_alias( '\WPForms\Pro\Forms\Fields\Phone\Field', '\WPForms_Field_Phone' ); + class_alias( '\WPForms\Pro\Forms\Fields\Rating\Field', '\WPForms_Rating_Text' ); + class_alias( '\WPForms\Pro\Forms\Fields\Richtext\Field', '\WPForms_Field_Richtext' ); + class_alias( '\WPForms\Pro\Forms\Fields\Url\Field', '\WPForms_Field_URL' ); + + /** + * This alias is a safeguard to those developers who use our internal + * class \WPForms\Pro\Integrations\AI\API\Forms, which we deleted. + * + * @since 1.9.4 + */ + class_alias( '\WPForms\Integrations\AI\API\Forms', '\WPForms\Pro\Integrations\AI\API\Forms' ); + + /** + * This alias is a safeguard to those developers who use our internal + * class \WPForms\Pro\Integrations\AI\Admin\Ajax\Forms, which we deleted. + * + * @since 1.9.4 + */ + class_alias( '\WPForms\Integrations\AI\Admin\Ajax\Forms', '\WPForms\Pro\Integrations\AI\Admin\Ajax\Forms' ); + + /** + * This alias is a safeguard to those developers who use our internal + * class \WPForms\Pro\Integrations\AI\Admin\Builder\Enqueues, which we deleted. + * + * @since 1.9.4 + */ + class_alias( '\WPForms\Integrations\AI\Admin\Builder\Forms', '\WPForms\Pro\Integrations\AI\Admin\Builder\Enqueues' ); + + /** + * This alias is a safeguard to those developers who use our internal + * class \WPForms\Pro\Integrations\AI\Admin\Pages\Templates, which we deleted. + * + * @since 1.9.4 + */ + class_alias( '\WPForms\Integrations\AI\Admin\Pages\Templates', '\WPForms\Pro\Integrations\AI\Admin\Pages\Templates' ); + } + + /** + * This adds backwards compatibility after scoping the stripe lib and using our own prefix `\WPForms\Vendor\Stripe`. + * This alias is a safeguard for the users who update core plugin to 1.8.5 but have an older version of stripe pro addon. + * Fire this right before autoloading of legacy classes so that there is no conflict with other stripe libs when aliasing. + * + * @since 1.8.5 + */ + spl_autoload_register( + static function ( $class_name ) { + static $stripe_check_done = false; + + static $aliases = [ + '\WPForms\Vendor\Stripe\Charge' => 'Stripe\Charge', + '\WPForms\Vendor\Stripe\Customer' => 'Stripe\Customer', + '\WPForms\Vendor\Stripe\Subscription' => 'Stripe\Subscription', + '\WPForms\Vendor\Stripe\Invoice' => 'Stripe\Invoice', + '\WPForms\Vendor\Stripe\Exception\CardException' => 'Stripe\Exception\CardException', + '\WPForms\Vendor\Stripe\Source' => 'Stripe\Source', + ]; + + if ( $stripe_check_done ) { + return; + } + + // If class not for aliasing, bail. + if ( ! in_array( $class_name, $aliases, true ) ) { + return; + } + + $stripe_check_done = true; + + // If no Stripe Pro addon bail. + if ( ! defined( 'WPFORMS_STRIPE_VERSION' ) ) { + return; + } + + // Version 3.2.0 has prefixed lib. + // Versions 2.11.0 and below already have the lib bundled, so they don't require alias. + if ( + version_compare( WPFORMS_STRIPE_VERSION, '3.2.0', '>=' ) || + version_compare( WPFORMS_STRIPE_VERSION, '2.11.0', '<=' ) + ) { + return; + } + + // We only need to alias if we are using the legacy API version. + if ( ! \WPFormsStripe\Helpers::is_legacy_api_version() ) { + return; + } + + // If a lib is already loaded by a third party plugin, + // checking the CardException class here as a niche to make sure it is the correct library. + if ( class_exists( '\Stripe\Exception\CardException', false ) ) { + return; + } + + foreach ( $aliases as $prefixed => $alias ) { + class_alias( $prefixed, '\\' . $alias ); + } + } + ); +} + +namespace WPForms\Pro\Admin\Entries { + + /** + * The default Entries screen showed a chart and the form entries stats. + * Replaced with "WPForms\Pro\Admin\Entries\Overview". + * + * @since 1.5.5 + * @deprecated 1.8.2 + */ + class DefaultScreen extends \WPForms\Removed {} +} diff --git a/wp-content/plugins/wpforms-lite/includes/emails/class-emails.php b/wp-content/plugins/wpforms-lite/includes/emails/class-emails.php new file mode 100644 index 0000000..eb56ec3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/emails/class-emails.php @@ -0,0 +1,907 @@ +get_template() ) { + $this->html = false; + } + + add_action( 'wpforms_email_send_before', [ $this, 'send_before' ] ); + add_action( 'wpforms_email_send_after', [ $this, 'send_after' ] ); + } + + /** + * Set a property. + * + * @since 1.1.3 + * + * @param string $key Object property key. + * @param mixed $value Object property value. + */ + public function __set( $key, $value ) { + + $this->$key = $value; + } + + /** + * Get the email from name. + * + * @since 1.1.3 + * + * @return string The email from name + */ + public function get_from_name() { + + if ( ! empty( $this->from_name ) ) { + $this->from_name = $this->process_tag( $this->from_name ); + } else { + $this->from_name = get_bloginfo( 'name' ); + } + + return apply_filters( 'wpforms_email_from_name', wpforms_decode_string( $this->from_name ), $this ); + } + + /** + * Get the email from address. + * + * @since 1.1.3 + * + * @return string The email from address. + */ + public function get_from_address() { + + if ( ! empty( $this->from_address ) ) { + $this->from_address = $this->process_tag( $this->from_address ); + } else { + $this->from_address = get_option( 'admin_email' ); + } + + return apply_filters( 'wpforms_email_from_address', wpforms_decode_string( $this->from_address ), $this ); + } + + /** + * Get the email reply-to. + * + * @since 1.1.3 + * + * @return string The email reply-to address. + */ + public function get_reply_to() { + + if ( ! empty( $this->reply_to ) ) { + + $email = $this->reply_to; + + // Optional custom format with a Reply-to Name specified: John Doe + // - starts with anything, + // - followed by space, + // - ends with (expected to be an email, validated later). + $regex = '/^(.+) (<.+>)$/'; + $matches = []; + + if ( preg_match( $regex, $this->reply_to, $matches ) ) { + $this->reply_to_name = wpforms_decode_string( $this->process_tag( $matches[1] ) ); + $email = trim( $matches[2], '<> ' ); + } + + $this->reply_to = $this->process_tag( $email ); + + if ( ! is_email( $this->reply_to ) ) { + $this->reply_to = false; + $this->reply_to_name = false; + } + } + + return apply_filters( 'wpforms_email_reply_to', wpforms_decode_string( $this->reply_to ), $this ); + } + + /** + * Get the email carbon copy addresses. + * + * @since 1.3.1 + * + * @return string The email reply-to address. + */ + public function get_cc() { + + if ( is_array( $this->cc ) ) { + $this->cc = implode( ',', $this->cc ); + } + + if ( ! empty( $this->cc ) ) { + + $this->cc = $this->process_tag( $this->cc ); + + $addresses = array_map( 'trim', explode( ',', $this->cc ) ); + + foreach ( $addresses as $key => $address ) { + if ( ! is_email( $address ) ) { + unset( $addresses[ $key ] ); + } + } + + $this->cc = implode( ',', $addresses ); + } + + return apply_filters( 'wpforms_email_cc', wpforms_decode_string( $this->cc ), $this ); + } + + /** + * Get the email content type. + * + * @since 1.1.3 + * + * @return string The email content type. + */ + public function get_content_type() { + + if ( ! $this->content_type && $this->html ) { + $this->content_type = apply_filters( 'wpforms_email_default_content_type', 'text/html', $this ); + } elseif ( ! $this->html ) { + $this->content_type = 'text/plain'; + } + + return apply_filters( 'wpforms_email_content_type', $this->content_type, $this ); + } + + /** + * Get the email headers. + * + * @since 1.1.3 + * + * @return string The email headers. + */ + public function get_headers() { + + if ( ! $this->headers ) { + $this->headers = "From: {$this->get_from_name()} <{$this->get_from_address()}>\r\n"; + + if ( $this->get_reply_to() ) { + $this->headers .= $this->reply_to_name ? + "Reply-To: {$this->reply_to_name} <{$this->get_reply_to()}>\r\n" : + "Reply-To: {$this->get_reply_to()}\r\n"; + } + + if ( $this->get_cc() ) { + $this->headers .= "Cc: {$this->get_cc()}\r\n"; + } + + $this->headers .= "Content-Type: {$this->get_content_type()}; charset=utf-8\r\n"; + } + + return apply_filters( 'wpforms_email_headers', $this->headers, $this ); + } + + /** + * Build the email. + * + * @since 1.1.3 + * + * @param string $message The email message. + * + * @return string + */ + public function build_email( $message ) { + + // Plain text email shortcut. + if ( false === $this->html ) { + $message = $this->process_tag( $message ); + $message = str_replace( '{all_fields}', $this->wpforms_html_field_value( false ), $message ); + + return apply_filters( 'wpforms_email_message', wpforms_decode_string( $message ), $this ); + } + + /* + * Generate an HTML email. + */ + + ob_start(); + + $this->get_template_part( 'header', $this->get_template(), true ); + + // Hooks into the email header. + do_action( 'wpforms_email_header', $this ); + + $this->get_template_part( 'body', $this->get_template(), true ); + + // Hooks into the email body. + do_action( 'wpforms_email_body', $this ); + + $this->get_template_part( 'footer', $this->get_template(), true ); + + // Hooks into the email footer. + do_action( 'wpforms_email_footer', $this ); + + $message = $this->process_tag( $message ); + $message = nl2br( $message ); + + $body = ob_get_clean(); + + $message = str_replace( '{email}', $message, $body ); + $message = str_replace( '{all_fields}', $this->wpforms_html_field_value( true ), $message ); + $message = make_clickable( $message ); + + return apply_filters( 'wpforms_email_message', $message, $this ); + } + + /** + * Send the email. + * + * @since 1.1.3 + * + * @param string $to The To address. + * @param string $subject The subject line of the email. + * @param string $message The body of the email. + * @param array $attachments Attachments to the email. + * + * @return bool + */ + public function send( $to, $subject, $message, $attachments = [] ) { + + if ( ! did_action( 'init' ) && ! did_action( 'admin_init' ) ) { + _doing_it_wrong( __FUNCTION__, esc_html__( 'You cannot send emails with WPForms_WP_Emails() until init/admin_init has been reached.', 'wpforms-lite' ), null ); + + return false; + } + + // Don't send anything if emails have been disabled. + if ( $this->is_email_disabled() ) { + return false; + } + + // Don't send if email address is invalid. + if ( ! is_email( $to ) ) { + return false; + } + + $this->context_data = [ 'to_email' => (array) $to ]; + + // Hooks before email is sent. + do_action( 'wpforms_email_send_before', $this ); + + // Deprecated filter for $attachments. + $attachments = apply_filters_deprecated( + 'wpforms_email_attachments', + [ $attachments, $this ], + '1.5.7 of the WPForms plugin', + 'wpforms_emails_send_email_data' + ); + + /* + * Allow to filter data on per-email basis, + * useful for localizations based on recipient email address, form settings, + * or for specific notifications - whatever available in WPForms_WP_Emails class. + */ + $data = apply_filters( + 'wpforms_emails_send_email_data', + [ + 'to' => $to, + 'subject' => $subject, + 'message' => $message, + 'headers' => $this->get_headers(), + 'attachments' => $attachments, + ], + $this + ); + + // Update context data, as 'to' email address could be changed by the filter above. + $this->context_data = [ 'to_email' => (array) $data['to'] ]; + + $entry_obj = wpforms()->obj( 'entry' ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $send_same_process = apply_filters( + 'wpforms_tasks_entry_emails_trigger_send_same_process', + false, + $this->fields, + $entry_obj ? $entry_obj->get( $this->entry_id ) : [], + $this->form_data, + $this->entry_id, + 'entry' + ); + + if ( + $send_same_process || + ! empty( $this->form_data['settings']['disable_entries'] ) + ) { + // Let's do this NOW. + $result = wp_mail( + $data['to'], + $this->get_prepared_subject( $data['subject'] ), + $this->build_email( $data['message'] ), + $data['headers'], + $data['attachments'] + ); + } else { + // Schedule the email. + $result = (bool) ( new EntryEmailsTask() ) + ->params( + $data['to'], + $this->get_prepared_subject( $data['subject'] ), + $this->build_email( $data['message'] ), + $data['headers'], + $data['attachments'] + ) + ->register(); + } + + /** + * Hooks after the email is sent. + * + * @since 1.1.3 + * + * @param WPForms_WP_Emails $this Current instance of this object. + */ + do_action( 'wpforms_email_send_after', $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + return $result; + } + + /** + * Add filters/actions before the email is sent. + * + * @since 1.1.3 + */ + public function send_before() { + + add_filter( 'wp_mail_from', [ $this, 'get_from_address' ] ); + add_filter( 'wp_mail_from_name', [ $this, 'get_from_name' ] ); + add_filter( 'wp_mail_content_type', [ $this, 'get_content_type' ] ); + } + + /** + * Remove filters/actions after the email is sent. + * + * @since 1.1.3 + */ + public function send_after() { + + remove_filter( 'wp_mail_from', [ $this, 'get_from_address' ] ); + remove_filter( 'wp_mail_from_name', [ $this, 'get_from_name' ] ); + remove_filter( 'wp_mail_content_type', [ $this, 'get_content_type' ] ); + } + + /** + * Convert text formatted HTML. This is primarily for turning line breaks + * into

              and
              tags. + * + * @since 1.1.3 + * + * @param string $message Text to convert. + * + * @return string + */ + public function text_to_html( $message ) { + + if ( 'text/html' === $this->content_type || true === $this->html ) { + $message = wpautop( $message ); + } + + return $message; + } + + /** + * Process a smart tag. + * Decodes entities and sanitized (keeping line breaks) by default. + * + * @uses wpforms_decode_string() + * + * @since 1.1.3 + * @since 1.6.0 Deprecated 2 params: $sanitize, $linebreaks. + * + * @param string $content String that may contain tags. + * + * @return string|mixed + */ + public function process_tag( $content = '' ) { + + return wpforms_process_smart_tags( $content, $this->form_data, $this->fields, $this->entry_id, 'email', $this->context_data ); + } + + /** + * Process the all fields smart tag if present. + * + * @since 1.1.3 + * + * @param bool $is_html_email Toggle to use HTML or plaintext. + * + * @return string + */ + public function wpforms_html_field_value( $is_html_email = true ) { // phpcs:ignore + + if ( empty( $this->fields ) ) { + return ''; + } + + if ( empty( $this->form_data['fields'] ) ) { + $is_html_email = false; + } + + $message = ''; + + if ( $is_html_email ) { + /* + * HTML emails. + */ + ob_start(); + + // Hooks into the email field. + do_action( 'wpforms_email_field', $this ); + + $this->get_template_part( 'field', $this->get_template(), true ); + + $field_template = ob_get_clean(); + + // Check to see if user has added support for field type. + $other_fields = apply_filters( 'wpforms_email_display_other_fields', [], $this ); + + $x = 1; + + foreach ( $this->form_data['fields'] as $field_id => $field ) { + + $field_name = ''; + $field_val = ''; + + // If the field exists in the form_data but not in the final + // field data, then it's a non-input based field, "other fields". + if ( empty( $this->fields[ $field_id ] ) ) { + + // Check if the field type is in $other_fields, otherwise skip. + // Skip if the field is conditionally hidden. + if ( + empty( $other_fields ) || + ! in_array( $field['type'], $other_fields, true ) || + ( + wpforms()->is_pro() && + wpforms_conditional_logic_fields()->field_is_hidden( $this->form_data, $field_id ) + ) + ) { + continue; + } + + if ( $field['type'] === 'divider' ) { + $field_name = ! empty( $field['label'] ) ? str_repeat( '—', 3 ) . ' ' . $field['label'] . ' ' . str_repeat( '—', 3 ) : null; + $field_val = ! empty( $field['description'] ) ? $field['description'] : ''; + } elseif ( $field['type'] === 'pagebreak' ) { + if ( ! empty( $field['position'] ) && $field['position'] === 'bottom' ) { + continue; + } + $title = ! empty( $field['title'] ) ? $field['title'] : esc_html__( 'Page Break', 'wpforms-lite' ); + $field_name = str_repeat( '—', 6 ) . ' ' . $title . ' ' . str_repeat( '—', 6 ); + } elseif ( $field['type'] === 'html' ) { + + $field_name = ! empty( $field['name'] ) ? $field['name'] : esc_html__( 'HTML / Code Block', 'wpforms-lite' ); + $field_val = $field['code']; + } elseif ( $field['type'] === 'content' ) { + + $field_name = esc_html__( 'Content', 'wpforms-lite' ); + $field_val = $field['content']; + } + } else { + + if ( + ! apply_filters( 'wpforms_email_display_empty_fields', false ) && + ( ! isset( $this->fields[ $field_id ]['value'] ) || (string) $this->fields[ $field_id ]['value'] === '' ) + ) { + /** This filter is documented in wpforms/includes/emails/class-emails.php */ + $message .= apply_filters( 'wpforms_wp_emails_html_field_value_message_html', '' , $field, $this->form_data ); + + continue; + } + + if ( $field['type'] === 'payment-total' ) { + + $field_name = isset( $this->fields[ $field_id ]['name'] ) ? $this->fields[ $field_id ]['name'] : ''; + + // Replace the payment total value if an order summary is enabled. + // Ideally, it could be done through the `wpforms_html_field_value` filter, + // but needed data is missed there, e.g. entry data ($this->fields). + if ( ! empty( $field['summary'] ) ) { + $field_val = $this->process_tag( '{order_summary}' ); + } else { + $field_val = $this->fields[ $field_id ]['value']; + } + } else { + $field_name = isset( $this->fields[ $field_id ]['name'] ) ? $this->fields[ $field_id ]['name'] : ''; + $field_val = empty( $this->fields[ $field_id ]['value'] ) && ! is_numeric( $this->fields[ $field_id ]['value'] ) ? '' . esc_html__( '(empty)', 'wpforms-lite' ) . '' : $this->fields[ $field_id ]['value']; + } + } + + if ( empty( $field_name ) && null !== $field_name ) { + $field_name = sprintf( /* translators: %d - field ID. */ + esc_html__( 'Field ID #%s', 'wpforms-lite' ), + wpforms_validate_field_id( $field['id'] ) + ); + } + + $field_item = $field_template; + + if ( 1 === $x ) { + $field_item = str_replace( 'border-top:1px solid #dddddd;', '', $field_item ); + } + + /** + * Filter the field name before it is added to the email message. + * + * @since 1.9.1 + * + * @param string $field_name Field name. + * @param array $field Field data. + * @param array $form_data Form data and settings. + * @param string $context Context of the field name. + */ + $field_name = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_html_field_name', + $field_name, + $this->fields[ $field_id ] ?? $field, + $this->form_data, + 'email-html' + ); + + $field_item = str_replace( '{field_name}', $field_name, $field_item ); + $field_item = str_replace( + '{field_value}', + apply_filters( + 'wpforms_html_field_value', + $field_val, + isset( $this->fields[ $field_id ] ) ? $this->fields[ $field_id ] : $field, + $this->form_data, + 'email-html' + ), + $field_item + ); + + /** + * Filter the field item before it is added to the email message. + * + * @since 1.9.3 + * + * @param string $field_message Field message. + * @param array $field Field data. + * @param array $form_data Form data and settings. + */ + $message .= apply_filters( 'wpforms_wp_emails_html_field_value_message_html', wpautop( $field_item ), $field, $this->form_data ); + + $x ++; + } + } else { + /* + * Plain Text emails. + */ + foreach ( $this->fields as $field ) { + + if ( + ! apply_filters( 'wpforms_email_display_empty_fields', false ) && + ( ! isset( $field['value'] ) || (string) $field['value'] === '' ) + ) { + continue; + } + + $field_val = empty( $field['value'] ) && ! is_numeric( $field['value'] ) ? esc_html__( '(empty)', 'wpforms-lite' ) : $field['value']; + $field_name = $field['name']; + + if ( empty( $field_name ) ) { + $field_name = sprintf( /* translators: %d - field ID. */ + esc_html__( 'Field ID #%s', 'wpforms-lite' ), + wpforms_validate_field_id( $field['id'] ) + ); + } + + $message .= '--- ' . $field_name . " ---\r\n\r\n"; + $field_value = $field_val . "\r\n\r\n"; + $message .= apply_filters( 'wpforms_plaintext_field_value', $field_value, $field, $this->form_data ); + } + } + + if ( empty( $message ) ) { + $empty_message = esc_html__( 'An empty form was submitted.', 'wpforms-lite' ); + $message = $is_html_email ? wpautop( $empty_message ) : $empty_message; + } + + return $message; + } + + /** + * Email kill switch if needed. + * + * @since 1.1.3 + * + * @return bool + */ + public function is_email_disabled() { + + return (bool) apply_filters( 'wpforms_disable_all_emails', false, $this ); + } + + /** + * Get the enabled email template. + * + * @since 1.1.3 + * + * @return string When filtering return 'none' to switch to text/plain email. + */ + public function get_template() { + + if ( ! $this->template ) { + $this->template = wpforms_setting( 'email-template', 'default' ); + } + + return apply_filters( 'wpforms_email_template', $this->template ); + } + + /** + * Retrieve a template part. Taken from bbPress. + * + * @since 1.1.3 + * + * @param string $slug Template file slug. + * @param string $name Optional. Default null. + * @param bool $load Maybe load. + * + * @return string + */ + public function get_template_part( $slug, $name = null, $load = true ) { + + // Setup possible parts. + $templates = []; + + if ( isset( $name ) ) { + $templates[] = $slug . '-' . $name . '.php'; + } + + $templates[] = $slug . '.php'; + + // Return the part that is found. + return $this->locate_template( $templates, $load, false ); + } + + /** + * Retrieve the name of the highest priority template file that exists. + * + * Search in the STYLESHEETPATH before TEMPLATEPATH so that themes which + * inherit from a parent theme can just overload one file. If the template is + * not found in either of those, it looks in the theme-compat folder last. + * + * Taken from bbPress. + * + * @since 1.1.3 + * + * @param string|array $template_names Template file(s) to search for, in order. + * @param bool $load If true the template file will be loaded if it is found. + * @param bool $require_once Whether to require_once or require. Default true. + * Has no effect if $load is false. + * + * @return string The template filename if one is located. + */ + public function locate_template( $template_names, $load = false, $require_once = true ) { + + // No file found yet. + $located = false; + + // Try to find a template file. + foreach ( (array) $template_names as $template_name ) { + + // Continue if template is empty. + if ( empty( $template_name ) ) { + continue; + } + + // Trim off any slashes from the template name. + $template_name = ltrim( $template_name, '/' ); + + // Try locating this template file by looping through the template paths. + foreach ( $this->get_theme_template_paths() as $template_path ) { + $validated_path = Templates::validate_safe_path( + $template_path . $template_name, + [ 'theme', 'plugins' ] + ); + + if ( $validated_path ) { + $located = $validated_path; + + break; + } + } + } + + if ( ( true === $load ) && ! empty( $located ) ) { + load_template( $located, $require_once ); + } + + return $located; + } + + /** + * Return a list of paths to check for template locations + * + * @since 1.1.3 + * + * @return array + */ + public function get_theme_template_paths() { + + $template_dir = 'wpforms-email'; + + $file_paths = [ + 1 => trailingslashit( get_stylesheet_directory() ) . $template_dir, + 10 => trailingslashit( get_template_directory() ) . $template_dir, + 100 => WPFORMS_PLUGIN_DIR . 'includes/emails/templates', + ]; + + $file_paths = apply_filters( 'wpforms_email_template_paths', $file_paths ); + + // Sort the file paths based on priority. + ksort( $file_paths, SORT_NUMERIC ); + + return array_map( 'trailingslashit', $file_paths ); + } + + /** + * Perform email subject preparation: process tags, remove new lines, etc. + * + * @since 1.6.1 + * + * @param string $subject Email subject to post-process. + * + * @return string + */ + private function get_prepared_subject( $subject ) { + + $subject = $this->process_tag( $subject ); + + $subject = trim( str_replace( [ "\r\n", "\r", "\n" ], ' ', $subject ) ); + + return wpforms_decode_string( $subject ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/emails/templates/body-default.php b/wp-content/plugins/wpforms-lite/includes/emails/templates/body-default.php new file mode 100644 index 0000000..890c2b0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/emails/templates/body-default.php @@ -0,0 +1,16 @@ + +{email} diff --git a/wp-content/plugins/wpforms-lite/includes/emails/templates/default.php b/wp-content/plugins/wpforms-lite/includes/emails/templates/default.php new file mode 100644 index 0000000..7ec7e37 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/emails/templates/default.php @@ -0,0 +1,328 @@ + + + + + + + + + + + + +

              + + + + +
              + + + + '; + } + ?> + + + + + + +
              '; + echo '' . esc_attr( get_bloginfo( 'name' ) ) . ''; + echo '
              + + + + + + +
              + + + + + + +
              + + +

              Content.

              + +
              +
              +
              + + + + + + +
              + + + + + + +
              + + + Footer + +
              +
              +
              + + +
              +
              + + diff --git a/wp-content/plugins/wpforms-lite/includes/emails/templates/field-default.php b/wp-content/plugins/wpforms-lite/includes/emails/templates/field-default.php new file mode 100644 index 0000000..c92197a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/emails/templates/field-default.php @@ -0,0 +1,18 @@ + + + + +
              {field_name}
              {field_value}
              diff --git a/wp-content/plugins/wpforms-lite/includes/emails/templates/footer-default.php b/wp-content/plugins/wpforms-lite/includes/emails/templates/footer-default.php new file mode 100644 index 0000000..046c258 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/emails/templates/footer-default.php @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + +
              + + + + + + +
              + + + ' . wp_specialchars_decode( get_bloginfo( 'name' ) ) . '' ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo apply_filters( 'wpforms_email_footer_text', $footer ); + ?> + +
              +
              + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/includes/emails/templates/header-default.php b/wp-content/plugins/wpforms-lite/includes/emails/templates/header-default.php new file mode 100644 index 0000000..8ca329e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/emails/templates/header-default.php @@ -0,0 +1,376 @@ + + + + + + + + + <?php echo esc_html( get_bloginfo( 'name' ) ); ?> + + + + +
              + + + + +
              + + + + '; + } + ?> + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/emails/classic-footer.php b/wp-content/plugins/wpforms-lite/templates/emails/classic-footer.php new file mode 100644 index 0000000..994958e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/emails/classic-footer.php @@ -0,0 +1,50 @@ + + + + + + + +
              '; + echo '' . esc_attr( get_bloginfo( 'name' ) ) . ''; + echo '
              + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/forms/search-box.php b/wp-content/plugins/wpforms-lite/templates/admin/forms/search-box.php new file mode 100644 index 0000000..17f7476 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/forms/search-box.php @@ -0,0 +1,27 @@ + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/forms/search-reset.php b/wp-content/plugins/wpforms-lite/templates/admin/forms/search-reset.php new file mode 100644 index 0000000..de466a9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/forms/search-reset.php @@ -0,0 +1,26 @@ + +
              + [], + 'em' => [], + ] + ); + ?> + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/notifications.php b/wp-content/plugins/wpforms-lite/templates/admin/notifications.php new file mode 100644 index 0000000..84cfe65 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/notifications.php @@ -0,0 +1,50 @@ + +
              +
              +
              + + +
              +
              +
              + +
              + + + + + 1 ) : ?> + + + +
              + +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/pages/constant-contact.php b/wp-content/plugins/wpforms-lite/templates/admin/pages/constant-contact.php new file mode 100644 index 0000000..1c4c516 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/pages/constant-contact.php @@ -0,0 +1,139 @@ + + +
              +

              +
              +

              +

              +

              + $44 back for every $1 spent according to DMA.', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +

              +

              + + ', + esc_url( WPFORMS_PLUGIN_URL . 'assets/images/constant-contact/cc-about-logo.png' ), + esc_url( WPFORMS_PLUGIN_URL . 'assets/images/constant-contact/cc-about-logo@2x.png' ) + ); + ?> + +
                +
              1. + Email is still #1 - At least 91% of consumers check their email on a daily basis. You get direct access to your subscribers, without having to play by social media\'s rules and algorithms.', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +
              2. +
              3. + You own your email list - Unlike with social media, your list is your property and no one can revoke your access to it.', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +
              4. +
              5. + Email converts - People who buy products marketed through email spend 138% more than those who don\'t receive email offers.', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +
              6. +
              +

              +

              + why building your email list is so important.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( $wpbeginners_guide_link ) + ); + ?> +

              +
              +

              +

              +
                +
              1. +
              2. +
              3. +
              +

              +

              + + + +

              +

              +

              +
                +
              • +
              • +
              • +
              +

              + + + +

              +
              +

              +

              +

              +

              +
              + $item + ) { + ++ $index; + ?> +
              +
              %2$d. %3$s
              ', + esc_url( WPFORMS_PLUGIN_URL . 'assets/images/constant-contact/cc-about-step' . $index . '.png' ), + absint( $index ), + esc_html( $item ) + ); + ?> + + +
              +

              +

              +
              + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/hidden-field.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/hidden-field.php new file mode 100644 index 0000000..4976064 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/hidden-field.php @@ -0,0 +1,27 @@ + + + + + + + > + + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/reports.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/reports.php new file mode 100644 index 0000000..2e31914 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/reports.php @@ -0,0 +1,54 @@ + + + + +
              + %d payment', + 'Found %d payments', + $total, + 'wpforms-lite' + ), + [ + 'strong' => [], + ] + ), + (int) $total + ); + + $is_more_than_one_filter = count( $applied_filters ) > 1; + $last_applied_filter = end( $applied_filters ); + + // Display applied filters in a safe way. + foreach ( $applied_filters as $filter ) : + + // Skip empty filters with no results. + if ( empty( $filter['results'] ) ) { + continue; + } + + echo wp_kses( $filter['results'], [ 'em' => [] ] ); + ?> + + +
              + + + +
              + +
              +

              + +

              +
              + +
              + + + +
              + +

              + +

              + +
              + + + + + + + +
              +
              + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/details.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/details.php new file mode 100644 index 0000000..e537c1e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/details.php @@ -0,0 +1,85 @@ + +
              + +
              +

              + +

              +
              + +
              + +
              + +

              + + + + + +

              + +

              + + + +

              + +

              + + [ + 'href' => [], + 'class' => [], + ], + 'span' => [ 'class' => [] ], + ] + ); + ?> +

              + + +

              + + + +

              + +
              + +
              +
              +
              + + + +
              +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/entry-details.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/entry-details.php new file mode 100644 index 0000000..fe0242c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/entry-details.php @@ -0,0 +1,85 @@ + +
              + +
              +

              + + + + +

              +
              + +
              + $field ) { + + $field_type = $field['type']; + + if ( in_array( $field_type, [ 'repeater', 'layout' ], true ) && wpforms()->is_pro() ) { + if ( $field_type === 'repeater' ) { + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/payments/single/repeater', + [ + 'field' => $field, + 'form_data' => $form_data, + 'entry_fields' => $entry_fields, + ], + true + ); + } + + if ( $field_type === 'layout' ) { + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/payments/single/layout', + [ + 'field' => $field, + 'form_data' => $form_data, + 'entry_fields' => $entry_fields, + ], + true + ); + } + } else { + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/payments/single/field', + [ + 'field' => $field, + ], + true + ); + } + } + ?> +
              + + +
              +
              +
              + + + +
              +
              +
              + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/field.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/field.php new file mode 100644 index 0000000..9d6c4bd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/field.php @@ -0,0 +1,25 @@ + + +
              + +

              + +

              + +
              + +
              +
              \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/heading-navigation.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/heading-navigation.php new file mode 100644 index 0000000..c9dbe28 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/heading-navigation.php @@ -0,0 +1,59 @@ + + + + + + + + +
              +
              + +
              +
              + + + + + + + + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/log.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/log.php new file mode 100644 index 0000000..59b45e4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/log.php @@ -0,0 +1,56 @@ + + +
              + +
              +

              + +

              +
              + +
              + + + + + + date, 'M j, Y', true ), + wpforms_time_format( $item->date, '', true ) + ); + + if ( empty( $item->value ) ) { + continue; + } + ?> + +
              + + + value ); ?> + + + + + +
              + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/no-payment.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/no-payment.php new file mode 100644 index 0000000..4623a9b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/no-payment.php @@ -0,0 +1,27 @@ + +
              + +

              + +

              + + + + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-details.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-details.php new file mode 100644 index 0000000..d219ef7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-details.php @@ -0,0 +1,86 @@ + + +
              + +
              +

              + + + + +

              +
              + +
              +
                + $stat_card ) : ?> +
              • + +
              • + +
              +
              + +
              +
              + + [] ] ); ?> +
              + +
              + + + + + + + + +
              + +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-history.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-history.php new file mode 100644 index 0000000..151fa02 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/single/payment-history.php @@ -0,0 +1,66 @@ + + +
              +
              +

              + +

              +
              +
              + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/challenge-popup-footer.php b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/challenge-popup-footer.php new file mode 100644 index 0000000..ed93a93 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/challenge-popup-footer.php @@ -0,0 +1,33 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/dashboard-widget-before.php b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/dashboard-widget-before.php new file mode 100644 index 0000000..959a736 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/lite-connect/dashboard-widget-before.php @@ -0,0 +1,29 @@ + + +
              +
              + +
              +
              + + + + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/admin/notice-bar.php b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/notice-bar.php new file mode 100644 index 0000000..9806534 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/notice-bar.php @@ -0,0 +1,36 @@ + +
              + + You\'re using WPForms Lite. To unlock more features consider upgrading to Pro for 50%% off.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + 'strong' => [], + ] + ), + esc_url( $upgrade_link ) + ); + ?> + + +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/admin/settings/integrations-item.php b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/settings/integrations-item.php new file mode 100644 index 0000000..df217dc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/settings/integrations-item.php @@ -0,0 +1,43 @@ + +
              +
              + +
              +

              +

              + +

              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/builder/did-you-know.php b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/did-you-know.php new file mode 100644 index 0000000..5c232c8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/did-you-know.php @@ -0,0 +1,34 @@ + +
              +
              +
              +
              + +
              +
              + ' . esc_html__( 'Learn More', 'wpforms-lite' ) . ''; + } + ?> + + +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/ai-modal.php b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/ai-modal.php new file mode 100644 index 0000000..0c399f9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/ai-modal.php @@ -0,0 +1,76 @@ + + diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/top-bar.php b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/top-bar.php new file mode 100644 index 0000000..834cf6b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/lite-connect/top-bar.php @@ -0,0 +1,27 @@ + +
              +
              +
              + +
              +
              + + +
              +

              + +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/builder/providers-item.php b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/providers-item.php new file mode 100644 index 0000000..eb8b6fa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/providers-item.php @@ -0,0 +1,38 @@ + + + <?php echo esc_attr( $modal_name ); ?> + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/builder/settings-item.php b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/settings-item.php new file mode 100644 index 0000000..c8a7801 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/builder/settings-item.php @@ -0,0 +1,29 @@ + + + + + diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/lite-connect-modal.php b/wp-content/plugins/wpforms-lite/lite/templates/education/lite-connect-modal.php new file mode 100644 index 0000000..b162382 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/lite-connect-modal.php @@ -0,0 +1,83 @@ + + diff --git a/wp-content/plugins/wpforms-lite/lite/wpforms-lite.php b/wp-content/plugins/wpforms-lite/lite/wpforms-lite.php new file mode 100644 index 0000000..e98e5fa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/wpforms-lite.php @@ -0,0 +1,1165 @@ + Payment::class, + 'wpforms_payment_meta' => PaymentsMeta::class, + 'wpforms_tasks_meta' => TasksMeta::class, + 'wpforms_logs' => Repository::class, + ]; + + /** + * Primary class constructor. + * + * @since 1.2.2 + */ + public function __construct() { + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.9 + */ + private function hooks() { + + add_action( 'wpforms_install', [ $this, 'install' ] ); + add_action( 'wpforms_form_settings_notifications', [ $this, 'form_settings_notifications' ], 8 ); + add_action( 'wpforms_form_settings_confirmations', [ $this, 'form_settings_confirmations' ] ); + add_action( 'wpforms_builder_enqueues_before', [ $this, 'builder_enqueues' ] ); + add_action( 'wpforms_admin_page', [ $this, 'entries_page' ] ); + add_action( 'wpforms_admin_settings_after', [ $this, 'settings_cta' ] ); + add_action( 'wp_ajax_wpforms_lite_settings_upgrade', [ $this, 'settings_cta_dismiss' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueues' ] ); + add_filter( 'wpforms_helpers_templates_get_theme_template_paths', [ $this, 'add_templates' ] ); + + // Entries count logging for WPForms Lite. + add_action( 'wpforms_process_entry_saved', [ $this, 'entry_submit' ], 10, 5 ); + add_action( 'wpforms_process_entry_saved', [ $this, 'update_entry_count' ], 10, 5 ); + + // Upgrade to Pro WPForms menu bar item. + add_action( 'admin_bar_menu', [ $this, 'upgrade_to_pro_menu' ], 1000 ); + } + + /** + * Form notification settings, supports multiple notifications. + * + * @since 1.2.3 + * + * @param object $settings Settings. + * + * @noinspection HtmlUnknownTarget + */ + public function form_settings_notifications( $settings ) { + + $cc = wpforms_setting( 'email-carbon-copy' ); + $from_email = '{admin_email}'; + $from_name = sanitize_text_field( get_option( 'blogname' ) ); + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** + * Allow filtering of text after the `From Name` field. + * + * @since 1.2.3 + * @since 1.7.6 Added $form_data and $id arguments. + * + * @param string $value Value to be filtered. + * @param array $form_data Form data. + * @param int $id Notification ID. + */ + $from_name_after = apply_filters( 'wpforms_builder_notifications_from_name_after', '', $settings->form_data, 1 ); + + /** + * Allow filtering of a text after the `From Email` field. + * + * @since 1.2.3 + * @since 1.7.6 Added $form_data and $id arguments. + * + * @param array $value Value to be filtered. + * @param array $form_data Form data. + * @param int $id Notification ID. + */ + $from_email_after = apply_filters( 'wpforms_builder_notifications_from_email_after', '', $settings->form_data, 1 ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + // Handle backwards compatibility. + if ( empty( $settings->form_data['settings']['notifications'] ) ) { + $settings->form_data['settings']['notifications'][1]['subject'] = ! empty( $settings->form_data['settings']['notification_subject'] ) ? + $settings->form_data['settings']['notification_subject'] : + sprintf( /* translators: %s - form name. */ + esc_html__( 'New %s Entry', 'wpforms-lite' ), + $settings->form->post_title + ); + $settings->form_data['settings']['notifications'][1]['email'] = ! empty( $settings->form_data['settings']['notification_email'] ) ? $settings->form_data['settings']['notification_email'] : '{admin_email}'; + $settings->form_data['settings']['notifications'][1]['sender_name'] = ! empty( $settings->form_data['settings']['notification_fromname'] ) ? $settings->form_data['settings']['notification_fromname'] : $from_name; + $settings->form_data['settings']['notifications'][1]['sender_address'] = ! empty( $settings->form_data['settings']['notification_fromaddress'] ) ? $settings->form_data['settings']['notification_fromaddress'] : $from_email; + $settings->form_data['settings']['notifications'][1]['replyto'] = ! empty( $settings->form_data['settings']['notification_replyto'] ) ? $settings->form_data['settings']['notification_replyto'] : ''; + } + + $id = 1; + + echo '
              '; + echo ''; + esc_html_e( 'Notifications', 'wpforms-lite' ); + echo ''; + echo ''; + echo '
              '; + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + if ( empty( $dismissed['edu-builder-notifications-description'] ) ) { + echo '
              '; + echo ''; + echo '

              '; + printf( + wp_kses( /* translators: %s - link to the WPForms.com doc article. */ + __( 'Notifications are emails sent when a form is submitted. By default, these emails include entry details. For setup and customization options, including a video overview, please see our tutorial.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setup-form-notification-wpforms/', 'Builder Notifications', 'Form Notifications Documentation' ) ) + ); + echo '

              '; + echo '

              '; + printf( + wp_kses( /* translators: 1$s, %2$s - links to the WPForms.com doc articles. */ + __( 'After saving these settings, be sure to test a form submission. This lets you see how emails will look, and to ensure that they are delivered successfully.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + 'br' => [], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-properly-test-your-wordpress-forms-before-launching-checklist/', 'Builder Notifications', 'Testing A Form Documentation' ) ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/troubleshooting-email-notifications/', 'Builder Notifications', 'Troubleshoot Notifications Documentation' ) ) + ); + echo '

              '; + echo '
              '; + } + + wpforms_panel_field( + 'toggle', + 'settings', + 'notification_enable', + $settings->form_data, + esc_html__( 'Enable Notifications', 'wpforms-lite' ) + ); + ?> + +
              + +
              + +
              + +
              + + form_data, + esc_html__( 'Send To Email Address', 'wpforms-lite' ), + [ + 'default' => '{admin_email}', + 'tooltip' => esc_html__( 'Enter the email address to receive form entry notifications. For multiple notifications, separate email addresses with a comma.', 'wpforms-lite' ), + 'smarttags' => [ + 'type' => 'all', + 'fields' => 'email', + 'allowed' => 'admin_email,user_email', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'class' => 'email-recipient', + 'input_class' => 'wpforms-smart-tags-enabled', + ] + ); + if ( $cc ) : + wpforms_panel_field( + 'text', + 'notifications', + 'carboncopy', + $settings->form_data, + esc_html__( 'CC', 'wpforms-lite' ), + [ + 'smarttags' => [ + 'type' => 'all', + 'fields' => 'email', + 'allowed' => 'admin_email,user_email', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'input_class' => 'wpforms-smart-tags-enabled', + ] + ); + endif; + wpforms_panel_field( + 'text', + 'notifications', + 'subject', + $settings->form_data, + esc_html__( 'Email Subject Line', 'wpforms-lite' ), + [ + 'default' => sprintf( /* translators: %s - form name. */ + esc_html__( 'New Entry: %s', 'wpforms-lite' ), + $settings->form->post_title + ), + 'smarttags' => [ + 'type' => 'all', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'input_class' => 'wpforms-smart-tags-enabled', + ] + ); + wpforms_panel_field( + 'text', + 'notifications', + 'sender_name', + $settings->form_data, + esc_html__( 'From Name', 'wpforms-lite' ), + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** + * Allow modifying the "From Name" field settings in the builder on Settings > Notifications panel. + * + * @since 1.7.6 + * + * @param array $args Field settings. + * @param array $form_data Form data. + * @param int $id Notification ID. + */ + apply_filters( + 'wpforms_builder_notifications_sender_name_settings', + [ + 'default' => $from_name, + 'smarttags' => [ + 'type' => 'fields', + 'fields' => 'name,text', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'input_class' => 'wpforms-smart-tags-enabled', + ], + $settings->form_data, + $id + ) + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + ); + wpforms_panel_field( + 'text', + 'notifications', + 'sender_address', + $settings->form_data, + esc_html__( 'From Email', 'wpforms-lite' ), + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** + * Allow modifying the "From Email" field settings in the builder on the Settings > Notifications panel. + * + * @since 1.7.6 + * + * @param array $args Field settings. + * @param array $form_data Form data. + * @param int $id Notification ID. + */ + apply_filters( + 'wpforms_builder_notifications_sender_address_settings', + [ + 'default' => $from_email, + 'smarttags' => [ + 'type' => 'all', + 'fields' => 'email', + 'allowed' => 'admin_email,user_email', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'input_class' => 'wpforms-smart-tags-enabled', + ], + $settings->form_data, + $id + ) + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + ); + wpforms_panel_field( + 'text', + 'notifications', + 'replyto', + $settings->form_data, + esc_html__( 'Reply-To', 'wpforms-lite' ), + [ + 'tooltip' => esc_html( + sprintf( /* translators: %s - . */ + __( 'Enter the email address or email address with recipient\'s name in "First Last %s" format.', 'wpforms-lite' ), + // ​ is a zero-width space character. Without it, Tooltipster thinks it's an HTML tag + // and closes it at the end of the string, hiding everything after this value. + '<​email@example.com​>' + ) + ), + 'smarttags' => [ + 'type' => 'all', + 'fields' => 'email,name', + 'allowed' => 'admin_email,user_email', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'input_class' => 'wpforms-smart-tags-enabled', + ] + ); + wpforms_panel_field( + 'textarea', + 'notifications', + 'message', + $settings->form_data, + esc_html__( 'Email Message', 'wpforms-lite' ), + [ + 'rows' => 6, + 'default' => '{all_fields}', + 'smarttags' => [ + 'type' => 'all', + ], + 'parent' => 'settings', + 'subsection' => $id, + 'class' => 'email-msg', + 'input_class' => 'wpforms-smart-tags-enabled', + 'after' => '

              ' . + sprintf( + /* translators: %s - {all_fields} Smart Tag. */ + esc_html__( 'To display all form fields, use the %s Smart Tag.', 'wpforms-lite' ), + '{all_fields}' + ) . + '

              ', + ] + ); + + /** + * Fires after notification block content on the lite version. + * + * @since 1.7.7 + * + * @param array $settings Current confirmation data. + * @param int $id Notification id. + */ + do_action( 'wpforms_lite_form_settings_notifications_block_content_after', $settings, $id ); + ?> +
              +
              + + form_data['settings']['confirmations'] ) ) { + $settings->form_data['settings']['confirmations'][1]['type'] = ! empty( $settings->form_data['settings']['confirmation_type'] ) ? $settings->form_data['settings']['confirmation_type'] : 'message'; + $settings->form_data['settings']['confirmations'][1]['message'] = ! empty( $settings->form_data['settings']['confirmation_message'] ) ? $settings->form_data['settings']['confirmation_message'] : esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ); + $settings->form_data['settings']['confirmations'][1]['message_scroll'] = ! empty( $settings->form_data['settings']['confirmation_message_scroll'] ) ? $settings->form_data['settings']['confirmation_message_scroll'] : 1; + $settings->form_data['settings']['confirmations'][1]['page'] = ! empty( $settings->form_data['settings']['confirmation_page'] ) ? $settings->form_data['settings']['confirmation_page'] : ''; + $settings->form_data['settings']['confirmations'][1]['redirect'] = ! empty( $settings->form_data['settings']['confirmation_redirect'] ) ? $settings->form_data['settings']['confirmation_redirect'] : ''; + } + $field_id = 1; + + echo '
              '; + esc_html_e( 'Confirmations', 'wpforms-lite' ); + echo ''; + echo '
              '; + ?> + +
              + +
              + +
              + +
              + + form_data, + esc_html__( 'Confirmation Type', 'wpforms-lite' ), + [ + 'default' => 'message', + 'options' => [ + 'message' => esc_html__( 'Message', 'wpforms-lite' ), + 'page' => esc_html__( 'Show Page', 'wpforms-lite' ), + 'redirect' => esc_html__( 'Go to URL (Redirect)', 'wpforms-lite' ), + ], + 'class' => 'wpforms-panel-field-confirmations-type-wrap', + 'input_class' => 'wpforms-panel-field-confirmations-type', + 'parent' => 'settings', + 'subsection' => $field_id, + ] + ); + wpforms_panel_field( + 'textarea', + 'confirmations', + 'message', + $settings->form_data, + esc_html__( 'Confirmation Message', 'wpforms-lite' ), + [ + 'default' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ), + 'tinymce' => [ + 'editor_height' => '200', + ], + 'input_id' => 'wpforms-panel-field-confirmations-message-' . $field_id, + 'input_class' => 'wpforms-panel-field-confirmations-message', + 'parent' => 'settings', + 'subsection' => $field_id, + 'class' => 'wpforms-panel-field-tinymce', + 'smarttags' => [ + 'type' => 'all', + ], + ] + ); + wpforms_panel_field( + 'toggle', + 'confirmations', + 'message_scroll', + $settings->form_data, + esc_html__( 'Automatically scroll to the confirmation message', 'wpforms-lite' ), + [ + 'input_class' => 'wpforms-panel-field-confirmations-message_scroll', + 'parent' => 'settings', + 'subsection' => $field_id, + ] + ); + + wpforms_panel_field( + 'select', + 'confirmations', + 'page', + $settings->form_data, + esc_html__( 'Confirmation Page', 'wpforms-lite' ), + [ + 'class' => 'wpforms-panel-field-confirmations-page-choicesjs', + 'options' => wpforms_builder_form_settings_confirmation_get_pages( $settings->form_data, $field_id ), + 'input_class' => 'wpforms-panel-field-confirmations-page', + 'parent' => 'settings', + 'subsection' => $field_id, + 'choicesjs' => [ + 'use_ajax' => true, + 'callback_fn' => 'select_pages', + ], + ] + ); + + wpforms_panel_field( + 'text', + 'confirmations', + 'page_url_parameters', + $settings->form_data, + esc_html__( 'URL Parameters', 'wpforms-lite' ), + [ + 'input_id' => 'wpforms-panel-field-confirmations-page-url-parameters-' . $field_id, + 'input_class' => 'wpforms-panel-field-confirmations-page-url-parameters', + 'parent' => 'settings', + 'subsection' => $field_id, + 'tooltip' => esc_html__( 'Add query string parameters to append to the URL when the form is submitted. Separate multiple parameters with an ampersand (&).', 'wpforms-lite' ), + ] + ); + + wpforms_panel_field( + 'text', + 'confirmations', + 'redirect', + $settings->form_data, + esc_html__( 'Confirmation Redirect URL', 'wpforms-lite' ) . ' *', + [ + 'input_class' => 'wpforms-panel-field-confirmations-redirect', + 'parent' => 'settings', + 'subsection' => $field_id, + ] + ); + + wpforms_panel_field( + 'toggle', + 'confirmations', + 'redirect_new_tab', + $settings->form_data, + esc_html__( 'Open confirmation in new tab', 'wpforms-lite' ), + [ + 'input_id' => 'wpforms-panel-field-confirmations-redirect_new_tab-' . $field_id, + 'input_class' => 'wpforms-panel-field-confirmations-redirect_new_tab', + 'parent' => 'settings', + 'subsection' => $field_id, + ] + ); + + /** + * Fires after each confirmation to add custom fields. + * + * @since 1.6.9 + * + * @param WPForms_Builder_Panel_Settings $settings Builder panel settings. + * @param int $field_id Field ID. + */ + do_action( 'wpforms_lite_form_settings_confirmations_single_after', $settings, $field_id ); + ?> +
              +
              + + sprintf( + wp_kses( /* translators: %s - WPForms.com docs page URL. */ + __( 'You\'ve just turned off notification emails for this form. Since entries are not stored in WPForms Lite, notification emails are recommended for collecting entry details. For setup steps, please see our notification tutorial.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setup-form-notification-wpforms/', 'Builder Notifications', 'Disable Notifications Alert' ) ) + ), + ]; + + $strings = apply_filters( 'wpforms_lite_builder_strings', $strings ); + + wp_localize_script( + 'wpforms-builder-lite', + 'wpforms_builder_lite', + $strings + ); + } + + /** + * Display upgrade notice at the bottom on the plugin settings pages. + * + * @since 1.4.7 + * + * @param string $view Current view inside the plugin settings page. + */ + public function settings_cta( $view ) { + + if ( get_option( 'wpforms_lite_settings_upgrade', false ) || apply_filters( 'wpforms_lite_settings_upgrade', false ) ) { + return; + } + ?> +
              + +
              +

              +

              + [ + 'class' => [], + 'aria-hidden' => [], + ], + ] + ), + str_repeat( '', 5 ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + ?> +

              +
              +
              +
                +
              • + +
              • +
              • +
              • +
              • +
              • +
              • +
              +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              +
              +

              + + + + +

              +

              + Bonus: WPForms Lite users get 50% off regular price, automatically applied at checkout.', 'wpforms-lite' ), + [ + 'strong' => [], + 'span' => [ + 'class' => [], + ], + ] + ); + ?> +

              +
              + + entry_single_page(); + + return; + } + + if ( wpforms_is_admin_page( 'entries' ) ) { + $this->entries_list_page(); + } + } + + /** + * Display the Entries List page with sample data. + * + * @since 1.8.9 + */ + private function entries_list_page() { + + $is_lite_connect_enabled = LiteConnect::is_enabled(); + $is_lite_connect_allowed = LiteConnect::is_allowed(); + + wp_enqueue_style( 'wpforms-admin-entry-list' ); + wp_enqueue_script( 'wpforms-admin-entry-list' ); + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/entries/overview/entry-list', + [ + 'is_lite_connect_enabled' => $is_lite_connect_enabled, + 'is_lite_connect_allowed' => $is_lite_connect_allowed, + 'entries_count' => LiteConnectIntegration::get_new_entries_count(), + 'enabled_since' => LiteConnectIntegration::get_enabled_since(), + 'sample_entries' => $this->get_entries_list_data(), + 'utm' => $this->get_entries_utm(), + ], + true + ); + } + + /** + * Display the Single Entry page with sample data. + * + * @since 1.8.9 + */ + private function entry_single_page() { + + wp_enqueue_style( 'wpforms-admin-view-entry' ); + wp_enqueue_script( 'wpforms-admin-view-entry' ); + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/entries/single/entry', + [ + 'utm' => $this->get_entries_utm(), + ], + true + ); + } + + /** + * Increase entries count once a form is submitted. + * + * @since 1.5.9 + * @since 1.8.2 Added Payment ID. + * + * @param array $fields Set of form fields. + * @param array $entry Entry contents. + * @param array $form_data Form data. + * @param int $entry_id Entry ID. + * @param int $payment_id Payment ID for the payment form. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function update_entry_count( $fields, $entry, $form_data, $entry_id, $payment_id ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + if ( ! empty( $form_data['spam_reason'] ) ) { + return; + } + + global $wpdb; + + /** + * Filters whether to allow counting entries for Lite users. + * + * @since 1.5.9 + * + * @param bool $allow_entries_count True to allow, false to disallow. Default: true. + */ + if ( ! apply_filters( 'wpforms_dash_widget_allow_entries_count_lite', true ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return; + } + + $form_id = absint( $form_data['id'] ); + + if ( empty( $form_id ) ) { + return; + } + + if ( wpforms_is_form_template( $form_id ) ) { + return; + } + + if ( add_post_meta( $form_id, 'wpforms_entries_count', 1, true ) ) { + return; + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( + $wpdb->prepare( + "UPDATE $wpdb->postmeta + SET meta_value = meta_value + 1 + WHERE post_id = %d AND meta_key = 'wpforms_entries_count'", + $form_id + ) + ); + } + + /** + * Submit entry to the Lite Connect API. + * + * @since 1.7.4 + * @since 1.8.2 Added Payment ID. + * + * @param array $fields Set of form fields. + * @param array $entry Entry contents. + * @param array $form_data Form data. + * @param int $entry_id Entry ID. + * @param int $payment_id Payment ID for the payment form. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function entry_submit( $fields, $entry, $form_data, $entry_id, $payment_id ) { + + $submission = wpforms()->obj( 'submission' ); + + $submission->register( $fields, $entry, $form_data['id'], $form_data ); + + // Prepare the entry args. + $entry_args = $submission->prepare_entry_data(); + + if ( $payment_id ) { + $entry_args['type'] = 'payment'; + $entry_args['payment_id'] = $payment_id; + } + + if ( ! empty( $form_data['spam_reason'] ) ) { + $entry_args['status'] = 'spam'; + } + + // Submit entry args and form data to the Lite Connect API. + if ( + ! empty( $entry_args ) && + LiteConnect::is_allowed() && + LiteConnect::is_enabled() + ) { + ( new LiteConnectIntegration() )->submit( $entry_args, $form_data ); + } + } + + /** + * Add Lite-specific templates to the list of searchable template paths. + * + * @since 1.6.6 + * + * @param array $paths Paths to templates. + * + * @return array + */ + public function add_templates( $paths ) { + + $paths = (array) $paths; + + $paths[102] = trailingslashit( __DIR__ . '/templates' ); + + return $paths; + } + + /** + * Render Upgrade to Pro admin bar menu item. + * + * @since 1.7.4 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function upgrade_to_pro_menu( WP_Admin_Bar $wp_admin_bar ) { + + $current_screen = is_admin() ? get_current_screen() : null; + $upgrade_utm_content = $current_screen === null ? 'Upgrade to Pro' : 'Upgrade to Pro - ' . $current_screen->base; + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $upgrade_utm_content = empty( $_GET['view'] ) ? $upgrade_utm_content : $upgrade_utm_content . ': ' . sanitize_key( $_GET['view'] ); + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-upgrade', + 'title' => esc_html__( 'Upgrade to Pro', 'wpforms-lite' ), + 'href' => esc_url( $this->admin_upgrade_link( 'admin-bar', $upgrade_utm_content ) ), + 'meta' => [ + 'target' => '_blank', + 'rel' => 'noopener noreferrer', + ], + ] + ); + } + + /** + * Upgrade link used within the various admin pages. + * + * TODO: This is a duplicate of the function in the WPForms class. We should refactor this to use the same function. + * + * @since 1.8.5.1 + * + * @param string $medium URL parameter: utm_medium. + * @param string $content URL parameter: utm_content. + * + * @return string + */ + private function admin_upgrade_link( string $medium = 'link', string $content = '' ): string { + + $url = 'https://wpforms.com/lite-upgrade/'; + + if ( wpforms()->is_pro() ) { + $license_key = wpforms_get_license_key(); + $url = add_query_arg( + 'license_key', + sanitize_text_field( $license_key ), + 'https://wpforms.com/pricing/' + ); + } + + $upgrade = wpforms_utm_link( $url, apply_filters( 'wpforms_upgrade_link_medium', $medium ), $content ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + + /** + * Modify upgrade link. + * + * @since 1.5.1 + * + * @param string $upgrade Upgrade links. + */ + return apply_filters( 'wpforms_upgrade_link', $upgrade ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Handle plugin installation upon activation. + * + * @since 1.7.4 + */ + public function install() { + + // Restart the import flags for Lite Connect if needed. + if ( class_exists( LiteConnectIntegration::class ) ) { + LiteConnectIntegration::maybe_restart_import_flag(); + } + + // Wipe templates content cache. + if ( class_exists( TemplatesCache::class ) ) { + ( new TemplatesCache() )->wipe_content_cache(); + } + } + + /** + * Retrieve UTM parameters for Entries pages. + * + * @since 1.8.9 + * + * @return array + */ + private function get_entries_utm(): array { + + return [ + 'entries_list_button' => 'https://wpforms.com/lite-upgrade/?utm_campaign=liteplugin&utm_source=WordPress&utm_medium=entries&utm_content=Upgrade%20Now%20-%20Entries%20list', + 'entries_list_link' => 'https://wpforms.com/lite-upgrade/?utm_campaign=liteplugin&utm_source=WordPress&utm_medium=entries&utm_content=Upgrade%20to%20Pro%20-%20Entries%20list', + 'entry_single_button' => 'https://wpforms.com/lite-upgrade/?utm_campaign=liteplugin&utm_source=WordPress&utm_medium=entries&utm_content=Upgrade%20to%20Pro%20-%20Single%20Entry', + 'entry_single_link' => 'https://wpforms.com/lite-upgrade/?utm_campaign=liteplugin&utm_source=WordPress&utm_medium=entries&utm_content=Upgrade%20to%20Pro%20-%20Single%20Entry', + ]; + } + + /** + * Retrieve dummy data for the Entries List page. + * + * @since 1.8.9 + * + * return array + */ + private function get_entries_list_data(): array { + + return [ + [ + 'name' => 'Michael Johnson', + 'read' => true, + ], + [ + 'name' => 'David Thompson', + 'read' => true, + ], + [ + 'name' => 'Sarah Parker', + 'read' => true, + ], + [ + 'name' => 'Brian Anderson', + 'read' => true, + 'star' => true, + ], + [ + 'name' => 'Emily Davis', + 'read' => true, + 'star' => true, + ], + [ + 'name' => 'Laura White', + 'read' => true, + ], + [ + 'name' => 'Kevin Wilson', + 'read' => true, + ], + [ + 'name' => 'Megan Clark', + 'read' => true, + ], + [ + 'name' => 'Nicole Allen', + 'read' => true, + 'star' => true, + ], + [ + 'name' => 'Jason Miller', + ], + [ + 'name' => 'Rachel Moore', + ], + [ + 'name' => 'Chris Taylor', + 'star' => true, + ], + ]; + } +} + +new WPForms_Lite(); diff --git a/wp-content/plugins/wpforms-lite/readme.txt b/wp-content/plugins/wpforms-lite/readme.txt new file mode 100644 index 0000000..cd0e0d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/readme.txt @@ -0,0 +1,906 @@ +=== WPForms - Easy Form Builder for WordPress - Contact Forms, Payment Forms, Surveys, & More === +Contributors: wpforms, jaredatch, smub, slaFFik +Tags: contact form, contact form plugin, forms, form builder, custom form +Requires at least: 5.5 +Tested up to: 6.9 +Stable tag: 1.9.9.2 +Requires PHP: 7.2 +License: GNU General Public License v2.0 or later + +The best WordPress contact form plugin. Drag & Drop form builder to create beautiful contact forms, payment forms, & other custom forms. 7000+ integrations including Stripe and more. + + + +== Description == + += WordPress Contact Form Builder Plugin = + +[WPForms](https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) is a drag & drop WordPress form builder that's EASY and POWERFUL. Create contact forms, feedback forms, subscription forms, payment forms (including Stripe, Square & PayPal), and other types of forms for your site in minutes with just a few clicks! + +At WPForms, user experience is our #1 priority. Our pre-built form templates and workflows make WPForms the most beginner-friendly contact form plugin on the market. You don't have to hire a developer. Create a form in less than 5 minutes with our drag & drop form builder or use a template to get a head start. + +> WPForms Pro
              +> This plugin is the Lite version of WPForms Pro, which comes with email subscription forms, multi-page contact forms, file uploads, conditional logic, and extra payment integrations. [Click here to purchase the best premium WordPress contact form plugin now!](https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) + +https://www.youtube.com/watch?v=Ypl0XcGphw8&rel=0 + += Drag & Drop Contact Form Builder = + +Create custom contact forms in minutes with our easy-to-use [drag and drop online form builder](https://wpforms.com/features/drag-drop-online-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin). But don't just take our word for it. See what WordPress experts are saying: + +> WPForms is by far the easiest form plugin to use. My clients love WPForms and it's one of the few plugins they can use without any training. As a developer I appreciate how fast, modern, clean and extensible it is.
              +> Bill Erickson - Expert WordPress Consultant + += Pre-built Form Templates = + +WPForms comes with [2000+ pre-built form templates](https://wpforms.com/templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin). + +Whether you're looking to create a simple contact form, marketing form, request a quote form, donation form, payment order form, registration form, Stripe payment form, or a subscription form, we have a form template already prepared and ready to use. + += Mobile Ready, SEO Friendly, and Optimized for Speed = + +WPForms contact forms are 100% responsive and mobile-friendly. We optimized every query on the frontend and the backend to ensure that it's one of the fastest WordPress contact form plugins. + +You can embed your contact form on any page with an optimized title and description, so WPForms is one of the most SEO friendly contact form plugins too. + += Fields & Features You Need to Succeed = + +With star ratings, file uploads, repeater fields, survey fields, and multi-page contact forms, you can easily build the right custom form for your site's needs. Plus, integrate your contact forms with an email marketing service in just a few steps and collect payments with Stripe, PayPal, and Square for bookings and orders without the need for a dedicated eCommerce plugin. + +See what one business owner has to say about their WPForms contact form: + +>As a business owner, time is my most valuable asset. WPForms allows me to create smart contact forms with just a few clicks. With their pre-built form templates and the drag & drop builder, I can create a new form that works in less than 2 minutes without writing a single line of code. Well worth the investment.
              +> David Henzel - Co-founder of MaxCDN + += Surveys & Polls = + +Create custom survey forms like Survey Monkey. Our [WordPress survey plugin addon](https://wpforms.com/features/surveys-and-polls-addon?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) comes with smart survey fields including Likert scale, star ratings, and NPS. Embed your surveys and polls anywhere in WordPress. + +Use our survey reporting tools to customize graphs, export them for presentations, and display aggregate results. You can also share poll results instantly when collecting votes. + += Default WordPress Forms = + +Aside from building simple contact forms, WPForms also helps you create better default WordPress forms, like custom WordPress login forms and custom WordPress user registration forms. Create a password-protected contact form or even a members-only contact form. + +Bloggers and publishers can use our WordPress post submission forms to accept guest posts, testimonials, and more. + += Payment Forms, Donation Forms, Booking Forms, and More = + +While WPForms started out as a contact form plugin, it has evolved into a powerful custom forms solution for any type of payment or booking form. + +WPForms integrates with PayPal, Stripe, Square Payments, and Authorize.Net so you can easily accept credit card payments or take payments via PayPal. Bonus: you can also take signatures. + +We're proud to be a Stripe Verified Partner. This partnership allows us to build the best Stripe integration with early access to features. You can use our Stripe integration to accept both one-time payments as well as recurring payments while syncing all form data to your Stripe account. + += Custom Calculator Forms = + +Using the [WPForms Calculations addon](https://wpforms.com/features/calculations-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin), you can build custom formulas and display results on the frontend. + +Create simple arithmetic calculations or build complex conditional calculations with rounded values, averages, time ranges, and more! It's the best calculator plugin for WordPress. + += Forms Optimized for Conversions = + +With our Form Pages addon, you can create distraction-free custom form landing pages to increase conversions. + +To improve form completion rates, we created Conversational Forms which helps you make your feedback forms feel more human by adding an interactive layout. ([See Conversational Forms Demo](https://wpforms.com/features/conversational-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin)). + += Easy to Customize and Extend = + +You can easily customize your contact forms with our section dividers, HTML blocks, and CSS. Embedding forms in Elementor and Divi has never been easier thanks to our native integrations. + +We also know that our developer friends may want more control, so we added tons of hooks and filters. + += Full WPForms Feature List = + +* [Online form builder](https://wpforms.com/features/drag-drop-online-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) - powerful drag & drop contact form builder. Create WordPress contact forms, payment forms, and other online forms without writing any code. +* 100% mobile responsive. +* GDPR friendly. +* Payment Forms - Take payments, donations, down payments, recurring payments, service payments with our Stripe (FREE) integration. +* [Form templates](https://wpforms.com/templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) pre-built and ready to import. +* [Form styling](https://wpforms.com/docs/styling-your-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) for fields, labels, and buttons. +* [Spam protection](https://wpforms.com/features/spam-protection/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) built in, plus integrations with hCaptcha, Google reCAPTCHA, and Cloudflare Turnstile. +* [AI Forms](https://wpforms.com/features/wpforms-ai/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to automatically create and refine forms through natural conversation. +* [Instant form notifications](https://wpforms.com/features/instant-notifications/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) via email. +* [Custom form confirmations](https://wpforms.com/features/form-confirmation/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) with success messages or thank you pages. +* [Smart phone field](https://wpforms.com/docs/how-to-choose-the-right-form-field-for-your-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin#phone) that adapts to your visitor's location. +* [AI Choices](https://wpforms.com/features/wpforms-ai/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to automatically populate Multiple Choice, Checkboxes, and Dropdown field options. +* [Coupons](https://wpforms.com/features/coupons-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) for free shipping and sale discounts. +* [Calculator forms](https://wpforms.com/features/calculations-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) for payment, shipping, billing, and more. +* [File upload fields](https://wpforms.com/features/file-uploads/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) for user submissions. +* [Multi-page forms](https://wpforms.com/features/multi-page-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) with progress bars. +* [Smart conditional logic](https://wpforms.com/features/conditional-logic/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to show or hide fields. +* [Repeater field](https://wpforms.com/features/repeater-field/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) that enables the person filling out the form to easily add another field or group of fields to fill out. Perfect for group registration forms, custom order forms, and more. +* [Signatures](https://wpforms.com/features/digital-signatures/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) for agreements or payment forms. +* [User registration forms](https://wpforms.com/features/user-registration/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) and custom login forms. +* [Post submission forms](https://wpforms.com/features/post-submissions/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to collect user-generated content. +* [Geolocation](https://wpforms.com/features/geolocation-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to collect location data along with submissions. +* [Surveys and Polls](https://wpforms.com/features/surveys-and-polls-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) with interactive reports. +* [Form abandonment detection](https://wpforms.com/features/form-abandonment/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to collect partial form submissions. +* [Form locker](https://wpforms.com/features/form-locker-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to control access using passwords, dates, and more. +* [Offline forms](https://wpforms.com/features/offline-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to collect submissions without an internet connection. +* [Form landing pages](https://wpforms.com/features/form-pages-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to boost conversions. +* [Conversational forms](https://wpforms.com/features/conversational-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to boost overall completion rates. +* [Lead forms](https://wpforms.com/features/lead-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to get more submissions with multi-step layouts. +* [Webhooks](https://wpforms.com/features/webhooks-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to send data without third party connectors. +* [User Journey reports](https://wpforms.com/features/user-journey-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) so you know which content is driving form conversions. +* [Save and Resume](https://wpforms.com/features/save-and-resume-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to let visitors save and come back later. +* [Entry Automation](https://wpforms.com/features/entry-automation-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) to export and delete form entries on a daily, weekly, or monthly basis. + += Integrations = + +* [Google Sheets](https://wpforms.com/features/google-sheets-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Zapier](https://wpforms.com/features/zapier-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [PayPal Commerce](https://wpforms.com/features/paypal-commerce/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Stripe](https://wpforms.com/features/stripe-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) - We're a Stripe Verified Partner for Payments. +* [Square](https://wpforms.com/features/square-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Authorize.Net](https://wpforms.com/features/authorize-net-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Mailchimp](https://wpforms.com/features/mailchimp-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [AWeber](https://wpforms.com/features/aweber-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Campaign Monitor](https://wpforms.com/features/campaign-monitor-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [GetResponse](https://wpforms.com/features/getresponse-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Constant Contact](https://wpforms.com/features/constant-contact/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Airtable](https://wpforms.com/features/airtable-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Notion](https://wpforms.com/features/notion-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Drip](https://wpforms.com/features/drip-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [ActiveCampaign](https://wpforms.com/features/activecampaign-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [HubSpot](https://wpforms.com/features/hubspot-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Brevo](https://wpforms.com/features/brevo-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [MailerLite](https://wpforms.com/features/mailerlite-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [MailPoet](https://wpforms.com/features/mailpoet-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [ConvertKit](https://wpforms.com/features/convertkit-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Salesforce](https://wpforms.com/features/salesforce-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Slack](https://wpforms.com/features/slack-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Dropbox](https://wpforms.com/features/dropbox-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Google Calendar](https://wpforms.com/features/google-calendar-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Google Drive](https://wpforms.com/features/google-drive-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Twilio](https://wpforms.com/features/twilio-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Pipedrive](https://wpforms.com/features/pipedrive-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Make](https://wpforms.com/features/make-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Quiz](https://wpforms.com/features/quiz-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) +* [Zoho CRM](https://wpforms.com/features/zoho-crm-addon//?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) + +You can see why WPForms is the best WordPress contact form plugin on the market! Want to unlock these features? [Upgrade to our Pro version](https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin). + += Credits = + +This plugin is created by [Jared Atchison](https://www.jaredatchison.com/) and [Syed Balkhi](https://syedbalkhi.com/). + += Branding Guidelines = + +WPForms® is a registered trademark of WPForms LLC. When writing about the contact form plugin by WPForms, please make sure to uppercase the initial 3 letters. + +* WPForms (correct) +* WP Forms (incorrect) +* wpforms (incorrect) +* wpform (incorrect) + +== Installation == + +1. Install WPForms Lite either via the WordPress.org plugin repository or by uploading the files to your server. (See instructions on [how to install a WordPress plugin](https://www.wpbeginner.com/beginners-guide/step-by-step-guide-to-install-a-wordpress-plugin-for-beginners)) +2. Activate WPForms Lite. +3. Navigate to the WPForms tab at the bottom of your admin menu and click the "Add New" button to begin creating your new WordPress contact form. +4. Want more features? [Purchase the full version of WPForms](https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin)! + +== Screenshots == + +1. WPForms Drag & Drop Form Builder +2. Adding New Fields +3. Generate choices using AI +4. Form Templates +5. WPForms Block With Style Options +6. Payments Overview +7. Single Payment +8. Form Preview +9. Form Pages with Multiple Styles +10. Conversational Form + +== Frequently Asked Questions == + += Who should use WPForms? = + +WPForms is perfect for business owners, bloggers, designers, developers, photographers, and basically everyone else. If you want to create a custom WordPress form, then you need to use the WPForms drag & drop form builder. + += Do I need to have coding skills to use WPForms? = + +Absolutely not. You can create and manage forms without any coding knowledge (100% drag & drop form builder). WPForms is the most beginner-friendly contact form plugin on the market. + += What type of WordPress forms can I build with WPForms? = + +WPForms drag & drop form builder combined with our addons is the most powerful WordPress contact form plugin on the market. Here are some types of WordPress forms you can create: + +* Simple Contact Forms +* Job Application Contact Form +* Feedback Survey Contact Form +* Make a Suggestion Contact Form +* Change Request Forms +* Online Booking Forms +* Event Booking Form +* Video Release Forms +* PTO Request Contact Form +* Maintenance Request Contact Form +* Scholarship Application Forms +* File Download Forms +* Employment Verification Forms +* Make a Referral Contact Form +* Volunteer Registration Contact Form +* Offline Contact Form + +To see a full list, visit our [Form Template Gallery](https://wpforms.com/templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin), which has over 2000+ pre-made contact form templates. + += Which Form Fields Does WPForms offer? = + +We made the WPForms form builder to be both easy and powerful. + +Here are the contact form fields that come with WPForms Form Builder (also known as Standard Fields): + +* Text Field +* Paragraph Text (Textarea) +* Dropdown Field +* Multiple Choice (Radio Buttons) +* Checkboxes +* Numbers Field +* Name Field +* Email Address Field +* Number Slider Field + +Here is a list of our advanced contact form builder fields (Fancy Fields): + +* Smart Phone Field with international format verification +* Address Field +* Date / Time Field +* Website / URL Field +* File Upload - Great for File Upload Form +* Password Field +* Rich Text - Add a WYSIWYG field, perfect for guest blog post forms +* Layout Field - Position form fields inside columns using custom or premade layouts +* Repeater Field - Allow users to duplicate fields or groups of fields in your forms +* Page Break Field - Great for Multi-Page Contact Form with Progress Bar +* Section Divider - Great for Long Contact Forms +* HTML Field - add Custom HTML inside your form +* Content Field - Add headings, lists, and media to your forms without writing code +* Entry Preview - Allow your form users to preview their form entries before they've submitted them +* Star Rating - Great for Survey Forms and Polls +* Hidden Field +* Questions CAPTCHA - Great for Preventing Contact Form Spam +* Math CAPTCHA - Great for Preventing Contact Form Spam +* Likert Scale - Great for Survey Forms +* hCAPTCHA - Great for Preventing Contact Form Spam +* Cloudflare Turnstile - Great for Preventing Contact Form Spam +* Signature Field - Great for Contracts and Booking Forms +* Net Promoter Score (NPS Field) - Great for Survey Forms +* Google ReCAPTCHA - Great for Preventing Contact Form Spam + + +Here is a list of our Payment Fields that will help you create an order form, donation form, booking form, and other payment forms: + +* Single Item +* Multiple Items +* Checkbox Items +* Dropdown Items +* Total (Calculation Field) +* Credit Card (Stripe, Square, and Authorize.Net) +* PayPal + += Can I integrate WPForms with my CRM or Email Marketing Service? = + +Yes, WPForms offers seamless integration with over 1,000+ popular [email marketing](https://www.wpbeginner.com/showcase/best-email-marketing-services/) and [CRM software](https://www.wpbeginner.com/showcase/best-crm-software-for-small-businesses-compared/). + +You can easily send data from your contact form and other WordPress forms to your favorite CRM, email newsletter, and other marketing platforms. + +Here is a list of our popular marketing integrations: + +* Mailchimp +* Constant Contact +* AWeber +* Drip +* Campaign Monitor +* GetResponse +* ActiveCampaign +* Zapier +* Salesforce CRM +* Brevo (ex Sendinblue) +* MailerLite +* MailPoet + +Using our Zapier integration, you can easily connect WPForms with over 7,000+ marketing apps including: + +* PipeDrive CRM +* Google Sheets +* Active Campaign +* Zoho CRM +* Zoho Mail +* Zoho Invoice +* Agile CRM +* Slack +* Trello +* Infusionsoft by Keap +* Microsoft Excel +* Dropbox +* HelpScout +* Zendesk +* Freshbooks +* Freshsales +* Intercom +* Click Funnels +* Microsoft Dynamics 365 CRM +* Capsule CRM +* Insightly CRM +* Printfection +* Acuity Scheduling +* Quickbooks Online + +See all [WPForms Zapier Integrations](https://zapier.com/apps/wpforms/integrations). + +Note: WPForms was voted Zapier's 6th fastest-growing app in the world. + += Can I create a Payment Form with WPForms? = + +Yes, WPForms is not your average contact form plugin. You can use it to create any type of form including payment forms. + +We make it easy for you to accept payments using Stripe, Square, Authorize.Net, and PayPal Commerce. + +Both our Stripe and Authorize.Net integrations help you easily accept credit card payments online. + +Our PayPal integration allows you to accept PayPal payments online. + += Can I Import / Export Forms with WPForms? + +Yes, WPForms makes it easy to import / export your contact forms and other WordPress forms created with the WPForms form builder. This is incredibly useful for developers and agencies who are building websites for clients. + +You can also create custom form templates that you can use on client websites. For more see our documentation. + +Aside from that, WPForms also allows you to import forms from other WordPress Contact Form plugins such as Contact Form 7, Ninja Forms, and Pirate Forms. + +If you're not happy with your WordPress contact form plugin, then definitely give WPForms a try! + += I'd like access to all features. How can I get them? = + +You can get access to more features, addons, and support by [upgrading to our Pro version](https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin). Purchasing a Pro license gets you access to the full version of WPForms, automatic updates, priority support, and all WPForms Addons! + += Is WPForms translation ready? = + +Yes, WPForms has full translation and localization support via the wpforms textdomain. Based on your site language, required .mo and .po translation files will be downloaded and placed into the default WordPress languages directory. The same is true for every WPForms Addon, as well. + += Does WPForms include spam protection? = + +Yes, WPForms includes spam protection which is enabled on all forms by default in the form settings. + +Additionally, Google reCAPTCHA, hCaptcha, and Cloudflare Turnstile are also supported and can be set up at WPForms > Settings > CAPTCHA. + +WPForms is fully compatible with all versions of Google reCAPTCHA: + +* Checkbox reCAPTCHA v2 +* Invisible reCAPTCHA v2 +* reCAPTCHA v3 + +Lastly, [Custom Captchas](https://wpforms.com/features/spam-protection//?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) are available which allow you to create math- or question-based CAPTCHAs for your contact forms. + +== Notes == + +WPForms is absolutely, positively the most [beginner-friendly WordPress contact form plugin](https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin) on the market. It is both easy and powerful. + +We took the pain out of creating online forms and made it easy. Check out all [WPForms features](https://wpforms.com/features/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin). + +Also, I'm the founder of [WPBeginner](https://www.wpbeginner.com/), the largest WordPress resource site for beginners. It was a huge priority for me to make a WordPress contact form plugin that beginners can use without any training. + +I feel that we have done that here. I hope you enjoy using WPForms. + +Thank you, + +Syed Balkhi + +== Changelog == + += 1.9.9.2 = +- Added: WordPress Abilities API integration for AI and automation-ready access to WPForms. +- Added: Ability to generate Quiz-enabled forms using the AI Form generator. +- Added: Support for multiple fields selection: you can now drag, duplicate, or delete multiple fields at once. +- Added: Keyboard shortcuts for field duplication (D), field removal (Delete), copy (Ctrl/Cmd + C), and paste (Ctrl/Cmd + V). +- Added: Undo/redo command manager with modular integrations for Form Builder inputs. +- Added: Divi 5 compatibility and a new block for the Divi page builder. +- Changed: Put the plugin on a diet – performed a cleanup, reducing plugin size. +- Changed: Improved compatibility with the MotoPress Content Editor plugin. +- Changed: Updated Chart.js library to v4.5.1. +- Fixed: Selected form type was not retained when refreshing the Forms Overview page. +- Fixed: Deprecation error with PHP 8.4 that occurred during WPForms installation. +- Fixed: Form creation via Form AI for users without manage_options capability. +- Fixed: Deprecation warning being logged in the browser console on the Dashboard admin page. +- Fixed: Fixed PHP 8.4 deprecated error in Stripe integration related to nullable parameter type declaration. +- Fixed: From Email/Name fields appeared blank for new notifications when WP Mail SMTP force settings were enabled. +- Fixed: The collapsible block height in the builder to be consistent with other fields. +- Fixed: Disabled field option toggle remained interactive. + += 1.9.8.7 = +- Fixed: A fatal error occurred on the admin dashboard with some third-party plugins. +- Fixed: Prevented loading of Divi assets on pages not containing a form. +- Fixed: Compatibility with the LeadConnector plugin. +- Fixed: Integration icons were misaligned on the Form Builder page. + += 1.9.8.4 = +- Added: Ability to hide choice images notifications. +- Added: Ability to set a user-defined choice for the Multiple Choice field. +- Changed: Updated DOMPurify library to 3.2.7. +- Changed: Updated Font Awesome library to 7.0.1. +- Changed: Validation of Custom Meta Keys on the Form Builder > Payments > Stripe screen. +- Fixed: Form Builder preview container height in empty state. +- Fixed: A conflict occurred when a non-Google captcha was used in the form and the Google reCAPTCHA API was loaded on the same page. +- Fixed: A fatal error in `wpforms_is_admin_page()` that occurred when the page request parameter was passed as an array instead of a string. +- Fixed: Console error when installing WPForms via a Block in the Block Editor. + += 1.9.8.2 = +- Fixed: Form Builder preview container height with empty state. + += 1.9.8.1 = +- Added: Ability to disconnect Stripe accounts through the Settings > Payments admin page. +- Added: Ability to set how many times a Stripe recurring payment will be repeated. +- Added: Back To Previous Page option for Confirmation Page Redirect. +- Changed: Improved accessibility for the Modern Dropdown field by adding ARIA attributes to support VoiceOver navigation. +- Changed: Notification email fields in the Form Builder now only display email-compatible Smart Tags. +- Fixed: PHP warnings might be generated for new forms created from a template by non-admin users. +- Fixed: Disabled fields (read-only) didn't look disabled. +- Fixed: Smart Tag fields in the sidebar had incorrect height. +- Fixed: The last step of the WPForms Challenge wasn't shown up for users in some cases. +- Fixed: Header Menu Links position has been adjusted to be on the same level on every screen. +- Fixed: Duplicated Square field button existed in the Form Builder. +- Fixed: Form authors with no capabilities to install addons did not get information about missing privileges. +- Fixed: HTMLPurifier threw a deprecated API call notice. +- Fixed: Users with no sufficient access permissions were able to display a broken Themes settings panel. +- Fixed: Custom CSS with quotes in selectors now displays correctly instead of showing broken HTML entities. +- Fixed: Pinned AI Chat layout in the Form Builder. +- Fixed: Log titles having apostrophes in them were not displayed correctly in the Log Viewer. +- Fixed: There might be errors when processing Stripe payments with customer metadata containing empty keys. + += 1.9.7.2 = +- Fixed: JS errors might affect the form submission on some environments with installed plugins for caching. + += 1.9.7.1 = +- Added: Ability to apply Styles and Themes directly within the WPForms Form Builder. +- Added: Ability to copy whole Smart Tags input content if it contains smart tags. +- Added: Number field validation messages control on the Settings > Validation page. +- Added: The Choices Limit option for the Payment Checkbox Items field. +- Added: Warning message in case corrupted form data is detected in the form builder. +- Changed: Optimized the calculation process of the total amount on payment forms. +- Changed: Improved compatibility with PHP 8.4. +- Changed: Improved error message in case 403 error occurred while saving a form. +- Changed: Improved compatibility with the Paid Memberships Pro plugin. +- Fixed: The spacing between the template badge and the form name was too small. +- Fixed: Square Credit Card field error was still displayed after entering valid details. +- Fixed: Various RTL problems on the form builder screen. + += 1.9.6.2 = +- Fixed: "Please enable JavaScript" message was displayed over a form even when JavaScript was enabled. + += 1.9.6.1 = +- Added: Smart Tags support in the Default Value setting for Name field subfields. +- Fixed: WPForms updates did not work consistently with the WP Umbrella plugin. +- Fixed: The layout of the Order Summary table was broken on Windows operating systems. +- Fixed: The layout of the Stripe custom fields mapping table was broken in the form builder. + += 1.9.6 = +- Added: Form Themes for Elementor. +- Added: Customer phone, Payment, and Customer metadata can now be configured on the Form Builder > Payments > Stripe screen. +- Changed: Improved styles on Tools > Scheduled Actions page with reset search filter. +- Changed: Improved Form Builder loading. +- Changed: Required select fields have default placeholder text to prevent the submission of default values. +- Changed: Improved message about missing PHP extensions. +- Changed: Updated DOMPurify library to 3.2.6. +- Fixed: Captcha verification was skipped for payment forms. +- Fixed: Email notification was malformed when a form had a Total field with the "Order Summary" enabled. +- Fixed: The marketing provider's name was not specified in the warning popup when a field with conditional logic was removed. +- Fixed: An error occurred when installing a plugin through the Gutenberg block. +- Fixed: Addon fields were not rendered on the front-end on multisite if addons were not activated site-wide. +- Fixed: Missing popup about unsaved changes when closing the form from the Marketing tab. +- Fixed: Compatibility with Elementor editor. +- Fixed: The "Plugin is in the Latest Version" error occurred when updating several addons using bulk update on the Plugins page. +- Fixed: There was no popup about unsaved changes displayed after typing into the MCE editor. +- Fixed: Layout issues of the Square credit card field. +- Fixed: JavaScript error occurred when a form was added in the Elementor popup. +- Fixed: Fields were added to the form in the wrong order under some conditions. + += 1.9.5.2 = +- Fixed: Issue sending form notifications using email fields that had ID=0. + += 1.9.5.1 = +- Fixed: AJAX request for Stripe payments was sent twice, which might lead to missed entries and payment records. +- Fixed: `{field_id="#"}` smart tag didn't work for CC field in email notifications. +- Fixed: Email notification was misformatted when the form had a Total field with the "Order Summary" enabled. + += 1.9.5 = +- IMPORTANT: Support for PHP 7.1 has been discontinued. If you are running PHP 7.1, you MUST upgrade PHP before installing WPForms 1.9.5. Failure to do that will disable WPForms core functionality. +- Added: Users can connect their Square accounts and receive payments via their payment forms. +- Added: New design for Smart Tags. +- Added: The ability to activate and deactivate email notifications through a status button in the form builder. +- Changed: Enhancing the prevention of duplicate form submissions. +- Changed: Improved the error messaging when creating new provider connections in the form builder. +- Changed: Improved the "From Email" setting validation in the Notifications screen. +- Changed: AI Chat Modal can be docked to the right of the builder. +- Changed: The order of the admin bar menu items. +- Changed: Improved compatibility with PHP 8.1. +- Changed: Improved UX for Dropdown and Dropdown Items fields. +- Fixed: Hidden by conditional logic items in the Order Summary table were shown in the Editors. +- Fixed: Stripe settings were active when the credit card field was removed from the form. +- Fixed: The notice for the minimum and maximum valid values of the Number Slider field is now correct. +- Fixed: WPForms Challenge RTL issues. +- Fixed: Incorrect wpforms_htaccess_file transient name generation. +- Fixed: Console error when users tried to embed a form into an existing page on the last step of the WPForms Challenge. +- Fixed: The submit button stays disabled after Stripe payment fails in some cases. +- Fixed: The Dropdown and Dropdown Items fields displayed placeholders instead of default values in the Form Builder. +- Fixed: Wrong paddings in the Form Builder sidebar on Windows in the RTL mode. +- Fixed: Improved the From Email notification setting. The Email field is detected now by a smart tag. +- Fixed: Improved notification template for the {entry_geolocation} smart tag. + += 1.9.4.2 = +- Fixed: Fatal error when trying to delete the plugin. +- Fixed: Character encoding issues in Email notifications when viewed on some Apple devices. + += 1.9.4.1 = +- Added: Minimum and maximum value validation for the Numbers field. +- Added: Implemented password protection and user access restrictions for uploaded files. +- Added: Automatic preview page reload was added after saving. +- Changed: Improved Gutenberg block UI by hiding settings when no form is selected. +- Changed: Updated stripe/stripe-php library to 16.5.0. +- Changed: Enhanced Tools > Scheduled Actions visibility for better compatibility with Action Scheduler, WooCommerce, and WP Rocket plugins. +- Changed: Improved Stripe payments customer address handling. +- Changed: Optimized number slider calculations for better decimal precision. +- Changed: Improved Numbers and Number Slider fields settings interface in the form builder. +- Fixed: Stripe Credit Card field payment element console warnings. +- Fixed: Resolved form submission debug log warnings. +- Fixed: URL referer smart tag functionality for external websites. +- Fixed: Addressed GDPR enhancements setting flashings on refresh. +- Fixed: Resolved Stripe payments processing for Indian accounts. +- Fixed: Corrected Payments Summary chart tooltip display. +- Fixed: Improved decimal precision in number slider field calculations. +- Fixed: Enhanced WPForms admin pages performance. +- Fixed: Backslash handling in form data after saving. +- Fixed: Prevented duplicate entry submissions with reCAPTCHA v3. +- Fixed: Restored missing Order Summary item names for hidden label fields. +- Fixed: Improved Order Summary performance with conditional Multiple Items fields. +- Fixed: Dynamic Choice fields button behavior. +- Fixed: Display of zero-price Payment Checkbox items. +- Fixed: Stripe Credit Card field styling in Divi builder. +- Fixed: Fatal error with a custom country address scheme. + += 1.9.3.2 = +- Fixed: GDPR enhancements sub-setting briefly flashed on the WPForms > Settings admin page after refresh. + += 1.9.3.1 = +- IMPORTANT: Support for PHP 7.0 has been discontinued. If you are running PHP 7.0, you MUST upgrade PHP before installing WPForms 1.9.3. Failure to do that will disable WPForms core functionality. +- Added: Ability to open the Form Builder with a specific section via URL parameter. +- Added: Support for Block API versions 2 and 3. +- Added: Support for the Constant Contact API v3. +- Added: Quick page navigation on the Forms Overview page. +- Added: Direct access to Tools sections from WPForms top admin menu. +- Changed: Updated stripe/stripe-php library to 16.3.0. +- Changed: Updated DOMPurify library to 3.2.3. +- Changed: Optimized Order Summary table display on mobile devices. +- Changed: Improved date formatting consistency in payments table. +- Changed: Removed dynamic missing translation fix to improve performance. +- Fixed: Tooltip text overlap in Choices.js dropdowns with long tags. +- Fixed: Default payment choice label visibility in order summary table. +- Fixed: Hidden single item field visibility in Order Summary table. +- Fixed: Unnecessary CSS variables output on pages without forms. +- Fixed: Toggle icon status glitch on the payments settings section. +- Fixed: Submit button text handling with empty values. +- Fixed: Non-Latin characters have been stripped from the URL when used in {page_url} and {url_referer} smart tags. +- Fixed: Block Editor field compatibility. +- Fixed: Warning appeared in the debug.log when non-string data were erroneously sent to translation. +- Fixed: Custom validation message display for sub-fields. +- Fixed: Stripe Credit Card field in Elementor popups. +- Fixed: Submit button default label handling. +- Fixed: An error was happening when removing “Copy / Paste Style Settings” in Elementor and Block editor. +- Fixed: The “Copy / Paste Style Settings” field default value was empty when adding an Elementor WPForms block. +- Fixed: Error handler improvements. +- Fixed: Some emails were not added to Constant Contact integration. +- Fixed: The WPForms Challenge steps were shown in the AI Form Generator panel. +- Fixed: PHP 7.1 and 7.2 compatibility. + += 1.9.2.3 = +- Changed: Creating a custom form theme is now available only to Administrators. +- Fixed: Translated form action notices had an "s" letter appended to the form/template translated name. +- Fixed: The Minimum time to submit setting consistently blocked form submissions on sites created in WordPress Studio. +- Fixed: The '_load_textdomain_just_in_time was called incorrectly' error with child themes. +- Fixed: In rare cases, a fatal error could happen on plugin activation. + += 1.9.2.2 = +- Fixed: _load_textdomain_just_in_time notice with WordPress 6.7. +- Fixed: Some translations were empty with WordPress 6.5+. + += 1.9.2.1 = +- Added: The Settings section in the WPForms admin bar menu. +- Added: Update Stripe payments status after canceling a refund in the Stripe dashboard. +- Added: Open the URL in the new tab for Confirmations. +- Added: New `$row_id` parameter to the `wpforms_pre_update_{$type}` and `wpforms_post_update_{$type}` actions. +- Added: AI chat warning messages if prohibited code has been removed. +- Changed: Updated jquery.validate library to 1.21.0. +- Changed: Updated stripe/stripe-php library to 16.1.0. +- Changed: Updated DOMPurify library to 3.1.7. +- Changed: Updated woocommerce/action-scheduler library to 3.8.2. +- Changed: Updated Chart.js library to v4.4.4. +- Changed: Smart tags are no longer processed in WordPress builders, such as Gutenberg, Elementor, Divi Builder, etc. +- Fixed: There was a potential infinite recursion in error handling. +- Fixed: Improved performance on the Templates page in the Form Builder. +- Fixed: Field labels were printed in the Order Summary table when the Hide Label option was enabled. +- Fixed: In some cases, adding a new account in Form Builder did not load the account data correctly. +- Fixed: Improved translation handling for addon names and descriptions. +- Fixed: Order Summary performance issue on large forms containing numerous payment conditional logic fields. +- Fixed: Mapped First/Last Name sub-fields were replaced by another after the initial field was deleted. +- Fixed: An extra field was displayed when WPForms were embedded using a shortcode in the Footer. +- Fixed: The non-Latin characters were not supported for the AI Choices prompt. + += 1.9.1.6 = +- Fixed: The Dropdown field placeholder was disabled on the Divi Builder preview screen. +- Fixed: When sending a form with an incorrect nonce field, no error was displayed. +- Fixed: An extra field was displayed when a form was embedded using a shortcode in the Footer. + += 1.9.1.5 = +- Fixed: PHP warnings appeared with WordPress widgets. + += 1.9.1.4 = +- Fixed: Multiple sending of weekly summary emails. + += 1.9.1.3 = +- Fixed: HTML tags didn't work in an agreement text of the GDPR field when a field's label was hidden. +- Fixed: HTML tags in choices of the Checkboxes, Multiple Choice, and Dropdown fields were escaped and didn't work as expected. + += 1.9.1.2 = +- Fixed: There was a conflict with the WooCommerce Subscriptions plugin. + += 1.9.1.1 = +- Added: State-of-the-art generative AI can help to build forms even faster. +- Added: New supported currencies. +- Added: New `wpforms_html_field_name` filter that allows modifying field labels in email notifications. +- Changed: Improved the UI for multiple dropdown elements in various places of the admin area. +- Changed: Updated Stripe Subscription to use the plan name as the description. +- Changed: Notice in the WPForms > Settings > Payments admin page when a selected currency is not supported by Stripe. +- Changed: WPForms admin notices are now sorted by type. +- Changed: Improved the Modern Dropdown field UI across the Block and Elementor editors. +- Changed: Updated DOMPurify library to 3.1.6. +- Changed: Updated `stripe/stripe-php` library to 15.8.0. +- Changed: Improved RTL support of plugin admin pages. +- Changed: Improved compatibility with Full Site Editor and Gutenberg plugin. +- Changed: Improved performance on admin pages. +- Changed: Form Builder: Alt+S shortcut toggles the sidebar on Windows and Linux. Ctrl+F shortcut has been improved to always open search field. +- Fixed: Resolved W3C validation error for the Order Summary table. +- Fixed: Fixed RTL display issues for submit spinner and payment fields with quantity enabled. +- Fixed: Resolved pagination button issues for WordPress versions 6.6 and higher. +- Fixed: Incorrect price was displayed in the Order Summary table for some currencies when the Single Item field with 'user defined' type was used. +- Fixed: Improved mobile responsiveness of the price column in the Order Summary table. +- Fixed: "The cron event list could not be saved" error could appear in the debug.log file in certain cases. +- Fixed: WPForms script was not defined in the Elementor popup. +- Fixed: Compatibility with the Jetpack Boost plugin. +- Fixed: PHP notice generated on the Single Payment screen in some cases. +- Fixed: Search on WPForms –> Tools –> Scheduled Actions page redirected users to the Import Screen. +- Fixed: The `wpforms_weekly_entries_count_cron` task was reporting an error in the debug log. +- Fixed: Resolved W3C errors and warnings reported for the Standard fields. +- Fixed: The browser tab could crash if the WPForms block was used with patterns. +- Fixed: The Order Summary text was not readable in some form themes when the `{order_summary}` smart tag was used in the Confirmation message. +- Fixed: Submit button hover styles were overridden in some themes and Elementor. +- Fixed: The "Missing 'wpforms' dependency" error appeared on pages without a form. + += 1.9.0.4 = +- Fixed: Unable to send a form with Constant Contact integration and fatal errors in the admin. + += 1.9.0.3 = +- Fixed: Compatibility issues with menus and popups on Elementor. +- Fixed: A fatal error with wp_remote_retrieve_headers occurred in CacheBase.php in some cases. +- Fixed: Compatibility with the Jetpack Boost plugin. + += 1.9.0.2 = +- Added: Modern Antispam protection for new forms. +- Added: Support conditional logic in the Layout field and add the ability to render the label and description for this field. +- Added: The notification to check prices is added when the currency is switched. +- Added: The new filter `wpforms_sanitize_amount_before` to filter a raw price amount before sanitization. +- Added: The new filter `wpforms_sanitize_amount` to filter a sanitized price amount. +- Added: The new filter `wpforms_enable_form_data_slashing` to enable the form data slashing. +- Added: The new filter `wpforms_frontend_js_header_force_load`allows the loading of JS assets in the header. +- Changed: Improved automatic recreation of custom database tables. +- Changed: Improved RTL support of plugin admin pages on desktop and mobile screens. +- Changed: Smart Tags for the Name field now allow retrieving partial data, such as Last Name. +- Changed: Improved layout of the Settings > Integrations page on small screens. +- Changed: Added notices for the Default value and Allowlist/Denylist settings on the Email field in case some values were invalid and have been removed. +- Changed: Improved the multi-select dropdowns UI across the Builder UI. +- Changed: Updated `stripe/stripe-php` library to v15.1.0. +- Changed: Updated `woocommerce/action-scheduler` library to v3.8.1. +- Changed: Allowed using the `&` symbol in Modern style Dropdown field choices. +- Changed: Improved compatibility with the WP JobSearch plugin. +- Changed: Updated `jQuery.Validate` library to v1.20.1. +- Changed: Updated `inputmask` library to v5.0.9. +- Fixed: Stripe payment form couldn't be submitted in the Elementor popup preview. +- Fixed: The Trash, Duplicate, Restore, and Delete actions for templates and forms now display a notice with the correct type. +- Fixed: Multiple Choice, Checkboxes, and Dropdown fields with empty values were displayed incorrectly in email notifications. +- Fixed: Database error on a single network site after creating a form if the plugin was network activated. +- Fixed: Fields reacted by hovering over them with the cursor on the Elementor editor screen. +- Fixed: Modern Dropdown fields were not appropriately loaded on Block (Gutenberg) and Elementor editors. +- Fixed: Forms with hidden labels had a big horizontal scrollbar when displayed on mobile with RTL languages. +- Fixed: Conditional logic affected the print page, which did not display hidden fields. +- Fixed: The RTE field was broken in the Elementor editor preview when the left menu was collapsed. +- Fixed: Rare exception with how we registered translations for download using the respective transient. +- Fixed: Pre-populating fields from another form with confirmation redirect URL was not handling multi-select fields. +- Fixed: The Gutenberg editor was not displaying the page title using Smart Tags. +- Fixed: The {page_url}Smart Tag value was wrong on the Gutenberg editor's page. +- Fixed: When all the provider's connections were removed, the check icon remained in the provider title. +- Fixed: The `{page_url}`Smart Tag was incorrect in the Divi builder. +- Fixed: Modern Dropdown fields didn't preview correctly for multiple instances of WPForms block on the Gutenberg editor's page. +- Fixed: The choice-based payment field Smart Tags didn't work in the prefilled URL. +- Fixed: In Dropdown, the & symbol was rendered as the corresponding HTML entity `&` for Modern Style. +- Fixed: The modern dropdown field was not loading correctly on the Elementor popup. +- Fixed: Empty forms couldn't be submitted without enabling the "Minimum time for submit" setting. +- Fixed: Switching to Live mode on the Payments Overview screen was impossible when all test payments were deleted. +- Fixed: Dropdown and Checkbox fields with multiple values were inline in email notifications. +- Fixed: Pressing the Enter key triggered the WPForms Insert Form modal in the Classic editor. +- Fixed: Dropdown field in forms with the `inline-fields` class had cropped dropdowns on Safari. +- Fixed: Payment quantity text was not centered on some themes. +- Fixed: Some fields were visible in the email notifications even if they were hidden by Conditional Logic. +- Fixed: The Robots.txt file wasn't valid due to the WPForms disallow rule. +- Fixed: After embedding to the new page, the `{page_title}` Smart Tag was empty in the Block Editor (Gutenberg). + += 1.8.9.6 = +- Changed: Improved compatibility with OceanWP theme. +- Fixed: Dropdown fields in forms with the `inline-fields` class had cropped dropdowns. +- Fixed: Button's hover color was wrong on the Ocean WP theme. +- Fixed: Form couldn't be submitted when Cloudflare Turnstile anti-spam integration was configured. + += 1.8.9.5 = +- Fixed: Stripe payment wasn't created when the Credit Card field was optional and users paid through Google Pay / Apple Pay. + += 1.8.9.4 = +- Added: New filter wpforms_sanitize_amount_before to filter a raw price amount before sanitization. +- Added: New filter wpforms_sanitize_amount to filter a sanitized price amount. + += 1.8.9.2 = +- Fixed: Reply-to field was not returning the correct email address. + += 1.8.9.1 = +- Added: Complex fields now can have separate error messages for each field. +- Added: Recommended, New, and Featured addons are now displayed first on the addons page. +- Changed: The Campaign Monitor, ConstantContact, GetResponse and ConvertKit logos were updated. +- Changed: Users can now see the category and subcategory of the selected template on the Setup panel. +- Changed: If Akismet is installed and configured for the form, marking entries as spam or not spam helps Akismet learn. +- Changed: Improved the behavior of Tools > Logs page and settings controls. +- Changed: Improved compatibility with the Hello Elementor theme. +- Changed: Process empty selected values for Choices, Checkbox, and Dropdown fields when Show Values option is selected. +- Changed: Choices.js library has been updated to v10.2.0. +- Changed: Modern multiple select field with search enabled now is more user-friendly across the admin area. +- Changed: Improved rendering of Payment Fields according to W3C requirements. +- Changed: Always display templates added by addons, even if the addon is not installed or activated. +- Changed: The form builder now hides the placeholder label for Image and Icon choices when left empty, while retaining the placeholder for Payment Choices and Checkboxes to maintain consistency with frontend behavior. +- Fixed: Incorrect alert modal was shown on the subscription plan removal in some cases. +- Fixed: Various RTL problems on the form builder screen. +- Fixed: The minimum payment amount for the Single Item field was not functioning correctly with currencies that use a comma as a decimal separator. +- Fixed: Validation error for the Postal code of the Stripe Credit Card field displayed twice. +- Fixed: Inconsistent spacing of Dropdown field in different browsers on desktop and mobile. +- Fixed: Stripe Credit Card field had incorrect placeholder color with Classic Markup. +- Fixed: Updated the WPForms Challenge to only start counting when you actually begin creating a form on the Forms Overview page. +- Fixed: User templates were not deleted on plugin uninstall. +- Fixed: The radio of the Multiple Choice field wasn't centered in Firefox. +- Fixed: Stripe processing error occurred on a multi-payments form when all credit card fields were hidden by conditional logic. +- Fixed: Color of validation errors was incorrect for the Stripe Credit Card field when Payment Element mode was used. +- Fixed: Additional padding was added for the form title on the Forms Overview page on mobile. +- Fixed: The plugin update process redirected to the Update page and did not redirect back to the Plugins page after the update. +- Fixed: The fetching of the new plugin version number and new plugin description has been run not-synchronously. +- Fixed: MySQL errors occurred when creating a table in some unique configurations. +- Fixed: Multiple Choice field with Icon Choices could not be selected in Firefox after reloading the page. +- Fixed: Inline javascript code could be parsed improperly and displayed as text on top pages for some configurations. +- Fixed: Cached token was not updated properly. +- Fixed: The Spinner layout of the Save button in the Form Builder was not centered. +- Fixed: In some exceptions, one-time payments appeared in the Stripe dashboard even though a payment form wasn't submitted. +- Fixed: Email notifications were not sent when a subject was empty after smart tag processing. +- Fixed: PHP warnings might have occurred in some cases on PHP 8.0+. +- Fixed: Upgrade to the Pro link had wrong styling on Bluehost hosted sites. +- Fixed: WPForms block in the editor showed an error when the selected form was trashed or deleted. +- Fixed: Some Stripe transactions were refunded almost immediately as the transactions were labeled fraudulent. +- Fixed: The validation process of Number Slider field could throw a fatal error on PHP 8.0+. + += 1.8.8.3 = +- Changed: Updated jQuery.Validate library to v1.20.0. +- Fixed: Screen Options on the Forms Overview and Entries Overview pages could cause PHP error in rare cases due to conflict with 3rd-party code. +- Fixed: Post Statuses on legacy Nav Menu management page could cause PHP error in rare cases due to conflict with 3rd-party code. +- Fixed: users couldn't duplicate their forms. + += 1.8.8.2 = +- Added: Forms can now be saved as user templates for future use. +- Added: New `Price Display` option was added for Single Item payment field. +- Added: Shipping and Billing addresses can now be configured on the Form Builder > Payments > Stripe screen. +- Added: New filter `wpforms_integrations_stripe_api_common_create_plan_name` to filter Stripe subscription plan name. +- Added: New filter `wpforms_integrations_lite_connect_api_request_timeout` to filter Lite Connect request timeout. +- Added: New styling/theming settings in the Block editor. +- Added: New context menu in the Form Builder for quick actions. +- Changed: New design for the Email Summaries email template with a weekly total and entry submission trends. +- Changed: The state of selected stat cards on the Payments Overview chart is preserved when applying date filtering. +- Changed: Updated `stripe/stripe-php` library to v13.15.0. +- Changed: Updated `woocommerce/action-scheduler` library to v3.7.2. +- Changed: Updated DOMPurify library to 3.0.9. +- Changed: Adjusted notifications on the empty forms screen. +- Changed: HTML tags are allowed in the Order Summary for the Total payment field. +- Changed: When the entry is marked as not spam, submit data to Akismet for learning and help make the Web a better place for everyone. +- Changed: Improved error handling when creating or updating a form. +- Changed: Improved fields layout on the frontend for better user experience on mobile devices. +- Changed: Bring the frontend markup of the form more in line with the W3C standards to reduce validator errors. +- Fixed: Various RTL problems in the admin dashboard, form builder and a form preview page. +- Fixed: Various responsive issues on admin pages. +- Fixed: The Paragraph field was allowed horizontal resizing. +- Fixed: Make sure we output valid robots.txt file rules if the file is empty. +- Fixed: PHP notices were thrown in some cases when Stripe subscription renewals were created. +- Fixed: Customer email was shown instead of customer name on the Payments Overview screen for Stripe subscription renewals in some cases. +- Fixed: The builder sidebar was hidden on the context menu edit actions. +- Fixed: Fatal error was thrown on the frontend with corrupted form data. +- Fixed: `0` (zero) as a choices field raw value was not saved. +- Fixed: The payment single field had the wrong spacing with enabled quantities. +- Fixed: Long placeholders being broken into multiple lines after Safari 17.3.1 update. +- Fixed: Media upload did not work in some cases on mobile devices. +- Fixed: Placeholder option was hidden for the Single Item field with 'user defined' type. +- Fixed: Incorrect prices in the Order Summary table when items in the Checkbox Items field had the hyphen symbol. +- Fixed: Modern multiple select fields with long placeholder text overlapped a drop-down arrow. +- Fixed: Infinite loading button was shown on mobile devices in some cases. +- Fixed: Multisite activation: plugin should stay activated on a single site after user activated it on a network level. +- Fixed: There was a race condition with invisible reCaptcha v2, preventing form submission in some edge cases. +- Fixed: Elementor widget styles were broken due to a conflict with the Gutenberg block. +- Fixed: Some unnecessary inline styles were applied for email notifications with HTML tags. +- Fixed: Payment fields weren't reflected properly in the Order Summary table in some cases. +- Fixed: WPCode Install/Activate modal and Entries Education Modal now look better on mobile screens. +- Fixed: `{author_*}` smart tags were returning incorrect results in some cases. +- Fixed: Incorrect styles were applied for "Order Summary" table in some cases. +- Fixed: Improved handling of corrupted payment submission data. + += 1.8.7.2 = +- Changed: "What's New" modal should be displayed based on the major version of the plugin. +- Changed: Improved Akismet integration efficiency. +- Fixed: Antispam token was passed as a simple form field, not protected from spam bots. +- Fixed: PHP warning was thrown in case of anonymous form submission when User ID smart tag was used. +- Fixed: Image positioning in the "What's New" blocks wasn't always correct. +- Fixed: Modal windows were not displayed on small screens. +- Fixed: The animation for opening the "What's New" modal worked improperly when the modal had small content. +- Fixed: The background was not entirely dimmed when scrolling the "What's New" popup. + += 1.8.7.1 = +- Added: The Announcements block in the Community page. +- Added: New way to expand the Form Templates subcategories list in the templates list sidebar. +- Added: New splash screen outlining notable features and changes in the release. +- Added: The user can see an overview of what they are purchasing by enabling the Order Summary for the Total payment field. +- Added: New `{order_summary}` smart tag. +- Changed: Improved compatibility with Twenty Twenty-Three theme. +- Changed: Improved plugin activation on WordPress multisite setups with both Lite and Pro versions installed. +- Changed: Improved support of sites hosted in the Azure platform using IIS. +- Changed: Updated DOMPurify library to 3.0.8. +- Changed: Removed `jquery-confirm` library in favor of jQuery.Confirm Reloaded drop-in replacement. +- Changed: Spam protection token is valid now for 3 days instead of 2. +- Changed: Spam protection token is no longer loaded with JS to avoid fails caused by script errors. +- Changed: Storing spam entries is now enabled by default for new forms. +- Changed: Users with limited capabilities are allowed to view the Forms Templates and Addons pages. +- Updated: `tijsverkoyen/css-to-inline-style` library to v2.2.7. +- Updated: `symphony/polyfill-iconv` library to v1.19.0. +- Updated: `symphony/polyfill-mbstring` library to v1.19.0. +- Updated: `woocommerce/action-scheduler` library to v3.7.1. +- Updated: `stripe/stripe-php` library to v13.9.0. +- Fixed: Some background actions could fail if triggered by WP-CLI via server cron. +- Fixed: Fatal error may occur in rare cases during migrations if they were triggered manually. +- Fixed: Read-only Number fields should not display spin buttons. +- Fixed: The Icons Choices field with a Large size was not centered in the Block Editor and Elementor. +- Fixed: Two messages appeared when clicking on the reCAPTCHA field after searching the fields in the Builder. +- Fixed: A form with a long title expanded the form selector dropdown in the Block Editor. +- Fixed: CSS Styles were not applied if Global Colors were already selected in Elementor Builder. +- Fixed: Payment method details were not stored for Stripe renewals. +- Fixed: The template page had style issues in the German language. +- Fixed: The Elementor popup preview had broken WPForms styles. +- Fixed: In some situations, payment amounts were improperly sanitized. +- Fixed: Some modals across the admin area were not responsive and did not fit on smaller screen sizes. +- Fixed: Templates' cache wasn't updated after the plugin update. +- Fixed: RTL support for WPForms Settings page. +- Fixed: RTL support for the Form Builder. +- Fixed: Some frontend fields were improperly rendered for RTL. +- Fixed: The user interface had different other issues when RTL language was in use. +- Fixed: The Form Builder settings screen had multiple visual issues when RTL language was used. +- Fixed: AJAX calls didn't work on servers with empty `$_SERVER['HTTP_REFERER']` value. +- Fixed: Improved Forms overview page display on mobile devices. +- Fixed: Improved Tools pages display on mobile devices. +- Fixed: Custom Captcha settings were duplicated on the Form Builder when the field was added through the Settings > Spam and Security screen. +- Fixed: Localization issues were present on the Get Started screen. +- Fixed: Subscriptions made by the Stripe Link payment method before 1.8.6. +- Fixed: Some non-optimized MySQL requests locked the database for seconds on huge sites with thousands of tables. +- Fixed: The Appearance of multiple dropdown values was incorrect. +- Fixed: Some information was missing if Smart Tags were processed in the background via cron. +- Fixed: The recent Chrome version for Windows was not displaying the custom scrollbars correctly. +- Fixed: `wpforms_plaintext_field_value` filter was unavailable since 1.8.5 version. +- Fixed: The form submission triggered an error on sites with long-term page caching. + +[See changelog for all versions](https://plugins.svn.wordpress.org/wpforms-lite/trunk/changelog.txt). diff --git a/wp-content/plugins/wpforms-lite/src/API.php b/wp-content/plugins/wpforms-lite/src/API.php new file mode 100644 index 0000000..5d166d0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/API.php @@ -0,0 +1,52 @@ +get( 'class' ). + * + * @todo Add non-static methods processing. + * + * @since 1.8.6 + * + * @var array[] + */ + private $registry = [ + 'import_forms' => [ + 'class' => Import::class, + 'method' => 'import_forms', + ], + ]; + + /** + * Magic method to call a method from registry. + * + * @since 1.8.6 + * + * @param string $name Method name. + * @param array $args Arguments. + * + * @return mixed|null + */ + public function __call( string $name, array $args ) { + + $callback = $this->registry[ $name ] ?? null; + + if ( $callback === null ) { + return null; + } + + return call_user_func( [ $callback['class'], $callback['method'] ], ...$args ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Access/Capabilities.php b/wp-content/plugins/wpforms-lite/src/Access/Capabilities.php new file mode 100644 index 0000000..9015d28 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Access/Capabilities.php @@ -0,0 +1,62 @@ +allow_load() ) { + return; + } + + $this->cache = wpforms()->obj( 'addons_cache' ); + + global $pagenow; + + // Force update addons cache if we are on the update-core.php page. + // This is necessary to update addons data while checking for all available updates. + if ( $pagenow === 'update-core.php' ) { + $this->cache->update( true ); + } + + $this->addons = $this->cache->get(); + + $this->populate_addons_data(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.6 + */ + protected function hooks() { + + global $pagenow; + + /** + * Fire before admin addons init. + * + * @since 1.6.7 + */ + do_action( 'wpforms_admin_addons_init' ); + + // Filter Gettext only on Plugin list and Updates pages. + if ( $pagenow === 'update-core.php' || $pagenow === 'plugins.php' ) { + add_action( 'gettext', [ $this, 'filter_gettext' ], 10, 3 ); + } + } + + /** + * Get all addons data as array. + * + * @since 1.6.6 + * + * @param bool $force_cache_update Determine if we need to update cache. Default is `false`. + * + * @return array + */ + public function get_all( bool $force_cache_update = false ) { + + if ( ! $this->allow_load() ) { + return []; + } + + if ( $force_cache_update ) { + $this->cache->update( true ); + + $this->addons = $this->cache->get(); + } + + // WPForms 1.8.7 core includes Custom Captcha. + // The Custom Captcha addon will only work on WPForms 1.8.6 and earlier versions. + unset( $this->addons['wpforms-captcha'] ); + + return $this->get_sorted_addons(); + } + + /** + * Get sorted addons data. + * Recommended addons will be displayed first, + * then new addons, then featured addons, + * and then all other addons. + * + * @since 1.8.9 + * + * @return array + */ + private function get_sorted_addons(): array { + + if ( empty( $this->addons ) ) { + return []; + } + + $recommended = array_filter( + $this->addons, + static function ( $addon ) { + + return ! empty( $addon['recommended'] ); + } + ); + + $new = array_filter( + $this->addons, + static function ( $addon ) { + + return ! empty( $addon['new'] ); + } + ); + + $featured = array_filter( + $this->addons, + static function ( $addon ) { + + return ! empty( $addon['featured'] ); + } + ); + + return array_merge( $recommended, $new, $featured, $this->addons ); + } + + /** + * Get filtered addons data. + * + * Usage: + * ->get_filtered( $this->addons, [ 'category' => 'payments' ] ) - addons for the payments panel. + * ->get_filtered( $this->addons, [ 'license' => 'elite' ] ) - addons available for 'elite' license. + * + * @since 1.6.6 + * + * @param array $addons Raw addons data. + * @param array $args Arguments array. + * + * @return array Addons data filtered according to given arguments. + */ + private function get_filtered( array $addons, array $args ): array { + + $args = wp_parse_args( + $args, + [ + 'category' => '', + 'license' => '', + ] + ); + + $args = array_map( 'strtolower', $args ); + + $filtered_addons = []; + + foreach ( $addons as $addon ) { + foreach ( $args as $arg_key => $arg_value ) { + $addon_value = wpforms_array_get_by_path( $addon, $arg_key, '' ); + + if ( + is_array( $addon_value ) && + // We cannot use preg_quote here, as $arg_value could contain regex like 'crm|email-marketing|integration'. + preg_grep( '/^' . $arg_value . '$/', $addon_value ) + ) { + $filtered_addons[] = $addon; + } + } + } + + return $filtered_addons; + } + + /** + * Get available addons data by category. + * + * @since 1.6.6 + * + * @param string $category Addon category. + * + * @return array. + */ + public function get_by_category( string $category ) { + + return $this->get_by_path( 'category', $category ); + } + + /** + * Get available addons data by path. + * + * @since 1.9.8.6 + * + * @param string $path Path in addons multidimensional array. + * May be 'category' or 'form_builder.category' or 'settings_integrations.category', etc. + * @param string $value Addons multidimensional array value we are looking for in the path. + * + * @return array + */ + public function get_by_path( string $path, $value ): array { + + return $this->get_filtered( $this->get_available(), [ $path => $value ] ); + } + + /** + * Get available addons data by license. + * + * @since 1.6.6 + * + * @param string $license Addon license. + * + * @return array. + * @noinspection PhpUnused + */ + public function get_by_license( string $license ) { + + return $this->get_filtered( $this->get_available(), [ 'license' => $license ] ); + } + + /** + * Get available addons data by slugs. + * + * @since 1.6.8 + * + * @param array|mixed $slugs Addon slugs. + * + * @return array + */ + public function get_by_slugs( $slugs ) { + + if ( empty( $slugs ) || ! is_array( $slugs ) ) { + return []; + } + + $result_addons = []; + + foreach ( $slugs as $slug ) { + $addon = $this->get_addon( $slug ); + + if ( ! empty( $addon ) ) { + $result_addons[] = $addon; + } + } + + return $result_addons; + } + + /** + * Get available addon data by slug. + * + * @since 1.6.6 + * + * @param string|bool $slug Addon slug can be both "wpforms-drip" and "drip". + * + * @return array Single addon data. Empty array if addon is not found. + */ + public function get_addon( $slug ) { + + $slug = (string) $slug; + $slug = 'wpforms-' . str_replace( 'wpforms-', '', sanitize_key( $slug ) ); + + $addon = $this->get_available()[ $slug ] ?? []; + + // In case if addon is "not available" let's try to get and prepare addon data from all addons. + if ( empty( $addon ) ) { + $addon = ! empty( $this->addons[ $slug ] ) ? $this->prepare_addon_data( $this->addons[ $slug ] ) : []; + } + + return $addon; + } + + /** + * Check if addon is active. + * + * @since 1.8.9 + * + * @param string $slug Addon slug. + * + * @return bool + */ + public function is_active( string $slug ): bool { + + $addon = $this->get_addon( $slug ); + + return isset( $addon['status'] ) && $addon['status'] === 'active'; + } + + /** + * Get license level of the addon. + * + * @since 1.6.6 + * + * @param array|string $addon Addon data array OR addon slug. + * + * @return string License level: pro | elite. + */ + private function get_license_level( $addon ) { + + if ( empty( $addon ) ) { + return ''; + } + + $levels = [ self::BASIC, self::PLUS, self::PRO, self::ELITE, self::AGENCY, self::ULTIMATE ]; + $license = ''; + $addon_license = $this->get_addon_license( $addon ); + + foreach ( $levels as $level ) { + if ( in_array( $level, $addon_license, true ) ) { + $license = $level; + + break; + } + } + + if ( empty( $license ) ) { + return ''; + } + + return in_array( $license, [ self::BASIC, self::PLUS, self::PRO ], true ) ? self::PRO : self::ELITE; + } + + /** + * Get addon license. + * + * @since 1.8.2 + * + * @param array|string $addon Addon data array OR addon slug. + * + * @return array + */ + private function get_addon_license( $addon ) { + + $addon = is_string( $addon ) ? $this->get_addon( $addon ) : $addon; + + return $this->default_data( $addon, 'license', [] ); + } + + /** + * Determine if a user's license level has access. + * + * @since 1.6.6 + * + * @param array|string $addon Addon data array OR addon slug. + * + * @return bool + */ + protected function has_access( $addon ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + return false; + } + + /** + * Return array of addons available to display. All data is prepared and normalized. + * "Available to display" means that addon needs to be displayed as an education item (addon is not installed or not activated). + * + * @since 1.6.6 + * + * @return array + */ + public function get_available() { + + static $available_addons = []; + + if ( $available_addons ) { + return $available_addons; + } + + if ( empty( $this->addons ) || ! is_array( $this->addons ) ) { + return []; + } + + $available_addons = array_map( [ $this, 'prepare_addon_data' ], $this->addons ); + $available_addons = array_filter( + $available_addons, + static function ( $addon ) { + + return isset( $addon['status'], $addon['plugin_allow'] ) && ( $addon['status'] !== 'active' || ! $addon['plugin_allow'] ); + } + ); + + return $available_addons; + } + + /** + * Prepare addon data. + * + * @since 1.6.6 + * + * @param array|mixed $addon Addon data. + * + * @return array Extended addon data. + */ + protected function prepare_addon_data( $addon ) { + + if ( empty( $addon ) ) { + return []; + } + + $addon['title'] = $this->default_data( $addon, 'title', '' ); + $addon['slug'] = $this->default_data( $addon, 'slug', '' ); + + // We need the cleared name of the addon, without the 'addon' suffix, for further use. + $addon['name'] = preg_replace( '/ addon$/i', '', $addon['title'] ); + + $addon['modal_name'] = sprintf( /* translators: %s - addon name. */ + esc_html__( '%s addon', 'wpforms-lite' ), + $addon['name'] + ); + $addon['clear_slug'] = str_replace( 'wpforms-', '', $addon['slug'] ); + $addon['utm_content'] = ucwords( str_replace( '-', ' ', $addon['clear_slug'] ) ); + $addon['license'] = $this->default_data( $addon, 'license', [] ); + $addon['license_level'] = $this->get_license_level( $addon ); + $addon['icon'] = $this->default_data( $addon, 'icon', '' ); + $addon['path'] = sprintf( '%1$s/%1$s.php', $addon['slug'] ); + $addon['video'] = $this->default_data( $addon, 'video', '' ); + $addon['plugin_allow'] = $this->has_access( $addon ); + $addon['status'] = 'missing'; + $addon['action'] = 'upgrade'; + $addon['page_url'] = $this->default_data( $addon, 'url', '' ); + $addon['doc_url'] = $this->default_data( $addon, 'doc', '' ); + $addon['url'] = ''; + + static $nonce = ''; + $nonce = empty( $nonce ) ? wp_create_nonce( 'wpforms-admin' ) : $nonce; + $addon['nonce'] = $nonce; + + return $addon; + } + + /** + * Get default data. + * + * @since 1.8.2 + * + * @param array|mixed $addon Addon data. + * @param string $key Key. + * @param mixed $default_data Default data. + * + * @return array|string|mixed + */ + private function default_data( $addon, string $key, $default_data ) { + + if ( is_string( $default_data ) ) { + return ! empty( $addon[ $key ] ) ? $addon[ $key ] : $default_data; + } + + if ( is_array( $default_data ) ) { + return ! empty( $addon[ $key ] ) ? (array) $addon[ $key ] : $default_data; + } + + return $addon[ $key ] ?? ''; + } + + /** + * Populate addons data. + * + * @since 1.9.2 + * + * @return void + */ + private function populate_addons_data() { + + foreach ( $this->addons as $addon ) { + $this->addons_text_domains[] = $addon['slug']; + $this->addons_titles[] = 'WPForms ' . str_replace( ' Addon', '', $addon['title'] ); + } + } + + /** + * Filter Gettext. + * + * This filter allows us to prevent empty translations from being returned + * on the `plugins` page for addon name and description. + * + * @since 1.9.2 + * + * @param string|mixed $translation Translated text. + * @param string|mixed $text Text to translate. + * @param string|mixed $domain Text domain. + * + * @return string Translated text. + */ + public function filter_gettext( $translation, $text, $domain ): string { + + $translation = (string) $translation; + $text = (string) $text; + $domain = (string) $domain; + + if ( ! in_array( $domain, $this->addons_text_domains, true ) ) { + return $translation; + } + + // Prevent empty translations from being returned and don't translate addon names. + if ( ! trim( $translation ) || in_array( $text, $this->addons_titles, true ) ) { + $translation = $text; + } + + return $translation; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Addons/AddonsCache.php b/wp-content/plugins/wpforms-lite/src/Admin/Addons/AddonsCache.php new file mode 100644 index 0000000..7dff361 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Addons/AddonsCache.php @@ -0,0 +1,137 @@ + $this->get_remote_source(), + + // Addons cache file name. + 'cache_file' => 'addons.json', + + /** + * Time-to-live of the addons cache file in seconds. + * + * This applies to `uploads/wpforms/cache/addons.json` file. + * + * @since 1.6.8 + * + * @param integer $cache_ttl Cache time-to-live, in seconds. + * Default value: WEEK_IN_SECONDS. + */ + 'cache_ttl' => (int) apply_filters( 'wpforms_admin_addons_cache_ttl', WEEK_IN_SECONDS ), + + // Scheduled update action. + 'update_action' => 'wpforms_admin_addons_cache_update', + ]; + } + + /** + * Get remote source URL. + * + * @since 1.8.9 + * + * @return string + */ + protected function get_remote_source(): string { + + return defined( 'WPFORMS_ADDONS_REMOTE_SOURCE' ) ? WPFORMS_ADDONS_REMOTE_SOURCE : self::REMOTE_SOURCE; + } + + /** + * Prepare addons data to store in a local cache - + * generate addons icon image file name for further use. + * + * @since 1.6.6 + * + * @param array $data Raw addons data. + * + * @return array Prepared data for caching (with icons). + */ + protected function prepare_cache_data( $data ): array { + + if ( empty( $data ) || ! is_array( $data ) ) { + return []; + } + + $addons_cache = []; + + foreach ( $data as $addon ) { + + // Addon icon. + $addon['icon'] = str_replace( 'wpforms-', 'addon-icon-', $addon['slug'] ) . '.png'; + + // Special case when plugin addon renamed, for instance: + // Sendinblue to Brevo, or ConvertKit to Kit, + // but we keep the old slug for compatibility. + foreach ( + [ + 'wpforms-sendinblue' => [ + 'old' => 'sendinblue', + 'new' => 'brevo', + ], + 'wpforms-convertkit' => [ + 'old' => 'convertkit', + 'new' => 'kit', + ], + ] as $slug => $renamed + ) { + if ( $addon['slug'] === $slug ) { + $addon['icon'] = str_replace( $renamed['old'], $renamed['new'], $addon['icon'] ); + } + } + + // Use slug as a key for further usage. + $addons_cache[ $addon['slug'] ] = $addon; + } + + return $addons_cache; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/AdminBarMenu.php b/wp-content/plugins/wpforms-lite/src/Admin/AdminBarMenu.php new file mode 100644 index 0000000..0fdc5dc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/AdminBarMenu.php @@ -0,0 +1,712 @@ +has_access() ) { + return; + } + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.6.0 + */ + public function hooks() { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_css' ] ); + add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_css' ] ); + add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_js' ] ); + + add_action( 'admin_bar_menu', [ $this, 'register' ], 999 ); + add_action( 'wpforms_wp_footer_end', [ $this, 'menu_forms_data_html' ] ); + } + + /** + * Determine whether the current user has access to see the admin bar menu. + * + * @since 1.6.0 + * + * @return bool + */ + public function has_access(): bool { + + $access = false; + + if ( + is_admin_bar_showing() && + wpforms_current_user_can() && + ! wpforms_setting( 'hide-admin-bar', false ) + ) { + $access = true; + } + + /** + * Filters whether the current user has access to see the admin bar menu. + * + * @since 1.6.0 + * + * @param bool $access Whether the current user has access to see the admin bar menu. + */ + return (bool) apply_filters( 'wpforms_admin_adminbarmenu_has_access', $access ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Determine whether new notifications are available. + * + * @since 1.6.0 + * + * @return bool + */ + public function has_notifications() { + + return wpforms()->obj( 'notifications' )->get_count(); + } + + /** + * Enqueue CSS styles. + * + * @since 1.6.0 + */ + public function enqueue_css() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-admin-bar', + WPFORMS_PLUGIN_URL . "assets/css/admin-bar{$min}.css", + [], + WPFORMS_VERSION + ); + + // Apply WordPress pre/post 5.7 accent color, only when admin bar is displayed on the frontend or we're + // inside the Form Builder - it does not load some WP core admin styles, including themes. + if ( wpforms_is_admin_page( 'builder' ) || ! is_admin() ) { + wp_add_inline_style( + 'wpforms-admin-bar', + sprintf( + '#wpadminbar .wpforms-menu-notification-counter, #wpadminbar .wpforms-menu-notification-indicator { + background-color: %s !important; + color: #ffffff !important; + }', + version_compare( get_bloginfo( 'version' ), '5.7', '<' ) ? '#ca4a1f' : '#d63638' + ) + ); + } + } + + /** + * Enqueue JavaScript files. + * + * @since 1.6.5 + */ + public function enqueue_js() { + + wp_add_inline_script( + 'admin-bar', + "( function() { + function wpforms_admin_bar_menu_init() { + var template = document.getElementById( 'tmpl-wpforms-admin-menubar-data' ), + notifications = document.getElementById( 'wp-admin-bar-wpforms-notifications' ); + + if ( ! template ) { + return; + } + + if ( ! notifications ) { + var menu = document.getElementById( 'wp-admin-bar-wpforms-menu-default' ); + + if ( ! menu ) { + return; + } + + menu.insertAdjacentHTML( 'afterBegin', template.innerHTML ); + } else { + notifications.insertAdjacentHTML( 'afterend', template.innerHTML ); + } + }; + document.addEventListener( 'DOMContentLoaded', wpforms_admin_bar_menu_init ); + }() );", + 'before' + ); + } + + /** + * Register and render admin bar menu items. + * + * @since 1.6.0 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function register( WP_Admin_Bar $wp_admin_bar ) { + + $items = (array) apply_filters( + 'wpforms_admin_adminbarmenu_register', + [ + 'main_menu', + 'notification_menu', + 'all_forms_menu', + 'add_new_menu', + 'all_payments_menu', + 'settings_menu', + 'tools_menu', + 'community_menu', + 'support_menu', + ], + $wp_admin_bar + ); + + foreach ( $items as $item ) { + + $this->{ $item }( $wp_admin_bar ); + + do_action( "wpforms_admin_adminbarmenu_register_{$item}_after", $wp_admin_bar ); + } + + $this->register_settings_submenu( $wp_admin_bar ); + $this->register_tools_submenu( $wp_admin_bar ); + } + + /** + * Register Settings submenu. + * + * @since 1.9.2 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + private function register_settings_submenu( WP_Admin_Bar $wp_admin_bar ) { + + /** + * Filters the Settings submenu items. + * + * @since 1.9.2 + * + * @param array $items Array of submenu items. + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + $items = (array) apply_filters( + 'wpforms_admin_bar_menu_register_settings_submenu', + [ + 'wpforms-general-settings' => [ + 'title' => __( 'General', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=general', + ], + 'wpforms-email-settings' => [ + 'title' => __( 'Email', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=email', + ], + 'wpforms-captcha-settings' => [ + 'title' => __( 'CAPTCHA', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=captcha', + ], + 'wpforms-validation-settings' => [ + 'title' => __( 'Validation', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=validation', + ], + 'wpforms-payments-settings' => [ + 'title' => __( 'Payments', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=payments', + ], + 'wpforms-integrations-settings' => [ + 'title' => __( 'Integrations', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=integrations', + ], + 'wpforms-geolocation-settings' => [ + 'title' => __( 'Geolocation', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=geolocation', + ], + 'wpforms-access-settings' => [ + 'title' => __( 'Access Control', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=access', + ], + 'wpforms-misc-settings' => [ + 'title' => __( 'Misc', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-settings&view=misc', + ], + ], + $wp_admin_bar + ); + + foreach ( $items as $item_id => $args ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-settings', + 'id' => sanitize_key( $item_id ), + 'title' => esc_html( $args['title'] ), + 'href' => admin_url( $args['path'] ), + ] + ); + + /** + * Fires after the Settings submenu item is registered. + * + * @since 1.9.2 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + do_action( "wpforms_admin_bar_menu_register_settings_submenu_{$item_id}_after", $wp_admin_bar ); + } + } + + /** + * Register Tools submenu. + * + * @since 1.9.3 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + private function register_tools_submenu( WP_Admin_Bar $wp_admin_bar ) { + + /** + * Filters the Tools submenu items. + * + * @since 1.9.3 + * + * @param array $items Array of submenu items. + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + * + * @return array + */ + $items = (array) apply_filters( + 'wpforms_admin_bar_menu_register_tools_submenu', + [ + 'wpforms-tools-import' => [ + 'title' => esc_html__( 'Import', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=import', + ], + 'wpforms-tools-export' => [ + 'title' => esc_html__( 'Export', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=export', + ], + 'wpforms-tools-entry-automation' => [ + 'title' => esc_html__( 'Entry Automation', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=entry-automation', + ], + 'wpforms-tools-system' => [ + 'title' => esc_html__( 'System Info', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=system', + ], + 'wpforms-tools-action-scheduler' => [ + 'title' => esc_html__( 'Scheduled Actions', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms', + ], + 'wpforms-tools-logs' => [ + 'title' => esc_html__( 'Logs', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=logs', + ], + 'wpforms-tools-wpcode' => [ + 'title' => esc_html__( 'Code Snippets', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=wpcode', + ], + ], + $wp_admin_bar + ); + + foreach ( $items as $item_id => $args ) { + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-tools', + 'id' => sanitize_key( $item_id ), + 'title' => esc_html( $args['title'] ), + 'href' => admin_url( $args['path'] ), + ] + ); + + /** + * Fires after the Tools submenu item is registered. + * + * @since 1.9.2 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + do_action( "wpforms_admin_bar_menu_register_tools_submenu_{$item_id}_after", $wp_admin_bar ); + } + + $this->register_action_scheduler_submenu( $wp_admin_bar ); + } + + /** + * Register Action Scheduler submenu. + * + * @since 1.9.3 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + private function register_action_scheduler_submenu( WP_Admin_Bar $wp_admin_bar ) { + + /** + * Filters the Action Scheduler submenu items. + * + * @since 1.9.3 + * + * @param array $items Array of submenu items. + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + * + * @return array + */ + $items = apply_filters( + 'wpforms_admin_bar_menu_register_action_scheduler_submenu', + [ + 'wpforms-tools-action-scheduler-all' => [ + 'title' => esc_html__( 'View All', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&orderby=hook&order=desc', + ], + 'wpforms-tools-action-scheduler-complete' => [ + 'title' => esc_html__( 'Completed Actions', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=complete&orderby=hook&order=desc', + ], + 'wpforms-tools-action-scheduler-failed' => [ + 'title' => esc_html__( 'Failed Actions', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=failed&orderby=hook&order=desc', + ], + 'wpforms-tools-action-scheduler-pending' => [ + 'title' => esc_html__( 'Pending Actions', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=pending&orderby=hook&order=desc', + ], + 'wpforms-tools-action-scheduler-past-due' => [ + 'title' => esc_html__( 'Past Due Actions', 'wpforms-lite' ), + 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=past-due&orderby=hook&order=desc', + ], + ], + $wp_admin_bar + ); + + foreach ( $items as $item_id => $args ) { + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-tools-action-scheduler', + 'id' => sanitize_key( $item_id ), + 'title' => esc_html( $args['title'] ), + 'href' => admin_url( $args['path'] ), + ] + ); + + /** + * Fires after the Action Scheduler submenu item is registered. + * + * @since 1.9.3 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + do_action( "wpforms_admin_bar_menu_register_action_scheduler_submenu_{$item_id}_after", $wp_admin_bar ); + } + } + + /** + * Render primary top-level admin bar menu item. + * + * @since 1.6.0 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function main_menu( WP_Admin_Bar $wp_admin_bar ) { + + $indicator = ''; + $notifications = $this->has_notifications(); + + if ( $notifications ) { + $count = $notifications < 10 ? $notifications : '!'; + $indicator = '
              ' . $count . '
              '; + } + + $wp_admin_bar->add_menu( + [ + 'id' => 'wpforms-menu', + 'title' => 'WPForms' . $indicator, + 'href' => admin_url( 'admin.php?page=wpforms-overview' ), + ] + ); + } + + /** + * Render Notifications admin bar menu item. + * + * @since 1.6.0 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function notification_menu( WP_Admin_Bar $wp_admin_bar ) { + + if ( ! $this->has_notifications() ) { + return; + } + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-notifications', + 'title' => esc_html__( 'Notifications', 'wpforms-lite' ) . '
              ', + 'href' => admin_url( 'admin.php?page=wpforms-overview' ), + ] + ); + } + + /** + * Render All Forms admin bar menu item. + * + * @since 1.6.0 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function all_forms_menu( WP_Admin_Bar $wp_admin_bar ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-forms', + 'title' => esc_html__( 'All Forms', 'wpforms-lite' ), + 'href' => admin_url( 'admin.php?page=wpforms-overview' ), + ] + ); + } + + /** + * Render All Payments admin bar menu item. + * + * @since 1.8.4 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function all_payments_menu( WP_Admin_Bar $wp_admin_bar ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-payments', + 'title' => esc_html__( 'Payments', 'wpforms-lite' ), + 'href' => add_query_arg( + [ + 'page' => 'wpforms-payments', + ], + admin_url( 'admin.php' ) + ), + ] + ); + } + + /** + * Render Add New admin bar menu item. + * + * @since 1.6.0 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function add_new_menu( WP_Admin_Bar $wp_admin_bar ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-add-new', + 'title' => esc_html__( 'Add New Form', 'wpforms-lite' ), + 'href' => admin_url( 'admin.php?page=wpforms-builder' ), + ] + ); + } + + /** + * Render Settings admin bar menu item. + * + * @since 1.9.2 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function settings_menu( WP_Admin_Bar $wp_admin_bar ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-settings', + 'title' => esc_html__( 'Settings', 'wpforms-lite' ), + 'href' => admin_url( 'admin.php?page=wpforms-settings' ), + ] + ); + } + + /** + * Add Tools menu to the admin bar. + * + * @since 1.9.3 + * + * @param WP_Admin_Bar $wp_admin_bar The admin bar object. + */ + public function tools_menu( WP_Admin_Bar $wp_admin_bar ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-tools', + 'title' => esc_html__( 'Tools', 'wpforms-lite' ), + 'href' => admin_url( 'admin.php?page=wpforms-tools' ), + ] + ); + } + + /** + * Render Community admin bar menu item. + * + * @since 1.6.0 + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function community_menu( WP_Admin_Bar $wp_admin_bar ) { + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-community', + 'title' => esc_html__( 'Community', 'wpforms-lite' ), + 'href' => 'https://www.facebook.com/groups/wpformsvip/', + 'meta' => [ + 'target' => '_blank', + 'rel' => 'noopener noreferrer', + ], + ] + ); + } + + /** + * Render Support admin bar menu item. + * + * @since 1.6.0 + * @since 1.7.4 Update the `Support` item title to `Help Docs`. + * + * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. + */ + public function support_menu( WP_Admin_Bar $wp_admin_bar ) { + + $href = add_query_arg( + [ + 'utm_campaign' => wpforms()->is_pro() ? 'plugin' : 'liteplugin', + 'utm_medium' => 'admin-bar', + 'utm_source' => 'WordPress', + 'utm_content' => 'Documentation', + ], + 'https://wpforms.com/docs/' + ); + + $wp_admin_bar->add_menu( + [ + 'parent' => 'wpforms-menu', + 'id' => 'wpforms-help-docs', + 'title' => esc_html__( 'Help Docs', 'wpforms-lite' ), + 'href' => $href, + 'meta' => [ + 'target' => '_blank', + 'rel' => 'noopener noreferrer', + ], + ] + ); + } + + /** + * Get form data for JS to modify the admin bar menu. + * + * @since 1.6.5 + * @since 1.8.4 Added the View Payments link. + * + * @param array $forms Forms array. + * + * @return array + */ + protected function get_forms_data( $forms ) { + + $data = [ + 'has_notifications' => $this->has_notifications(), + 'edit_text' => esc_html__( 'Edit Form', 'wpforms-lite' ), + 'entry_text' => esc_html__( 'View Entries', 'wpforms-lite' ), + 'payment_text' => esc_html__( 'View Payments', 'wpforms-lite' ), + 'survey_text' => esc_html__( 'Survey Results', 'wpforms-lite' ), + 'forms' => [], + ]; + + $admin_url = admin_url( 'admin.php' ); + + foreach ( $forms as $form ) { + $form_id = absint( $form['id'] ); + + if ( empty( $form_id ) ) { + continue; + } + + /* translators: %d - form ID. */ + $form_title = sprintf( esc_html__( 'Form ID: %d', 'wpforms-lite' ), $form_id ); + + if ( ! empty( $form['settings']['form_title'] ) ) { + $form_title = wp_html_excerpt( + sanitize_text_field( $form['settings']['form_title'] ), + 99, + '…' + ); + } + + $has_payments = wpforms()->obj( 'payment' )->get_by( 'form_id', $form_id ); + + $data['forms'][] = apply_filters( + 'wpforms_admin_adminbarmenu_get_form_data', + [ + 'form_id' => $form_id, + 'title' => $form_title, + 'edit_url' => add_query_arg( + [ + 'page' => 'wpforms-builder', + 'view' => 'fields', + 'form_id' => $form_id, + ], + $admin_url + ), + 'payments_url' => $has_payments ? add_query_arg( + [ + 'page' => 'wpforms-payments', + 'form_id' => $form_id, + ], + $admin_url + ) : '', + ] + ); + } + + return $data; + } + + /** + * Add form(s) data to the page. + * + * @since 1.6.5 + * + * @param array $forms Forms array. + */ + public function menu_forms_data_html( $forms ) { + + if ( empty( $forms ) ) { + return; + } + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'admin-bar-menu', + [ + 'forms_data' => $this->get_forms_data( $forms ), + ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/DataObjects/ColumnBase.php b/wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/DataObjects/ColumnBase.php new file mode 100644 index 0000000..6d7f681 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/DataObjects/ColumnBase.php @@ -0,0 +1,155 @@ +id = $id; + $this->label = $settings['label'] ?? ''; + $this->label_html = empty( $settings['label_html'] ) ? $this->label : $settings['label_html']; + $this->is_draggable = $settings['draggable'] ?? true; + $this->type = empty( $settings['type'] ) ? $id : $settings['type']; + $this->readonly = $settings['readonly'] ?? false; + } + + /** + * Get column ID. + * + * @since 1.8.6 + * + * @return string|int + */ + public function get_id() { + + return $this->id; + } + + /** + * Get column label. + * + * @since 1.8.6 + * + * @return string + */ + public function get_label(): string { + + return $this->label; + } + + /** + * Get column label HTML. + * + * @since 1.8.6 + * + * @return string + */ + public function get_label_html(): string { + + return $this->label_html; + } + + /** + * Get the column type. + * + * @since 1.8.6 + * + * @return string + */ + public function get_type(): string { + + return $this->type; + } + + /** + * Is column draggable. + * + * @since 1.8.6 + * + * @return bool + */ + public function is_draggable(): bool { + + return $this->is_draggable; + } + + /** + * Is column readonly. + * + * @since 1.8.6 + * + * @return bool + */ + public function is_readonly(): bool { + + return $this->readonly; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/Facades/ColumnsBase.php b/wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/Facades/ColumnsBase.php new file mode 100644 index 0000000..d827557 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Base/Tables/Facades/ColumnsBase.php @@ -0,0 +1,85 @@ +'; + + foreach ( $links as $slug => $link ) { + self::render_link( $slug, $link ); + } + + echo ''; + } + + /** + * Render a single link. + * + * @since 1.9.7 + * + * @param string $slug The slug for the link. + * @param array $link The link data. + */ + private static function render_link( string $slug, array $link ): void { + + $url = $link['url'] ?? '#'; + $text = $link['text'] ?? ''; + $class = $link['class'] ?? ''; + $target = $link['target'] ?? '_self'; + $icon = $link['icon'] ?? ''; + + printf( + '%6$s%5$s', + esc_url( $url ), + esc_attr( $target ), + esc_attr( $slug ), + esc_attr( $class ), + esc_html( $text ), + wp_kses( + $icon, + [ + 'svg' => [ + 'xmlns' => true, + 'width' => true, + 'height' => true, + 'viewbox' => true, + 'fill' => true, + ], + 'path' => [ + 'd' => true, + 'fill' => true, + ], + ] + ) + ); + } + + /** + * Get links. + * + * @since 1.9.7 + * + * @param array $utm_params UTM parameters to append to links. + * + * @return array + */ + private static function get_links( array $utm_params ): array { + + return [ + 'docs' => [ + 'url' => self::get_utm_link( + 'https://wpforms.com/docs/', + $utm_params['docs'] ?? [] + ), + 'text' => esc_html__( 'Docs', 'wpforms-lite' ), + 'target' => '_blank', + 'icon' => '', + ], + 'videos' => [ + 'url' => 'https://www.youtube.com/@wpforms/videos', + 'text' => esc_html__( 'Videos', 'wpforms-lite' ), + 'target' => '_blank', + 'icon' => '', + ], + 'support' => [ + 'url' => wpforms()->is_pro() ? + self::get_utm_link( + 'https://wpforms.com/account/support/', + $utm_params['support'] ?? [] + ) : 'https://wordpress.org/support/plugin/wpforms-lite/', + 'text' => wpforms()->is_pro() ? esc_html__( 'Support', 'wpforms-lite' ) : esc_html__( 'Support Forum', 'wpforms-lite' ), + 'target' => '_blank', + 'icon' => wpforms()->is_pro() ? + '' : + '', + ], + 'whats-new' => [ + 'text' => esc_html__( 'What’s New', 'wpforms-lite' ), + 'class' => 'wpforms-splash-modal-open', + 'icon' => '', + ], + ]; + } + + /** + * Get UTM link. + * + * @since 1.9.7 + * + * @param string $url The URL to which UTM parameters will be added. + * @param array $utm_params UTM parameters to append to the URL. + * + * @return string + */ + private static function get_utm_link( string $url, array $utm_params ): string { + + return wpforms_utm_link( + $url, + $utm_params['medium'] ?? '', + $utm_params['content'] ?? '', + $utm_params['term'] ?? '' + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Addons.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Addons.php new file mode 100644 index 0000000..7a74bca --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Addons.php @@ -0,0 +1,382 @@ + [ + 'calculation_code', + 'calculation_code_js', + 'calculation_code_php', + 'calculation_is_enabled', + ], + 'form-locker' => [ + 'unique_answer', + ], + 'geolocation' => [ + 'display_map', + 'enable_address_autocomplete', + 'map_position', + ], + 'surveys-polls' => [ + 'survey', + ], + 'quiz' => [ + 'quiz_enabled', + 'choices' => [ + 'quiz_personality', + 'quiz_weight', + ], + ], + ]; + + /** + * Initialize. + * + * @since 1.9.2 + * + * @noinspection ReturnTypeCanBeDeclaredInspection + */ + public function init() { + + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.2 + */ + private function hooks(): void { + + add_filter( 'wpforms_save_form_args', [ $this, 'save_disabled_addons_options' ], 10, 3 ); + } + + + /** + * Field's options added by an addon can be deleted when the addon is deactivated or have incompatible status. + * The options are fully controlled by the addon when addon is active and compatible. + * + * @since 1.9.2 + * + * @param array|mixed $post_data Post data. + * + * @return array + */ + public function save_disabled_addons_options( $post_data ): array { + + $post_data = (array) $post_data; + $form_obj = wpforms()->obj( 'form' ); + $form_data = json_decode( stripslashes( $post_data['post_content'] ?? '' ), true ); + $form_id = $form_data['id'] ?? ''; + + if ( ! $form_obj || ! $form_id ) { + return $post_data; + } + + $previous_form_data = $form_obj->get( $form_id, [ 'content_only' => true ] ); + $not_validated_addons = Requirements::get_instance()->get_not_validated_addons(); + + if ( empty( $previous_form_data ) || empty( $not_validated_addons ) ) { + return $post_data; + } + + foreach ( $not_validated_addons as $path ) { + $slug = str_replace( 'wpforms-', '', basename( $path, '.php' ) ); + + $this->preserve_addon( $slug, $form_data, $previous_form_data ); + } + + $this->preserve_providers( $form_data, $previous_form_data ); + $this->preserve_payments( $form_data, $previous_form_data ); + + $post_data['post_content'] = wpforms_encode( $form_data ); + + return $post_data; + } + + /** + * Preserve addon fields, settings, panels, notifications, etc. + * + * @since 1.9.3 + * + * @param string $slug Addon slug. + * @param array $form_data Form data. + * @param array $previous_form_data Previous form data. + * + * @return void + */ + private function preserve_addon( string $slug, array &$form_data, array $previous_form_data ): void { + + if ( ! empty( $form_data['fields'] ) && ! empty( $previous_form_data['fields'] ) ) { + $this->preserve_addon_fields_settings( $slug, $form_data['fields'], $previous_form_data['fields'] ); + } + + $this->preserve_addon_panel( $slug, $form_data, $previous_form_data ); + + if ( ! empty( $form_data['settings'] ) && ! empty( $previous_form_data['settings'] ) ) { + $this->preserve_addon_settings( $slug, $form_data['settings'], $previous_form_data['settings'] ); + } + + if ( ! empty( $form_data['settings']['notifications'] ) && ! empty( $previous_form_data['settings']['notifications'] ) ) { + $this->preserve_addon_notifications( + $slug, + $form_data['settings']['notifications'], + $previous_form_data['settings']['notifications'] + ); + } + } + + /** + * Preserve addon fields. + * + * @since 1.9.5 + * + * @param string $slug Addon slug. + * @param array $new_fields Form fields settings. + * @param array $previous_fields Previous form fields settings. + * + * @return void + */ + private function preserve_addon_fields_settings( string $slug, array &$new_fields, array $previous_fields ): void { + + foreach ( $previous_fields as $field_id => $previous_field ) { + $new_field = $new_fields[ $field_id ] ?? []; + + if ( empty( $new_field ) ) { + continue; + } + + $this->preserve_addon_field_settings( $slug, $new_field, $previous_field ); + + $new_fields[ $field_id ] = $new_field; + } + } + + /** + * Preserve addon field. + * + * @since 1.9.5 + * + * @param string $slug Addon slug. + * @param array $new_field Previous form fields settings. + * @param array $previous_field Form fields settings. + * + * @return void + */ + private function preserve_addon_field_settings( string $slug, array &$new_field, array $previous_field ): void { + + $prefix = $this->prepare_prefix( $slug ); + $changed_settings = array_diff_key( $previous_field, $new_field ); + $preserve_fields = self::FIELD_OPTIONS[ $slug ] ?? []; + + foreach ( $changed_settings as $setting_name => $setting_value ) { + if ( + strpos( $setting_name, $prefix ) === 0 || + in_array( $setting_name, $preserve_fields, true ) + ) { + $new_field[ $setting_name ] = $setting_value; + } + } + + if ( + ! empty( $preserve_fields['choices'] ) && + is_array( $preserve_fields['choices'] ) && + ! empty( $new_field['choices'] ) && + is_array( $new_field['choices'] ) + ) { + $this->preserve_addon_field_choices_settings( $preserve_fields['choices'], $new_field, $previous_field ); + } + } + + /** + * Preserve addon field choices settings. + * + * @since 1.9.9 + * + * @param array $choice_settings Choice settings. + * @param array $new_field Previous form fields settings. + * @param array $previous_field Form fields settings. + * + * @return void + */ + private function preserve_addon_field_choices_settings( array $choice_settings, array &$new_field, array $previous_field ): void { + + if ( ! isset( $previous_field['choices'] ) || ! is_array( $previous_field['choices'] ) ) { + return; + } + + $previous_choices = $previous_field['choices']; + + foreach ( $new_field['choices'] as $choice_id => $choice ) { + foreach ( $choice_settings as $setting_name ) { + if ( isset( $previous_choices[ $choice_id ][ $setting_name ] ) ) { + $new_field['choices'][ $choice_id ][ $setting_name ] = $previous_choices[ $choice_id ][ $setting_name ]; + } + } + } + } + + /** + * Preserve addon panel. + * + * @since 1.9.3 + * + * @param string $slug Addon slug. + * @param array $form_data Form data. + * @param array $previous_form_data Previous form data. + */ + private function preserve_addon_panel( string $slug, array &$form_data, array $previous_form_data ): void { + + $panel = $this->prepare_prefix( $slug ); + + // The addon settings stored its own panel, e.g., $form_data[lead_forms], $form_data[webhooks], etc. + if ( ! empty( $previous_form_data[ $panel ] ) ) { + $form_data[ $panel ] = $previous_form_data[ $panel ]; + } + } + + /** + * Preserve addon settings stored inside the settings panel with a specific prefix. + * e.g. $form_data[settings][{$prefix}_enabled], $form_data[settings][{$prefix}_email], etc. + * + * @since 1.9.4 + * + * @param string $slug Addon option prefix. + * @param array $new_settings Form settings. + * @param array $previous_settings Previous form settings. + */ + private function preserve_addon_settings( string $slug, array &$new_settings, array $previous_settings ): void { + + $prefix = $this->prepare_prefix( $slug ); + + static $legacy_options = [ + 'offline_forms' => [ 'offline_form' ], + 'user_registration' => [ 'user_login_hide', 'user_reset_hide' ], + 'surveys_polls' => [ 'survey_enable', 'poll_enable' ], + ]; + + // BC: User Registration addon has `registration_` prefix instead of `user_registration`. + if ( $prefix === 'user_registration' ) { + $prefix = 'registration'; + } + + foreach ( $previous_settings as $setting_name => $value ) { + if ( strpos( $setting_name, $prefix ) === 0 ) { + $new_settings[ $setting_name ] = $value; + + continue; + } + + // BC: The options don't have a prefix and hard-coded in the `$legacy_options` variable. + if ( isset( $legacy_options[ $prefix ] ) && in_array( $setting_name, $legacy_options[ $prefix ], true ) ) { + $new_settings[ $setting_name ] = $value; + } + } + } + + /** + * Preserve addon notifications. + * + * @since 1.9.4 + * + * @param string $slug Addon slug. + * @param array $new_notifications List of form notifications. + * @param array $previous_notifications Previously saved list of form notifications. + * + * @return void + */ + private function preserve_addon_notifications( string $slug, array &$new_notifications, array $previous_notifications ): void { + + $prefix = $this->prepare_prefix( $slug ); + + foreach ( $previous_notifications as $notification_id => $notification_settings ) { + if ( empty( $new_notifications[ $notification_id ] ) ) { + continue; + } + + $changed_notification_settings = array_diff_key( $notification_settings, $new_notifications[ $notification_id ] ); + + foreach ( $changed_notification_settings as $setting_name => $value ) { + if ( strpos( $setting_name, $prefix ) === 0 ) { + $new_notifications[ $notification_id ][ $setting_name ] = $value; + } + } + } + } + + /** + * Preserve Providers that are not active. + * + * @since 1.9.4 + * + * @param array $form_data Form data. + * @param array $previous_form_data Previous form data. + */ + private function preserve_providers( array &$form_data, array $previous_form_data ): void { + + if ( empty( $previous_form_data['providers'] ) ) { + return; + } + + $active_providers = wpforms_get_providers_available(); + + foreach ( $previous_form_data['providers'] as $slug => $provider ) { + if ( ! empty( $active_providers[ $slug ] ) ) { + continue; + } + + $form_data['providers'][ $slug ] = $provider; + } + } + + /** + * Preserve Payments providers that are not active. + * + * @since 1.9.4 + * + * @param array $form_data Form data. + * @param array $previous_form_data Previous form data. + */ + private function preserve_payments( array &$form_data, array $previous_form_data ): void { + + if ( empty( $previous_form_data['payments'] ) ) { + return; + } + + foreach ( $previous_form_data['payments'] as $slug => $value ) { + if ( ! empty( $form_data['payments'][ $slug ] ) ) { + continue; + } + + $form_data['payments'][ $slug ] = $value; + } + } + + /** + * Convert slug to a addon prefix. + * + * @since 1.9.4 + * + * @param string $slug Addon slug. + * + * @return string + */ + private function prepare_prefix( string $slug ): string { + + return str_replace( '-', '_', $slug ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/PanelLoader.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/PanelLoader.php new file mode 100644 index 0000000..a231909 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/PanelLoader.php @@ -0,0 +1,146 @@ +allow_load() ) { + return; + } + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.6 + */ + private function hooks(): void { + + add_action( 'wp_ajax_wpforms_builder_load_panel', [ $this, 'load_panel_content' ] ); + } + + /** + * Save tags. + * + * @since 1.8.6 + */ + public function load_panel_content(): void { + + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + $form_id = absint( filter_input( INPUT_POST, 'form_id', FILTER_SANITIZE_NUMBER_INT ) ); + + if ( ! wpforms_current_user_can( 'edit_forms', $form_id ) ) { + wp_send_json_error( esc_html__( 'You do not have permission to perform this action.', 'wpforms-lite' ) ); + } + + $data = $this->get_prepared_data( 'load_panel' ); + $panel = $data['panel'] ?? ''; + $panel_class = '\WPForms_Builder_Panel_' . ucfirst( $panel ); + $panel_obj = $this->get_panel_obj( $panel_class, $panel ); + + ob_start(); + $panel_obj->panel_output( [], $panel ); + + $panel_content = ob_get_clean(); + + wp_send_json_success( $panel_content ); + } + + /** + * Get panel object. + * + * @since 1.9.4 + * + * @param string $panel_class Panel class name. + * @param string $panel Panel name. + * + * @return object + */ + private function get_panel_obj( string $panel_class, string $panel ) { + + if ( ! class_exists( $panel_class ) ) { + // Load panel base class. + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-base.php'; + + $file = WPFORMS_PLUGIN_DIR . "includes/admin/builder/panels/class-{$panel}.php"; + $file_pro = WPFORMS_PLUGIN_DIR . "pro/includes/admin/builder/panels/class-{$panel}.php"; + + if ( file_exists( $file_pro ) && wpforms()->is_pro() ) { + require_once $file_pro; + } elseif ( file_exists( $file ) ) { + require_once $file; + } + } + + $panel_obj = $panel_class::instance(); + + if ( ! method_exists( $panel_obj, 'panel_content' ) ) { + wp_send_json_error( esc_html__( 'Invalid panel.', 'wpforms-lite' ) ); + } + + return $panel_obj; + } + + /** + * Get prepared data before perform ajax action. + * + * @since 1.8.6 + * + * @param string $action Action: `save` OR `delete`. + * + * @return array + * @noinspection PhpSameParameterValueInspection + */ + private function get_prepared_data( string $action ): array { + + // Run a security check. + if ( ! check_ajax_referer( 'wpforms-builder', 'nonce', false ) ) { + wp_send_json_error( esc_html__( 'Most likely, your session expired. Please reload the page.', 'wpforms-lite' ) ); + } + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error( esc_html__( 'You are not allowed to perform this action.', 'wpforms-lite' ) ); + } + + $data = []; + + if ( $action === 'load_panel' ) { + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $data['panel'] = ! empty( $_POST['panel'] ) ? sanitize_key( $_POST['panel'] ) : ''; + } + + return $data; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/SaveForm.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/SaveForm.php new file mode 100644 index 0000000..bd615dd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Ajax/SaveForm.php @@ -0,0 +1,51 @@ +obj( 'form' ); + + if ( ! $form_obj || empty( $fields ) || empty( $form_data['id'] ) ) { + return $fields; + } + + $saved_form_data = $form_obj->get( $form_data['id'], [ 'content_only' => true ] ); + + foreach ( $fields as $field_id => $field_data ) { + if ( empty( $field_data['type'] ) ) { + continue; + } + + /** + * Filter field settings before saving the form. + * + * @since 1.9.4 + * + * @param array $field_data Field data. + * @param array $form_data Forms data. + * @param array $saved_form_data Saved form data. + */ + $fields[ $field_id ] = apply_filters( "wpforms_admin_builder_ajax_save_form_field_{$field_data['type']}", $field_data, $form_data, $saved_form_data ); + } + + return $fields; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/AntiSpam.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/AntiSpam.php new file mode 100644 index 0000000..cd93b70 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/AntiSpam.php @@ -0,0 +1,423 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.7.8 + */ + protected function hooks() { + + add_action( 'wpforms_form_settings_panel_content', [ $this, 'panel_content' ], 10, 2 ); + } + + /** + * Add a content for `Spam Protection and Security` panel. + * + * @since 1.7.8 + * + * @param WPForms_Builder_Panel_Settings $instance Settings panel instance. + */ + public function panel_content( $instance ) { + + $this->form_data = $this->update_settings_form_data( $instance->form_data ); + + echo '
              '; + echo '
              '; + esc_html_e( 'Spam Protection and Security', 'wpforms-lite' ); + echo '
              '; + + $antispam = wpforms_panel_field( + 'toggle', + 'settings', + 'antispam_v3', + $this->form_data, + __( 'Enable modern anti-spam protection', 'wpforms-lite' ), + [ + 'value' => (int) ! empty( $this->form_data['settings']['antispam_v3'] ), + 'tooltip' => __( 'Turn on invisible modern spam protection.', 'wpforms-lite' ), + ], + false + ); + + wpforms_panel_fields_group( + $antispam, + [ + 'description' => __( 'Behind-the-scenes spam filtering that\'s invisible to your visitors.', 'wpforms-lite' ), + 'title' => __( 'Protection', 'wpforms-lite' ), + ] + ); + + if ( ! empty( $this->form_data['settings']['antispam'] ) && empty( $this->form_data['settings']['antispam_v3'] ) ) { + wpforms_panel_field( + 'toggle', + 'settings', + 'antispam', + $this->form_data, + __( 'Enable anti-spam protection', 'wpforms-lite' ), + [ + 'tooltip' => __( 'Turn on invisible spam protection.', 'wpforms-lite' ), + ] + ); + } + + if ( ! empty( $this->form_data['settings']['honeypot'] ) && empty( $this->form_data['settings']['antispam_v3'] ) ) { + wpforms_panel_field( + 'toggle', + 'settings', + 'honeypot', + $this->form_data, + __( 'Enable anti-spam honeypot', 'wpforms-lite' ) + ); + } + + $this->akismet_settings(); + $this->store_spam_entries_settings(); + $this->time_limit_settings(); + $this->captcha_settings(); + + // Hidden setting to store blocked entries by filtering as a spam. + // This setting is needed to keep backward compatibility with old forms. + wpforms_panel_field( + 'checkbox', + 'anti_spam', + 'filtering_store_spam', + $this->form_data, + '', + [ + 'parent' => 'settings', + 'class' => 'wpforms-hidden', + ] + ); + + /** + * Fires once in the end of content panel before Also Available section. + * + * @since 1.7.8 + * + * @param array $form_data Form data and settings. + */ + do_action( 'wpforms_admin_builder_anti_spam_panel_content', $this->form_data ); + + wpforms_panel_fields_group( + $this->get_also_available_block(), + [ + 'unfoldable' => true, + 'default' => 'opened', + 'group' => 'also_available', + 'title' => __( 'Also Available', 'wpforms-lite' ), + 'borders' => [ 'top' ], + ] + ); + + echo '
              '; + } + + /** + * Update the form data on the builder settings panel. + * + * @since 1.9.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function update_settings_form_data( array $form_data ): array { + + if ( ! $form_data ) { + return $form_data; + } + + // Update `Filtering` store spam entries behaviour. + // Enable for new forms and old forms without any `Filtering` setting enabled. + if ( + empty( $form_data['settings']['anti_spam']['filtering_store_spam'] ) && + empty( $form_data['settings']['anti_spam']['country_filter']['enable'] ) && + empty( $form_data['settings']['anti_spam']['keyword_filter']['enable'] ) + ) { + $form_data['settings']['anti_spam']['filtering_store_spam'] = true; + } + + return $form_data; + } + + /** + * Output the *CAPTCHA settings. + * + * @since 1.7.8 + */ + private function captcha_settings() { + + $captcha_settings = wpforms_get_captcha_settings(); + + if ( empty( $captcha_settings['provider'] ) || $captcha_settings['provider'] === 'none' ) { + return; + } + + if ( + $captcha_settings['provider'] !== 'hcaptcha' && ( + empty( $captcha_settings['site_key'] ) || empty( $captcha_settings['secret_key'] ) + ) + ) { + return; + } + + if ( $captcha_settings['provider'] === 'hcaptcha' && empty( $captcha_settings['site_key'] ) ) { + return; + } + + $captcha_types = [ + 'hcaptcha' => __( 'Enable hCaptcha', 'wpforms-lite' ), + 'turnstile' => __( 'Enable Cloudflare Turnstile', 'wpforms-lite' ), + 'recaptcha' => [ + 'v2' => __( 'Enable Google Checkbox v2 reCAPTCHA', 'wpforms-lite' ), + 'invisible' => __( 'Enable Google Invisible v2 reCAPTCHA', 'wpforms-lite' ), + 'v3' => __( 'Enable Google v3 reCAPTCHA', 'wpforms-lite' ), + ], + ]; + + $is_recaptcha = $captcha_settings['provider'] === 'recaptcha'; + $captcha_types = $is_recaptcha ? $captcha_types['recaptcha'] : $captcha_types; + $captcha_key = $is_recaptcha ? $captcha_settings['recaptcha_type'] : $captcha_settings['provider']; + $label = ! empty( $captcha_types[ $captcha_key ] ) ? $captcha_types[ $captcha_key ] : ''; + + $recaptcha = wpforms_panel_field( + 'toggle', + 'settings', + 'recaptcha', + $this->form_data, + $label, + [ + 'data' => [ + 'provider' => $captcha_settings['provider'], + ], + 'tooltip' => __( 'Enable third-party CAPTCHAs to prevent form submissions from bots.', 'wpforms-lite' ), + ], + false + ); + + wpforms_panel_fields_group( + $recaptcha, + [ + 'description' => __( 'Automated tests that help to prevent bots from submitting your forms.', 'wpforms-lite' ), + 'title' => __( 'CAPTCHA', 'wpforms-lite' ), + 'borders' => [ 'top' ], + ] + ); + } + + /** + * Output the Spam Entries Store settings. + * + * @since 1.8.3 + */ + public function store_spam_entries_settings() { + + if ( ! wpforms()->is_pro() ) { + return; + } + + $disable_entries = $this->form_data['settings']['disable_entries'] ?? 0; + + wpforms_panel_field( + 'toggle', + 'settings', + 'store_spam_entries', + $this->form_data, + __( 'Store spam entries in the database', 'wpforms-lite' ), + [ + 'value' => $this->form_data['settings']['store_spam_entries'] ?? 0, + 'class' => $disable_entries ? 'wpforms-hidden' : '', + ] + ); + } + + /** + * Output the Time Limit settings. + * + * @since 1.8.3 + */ + private function time_limit_settings() { + + wpforms_panel_field( + 'toggle', + 'anti_spam', + 'enable', + $this->form_data, + __( 'Enable minimum time to submit', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'subsection' => 'time_limit', + 'tooltip' => __( 'Set a minimum amount of time a user must spend on a form before submitting.', 'wpforms-lite' ), + 'input_class' => 'wpforms-panel-field-toggle-next-field', + ] + ); + + wpforms_panel_field( + 'text', + 'anti_spam', + 'duration', + $this->form_data, + __( 'Minimum time to submit', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'subsection' => 'time_limit', + 'type' => 'number', + 'min' => 1, + 'default' => 2, + 'after' => sprintf( '%s', __( 'seconds', 'wpforms-lite' ) ), + ] + ); + } + + /** + * Output the Akismet settings. + * + * @since 1.7.8 + */ + private function akismet_settings() { + + if ( ! Akismet::is_installed() ) { + return; + } + + $args = []; + + if ( ! Akismet::is_configured() ) { + $args['data']['akismet-status'] = 'akismet_no_api_key'; + } + + if ( ! Akismet::is_activated() ) { + $args['data']['akismet-status'] = 'akismet_not_activated'; + } + + // If Akismet isn't available, disable the Akismet toggle. + if ( isset( $args['data'] ) ) { + $args['input_class'] = 'wpforms-akismet-disabled'; + $args['value'] = '0'; + } + + wpforms_panel_field( + 'toggle', + 'settings', + 'akismet', + $this->form_data, + __( 'Enable Akismet anti-spam protection', 'wpforms-lite' ), + $args + ); + } + + /** + * Get the Also Available block. + * + * @since 1.7.8 + * + * @return string + */ + private function get_also_available_block() { + + $get_started_button_text = __( 'Get Started →', 'wpforms-lite' ); + $upgrade_to_pro_text = __( 'Upgrade to Pro', 'wpforms-lite' ); + $captcha_settings = wpforms_get_captcha_settings(); + $upgrade_url = 'https://wpforms.com/lite-upgrade/'; + $utm_medium = 'Builder Settings'; + + $blocks = [ + 'country_filter' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/country-filter.svg', + 'title' => __( 'Country Filter', 'wpforms-lite' ), + 'description' => __( 'Stop spam at its source. Allow or deny entries from specific countries.', 'wpforms-lite' ), + 'link' => wpforms_utm_link( $upgrade_url, $utm_medium, 'Country Filter Feature' ), + 'link_text' => $upgrade_to_pro_text, + 'class' => 'wpforms-panel-content-also-available-item-upgrade-to-pro', + 'show' => ! wpforms()->is_pro(), + ], + 'keyword_filter' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/keyword-filter.svg', + 'title' => __( 'Keyword Filter', 'wpforms-lite' ), + 'description' => __( 'Block form entries that contain specific words or phrases that you define.', 'wpforms-lite' ), + 'link' => wpforms_utm_link( $upgrade_url, $utm_medium, 'Keyword Filter Feature' ), + 'link_text' => $upgrade_to_pro_text, + 'class' => 'wpforms-panel-content-also-available-item-upgrade-to-pro', + 'show' => ! wpforms()->is_pro(), + ], + 'custom_captcha' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/custom-captcha.svg', + 'title' => __( 'Custom Captcha', 'wpforms-lite' ), + 'description' => __( 'Ask custom questions or require your visitor to answer a random math puzzle.', 'wpforms-lite' ), + 'link' => wpforms()->is_pro() ? '#' : wpforms_utm_link( $upgrade_url, $utm_medium, 'Custom Captcha Addon' ), + 'link_text' => wpforms()->is_pro() ? __( 'Add to Form', 'wpforms-lite' ) : $upgrade_to_pro_text, + 'class' => wpforms()->is_pro() ? 'wpforms-panel-content-also-available-item-add-captcha' : 'wpforms-panel-content-also-available-item-upgrade-to-pro', + 'show' => true, + ], + 'reCAPTCHA' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/recaptcha.svg', + 'title' => 'reCAPTCHA', + 'description' => __( 'Add Google\'s free anti-spam service and choose between visible or invisible CAPTCHAs.','wpforms-lite' ), + 'link' => wpforms_utm_link( 'https://wpforms.com/docs/how-to-set-up-and-use-recaptcha-in-wpforms/', $utm_medium, 'reCAPTCHA Feature' ), + 'link_text' => $get_started_button_text, + 'show' => $captcha_settings['provider'] !== 'recaptcha' || empty( wpforms_setting( 'captcha-provider' ) ), + ], + 'hCaptcha' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/hcaptcha.svg', + 'title' => 'hCaptcha', + 'description' => __( 'Turn on free, privacy-oriented spam prevention that displays a visual CAPTCHA.','wpforms-lite' ), + 'link' => wpforms_utm_link( 'https://wpforms.com/docs/how-to-set-up-and-use-hcaptcha-in-wpforms/', $utm_medium, 'hCaptcha Feature' ), + 'link_text' => $get_started_button_text, + 'show' => $captcha_settings['provider'] !== 'hcaptcha', + ], + 'turnstile' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/cloudflare.svg', + 'title' => 'Cloudflare Turnstile', + 'description' => __( 'Enable free, CAPTCHA-like spam protection that protects data privacy.','wpforms-lite' ), + 'link' => wpforms_utm_link( 'https://wpforms.com/docs/setting-up-cloudflare-turnstile/', $utm_medium, 'Cloudflare Turnstile Feature' ), + 'link_text' => $get_started_button_text, + 'show' => $captcha_settings['provider'] !== 'turnstile', + ], + 'akismet' => [ + 'logo' => WPFORMS_PLUGIN_URL . 'assets/images/anti-spam/akismet.svg', + 'title' => 'Akismet', + 'description' => __( 'Integrate the powerful spam-fighting service trusted by millions of sites.','wpforms-lite' ), + 'link' => wpforms_utm_link( 'https://wpforms.com/docs/setting-up-akismet-anti-spam-protection/', $utm_medium, 'Akismet Feature' ), + 'link_text' => $get_started_button_text, + 'show' => ! Akismet::is_installed(), + ], + ]; + + return wpforms_render( + 'builder/antispam/also-available', + [ 'blocks' => $blocks ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/ContextMenu.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/ContextMenu.php new file mode 100644 index 0000000..b8158e4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/ContextMenu.php @@ -0,0 +1,61 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.6 + */ + protected function hooks() { + + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + add_action( 'wpforms_admin_page', [ $this, 'output' ], 20 ); + } + + /** + * Enqueue assets. + * + * @since 1.8.6 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-context-menu', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/context-menu{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Output context menu markup. + * + * @since 1.8.6 + */ + public function output() { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'builder/field-context-menu' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Help.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Help.php new file mode 100644 index 0000000..3262026 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Help.php @@ -0,0 +1,1381 @@ +obj( 'builder_help_cache' ); + $this->docs = $builder_help_cache ? $builder_help_cache->get() : []; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.3 + */ + private function hooks() { + + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + add_action( 'wpforms_admin_page', [ $this, 'output' ], 20 ); + } + + /** + * Enqueue assets. + * + * @since 1.6.3 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-help', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/help{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-builder-help', + 'wpforms_builder_help', + $this->get_localized_data() + ); + } + + /** + * Get localized data. + * + * @since 1.6.3 + * + * @return array Localized data. + */ + public function get_localized_data() { + + return [ + 'docs' => $this->docs, + 'categories' => $this->get_categories(), + 'context' => [ + 'terms' => $this->get_context_terms(), + 'docs' => $this->get_context_docs(), + ], + ]; + } + + /** + * Get categories. + * + * @return array Categories data. + * @since 1.6.3 + * + */ + public function get_categories() { + + return [ + 'getting-started' => esc_html__( 'Getting Started', 'wpforms-lite' ), + 'form-creation' => esc_html__( 'Form Creation', 'wpforms-lite' ), + 'entry-management' => esc_html__( 'Entry Management', 'wpforms-lite' ), + 'form-management' => esc_html__( 'Form Management', 'wpforms-lite' ), + 'marketing-integrations' => esc_html__( 'Marketing Integrations', 'wpforms-lite' ), + 'payment-forms' => esc_html__( 'Payment Forms', 'wpforms-lite' ), + 'payment-processing' => esc_html__( 'Payment Processing', 'wpforms-lite' ), + 'spam-prevention-and-security' => esc_html__( 'Spam Prevention and Security', 'wpforms-lite' ), + 'extending-functionality' => esc_html__( 'Extending Functionality', 'wpforms-lite' ), + 'troubleshooting-and-support' => esc_html__( 'Troubleshooting and Support', 'wpforms-lite' ), + ]; + } + + /** + * Get context search terms. + * + * @since 1.6.3 + * + * @return array Search terms by context. + */ + public function get_context_terms() { + + return [ + 'new_form' => 'add form', + 'setup' => 'form template', + 'fields/add_fields' => 'add fields', + 'fields/field_options' => 'field options', + 'fields/field_options/text' => 'single line text', + 'fields/field_options/textarea' => 'paragraph text', + 'fields/field_options/number-slider' => 'number slider', + 'fields/field_options/select' => 'dropdown', + 'fields/field_options/radio' => 'multiple choice', + 'fields/field_options/checkbox' => 'checkboxes', + 'fields/field_options/gdpr-checkbox' => 'gdpr agreement', + 'fields/field_options/email' => 'email', + 'fields/field_options/address' => 'address', + 'fields/field_options/url' => 'website/url', + 'fields/field_options/name' => 'name', + 'fields/field_options/hidden' => 'hidden', + 'fields/field_options/html' => 'html', + 'fields/field_options/content' => 'content', + 'fields/field_options/pagebreak' => 'page break', + 'fields/field_options/entry-preview' => 'entry preview', + 'fields/field_options/password' => 'password', + 'fields/field_options/date-time' => 'date time', + 'fields/field_options/divider' => 'section divider', + 'fields/field_options/phone' => 'phone', + 'fields/field_options/number' => 'numbers', + 'fields/field_options/file-upload' => 'file upload', + 'fields/field_options/captcha' => 'custom captcha', + 'fields/field_options/rating' => 'rating', + 'fields/field_options/richtext' => 'rich text', + 'fields/field_options/layout' => 'layout', + 'fields/field_options/likert_scale' => 'likert scale', + 'fields/field_options/payment-single' => 'single item', + 'fields/field_options/payment-multiple' => 'multiple items', + 'fields/field_options/payment-checkbox' => 'checkbox items', + 'fields/field_options/payment-select' => 'dropdown items', + 'fields/field_options/payment-total' => 'total', + 'fields/field_options/paypal-commerce' => 'paypal checkout', + 'fields/field_options/stripe-credit-card' => 'stripe credit card', + 'fields/field_options/authorize_net' => 'authorize.net credit card', + 'fields/field_options/square' => 'square credit card', + 'fields/field_options/signature' => 'signature', + 'fields/field_options/net_promoter_score' => 'net promoter score', + 'fields/field_options/payment-coupon' => 'coupon', + 'fields/field_options/repeater' => 'repeater', + 'settings/general' => 'settings', + 'settings/anti_spam' => 'spam', + 'settings/themes' => 'themes', + 'settings/notifications' => 'notification emails', + 'settings/confirmation' => 'confirmation message', + 'settings/lead_forms' => 'lead forms', + 'settings/form_abandonment' => 'form abandonment', + 'settings/post_submissions' => 'post submissions', + 'settings/user_registration' => 'user registration', + 'settings/surveys_polls' => 'surveys and polls', + 'settings/conversational_forms' => 'conversational forms', + 'settings/form_locker' => 'form locker', + 'settings/form_pages' => 'form pages', + 'settings/save_resume' => 'save and resume', + 'settings/google_sheets' => 'google sheets', + 'settings/dropbox' => 'dropbox', + 'settings/google_calendar' => 'google calendar', + 'settings/airtable' => 'airtable', + 'settings/google_drive' => 'google drive', + 'settings/notion' => 'notion', + 'settings/webhooks' => 'webhooks', + 'settings/entry_automation' => 'entry automation', + 'settings/pdf' => 'pdf', + 'settings/quiz' => 'quiz', + 'providers' => '', + 'providers/aweber' => 'aweber', + 'providers/activecampaign' => 'activecampaign', + 'providers/campaign_monitor' => 'campaign monitor', + 'providers/constant_contact' => 'constant contact', + 'providers/convertkit' => 'kit', + 'providers/drip' => 'drip', + 'providers/getresponse' => 'getresponse', + 'providers/getresponse_v3' => 'getresponse', + 'providers/mailchimp' => 'mailchimp', + 'providers/mailchimpv3' => 'mailchimp', + 'providers/mailerlite' => 'mailerlite', + 'providers/mailpoet' => 'mailpoet', + 'providers/make' => 'make', + 'providers/n8n' => 'n8n', + 'providers/zapier' => 'zapier', + 'providers/salesforce' => 'salesforce', + 'providers/sendinblue' => 'brevo', + 'providers/slack' => 'slack', + 'providers/hubspot' => 'hubspot', + 'providers/twilio' => 'twilio', + 'providers/pipedrive' => 'pipedrive', + 'providers/zoho_crm' => 'zoho crm', + 'providers/zoho-crm' => 'zoho crm', + 'payments' => '', + 'payments/paypal_commerce' => 'paypal commerce', + 'payments/paypal_standard' => 'paypal standard', + 'payments/stripe' => 'stripe', + 'payments/authorize_net' => 'authorize.net', + 'payments/square' => 'square', + 'revisions' => 'revisions', + ]; + } + + /** + * Get context (recommended) docs links. + * + * @since 1.6.3 + * + * @return array Docs links by search terms. + */ + public function get_context_docs_links() { + + return [ + 'add form' => [ + '/docs/creating-first-form/', + '/docs/how-to-choose-the-right-form-field-for-your-forms/', + '/docs/how-to-customize-the-submit-button/', + '/docs/generating-forms-with-wpforms-ai/', + ], + 'new form' => [ + '/docs/creating-first-form/', + '/docs/how-to-choose-the-right-form-field-for-your-forms/', + '/docs/how-to-customize-the-submit-button/', + '/docs/generating-forms-with-wpforms-ai/', + ], + 'create form' => [ + '/docs/creating-first-form/', + '/docs/how-to-choose-the-right-form-field-for-your-forms/', + '/docs/how-to-customize-the-submit-button/', + '/docs/generating-forms-with-wpforms-ai/', + ], + 'form template' => [ + '/docs/how-to-create-a-custom-form-template/', + '/docs/generating-forms-with-wpforms-ai/', + ], + 'add fields' => [ + '/docs/how-to-choose-the-right-form-field-for-your-forms/', + ], + 'recaptcha' => [ + '/docs/setup-captcha-wpforms/', + ], + 'spam' => [ + '/docs/how-to-prevent-spam-in-wpforms/', + '/docs/setup-captcha-wpforms/', + '/docs/how-to-install-and-use-custom-captcha-addon-in-wpforms/', + '/docs/setting-up-akismet-anti-spam-protection/', + '/docs/viewing-and-managing-spam-entries/', + ], + 'themes' => [ + '/docs/styling-your-forms/', + ], + 'fields' => [ + '/docs/how-to-choose-the-right-form-field-for-your-forms/', + ], + 'field options' => [ + '/docs/how-to-customize-form-field-options/', + ], + 'field settings' => [ + '/docs/how-to-customize-form-field-options/', + ], + 'conditional logic' => [ + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/setup-form-notification-wpforms/', + '/docs/setup-form-confirmation-wpforms/', + ], + 'single line text' => [ + '/docs/how-to-limit-words-or-characters-in-a-form-field/', + '/docs/how-to-use-custom-input-masks/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/calculations-addon/', + ], + 'paragraph' => [ + '/docs/how-to-limit-words-or-characters-in-a-form-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/calculations-addon/', + ], + 'paragraph text' => [ + '/docs/how-to-limit-words-or-characters-in-a-form-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/calculations-addon/', + ], + 'textarea' => [ + '/docs/how-to-limit-words-or-characters-in-a-form-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/calculations-addon/', + ], + 'input mask' => [ + '/docs/how-to-use-custom-input-masks/', + ], + 'limit words' => [ + '/docs/how-to-limit-words-or-characters-in-a-form-field/', + ], + 'limit characters' => [ + '/docs/how-to-limit-words-or-characters-in-a-form-field/', + ], + 'style' => [ + '/docs/how-to-style-wpforms-with-custom-css-beginners-guide/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-add-custom-css-to-your-wpforms/', + ], + 'custom css' => [ + '/docs/how-to-style-wpforms-with-custom-css-beginners-guide/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-add-custom-css-to-your-wpforms/', + ], + 'css' => [ + '/docs/how-to-style-wpforms-with-custom-css-beginners-guide/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-add-custom-css-to-your-wpforms/', + ], + 'dropdown' => [ + '/docs/how-to-allow-multiple-selections-to-a-dropdown-field-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'select' => [ + '/docs/how-to-allow-multiple-selections-to-a-dropdown-field-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'multiple options' => [ + '/docs/how-to-allow-multiple-selections-to-a-dropdown-field-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'bulk add' => [ + '/docs/how-to-bulk-add-choices-for-multiple-choice-checkbox-and-dropdown-fields/', + ], + 'multiple columns' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/how-to-create-a-multi-column-layout-for-radio-buttons-and-checkboxes/', + ], + 'columns' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/how-to-create-a-multi-column-layout-for-radio-buttons-and-checkboxes/', + ], + 'randomize' => [ + '/docs/how-to-randomize-checkbox-and-multiple-choice-options/', + ], + 'image choices' => [ + '/docs/how-to-add-image-choices-to-fields/', + ], + 'icon choices' => [ + '/docs/using-icon-choices/', + ], + 'multiple choice' => [ + '/docs/how-to-bulk-add-choices-for-multiple-choice-checkbox-and-dropdown-fields/', + '/docs/how-to-create-a-multi-column-layout-for-radio-buttons-and-checkboxes/', + '/docs/how-to-randomize-checkbox-and-multiple-choice-options/', + '/docs/how-to-add-image-choices-to-fields/', + '/docs/using-icon-choices/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'radio' => [ + '/docs/how-to-bulk-add-choices-for-multiple-choice-checkbox-and-dropdown-fields/', + '/docs/how-to-create-a-multi-column-layout-for-radio-buttons-and-checkboxes/', + '/docs/how-to-randomize-checkbox-and-multiple-choice-options/', + '/docs/how-to-add-image-choices-to-fields/', + '/docs/using-icon-choices/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'checkboxes' => [ + '/docs/how-to-bulk-add-choices-for-multiple-choice-checkbox-and-dropdown-fields/', + '/docs/how-to-add-a-terms-of-service-checkbox-to-a-form/', + '/docs/how-to-create-a-multi-column-layout-for-radio-buttons-and-checkboxes/', + '/docs/how-to-randomize-checkbox-and-multiple-choice-options/', + '/docs/how-to-add-image-choices-to-fields/', + '/docs/using-icon-choices/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'checkbox' => [ + '/docs/how-to-bulk-add-choices-for-multiple-choice-checkbox-and-dropdown-fields/', + '/docs/how-to-add-a-terms-of-service-checkbox-to-a-form/', + '/docs/how-to-create-a-multi-column-layout-for-radio-buttons-and-checkboxes/', + '/docs/how-to-randomize-checkbox-and-multiple-choice-options/', + '/docs/how-to-add-image-choices-to-fields/', + '/docs/using-icon-choices/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/generating-form-choices-with-wpforms-ai/', + ], + 'gdpr' => [ + '/docs/how-to-create-gdpr-compliant-forms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'gdpr agreement' => [ + '/docs/how-to-create-gdpr-compliant-forms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'number slider' => [ + '/docs/how-to-add-a-number-slider-field-to-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'range' => [ + '/docs/how-to-add-a-number-slider-field-to-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'email' => [ + '/docs/setup-form-notification-wpforms/', + '/docs/customizing-form-notification-emails/', + '/docs/how-to-create-conditional-form-notifications-in-wpforms/', + '/docs/troubleshooting-email-notifications/', + '/docs/how-to-fix-wordpress-contact-form-not-sending-email-with-smtp/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'address' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'field' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'state' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'province' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'region' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'city' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'country' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'zip code' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'postal code' => [ + '/docs/how-to-customize-the-address-field/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'hidden' => [ + '/docs/how-to-choose-the-right-form-field-for-your-forms/', + '/docs/how-to-use-smart-tags-in-wpforms/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/calculations-addon/', + ], + 'rating' => [ + '/docs/how-to-add-a-rating-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'star' => [ + '/docs/how-to-add-a-rating-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'rich text' => [ + '/docs/how-to-use-the-rich-text-field-in-wpforms/', + ], + 'wysiwyg' => [ + '/docs/how-to-use-the-rich-text-field-in-wpforms/', + ], + 'editor' => [ + '/docs/how-to-use-the-rich-text-field-in-wpforms/', + ], + 'rich editor' => [ + '/docs/how-to-use-the-rich-text-field-in-wpforms/', + ], + 'layout' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + ], + 'two columns' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/using-the-repeater-field/', + ], + 'three columns' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/using-the-repeater-field/', + ], + 'four columns' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/using-the-repeater-field/', + ], + 'fields horizontally' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/using-the-repeater-field/', + ], + 'fields in a row' => [ + '/docs/how-to-use-the-layout-field-in-wpforms/', + '/docs/using-the-repeater-field/', + ], + 'repeater' => [ + '/docs/using-the-repeater-field/', + ], + 'repeatable' => [ + '/docs/using-the-repeater-field/', + ], + 'replicate fields' => [ + '/docs/using-the-repeater-field/', + ], + 'page break' => [ + '/docs/how-to-create-multi-page-forms-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'page' => [ + '/docs/how-to-create-multi-page-forms-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'entry preview' => [ + '/docs/how-to-show-entry-previews-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'break' => [ + '/docs/how-to-create-multi-page-forms-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'multi-page' => [ + '/docs/how-to-create-multi-page-forms-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'password' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'name' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'first' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'last' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'surname' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'custom captcha' => [ + '/docs/how-to-install-and-use-custom-captcha-addon-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'numbers' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/calculations-addon/', + ], + 'website/url' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'website' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'url' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'html' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'content' => [ + 'docs/using-the-content-field/', + ], + 'code' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'date/time' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-customize-the-date-time-field-in-wpforms/', + ], + 'date' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-customize-the-date-time-field-in-wpforms/', + ], + 'time' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-customize-the-date-time-field-in-wpforms/', + ], + 'calendar' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/how-to-customize-the-date-time-field-in-wpforms/', + ], + 'section divider' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'section' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'divider' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'header' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'phone' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'telephone' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'mobile' => [ + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'file upload' => [ + '/docs/a-complete-guide-to-the-file-upload-field/', + '/docs/how-to-allow-additional-file-upload-types/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'file' => [ + '/docs/a-complete-guide-to-the-file-upload-field/', + '/docs/how-to-allow-additional-file-upload-types/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'upload' => [ + '/docs/a-complete-guide-to-the-file-upload-field/', + '/docs/how-to-allow-additional-file-upload-types/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'signature' => [ + '/docs/how-to-install-and-use-the-signature-addon-in-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'likert scale' => [ + '/docs/how-to-add-a-likert-scale-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'likert' => [ + '/docs/how-to-add-a-likert-scale-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'scale' => [ + '/docs/how-to-add-a-likert-scale-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'net promoter score' => [ + '/docs/how-to-add-a-net-promoter-score-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'net' => [ + '/docs/how-to-add-a-net-promoter-score-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'promoter' => [ + '/docs/how-to-add-a-net-promoter-score-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'score' => [ + '/docs/how-to-add-a-net-promoter-score-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'nps' => [ + '/docs/how-to-add-a-net-promoter-score-field-to-wpforms/', + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'coupon' => [ + '/docs/coupons-addon/', + ], + 'discount' => [ + '/docs/coupons-addon/', + ], + 'payment' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + ], + 'price' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + ], + 'cost' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + ], + 'single item' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + '/docs/calculations-addon/', + ], + 'multiple items' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + '/docs/how-to-add-image-choices-to-fields/', + '/docs/using-icon-choices/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'checkbox items' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + '/docs/how-to-add-image-choices-to-fields/', + '/docs/using-icon-choices/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'dropdown items' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'total' => [ + '/docs/viewing-and-managing-payments/', + '/docs/how-to-require-payment-total-with-a-wordpress-form/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/paypal-commerce-addon/', + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-create-a-donation-form-with-multiple-amounts/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/how-to-customize-the-style-of-individual-form-fields/', + ], + 'paypal checkout' => [ + '/docs/paypal-commerce-addon/', + '/docs/testing-payments-with-the-paypal-commerce-addon/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/viewing-and-managing-payments/', + ], + 'stripe credit card' => [ + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/how-to-test-stripe-payments-on-your-site/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/viewing-and-managing-payments/', + ], + 'authorize.net credit card' => [ + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/viewing-and-managing-payments/', + ], + 'square credit card' => [ + '/docs/how-to-install-and-use-the-square-addon-with-wpforms/', + '/docs/how-to-test-square-payments-on-your-site/', + '/docs/how-to-customize-form-field-options/', + '/docs/how-to-use-conditional-logic-with-wpforms/', + '/docs/viewing-and-managing-payments/', + ], + 'settings' => [ + '/docs/creating-first-form/', + '/docs/setup-form-notification-wpforms/', + '/docs/setup-form-confirmation-wpforms/', + ], + 'submit' => [ + '/docs/how-to-customize-the-submit-button/', + ], + 'button' => [ + '/docs/how-to-customize-the-submit-button/', + ], + 'dynamic population' => [ + '/developers/how-to-enable-dynamic-field-population/', + ], + 'offline' => [ + '/docs/how-to-enable-ajax-form-submissions/', + ], + 'offline forms' => [ + '/docs/how-to-enable-ajax-form-submissions/', + ], + 'notification' => [ + '/docs/setup-form-notification-wpforms/', + '/docs/customizing-form-notification-emails/', + '/docs/how-to-create-conditional-form-notifications-in-wpforms/', + '/docs/troubleshooting-email-notifications/', + '/docs/how-to-fix-wordpress-contact-form-not-sending-email-with-smtp/', + '/docs/pdf-addon/', + ], + 'notifications' => [ + '/docs/setup-form-notification-wpforms/', + '/docs/customizing-form-notification-emails/', + '/docs/how-to-create-conditional-form-notifications-in-wpforms/', + '/docs/troubleshooting-email-notifications/', + '/docs/how-to-fix-wordpress-contact-form-not-sending-email-with-smtp/', + '/docs/pdf-addon/', + ], + 'notification email' => [ + '/docs/setup-form-notification-wpforms/', + '/docs/customizing-form-notification-emails/', + '/docs/how-to-create-conditional-form-notifications-in-wpforms/', + '/docs/troubleshooting-email-notifications/', + '/docs/how-to-fix-wordpress-contact-form-not-sending-email-with-smtp/', + '/docs/pdf-addon/', + ], + 'notification emails' => [ + '/docs/setup-form-notification-wpforms/', + '/docs/customizing-form-notification-emails/', + '/docs/how-to-create-conditional-form-notifications-in-wpforms/', + '/docs/troubleshooting-email-notifications/', + '/docs/how-to-fix-wordpress-contact-form-not-sending-email-with-smtp/', + '/docs/pdf-addon/', + ], + 'confirmation' => [ + '/docs/setup-form-confirmation-wpforms/', + '/docs/how-to-create-conditional-form-confirmations/', + ], + 'confirmation message' => [ + '/docs/setup-form-confirmation-wpforms/', + '/docs/how-to-create-conditional-form-confirmations/', + ], + 'redirect' => [ + '/docs/setup-form-confirmation-wpforms/', + '/docs/how-to-create-conditional-form-confirmations/', + ], + 'go to url (redirect)' => [ + '/docs/setup-form-confirmation-wpforms/', + '/docs/how-to-create-conditional-form-confirmations/', + ], + 'confirmation page' => [ + '/docs/setup-form-confirmation-wpforms/', + '/docs/how-to-create-conditional-form-confirmations/', + ], + 'conditional confirmation' => [ + '/docs/setup-form-confirmation-wpforms/', + '/docs/how-to-create-conditional-form-confirmations/', + ], + 'calculation' => [ + '/docs/calculations-addon/', + '/docs/building-formulas-with-the-calculations-addon/', + '/calculations-formula-cheatsheet/', + ], + 'calculations' => [ + '/docs/calculations-addon/', + '/docs/building-formulas-with-the-calculations-addon/', + '/calculations-formula-cheatsheet/', + ], + 'formula' => [ + '/docs/calculations-addon/', + '/docs/building-formulas-with-the-calculations-addon/', + '/calculations-formula-cheatsheet/', + ], + 'conditional calculation' => [ + '/docs/calculations-addon/', + '/docs/building-formulas-with-the-calculations-addon/', + '/calculations-formula-cheatsheet/', + ], + 'lead forms' => [ + '/docs/lead-forms-addon/', + ], + 'form abandonment' => [ + '/docs/how-to-install-and-use-form-abandonment-with-wpforms/', + ], + 'abandonment' => [ + '/docs/how-to-install-and-use-form-abandonment-with-wpforms/', + ], + 'abandon' => [ + '/docs/how-to-install-and-use-form-abandonment-with-wpforms/', + ], + 'lead capture' => [ + '/docs/how-to-install-and-use-form-abandonment-with-wpforms/', + ], + 'post submissions' => [ + '/docs/how-to-install-and-use-the-post-submissions-addon-in-wpforms/', + ], + 'guest post' => [ + '/docs/how-to-install-and-use-the-post-submissions-addon-in-wpforms/', + ], + 'user submission' => [ + '/docs/how-to-install-and-use-the-post-submissions-addon-in-wpforms/', + ], + 'blog' => [ + '/docs/how-to-install-and-use-the-post-submissions-addon-in-wpforms/', + ], + 'post' => [ + '/docs/how-to-install-and-use-the-post-submissions-addon-in-wpforms/', + ], + 'user registration' => [ + '/docs/how-to-install-and-use-user-registration-addon-with-wpforms/', + '/docs/how-to-set-up-custom-user-meta-fields/', + ], + 'register' => [ + '/docs/how-to-install-and-use-user-registration-addon-with-wpforms/', + '/docs/how-to-set-up-custom-user-meta-fields/', + ], + 'registration' => [ + '/docs/how-to-install-and-use-user-registration-addon-with-wpforms/', + '/docs/how-to-set-up-custom-user-meta-fields/', + ], + 'user meta' => [ + '/docs/how-to-install-and-use-user-registration-addon-with-wpforms/', + '/docs/how-to-set-up-custom-user-meta-fields/', + ], + 'user' => [ + '/docs/how-to-install-and-use-user-registration-addon-with-wpforms/', + '/docs/how-to-set-up-custom-user-meta-fields/', + ], + 'surveys' => [ + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + ], + 'polls' => [ + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + ], + 'surveys and polls' => [ + '/docs/how-to-install-and-use-the-surveys-and-polls-addon/', + ], + 'conversational forms' => [ + '/docs/how-to-install-and-use-the-conversational-forms-addon/', + ], + 'conversational' => [ + '/docs/how-to-install-and-use-the-conversational-forms-addon/', + ], + 'form locker' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'password protection' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'entry limit' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'scheduling' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'restrict access' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'limit' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'schedule' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'restrict' => [ + '/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/', + '/developers/how-to-display-remaining-entry-limit-number/', + ], + 'form pages' => [ + '/docs/how-to-install-and-use-the-form-pages-addon/', + ], + 'save' => [ + '/docs/how-to-install-and-use-the-save-and-resume-addon-with-wpforms/', + ], + 'resume' => [ + '/docs/how-to-install-and-use-the-save-and-resume-addon-with-wpforms/', + ], + 'continue' => [ + '/docs/how-to-install-and-use-the-save-and-resume-addon-with-wpforms/', + ], + 'save and resume' => [ + '/docs/how-to-install-and-use-the-save-and-resume-addon-with-wpforms/', + ], + 'save and continue' => [ + '/docs/how-to-install-and-use-the-save-and-resume-addon-with-wpforms/', + ], + 'webhooks' => [ + '/docs/how-to-install-and-use-the-webhooks-addon-with-wpforms/', + ], + 'aweber' => [ + '/docs/install-use-aweber-addon-wpforms/', + ], + 'campaign monitor' => [ + '/docs/how-to-install-and-use-campaign-monitor-addon-with-wpforms/', + ], + 'constant contact' => [ + '/docs/how-to-connect-constant-contact-with-wpforms/', + ], + 'convertkit' => [ + '/docs/convertkit-addon/', + ], + 'drip' => [ + '/docs/how-to-install-and-use-the-drip-addon-in-wpforms/', + ], + 'dropbox' => [ + '/docs/dropbox-addon/', + ], + 'google-calendar' => [ + '/docs/google-calendar-addon/', + ], + 'google-drive' => [ + '/docs/google-drive-addon/', + ], + 'getresponse' => [ + '/docs/how-to-install-and-use-getresponse-addon-with-wpforms/', + ], + 'google sheets' => [ + '/docs/google-sheets-addon/', + '/docs/google-permissions/', + ], + 'mailchimp' => [ + '/docs/install-use-mailchimp-addon-wpforms/', + ], + 'mailerlite' => [ + '/docs/install-use-mailerlite-addon-wpforms/', + ], + 'mailpoet' => [ + '/docs/mailpoet-addon/', + ], + 'make' => [ + '/docs/make-addon/', + ], + 'zapier' => [ + '/docs/how-to-install-and-use-zapier-addon-with-wpforms/', + ], + 'pipedrive' => [ + '/docs/pipedrive-addon/', + ], + 'salesforce' => [ + '/docs/how-to-install-and-use-the-salesforce-addon-with-wpforms/', + ], + 'sendinblue' => [ + '/docs/how-to-install-and-use-the-sendinblue-addon-with-wpforms/', + ], + 'slack' => [ + '/docs/slack-addon/', + ], + 'hubspot' => [ + '/docs/how-to-install-and-use-the-hubspot-addon-in-wpforms/', + ], + 'twilio' => [ + '/docs/twilio-addon/', + ], + 'zoho crm' => [ + '/docs/zoho-crm-addon/', + ], + 'integrate' => [ + '/docs/how-to-install-and-use-zapier-addon-with-wpforms/', + '/docs/how-to-install-and-use-the-webhooks-addon-with-wpforms/', + '/docs/google-sheets-addon/', + '/docs/n8n-addon/', + ], + 'integration' => [ + '/docs/how-to-install-and-use-zapier-addon-with-wpforms/', + '/docs/how-to-install-and-use-the-webhooks-addon-with-wpforms/', + '/docs/google-sheets-addon/', + '/docs/n8n-addon/', + ], + 'crm' => [ + '/docs/how-to-install-and-use-zapier-addon-with-wpforms/', + '/docs/how-to-install-and-use-the-webhooks-addon-with-wpforms/', + ], + 'api' => [ + '/docs/how-to-install-and-use-zapier-addon-with-wpforms/', + '/docs/how-to-install-and-use-the-webhooks-addon-with-wpforms/', + '/docs/google-sheets-addon/', + '/docs/n8n-addon/', + ], + 'paypal commerce' => [ + '/docs/paypal-commerce-addon/', + '/docs/testing-payments-with-the-paypal-commerce-addon/', + ], + 'paypal standard' => [ + '/docs/install-use-paypal-addon-wpforms/', + '/docs/how-to-test-paypal-payments-before-accepting-real-payments/', + '/docs/how-to-allow-users-to-choose-a-payment-method-on-your-form/', + ], + 'stripe' => [ + '/docs/using-stripe-with-wpforms-lite/', + '/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', + '/docs/how-to-test-stripe-payments-on-your-site/', + ], + 'authorize' => [ + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + ], + 'authorize.net' => [ + '/docs/how-to-install-and-use-the-authorize-net-addon-with-wpforms/', + ], + 'square' => [ + '/docs/how-to-install-and-use-the-square-addon-with-wpforms/', + '/docs/how-to-test-square-payments-on-your-site/', + ], + 'revisions' => [ + '/docs/how-to-use-form-revisions-in-wpforms/', + ], + 'ai' => [ + '/docs/generating-form-choices-with-wpforms-ai/', + '/docs/generating-forms-with-wpforms-ai/', + ], + 'entry automation' => [ + '/docs/entry-automation-addon/', + ], + 'pdf' => [ + '/docs/pdf-addon/', + ], + 'n8n' => [ + '/docs/n8n-addon/', + ], + 'notion' => [ + '/docs/notion-addon/', + ], + 'airtable' => [ + '/docs/airtable-addon/', + ], + 'quiz' => [ + '/docs/quiz-addon/', + ], + ]; + } + + /** + * Get context (recommended) docs. + * + * @since 1.6.3 + * + * @return array Docs recommended by search terms. + */ + public function get_context_docs() { + + if ( empty( $this->docs ) ) { + return []; + } + + $docs_links = $this->get_context_docs_links(); + $docs = []; + + foreach ( $docs_links as $word => $links ) { + $docs[ $word ] = $this->get_doc_ids( $links ); + } + + return $docs; + } + + /** + * Get doc id. + * + * @since 1.8.3 + * + * @param string $link Absolute link to the doc without the domain part. + * + * @return int Doc id. + */ + private function get_doc_id_int( $link ) { + + if ( empty( $this->docs ) ) { + return 0; + } + + foreach ( $this->docs as $id => $doc ) { + if ( ! empty( $doc['url'] ) && $doc['url'] === 'https://wpforms.com' . $link ) { + return $id; + } + } + + return 0; + } + + /** + * Get doc ids. + * + * @since 1.6.3 + * + * @param array $links Array of the doc links. + * + * @return array Doc ids. + */ + public function get_doc_ids( $links ) { + + $ids = []; + + foreach ( $links as $link ) { + $ids[] = $this->get_doc_id_int( $link ); + } + + return $ids; + } + + /** + * Output help modal markup. + * + * @since 1.6.3 + */ + public function output() { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/help', + [ + 'settings' => [ + 'docs_url' => 'https://wpforms.com/docs/', + 'support_ticket_url' => 'https://wpforms.com/account/support/', + 'upgrade_url' => 'https://wpforms.com/pricing/', + ], + ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/HelpCache.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/HelpCache.php new file mode 100644 index 0000000..029a037 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/HelpCache.php @@ -0,0 +1,64 @@ + self::REMOTE_SOURCE, + 'cache_file' => 'docs.json', + /** + * Allow modifying Help Docs cache TTL (time to live). + * + * @since 1.6.3 + * + * @param int $cache_ttl Cache TTL in seconds. Defaults to 1 week. + */ + 'cache_ttl' => (int) apply_filters( 'wpforms_admin_builder_help_cache_ttl', WEEK_IN_SECONDS ), + 'update_action' => 'wpforms_builder_help_cache_update', + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/ImageUpload.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/ImageUpload.php new file mode 100644 index 0000000..b15f0bf --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/ImageUpload.php @@ -0,0 +1,49 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.7.3 + */ + public function hooks(): void { + + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + } + + /** + * Enqueue assets for the Form Builder. + * + * @since 1.9.7.3 + */ + public function enqueues(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-settings-image-upload', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/image-upload{$min}.js", + [ 'wp-util', 'wpforms-builder-settings' ], + WPFORMS_VERSION, + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Notifications/Advanced/EmailTemplate.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Notifications/Advanced/EmailTemplate.php new file mode 100644 index 0000000..d6a1832 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Notifications/Advanced/EmailTemplate.php @@ -0,0 +1,189 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.8.5 + */ + private function hooks() { + + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_assets' ] ); + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'builder_footer_scripts' ] ); + add_filter( 'wpforms_lite_admin_education_builder_notifications_advanced_settings_content', [ $this, 'settings' ], 5, 3 ); + add_filter( 'wpforms_pro_admin_builder_notifications_advanced_settings_content', [ $this, 'settings' ], 5, 3 ); + } + + /** + * Enqueue assets for the builder. + * + * @since 1.8.5 + */ + public function builder_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-email-template', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/email-template{$min}.js", + [ 'jquery', 'jquery-confirm', 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-builder-email-template', + 'wpforms_builder_email_template', + [ + 'is_pro' => wpforms()->is_pro(), + 'templates' => Helpers::get_email_template_choices( false ), + ] + ); + } + + /** + * Output Email Template modal. + * + * @since 1.8.5 + */ + public function builder_footer_scripts() { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/notifications/email-template-modal', + [ + 'pro_badge' => ! wpforms()->is_pro() ? EducationHelpers::get_badge( 'Pro' ) : '', + ], + true + ); + } + + /** + * Add Email Template settings. + * + * @since 1.8.5 + * + * @param string $content Notification → Advanced content. + * @param WPForms_Builder_Panel_Settings $settings Builder panel settings. + * @param int $id Notification id. + * + * @return string + */ + public function settings( $content, $settings, $id ) { + + // Retrieve email template choices and disabled choices. + // A few of the email templates are only available in the Pro version and will be disabled for non-Pro users. + // The disabled choices will be added to the select field with a "(Pro)" label appended to the name. + list( $options, $disabled_options ) = $this->get_email_template_options(); + + // Add Email Template field. + $content .= wpforms_panel_field( + 'select', + 'notifications', + 'template', + $settings->form_data, + esc_html__( 'Email Template', 'wpforms-lite' ), + [ + 'default' => '', + 'options' => $options, + 'disabled_options' => $disabled_options, + 'class' => 'wpforms-panel-field-email-template-wrap', + 'input_class' => 'wpforms-panel-field-email-template', + 'parent' => 'settings', + 'subsection' => $id, + 'after' => $this->get_template_modal_link_content(), + 'tooltip' => esc_html__( 'Override the default email template for this specific notification.', 'wpforms-lite' ), + ], + false + ); + + return $content; + } + + /** + * Get Email template choices. + * + * This function will return an array of email template choices and an array of disabled choices. + * The disabled choices are templates that are only available in the Pro version. + * + * @since 1.8.5 + * + * @return array + */ + private function get_email_template_options() { + + // Retrieve the available email template choices. + $choices = Helpers::get_email_template_choices( false ); + + // If there are no templates or the choices are not an array, return empty arrays. + if ( empty( $choices ) || ! is_array( $choices ) ) { + return [ [], [] ]; + } + + // Check if the Pro version is active. + $is_pro = wpforms()->is_pro(); + + // Initialize arrays for options and disabled options. + $options = []; + $disabled_options = []; + + // Iterate through the templates and build the $options array. + foreach ( $choices as $key => $choice ) { + $value = esc_attr( $key ); + $name = esc_html( $choice['name'] ); + $is_disabled = ! $is_pro && isset( $choice['is_pro'] ) && $choice['is_pro']; + + // If the option is disabled for non-Pro users, add it to the disabled options array. + if ( $is_disabled ) { + $disabled_options[] = $value; + } + + // Build the $options array with appropriate labels. + // Pro badge labels are not meant to be translated. + $options[ $key ] = $is_disabled ? sprintf( '%s (Pro)', $name ) : $name; + } + + // Add an empty option to the beginning of the $options array. + // This is a placeholder option that will be replaced with the default template name. + $options = array_merge( [ '' => esc_html__( 'Default Template', 'wpforms-lite' ) ], $options ); + + // Return the options and disabled options arrays. + return [ $options, $disabled_options ]; + } + + /** + * Get Email template modal link content. + * + * @since 1.8.5 + * + * @return string + */ + private function get_template_modal_link_content() { + + return wpforms_render( 'builder/notifications/email-template-link' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Settings/Themes.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Settings/Themes.php new file mode 100644 index 0000000..acc0551 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Settings/Themes.php @@ -0,0 +1,1257 @@ +css_vars_obj = wpforms()->obj( 'css_vars' ); + $this->is_admin = current_user_can( 'manage_options' ); + $this->is_modern = wpforms_get_render_engine() === 'modern'; + $this->is_full_styles = (int) wpforms_setting( 'disable-css', '1' ) === 1; + + $this->size_options = [ + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ]; + + $this->border_options = [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'solid' => esc_html__( 'Solid', 'wpforms-lite' ), + 'dashed' => esc_html__( 'Dashed', 'wpforms-lite' ), + 'dotted' => esc_html__( 'Dotted', 'wpforms-lite' ), + ]; + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.8 + */ + protected function hooks(): void { + + // If the current user can't add posts, he can't save themes either. Enqueue no-access assets. + if ( ! current_user_can( 'edit_posts' ) ) { + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues_no_access' ] ); + add_filter( 'wpforms_builder_panel_sidebar_section_classes', [ $this, 'add_pro_class' ], 10, 3 ); + + return; + } + + add_action( 'wpforms_form_settings_panel_content', [ $this, 'panel_content' ] ); + add_action( 'wpforms_builder_panel_sidebar_after', [ $this, 'sidebar_content' ], 10, 2 ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + } + + /** + * Enqueue assets for the builder themes. + * + * @since 1.9.7 + */ + public function enqueues(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-themes', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/themes/builder-themes{$min}.js", + [ 'wpforms-builder', 'wp-api-fetch' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_style( + 'wpforms-full', + WPFORMS_PLUGIN_URL . "assets/css/frontend/modern/wpforms-full{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_localize_script( + 'wpforms-builder-themes', + 'wpforms_builder_themes', + $this->get_localize_data() + ); + + wp_add_inline_style( 'wpforms-full', $this->css_vars_obj->get_root_vars_css() ); + } + + /** + * Enqueue assets for the builder themes for the users who don't have access to the theme settings. + * + * @since 1.9.8 + */ + public function enqueues_no_access(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-themes-no-access', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/themes/builder-themes-no-access{$min}.js", + [ 'wpforms-builder', 'wp-api-fetch' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-builder-themes-no-access', + 'wpforms_builder_themes_no_access', + $this->get_localize_data() + ); + } + + /** + * Add a class to the themes section if the user doesn't have access to it. + * + * @since 1.9.8 + * + * @param array $classes Sidebar section classes. + * @param string $name Sidebar section name. + * @param string $slug Sidebar section slug. + * + * @return array + * @noinspection PhpUnusedParameterInspection + */ + public function add_pro_class( array $classes, string $name, string $slug ): array { + + if ( $slug !== 'themes' ) { + return $classes; + } + + return array_merge( $classes, [ 'wpforms-panel-sidebar-section-no-access' ] ); + } + + /** + * Get localize data. + * + * @since 1.9.7 + * + * @return array + */ + protected function get_localize_data(): array { + + return [ + 'modules' => $this->get_modules(), + 'sizes' => [ + 'field-size' => CSSVars::FIELD_SIZE, + 'label-size' => CSSVars::LABEL_SIZE, + 'button-size' => CSSVars::BUTTON_SIZE, + 'container-shadow-size' => CSSVars::CONTAINER_SHADOW_SIZE, + ], + 'strings' => [ + 'heads_up' => esc_html__( 'Heads Up!', 'wpforms-lite' ), + 'themes_error' => esc_html__( 'Error loading themes. Please try again later.', 'wpforms-lite' ), + 'button_background' => esc_html__( 'Button Background', 'wpforms-lite' ), + 'button_text' => esc_html__( 'Button Text', 'wpforms-lite' ), + 'copy_paste_error' => esc_html__( 'There was an error parsing your JSON code. Please check your code and try again.', 'wpforms-lite' ), + 'field_label' => esc_html__( 'Field Label', 'wpforms-lite' ), + 'field_sublabel' => esc_html__( 'Field Sublabel', 'wpforms-lite' ), + 'field_border' => esc_html__( 'Field Border', 'wpforms-lite' ), + 'theme_delete_title' => esc_html__( 'Delete Form Theme', 'wpforms-lite' ), + // Translators: %1$s: Theme name. + 'theme_delete_confirm' => esc_html__( 'Are you sure you want to delete the %1$s theme?', 'wpforms-lite' ), + 'theme_delete_cant_undone' => esc_html__( 'This cannot be undone.', 'wpforms-lite' ), + 'theme_delete_yes' => esc_html__( 'Yes, Delete', 'wpforms-lite' ), + 'theme_copy' => esc_html__( 'Copy', 'wpforms-lite' ), + 'theme_custom' => esc_html__( 'Custom Theme', 'wpforms-lite' ), + 'theme_noname' => esc_html__( 'Noname Theme', 'wpforms-lite' ), + 'pro_sections' => [ + 'background' => esc_html__( 'Background Styles', 'wpforms-lite' ), + 'container' => esc_html__( 'Container Styles', 'wpforms-lite' ), + 'themes' => esc_html__( 'Themes', 'wpforms-lite' ), + ], + 'permission_modal' => [ + 'title' => esc_html__( 'Insufficient Permissions', 'wpforms-lite' ), + 'content' => esc_html__( "Sorry, your user role doesn't have permission to access this feature.", 'wpforms-lite' ), + 'confirm' => esc_html__( 'OK', 'wpforms-lite' ), + ], + ], + 'isAdmin' => $this->is_admin, + 'isPro' => wpforms()->is_pro(), + 'isModern' => $this->is_modern, + 'isFullStyles' => $this->is_full_styles, + 'route_namespace' => RestApi::ROUTE_NAMESPACE, + ]; + } + + /** + * Get Form Builder themes modules. + * + * @since 1.9.7 + * + * @return array Modules list. + */ + public function get_modules(): array { + + $min = wpforms_get_min_suffix(); + + return [ + [ + 'name' => 'common', + 'path' => "./modules/common{$min}.js", + ], + [ + 'name' => 'themes', + 'path' => "./modules/themes{$min}.js", + ], + [ + 'name' => 'stockPhotos', + 'path' => "./modules/stock-photos{$min}.js", + ], + [ + 'name' => 'background', + 'path' => "./modules/background{$min}.js", + ], + [ + 'name' => 'advancedSettings', + 'path' => "./modules/advanced-settings{$min}.js", + ], + ]; + } + + /** + * Add a content for `Themes` panel. + * + * @since 1.8.8 + * + * @param WPForms_Builder_Panel_Settings $instance Settings panel instance. + * + * @noinspection HtmlUnknownTarget + */ + public function panel_content( WPForms_Builder_Panel_Settings $instance ): void { + + $this->form_data = $instance->form_data; + $url = wpforms_utm_link( 'https://wpforms.com/docs/styling-your-forms/', 'Builder Themes', 'Description Link' ); + + ?> +
              +
              +
              +
              + +
              + +
              +

              + Learn more about styling your forms.', 'wpforms-lite' ), + $url + ) + ); + ?> +

              + +
              +

              + +

              +

              + +

              +
              + + $this->is_modern, + 'is_full_styles' => $this->is_full_styles, + ], + true + ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'builder/themes/preview' ); + ?> +
              + +
              +
              +
              + obj( 'form' ); + + if ( ! $form_obj || ! isset( $form->ID ) ) { + return; + } + + $form_data = $form_obj->get( $form->ID, [ 'content_only' => true ] ); + + $this->form_data = $form_data; + + $this->show_sidebar_html(); + } + + /** + * Show sidebar HTML. + * + * @since 1.9.7 + */ + private function show_sidebar_html(): void { + ?> +
              +
              + +
              +
              + + is_admin ) : ?> + + +
              +
              + +
              + show_sidebar_themes(); ?> +
              + show_sidebar_field_styles(); ?> + show_sidebar_label_styles(); ?> + show_sidebar_button_styles(); ?> + show_sidebar_container_styles(); ?> + show_sidebar_background_styles(); ?> + show_sidebar_other_styles(); ?> +
              +
              +
              + show_sidebar_advanced(); ?> +
              + +
              +
              + +
              + + + + +
              + form_data, + esc_html__( 'Theme', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'hidden', + 'value' => $this->form_data['settings']['themes']['wpformsTheme'] ?? 'default', + 'class' => 'wpforms-hidden', + ] + ); + + wpforms_panel_field( + 'text', + 'themes', + 'isCustomTheme', + $this->form_data, + false, + [ + 'parent' => 'settings', + 'type' => 'hidden', + 'value' => $this->form_data['settings']['themes']['isCustomTheme'] ?? '', + 'class' => 'wpforms-hidden', + ] + ); + + ?> + +
              + + form_data, + esc_html__( 'Theme Name', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'text', + 'value' => $this->form_data['settings']['themes']['themeName'] ?? '', + 'class' => 'wpforms-hidden', + ] + ); + + ?> + + +
              +
              + +
              + + + + +
              +
              + form_data, + esc_html__( 'Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => $this->size_options, + 'value' => $this->form_data['settings']['themes']['fieldSize'] ?? 'medium', + ] + ); + + wpforms_panel_field( + 'select', + 'themes', + 'fieldBorderStyle', + $this->form_data, + esc_html__( 'Border', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => $this->border_options, + 'value' => $this->form_data['settings']['themes']['fieldBorderStyle'] ?? 'solid', + ] + ); + ?> +
              + +
              + form_data, + esc_html__( 'Border Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['fieldBorderSize'] ?? '1', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + wpforms_panel_field( + 'text', + 'themes', + 'fieldBorderRadius', + $this->form_data, + esc_html__( 'Border Radius', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['fieldBorderRadius'] ?? '3', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + ?> +
              + +
              + form_data, + esc_html__( 'Background', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['fieldBackgroundColor'] ?? CSSVars::ROOT_VARS['field-background-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'fieldBorderColor', + $this->form_data, + esc_html__( 'Border', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['fieldBorderColor'] ?? CSSVars::ROOT_VARS['field-border-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'fieldTextColor', + $this->form_data, + esc_html__( 'Text', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['fieldTextColor'] ?? CSSVars::ROOT_VARS['field-text-color'], + ] + ); + + ?> +
              +
              +
              + +
              + + + + +
              +
              + form_data, + esc_html__( 'Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => $this->size_options, + 'value' => $this->form_data['settings']['themes']['labelSize'] ?? 'medium', + ] + ); + + ?> +
              + +
              + form_data, + esc_html__( 'Label', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['labelColor'] ?? CSSVars::ROOT_VARS['label-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'labelSublabelColor', + $this->form_data, + esc_html__( 'Sublabel', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['labelSublabelColor'] ?? CSSVars::ROOT_VARS['label-sublabel-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'labelErrorColor', + $this->form_data, + esc_html__( 'Error', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['labelErrorColor'] ?? CSSVars::ROOT_VARS['label-error-color'], + ] + ); + + ?> +
              +
              +
              + +
              + + + + +
              +
              + form_data, + esc_html__( 'Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => $this->size_options, + 'value' => $this->form_data['settings']['themes']['buttonSize'] ?? 'medium', + ] + ); + + wpforms_panel_field( + 'select', + 'themes', + 'buttonBorderStyle', + $this->form_data, + esc_html__( 'Border', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => $this->border_options, + 'value' => $this->form_data['settings']['themes']['buttonBorderStyle'] ?? CSSVars::ROOT_VARS['button-border-style'], + ] + ); + + ?> +
              + +
              + form_data, + esc_html__( 'Border Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['buttonBorderSize'] ?? '1', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + wpforms_panel_field( + 'text', + 'themes', + 'buttonBorderRadius', + $this->form_data, + esc_html__( 'Border Radius', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['buttonBorderRadius'] ?? '3', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + ?> +
              + +
              + form_data, + esc_html__( 'Background', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['buttonBackgroundColor'] ?? CSSVars::ROOT_VARS['button-background-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'buttonBorderColor', + $this->form_data, + esc_html__( 'Border', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['buttonBorderColor'] ?? CSSVars::ROOT_VARS['button-border-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'buttonTextColor', + $this->form_data, + esc_html__( 'Text', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['buttonTextColor'] ?? CSSVars::ROOT_VARS['button-text-color'], + ] + ); + + ?> +
              +
              +
              + +
              + + + + +
              +
              + form_data, + esc_html__( 'Padding', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['containerPadding'] ?? '0', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + wpforms_panel_field( + 'select', + 'themes', + 'containerBorderStyle', + $this->form_data, + esc_html__( 'Border', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => $this->border_options, + 'value' => $this->form_data['settings']['themes']['containerBorderStyle'] ?? CSSVars::ROOT_VARS['container-border-style'], + ] + ); + + ?> +
              +
              + form_data, + esc_html__( 'Border Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['containerBorderWidth'] ?? '1', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + wpforms_panel_field( + 'text', + 'themes', + 'containerBorderRadius', + $this->form_data, + esc_html__( 'Border Radius', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['containerBorderRadius'] ?? '3', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + ?> +
              + +
              + form_data, + esc_html__( 'Border', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['containerBorderColor'] ?? CSSVars::ROOT_VARS['container-border-color'], + ] + ); + + wpforms_panel_field( + 'select', + 'themes', + 'containerShadowSize', + $this->form_data, + esc_html__( 'Shadow', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ], + 'value' => $this->form_data['settings']['themes']['containerShadowSize'] ?? CSSVars::CONTAINER_SHADOW_SIZE['none']['box-shadow'], + ] + ); + + ?> +
              +
              +
              + +
              + +
              +
              + form_data, + esc_html__( 'Color', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['backgroundColor'] ?? CSSVars::ROOT_VARS['background-color'], + ] + ); + ?> +
              + +
              + form_data, + esc_html__( 'Image', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'library' => esc_html__( 'Media Library', 'wpforms-lite' ), + 'stock' => esc_html__( 'Stock Photo', 'wpforms-lite' ), + ], + 'value' => $this->form_data['settings']['themes']['backgroundImage'] ?? 'none', + ] + ); + + wpforms_panel_field( + 'select', + 'themes', + 'backgroundPosition', + $this->form_data, + esc_html__( 'Position', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => [ + 'top left' => esc_html__( 'Top Left', 'wpforms-lite' ), + 'top center' => esc_html__( 'Top Center', 'wpforms-lite' ), + 'top right' => esc_html__( 'Top Right', 'wpforms-lite' ), + 'center left' => esc_html__( 'Center Left', 'wpforms-lite' ), + 'center center' => esc_html__( 'Center Center', 'wpforms-lite' ), + 'center right' => esc_html__( 'Center Right', 'wpforms-lite' ), + 'bottom left' => esc_html__( 'Bottom Left', 'wpforms-lite' ), + 'bottom center' => esc_html__( 'Bottom Center', 'wpforms-lite' ), + 'bottom right' => esc_html__( 'Bottom Right', 'wpforms-lite' ), + ], + 'value' => $this->form_data['settings']['themes']['backgroundPosition'] ?? CSSVars::ROOT_VARS['background-position'], + ] + ); + ?> + +
              +
              + form_data, + esc_html__( 'Repeat', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => [ + 'no-repeat' => esc_html__( 'No Repeat', 'wpforms-lite' ), + 'repeat' => esc_html__( 'Tile', 'wpforms-lite' ), + 'repeat-x' => esc_html__( 'Repeat X', 'wpforms-lite' ), + 'repeat-y' => esc_html__( 'Repeat Y', 'wpforms-lite' ), + ], + 'value' => $this->form_data['settings']['themes']['backgroundRepeat'] ?? CSSVars::ROOT_VARS['background-repeat'], + ] + ); + + wpforms_panel_field( + 'select', + 'themes', + 'backgroundSizeMode', + $this->form_data, + esc_html__( 'Size', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'options' => [ + 'dimensions' => esc_html__( 'Dimensions', 'wpforms-lite' ), + 'cover' => esc_html__( 'Cover', 'wpforms-lite' ), + ], + 'value' => $this->form_data['settings']['themes']['backgroundSizeMode'] ?? CSSVars::ROOT_VARS['background-size'], + ] + ); + + wpforms_panel_field( + 'text', + 'themes', + 'backgroundSize', + $this->form_data, + false, + [ + 'parent' => 'settings', + 'type' => 'hidden', + 'value' => $this->form_data['settings']['themes']['backgroundSize'] ?? CSSVars::ROOT_VARS['background-size'], + 'class' => 'wpforms-hidden', + ] + ); + ?> + +
              +
              + form_data, + esc_html__( 'Width', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['backgroundWidth'] ?? '100', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + + wpforms_panel_field( + 'text', + 'themes', + 'backgroundHeight', + $this->form_data, + esc_html__( 'Height', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'type' => 'number', + 'min' => 0, + 'value' => $this->form_data['settings']['themes']['backgroundHeight'] ?? '100', + 'input_class' => 'wpforms-builder-themes-number-input', + 'class' => 'wpforms-builder-themes-number-input-wrapper', + ] + ); + ?> + +
              + +
              + form_data, + false, + [ + 'parent' => 'settings', + 'type' => 'hidden', + 'value' => $this->form_data['settings']['themes']['backgroundUrl'] ?? CSSVars::ROOT_VARS['background-url'], + 'class' => 'wpforms-hidden', + ] + ); + + ?> + +
              + +
              + +
              +
              + +
              + +
              + form_data, + false, + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['fieldMenuColor'] ?? CSSVars::ROOT_VARS['field-menu-color'], + ] + ); + + wpforms_panel_field( + 'color', + 'themes', + 'pageBreakColor', + $this->form_data, + false, + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['pageBreakColor'] ?? CSSVars::ROOT_VARS['page-break-color'], + ] + ); + ?> +
              +
              + is_admin ) { + return; + } + + ?> + form_data, + esc_html__( 'Custom CSS', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['customCss'] ?? '', + 'after' => sprintf( '%s', __( 'Further customize the look of this form without having to edit theme files.', 'wpforms-lite' ) ), + ] + ); + + wpforms_panel_field( + 'textarea', + 'themes', + 'copyPasteJsonValue', + $this->form_data, + esc_html__( 'Copy / Paste Style Settings', 'wpforms-lite' ), + [ + 'parent' => 'settings', + 'value' => $this->form_data['settings']['themes']['copyPasteJsonValue'] ?? '', + 'after' => sprintf( '%s', __( 'If you\'ve copied style settings from another form, you can paste them here to add the same styling to this form. Any current style settings will be overwritten.', 'wpforms-lite' ) ), + ] + ); + ?> + hooks(); + } + + /** + * Hooks. + * + * @since 1.6.9 + */ + private function hooks(): void { + + add_filter( 'wpforms_builder_strings', [ $this, 'builder_strings' ] ); + add_action( 'wpforms_admin_page', [ $this, 'output' ], 30 ); + } + + /** + * Get a shortcut list. + * + * @since 1.6.9 + * + * @return array + */ + private function get_list(): array { + + return [ + 'left' => [ + 'ctrl s' => __( 'Save Form', 'wpforms-lite' ), + 'ctrl p' => __( 'Preview Form', 'wpforms-lite' ), + 'ctrl b' => __( 'Embed Form', 'wpforms-lite' ), + 'ctrl f' => __( 'Search Fields', 'wpforms-lite' ), + 'ctrl c' => __( 'Copy Fields', 'wpforms-lite' ), + 'ctrl v' => __( 'Paste Fields', 'wpforms-lite' ), + 'd' => __( 'Duplicate Fields', 'wpforms-lite' ), + ], + 'right' => [ + 'ctrl z' => __( 'Undo', 'wpforms-lite' ), + 'ctrl shift z' => __( 'Redo', 'wpforms-lite' ), + 'ctrl h' => __( 'Open Help', 'wpforms-lite' ), + 'ctrl t' => __( 'Toggle Sidebar', 'wpforms-lite' ), // It is 'alt s' on Windows/Linux, dynamically changed in the modal in admin-builder.js openKeyboardShortcutsModal(). + 'ctrl e' => __( 'View Entries', 'wpforms-lite' ), + 'ctrl q' => __( 'Close Builder', 'wpforms-lite' ), + 'delete' => __( 'Delete Fields', 'wpforms-lite' ), + ], + ]; + } + + /** + * Add Form builder strings. + * + * @since 1.6.9 + * + * @param array|mixed $strings Form Builder strings. + * + * @return array + */ + public function builder_strings( $strings ): array { + + $strings = (array) $strings; + + $strings['shortcuts_modal_title'] = esc_html__( 'Keyboard Shortcuts', 'wpforms-lite' ); + $strings['shortcuts_modal_msg'] = esc_html__( 'Handy shortcuts for common actions in the builder.', 'wpforms-lite' ); + + return $strings; + } + + /** + * Generate and output shortcuts modal content as the wp.template. + * + * @since 1.6.9 + */ + public function output(): void { + + echo ' + '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplateSingleCache.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplateSingleCache.php new file mode 100644 index 0000000..3ac79db --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplateSingleCache.php @@ -0,0 +1,247 @@ +id = $template_id; + $this->license = $license; + + $this->init(); + + return $this; + } + + /** + * Provide settings. + * + * @since 1.6.8 + * + * @return array Settings array. + */ + protected function setup() { + + return [ + + // Remote source URL. + 'remote_source' => $this->remote_source(), + + // Cache file. + 'cache_file' => $this->get_cache_file_name(), + + // This filter is documented in wpforms/src/Admin/Builder/TemplatesCache.php. + // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WPForms.Comments.PHPDocHooks.RequiredHookDocumentation + 'cache_ttl' => (int) apply_filters( 'wpforms_admin_builder_templates_cache_ttl', WEEK_IN_SECONDS ), + ]; + } + + /** + * Generate single template remote URL. + * + * @since 1.6.8 + * + * @param bool $cache True if the cache arg should be appended to the URL. + * + * @return string + */ + private function remote_source( $cache = false ) { + + if ( ! isset( $this->license['key'] ) ) { + return ''; + } + + $args = [ + 'license' => $this->license['key'], + 'site' => site_url(), + ]; + + if ( $cache ) { + $args['cache'] = 1; + } + + return add_query_arg( + $args, + 'https://wpforms.com/templates/api/get/' . $this->id + ); + } + + /** + * Get cached data. + * + * @since 1.8.2 + * + * @return array Cached data. + */ + public function get() { + + $data = parent::get(); + + if ( ! $this->updated ) { + $this->update_usage_tracking(); + } + + return $data; + } + + /** + * Sends a request to update the form template usage tracking database. + * + * @since 1.7.5 + */ + private function update_usage_tracking() { + + $tasks = wpforms()->obj( 'tasks' ); + + if ( ! $tasks ) { + return; + } + + $url = $this->remote_source( true ); + $args = [ 'blocking' => false ]; + + $tasks->create( AsyncRequestTask::ACTION )->async()->params( $url, $args )->register(); + } + + /** + * Get cache directory path. + * + * @since 1.6.8 + */ + protected function get_cache_dir() { + + return parent::get_cache_dir() . 'templates/'; + } + + /** + * Generate single template cache file name. + * + * @since 1.6.8 + * + * @return string. + */ + private function get_cache_file_name() { + + return sanitize_key( $this->id ) . '.json'; + } + + /** + * Prepare data to store in a local cache. + * + * @since 1.6.8 + * + * @param array $data Raw data received by the remote request. + * + * @return array Prepared data for caching. + */ + protected function prepare_cache_data( $data ): array { + + if ( + empty( $data ) || + ! is_array( $data ) || + empty( $data['status'] ) || + $data['status'] !== 'success' || + empty( $data['data'] ) + ) { + return []; + } + + $cache_data = $data['data']; + $cache_data['data'] = empty( $cache_data['data'] ) ? [] : $cache_data['data']; + $cache_data['data']['settings'] = empty( $cache_data['data']['settings'] ) ? [] : $cache_data['data']['settings']; + $cache_data['data']['settings']['ajax_submit'] = '1'; + + // Strip the word "Template" from the end of the template name and form title setting. + $cache_data['name'] = preg_replace( '/\sTemplate$/', '', $cache_data['name'] ); + $cache_data['data']['settings']['form_title'] = $cache_data['name']; + + // Unset `From Name` field of the notification settings. + // By default, the builder will use the `blogname` option value. + unset( $cache_data['data']['settings']['notifications'][1]['sender_name'] ); + + return $cache_data; + } + + /** + * Wipe cache of an empty templates. + * + * @since 1.7.5 + */ + public function wipe_empty_templates_cache() { + + $cache_dir = $this->get_cache_dir(); + $files = glob( $cache_dir . '*.json' ); + + foreach ( $files as $filename ) { + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents + $content = file_get_contents( $filename ); + + if ( empty( $content ) || trim( $content ) === '[]' ) { + // phpcs:ignore WordPress.WP.AlternativeFunctions.unlink_unlink + unlink( $filename ); + } + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/Templates.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Templates.php new file mode 100644 index 0000000..bd1c4c6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/Templates.php @@ -0,0 +1,1308 @@ +allow_load() ) { + return; + } + + $this->init_license_data(); + $this->init_templates_data(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.8 + */ + protected function hooks() { + + add_action( 'admin_init', [ $this, 'create_form_on_request' ], 100 ); + add_filter( 'wpforms_form_templates_core', [ $this, 'add_templates_to_setup_panel' ], 20 ); + add_filter( 'wpforms_create_form_args', [ $this, 'apply_to_new_form' ], 10, 2 ); + add_filter( 'wpforms_save_form_args', [ $this, 'apply_to_existing_form' ], 10, 3 ); + add_action( 'admin_print_scripts', [ $this, 'upgrade_banner_template' ] ); + add_action( 'admin_print_scripts', [ $this, 'upgrade_lite_banner_template' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + add_action( 'wp_ajax_wpforms_templates_favorite', [ $this, 'ajax_save_favorites' ] ); + add_filter( 'wpforms_form_templates', [ $this, 'add_addons_templates' ] ); + } + + /** + * Enqueue assets for the Setup panel. + * + * @since 1.7.7 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'listjs', + WPFORMS_PLUGIN_URL . 'assets/lib/list.min.js', + [ 'jquery' ], + '2.3.0', + false + ); + + wp_enqueue_script( + 'wpforms-form-templates', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/form-templates{$min}.js", + [ 'underscore', 'wp-util', 'listjs' ], + WPFORMS_VERSION, + true + ); + + $strings = [ + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'admin_nonce' => wp_create_nonce( 'wpforms-admin' ), + 'nonce' => wp_create_nonce( 'wpforms-form-templates' ), + 'can_install_addons' => wpforms_can_install( 'addon' ), + 'activating' => esc_html__( 'Activating', 'wpforms-lite' ), + 'cancel' => esc_html__( 'Cancel', 'wpforms-lite' ), + 'heads_up' => esc_html__( 'Heads Up!', 'wpforms-lite' ), + 'install_confirm' => esc_html__( 'Install and activate', 'wpforms-lite' ), + 'activate_confirm' => esc_html__( 'Activate', 'wpforms-lite' ), + 'ok' => esc_html__( 'Ok', 'wpforms-lite' ), + 'template_addons_error' => esc_html__( 'Could not install OR activate all the required addons. Please download from wpforms.com and install them manually. Would you like to use the template anyway?', 'wpforms-lite' ), + 'use_template' => esc_html__( 'Yes, use template', 'wpforms-lite' ), + 'delete_template' => esc_html__( 'Yes, Delete', 'wpforms-lite' ), + 'delete_template_title' => esc_html__( 'Delete Form Template', 'wpforms-lite' ), + 'delete_template_content' => esc_html__( 'Are you sure you want to delete this form template? This cannot be undone.', 'wpforms-lite' ), + ]; + + if ( $strings['can_install_addons'] ) { + /* translators: %1$s - template name, %2$s - addon name(s). */ + $strings['template_addon_prompt'] = esc_html( sprintf( __( 'The %1$s template requires the %2$s. Would you like to install and activate it?', 'wpforms-lite' ), '%template%', '%addons%' ) ); + /* translators: %1$s - template name, %2$s - addon name(s). */ + $strings['template_addons_prompt'] = esc_html( sprintf( __( 'The %1$s template requires the %2$s. Would you like to install and activate all the required addons?', 'wpforms-lite' ), '%template%', '%addons%' ) ); + /* translators: %1$s - template name, %2$s - addon name(s). */ + $strings['template_addon_activate'] = esc_html( sprintf( __( 'The %1$s template requires the %2$s. Would you like to activate it?', 'wpforms-lite' ), '%template%', '%addons%' ) ); + } else { + /* translators: %s - addon name(s). */ + $single_form = esc_html( sprintf( __( "To use all of the features in this template, you'll need the %s. Contact your site administrator to install it, then try opening this template again.", 'wpforms-lite' ), '%addons%' ) ); + $strings['template_addon_prompt'] = $single_form; + $strings['template_addon_activate'] = $single_form; + /* translators: %s - addon name(s). */ + $strings['template_addons_prompt'] = esc_html( sprintf( __( "To use all of the features in this template, you'll need the %s. Contact your site administrator to install them, then try opening this template again.", 'wpforms-lite' ), '%addons%' ) ); + } + + wp_localize_script( + 'wpforms-form-templates', + 'wpforms_form_templates', + $strings + ); + + wp_localize_script( + 'wpforms-form-templates', + 'wpforms_addons', + $this->get_localized_addons() + ); + } + + /** + * Get localized addons. + * + * @since 1.8.2 + * + * @return array + */ + private function get_localized_addons() { + + return wpforms_chain( wpforms()->obj( 'addons' )->get_available() ) + ->map( + static function( $addon ) { + + return [ + 'title' => $addon['title'], + 'action' => $addon['action'], + 'url' => $addon['url'], + ]; + } + ) + ->value(); + } + + /** + * Init license data. + * + * @since 1.6.8 + */ + private function init_license_data() { + + $this->all_licenses = [ 'lite', 'basic', 'plus', 'pro', 'elite', 'agency', 'ultimate' ]; + + // User license data. + $this->license['key'] = wpforms_get_license_key(); + $this->license['type'] = wpforms_get_license_type(); + $this->license['type'] = in_array( $this->license['type'], [ 'agency', 'ultimate' ], true ) ? 'elite' : $this->license['type']; + $this->license['type'] = empty( $this->license['type'] ) ? 'lite' : $this->license['type']; + $this->license['index'] = array_search( $this->license['type'], $this->all_licenses, true ); + } + + /** + * Init templates and categories data. + * + * @since 1.6.8 + */ + private function init_templates_data() { + + // Get cached templates data. + $cache_obj = wpforms()->obj( 'builder_templates_cache' ); + + if ( ! $cache_obj ) { + return; + } + + $cache_data = $cache_obj->get(); + $templates_all = ! empty( $cache_data['templates'] ) ? $this->sort_templates_by_created_at( $cache_data['templates'] ) : []; + $this->categories = ! empty( $cache_data['categories'] ) ? $cache_data['categories'] : []; + $this->subcategories = ! empty( $cache_data['subcategories'] ) ? $cache_data['subcategories'] : []; + + $this->init_api_templates( $templates_all ); + } + + /** + * Sort templates by their created_at value in ascending order. + * + * @since 1.8.4 + * + * @param array $templates Templates to be sorted. + * + * @return array Sorted templates. + */ + private function sort_templates_by_created_at( array $templates ): array { + + uasort( + $templates, + static function ( $template_a, $template_b ) { + + if ( $template_a['created_at'] === $template_b['created_at'] ) { + return 0; + } + + return $template_a['created_at'] < $template_b['created_at'] ? -1 : 1; + } + ); + + return $templates; + } + + /** + * Determine if user's license level has access to the template. + * + * @since 1.6.8 + * + * @param array $template Template data. + * + * @return bool + */ + private function has_access( $template ) { + + if ( ! empty( $template['has_access'] ) ) { + return true; + } + + $template_licenses = empty( $template['license'] ) ? [] : array_map( 'strtolower', (array) $template['license'] ); + $has_access = true; + + foreach ( $template_licenses as $template_license ) { + + $has_access = $this->license['index'] >= array_search( $template_license, $this->all_licenses, true ); + + if ( $has_access ) { + break; + } + } + + return $has_access; + } + + /** + * Get favorites templates list. + * + * @since 1.7.7 + * + * @param bool $all Optional. True for getting all favorites lists. False by default. + * + * @return array + */ + public function get_favorites_list( $all = false ) { + + $favorites_list = (array) get_option( self::FAVORITE_TEMPLATES_OPTION, [] ); + + if ( $all ) { + return $favorites_list; + } + + $user_id = get_current_user_id(); + + return isset( $favorites_list[ $user_id ] ) ? $favorites_list[ $user_id ] : []; + } + + /** + * Update favorites templates list. + * + * @since 1.8.6 + */ + public function update_favorites_list() { + + $this->favorites_list = $this->get_favorites_list(); + } + + /** + * Determine if template is marked as favorite. + * + * @since 1.7.7 + * + * @param string $template_slug Template slug. + * + * @return bool + */ + public function is_favorite( $template_slug ) { + + if ( $this->favorites_list === null ) { + $this->update_favorites_list(); + } + + return isset( $this->favorites_list[ $template_slug ] ); + } + + /** + * Save favorites templates. + * + * @since 1.7.7 + */ + public function ajax_save_favorites(): void { + + if ( ! $this->is_valid_ajax_request() ) { + wp_send_json_error(); + } + + [ $template_slug, $favorite ] = $this->get_ajax_input(); + + $favorites = $this->get_favorites_list( true ); + $user_id = get_current_user_id(); + $is_favorite = $favorite === 'true'; + $is_exists = isset( $favorites[ $user_id ][ $template_slug ] ); + + if ( $is_favorite && $is_exists ) { + wp_send_json_success(); + } + + if ( $is_favorite ) { + $favorites[ $user_id ][ $template_slug ] = true; + } elseif ( $is_exists ) { + unset( $favorites[ $user_id ][ $template_slug ] ); + } + + update_option( self::FAVORITE_TEMPLATES_OPTION, $favorites ); + + // Update and save the template content cache. + $templates_cache_obj = wpforms()->obj( 'builder_templates_cache' ); + + if ( $templates_cache_obj ) { + $templates_cache_obj->wipe_content_cache(); + } + + wp_send_json_success(); + } + + /** + * Get AJAX input. + * + * @since 1.9.6 + * + * @return array + */ + protected function get_ajax_input(): array { + + // Nonce is checked in the is_valid_ajax_request() method. + // phpcs:disable WordPress.Security.NonceVerification.Missing + $template_slug = isset( $_POST['slug'] ) ? sanitize_text_field( wp_unslash( $_POST['slug'] ) ) : ''; + $favorite = isset( $_POST['favorite'] ) ? sanitize_key( wp_unslash( $_POST['favorite'] ) ) : ''; + + return [ $template_slug, $favorite ]; + // phpcs:enable WordPress.Security.NonceVerification.Missing + } + + /** + * Determine if the AJAX request is valid. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_valid_ajax_request(): bool { + + return check_ajax_referer( 'wpforms-form-templates', 'nonce', false ) && + wpforms_current_user_can( 'create_forms' ) && + isset( $_POST['slug'], $_POST['favorite'] ); + } + + /** + * Determine if the template exists and the customer has access to it. + * + * @since 1.7.5.3 + * + * @param string $slug Template slug or ID. + * + * @return bool + */ + public function is_valid_template( $slug ) { + + $template = $this->get_template_by_id( $slug ); + + if ( ! $template ) { + return ! empty( $this->get_template_by_slug( $slug ) ); + } + + $has_cache = wpforms()->obj( 'builder_template_single' )->instance( $template['id'], $this->license )->get(); + + return $this->has_access( $template ) && $has_cache; + } + + /** + * Determine license level of the template. + * + * @since 1.6.8 + * + * @param array $template Template data. + * + * @return string + */ + private function get_license_level( $template ) { + + $licenses_pro = [ 'basic', 'plus', 'pro' ]; + $licenses_template = (array) $template['license']; + + if ( + empty( $template['license'] ) || + in_array( 'lite', $licenses_template, true ) + ) { + return ''; + } + + foreach ( $licenses_pro as $license ) { + if ( in_array( $license, $licenses_template, true ) ) { + return 'pro'; + } + } + + return 'elite'; + } + + /** + * Get categories data. + * + * @since 1.6.8 + * + * @return array + */ + public function get_categories() { + + return $this->categories; + } + + /** + * Get subcategories data. + * + * @since 1.8.4 + * + * @return array + */ + public function get_subcategories() { + + return $this->subcategories; + } + + /** + * Get templates data. + * + * @since 1.6.8 + * + * @return array + */ + public function get_templates(): array { + + static $templates = []; + + if ( ! empty( $templates ) ) { + return $templates; + } + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Form templates available in the WPForms core plugin. + * + * @since 1.4.0 + * + * @param array $templates Core templates data. + */ + $core_templates = (array) apply_filters( 'wpforms_form_templates_core', [] ); + + /** + * Form templates available with the WPForms addons. + * Allows developers to provide additional templates with an addons. + * + * @since 1.4.0 + * + * @param array $templates Addons templates data. + */ + $additional_templates = (array) apply_filters( 'wpforms_form_templates', [] ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $templates = array_merge( $core_templates, $additional_templates ); + + // Generate and store the templates' hash. + $this->hash = wp_hash( wp_json_encode( $templates ) ); + + return $templates; + } + + /** + * Get templates' hash. + * + * @since 1.8.6 + * + * @return string + */ + public function get_hash(): string { + + if ( ! $this->hash ) { + $this->get_templates(); + } + + return $this->hash; + } + + /** + * Get single template data. + * + * @since 1.6.8 + * + * @param string $slug Template slug OR Id. + * + * @return array + */ + public function get_template( $slug ) { + + $template = $this->get_template_by_slug( $slug ); + + if ( ! $template ) { + $template = $this->get_template_by_id( $slug ); + } + + if ( empty( $template ) ) { + return []; + } + + if ( empty( $template['id'] ) ) { + return $template; + } + + // Attempt to get template with form data (if available). + $full_template = wpforms() + ->obj( 'builder_template_single' ) + ->instance( $template['id'], $this->license ) + ->get(); + + if ( ! empty( $full_template['data'] ) ) { + return $full_template; + } + + return $template; + } + + /** + * Get template data by slug. + * + * @since 1.7.5.3 + * + * @param string $slug Template slug. + * + * @return array + */ + private function get_template_by_slug( $slug ) { + + foreach ( $this->get_templates() as $template ) { + if ( ! empty( $template['slug'] ) && $template['slug'] === $slug ) { + return $template; + } + } + + return []; + } + + /** + * Get template data by Id. + * + * @since 1.6.8 + * + * @param string $id Template id. + * + * @return array + */ + private function get_template_by_id( $id ) { + + foreach ( $this->api_templates as $template ) { + if ( ! empty( $template['id'] ) && $template['id'] === $id ) { + return $template; + } + } + + return []; + } + + /** + * Add templates to the list on the Setup panel. + * + * @since 1.6.8 + * + * @param array $templates Templates list. + * + * @return array + */ + public function add_templates_to_setup_panel( $templates ) { + + return array_merge( $templates, $this->api_templates ); + } + + /** + * Add template data when form is created. + * + * @since 1.6.8 + * + * @param array $args Create form arguments. + * @param array $data Template data. + * + * @return array + */ + public function apply_to_new_form( $args, $data ) { + + if ( empty( $data ) || empty( $data['template'] ) ) { + return $args; + } + + $template = $this->get_template( $data['template'] ); + + if ( + empty( $template['data'] ) || + ! $this->has_access( $template ) + ) { + return $args; + } + + $template['data']['meta']['template'] = $template['id'] ?? $template['slug']; + $template['data']['meta']['category'] = $data['category'] ?? 'all'; + $template['data']['meta']['subcategory'] = $data['subcategory'] ?? 'all'; + + // Enable Notifications by default. + $template['data']['settings']['notification_enable'] = isset( $template['data']['settings']['notification_enable'] ) + ? $template['data']['settings']['notification_enable'] + : 1; + + // Unset settings that should be defined locally. + unset( + $template['data']['settings']['form_title'], + $template['data']['settings']['conversational_forms_title'], + $template['data']['settings']['form_pages_title'] + ); + + // Unset certain values for each Notification, since: + // - Email Subject Line field (subject) depends on the form name that is generated from the template name and form_id. + // - From Name field (sender_name) depends on the blog name and can be replaced by WP Mail SMTP plugin. + // - From Email field (sender_address) depends on the internal logic and can be replaced by WP Mail SMTP plugin. + if ( ! empty( $template['data']['settings']['notifications'] ) ) { + foreach ( (array) $template['data']['settings']['notifications'] as $key => $notification ) { + unset( + $template['data']['settings']['notifications'][ $key ]['subject'], + $template['data']['settings']['notifications'][ $key ]['sender_name'], + $template['data']['settings']['notifications'][ $key ]['sender_address'] + ); + } + } + + /** + * Allow modifying form data when a template is applied to the new form. + * + * @since 1.9.0 + * + * @param array $form_data New form data. + * @param array $template Template data. + */ + $template['data'] = (array) apply_filters( 'wpforms_admin_builder_templates_apply_to_new_form_modify_data', $template['data'], $template ); + + // Encode template data to post content. + $args['post_content'] = wpforms_encode( $template['data'] ); + + return $args; + } + + /** + * Add template data when form is updated. + * + * @since 1.6.8 + * + * @param array $form Form post data. + * @param array $data Form data. + * @param array $args Update form arguments. + * + * @return array + */ + public function apply_to_existing_form( $form, $data, $args ) { + + if ( empty( $args ) || empty( $args['template'] ) ) { + return $form; + } + + $template = $this->get_template( $args['template'] ); + + if ( + empty( $template['data'] ) || + ! $this->has_access( $template ) + ) { + return $form; + } + + $form_data = wpforms_decode( wp_unslash( $form['post_content'] ) ); + + // Something is wrong with the form data. + if ( empty( $form_data ) ) { + return $form; + } + + // Compile the new form data preserving needed data from the existing form. + $new = $template['data']; + $new['id'] = $form['ID'] ?? 0; + $new['field_id'] = $form_data['field_id'] ?? 0; + $new['settings'] = $form_data['settings'] ?? []; + $new['payments'] = $form_data['payments'] ?? []; + $new['meta'] = $form_data['meta'] ?? []; + + $template_id = $template['id'] ?? ''; + + // Preserve template ID `wpforms-user-template-{$form_id}` when overwriting it with another template. + if ( wpforms_is_form_template( $form['ID'] ) ) { + $template_id = $form_data['meta']['template'] ?? ''; + } + + $new['meta']['template'] = $template_id; + $new['meta']['category'] = ! empty( $args['category'] ) ? sanitize_text_field( $args['category'] ) : 'all'; + $new['meta']['subcategory'] = ! empty( $args['subcategory'] ) ? sanitize_text_field( $args['subcategory'] ) : 'all'; + + /** + * Allow modifying form data when a new template is applied. + * + * @since 1.7.9 + * + * @param array $new Updated form data. + * @param array $form_data Current form data. + * @param array $template Template data. + */ + $new = (array) apply_filters( 'wpforms_admin_builder_templates_apply_to_existing_form_modify_data', $new, $form_data, $template ); + + // Update the form with new data. + $form['post_content'] = wpforms_encode( $new ); + + return $form; + } + + /** + * Create a form on request. + * + * @since 1.6.8 + */ + public function create_form_on_request() { + + $template = $this->get_template_on_request(); + + // Just return if template not found OR user doesn't have access. + if ( empty( $template['has_access'] ) ) { + return; + } + + // Check if the template requires some addons. + if ( $this->check_template_required_addons( $template ) ) { + return; + } + + // Set form title equal to the template's name. + $form_title = ! empty( $template['name'] ) ? $template['name'] : esc_html__( 'New form', 'wpforms-lite' ); + $title_query = new WP_Query( + [ + 'post_type' => 'wpforms', + 'title' => $form_title, + 'posts_per_page' => 1, + 'fields' => 'ids', + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'no_found_rows' => true, + ] + ); + $title_exists = $title_query->post_count > 0; + $form_id = wpforms()->obj( 'form' )->add( + $form_title, + [], + [ + 'template' => $template['id'], + ] + ); + + // Return if something wrong. + if ( ! $form_id ) { + return; + } + + // Update form title if duplicated. + if ( $title_exists ) { + wpforms()->obj( 'form' )->update( + $form_id, + [ + 'settings' => [ + 'form_title' => $form_title . ' (ID #' . $form_id . ')', + ], + ] + ); + } + + $this->create_form_on_request_redirect( $form_id ); + } + + /** + * Get template data before creating a new form on request. + * + * @since 1.6.8 + * + * @return array|bool Template OR false. + */ + private function get_template_on_request() { + + if ( ! wpforms_is_admin_page( 'builder' ) || ! wpforms_is_admin_page( 'templates' ) ) { + return false; + } + + if ( ! wpforms_current_user_can( 'create_forms' ) ) { + return false; + } + + $form_id = isset( $_GET['form_id'] ) ? (int) $_GET['form_id'] : false; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + if ( ! empty( $form_id ) ) { + return false; + } + + $view = isset( $_GET['view'] ) ? sanitize_key( $_GET['view'] ) : 'setup'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + if ( $view !== 'setup' ) { + return false; + } + + $template_id = isset( $_GET['template_id'] ) ? sanitize_key( $_GET['template_id'] ) : false; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + // Attempt to get the template. + $template = $this->get_template( $template_id ); + + // Just return if template is not found. + if ( empty( $template ) ) { + return false; + } + + return $template; + } + + /** + * Redirect after creating the form. + * + * @since 1.6.8 + * + * @param integer $form_id Form ID. + */ + private function create_form_on_request_redirect( $form_id ) { + + // Redirect to the builder if possible. + if ( wpforms_current_user_can( 'edit_form_single', $form_id ) ) { + wp_safe_redirect( + add_query_arg( + [ + 'view' => 'fields', + 'form_id' => $form_id, + 'newform' => '1', + ], + admin_url( 'admin.php?page=wpforms-builder' ) + ) + ); + exit; + } + + // Redirect to the forms overview admin page if possible. + if ( wpforms_current_user_can( 'view_forms' ) ) { + wp_safe_redirect( + admin_url( 'admin.php?page=wpforms-overview' ) + ); + exit; + } + + // Finally, redirect to the admin dashboard. + wp_safe_redirect( admin_url() ); + exit; + } + + /** + * Check if the template requires some addons and then redirect to the builder for further interaction if needed. + * + * @since 1.6.8 + * + * @param array $template Template data. + * + * @return bool True if template requires some addons that are not yet installed and/or activated. + */ + private function check_template_required_addons( $template ) { + + // Return false if none addons required. + if ( empty( $template['addons'] ) ) { + return false; + } + + $required_addons = wpforms()->obj( 'addons' )->get_by_slugs( $template['addons'] ); + + foreach ( $required_addons as $i => $addon ) { + if ( empty( $addon['action'] ) || ! in_array( $addon['action'], [ 'install', 'activate' ], true ) ) { + unset( $required_addons[ $i ] ); + } + } + + // Return false if not need to install or activate any addons. + // We can proceed with creating the form directly in this process. + if ( empty( $required_addons ) ) { + return false; + } + + // Otherwise return true. + return true; + } + + /** + * Render the upgrade banner template. + * + * This method generates the HTML template for the upgrade banner, which includes + * a title, description, and a button that links to the upgrade page. + * + * @param string $title The title to be displayed in the banner. + * @param string $description The description to be displayed in the banner. + * + * @since 1.9.4 + */ + private function render_upgrade_banner_template( string $title, string $description ): void { + + $medium = wpforms_is_admin_page( 'templates' ) ? 'Form Templates Subpage' : 'Builder Templates'; + + ?> + + is_pro() ) { + return; + } + + $title = sprintf( + /* translators: %d - templates count. */ + esc_html__( 'Get Access to Our Complete Library of %d+ Form Templates', 'wpforms-lite' ), + esc_html( floor( count( $this->get_templates() ) / 1000 ) * 1000 ) + ); + $description = esc_html__( 'Save time and reduce effort with our pre-built form templates covering popular use-cases in business operations, customer service, feedback, marketing, registrations, event planning, non-profit, healthcare, and education.', 'wpforms-lite' ); + + $this->render_upgrade_banner_template( $title, $description ); + } + + /** + * Render upgrade banner for lite version. + * + * @since 1.9.4 + */ + public function upgrade_lite_banner_template(): void { + + if ( wpforms()->is_pro() ) { + return; + } + + $title = sprintf( + /* translators: %d - templates count. */ + esc_html__( 'Get Access to Our Library of %d+ Pre-Made Form Templates', 'wpforms-lite' ), + esc_html( floor( count( $this->get_templates() ) / 1000 ) * 1000 ) + ); + $description = esc_html__( 'Never start from scratch again! While WPForms Lite allows you to create any type of form, you can save even more time with WPForms Pro. Upgrade to access hundreds more form templates and advanced form fields.', 'wpforms-lite' ); + + $this->render_upgrade_banner_template( $title, $description ); + } + + /** + * Add additional addons templates. + * + * @since 1.8.9 + * + * @param array $templates Templates list. + * + * @return array + */ + public function add_addons_templates( array $templates ): array { + + // Add User Registration templates only if the addon is not active. + if ( ! wpforms()->obj( 'addons' )->is_active( 'user-registration' ) ) { + $templates = $this->add_user_registration_templates( $templates ); + } + + // Add Post Submissions templates only if the addon is not active. + if ( ! wpforms()->obj( 'addons' )->is_active( 'post-submissions' ) ) { + $templates = $this->add_post_submissions_templates( $templates ); + } + + // Add Survey and Poll templates only if the addon is not active. + if ( ! wpforms()->obj( 'addons' )->is_active( 'surveys-polls' ) ) { + $templates = $this->add_surveys_polls_templates( $templates ); + } + + return $templates; + } + + /** + * Add User Registration templates. + * + * @since 1.8.9 + * + * @param array $templates Templates list. + * + * @return array + */ + private function add_user_registration_templates( array $templates ): array { + + $user_registration_templates = [ + [ + 'name' => esc_html__( 'User Registration Form', 'wpforms-lite' ), + 'slug' => 'user_registration', + 'addons' => [ 'user-registration' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Create customized WordPress user registration forms and add them anywhere on your website.', 'wpforms-lite' ), + ], + [ + 'name' => esc_html__( 'User Login Form', 'wpforms-lite' ), + 'slug' => 'user_login', + 'addons' => [ 'user-registration' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Allow your users to easily log in to your site with their username and password.', 'wpforms-lite' ), + ], + [ + 'name' => esc_html__( 'User Password Reset Form', 'wpforms-lite' ), + 'slug' => 'user_reset', + 'addons' => [ 'user-registration' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Allow your users to easily reset their password.', 'wpforms-lite' ), + ], + ]; + + return array_merge( $templates, $user_registration_templates ); + } + + /** + * Add Post Submissions templates. + * + * @since 1.8.9 + * + * @param array $templates Templates list. + * + * @return array + */ + private function add_post_submissions_templates( array $templates ): array { + + $post_submissions_templates = [ + [ + 'name' => esc_html__( 'Blog Post Submission Form', 'wpforms-lite' ), + 'slug' => 'post_submission', + 'addons' => [ 'post-submissions' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'User-submitted content made easy. Allow your users to submit guest blog posts in WordPress. You can add and remove fields as needed.', 'wpforms-lite' ), + ], + ]; + + return array_merge( $templates, $post_submissions_templates ); + } + + /** + * Add Surveys and Polls templates. + * + * @since 1.8.9 + * + * @param array $templates Templates list. + * + * @return array + */ + private function add_surveys_polls_templates( array $templates ): array { + + $surveys_polls_templates = [ + [ + 'name' => esc_html__( 'Survey Form', 'wpforms-lite' ), + 'slug' => 'survey', + 'addons' => [ 'surveys-polls' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Collect customer feedback, then generate survey reports to determine satisfaction and spot trends.', 'wpforms-lite' ), + ], + [ + 'name' => esc_html__( 'Poll Form', 'wpforms-lite' ), + 'slug' => 'poll', + 'addons' => [ 'surveys-polls' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Ask visitors a question and display the results after they provide an answer.', 'wpforms-lite' ), + ], + [ + 'name' => esc_html__( 'NPS Survey Simple Form', 'wpforms-lite' ), + 'slug' => 'nps-survey-simple', + 'addons' => [ 'surveys-polls' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Find out if your clients or customers would recommend you to someone else with this basic Net Promoter Score survey template.', 'wpforms-lite' ), + ], + [ + 'name' => esc_html__( 'NPS Survey Enhanced Form', 'wpforms-lite' ), + 'slug' => 'nps-survey-enhanced', + 'addons' => [ 'surveys-polls' ], + 'license' => $this->get_license_level( [ 'license' => [ 'pro' ] ] ), + 'has_access' => $this->has_access( [ 'license' => [ 'pro' ] ] ), + 'source' => 'wpforms-addon', + 'description' => esc_html__( 'Measure customer loyalty and find out exactly what they are thinking with this enhanced Net Promoter Score survey template.', 'wpforms-lite' ), + ], + ]; + + return array_merge( $templates, $surveys_polls_templates ); + } + + /** + * Init API templates. + * + * @since 1.9.1 + * + * @param array $templates_all All templates. + * + * @return void + */ + private function init_api_templates( array $templates_all ) { + + // Higher priority templates slugs. + // These remote templates are the replication of the default templates, + // which were previously included with the WPForms plugin. + $higher_templates_slugs = [ + 'simple-contact-form-template', + 'request-a-quote-form-template', + 'donation-form-template', + 'billing-order-form-template', + 'newsletter-signup-form-template', + 'suggestion-form-template', + ]; + + $templates_access_higher = []; + $templates_access = []; + $templates_deny_higher = []; + $templates_deny = []; + + /** + * The form template was moved to wpforms/includes/templates/class-simple-contact-form.php file. + * + * @since 1.7.5.3 + */ + unset( $templates_all['simple-contact-form-template'] ); + + foreach ( $templates_all as $i => $template ) { + $template['has_access'] = $this->has_access( $template ); + $template['favorite'] = $this->is_favorite( $i ); + $template['license'] = $this->get_license_level( $template ); + $template['source'] = 'wpforms-api'; + $template['categories'] = ! empty( $template['categories'] ) ? array_keys( $template['categories'] ) : []; + + $is_higher = in_array( $i, $higher_templates_slugs, true ); + + if ( $template['has_access'] ) { + if ( $is_higher ) { + $templates_access_higher[ $i ] = $template; + } else { + $templates_access[ $i ] = $template; + } + } elseif ( $is_higher ) { + $templates_deny_higher[ $i ] = $template; + } else { + $templates_deny[ $i ] = $template; + } + } + + // Sort higher priority templates according to the slug order. + $templates_access_higher = array_replace( array_flip( $higher_templates_slugs ), $templates_access_higher ); + $templates_access_higher = array_filter( $templates_access_higher, 'is_array' ); + + // Finally, merge templates from API. + $this->api_templates = array_merge( + $templates_access_higher, + $templates_access, + $templates_deny_higher, + $templates_deny + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplatesCache.php b/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplatesCache.php new file mode 100644 index 0000000..872d70c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplatesCache.php @@ -0,0 +1,267 @@ + 'templates-admin-page.html', + 'builder' => 'templates-builder.html', + ]; + + /** + * List of plugins that can use the templates cache. + * + * @since 1.8.7 + * + * @var array + */ + const PLUGINS = [ + 'wpforms', + 'wpforms-lite', + ]; + + /** + * Determine if the class is allowed to load. + * + * @since 1.6.8 + * + * @return bool + */ + protected function allow_load(): bool { + + $has_permissions = wpforms_current_user_can( [ 'create_forms', 'edit_forms' ] ); + $allowed_requests = wpforms_is_admin_ajax() || + wpforms_is_admin_page( 'builder' ) || + wpforms_is_admin_page( 'templates' ) || + wpforms_is_admin_page( 'tools', 'action-scheduler' ); + $allow = wp_doing_cron() || wpforms_doing_wp_cli() || ( $has_permissions && $allowed_requests ); + + /** + * Whether to load this class. + * + * @since 1.7.2 + * + * @param bool $allow True or false. + */ + return (bool) apply_filters( 'wpforms_admin_builder_templatescache_allow_load', $allow ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Initialize the class. + * + * @since 1.8.7 + */ + public function init() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + parent::init(); + + // Upgrade cached templates data after the plugin update. + add_action( 'upgrader_process_complete', [ $this, 'upgrade_templates' ] ); + } + + /** + * Upgrade cached templates data after the plugin update. + * + * @since 1.8.7 + * + * @param object $upgrader WP_Upgrader instance. + */ + public function upgrade_templates( $upgrader ) { + + if ( $this->allow_update_cache( $upgrader ) ) { + $this->update( true ); + } + } + + /** + * Determine if allowed to update the cache. + * + * @since 1.8.7 + * + * @param object $upgrader WP_Upgrader instance. + * + * @return bool + */ + private function allow_update_cache( $upgrader ): bool { + + $result = $upgrader->result ?? null; + + // Check if plugin was updated. + if ( ! $result ) { + return false; + } + + // Check if updated plugin is WPForms. + if ( ! in_array( $result['destination_name'], self::PLUGINS, true ) ) { + return false; + } + + return true; + } + + /** + * Provide settings. + * + * @since 1.6.8 + * + * @return array Settings array. + */ + protected function setup() { + + return [ + + // Remote source URL. + 'remote_source' => 'https://wpforms.com/templates/api/get/', + + // Cache file. + 'cache_file' => 'templates.json', + + /** + * Time-to-live of the templates cache files in seconds. + * + * This applies to `uploads/wpforms/cache/templates.json` + * and all *.json files in `uploads/wpforms/cache/templates/` directory. + * + * @since 1.6.8 + * + * @param integer $cache_ttl Cache time-to-live, in seconds. + * Default value: WEEK_IN_SECONDS. + */ + 'cache_ttl' => (int) apply_filters( 'wpforms_admin_builder_templates_cache_ttl', WEEK_IN_SECONDS ), + + // Scheduled update action. + 'update_action' => 'wpforms_admin_builder_templates_cache_update', + ]; + } + + /** + * Prepare data to store in a local cache. + * + * @since 1.6.8 + * + * @param array $data Raw data received by the remote request. + * + * @return array Prepared data for caching. + */ + protected function prepare_cache_data( $data ): array { + + if ( + empty( $data ) || + ! is_array( $data ) || + empty( $data['status'] ) || + $data['status'] !== 'success' || + empty( $data['data'] ) + ) { + return []; + } + + $cache_data = $data['data']; + + // Strip the word "Template" from the end of each template name. + foreach ( $cache_data['templates'] as $slug => $template ) { + $cache_data['templates'][ $slug ]['name'] = preg_replace( '/\sTemplate$/', '', $template['name'] ); + } + + return $cache_data; + } + + /** + * Update the cache. + * + * @since 1.8.6 + * + * @param bool $force Whether to force update the cache. + * + * @return bool + */ + public function update( bool $force = false ): bool { + + $result = parent::update( $force ); + + if ( ! $result ) { + return false; + } + + $this->wipe_content_cache(); + + return $result; + } + + /** + * Get cached templates content. + * + * @since 1.8.6 + * + * @return string + */ + public function get_content_cache(): string { + + // phpcs:ignore Universal.Operators.DisallowShortTernary.Found + return File::get_contents( $this->get_content_cache_file() ) ?: ''; + } + + /** + * Save templates content cache. + * + * @since 1.8.6 + * + * @param string|mixed $content Templates content. + * + * @return bool + */ + public function save_content_cache( $content ): bool { + + return File::put_contents( $this->get_content_cache_file(), (string) $content ); + } + + /** + * Wipe cached templates content. + * + * @since 1.8.6 + */ + public function wipe_content_cache() { + + $cache_dir = $this->get_cache_dir(); + + // Delete the template content cache files. They will be regenerated on the first visit. + foreach ( self::CONTENT_CACHE_FILES as $file ) { + + $cache_file = $cache_dir . $file; + + if ( is_file( $cache_file ) && is_readable( $cache_file ) ) { + // phpcs:ignore WordPress.WP.AlternativeFunctions.unlink_unlink + unlink( $cache_file ); + } + } + } + + /** + * Get templates content cache file path. + * + * @since 1.8.6 + * + * @return string + */ + private function get_content_cache_file(): string { + + $context = wpforms_is_admin_page( 'templates' ) ? 'admin-page' : 'builder'; + + return File::get_cache_dir() . self::CONTENT_CACHE_FILES[ $context ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Challenge.php b/wp-content/plugins/wpforms-lite/src/Admin/Challenge.php new file mode 100644 index 0000000..f0fa8c1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Challenge.php @@ -0,0 +1,772 @@ +hooks(); + } + } + + /** + * Hooks. + * + * @since 1.5.0 + */ + public function hooks() { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); + add_action( 'wpforms_builder_init', [ $this, 'init_challenge' ] ); + add_action( 'admin_footer', [ $this, 'challenge_html' ] ); + add_action( 'wpforms_welcome_intro_after', [ $this, 'welcome_html' ] ); + + add_action( 'wp_ajax_wpforms_challenge_save_option', [ $this, 'save_challenge_option_ajax' ] ); + add_action( 'wp_ajax_wpforms_challenge_send_contact_form', [ $this, 'send_contact_form_ajax' ] ); + } + + /** + * Check if the current page is related to Challenge. + * + * @since 1.5.0 + */ + public function is_challenge_page() { + + return wpforms_is_admin_page() || + $this->is_builder_page() || + $this->is_form_embed_page(); + } + + /** + * Check if the current page is a forms builder page related to Challenge. + * + * @since 1.5.0 + * + * @return bool + */ + public function is_builder_page() { + + if ( ! wpforms_is_admin_page( 'builder' ) ) { + return false; + } + + if ( ! $this->challenge_active() && ! $this->challenge_inited() ) { + return false; + } + + $step = (int) $this->get_challenge_option( 'step' ); + $form_id = (int) $this->get_challenge_option( 'form_id' ); + + if ( $form_id && $step < 2 ) { + return false; + } + + $current_form_id = isset( $_GET['form_id'] ) ? (int) $_GET['form_id'] : 0; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $is_new_form = isset( $_GET['newform'] ) ? (int) $_GET['newform'] : 0; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + if ( $is_new_form && $step !== 2 ) { + return false; + } + + if ( ! $is_new_form && $form_id !== $current_form_id && $step >= 2 ) { + + // In case if user skipped the Challenge by closing the browser window or exiting the builder, + // we need to set the previous Challenge as `canceled`. + // Otherwise, the Form Embed Wizard will think that the Challenge is active. + $this->set_challenge_option( + [ + 'status' => 'skipped', + 'finished_date_gmt' => current_time( 'mysql', true ), + ] + ); + + return false; + } + + return true; + } + + /** + * Check if the current page is a form embed page edit related to Challenge. + * + * @since 1.5.0 + * + * @return bool + */ + public function is_form_embed_page() { + + if ( ! function_exists( 'get_current_screen' ) || ! is_admin() || ! is_user_logged_in() ) { + return false; + } + + $screen = get_current_screen(); + + if ( ! isset( $screen->id ) || $screen->id !== 'page' || ! $this->challenge_active() ) { + return false; + } + + $step = $this->get_challenge_option( 'step' ); + + if ( ! in_array( $step, [ 3, 4, 5 ], true ) ) { + return false; + } + + $embed_page = $this->get_challenge_option( 'embed_page' ); + $is_embed_page = false; + + if ( isset( $screen->action ) && $screen->action === 'add' && $embed_page === 0 ) { + $is_embed_page = true; + } + + if ( isset( $_GET['post'] ) && $embed_page === (int) $_GET['post'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $is_embed_page = true; + } + + if ( $is_embed_page && $step < 4 ) { + $this->set_challenge_option( [ 'step' => 4 ] ); + } + + return $is_embed_page; + } + + /** + * Load scripts and styles. + * + * @since 1.5.0 + */ + public function enqueue_scripts() { + + if ( ! $this->challenge_can_start() && ! $this->challenge_active() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + if ( $this->is_challenge_page() ) { + + wp_enqueue_style( + 'wpforms-challenge', + WPFORMS_PLUGIN_URL . "assets/css/challenge{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_script( + 'wpforms-challenge-admin', + WPFORMS_PLUGIN_URL . "assets/js/admin/challenge/challenge-admin{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-challenge-admin', + 'wpforms_challenge_admin', + [ + 'nonce' => wp_create_nonce( 'wpforms_challenge_ajax_nonce' ), + 'minutes_left' => absint( $this->minutes ), + 'option' => $this->get_challenge_option(), + 'frozen_tooltip' => esc_html__( 'Challenge is frozen.', 'wpforms-lite' ), + ] + ); + } + + if ( $this->is_builder_page() || $this->is_form_embed_page() ) { + + wp_enqueue_style( + 'tooltipster', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.tooltipster/jquery.tooltipster.min.css', + null, + '4.2.6' + ); + + wp_enqueue_script( + 'tooltipster', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.tooltipster/jquery.tooltipster.min.js', + [ 'jquery' ], + '4.2.6', + true + ); + + wp_enqueue_script( + 'wpforms-challenge-core', + WPFORMS_PLUGIN_URL . "assets/js/admin/challenge/challenge-core{$min}.js", + [ 'jquery', 'tooltipster', 'wpforms-challenge-admin', 'wpforms-generic-utils' ], + WPFORMS_VERSION, + true + ); + } + + if ( $this->is_builder_page() ) { + + wp_enqueue_script( + 'wpforms-challenge-builder', + WPFORMS_PLUGIN_URL . "assets/js/admin/challenge/challenge-builder{$min}.js", + [ 'jquery', 'tooltipster', 'wpforms-challenge-core', 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + } + + if ( $this->is_form_embed_page() ) { + + wp_enqueue_style( + 'wpforms-font-awesome', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/all.min.css', + null, + '7.0.1' + ); + + // FontAwesome v4 compatibility shims. + wp_enqueue_style( + 'wpforms-font-awesome-v4-shim', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/v4-shims.min.css', + null, + '4.7.0' + ); + + wp_enqueue_script( + 'wpforms-challenge-embed', + WPFORMS_PLUGIN_URL . "assets/js/admin/challenge/challenge-embed{$min}.js", + [ 'jquery', 'tooltipster', 'wpforms-challenge-core' ], + WPFORMS_VERSION, + true + ); + } + } + + /** + * Get 'wpforms_challenge' option schema. + * + * @since 1.5.0 + * + * @return array + */ + public function get_challenge_option_schema() { + + return [ + 'status' => '', + 'step' => 0, + 'user_id' => get_current_user_id(), + 'form_id' => 0, + 'embed_page' => 0, + 'embed_page_title' => '', + 'started_date_gmt' => '', + 'finished_date_gmt' => '', + 'seconds_spent' => 0, + 'seconds_left' => 0, + 'feedback_sent' => false, + 'feedback_contact_me' => false, + 'window_closed' => '', + ]; + } + + /** + * Get Challenge parameter(s) from Challenge option. + * + * @since 1.5.0 + * + * @param array|string|null $query Query using 'wpforms_challenge' schema keys. + * + * @return array|mixed + */ + public function get_challenge_option( $query = null ) { + + if ( ! $query ) { + return get_option( 'wpforms_challenge' ); + } + + $return_single = false; + + if ( ! is_array( $query ) ) { + $return_single = true; + $query = [ $query ]; + } + + $query = array_flip( $query ); + + $option = get_option( 'wpforms_challenge' ); + + if ( ! $option || ! is_array( $option ) ) { + return array_intersect_key( $this->get_challenge_option_schema(), $query ); + } + + $result = array_intersect_key( $option, $query ); + + if ( $return_single ) { + $result = reset( $result ); + } + + return $result; + } + + /** + * Set Challenge parameter(s) to Challenge option. + * + * @since 1.5.0 + * + * @param array $query Query using 'wpforms_challenge' schema keys. + */ + public function set_challenge_option( $query ) { + + if ( empty( $query ) || ! is_array( $query ) ) { + return; + } + + $schema = $this->get_challenge_option_schema(); + $replace = array_intersect_key( $query, $schema ); + + if ( ! $replace ) { + return; + } + + // Validate and sanitize the data. + foreach ( $replace as $key => $value ) { + if ( in_array( $key, [ 'step', 'user_id', 'form_id', 'embed_page', 'seconds_spent', 'seconds_left' ], true ) ) { + $replace[ $key ] = absint( $value ); + + continue; + } + if ( in_array( $key, [ 'feedback_sent', 'feedback_contact_me' ], true ) ) { + $replace[ $key ] = wp_validate_boolean( $value ); + + continue; + } + $replace[ $key ] = sanitize_text_field( $value ); + } + + $option = get_option( 'wpforms_challenge' ); + $option = ! $option || ! is_array( $option ) ? $schema : $option; + + update_option( 'wpforms_challenge', array_merge( $option, $replace ) ); + } + + /** + * Check if any forms are present on a site. + * + * @since 1.5.0 + * + * @retun bool + */ + public function website_has_forms() { + + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters + return (bool) wpforms()->obj( 'form' )->get( + '', + [ + 'numberposts' => 1, + 'nopaging' => false, + 'fields' => 'ids', + 'no_found_rows' => true, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'suppress_filters' => true, // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters + ] + ); + } + + /** + * Check if Challenge was started. + * + * @since 1.5.0 + * + * @return bool + */ + public function challenge_started() { + + return $this->get_challenge_option( 'status' ) === 'started'; + } + + /** + * Check if Challenge was initialized. + * + * @since 1.6.2 + * + * @return bool + */ + public function challenge_inited() { + + return $this->get_challenge_option( 'status' ) === 'inited'; + } + + /** + * Check if Challenge was paused. + * + * @since 1.6.2 + * + * @return bool + */ + public function challenge_paused() { + + return $this->get_challenge_option( 'status' ) === 'paused'; + } + + /** + * Check if Challenge was finished. + * + * @since 1.5.0 + * + * @return bool + */ + public function challenge_finished() { + + $status = $this->get_challenge_option( 'status' ); + + return in_array( $status, [ 'completed', 'canceled', 'skipped' ], true ); + } + + /** + * Check if Challenge is in progress. + * + * @since 1.5.0 + * + * @return bool + */ + public function challenge_active() { + + return ( $this->challenge_inited() || $this->challenge_started() || $this->challenge_paused() ) && ! $this->challenge_finished(); + } + + /** + * Force Challenge to start. + * + * @since 1.6.2 + * + * @return bool + */ + public function challenge_force_start() { + + /** + * Allow force start Challenge for testing purposes. + * + * @since 1.6.2.2 + * + * @param bool $is_forced True if Challenge should be started. False by default. + */ + return (bool) apply_filters( 'wpforms_admin_challenge_force_start', false ); + } + + /** + * Check if Challenge can be started. + * + * @since 1.5.0 + * + * @return bool + */ + public function challenge_can_start() { + + static $can_start = null; + + if ( $can_start !== null ) { + return $can_start; + } + + if ( $this->challenge_force_skip() ) { + $can_start = false; + } + + // Challenge is only available on WPForms admin pages or Builder page. + if ( ! wpforms_is_admin_page() && ! wpforms_is_admin_page( 'builder' ) ) { + $can_start = false; + + // No need to check something else in this case. + return false; + } + + // The challenge should not start if this is the Forms' Overview page. + if ( wpforms_is_admin_page( 'overview' ) ) { + $can_start = false; + + // No need to check something else in this case. + return false; + } + + // Force start the Challenge. + if ( $this->challenge_force_start() && ! $this->is_builder_page() && ! $this->is_form_embed_page() ) { + $can_start = true; + + // No need to check something else in this case. + return true; + } + + if ( $this->challenge_finished() ) { + $can_start = false; + } + + if ( $this->website_has_forms() ) { + $can_start = false; + } + + if ( $can_start === null ) { + $can_start = true; + } + + return $can_start; + } + + /** + * Start the Challenge in Form Builder. + * + * @since 1.5.0 + */ + public function init_challenge() { + + if ( ! $this->challenge_can_start() ) { + return; + } + + $this->set_challenge_option( + wp_parse_args( + [ 'status' => 'inited' ], + $this->get_challenge_option_schema() + ) + ); + } + + /** + * Include Challenge HTML. + * + * @since 1.5.0 + */ + public function challenge_html() { + + if ( $this->challenge_force_skip() || ( $this->challenge_finished() && ! $this->challenge_force_start() ) ) { + return; + } + + if ( wpforms_is_admin_page() && ! wpforms_is_admin_page( 'getting-started' ) && $this->challenge_can_start() ) { + + // Before showing the Challenge in the `start` state we should reset the option. + // In this way we ensure the Challenge will not appear somewhere in the builder where it is not should be. + $this->set_challenge_option( [ 'status' => '' ] ); + $this->challenge_modal_html( 'start' ); + } + + if ( $this->is_builder_page() ) { + $this->challenge_modal_html( 'progress' ); + $this->challenge_builder_templates_html(); + } + + if ( $this->is_form_embed_page() ) { + $this->challenge_modal_html( 'progress' ); + $this->challenge_embed_templates_html(); + } + } + + /** + * Include Challenge main modal window HTML. + * + * @since 1.5.0 + * + * @param string $state State of Challenge ('start' or 'progress'). + */ + public function challenge_modal_html( $state ) { + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/challenge/modal', + [ + 'state' => $state, + 'step' => $this->get_challenge_option( 'step' ), + 'minutes' => $this->minutes, + ], + true + ); + } + + /** + * Include Challenge HTML templates specific to Form Builder. + * + * @since 1.5.0 + */ + public function challenge_builder_templates_html() { + + echo wpforms_render( 'admin/challenge/builder' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + + /** + * Include Challenge HTML templates specific to form embed page. + * + * @since 1.5.0 + */ + public function challenge_embed_templates_html() { + + /** + * Filter the content of the Challenge Congrats popup footer. + * + * @since 1.7.4 + * + * @param string $footer Footer markup. + */ + $congrats_popup_footer = apply_filters( 'wpforms_admin_challenge_embed_template_congrats_popup_footer', '' ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'admin/challenge/embed', + [ + 'minutes' => $this->minutes, + 'congrats_popup_footer' => $congrats_popup_footer, + ], + true + ); + } + + /** + * Include Challenge CTA on WPForms welcome activation screen. + * + * @since 1.5.0 + */ + public function welcome_html() { + + if ( $this->challenge_can_start() ) { + echo wpforms_render( 'admin/challenge/welcome' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + } + + /** + * Save Challenge data via AJAX. + * + * @since 1.5.0 + */ + public function save_challenge_option_ajax() { + + check_admin_referer( 'wpforms_challenge_ajax_nonce' ); + + if ( empty( $_POST['option_data'] ) ) { + wp_send_json_error(); + } + + $schema = $this->get_challenge_option_schema(); + $query = []; + + foreach ( $schema as $key => $value ) { + if ( isset( $_POST['option_data'][ $key ] ) ) { + $query[ $key ] = sanitize_text_field( wp_unslash( $_POST['option_data'][ $key ] ) ); + } + } + + if ( empty( $query ) ) { + wp_send_json_error(); + } + + if ( ! empty( $query['status'] ) && $query['status'] === 'started' ) { + $query['started_date_gmt'] = current_time( 'mysql', true ); + } + + if ( ! empty( $query['status'] ) && in_array( $query['status'], [ 'completed', 'canceled', 'skipped' ], true ) ) { + $query['finished_date_gmt'] = current_time( 'mysql', true ); + } + + if ( ! empty( $query['status'] ) && $query['status'] === 'skipped' ) { + $query['started_date_gmt'] = current_time( 'mysql', true ); + $query['finished_date_gmt'] = $query['started_date_gmt']; + } + + $this->set_challenge_option( $query ); + + wp_send_json_success(); + } + + /** + * Send contact form to wpforms.com via AJAX. + * + * @since 1.5.0 + */ + public function send_contact_form_ajax() { + + check_admin_referer( 'wpforms_challenge_ajax_nonce' ); + + $url = 'https://wpforms.com/wpforms-challenge-feedback/'; + $message = ! empty( $_POST['contact_data']['message'] ) ? sanitize_textarea_field( wp_unslash( $_POST['contact_data']['message'] ) ) : ''; + $email = ''; + + if ( + ( ! empty( $_POST['contact_data']['contact_me'] ) && $_POST['contact_data']['contact_me'] === 'true' ) + || wpforms()->is_pro() + ) { + $current_user = wp_get_current_user(); + $email = $current_user->user_email; + $this->set_challenge_option( [ 'feedback_contact_me' => true ] ); + } + + if ( empty( $message ) && empty( $email ) ) { + wp_send_json_error(); + } + + $data = [ + 'body' => [ + 'wpforms' => [ + 'id' => 296355, + 'submit' => 'wpforms-submit', + 'fields' => [ + 2 => $message, + 3 => $email, + 4 => $this->get_challenge_license_type(), + 5 => wpforms()->version, + 6 => wpforms_get_license_key(), + ], + ], + ], + ]; + + $response = wp_remote_post( $url, $data ); + + if ( is_wp_error( $response ) ) { + wp_send_json_error(); + } + + $this->set_challenge_option( [ 'feedback_sent' => true ] ); + wp_send_json_success(); + } + + /** + * Get the current WPForms license type as it pertains to the challenge feedback form. + * + * @since 1.8.1 + * + * @return string The currently active license type. + */ + private function get_challenge_license_type() { + + $license_type = wpforms_get_license_type(); + + if ( $license_type === false ) { + $license_type = wpforms()->is_pro() ? 'Unknown' : 'Lite'; + } + + return ucfirst( $license_type ); + } + + /** + * Force WPForms Challenge to skip. + * + * @since 1.7.6 + * + * @return bool + */ + private function challenge_force_skip() { + + return defined( 'WPFORMS_SKIP_CHALLENGE' ) && WPFORMS_SKIP_CHALLENGE; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Dashboard/Widget.php b/wp-content/plugins/wpforms-lite/src/Admin/Dashboard/Widget.php new file mode 100644 index 0000000..78e945d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Dashboard/Widget.php @@ -0,0 +1,303 @@ +widget_meta( 'set', $meta, $value ); + + exit(); + } + + /** + * Get/set a widget meta. + * + * @since 1.7.4 + * + * @param string $action Possible value: 'get' or 'set'. + * @param string $meta Meta name. + * @param int $value Value to set. + * + * @return mixed + */ + protected function widget_meta( $action, $meta, $value = 0 ) { + + $allowed_actions = [ 'get', 'set' ]; + + if ( ! in_array( $action, $allowed_actions, true ) ) { + return false; + } + + $defaults = [ + 'timespan' => $this->get_timespan_default(), + 'active_form_id' => 0, + 'hide_recommended_block' => 0, + 'hide_graph' => 0, + 'color_scheme' => 1, // 1 - wpforms, 2 - wp + 'graph_style' => 2, // 1 - bar, 2 - line + ]; + + if ( ! array_key_exists( $meta, $defaults ) ) { + return false; + } + + $meta_key = 'wpforms_' . static::SLUG . '_' . $meta; + $user_id = get_current_user_id(); + + if ( $action === 'get' ) { + $meta_value = absint( get_user_meta( $user_id, $meta_key, true ) ); + // Return a default value from $defaults if $meta_value is empty. + + return empty( $meta_value ) ? $defaults[ $meta ] : $meta_value; + } + + $value = absint( $value ); + + if ( $action === 'set' && ! empty( $value ) ) { + return update_user_meta( $user_id, $meta_key, $value ); + } + + if ( $action === 'set' && empty( $value ) ) { + return delete_user_meta( $user_id, $meta_key ); + } + + return false; + } + + /** + * Get the default timespan option. + * + * @since 1.7.4 + * + * @return int|null + */ + protected function get_timespan_default() { + + $options = $this->get_timespan_options(); + $default = reset( $options ); + + return is_numeric( $default ) ? $default : null; + } + + /** + * Get timespan options (in days). + * + * @since 1.7.4 + * + * @return array + */ + protected function get_timespan_options(): array { + + $default = [ 7, 30 ]; + + $options = $default; + + // Apply deprecated filters. + if ( function_exists( 'apply_filters_deprecated' ) ) { + // phpcs:disable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $options = apply_filters_deprecated( 'wpforms_dash_widget_chart_timespan_options', [ $options ], '5.0', 'wpforms_dash_widget_timespan_options' ); + $options = apply_filters_deprecated( 'wpforms_dash_widget_forms_list_timespan_options', [ $options ], '5.0', 'wpforms_dash_widget_timespan_options' ); + // phpcs:enable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + } else { + // phpcs:disable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $options = apply_filters( 'wpforms_dash_widget_chart_timespan_options', $options ); + $options = apply_filters( 'wpforms_dash_widget_forms_list_timespan_options', $options ); + // phpcs:enable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + } + + if ( ! is_array( $options ) ) { + $options = $default; + } + + $widget_slug = static::SLUG; + + // phpcs:disable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + $options = apply_filters( "wpforms_{$widget_slug}_timespan_options", $options ); + // phpcs:enable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! is_array( $options ) ) { + return []; + } + + $options = array_filter( $options, 'is_numeric' ); + + return empty( $options ) ? $default : $options; + } + + /** + * Widget settings HTML. + * + * @since 1.7.4 + * + * @param bool $enabled Is form fields should be enabled. + */ + protected function widget_settings_html( $enabled = true ) { + + $graph_style = $this->widget_meta( 'get', 'graph_style' ); + $color_scheme = $this->widget_meta( 'get', 'color_scheme' ); + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/dashboard/widget/settings', + [ + 'graph_style' => $graph_style, + 'color_scheme' => $color_scheme, + 'enabled' => $enabled, + ], + true + ); + } + + /** + * Return randomly chosen one of the recommended plugins. + * + * @since 1.7.3 + * + * @return array + */ + final protected function get_recommended_plugin(): array { + + $plugins = [ + 'google-analytics-for-wordpress/googleanalytics.php' => [ + 'name' => __( 'MonsterInsights', 'wpforms-lite' ), + 'slug' => 'google-analytics-for-wordpress', + 'more' => 'https://www.monsterinsights.com/', + 'pro' => [ + 'file' => 'google-analytics-premium/googleanalytics-premium.php', + ], + ], + 'all-in-one-seo-pack/all_in_one_seo_pack.php' => [ + 'name' => __( 'AIOSEO', 'wpforms-lite' ), + 'slug' => 'all-in-one-seo-pack', + 'more' => 'https://aioseo.com/', + 'pro' => [ + 'file' => 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php', + ], + ], + 'coming-soon/coming-soon.php' => [ + 'name' => __( 'SeedProd', 'wpforms-lite' ), + 'slug' => 'coming-soon', + 'more' => 'https://www.seedprod.com/', + 'pro' => [ + 'file' => 'seedprod-coming-soon-pro-5/seedprod-coming-soon-pro-5.php', + ], + ], + 'wp-mail-smtp/wp_mail_smtp.php' => [ + 'name' => __( 'WP Mail SMTP', 'wpforms-lite' ), + 'slug' => 'wp-mail-smtp', + 'more' => 'https://wpmailsmtp.com/', + 'pro' => [ + 'file' => 'wp-mail-smtp-pro/wp_mail_smtp.php', + ], + ], + ]; + + $installed = get_plugins(); + + foreach ( $plugins as $id => $plugin ) { + + if ( isset( $installed[ $id ] ) ) { + unset( $plugins[ $id ] ); + } + + if ( isset( $plugin['pro']['file'], $installed[ $plugin['pro']['file'] ] ) ) { + unset( $plugins[ $id ] ); + } + } + + return $plugins ? $plugins[ array_rand( $plugins ) ] : []; + } + + /** + * Timespan select HTML. + * + * @since 1.7.4 + * + * @param int $active_form_id Currently preselected form ID. + * @param bool $enabled If the select menu items should be enabled. + */ + protected function timespan_select_html( $active_form_id, $enabled = true ) { + ?> + + + widget_meta( 'get', 'timespan' ); + + foreach ( $options as $option ) : + ?> + + allow_load() ) { + return; + } + + // Store the instance of the Education core class. + $this->education = wpforms()->obj( 'education' ); + + // Store the instance of the Education\Addons class. + $this->addons = wpforms()->obj( 'addons' ); + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.6 + */ + abstract public function hooks(); + + /** + * Display single addon item. + * + * @since 1.6.6 + * + * @param array $addon Addon data. + * + * @noinspection ReturnTypeCanBeDeclaredInspection + * @noinspection PhpMissingParamTypeInspection + */ + protected function display_single_addon( $addon ) { + + /** + * Filter to disallow addons to be displayed in the Education feature. + * + * @since 1.8.2 + * + * @param bool $display Whether to hide the addon. + * @param array $slug Addon data. + */ + $is_disallowed = (bool) apply_filters( 'wpforms_admin_education_addons_item_base_display_single_addon_hide', false, $addon ); + + if ( empty( $addon ) || $is_disallowed ) { + return; + } + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $this->single_addon_template, + $addon, + true + ); + } + + /** + * Prepare field data-attributes for the education actions. + * E.g., install, activate, incompatible. + * + * @since 1.9.4 + * + * @param array $addon Current addon information. + * + * @return array + */ + protected function prepare_field_action_data( array $addon ): array { + + if ( empty( $addon['plugin_allow'] ) ) { + return []; + } + + if ( $addon['action'] === 'install' ) { + return [ + 'data' => [ + 'action' => 'install', + 'name' => $addon['modal_name'], + 'url' => $addon['url'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + 'license' => $addon['license_level'], + ], + 'class' => 'education-modal', + ]; + } + + if ( $addon['action'] === 'activate' ) { + return [ + 'data' => [ + 'action' => 'activate', + 'name' => sprintf( /* translators: %s - addon name. */ + esc_html__( '%s addon', 'wpforms-lite' ), + $addon['name'] + ), + 'path' => $addon['path'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + ], + 'class' => 'education-modal', + ]; + } + + if ( $addon['action'] === 'incompatible' ) { + return [ + 'data' => [ + 'action' => 'incompatible', + 'message' => Requirements::get_instance()->get_notice( $addon['path'] ), + ], + 'class' => 'education-modal', + ]; + } + + return []; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/AddonsListBase.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/AddonsListBase.php new file mode 100644 index 0000000..847660f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/AddonsListBase.php @@ -0,0 +1,62 @@ +get_addons() ); + } + + /** + * Get addons. + * + * @since 1.6.6 + * + * @return array Addons array. + */ + abstract protected function get_addons(); + + /** + * Ensure that we do not display activated addon items if those addons are not allowed according to the current license. + * + * @since 1.6.6 + * + * @param string $hook Hook name. + */ + protected function filter_not_allowed_addons( $hook ) { + + $edu_addons = wp_list_pluck( $this->get_addons(), 'slug' ); + + foreach ( $edu_addons as $i => $addon ) { + $edu_addons[ $i ] = strtolower( preg_replace( '/[^a-zA-Z0-9]+/', '', $addon ) ); + } + + if ( empty( $GLOBALS['wp_filter'][ $hook ]->callbacks ) ) { + return; + } + + foreach ( $GLOBALS['wp_filter'][ $hook ]->callbacks as $priority => $hooks ) { + foreach ( $hooks as $name => $arr ) { + $class = ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) ? strtolower( get_class( $arr['function'][0] ) ) : ''; + $class = explode( '\\', $class )[0]; + $class = preg_replace( '/[^a-zA-Z0-9]+/', '', $class ); + + if ( in_array( $class, $edu_addons, true ) ) { + unset( $GLOBALS['wp_filter'][ $hook ]->callbacks[ $priority ][ $name ] ); + } + } + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/EditPost.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/EditPost.php new file mode 100644 index 0000000..583e9cd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/EditPost.php @@ -0,0 +1,249 @@ +obj( 'challenge' )->is_form_embed_page() ) { + return false; + } + + $form_embed_wizard = wpforms()->obj( 'form_embed_wizard' ); + + // Skip it if it's the Form Embed Wizard flow. + if ( $form_embed_wizard->is_form_embed_page( 'edit' ) && $form_embed_wizard->get_meta() ) { + return false; + } + + $user_id = get_current_user_id(); + $dismissed = get_user_meta( $user_id, 'wpforms_dismissed', true ); + + return empty( $dismissed['edu-edit-post-notice'] ); + } + + /** + * Initialize. + * + * @since 1.8.1 + */ + public function init() { + + if ( ! $this->allow_load() ) { + return; + } + + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters + $this->has_forms = (bool) wpforms()->obj( 'form' )->get( + '', + [ + 'numberposts' => 1, + 'nopaging' => false, + 'fields' => 'ids', + 'no_found_rows' => true, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'suppress_filters' => true, // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters + ] + ); + + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + add_action( 'edit_form_after_title', [ $this, 'classic_editor_notice' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); + } + + /** + * Is gutenberg Editor. + * + * @since 1.8.1 + * + * @return bool + */ + private function is_gutenberg_editor() { + + return (bool) get_current_screen()->is_block_editor(); + } + + /** + * Enqueue styles. + * + * @since 1.8.1 + */ + public function enqueue_styles() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-edit-post-education', + WPFORMS_PLUGIN_URL . "assets/css/admin/edit-post-education{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Enqueue scripts. + * + * @since 1.8.1 + */ + public function enqueue_scripts() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-edit-post-education', + WPFORMS_PLUGIN_URL . "assets/js/admin/education/edit-post.es5{$min}.js", + [ 'jquery', 'underscore' ], + WPFORMS_VERSION, + true + ); + + $strings = [ + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'education_nonce' => wp_create_nonce( 'wpforms-education' ), + ]; + + if ( $this->is_gutenberg_editor() ) { + $strings = array_merge( $strings, $this->get_gutenberg_strings() ); + } + + wp_localize_script( + 'wpforms-edit-post-education', + 'wpforms_edit_post_education', + $strings + ); + } + + /** + * Get Gutenberg i18n strings. + * + * @since 1.8.1 + * + * @return array + */ + private function get_gutenberg_strings() { + + $strings = [ + 'gutenberg_notice' => [ + 'template' => $this->get_gutenberg_notice_template(), + 'button' => __( 'Get Started', 'wpforms-lite' ), + ], + ]; + + if ( ! $this->has_forms ) { + $strings['gutenberg_notice']['url'] = add_query_arg( 'page', 'wpforms-overview', admin_url( 'admin.php' ) ); + + return $strings; + } + + $strings['gutenberg_guide'] = [ + [ + 'image' => WPFORMS_PLUGIN_URL . '/assets/images/edit-post-education-page-1.png', + 'title' => __( 'Easily add your contact form', 'wpforms-lite' ), + 'content' => __( 'Oh hey, it looks like you\'re working on a contact page. Don\'t forget to embed your contact form. Click the plus icon above and search for WPForms.', 'wpforms-lite' ), + ], + [ + 'image' => WPFORMS_PLUGIN_URL . '/assets/images/edit-post-education-page-2.png', + 'title' => __( 'Embed your form', 'wpforms-lite' ), + 'content' => __( 'Then click on the WPForms block to embed your desired contact form.', 'wpforms-lite' ), + ], + ]; + + return $strings; + } + + /** + * Add notice to classic editor. + * + * @since 1.8.1 + * + * @param WP_Post $post Add notice to classic editor. + */ + public function classic_editor_notice( $post ) { + + $message = $this->has_forms + ? __( 'Don\'t forget to embed your contact form. Simply click the Add Form button below.', 'wpforms-lite' ) + : sprintf( /* translators: %1$s - link to create a new form. */ + __( 'Did you know that with WPForms, you can create an easy-to-use contact form in a matter of minutes?', 'wpforms-lite' ), + esc_url( add_query_arg( 'page', 'wpforms-overview', admin_url( 'admin.php' ) ) ) + ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'education/admin/edit-post/classic-notice', + [ + 'message' => $message, + ], + true + ); + } + + /** + * Get Gutenberg notice template. + * + * @since 1.8.1 + * + * @return string + */ + private function get_gutenberg_notice_template() { + + $message = $this->has_forms + ? __( 'You\'ve already created a form, now add it to the page so your customers can get in touch.', 'wpforms-lite' ) + : sprintf( /* translators: %1$s - link to create a new form. */ + __( 'Did you know that with WPForms, you can create an easy-to-use contact form in a matter of minutes?', 'wpforms-lite' ), + esc_url( add_query_arg( 'page', 'wpforms-overview', admin_url( 'admin.php' ) ) ) + ); + + return wpforms_render( + 'education/admin/edit-post/notice', + [ + 'message' => $message, + ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Geolocation.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Geolocation.php new file mode 100644 index 0000000..0b74828 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Geolocation.php @@ -0,0 +1,152 @@ +addons->get_addon( 'geolocation' ); + + if ( + empty( $addon ) || + empty( $addon['status'] ) || + empty( $addon['action'] ) + ) { + return $settings; + } + + $settings[ self::SLUG ][ self::SLUG . '-page' ] = [ + 'id' => self::SLUG . '-page', + 'content' => wpforms_render( 'education/admin/page', $this->template_data(), true ), + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'wpforms-education-container-page' ], + ]; + + return $settings; + } + + /** + * Get the template data. + * + * @since 1.8.6 + * + * @return array + */ + private function template_data(): array { + + $addon = $this->addons->get_addon( 'geolocation' ); + $images_url = WPFORMS_PLUGIN_URL . 'assets/images/geolocation-education/'; + $params = [ + 'features' => [ + __( 'City', 'wpforms-lite' ), + __( 'Latitude/Longitude', 'wpforms-lite' ), + __( 'Google Places API', 'wpforms-lite' ), + __( 'Country', 'wpforms-lite' ), + __( 'Address Autocomplete', 'wpforms-lite' ), + __( 'Mapbox API', 'wpforms-lite' ), + __( 'Postal/Zip Code', 'wpforms-lite' ), + __( 'Embedded Map in Forms', 'wpforms-lite' ), + ], + 'images' => [ + [ + 'url' => $images_url . 'entry-location.jpg', + 'url2x' => $images_url . 'entry-location@2x.jpg', + 'title' => __( 'Location Info in Entries', 'wpforms-lite' ), + ], + [ + 'url' => $images_url . 'address-autocomplete.jpg', + 'url2x' => $images_url . 'address-autocomplete@2x.jpg', + 'title' => __( 'Address Autocomplete Field', 'wpforms-lite' ), + ], + [ + 'url' => $images_url . 'smart-address-field.jpg', + 'url2x' => $images_url . 'smart-address-field@2x.jpg', + 'title' => __( 'Smart Address Field', 'wpforms-lite' ), + ], + ], + 'utm_medium' => 'Settings - Geolocation', + 'utm_content' => 'Geolocation Addon', + 'heading_title' => __( 'Geolocation', 'wpforms-lite' ), + 'heading_description' => sprintf( + '

              %1$s

              ', + __( 'Do you want to learn more about visitors who fill out your online forms? Our geolocation addon allows you to collect and store your website visitors geolocation data along with their form submission. This insight can help you to be better informed and turn more leads into customers. Furthermore, add a smart address field that autocompletes using the Google Places API.', 'wpforms-lite' ) + ), + 'badge' => __( 'Pro', 'wpforms-lite' ), + 'features_description' => __( 'Powerful location-based insights and features…', 'wpforms-lite' ), + ]; + + return array_merge( $params, $addon ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Integrations.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Integrations.php new file mode 100644 index 0000000..e261e53 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/Integrations.php @@ -0,0 +1,67 @@ +addons->get_by_path( 'settings_integrations.category', 'crm|email-marketing|integration' ); + } + + /** + * Ensure that we do not display activated addon items if those addons are not allowed according to the current license. + * + * @since 1.6.6 + */ + public function filter_addons() { + + $this->filter_not_allowed_addons( 'wpforms_settings_providers' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/SMTP.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/SMTP.php new file mode 100644 index 0000000..aeea74e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Settings/SMTP.php @@ -0,0 +1,67 @@ +allow_load() ) { + return ''; + } + + return wpforms_render( 'education/admin/settings/smtp-notice' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Tools/EntryAutomation.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Tools/EntryAutomation.php new file mode 100644 index 0000000..c81711a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Admin/Tools/EntryAutomation.php @@ -0,0 +1,156 @@ +hooks(); + } + + /** + * Load hooks. + * + * @since 1.9.6.1 + */ + private function hooks(): void { + + add_action( 'wpforms_admin_tools_views_entry_automation_display', [ $this, 'display' ] ); + } + + /** + * Get the template data. + * + * @since 1.9.6.1 + * + * @return array + */ + private function get_template_data(): array { + + $images_url = WPFORMS_PLUGIN_URL . 'assets/images/entry-automation/'; + $utm_medium = 'Tools - Entry Automation'; + $utm_content = 'Entry Automation Addon'; + $addon = wpforms()->obj( 'addons' )->get_addon( 'entry-automation' ); + $upgrade_link = $addon['action'] === 'upgrade' + ? sprintf( /* translators: %1$s - WPForms.com Upgrade page URL. */ + ' %2$s', + esc_url( wpforms_admin_upgrade_link( $utm_medium, $utm_content ) ), + esc_html__( 'Upgrade to WPForms Elite', 'wpforms-lite' ) + ) + : ''; + + $params = [ + 'features' => [ + __( 'Automated Task Scheduling', 'wpforms-lite' ), + __( 'Scheduled Exports', 'wpforms-lite' ), + __( 'Task Chaining', 'wpforms-lite' ), + __( 'Automated Deletions', 'wpforms-lite' ), + __( 'Enhanced Data Management', 'wpforms-lite' ), + __( 'Robust Failsafes', 'wpforms-lite' ), + ], + 'images' => [ + [ + 'url' => $images_url . 'education.png', + 'url2x' => $images_url . 'education.png', + 'title' => '', + ], + ], + 'utm_medium' => $utm_medium, + 'utm_content' => $utm_content, + 'upgrade_link_text' => esc_html__( 'Upgrade to WPForms Elite', 'wpforms-lite' ), + 'heading_title' => __( 'Tired of manually exporting and deleting entries? Wish you could schedule these actions for optimal efficiency?', 'wpforms-lite' ), + /* translators: %1$s - WPForms.com Upgrade page URL. */ + 'heading_description' => '

              ' . esc_html__( 'Entry Automation introduces powerful, automated task chaining, allowing you to seamlessly schedule exports and deletions, ensuring your data is managed precisely how you need it. Chain multiple tasks together for complex workflows – export to CSV, then automatically delete after a specified period, for example. We\'ve built robust failsafes to guarantee data integrity, so you can automate with confidence, knowing your valuable entries are always protected. Take back your time and let our addon handle the heavy lifting, keeping your WPForms data organized and secure, automatically.', 'wpforms-lite' ) . '

              ' + . '

              ' . wp_kses( + $upgrade_link, + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + 'class' => [], + ], + 'strong' => [], + ] + ) . '

              ', + 'features_description' => __( 'Powerful Automation Features', 'wpforms-lite' ), + ]; + + return isset( $addon ) ? array_merge( $params, $addon ) : $params; + } + + /** + * Check if the addon is active. + * + * @since 1.9.6.1 + * + * @return bool + */ + private function is_addon_active(): bool { + + /** + * Check if the addon is active. + * + * @since 1.9.6.1 + * + * @param bool $is_active Whether the addon is active. + */ + return (bool) apply_filters( + 'wpforms_admin_education_admin_tools_entry_automation_is_addon_active', + wpforms()->obj( 'addons' )->is_active( 'entry-automation' ) + ); + } + + /** + * Display education content. + * + * @since 1.9.6.1 + */ + public function display(): void { + + // Display the education content only if the addon is not active. + if ( $this->is_addon_active() ) { + return; + } + + $this->enqueue(); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'education/admin/page', $this->get_template_data(), true ); + } + + /** + * Enqueue scripts and styles. + * + * @since 1.9.6.1 + */ + private function enqueue(): void { + + // Lity. + wp_enqueue_style( + 'wpforms-lity', + WPFORMS_PLUGIN_URL . 'assets/lib/lity/lity.min.css', + null, + '3.0.0' + ); + + wp_enqueue_script( + 'wpforms-lity', + WPFORMS_PLUGIN_URL . 'assets/lib/lity/lity.min.js', + [ 'jquery' ], + '3.0.0', + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Calculations.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Calculations.php new file mode 100644 index 0000000..0dd3a3c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Calculations.php @@ -0,0 +1,307 @@ +form_id ?? 0; + $dismiss_section = "builder-form-$form_id-field-options-calculations-notice"; + + // Check whether it is dismissed. + if ( ! empty( $dismissed[ 'edu-' . $dismiss_section ] ) ) { + return; + } + + // Display notice only if Calculations addon is released (available in the `addons.json` file). + $addon = $this->addons->get_addon( 'calculations' ); + + if ( ! $addon ) { + return; + } + + if ( + AIHelpers::is_disabled() || + ( + wpforms_version_compare( + $addon['version'] ?? '1.5.0', + '1.5.0', + '<=' + ) + ) + ) { + $this->print_standard_education( $dismiss_section ); + + return; + } + + $badge = esc_html__( 'NEW FEATURE', 'wpforms-lite' ); + $notice_header = esc_html__( 'AI Calculations Are Here!', 'wpforms-lite' ); + + $notice = sprintf( + wp_kses( /* translators: %1$s - link to the WPForms.com doc article. */ + __( 'Easily create advanced calculations with WPForms AI. Head over to the Advanced Tab to get started or read our documentation to learn more.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/generating-calculation-formulas-with-wpforms-ai/', 'Calculations Education', 'Calculations Documentation' ) ) + ); + + printf( + '
              + + %5$s + + +

              %4$s

              +

              %3$s

              +
              ', + esc_html__( 'Dismiss this notice.', 'wpforms-lite' ), + esc_attr( $dismiss_section ), + $notice, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $notice_header, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $badge // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Print standard education notice. + * + * @since 1.9.4 + * + * @param string $dismiss_section Dismiss section. + * + * @noinspection HtmlUnknownAnchorTarget + * @noinspection HtmlUnknownTarget + */ + private function print_standard_education( string $dismiss_section ): void { + + $notice = sprintf( + wp_kses( /* translators: %1$s - link to the WPForms.com doc article. */ + __( 'Easily perform calculations based on user input. Head over to the Advanced Tab to get started or read our documentation to learn more.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/calculations-addon/', 'Calculations Education', 'Calculations Documentation' ) ) + ); + + printf( + '
              + +

              %3$s

              +
              ', + esc_html__( 'Dismiss this notice.', 'wpforms-lite' ), + esc_attr( $dismiss_section ), + $notice // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Display advanced options. + * + * @since 1.8.4.1 + * + * @param array $field Field data. + * @param object $instance Builder instance. + * + * @noinspection ReturnTypeCanBeDeclaredInspection + * @noinspection PhpMissingParamTypeInspection + */ + public function advanced_options( $field, $instance ) { + + if ( ! in_array( $field['type'], self::ALLOWED_FIELD_TYPES, true ) ) { + return; + } + + $addon = $this->addons->get_addon( 'calculations' ); + + if ( ! $this->is_edu_required_by_status( $addon ) ) { + return; + } + + $row_args = $this->get_row_attributes( $addon ); + $row_args['content'] = $instance->field_element( + 'toggle', + $field, + $this->get_field_attributes( $addon ), + false + ); + + $instance->field_element( 'row', $field, $row_args ); + } + + /** + * Get row attributes. + * + * @since 1.8.4.1 + * + * @param array $addon Addon data. + * + * @return array + */ + private function get_row_attributes( array $addon ): array { + + $data = $this->prepare_field_action_data( $addon ); + $default = [ + 'slug' => 'calculation_is_enabled', + ]; + + if ( ! empty( $data ) ) { + return wp_parse_args( $data, $default ); + } + + return wp_parse_args( + [ + 'data' => [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Calculations', 'wpforms-lite' ), + 'utm-content' => 'Enable Calculations', + 'license' => $addon['license_level'], + ], + 'class' => 'education-modal', + ], + $default + ); + } + + /** + * Get attributes for the Enable Calculation field. + * + * @since 1.8.4.1 + * + * @param array $addon Addon data. + * + * @return array + */ + private function get_field_attributes( array $addon ): array { + + $default = [ + 'slug' => 'calculation_is_enabled', + 'value' => '0', + 'desc' => esc_html__( 'Enable Calculation', 'wpforms-lite' ), + ]; + + if ( $addon['plugin_allow'] ) { + return $default; + } + + return wp_parse_args( + [ + 'desc' => sprintf( + '%1$s%2$s', + esc_html__( 'Enable Calculation', 'wpforms-lite' ), + Helpers::get_badge( $addon['license_level'], 'sm', 'inline', 'slate' ) + ), + 'attrs' => [ + 'disabled' => 'disabled', + ], + ], + $default + ); + } + + /** + * Determine if we require displaying educational items according to the addon status. + * + * @since 1.8.4.1 + * + * @param array $addon Addon data. + * + * @return bool + */ + private function is_edu_required_by_status( array $addon ): bool { + + return ! ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && $addon['action'] !== 'upgrade' + ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Captcha.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Captcha.php new file mode 100644 index 0000000..deafcfa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Captcha.php @@ -0,0 +1,192 @@ +allow_load() ) { + return; + } + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.6 + */ + public function hooks() { + + add_action( 'wp_ajax_wpforms_update_field_captcha', [ $this, 'captcha_field_callback' ] ); + } + + /** + * Targeting on hCaptcha/reCAPTCHA field button in the builder. + * + * @since 1.6.6 + */ + public function captcha_field_callback() { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for form ID. + if ( empty( $_POST['id'] ) ) { + wp_send_json_error( esc_html__( 'No form ID found.', 'wpforms-lite' ) ); + } + + $form_id = absint( $_POST['id'] ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_form_single', $form_id ) ) { + wp_send_json_error( esc_html__( 'You do not have permission.', 'wpforms-lite' ) ); + } + + // Get an actual form data. + $form_data = wpforms()->obj( 'form' )->get( $form_id, [ 'content_only' => true ] ); + + // Check that CAPTCHA is configured in the settings. + $captcha_settings = wpforms_get_captcha_settings(); + $captcha_name = $this->get_captcha_name( $captcha_settings ); + + if ( empty( $form_data ) || empty( $captcha_name ) ) { + wp_send_json_error( esc_html__( 'Something wrong. Please try again later.', 'wpforms-lite' ) ); + } + + // Prepare a result array. + $data = $this->get_captcha_result_mockup( $captcha_settings ); + + if ( empty( $captcha_settings['site_key'] ) || empty( $captcha_settings['secret_key'] ) ) { + + // If CAPTCHA is not configured in the WPForms plugin settings. + $data['current'] = 'not_configured'; + + } elseif ( ! isset( $form_data['settings']['recaptcha'] ) || $form_data['settings']['recaptcha'] !== '1' ) { + + // If CAPTCHA is configured in WPForms plugin settings, but wasn't set in form settings. + $data['current'] = 'configured_not_enabled'; + + } else { + + // If CAPTCHA is configured in WPForms plugin and form settings. + $data['current'] = 'configured_enabled'; + } + + wp_send_json_success( $data ); + } + + /** + * Retrieve the CAPTCHA name. + * + * @since 1.6.6 + * + * @param array $settings The CAPTCHA settings. + * + * @return string + */ + private function get_captcha_name( $settings ) { + + if ( empty( $settings['provider'] ) ) { + return ''; + } + + if ( empty( $settings['site_key'] ) && empty( $settings['secret_key'] ) ) { + return esc_html__( 'CAPTCHA', 'wpforms-lite' ); + } + + if ( $settings['provider'] === 'hcaptcha' ) { + return esc_html__( 'hCaptcha', 'wpforms-lite' ); + } + + if ( $settings['provider'] === 'turnstile' ) { + return esc_html__( 'Cloudflare Turnstile', 'wpforms-lite' ); + } + + $recaptcha_names = [ + 'v2' => esc_html__( 'Google Checkbox v2 reCAPTCHA', 'wpforms-lite' ), + 'invisible' => esc_html__( 'Google Invisible v2 reCAPTCHA', 'wpforms-lite' ), + 'v3' => esc_html__( 'Google v3 reCAPTCHA', 'wpforms-lite' ), + ]; + + return isset( $recaptcha_names[ $settings['recaptcha_type'] ] ) ? $recaptcha_names[ $settings['recaptcha_type'] ] : ''; + } + + /** + * Get CAPTCHA callback result mockup. + * + * @since 1.6.6 + * + * @param array $settings The CAPTCHA settings. + * + * @return array + */ + private function get_captcha_result_mockup( $settings ) { + + $captcha_name = $this->get_captcha_name( $settings ); + + if ( empty( $captcha_name ) ) { + wp_send_json_error( esc_html__( 'Something wrong. Please, try again later.', 'wpforms-lite' ) ); + } + + return [ + 'current' => false, + 'cases' => [ + 'not_configured' => [ + 'title' => esc_html__( 'Heads up!', 'wpforms-lite' ), + 'content' => sprintf( + wp_kses( /* translators: %1$s - CAPTCHA settings page URL, %2$s - WPForms.com doc URL. */ + __( 'Please complete the setup in your WPForms Settings, and check out our guide to learn about available CAPTCHA solutions.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => true, + 'rel' => true, + 'target' => true, + ], + ] + ), + esc_url( admin_url( 'admin.php?page=wpforms-settings&view=captcha' ) ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setup-captcha-wpforms/', 'builder-modal', 'Captcha Documentation' ) ) + ), + ], + 'configured_not_enabled' => [ + 'title' => false, + /* translators: %s - CAPTCHA name. */ + 'content' => sprintf( esc_html__( '%s has been enabled for this form. Don\'t forget to save your form!', 'wpforms-lite' ), $captcha_name ), + ], + 'configured_enabled' => [ + 'title' => false, + /* translators: %s - CAPTCHA name. */ + 'content' => sprintf( esc_html__( 'Are you sure you want to disable %s for this form?', 'wpforms-lite' ), $captcha_name ), + 'cancel' => true, + ], + ], + 'provider' => $settings['provider'], + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Fields.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Fields.php new file mode 100644 index 0000000..08c1a63 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Fields.php @@ -0,0 +1,75 @@ +fields = wpforms()->obj( 'education_fields' ); + } + + /** + * Print the form preview notice. + * + * @since 1.9.4 + * + * @param array $texts Notice texts. + */ + protected function print_form_preview_notice( $texts ): void { + + printf( + '
              +
              +

              %2$s

              +

              %3$s

              +
              +
              +
              +
              ', + esc_attr( $texts['class'] ), + esc_html( $texts['title'] ), + $texts['content'], // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_html( $texts['dismiss_section'] ), + esc_attr__( 'Dismiss this notice', 'wpforms-lite' ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Geolocation.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Geolocation.php new file mode 100644 index 0000000..ceb46ca --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Geolocation.php @@ -0,0 +1,154 @@ +addons->get_addon( 'geolocation' ); + + if ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && + $addon['action'] !== 'upgrade' + ) + ) { + return; + } + + $row_args = $this->get_address_autocomplete_row_attributes( $addon ); + $row_args['content'] = $instance->field_element( + 'toggle', + $field, + $this->get_address_autocomplete_field_attributes( $addon ), + false + ); + + $instance->field_element( 'row', $field, $row_args ); + } + + /** + * Get attributes for address autocomplete row. + * + * @since 1.6.6 + * + * @param array $addon Current addon information. + * + * @return array + */ + private function get_address_autocomplete_row_attributes( array $addon ): array { + + $data = $this->prepare_field_action_data( $addon ); + $default = [ + 'slug' => 'enable_address_autocomplete', + ]; + + if ( ! empty( $data ) ) { + return wp_parse_args( $data, $default ); + } + + return wp_parse_args( + [ + 'data' => [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Address Autocomplete', 'wpforms-lite' ), + 'utm-content' => 'Address Autocomplete', + 'licence' => 'pro', + 'message' => esc_html__( 'We\'re sorry, Address Autocomplete is part of the Geolocation Addon and not available on your plan. Please upgrade to the PRO plan to unlock all these awesome features.', 'wpforms-lite' ), + ], + 'class' => 'education-modal', + ], + $default + ); + } + + /** + * Get attributes for address autocomplete field. + * + * @since 1.6.6 + * + * @param array $addon Current addon information. + * + * @return array + */ + private function get_address_autocomplete_field_attributes( array $addon ): array { + + $default = [ + 'slug' => 'enable_address_autocomplete', + 'value' => '0', + 'desc' => esc_html__( 'Enable Address Autocomplete', 'wpforms-lite' ), + ]; + + if ( $addon['plugin_allow'] ) { + return $default; + } + + return wp_parse_args( + [ + 'desc' => sprintf( + '%1$s%2$s', + esc_html__( 'Enable Address Autocomplete', 'wpforms-lite' ), + Helpers::get_badge( 'Pro', 'sm', 'inline', 'slate' ) + ), + 'attrs' => [ + 'disabled' => 'disabled', + ], + ], + $default + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/PDF.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/PDF.php new file mode 100644 index 0000000..8927490 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/PDF.php @@ -0,0 +1,246 @@ +addon_data = $this->get_addon_data(); + + if ( ! $this->should_show_popup() ) { + return; + } + + $this->hooks(); + } + + /** + * Should show popup. + * + * @since 1.9.7.3 + * + * @return bool + */ + private function should_show_popup(): bool { + + if ( ! wpforms_is_admin_page( 'builder' ) && ! wpforms_is_admin_ajax() ) { + return false; + } + + if ( ! current_user_can( wpforms_get_capability_manage_options() ) ) { + return false; + } + + $challenge = wpforms()->obj( 'challenge' ); + + if ( ! $challenge || $challenge->challenge_active() ) { + return false; + } + + return $this->is_popup_visible(); + } + + /** + * Is popup visible. + * + * @since 1.9.7.3 + * + * @return bool + */ + private function is_popup_visible(): bool { + + $action = $this->addon_data['action'] ?? 'install'; + + if ( + empty( $this->addon_data ) || + ( $action === 'install' && empty( $this->addon_data['url'] ) ) // The install action requires a valid URL. + ) { + return false; + } + + $meta = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + return empty( $meta['edu-builder-pdf'] ); + } + + /** + * Hooks. + * + * @since 1.9.7.3 + */ + private function hooks(): void { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); + add_filter( 'wpforms_builder_output_before_toolbar', [ $this, 'popup_html' ] ); + } + + /** + * Enqueue scripts. + * + * @since 1.9.7.3 + */ + public function enqueue_scripts(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-pdf-popup', + WPFORMS_PLUGIN_URL . "assets/js/admin/education/pdf$min.js", + [], + WPFORMS_VERSION, + true + ); + } + + /** + * Popup HTML. + * + * @since 1.9.7.3 + * + * @param string|mixed $html HTML. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + public function popup_html( $html ): string { + + $html = (string) $html; + + $popup = sprintf( + '', + esc_url( WPFORMS_PLUGIN_URL . 'assets/images/pdf-education/pdf.svg' ), + __( 'NEW FEATURE', 'wpforms-lite' ), + __( 'PDF Addon', 'wpforms-lite' ), + __( 'Easily turn form entry data into beautifully designed PDFs and attach them to notifications.', 'wpforms-lite' ), + $this->get_button_html() + ); + + return $popup . $html; + } + + /** + * Get button HTML. + * + * @since 1.9.7.3 + * + * @return string + * @noinspection HtmlUnknownAttribute + */ + private function get_button_html(): string { + + $addon = $this->addon_data; + $action = $addon['action'] ?? 'switch'; + + [ $button_label, $button_utm, $button_class, $button_attr ] = $this->get_button_data( $action, $addon ); + + return sprintf( + '', + esc_attr( $button_class ), + esc_attr( $action ), + esc_html( $button_label ), + $button_attr, + esc_attr( $addon['license_level'] ?? 'pro' ), + esc_attr( $button_utm ) + ); + } + + /** + * Get addon data. + * + * @since 1.9.7.3 + * + * @return array + */ + private function get_addon_data(): array { + + /** + * Filter the slug for the PDF educational popup. + * + * @since 1.9.7.3 + * + * @param string $slug The slug for the PDF educational popup. + */ + $slug = apply_filters( 'wpforms_admin_education_builder_pdf_get_addon_data_slug', $this->slug ); + $addons = Helpers::get_edu_addons(); + + return $addons[ $slug ] ?? []; + } + + /** + * Get button data. + * + * @since 1.9.7.3 + * + * @param string $action Action type (switch, upgrade, etc.). + * @param array $addon Addon data. + * + * @return array + */ + protected function get_button_data( string $action, array $addon ): array { + + $button_label = $action === 'upgrade' + ? esc_html__( 'Upgrade to Pro', 'wpforms-lite' ) + : esc_html__( 'Try it Out', 'wpforms-lite' ); + $button_utm = 'PDF Addon Pop-up'; + $button_class = 'education-action-button'; + $button_attr = ''; + + if ( $action === 'switch' ) { + $button_class = 'education-modal education-switch-button'; + $button_attr = 'data-target="wpforms-pdf"'; + } elseif ( $action !== 'upgrade' ) { + $button_class = 'education-modal'; + $button_attr = sprintf( + 'data-nonce="%1$s" data-path="%2$s" data-url="%3$s" data-message="" data-name="%4$s"', + esc_attr( wp_create_nonce( 'wpforms-admin' ) ), + $addon['path'] ?? '', + $addon['url'] ?? '', + esc_html__( 'WPForms PDF Addon', 'wpforms-lite' ) + ); + } + + return [ $button_label, $button_utm, $button_class, $button_attr ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Panel.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Panel.php new file mode 100644 index 0000000..ee80843 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Panel.php @@ -0,0 +1,69 @@ +get_name() ); + } + + /** + * Get addons for the current panel. + * + * @since 1.6.6 + */ + protected function get_addons() { + + return $this->addons->get_by_path( 'form_builder.category', $this->get_name() ); + } + + /** + * Template name for rendering single addon item. + * + * @since 1.6.6 + * + * @return string + */ + protected function get_single_addon_template() { + + return 'education/builder/' . $this->get_name() . '-item'; + } + + /** + * Display addons. + * + * @since 1.6.6 + */ + public function display_addons() { + + $this->single_addon_template = $this->get_single_addon_template(); + + parent::display_addons(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Payments.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Payments.php new file mode 100644 index 0000000..047461c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Payments.php @@ -0,0 +1,70 @@ +addons->get_by_path( 'form_builder.category', $this->get_name() ); + } + + /** + * Template name for rendering single addon item. + * + * @since 1.6.6 + * + * @return string + */ + protected function get_single_addon_template() { + + return 'education/builder/providers-item'; + } + + /** + * Ensure that we do not display activated addon items if those addons are not allowed according to the current license. + * + * @since 1.6.6 + */ + public function filter_addons() { + + $this->filter_not_allowed_addons( 'wpforms_payments_panel_sidebar' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Providers.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Providers.php new file mode 100644 index 0000000..bf8dec5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Providers.php @@ -0,0 +1,71 @@ +filter_not_allowed_addons( 'wpforms_providers_panel_sidebar' ); + } + + /** + * Get addons for the Marketing panel. + * + * @since 1.7.7.2 + */ + protected function get_addons() { + + $addons = parent::get_addons(); + + /** + * Google Sheets uses Providers API. All providers are automatically + * added to the Marketing tab in the builder. We don't need the addon + * on the Marketing tab because the addon is already added to + * the builder's Settings tab. + */ + foreach ( $addons as $key => $addon ) { + if ( isset( $addon['slug'] ) && $addon['slug'] === 'wpforms-google-sheets' ) { + unset( $addons[ $key ] ); + break; + } + } + + return $addons; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Quiz.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Quiz.php new file mode 100644 index 0000000..c31eab3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Quiz.php @@ -0,0 +1,214 @@ +addons->get_addon( 'quiz' ); + + if ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && + $addon['action'] !== 'upgrade' + ) + ) { + return; + } + + $form_id = ! empty( $instance->form_id ) ? (int) $instance->form_id : 0; + $row_args = $this->get_enable_quiz_row_attributes( $addon, $form_id ); + $row_args['content'] = $instance->field_element( + 'toggle', + $field, + $this->get_enable_quiz_field_attributes( $addon ), + false + ); + + $instance->field_element( + 'row', + $field, + $row_args + ); + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + $dismiss_section = "builder-form-$form_id-field-options-quiz-notice"; + + // Check whether it is dismissed. + if ( ! empty( $dismissed[ 'edu-' . $dismiss_section ] ) ) { + return; + } + + $badge = esc_html__( 'NEW FEATURE', 'wpforms-lite' ); + $notice_header = esc_html__( 'Turn Your Form Into a Quiz', 'wpforms-lite' ); + + $notice = sprintf( + wp_kses( /* translators: %1$s - link to the WPForms.com doc article. */ + __( 'Easily create interactive quizzes. Add true or false, multiple choice, or checkbox questions. Set correct answers and automatically score submissions. Learn more about the Quiz Addon', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/quiz-addon/', 'Quiz Education', 'Quiz Documentation' ) ) + ); + + printf( + '
              + + %5$s + + +

              %4$s

              +

              %3$s

              +
              ', + esc_html__( 'Dismiss this notice.', 'wpforms-lite' ), + esc_attr( $dismiss_section ), + $notice, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $notice_header, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $badge // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Get attributes for the `Enable Quiz` field option row. + * + * @since 1.9.9 + * + * @param array $addon Current addon information. + * @param int $form_id Form ID. + * + * @return array + */ + private function get_enable_quiz_row_attributes( array $addon, int $form_id ): array { + + $data = $this->prepare_field_action_data( $addon ); + $default = [ + 'slug' => 'enable_quiz', + ]; + + if ( ! empty( $data ) ) { + $data = wp_parse_args( $data, $default ); + + $data['data']['redirect-url'] = add_query_arg( + [ + 'page' => 'wpforms-builder', + 'view' => 'settings', + 'form_id' => $form_id, + 'section' => 'quiz', + ], + admin_url( 'admin.php' ) + ); + + return $data; + } + + return wp_parse_args( + [ + 'data' => [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Quiz Addon', 'wpforms-lite' ), + 'utm-content' => 'Quiz Addon', + 'licence' => 'pro', + 'message' => esc_html__( 'We\'re sorry, Enable Quiz is part of the Quiz Addon and not available on your plan. Please upgrade to the PRO plan to unlock all these awesome features.', 'wpforms-lite' ), + ], + 'class' => 'education-modal', + ], + $default + ); + } + + /** + * Get attributes for the `Enable Quiz` field option. + * + * @since 1.9.9 + * + * @param array $addon Current addon information. + * + * @return array + */ + private function get_enable_quiz_field_attributes( array $addon ): array { + + $default = [ + 'slug' => 'enable_quiz', + 'value' => '0', + 'desc' => esc_html__( 'Include in Quiz Scoring', 'wpforms-lite' ), + ]; + + if ( $addon['plugin_allow'] ) { + return $default; + } + + return wp_parse_args( + [ + 'desc' => sprintf( + '%1$s%2$s', + esc_html__( 'Include in Quiz Scoring', 'wpforms-lite' ), + Helpers::get_badge( 'Pro', 'sm', 'inline', 'slate' ) + ), + 'attrs' => [ + 'disabled' => 'disabled', + ], + ], + $default + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Settings.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Settings.php new file mode 100644 index 0000000..b1982db --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/Settings.php @@ -0,0 +1,69 @@ +get_name() !== $panel ) { + return; + } + + $this->display_addons(); + } + + /** + * Ensure that we do not display activated addon items if those addons are not allowed according to the current license. + * + * @since 1.6.6 + * + * @param array $sections Settings sections. + * + * @return array + */ + public function filter_addons( $sections ) { + + $this->filter_not_allowed_addons( 'wpforms_builder_settings_sections' ); + + return $sections; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Core.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Core.php new file mode 100644 index 0000000..9bd5003 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Core.php @@ -0,0 +1,143 @@ +allow_load() ) { + return; + } + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.6 + */ + protected function hooks() { + + if ( wp_doing_ajax() ) { + add_action( 'wp_ajax_wpforms_education_dismiss', [ $this, 'ajax_dismiss' ] ); + + return; + } + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + } + + /** + * Load enqueues. + * + * @since 1.6.6 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-admin-education-core', + WPFORMS_PLUGIN_URL . "assets/js/admin/education/core{$min}.js", + [ 'jquery', 'jquery-confirm' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-admin-education-core', + 'wpforms_education', + $this->get_js_strings() + ); + } + + /** + * Ajax handler for the education dismisses buttons. + * + * @since 1.6.6 + */ + public function ajax_dismiss() { + + // Run a security check. + check_ajax_referer( 'wpforms-education', 'nonce' ); + + // Section is the identifier of the education feature. + // For example, in Builder/DidYouKnow feature used 'builder-did-you-know-notifications' + // and 'builder-did-you-know-confirmations'. + $section = ! empty( $_POST['section'] ) ? sanitize_key( $_POST['section'] ) : ''; + + if ( empty( $section ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Please specify a section.', 'wpforms-lite' ) ] + ); + } + + // Check for permissions. + if ( ! $this->current_user_can() ) { + wp_send_json_error( + [ 'error' => esc_html__( 'You do not have permission to perform this action.', 'wpforms-lite' ) ] + ); + } + + $user_id = get_current_user_id(); + $dismissed = get_user_meta( $user_id, 'wpforms_dismissed', true ); + + if ( empty( $dismissed ) ) { + $dismissed = []; + } + + $dismissed[ 'edu-' . $section ] = time(); + + update_user_meta( $user_id, 'wpforms_dismissed', $dismissed ); + wp_send_json_success(); + } + + /** + * Whether the current user can perform an action. + * + * @since 1.8.0 + * + * @return bool + */ + private function current_user_can(): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $page = ! empty( $_POST['page'] ) ? sanitize_key( $_POST['page'] ) : ''; + + // key is the same as $current_screen->id and the JS global 'pagenow', value - capability name(s). + $caps = [ + 'toplevel_page_wpforms-overview' => [ 'view_forms' ], + 'wpforms_page_wpforms-builder' => [ 'edit_forms' ], + 'wpforms_page_wpforms-entries' => [ 'view_entries' ], + ]; + + return isset( $caps[ $page ] ) ? wpforms_current_user_can( $caps[ $page ] ) : wpforms_current_user_can(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/EducationInterface.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/EducationInterface.php new file mode 100644 index 0000000..d54665d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/EducationInterface.php @@ -0,0 +1,27 @@ +fields ) ) { + return $this->fields; + } + + $this->fields = [ + [ + 'icon' => 'fa-phone', + 'name' => esc_html__( 'Phone', 'wpforms-lite' ), + 'name_en' => 'Phone', + 'type' => 'phone', + 'group' => 'fancy', + 'order' => '50', + ], + [ + 'icon' => 'fa-map-marker', + 'name' => esc_html__( 'Address', 'wpforms-lite' ), + 'name_en' => 'Address', + 'type' => 'address', + 'group' => 'fancy', + 'order' => '70', + ], + [ + 'icon' => 'fa-calendar-o', + 'name' => esc_html__( 'Date / Time', 'wpforms-lite' ), + 'name_en' => 'Date / Time', + 'type' => 'date-time', + 'group' => 'fancy', + 'order' => '80', + ], + [ + 'icon' => 'fa-link', + 'name' => esc_html__( 'Website / URL', 'wpforms-lite' ), + 'name_en' => 'Website / URL', + 'type' => 'url', + 'group' => 'fancy', + 'order' => '90', + ], + [ + 'icon' => 'fa-upload', + 'name' => esc_html__( 'File Upload', 'wpforms-lite' ), + 'name_en' => 'File Upload', + 'type' => 'file-upload', + 'group' => 'fancy', + 'order' => '100', + ], + [ + 'icon' => 'fa-camera', + 'name' => esc_html__( 'Camera', 'wpforms-lite' ), + 'name_en' => 'Camera', + 'type' => 'camera', + 'group' => 'fancy', + 'order' => '105', + ], + [ + 'icon' => 'fa-lock', + 'name' => esc_html__( 'Password', 'wpforms-lite' ), + 'name_en' => 'Password', + 'type' => 'password', + 'group' => 'fancy', + 'order' => '95', + ], + [ + 'icon' => 'fa-columns', + 'name' => esc_html__( 'Layout', 'wpforms-lite' ), + 'name_en' => 'Layout', + 'type' => 'layout', + 'group' => 'fancy', + 'order' => '140', + ], + [ + 'icon' => 'fa-list', + 'name' => esc_html__( 'Repeater', 'wpforms-lite' ), + 'name_en' => 'Repeater', + 'type' => 'repeater', + 'group' => 'fancy', + 'order' => '150', + ], + [ + 'icon' => 'fa-files-o', + 'name' => esc_html__( 'Page Break', 'wpforms-lite' ), + 'name_en' => 'Page Break', + 'type' => 'pagebreak', + 'group' => 'fancy', + 'order' => '160', + ], + [ + 'icon' => 'fa-arrows-h', + 'name' => esc_html__( 'Section Divider', 'wpforms-lite' ), + 'name_en' => 'Section Divider', + 'type' => 'divider', + 'group' => 'fancy', + 'order' => '170', + ], + [ + 'icon' => 'fa-pencil-square-o', + 'name' => esc_html__( 'Rich Text', 'wpforms-lite' ), + 'name_en' => 'Rich Text', + 'type' => 'richtext', + 'group' => 'fancy', + 'order' => '170', + ], + [ + 'icon' => 'fa-file-image-o', + 'name' => esc_html__( 'Content', 'wpforms-lite' ), + 'name_en' => 'Content', + 'type' => 'content', + 'group' => 'fancy', + 'order' => '180', + ], + [ + 'icon' => 'fa-code', + 'name' => esc_html__( 'HTML', 'wpforms-lite' ), + 'name_en' => 'HTML', + 'type' => 'html', + 'group' => 'fancy', + 'order' => '185', + ], + [ + 'icon' => 'fa-file-text-o', + 'name' => esc_html__( 'Entry Preview', 'wpforms-lite' ), + 'name_en' => 'Entry Preview', + 'type' => 'entry-preview', + 'group' => 'fancy', + 'order' => '190', + ], + [ + 'icon' => 'fa-star', + 'name' => esc_html__( 'Rating', 'wpforms-lite' ), + 'name_en' => 'Rating', + 'type' => 'rating', + 'group' => 'fancy', + 'order' => '310', + ], + [ + 'icon' => 'fa-eye-slash', + 'name' => esc_html__( 'Hidden Field', 'wpforms-lite' ), + 'name_en' => 'Hidden Field', + 'type' => 'hidden', + 'group' => 'fancy', + 'order' => '98', + ], + [ + 'icon' => 'fa-question-circle', + 'name' => esc_html__( 'Custom Captcha', 'wpforms-lite' ), + 'keywords' => esc_html__( 'spam, math, maths, question', 'wpforms-lite' ), + 'name_en' => 'Custom Captcha', + 'type' => 'captcha', + 'group' => 'fancy', + 'addon' => 'wpforms-captcha', + 'order' => '300', + ], + [ + 'icon' => 'fa-pencil', + 'name' => esc_html__( 'Signature', 'wpforms-lite' ), + 'keywords' => esc_html__( 'user, e-signature', 'wpforms-lite' ), + 'name_en' => 'Signature', + 'type' => 'signature', + 'group' => 'fancy', + 'addon' => 'wpforms-signatures', + 'order' => '200', + ], + [ + 'icon' => 'fa-ellipsis-h', + 'name' => esc_html__( 'Likert Scale', 'wpforms-lite' ), + 'keywords' => esc_html__( 'survey, rating scale', 'wpforms-lite' ), + 'name_en' => 'Likert Scale', + 'type' => 'likert_scale', + 'group' => 'fancy', + 'addon' => 'wpforms-surveys-polls', + 'order' => '400', + ], + [ + 'icon' => 'fa-tachometer', + 'name' => esc_html__( 'Net Promoter Score', 'wpforms-lite' ), + 'keywords' => esc_html__( 'survey, nps', 'wpforms-lite' ), + 'name_en' => 'Net Promoter Score', + 'type' => 'net_promoter_score', + 'group' => 'fancy', + 'addon' => 'wpforms-surveys-polls', + 'order' => '410', + ], + [ + 'icon' => 'fa-credit-card', + 'name' => esc_html__( 'PayPal Commerce', 'wpforms-lite' ), + 'keywords' => esc_html__( 'store, ecommerce, credit card, pay, payment, debit card', 'wpforms-lite' ), + 'name_en' => 'PayPal Commerce', + 'type' => 'paypal-commerce', + 'group' => 'payment', + 'addon' => 'wpforms-paypal-commerce', + 'order' => '89', + ], + [ + 'icon' => 'fa-credit-card', + 'name' => esc_html__( 'Authorize.Net', 'wpforms-lite' ), + 'keywords' => esc_html__( 'store, ecommerce, credit card, pay, payment, debit card', 'wpforms-lite' ), + 'name_en' => 'Authorize.Net', + 'type' => 'authorize_net', + 'group' => 'payment', + 'addon' => 'wpforms-authorize-net', + 'order' => '95', + ], + [ + 'icon' => 'fa-ticket', + 'name' => esc_html__( 'Coupon', 'wpforms-lite' ), + 'keywords' => esc_html__( 'discount, sale', 'wpforms-lite' ), + 'name_en' => 'Coupon', + 'type' => 'payment-coupon', + 'group' => 'payment', + 'addon' => 'wpforms-coupons', + 'order' => '100', + ], + ]; + + $captcha = $this->get_captcha(); + + if ( ! empty( $captcha ) ) { + $this->fields[] = $captcha; + } + + return $this->fields; + } + + /** + * Get Captcha field data. + * + * @since 1.6.6 + * + * @return array Captcha field data. + */ + private function get_captcha(): array { + + $captcha_settings = wpforms_get_captcha_settings(); + + if ( empty( $captcha_settings['provider'] ) ) { + return []; + } + + $captcha = [ + 'hcaptcha' => [ + 'name' => 'hCaptcha', + 'icon' => 'fa-question-circle-o', + ], + 'recaptcha' => [ + 'name' => 'reCAPTCHA', + 'icon' => 'fa-google', + ], + 'turnstile' => [ + 'name' => 'Turnstile', + 'icon' => 'fa-question-circle-o', + ], + ]; + + if ( ! empty( $captcha_settings['site_key'] ) || ! empty( $captcha_settings['secret_key'] ) ) { + $captcha_name = $captcha[ $captcha_settings['provider'] ]['name']; + $captcha_icon = $captcha[ $captcha_settings['provider'] ]['icon']; + } else { + $captcha_name = 'CAPTCHA'; + $captcha_icon = 'fa-question-circle-o'; + } + + return [ + 'icon' => $captcha_icon, + 'name' => $captcha_name, + 'name_en' => $captcha_name, + 'keywords' => esc_html__( 'captcha, spam, antispam', 'wpforms-lite' ), + 'type' => 'captcha_' . $captcha_settings['provider'], + 'group' => 'standard', + 'order' => 180, + 'class' => 'not-draggable', + ]; + } + + /** + * Get filtered fields data. + * + * Usage: + * get_filtered( [ 'group' => 'payment' ] ) - fields from the 'payment' group. + * get_filtered( [ 'addon' => 'surveys-polls' ] ) - fields of the addon 'surveys-polls'. + * get_filtered( [ 'type' => 'payment-total' ] ) - field 'payment-total'. + * + * @since 1.6.6 + * + * @param array $args Arguments array. + * + * @return array Fields data filtered according to given arguments. + */ + private function get_filtered( array $args = [] ): array { + + $default_args = [ + 'group' => '', + 'addon' => '', + 'type' => '', + ]; + + $args = array_filter( wp_parse_args( $args, $default_args ) ); + + $fields = $this->get_all(); + $filtered_fields = []; + + foreach ( $args as $prop => $prop_val ) { + foreach ( $fields as $field ) { + if ( ! empty( $field[ $prop ] ) && $field[ $prop ] === $prop_val ) { + $filtered_fields[] = $field; + } + } + } + + return $filtered_fields; + } + + /** + * Get fields by group. + * + * @since 1.6.6 + * + * @param string $group Fields group (standard, fancy or payment). + * + * @return array. + */ + public function get_by_group( string $group ): array { + + return $this->get_filtered( [ 'group' => $group ] ); + } + + /** + * Get fields by addon. + * + * @since 1.6.6 + * + * @param string $addon Addon slug. + * + * @return array. + */ + public function get_by_addon( string $addon ): array { + + return $this->get_filtered( [ 'addon' => $addon ] ); + } + + /** + * Get field by type. + * + * @since 1.6.6 + * + * @param string $type Field type. + * + * @return array Single field data. Empty array if field is not available. + */ + public function get_field( string $type ): array { + + $fields = $this->get_filtered( [ 'type' => $type ] ); + + return ! empty( $fields[0] ) ? $fields[0] : []; + } + + /** + * Set key value of each field (conditionally). + * + * @since 1.6.6 + * + * @param array $fields Fields data. + * @param string $key Key. + * @param string $value Value. + * @param string $condition Condition. + * + * @return array Updated field data. + */ + public function set_values( array $fields, string $key, string $value, string $condition ): array { + + if ( empty( $fields ) || empty( $key ) ) { + return $fields; + } + + foreach ( $fields as $f => $field ) { + + switch ( $condition ) { + case 'empty': + $fields[ $f ][ $key ] = empty( $field[ $key ] ) ? $value : $field[ $key ]; + break; + + default: + $fields[ $f ][ $key ] = $value; + } + } + + return $fields; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Helpers.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Helpers.php new file mode 100644 index 0000000..3ac9153 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Helpers.php @@ -0,0 +1,172 @@ +%5$s%6$s', + esc_attr( $size ), + esc_attr( $position ), + esc_attr( $color ), + esc_attr( $shape ), + wp_kses( + $icon, + [ + 'i' => [ + 'class' => [], + 'aria-hidden' => [], + ], + ] + ), + esc_html( $text ) + ); + } + + /** + * Print badge HTML. + * + * @since 1.8.5 + * @since 1.8.6 Added `$icon` parameter. + * + * @param string $text Badge text. + * @param string $size Badge size. + * @param string $position Badge position. + * @param string $color Badge color. + * @param string $shape Badge shape. + * @param string $icon Badge icon name in Font Awesome "format", e.g. `fa-check`, defaults to empty string. + */ + public static function print_badge( + string $text, + string $size = 'sm', + string $position = 'inline', + string $color = 'titanium', + string $shape = 'rounded', + string $icon = '' + ) { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo self::get_badge( $text, $size, $position, $color, $shape, $icon ); + } + + /** + * Get addon badge HTML. + * + * @since 1.8.9 + * + * @param array $addon Addon data. + * + * @return string + */ + public static function get_addon_badge( array $addon ): string { + + // List of possible badges. + $badges = [ + 'recommended' => [ + 'text' => esc_html__( 'Recommended', 'wpforms-lite' ), + 'color' => 'green', + 'icon' => 'fa-star', + ], + 'new' => [ + 'text' => esc_html__( 'New', 'wpforms-lite' ), + 'color' => 'blue', + ], + 'featured' => [ + 'text' => esc_html__( 'Featured', 'wpforms-lite' ), + 'color' => 'orange', + ], + ]; + + $badge = []; + + // Get first badge that exists. + foreach ( $badges as $key => $value ) { + if ( ! empty( $addon[ $key ] ) ) { + $badge = $value; + + break; + } + } + + if ( empty( $badge ) ) { + return ''; + } + + return self::get_badge( $badge['text'], 'sm', 'inline', $badge['color'], 'rounded', $badge['icon'] ?? '' ); + } + + /** + * Get inline icon HTML. + * + * @since 1.8.6 + * + * @param string $name Font Awesome icon name, e.g. `fa-check`. + * + * @return string HTML markup for the icon element. + */ + public static function get_inline_icon( string $name ): string { + + return sprintf( '', esc_attr( $name ) ); + } + + /** + * Get available education addons. + * + * @since 1.9.4 + * + * @return array + */ + public static function get_edu_addons(): array { + + static $addons = null; + + if ( $addons !== null ) { + return $addons; + } + + $addons_obj = wpforms()->obj( 'addons' ); + + if ( ! $addons_obj ) { + $addons = []; + + return $addons; + } + + $addons = $addons_obj->get_available(); + + return $addons; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Payment.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Payment.php new file mode 100644 index 0000000..e2d9a83 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Payment.php @@ -0,0 +1,157 @@ +get_license_type(), [ 'lite', 'basic', 'plus' ], true ) ) { + return false; + } + + // Bail early if it has been less than 90 days since activation or the installation wasn't upgraded. + if ( + ! get_option( MigrationsBase::PREVIOUS_CORE_VERSION_OPTION_NAME ) || + wpforms_get_activated_timestamp() > ( time() - 90 * DAY_IN_SECONDS ) + ) { + return false; + } + + // Bail early if a Stripe account is connected. + if ( Stripe\Helpers::has_stripe_keys() ) { + return false; + } + + // Bail early if the user doesn't have the capability to manage options. + if ( ! wpforms_current_user_can() ) { + return false; + } + + // Bail early if there are no published forms. + $forms_obj = wpforms()->obj( 'form' ); + + return $forms_obj && $forms_obj->forms_exist(); + } + + /** + * Enqueue assets for the pointer. + * + * @since 1.8.8 + */ + public function enqueue_assets() { + + // Enqueue the pointer static assets. + parent::enqueue_assets(); + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-education-pointers-payment', + WPFORMS_PLUGIN_URL . "assets/js/admin/education/pointers/payment{$min}.js", + [ 'wp-pointer' ], + WPFORMS_VERSION, + true + ); + + $admin_l10n = [ + 'pointer' => sanitize_key( $this->pointer_id ), + 'nonce' => sanitize_text_field( $this->get_nonce_token() ), + ]; + + wp_localize_script( + 'wpforms-education-pointers-payment', + 'wpforms_education_pointers_payment', + $admin_l10n + ); + } + + /** + * Set arguments for the Payments feature pointer. + * + * @since 1.8.8 + * + * @noinspection HtmlUnknownTarget + */ + protected function set_args() { + + $this->args['title'] = __( 'Payment and Donation Forms are here!', 'wpforms-lite' ); + $this->args['message'] = sprintf( /* translators: %1$s - Payments page URL. */ + __( + 'Now available for you: create forms that accept credit cards, Apple Pay, and Google Pay payments. Visit our new Payments area to get started.', + 'wpforms-lite' + ), + esc_url( PaymentsPage::get_url() ) + ); + } + + /** + * Retrieve the current installation license type in the lowercase. + * If no license type is found, defaults to 'lite'. + * + * @since 1.8.8 + * + * @return string + */ + private function get_license_type(): string { + + $type = wpforms_get_license_type(); + + // Set the default to 'lite' if no license type is detected. + if ( empty( $type ) ) { + $type = 'lite'; + } + + return $type; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Pointer.php b/wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Pointer.php new file mode 100644 index 0000000..b6d3ccc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Admin/Education/Pointers/Pointer.php @@ -0,0 +1,445 @@ +allow_display() || ! $this->allow_load() ) { + return; + } + + // Set initial arguments. + $this->set_initial_args(); + + // Register hooks. + $this->hooks(); + } + + /** + * Check if the pointer is already dismissed or interacted with. + * + * @since 1.8.8 + * + * @return bool + */ + private function allow_display(): bool { + + // If the pointer ID is empty, return. + // Check if announcements are allowed to be displayed. + if ( empty( $this->pointer_id ) || wpforms_setting( 'hide-announcements' ) ) { + return false; + } + + // Get pointers. + $pointers = (array) get_option( self::OPTION_NAME, [] ); + + // Check if the pointer ID exists in the engagement list. + if ( isset( $pointers['engagement'] ) && in_array( $this->pointer_id, (array) $pointers['engagement'], true ) ) { + return false; + } + + // Check if the pointer ID exists in the dismissed list. + if ( isset( $pointers['dismiss'] ) && in_array( $this->pointer_id, (array) $pointers['dismiss'], true ) ) { + return false; + } + + return true; + } + + /** + * Register hooks for the pointer. + * + * @since 1.8.8 + */ + private function hooks(): void { + + // Enqueue assets. + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] ); + + // Print the pointer script. + add_action( 'admin_print_footer_scripts', [ $this, 'print_script' ] ); + + // Add Ajax callback for the engagement. + add_action( 'wp_ajax_wpforms_education_pointers_engagement', [ $this, 'engagement_callback' ] ); + + // Add Ajax callback for dismissing the pointer. + add_action( 'wp_ajax_wpforms_education_pointers_dismiss', [ $this, 'dismiss_callback' ] ); + } + + /** + * Enqueue assets for the pointer. + * + * @since 1.8.8 + */ + public function enqueue_assets() { + + // Enqueue the pointer CSS. + wp_enqueue_style( 'wp-pointer' ); + + // Enqueue the pointer script. + wp_enqueue_script( 'wp-pointer' ); + } + + /** + * Print the pointer script. + * + * @since 1.8.8 + */ + public function print_script(): void { + + // Encode the $args array into JSON format. + $encoded_args = $this->get_prepared_args(); + + if ( empty( $encoded_args ) ) { + return; + } + + // Sanitize pointer ID and selector. + $pointer_id = sanitize_text_field( $this->pointer_id ); + $selector = sanitize_text_field( $this->get_selector() ); + + // Get the admin-ajax URL. + $ajaxurl = esc_url_raw( admin_url( 'admin-ajax.php' ) ); + + // Create nonce for the pointer. + $nonce = sanitize_text_field( $this->get_nonce_token() ); + + // Menu flyout selector. + $menu_flyout = "{$this->top_level_menu}:not(.wp-menu-open)"; + + // Inline CSS style id. + $inline_css_id = "wpforms-{$pointer_id}-inline-css"; + + // The type of echo being used in this PHP code is a HEREDOC syntax. + // HEREDOC allows you to create strings that span multiple lines without + // needing to concatenate them with dots (.) as you would with double quotes. + + // phpcs:disable + echo << + ( function( $ ) { + let options = $encoded_args, setup; + + if ( ! options ) { + return; + } + + options = $.extend( options, { + show: function() { + if ( ! $( '#$inline_css_id' ).length && $( '$menu_flyout' ).length ) { + $( '\n"; + + // Inject media queries, CssToInlineStyles strips them. + $this->styled_email = \str_replace( '', $queries, $this->styled_email ); + } + + /** + * Get an email with inline styles. + * + * @since 1.5.4 + * + * @return string + */ + public function get() { + + if ( empty( $this->styled_email ) ) { + $this->process_markup(); + } + + return $this->styled_email; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Emails/Summaries.php b/wp-content/plugins/wpforms-lite/src/Emails/Summaries.php new file mode 100644 index 0000000..9725e29 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Emails/Summaries.php @@ -0,0 +1,577 @@ +hooks(); + + $summaries_disabled = $this->is_disabled(); + + if ( $summaries_disabled && wp_next_scheduled( 'wpforms_email_summaries_cron' ) ) { + wp_clear_scheduled_hook( 'wpforms_email_summaries_cron' ); + } + + if ( ! $summaries_disabled && ! wp_next_scheduled( 'wpforms_email_summaries_cron' ) ) { + // Since v1.9.1 we use a single event and manually reoccur it + // because a recurring event cannot guarantee + // its firing at the same time during WP_CLI execution. + wp_schedule_single_event( $this->get_next_launch_time(), 'wpforms_email_summaries_cron' ); + } + } + + /** + * Get the instance of a class and store it in itself. + * + * @since 1.5.4 + */ + public static function get_instance() { + + static $instance; + + if ( ! $instance ) { + $instance = new self(); + } + + return $instance; + } + + /** + * Email Summaries hooks. + * + * @since 1.5.4 + */ + public function hooks() { + + add_filter( 'wpforms_settings_defaults', [ $this, 'disable_summaries_setting' ] ); + add_action( 'wpforms_settings_updated', [ $this, 'deregister_fetch_info_blocks_task' ] ); + + // Leave early if Email Summaries are disabled in settings. + if ( $this->is_disabled() ) { + return; + } + + add_action( 'init', [ $this, 'preview' ] ); + add_action( 'wpforms_email_summaries_cron', [ $this, 'cron' ] ); + add_filter( 'wpforms_tasks_get_tasks', [ $this, 'register_fetch_info_blocks_task' ] ); + } + + /** + * Check if Email Summaries are disabled in settings. + * + * @since 1.5.4 + * + * @return bool + */ + protected function is_disabled(): bool { + + /** + * Allows to modify whether Email Summaries are disabled in settings. + * + * @since 1.5.4 + * + * @param bool $is_disabled True if Email Summaries are disabled in settings. False by default. + */ + return (bool) apply_filters( 'wpforms_emails_summaries_is_disabled', (bool) wpforms_setting( 'email-summaries-disable', false ) ); + } + + /** + * Add "Disable Email Summaries" to WPForms settings. + * + * @since 1.5.4 + * + * @param array $settings WPForms settings. + * + * @return mixed + */ + public function disable_summaries_setting( $settings ) { + + /** This filter is documented in wpforms/src/Emails/Summaries.php */ + if ( (bool) apply_filters( 'wpforms_emails_summaries_is_disabled', false ) ) { + return $settings; + } + + $url = wp_nonce_url( + add_query_arg( + [ + 'wpforms_email_template' => 'summary', + 'wpforms_email_preview' => '1', + ], + admin_url() + ), + Preview::PREVIEW_NONCE_NAME + ); + + $desc = esc_html__( 'Disable Email Summaries weekly delivery.', 'wpforms-lite' ); + + if ( ! $this->is_disabled() ) { + $desc .= ' ' . esc_html__( 'View Email Summary Example', 'wpforms-lite' ) . '.'; + } + + // Get the uninstall data setting. + $uninstall_data = $settings['misc']['uninstall-data']; + + // Remove the uninstall data setting. + unset( $settings['misc']['uninstall-data'] ); + + // Add the email summaries setting. + $settings['misc']['email-summaries-disable'] = [ + 'id' => 'email-summaries-disable', + 'name' => esc_html__( 'Disable Email Summaries', 'wpforms-lite' ), + 'desc' => $desc, + 'type' => 'toggle', + 'status' => true, + ]; + + // Add the uninstall data setting to the end. + $settings['misc']['uninstall-data'] = $uninstall_data; + + return $settings; + } + + /** + * Preview Email Summary. + * + * @since 1.5.4 + */ + public function preview() { + + // Leave early if the current request is not a preview for the summaries email template. + if ( ! $this->is_preview() ) { + return; + } + + // Get form entries. + $entries = $this->get_entries(); + + $args = [ + 'body' => [ + 'overview' => $this->get_calculation_overview( $entries ), + 'entries' => $this->format_trends_for_display( $entries ), + 'has_trends' => $this->entries_has_trends( $entries ), + 'notification_block' => ( new NotificationBlocks() )->get_block(), + 'info_block' => ( new InfoBlocks() )->get_next(), + 'icons' => $this->get_icons_url(), + ], + ]; + + $template = ( new Templates\Summary() )->set_args( $args ); + + /** + * Filters the summaries email template. + * + * @since 1.5.4 + * + * @param Templates\Summary $template Default summaries email template. + */ + $template = apply_filters( 'wpforms_emails_summaries_template', $template ); + + $content = $template->get(); + + if ( Helpers::is_plain_text_template() ) { + $content = wpautop( $content ); + } + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $content; + + exit; + } + + /** + * Get next cron occurrence date. + * + * @since 1.5.4 + * @deprecated 1.9.1 + * + * @return int + */ + protected function get_first_cron_date_gmt(): int { + + _deprecated_function( __METHOD__, '1.9.1 of the WPForms plugin', __CLASS__ . '::get_next_launch_time()' ); + + return $this->get_next_launch_time(); + } + + /** + * Get next Monday 2p.m with WordPress offset. + * + * @since 1.9.1 + * + * @return int + */ + protected function get_next_launch_time(): int { + + $datetime = date_create( 'now', wp_timezone() ); + $now_plus_week = time() + constant( 'WEEK_IN_SECONDS' ); + + if ( ! $datetime ) { + return $now_plus_week; + } + + $hours = 14; + + // If today is Monday and the current time is less than 2 p.m., + // we can launch the cron for today. + if ( + (int) $datetime->format( 'N' ) !== 1 || + (int) $datetime->format( 'H' ) >= $hours + ) { + try { + $datetime->modify( 'next monday' ); + } catch ( Exception $e ) { + return $now_plus_week; + } + } + + $datetime->setTime( $hours, 0 ); + + $timestamp = $datetime->getTimestamp(); + + return $timestamp > 0 ? $timestamp : $now_plus_week; + } + + /** + * Add custom Email Summaries cron schedule. + * + * @since 1.5.4 + * @deprecated 1.9.1 + * + * @param array $schedules WP cron schedules. + * + * @return array + */ + public function add_weekly_cron_schedule( $schedules ) { + + _deprecated_function( __METHOD__, '1.9.1 of the WPForms plugin' ); + + $schedules['wpforms_email_summaries_weekly'] = [ + 'interval' => $this->get_next_launch_time() - time(), + 'display' => esc_html__( 'Weekly WPForms Email Summaries', 'wpforms-lite' ), + ]; + + return $schedules; + } + + /** + * Email Summaries cron callback. + * + * @since 1.5.4 + */ + public function cron() { + + $entries = $this->get_entries(); + + // Email won't be sent if there are no form entries. + if ( empty( $entries ) ) { + return; + } + + $notification = new NotificationBlocks(); + $notification_block = $notification->get_block(); + + $info_blocks = new InfoBlocks(); + + $next_block = $info_blocks->get_next(); + + $args = [ + 'body' => [ + 'overview' => $this->get_calculation_overview( $entries ), + 'entries' => $this->format_trends_for_display( $entries ), + 'has_trends' => $this->entries_has_trends( $entries ), + 'notification_block' => $notification_block, + 'info_block' => $next_block, + 'icons' => $this->get_icons_url(), + ], + ]; + + $template = ( new Templates\Summary() )->set_args( $args ); + + /** This filter is documented in preview() method above. */ + $template = apply_filters( 'wpforms_emails_summaries_template', $template ); + + $content = $template->get(); + + if ( ! $content ) { + return; + } + + $parsed_home_url = wp_parse_url( home_url() ); + $site_domain = $parsed_home_url['host']; + + if ( is_multisite() && isset( $parsed_home_url['path'] ) ) { + $site_domain .= $parsed_home_url['path']; + } + + $subject = sprintf( + /* translators: %s - site domain. */ + esc_html__( 'Your Weekly WPForms Summary for %s', 'wpforms-lite' ), + $site_domain + ); + + /** + * Filters the summaries email subject. + * + * @since 1.5.4 + * + * @param string $subject Default summaries email subject. + */ + $subject = apply_filters( 'wpforms_emails_summaries_cron_subject', $subject ); + + /** + * Filters the summaries recipient email address. + * + * @since 1.5.4 + * + * @param string $option Default summaries recipient email address. + */ + $to_email = apply_filters( 'wpforms_emails_summaries_cron_to_email', get_option( 'admin_email' ) ); + + $sent = ( new Mailer() ) + ->template( $template ) + ->subject( $subject ) + ->to_email( $to_email ) + ->send(); + + if ( $sent === true ) { + $info_blocks->register_sent( $next_block ); + + // Cache the notification block shown to avoid showing it again in the future. + $notification->maybe_remember_shown_block( $notification_block ); + } + } + + /** + * Get form entries. + * + * @since 1.5.4 + * + * @return array + */ + protected function get_entries(): array { + + // The return value is intentionally left empty, as each email summary + // depending on the plugin edition Lite/Pro will have different implementation. + return []; + } + + /** + * Get calculation overview. + * + * @since 1.8.8 + * + * @param array $entries Form entries. + * + * @return array + */ + private function get_calculation_overview( $entries ): array { + + // Check if the entries array is empty. + if ( empty( $entries ) ) { + return []; + } + + // Get the sum of 'count' index in all entries. + $sum_current = array_sum( array_column( $entries, 'count' ) ); + + // Choose a specific 'form_id' to check if 'count_previous_week' index exists. + $sample_form_id = key( $entries ); + + // Check if 'count_previous_week' index doesn't exist and return early. + if ( ! isset( $entries[ $sample_form_id ]['count_previous_week'] ) ) { + return []; + } + + // Get the sum of 'count_previous_week' index in all entries. + $sum_previous_week = array_sum( array_column( $entries, 'count_previous_week' ) ); + + // Check if the sum of counts from the previous week is 0. + // If so, return the sum of counts from the current week and trends as "+100%". + if ( $sum_previous_week === 0 ) { + return [ + 'total' => $sum_current, + 'trends' => $this->format_trends_for_display( $sum_current === 0 ? 0 : 100 ), + ]; + } + + // Calculate trends based on the sum of counts from the current week and the previous week. + $trends = round( ( $sum_current - $sum_previous_week ) / $sum_previous_week * 100 ); + + // Return an array with the total and trends. + return [ + 'total' => $sum_current, + 'trends' => $this->format_trends_for_display( $trends ), + ]; + } + + /** + * Register Action Scheduler task to fetch and cache Info Blocks. + * + * @since 1.6.4 + * + * @param \WPForms\Tasks\Task[] $tasks List of task classes. + * + * @return array + */ + public static function register_fetch_info_blocks_task( $tasks ): array { + + $tasks[] = FetchInfoBlocksTask::class; + + return $tasks; + } + + /** + * Deregister Action Scheduler task to fetch and cache Info Blocks. + * + * @since 1.6.4 + */ + public function deregister_fetch_info_blocks_task() { + + if ( ! $this->is_disabled() ) { + return; + } + + // Deregister the task. + ( new FetchInfoBlocksTask() )->cancel(); + + // Delete last run time record. + delete_option( FetchInfoBlocksTask::LAST_RUN ); + + // Remove the cache file if it exists. + $file_name = ( new InfoBlocks() )->get_cache_file_path(); + + if ( file_exists( $file_name ) ) { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, WordPress.WP.AlternativeFunctions.unlink_unlink + @unlink( $file_name ); + } + } + + /** + * Check if the current request is a preview for the summaries email template. + * + * @since 1.8.8 + * + * @return bool + */ + private function is_preview(): bool { + + // Leave if the current user can't access. + if ( ! wpforms_current_user_can() ) { + return false; + } + + // phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + + // Leave early if nonce verification failed. + if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), Preview::PREVIEW_NONCE_NAME ) ) { + return false; + } + + // Leave early if preview is not requested. + if ( ! isset( $_GET['wpforms_email_preview'], $_GET['wpforms_email_template'] ) ) { + return false; + } + + // Leave early if preview is not requested for the summaries template. + if ( $_GET['wpforms_email_template'] !== 'summary' ) { + return false; + } + + // phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + + return true; + } + + /** + * Format entries trends for display. + * + * This function takes an array of entries and formats the 'trends' value for display. + * + * @since 1.8.8 + * + * @param array|int $input Input data to format. + * + * @return array|string + */ + private function format_trends_for_display( $input ) { + + // If input is a numeric value, format and return it. + if ( is_numeric( $input ) ) { + return sprintf( '%s%s%%', $input >= 0 ? '+' : '', $input ); + } + + // Loop through entries and format 'trends' values. + foreach ( $input as &$form ) { + // Leave early if 'trends' index doesn't exist. + if ( ! isset( $form['trends'] ) ) { + continue; + } + + // Add percent sign to trends and + sign if value greater than zero. + $form['trends'] = sprintf( '%s%s%%', $form['trends'] >= 0 ? '+' : '', $form['trends'] ); + } + + return $input; + } + + /** + * Check if trends can be displayed for the given entries. + * + * @since 1.8.8 + * + * @param array $entries The entries data. + * + * @return bool + */ + private function entries_has_trends( array $entries ): bool { + + // Return false if entries array is empty. + if ( empty( $entries ) ) { + return false; + } + + // Check if at least one array item has the 'trends' key. + foreach ( $entries as $entry ) { + if ( isset( $entry['trends'] ) ) { + return true; + } + } + + return false; + } + + /** + * Get icons URL. + * Primarily used in the HTML version of the email template. + * + * @since 1.8.8 + * + * @return array + */ + private function get_icons_url(): array { + + $base_url = WPFORMS_PLUGIN_URL . 'assets/images/email/'; + + return [ + 'overview' => $base_url . 'icon-overview.png', + 'upward' => $base_url . 'icon-upward.png', + 'downward' => $base_url . 'icon-downward.png', + 'notification_block' => $base_url . 'notification-block-icon.png', + 'info_block' => $base_url . 'info-block-icon.png', + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Emails/Tasks/FetchInfoBlocksTask.php b/wp-content/plugins/wpforms-lite/src/Emails/Tasks/FetchInfoBlocksTask.php new file mode 100644 index 0000000..97a3e83 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Emails/Tasks/FetchInfoBlocksTask.php @@ -0,0 +1,113 @@ +init(); + } + + /** + * Initialize the task with all the proper checks. + * + * @since 1.6.4 + */ + public function init() { + + $this->hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + $this->recurring( $this->generate_start_date(), WEEK_IN_SECONDS )->register(); + } + + /** + * Add hooks. + * + * @since 1.7.3 + */ + private function hooks() { + + // Register the action handler. + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Randomly pick a timestamp which is not more than 1 week in the future + * starting before Email Summaries dispatch happens. + * + * @since 1.6.4 + * + * @return int + */ + private function generate_start_date() { + + $tracking = []; + + $tracking['days'] = wp_rand( 0, 6 ) * DAY_IN_SECONDS; + $tracking['hours'] = wp_rand( 0, 23 ) * HOUR_IN_SECONDS; + $tracking['minutes'] = wp_rand( 0, 59 ) * MINUTE_IN_SECONDS; + $tracking['seconds'] = wp_rand( 0, 59 ); + + return strtotime( 'previous monday 1pm' ) + array_sum( $tracking ); + } + + /** + * Process the task. + * + * @since 1.6.4 + */ + public function process() { + + $last_run = get_option( self::LAST_RUN ); + + // Make sure we do not run it more than once a day. + if ( + $last_run !== false && + ( time() - $last_run ) < DAY_IN_SECONDS + ) { + return; + } + + ( new InfoBlocks() )->cache_all(); + + // Update the last run option to the current timestamp. + update_option( self::LAST_RUN, time() ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Emails/Templates/Classic.php b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Classic.php new file mode 100644 index 0000000..60991fb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Classic.php @@ -0,0 +1,21 @@ +set_message( $message ); + + $this->plain_text = Helpers::is_plain_text_template(); + + $this->set_initial_args(); + } + + /** + * Set initial arguments to use in a template. + * + * @since 1.5.4 + */ + public function set_initial_args() { + + $header_args = [ + 'title' => \esc_html__( 'WPForms', 'wpforms-lite' ), + ]; + + if ( ! $this->plain_text ) { + $header_args['header_image'] = $this->get_header_image(); + } + + $args = [ + 'header' => $header_args, + 'body' => [ 'message' => $this->get_message() ], + 'footer' => [], + 'style' => [], + ]; + + $args = \apply_filters( 'wpforms_emails_templates_general_set_initial_args', $args, $this ); + + $this->set_args( $args ); + } + + /** + * Get the template slug. + * + * @since 1.5.4 + * + * @return string + */ + public function get_slug() { + + return static::TEMPLATE_SLUG; + } + + /** + * Get the template parent slug. + * + * @since 1.5.4 + * + * @return string + */ + public function get_parent_slug() { + + return self::TEMPLATE_SLUG; + } + + /** + * Get the message. + * + * @since 1.5.4 + * + * @return string + */ + public function get_message() { + + return \apply_filters( 'wpforms_emails_templates_general_get_message', $this->message, $this ); + } + + /** + * Get the dynamic tags. + * + * @since 1.5.4 + * + * @return array + */ + public function get_tags() { + + return \apply_filters( 'wpforms_emails_templates_general_get_tags', $this->tags, $this ); + } + + /** + * Get header/footer/body arguments + * + * @since 1.5.4 + * + * @param string $type Header/footer/body. + * + * @return array + */ + public function get_args( $type ) { + + if ( ! empty( $type ) ) { + return isset( $this->args[ $type ] ) ? apply_filters( 'wpforms_emails_templates_general_get_args_' . $type, $this->args[ $type ], $this ) : []; + } + + return apply_filters( 'wpforms_emails_templates_general_get_args', $this->args, $this ); + } + + /** + * Set email message. + * + * @since 1.5.4 + * + * @param string $message Email message. + * + * @return General + */ + public function set_message( $message ) { + + $message = \apply_filters( 'wpforms_emails_templates_general_set_message', $message, $this ); + + if ( ! \is_string( $message ) ) { + return $this; + } + + $this->message = $message; + + return $this; + } + + /** + * Set the dynamic tags. + * + * @since 1.5.4 + * + * @param array $tags Tags to set. + * + * @return General + */ + public function set_tags( $tags ) { + + $tags = \apply_filters( 'wpforms_emails_templates_general_set_tags', $tags, $this ); + + if ( ! \is_array( $tags ) ) { + return $this; + } + + $this->tags = $tags; + + return $this; + } + + /** + * Set header/footer/body/style arguments to use in a template. + * + * @since 1.5.4 + * + * @param array $args Arguments to set. + * @param bool $merge Merge the arguments with existing once or replace. + * + * @return General + */ + public function set_args( $args, $merge = true ) { + + $args = \apply_filters( 'wpforms_emails_templates_general_set_args', $args, $this ); + + if ( empty( $args ) || ! \is_array( $args ) ) { + return $this; + } + + foreach ( $args as $type => $value ) { + + if ( ! \is_array( $value ) ) { + continue; + } + + if ( ! isset( $this->args[ $type ] ) || ! \is_array( $this->args[ $type ] ) ) { + $this->args[ $type ] = []; + } + + $this->args[ $type ] = $merge ? \array_merge( $this->args[ $type ], $value ) : $value; + } + + return $this; + } + + /** + * Process and replace any dynamic tags. + * + * @since 1.5.4 + * + * @param string $content Content to make replacements in. + * + * @return string + */ + public function process_tags( $content ) { + + $tags = $this->get_tags(); + + if ( empty( $tags ) ) { + return $content; + } + + foreach ( $tags as $tag => $value ) { + $content = \str_replace( $tag, $value, $content ); + } + + return $content; + } + + /** + * Conditionally modify email template name. + * + * @since 1.5.4 + * + * @param string $name Base template name. + * + * @return string + */ + protected function get_full_template_name( $name ) { + + $name = \sanitize_file_name( $name ); + + if ( $this->plain_text ) { + $name .= '-plain'; + } + + $template = 'emails/' . $this->get_slug() . '-' . $name; + + if ( ! Templates::locate( $template . '.php' ) ) { + $template = 'emails/' . $this->get_parent_slug() . '-' . $name; + } + + return \apply_filters( 'wpforms_emails_templates_general_get_full_template_name', $template, $this ); + } + + /** + * Get header image URL from settings. + * + * @since 1.5.4 + * + * @return array + */ + protected function get_header_image() { + + /** + * Additional 'width' key with an integer value can be added to $img array to control image's width in pixels. + * This setting helps to scale an image in some versions of MS Outlook and old email clients. + * Percentage 'width' values have no effect in MS Outlook and will be sanitized as integer by an email template.. + * + * Example: + * + * $img = [ + * 'url' => \wpforms_setting( 'email-header-image' ), + * 'width' => 150, + * ]; + * + * + * To set percentage values for the modern email clients, use $this->set_args() method: + * + * $this->set_args( + * [ + * 'style' => [ + * 'header_image_max_width' => '45%', + * ], + * ] + *); + * + * Both pixel and percentage approaches work well with 'wpforms_emails_templates_general_get_header_image' filter or this class extension. + */ + $img = [ + 'url' => wpforms_setting( 'email-header-image' ), + 'size' => wpforms_setting( 'email-header-image-size', 'medium' ), + ]; + + return \apply_filters( 'wpforms_emails_templates_general_get_header_image', $img, $this ); + } + + /** + * Get content part HTML. + * + * @since 1.5.4 + * + * @param string $name Name of the content part. + * + * @return string + */ + protected function get_content_part( $name ) { + + if ( ! \is_string( $name ) ) { + return ''; + } + + $html = Templates::get_html( + $this->get_full_template_name( $name ), + $this->get_args( $name ), + true + ); + + return \apply_filters( 'wpforms_emails_templates_general_get_content_part', $html, $name, $this ); + } + + /** + * Assemble all content parts in an array. + * + * @since 1.5.4 + * + * @return array + */ + protected function get_content_parts() { + + $parts = [ + 'header' => $this->get_content_part( 'header' ), + 'body' => $this->get_content_part( 'body' ), + 'footer' => $this->get_content_part( 'footer' ), + ]; + + return \apply_filters( 'wpforms_emails_templates_general_get_content_parts', $parts, $this ); + } + + /** + * Apply inline styling and save email content. + * + * @since 1.5.4 + * + * @param string $content Content with no styling applied. + */ + protected function save_styled( $content ) { + + if ( empty( $content ) ) { + $this->content = ''; + return; + } + + if ( $this->plain_text ) { + $this->content = \wp_strip_all_tags( $content ); + return; + } + + $style_templates = [ + 'style' => $this->get_full_template_name( 'style' ), + 'queries' => $this->get_full_template_name( 'queries' ), + ]; + + $styler = new Styler( $content, $style_templates, $this->get_args( 'style' ) ); + + $this->content = \apply_filters( 'wpforms_emails_templates_general_save_styled_content', $styler->get(), $this ); + } + + /** + * Build an email including styling. + * + * @since 1.5.4 + * + * @param bool $force Rebuild the content if it was already built and saved. + */ + protected function build( $force = false ) { + + if ( $this->content && ! $force ) { + return; + } + + $content = \implode( $this->get_content_parts() ); + + if ( empty( $content ) ) { + return; + } + + $content = $this->process_tags( $content ); + + if ( ! $this->plain_text ) { + $content = \make_clickable( $content ); + } + + $content = \apply_filters( 'wpforms_emails_templates_general_build_content', $content, $this ); + + $this->save_styled( $content ); + } + + /** + * Return final email. + * + * @since 1.5.4 + * + * @param bool $force Rebuild the content if it was already built and saved. + * + * @return string + */ + public function get( $force = false ) { + + $this->build( $force ); + + return $this->content; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Emails/Templates/Notifications.php b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Notifications.php new file mode 100644 index 0000000..9ff740c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Notifications.php @@ -0,0 +1,112 @@ +is_preview = $is_preview; + $this->plain_text = ! $is_preview && Helpers::is_plain_text_template( $current_template ); + + // Call the parent method after to set the correct header properties. + $this->set_initial_args(); + } + + /** + * Set template message. + * + * @since 1.8.5 + * + * @param string $message Message. + */ + public function set_field( $message ) { + + // Leave if not a string. + if ( ! is_string( $message ) ) { + return; + } + + // Set the template message. + $this->set_args( + [ + 'body' => [ + 'message' => $message, + ], + ] + ); + } + + /** + * Get field template. + * + * @since 1.8.5 + * + * @return string + */ + public function get_field_template() { + + return $this->get_content_part( 'field' ); + } + + /** + * Get header image URL from settings. + * This method has been overridden to add support for filtering the returned image. + * + * @since 1.8.6 + * + * @return array + */ + protected function get_header_image() { + + // Retrieve header image URL and size from WPForms settings. + $img = [ + 'url_light' => wpforms_setting( 'email-header-image' ), + 'size_light' => wpforms_setting( 'email-header-image-size', 'medium' ), + 'url_dark' => wpforms_setting( 'email-header-image-dark' ), + 'size_dark' => wpforms_setting( 'email-header-image-size-dark', 'medium' ), + ]; + + /** + * Filter the email header image. + * + * @since 1.8.6 + * + * @param array $img Email header image. + * @param Notifications $this Current instance of the class. + */ + return (array) apply_filters( 'wpforms_emails_templates_notifications_get_header_image', $img, $this ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Emails/Templates/Plain.php b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Plain.php new file mode 100644 index 0000000..e758add --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Plain.php @@ -0,0 +1,69 @@ +plain_text = true; + + // Call the parent method after to set the correct header properties. + $this->set_initial_args(); + } + + /** + * Maybe prepare the content for the preview. + * + * @since 1.8.5 + * + * @param string $content Content with no styling applied. + */ + protected function save_styled( $content ) { + + // Leave early if we are not in preview mode. + if ( ! $this->is_preview ) { + // Call the parent method to handle the proper styling. + parent::save_styled( $content ); + + return; + } + + // Leave if content is empty. + if ( empty( $content ) ) { + $this->content = ''; + + return; + } + + // Stop here as we don't need to apply any styling for the preview. + // The only exception here is to keep the break tags to maintain the readability. + $this->content = wp_kses( $content, [ 'br' => [] ] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Emails/Templates/Summary.php b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Summary.php new file mode 100644 index 0000000..bea2dcb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Emails/Templates/Summary.php @@ -0,0 +1,117 @@ +set_args( $this->maybe_revert_background_color() ); + } + + /** + * Get header image URL from settings. + * + * @since 1.5.4 + * + * @return array + */ + protected function get_header_image() { + + $legacy_header_image = $this->maybe_revert_header_image(); + + // Bail early, if legacy behavior is enabled. + if ( ! empty( $legacy_header_image ) ) { + return $legacy_header_image; + } + + // Set specific WPForms logo width in pixels for MS Outlook and old email clients. + return [ + 'url_light' => WPFORMS_PLUGIN_URL . 'assets/images/logo.png', + 'url_dark' => WPFORMS_PLUGIN_URL . 'assets/images/logo-negative.png', + ]; + } + + /** + * Checks if legacy header image overrides should be applied. + * + * @since 1.8.8 + * + * @return array + */ + private function maybe_revert_header_image() { + + /** + * This filter is designed to restore the legacy behavior, reverting the WPForms logo and template background color + * to values defined in the WPForms → Settings → Email tab. + * + * @since 1.8.8 + * + * @param bool $revert_legacy_style_overrides Whether to apply legacy style overrides. + */ + if ( ! (bool) apply_filters( 'wpforms_emails_templates_summary_revert_legacy_style_overrides', false ) ) { + return []; + } + + $header_image = wpforms_setting( 'email-header-image' ); + + // Bail early, if no custom header image if set. + if ( empty( $header_image ) ) { + return []; + } + + return [ 'url_light' => esc_url( $header_image ) ]; + } + + /** + * Checks if legacy background color overrides should be applied. + * + * @since 1.8.8 + * + * @return array + */ + private function maybe_revert_background_color() { + + /** + * This filter is designed to restore the legacy behavior, reverting the WPForms logo and template background color + * to values defined in the WPForms → Settings → Email tab. + * + * @since 1.8.8 + * + * @param bool $revert_legacy_style_overrides Whether to apply legacy style overrides. + */ + if ( ! (bool) apply_filters( 'wpforms_emails_templates_summary_revert_legacy_style_overrides', false ) ) { + return [ 'style' => [ 'email_background_color' => '' ] ]; + } + + return [ + 'style' => [ + 'email_background_color' => wpforms_setting( 'email-background-color', '#e9eaec' ), + ], + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/ErrorHandler.php b/wp-content/plugins/wpforms-lite/src/ErrorHandler.php new file mode 100644 index 0000000..cb8bea2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/ErrorHandler.php @@ -0,0 +1,418 @@ +dirs = $dirs; + $this->levels = $levels; + } + + /** + * Init class. + * + * @since 1.8.5 + * + * @return void + * @noinspection PhpUndefinedConstantInspection + */ + public function init() { + + if ( defined( 'WPFORMS_DISABLE_ERROR_HANDLER' ) && WPFORMS_DISABLE_ERROR_HANDLER ) { + return; + } + + $this->dirs = [ + // WPForms. + WPFORMS_PLUGIN_DIR . 'vendor/', + WPFORMS_PLUGIN_DIR . 'vendor_prefixed/', + // Addons. + WP_PLUGIN_DIR . '/wpforms-activecampaign/vendor/', + WP_PLUGIN_DIR . '/wpforms-authorize-net/vendor/', + WP_PLUGIN_DIR . '/wpforms-aweber/deprecated/', + WP_PLUGIN_DIR . '/wpforms-aweber/vendor/', + WP_PLUGIN_DIR . '/wpforms-calculations/vendor/', + WP_PLUGIN_DIR . '/wpforms-campaign-monitor/vendor/', + WP_PLUGIN_DIR . '/wpforms-captcha/vendor/', + WP_PLUGIN_DIR . '/wpforms-conversational-forms/vendor/', + WP_PLUGIN_DIR . '/wpforms-convertkit/vendor/', + WP_PLUGIN_DIR . '/wpforms-convertkit/vendor_prefixed/', + WP_PLUGIN_DIR . '/wpforms-coupons/vendor/', + WP_PLUGIN_DIR . '/wpforms-drip/vendor/', + WP_PLUGIN_DIR . '/wpforms-e2e-helpers/vendor/', + WP_PLUGIN_DIR . '/wpforms-entry-automation/vendor/', + WP_PLUGIN_DIR . '/wpforms-form-abandonment/vendor/', + WP_PLUGIN_DIR . '/wpforms-form-locker/vendor/', + WP_PLUGIN_DIR . '/wpforms-form-pages/vendor/', + WP_PLUGIN_DIR . '/wpforms-geolocation/vendor/', + WP_PLUGIN_DIR . '/wpforms-getresponse/vendor/', + WP_PLUGIN_DIR . '/wpforms-google-sheets/vendor/', + WP_PLUGIN_DIR . '/wpforms-hubspot/vendor/', + WP_PLUGIN_DIR . '/wpforms-lead-forms/vendor/', + WP_PLUGIN_DIR . '/wpforms-mailchimp/vendor/', + WP_PLUGIN_DIR . '/wpforms-mailerlite/vendor/', + WP_PLUGIN_DIR . '/wpforms-offline-forms/vendor/', + WP_PLUGIN_DIR . '/wpforms-paypal-commerce/vendor/', + WP_PLUGIN_DIR . '/wpforms-paypal-standard/vendor/', + WP_PLUGIN_DIR . '/wpforms-post-submissions/vendor/', + WP_PLUGIN_DIR . '/wpforms-salesforce/vendor/', + WP_PLUGIN_DIR . '/wpforms-salesforce/vendor_prefixed/', + WP_PLUGIN_DIR . '/wpforms-save-resume/vendor/', + WP_PLUGIN_DIR . '/wpforms-sendinblue/vendor/', + WP_PLUGIN_DIR . '/wpforms-signatures/vendor/', + WP_PLUGIN_DIR . '/wpforms-square/vendor/', // Backward compatibility. + WP_PLUGIN_DIR . '/wpforms-stripe/vendor/', + WP_PLUGIN_DIR . '/wpforms-surveys-polls/vendor/', + WP_PLUGIN_DIR . '/wpforms-user-journey/vendor/', + WP_PLUGIN_DIR . '/wpforms-user-registration/vendor/', + WP_PLUGIN_DIR . '/wpforms-webhooks/vendor/', + WP_PLUGIN_DIR . '/wpforms-zapier/vendor/', + ]; + + /** + * Allow modifying the list of dirs to suppress messages from. + * + * @since 1.8.6 + * + * @param array $dirs The list of dirs to suppress messages from. + */ + $this->dirs = (array) apply_filters( 'wpforms_error_handler_dirs', $this->dirs ); + + $this->normalize_dirs(); + + /** + * Allow modifying the levels of messages to suppress. + * + * @since 1.8.6 + * + * @param int $levels Error levels of messages to suppress. + */ + $this->levels = (int) apply_filters( + 'wpforms_error_handler_levels', + E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE | E_DEPRECATED | E_USER_DEPRECATED + ); + + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.1 + * + * @return void + */ + protected function hooks() { + + if ( $this->dirs && $this->levels ) { + // Set error handler. + $this->set_error_handler(); + + // Some plugins destroy an error handler chain. Set the error handler again upon loading them. + add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ], 1000 ); + } + + // Suppress the _load_textdomain_just_in_time() notices related the WPForms for WP 6.7+. + if ( version_compare( $GLOBALS['wp_version'], '6.7', '>=' ) ) { + add_action( 'doing_it_wrong_run', [ $this,'action_doing_it_wrong_run' ], 0, 3 ); + add_action( 'doing_it_wrong_run', [ $this,'action_doing_it_wrong_run' ], 20, 3 ); + add_filter( 'doing_it_wrong_trigger_error', [ $this, 'filter_doing_it_wrong_trigger_error' ], 10, 4 ); + } + } + + /** + * Set error handler and save original. + * + * @since 1.9.1 + */ + public function set_error_handler() { + + // To chain error handlers, we must not specify the second argument and catch all errors in our handler. + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_set_error_handler + $this->previous_error_handler = set_error_handler( [ $this, 'error_handler' ] ); + } + + /** + * The 'plugins_loaded' hook. + * + * @since 0.32 + * + * @return void + */ + public function plugins_loaded() { + + // Constants of plugins that destroy an error handler chain. + $constants = [ + 'QM_VERSION', // Query Monitor. + 'AUTOMATOR_PLUGIN_VERSION', // Uncanny Automator. + ]; + + $found = false; + + foreach ( $constants as $constant ) { + if ( defined( $constant ) ) { + $found = true; + + break; + } + } + + if ( ! $found ) { + return; + } + + // Set this error handler after loading a plugin to chain its error handler. + ( new self( $this->dirs, $this->levels ) )->set_error_handler(); + } + + /** + * Error handler. + * + * @since 1.8.5 + * + * @param int $level Error level. + * @param string $message Error message. + * @param string $file File produced an error. + * @param int $line Line number. + * + * @return bool + * @noinspection PhpTernaryExpressionCanBeReplacedWithConditionInspection + */ + public function error_handler( int $level, string $message, string $file, int $line ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + if ( $this->handling ) { + $this->handling = false; + + // Prevent infinite recursion and fallback to standard error handler. + return false; + } + + $this->handling = true; + + if ( ( $level & $this->levels ) === 0 ) { + // Not served error level, use fallback error handler. + // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection + return $this->fallback_error_handler( func_get_args() ); + } + + // Process error. + $normalized_file = str_replace( DIRECTORY_SEPARATOR, '/', $file ); + + foreach ( $this->dirs as $dir ) { + if ( strpos( $normalized_file, $dir ) !== false ) { + $this->handling = false; + + // Suppress deprecated errors from this directory. + return true; + } + } + + // Not served directory, use fallback error handler. + // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection + return $this->fallback_error_handler( func_get_args() ); + } + + /** + * Action for _doing_it_wrong() calls. + * + * @since 1.9.2.2 + * + * @param string $function_name The function that was called. + * @param string $message A message explaining what has been done incorrectly. + * @param string $version The version of WordPress where the message was added. + * + * @return void + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function action_doing_it_wrong_run( $function_name, $message, $version ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed, WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + global $wp_filter; + + $function_name = (string) $function_name; + $message = (string) $message; + + if ( ! class_exists( 'QM_Collectors' ) || ! $this->is_just_in_time_for_wpforms_domain( $function_name, $message ) ) { + return; + } + + $qm_collector_doing_it_wrong = QM_Collectors::get( 'doing_it_wrong' ); + $current_priority = $wp_filter['doing_it_wrong_run']->current_priority(); + + if ( $qm_collector_doing_it_wrong === null || $current_priority === false ) { + return; + } + + switch ( $current_priority ) { + case 0: + remove_action( 'doing_it_wrong_run', [ $qm_collector_doing_it_wrong, 'action_doing_it_wrong_run' ] ); + break; + + case 20: + add_action( 'doing_it_wrong_run', [ $qm_collector_doing_it_wrong, 'action_doing_it_wrong_run' ], 10, 3 ); + break; + + default: + break; + } + } + + /** + * Filter for _doing_it_wrong() calls. + * + * @since 1.9.2.2 + * + * @param bool|mixed $trigger Whether to trigger the error for _doing_it_wrong() calls. Default true. + * @param string $function_name The function that was called. + * @param string $message A message explaining what has been done incorrectly. + * @param string $version The version of WordPress where the message was added. + * + * @return bool + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function filter_doing_it_wrong_trigger_error( $trigger, $function_name, $message, $version ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $trigger = (bool) $trigger; + $function_name = (string) $function_name; + $message = (string) $message; + + return $this->is_just_in_time_for_wpforms_domain( $function_name, $message ) ? false : $trigger; + } + + /** + * Filter for gettext. + * + * @since 1.9.2.2 + * @deprecated 1.9.3 + * + * @param string|mixed $translation Translated text. + * @param string|mixed $text Text to translate. + * @param string|mixed $domain Text domain. Unique identifier for retrieving translated strings. + * + * @return string|mixed + * @noinspection PhpUnusedParameterInspection + */ + public function filter_gettext( $translation, $text, $domain ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + _deprecated_function( __METHOD__, '1.9.3 of the WPForms plugin' ); + + return $translation; + } + + /** + * Fallback error handler. + * + * @since 1.9.2 + * + * @param array $args Arguments. + * + * @return bool + * @noinspection PhpTernaryExpressionCanBeReplacedWithConditionInspection + */ + private function fallback_error_handler( array $args ): bool { + + $result = $this->previous_error_handler === null ? + // Use standard error handler. + false : + (bool) call_user_func_array( $this->previous_error_handler, $args ); + + $this->handling = false; + + return $result; + } + + /** + * Normalize dirs. + * + * @since 1.9.2 + * + * @return void + */ + private function normalize_dirs() { + + $this->dirs = array_filter( + array_map( + static function ( $dir ) { + + return str_replace( DIRECTORY_SEPARATOR, '/', trim( $dir ) ); + }, + $this->dirs + ) + ); + } + + /** + * Whether it is the just_in_time_error for WPForms-related domains. + * + * @since 1.9.2.2 + * + * @param string $function_name Function name. + * @param string $message Message. + * + * @return bool + */ + protected function is_just_in_time_for_wpforms_domain( string $function_name, string $message ): bool { + + return $function_name === '_load_textdomain_just_in_time' && strpos( $message, 'wpforms' ) !== false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Akismet.php b/wp-content/plugins/wpforms-lite/src/Forms/Akismet.php new file mode 100644 index 0000000..eeb6773 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Akismet.php @@ -0,0 +1,323 @@ +get_field_type_allowlist(); + $entry_data = []; + $entry_content = []; + + foreach ( $fields as $field_id => $field ) { + $field_type = $field['type']; + + if ( ! in_array( $field_type, $field_type_allowlist, true ) ) { + continue; + } + + $field_content = $this->get_field_content( $field, $entry, $field_id ); + + if ( ! isset( $entry_data[ $field_type ] ) && in_array( $field_type, [ 'name', 'email', 'url' ], true ) ) { + $entry_data[ $field_type ] = $field_content; + + continue; + } + + $entry_content[] = $field_content; + } + + $entry_data['content'] = implode( ' ', $entry_content ); + + return $entry_data; + } + + /** + * Get field content. + * + * @since 1.8.5 + * @since 1.8.9.3 Changed $field_id type from string to int|string. + * + * @param array $field Field data. + * @param array $entry Entry data. + * @param int|string $field_id Field ID. + * + * @return string + */ + private function get_field_content( array $field, array $entry, $field_id ): string { + + if ( ! isset( $entry['fields'][ $field_id ] ) ) { + return ''; + } + + if ( ! is_array( $entry['fields'][ $field_id ] ) ) { + return (string) $entry['fields'][ $field_id ]; + } + + if ( ! empty( $field['type'] ) && $field['type'] === 'email' && ! empty( $entry['fields'][ $field_id ]['primary'] ) ) { + return (string) $entry['fields'][ $field_id ]['primary']; + } + + return implode( ' ', $entry['fields'][ $field_id ] ); + } + + /** + * Is the entry marked as spam by Akismet? + * + * @since 1.7.6 + * + * @param array $form_data Form data for the current form. + * @param array $entry Entry data for the current entry. + * + * @return bool + */ + private function entry_is_spam( array $form_data, array $entry ): bool { + + $request = $this->get_request_args( $form_data, $entry ); + + // Tell Akismet to not use the submission for training if we're on the Preview page and the user is + // an administrator. Checking for both the preview page and the administrator role prevents + // abuse by simply adding a GET parameter. This check happens in the ajax request, + // where `\WPForms\Forms\Preview::is_preview_page()` does not work, so we + // need to check for the GET parameter directly. + if ( + // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + isset( $_REQUEST['page_url'] ) && strpos( wp_unslash( $_REQUEST['page_url'] ), 'wpforms_form_preview' ) !== false && + current_user_can( 'manage_options' ) + ) { + $request['is_test'] = true; + } + + $response = $this->http_post( $request, 'comment-check' ); + + return ! empty( $response ) && isset( $response[1] ) && 'true' === trim( $response[1] ); + } + + /** + * Mark the entry as not spam in Akismet. + * + * @since 1.8.8 + * + * @param array $form_data Form data for the current form. + * @param array $entry Entry data for the current entry. + * + * @return bool + */ + public function set_entry_not_spam( array $form_data, array $entry ) { + + if ( ! self::is_configured() ) { + return false; + } + + $request = $this->get_request_args( $form_data, $entry ); + + $response = $this->http_post( $request, 'submit-ham' ); + + // Yes, Akismet returns "Thanks for making the web a better place." as the response. + return ! empty( $response ) && isset( $response[1] ) && 'Thanks for making the web a better place.' === trim( $response[1] ); + } + + /** + * Mark the entry as spam in Akismet. + * + * @since 1.8.9 + * + * @param array $form_data Form data for the current form. + * @param array $entry Entry data for the current entry. + * + * @return bool + */ + public function submit_missed_spam( array $form_data, array $entry ) { + + if ( ! self::is_configured() ) { + return false; + } + + $request = $this->get_request_args( $form_data, $entry ); + + $response = $this->http_post( $request, 'submit-spam' ); + + // Yes, Akismet returns "Thanks for making the web a better place." as the response. + return ! empty( $response ) && isset( $response[1] ) && 'Thanks for making the web a better place.' === trim( $response[1] ); + } + + /** + * Get the request arguments to be sent to Akismet. + * + * @since 1.8.8 + * + * @param array $form_data Form data for the current form. + * @param array $entry Entry data for the current entry. + * + * @return array $request_args Request arguments to be sent to Akismet. + */ + private function get_request_args( $form_data, $entry ) { + + $entry_data = $this->get_entry_data( $form_data['fields'], $entry ); + + $entry_id = $entry['entry_id'] ?? null; + + // We can't use certain real-time functions when the entry is marked as not spam. + // In this case, we need to use the smart tag value. + if ( ! empty( $entry_id ) ) { + $page_url = wpforms_process_smart_tags( '{page_url}', $form_data, [], $entry_id, 'akismet-request-args' ); + $url_referer = wpforms_process_smart_tags( '{url_referer}', $form_data, [], $entry_id, 'akismet-request-args' ); + $user_id = wpforms_process_smart_tags( '{user_id}', $form_data, [], $entry_id, 'akismet-request-args' ); + $user_ip = wpforms_process_smart_tags( '{user_ip}', $form_data, [], $entry_id, 'akismet-request-args' ); + $user_agent = ''; + } else { + $page_url = wpforms_current_url(); + $url_referer = wp_get_referer(); + $user_id = get_current_user_id(); + $user_ip = wpforms_get_ip(); + $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + } + + return [ + 'blog' => get_option( 'home' ), + 'blog_lang' => get_locale(), + 'blog_charset' => get_bloginfo( 'charset' ), + 'permalink' => $page_url, + 'user_ip' => wpforms_is_collecting_ip_allowed( $form_data ) ? $user_ip : '', + 'user_id' => $user_id, + 'user_role' => AkismetPlugin::get_user_roles( $user_id ), + 'user_agent' => $user_agent, + 'referrer' => $url_referer ? $url_referer : '', + 'comment_type' => 'contact-form', + 'comment_author' => $entry_data['name'] ?? '', + 'comment_author_email' => $entry_data['email'] ?? '', + 'comment_author_url' => $entry_data['url'] ?? '', + 'comment_content' => $entry_data['content'] ?? '', + 'honeypot_field_name' => 'wpforms[hp]', + ]; + } + + /** + * Send a POST request to the Akismet API. + * + * @since 1.8.8 + * + * @param array $request Request arguments to be sent to Akismet. + * @param string $path API path. + * + * @return array + */ + private function http_post( $request, $path ) { + + // build_query() does not urlencode the values, but API explicitly requires it. + $request = array_map( 'urlencode', $request ); + + return AkismetPlugin::http_post( build_query( $request ), $path ); + } + + /** + * Validate entry. + * + * @since 1.7.6 + * + * @param array $form_data Form data for the current form. + * @param array $entry Entry data for the current entry. + * + * @return string|bool + */ + public function validate( array $form_data, array $entry ) { + + // If Akismet is turned on in form settings, is activated, is configured and the entry is spam. + if ( + ! empty( $form_data['settings']['akismet'] ) && + self::is_configured() && + $this->entry_is_spam( $form_data, $entry ) + ) { + // This string is being logged not printed, so it does not need to be translatable. + return esc_html__( 'Anti-spam verification failed, please try again later.', 'wpforms-lite' ); + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/AntiSpam.php b/wp-content/plugins/wpforms-lite/src/Forms/AntiSpam.php new file mode 100644 index 0000000..402e61f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/AntiSpam.php @@ -0,0 +1,385 @@ + field_id]). + * + * @since 1.9.0.3 + * + * @var array + */ + private $forms_data = []; + + /** + * Initialise the actions for the modern Anti-Spam. + * + * @since 1.9.0 + */ + public function init() { + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.0 + */ + private function hooks() { + + // Frontend hooks. + add_filter( 'wpforms_frontend_strings', [ $this, 'add_frontend_strings' ] ); + add_filter( 'wpforms_frontend_fields_base_level', [ $this, 'get_random_field' ], 20 ); + add_action( 'wpforms_display_field_before', [ $this, 'maybe_insert_honeypot_field' ], 1, 2 ); + add_action( 'wpforms_display_fields_after', [ $this, 'maybe_insert_honeypot_init_js' ] ); + + // Builder hooks. + add_filter( 'wpforms_builder_panel_settings_init_form_data', [ $this, 'init_builder_settings_form_data' ] ); + add_filter( 'wpforms_admin_builder_templates_apply_to_new_form_modify_data', [ $this, 'update_template_form_data' ] ); + add_filter( 'wpforms_admin_builder_templates_apply_to_existing_form_modify_data', [ $this, 'update_template_form_data' ] ); + add_filter( 'wpforms_templates_class_base_template_modify_data', [ $this, 'update_template_form_data' ] ); + add_filter( 'wpforms_templates_class_base_template_replace_modify_data', [ $this, 'update_template_form_data' ] ); + add_filter( 'wpforms_form_handler_convert_form_data', [ $this, 'update_template_form_data' ] ); + } + + /** + * Store a random field id to insert a honeypot field later. + * + * @since 1.9.0 + * + * @param array|mixed $fields_data Form fields data. + * + * @return array|mixed Form fields data. + */ + public function get_random_field( $fields_data ) { + + if ( ! is_array( $fields_data ) ) { + return $fields_data; + } + + $random_field_id = array_rand( $fields_data ); + + if ( ! empty( $random_field_id ) ) { + $this->insert_before_field_id = $random_field_id; + } + + return $fields_data; + } + + /** + * Insert honeypot field before a random field. + * + * @since 1.9.0 + * + * @param array $field Field. + * @param array $form_data Form data. + */ + public function maybe_insert_honeypot_field( array $field, array $form_data ) { + + if ( + $this->insert_before_field_id !== (int) $field['id'] || + ! $this->is_honeypot_enabled( $form_data ) + ) { + return; + } + + $honeypot_field_id = $this->get_honeypot_field_id( $form_data ); + $form_id = (int) $form_data['id']; + $label = $this->get_honeypot_label( $form_data ); + $id_attr = sprintf( 'wpforms-%1$s-field_%2$s', $form_id, $honeypot_field_id ); + $is_amp = wpforms_is_amp(); + $this->forms_data[ $form_id ] = $honeypot_field_id; + + if ( $is_amp ) { + echo ''; + } + + ?> +
              + + +
              + '; + } + } + + /** + * Insert the inline styles. + * + * @since 1.9.0 + * + * @param array $form_data Form data. + * + * @noinspection PhpUnusedParameterInspection + */ + public function maybe_insert_honeypot_init_js( array $form_data ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + if ( + ! $this->forms_data || + wpforms_is_amp() + ) { + return; + } + + $ids = []; + + foreach ( $this->forms_data as $form_id => $honeypot_field_id ) { + $ids[] = sprintf( + '#wpforms-%1$d-field_%2$d-container', + $form_id, + $honeypot_field_id + ); + } + + if ( ! $ids ) { + return; + } + + $styles = sprintf( + '%1$s { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } %1$s input { visibility: hidden; } #wpforms-conversational-form-page %1$s label { counter-increment: none; }', + esc_attr( implode( ',', $ids ) ) + ); + + // There must be no empty lines inside the script. Otherwise, wpautop adds

              tags which break script execution. + printf( + "", + esc_js( $styles ) + ); + } + + /** + * Get honeypot field label. + * + * @since 1.9.0 + * + * @param array $form_data Form data. + */ + private function get_honeypot_label( array $form_data ): string { + + $labels = []; + + foreach ( $form_data['fields'] ?? [] as $field ) { + if ( ! empty( $field['label'] ) ) { + $labels[] = $field['label']; + } + } + + $words = explode( ' ', implode( ' ', $labels ) ); + $count_words = count( $words ); + $label_keys = (array) array_rand( $words, min( $count_words, 3 ) ); + + shuffle( $label_keys ); + + $label_words = array_map( + static function ( $key ) use ( $words ) { + + return $words[ $key ]; + }, + $label_keys + ); + + return implode( ' ', $label_words ); + } + + /** + * Add strings to the frontend. + * + * @since 1.9.0 + * + * @param array|mixed $strings Frontend strings. + * + * @return array Frontend strings. + */ + public function add_frontend_strings( $strings ): array { + + $strings = (array) $strings; + + // Store the honeypot field ID for validation and adding inline styles. + $strings['hn_data'] = $this->forms_data; + + return $strings; + } + + /** + * Validate whether the modern Anti-Spam is enabled. + * + * @since 1.9.0 + * + * @param array $form_data Form data. + * @param array $fields Fields. + * @param array $entry Form submission raw data ($_POST). + * + * @return bool True if the entry is valid, false otherwise. + * @noinspection PhpUnusedParameterInspection + */ + public function validate( array $form_data, array $fields, array &$entry ): bool { + + // Bail out if the modern Anti-Spam is not enabled. + if ( ! $this->is_honeypot_enabled( $form_data ) ) { + return true; + } + + $honeypot_fields = array_diff_key( $entry['fields'], $form_data['fields'] ); + $is_valid = true; + + // Compatibility with the WPML plugin (WPFML addon). + // In case the form contains an Entry Preview field, they add an extra field with ID 0 to the entry. + if ( + isset( $entry['fields'][0] ) && + defined( 'WPML_WP_FORMS_VERSION' ) && + wpforms_has_field_type( 'entry-preview', $form_data ) + ) { + unset( $honeypot_fields[0] ); + } + + foreach ( $honeypot_fields as $key => $honeypot_field ) { + // Remove the honeypot field from the entry. + unset( $entry['fields'][ $key ] ); + + // If the honeypot field is not empty, the entry is invalid. + if ( ! empty( $honeypot_field ) ) { + $is_valid = false; + } + } + + return $is_valid; + } + + /** + * Check if the modern Anti-Spam is enabled. + * + * @since 1.9.0 + * + * @param array $form_data Form data. + * + * @return bool True if the modern Anti-Spam is enabled, false otherwise. + */ + private function is_honeypot_enabled( array $form_data ): bool { + + static $is_enabled; + + if ( isset( $is_enabled ) ) { + return $is_enabled; + } + + /** + * Filters whether the modern Anti-Spam is enabled. + * + * @since 1.9.0 + * + * @param bool $is_enabled True if the modern Anti-Spam is enabled, false otherwise. + */ + $is_enabled = (bool) apply_filters( 'wpforms_forms_anti_spam_v3_is_honeypot_enabled', ! empty( $form_data['settings']['antispam_v3'] ) ); + + return $is_enabled; + } + + /** + * Get the honeypot field ID. + * + * @since 1.9.0 + * + * @param array $form_data Form data. + * + * @return int Honeypot field ID. + */ + private function get_honeypot_field_id( array $form_data ): int { + + $max_key = max( array_keys( $form_data['fields'] ) ); + + // Find the first available field ID. + for ( $i = 1; $i <= $max_key; $i++ ) { + if ( ! isset( $form_data['fields'][ $i ] ) ) { + return $i; + } + } + + // If no available field ID found, use the max ID + 1. + return $max_key + 1; + } + + /** + * Update the form data on the builder settings panel. + * + * @since 1.9.0 + * + * @param array|bool $form_data Form data. + * + * @return array|bool + */ + public function init_builder_settings_form_data( $form_data ) { + + if ( ! $form_data ) { + return $form_data; + } + + // Update default time limit duration for the existing form. + if ( empty( $form_data['settings']['anti_spam']['time_limit']['enable'] ) ) { + $form_data['settings']['anti_spam']['time_limit']['duration'] = '2'; + } + + return $form_data; + } + + /** + * Update the template form data. Set the modern Anti-Spam setting. + * + * @since 1.9.0 + * + * @param array|mixed $form_data Form data. + * + * @return array + */ + public function update_template_form_data( $form_data ): array { + + $form_data = (array) $form_data; + + // Unset the old Anti-Spam setting. + unset( $form_data['settings']['antispam'] ); + + // Enable the modern Anti-Spam setting. + $form_data['settings']['antispam_v3'] = $form_data['settings']['antispam_v3'] ?? '1'; + $form_data['settings']['anti_spam'] = $form_data['settings']['anti_spam'] ?? []; + + // Enable the time limit setting. + $form_data['settings']['anti_spam']['time_limit'] = [ + 'enable' => '1', + 'duration' => '2', + ]; + + return $form_data; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Coupon/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Coupon/Field.php new file mode 100644 index 0000000..2e73d66 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Coupon/Field.php @@ -0,0 +1,298 @@ +name = esc_html__( 'Coupon', 'wpforms-lite' ); + $this->keywords = esc_html__( 'discount, sale', 'wpforms-lite' ); + $this->type = 'payment-coupon'; + $this->icon = 'fa-ticket'; + $this->order = 100; + $this->group = 'payment'; + $this->addon_slug = 'coupons'; + + $this->is_addon_active = function_exists( 'wpforms_' . $this->addon_slug ); + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Define field hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + + add_filter( 'wpforms_field_new_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 20, 2 ); + add_filter( 'wpforms_field_preview_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 20, 2 ); + } + + /** + * Disallow field preview "Duplicate" button. + * + * @since 1.9.4 + * + * @param bool|mixed $display Display switch. + * @param array $field Field settings. + * + * @return bool + */ + public function field_display_duplicate_button( $display, array $field ) { + + return $field['type'] === $this->type ? false : $display; + } + + /** + * Define additional field options. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + public function field_options( $field ) { + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + $this->field_option( 'label', $field ); + + $this->field_option( 'description', $field ); + + $coupons = []; + $form_coupons = []; + + if ( $this->is_addon_active ) { + $coupons = wpforms_coupons()->get( 'repository' )->get_coupons( + [ + 'limit' => -1, + 'fields' => 'id=>name', + ] + ); + $form_coupons = wpforms_coupons()->get( 'repository' )->get_form_coupons( $this->get_form_id() ); + } + + $warning = sprintf( + '

              %2$s

              ', + empty( $form_coupons ) && empty( $this->is_disabled_field ) ? '' : ' wpforms-hidden', + esc_html__( 'You haven\'t selected any coupons that can be used with this form. Please choose at least one coupon.', 'wpforms-lite' ) + ); + + $coupons_field_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'allowed_coupons', + 'value' => esc_html__( 'Allowed Coupons', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Choose coupons that can be used in the field.', 'wpforms-lite' ), + ], + false + ); + $coupons_field = $this->get_allowed_coupons_field( $coupons, $form_coupons, $field ); + $allowed_forms_json = sprintf( + '', + $field['id'], + wp_json_encode( $form_coupons ) + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'allowed_coupons', + 'content' => $coupons_field_label . $coupons_field . $allowed_forms_json . $warning, + ] + ); + $this->field_option( 'required', $field ); + + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + $this->field_option( 'button_text', $field ); + + $button_text_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'button_text', + 'value' => esc_html__( 'Button Text', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Change button text.', 'wpforms-lite' ), + ], + false + ); + $button_text_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'button_text', + 'value' => isset( $field['button_text'] ) && ! wpforms_is_empty_string( $field['button_text'] ) + ? $field['button_text'] + : esc_html__( 'Apply', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'button_text', + 'content' => $button_text_label . $button_text_field, + ] + ); + $this->field_option( 'css', $field ); + $this->field_option( 'label_hide', $field ); + $this->field_option( 'advanced-options', $field, [ 'markup' => 'close' ] ); + } + + /** + * Get allowed coupons' field. + * + * @since 1.9.4 + * + * @param array $coupons Coupons. + * @param array $form_coupons Form coupons. + * @param array $field Field data. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ + private function get_allowed_coupons_field( array $coupons, array $form_coupons, array $field ): string { + + $output = sprintf( ''; + + return $output; + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + $allowed_coupons = []; + + if ( $this->is_addon_active ) { + $allowed_coupons = wpforms_coupons()->get( 'repository' )->get_form_coupons( $this->get_form_id() ); + } + + printf( + '
              + + + +
              ', + esc_html( $this->get_button_text( $field ) ), + empty( $allowed_coupons ) && empty( $this->is_disabled_field ) ? '' : ' wpforms-hidden' + ); + + // Description. + $this->field_preview_option( 'description', $field ); + + // Hide remaining elements. + $this->field_preview_option( 'hide-remaining', $field ); + } + + /** + * Get form ID. In AJAX requests the $form_id property doesn't exist. + * + * @since 1.9.4 + * + * @return bool|int + */ + protected function get_form_id() { + + if ( $this->form_id ) { + return $this->form_id; + } + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $this->form_id = isset( $_POST['id'] ) ? absint( $_POST['id'] ) : false; + + return $this->form_id; + } + + /** + * Get the apply button text. + * + * @since 1.9.4 + * + * @param array $field Field data. + * + * @return string + */ + protected function get_button_text( array $field ): string { + + return isset( $field['button_text'] ) && ! wpforms_is_empty_string( $field['button_text'] ) + ? $field['button_text'] + : __( 'Apply', 'wpforms-lite' ); + } + + /** + * Field display on the frontend. + * + * @since 1.9.4 + * + * @param array $field Field data. + * @param array $deprecated Field attributes. + * @param array $form_data Form data. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/LikertScale/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/LikertScale/Field.php new file mode 100644 index 0000000..4069c11 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/LikertScale/Field.php @@ -0,0 +1,378 @@ +name = esc_html__( 'Likert Scale', 'wpforms-lite' ); + $this->keywords = esc_html__( 'survey, rating scale', 'wpforms-lite' ); + $this->type = 'likert_scale'; + $this->icon = 'fa-ellipsis-h'; + $this->order = 400; + $this->group = 'fancy'; + $this->addon_slug = 'surveys-polls'; + + $this->default_settings = [ + 'size' => 'large', + 'style' => 'modern', + 'survey' => '1', + 'rows' => [ + 1 => esc_html__( 'Item #1', 'wpforms-lite' ), + 2 => esc_html__( 'Item #2', 'wpforms-lite' ), + 3 => esc_html__( 'Item #3', 'wpforms-lite' ), + ], + 'columns' => [ + 1 => esc_html__( 'Strongly Disagree', 'wpforms-lite' ), + 2 => esc_html__( 'Disagree', 'wpforms-lite' ), + 3 => esc_html__( 'Neutral', 'wpforms-lite' ), + 4 => esc_html__( 'Agree', 'wpforms-lite' ), + 5 => esc_html__( 'Strongly Agree', 'wpforms-lite' ), + ], + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.4 + */ + protected function hooks() {} + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + + /** + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Rows. + $values = ! empty( $field['rows'] ) ? $field['rows'] : $this->default_settings['rows']; + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'rows', + 'value' => esc_html__( 'Rows', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Add rows to the likert scale.', 'wpforms-lite' ), + ], + false + ); + $fld = sprintf( + '
                ', + esc_attr( $field['id'] ), + max( array_keys( $values ) ) + 1, + ! empty( $field['single_row'] ) ? 'wpforms-hidden' : '', + $this->type, + 'rows' + ); + + foreach ( $values as $key => $value ) { + $fld .= sprintf( '
              • ', $key ); + $fld .= ''; + $fld .= sprintf( '', esc_attr( $field['id'] ), $key, esc_attr( $value ) ); + $fld .= ''; + $fld .= ''; + $fld .= '
              • '; + } + $fld .= '
              '; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'rows', + 'content' => $lbl . $fld, + ] + ); + + // Single rows. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'single_row', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'single_row', + 'value' => isset( $field['single_row'] ) ? '1' : '0', + 'desc' => esc_html__( 'Make this a single-row rating scale', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to make this a single-row rating scale and remove the row choices.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + // Multiple row responses. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'multiple_responses', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'multiple_responses', + 'value' => isset( $field['multiple_responses'] ) ? '1' : '0', + 'desc' => esc_html__( 'Allow multiple responses per row', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to allow multiple responses per row (uses checkboxes).', 'wpforms-lite' ), + ], + false + ), + ] + ); + + // Columns. + $values = ! empty( $field['columns'] ) ? $field['columns'] : $this->default_settings['columns']; + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'columns', + 'value' => esc_html__( 'Columns', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Add columns to the likert scale.', 'wpforms-lite' ), + ], + false + ); + $fld = sprintf( + '
                ', + esc_attr( $field['id'] ), + max( array_keys( $values ) ) + 1, + $this->type, + 'columns' + ); + + foreach ( $values as $key => $value ) { + $fld .= sprintf( '
              • ', $key ); + $fld .= ''; + $fld .= sprintf( '', $field['id'], $key, esc_attr( $value ) ); + $fld .= ''; + $fld .= ''; + $fld .= '
              • '; + } + $fld .= '
              '; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'columns', + 'content' => $lbl . $fld, + ] + ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Style (theme). + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'style', + 'value' => esc_html__( 'Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the style for the likert scale.', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'style', + 'value' => ! empty( $field['style'] ) ? esc_attr( $field['style'] ) : 'modern', + 'options' => [ + 'modern' => esc_html__( 'Modern', 'wpforms-lite' ), + 'classic' => esc_html__( 'Classic', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'style', + 'content' => $lbl . $fld, + ] + ); + + // Size. + $this->field_option( 'size', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Define data. + $rows = ! empty( $field['rows'] ) ? $field['rows'] : $this->default_settings['rows']; + $columns = ! empty( $field['columns'] ) ? $field['columns'] : $this->default_settings['columns']; + $input_type = ! empty( $field['multiple_responses'] ) ? 'checkbox' : 'radio'; + $style = ! empty( $field['style'] ) ? sanitize_html_class( $field['style'] ) : 'modern'; + $single = ! empty( $field['single_row'] ); + $width = $single ? round( 100 / count( $columns ), 4 ) : round( 80 / count( $columns ), 4 ); + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + ?> + +
              diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-base.php b/wp-content/plugins/wpforms-lite/includes/fields/class-base.php new file mode 100644 index 0000000..6738b87 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-base.php @@ -0,0 +1,4490 @@ + 0, + 'type' => '', + 'label' => '', + 'description' => '', + 'size' => 'medium', + 'default_value' => '', + 'css' => '', + 'read_only' => 0, + ]; + + /** + * Full name of the field type, e.g. "Paragraph Text". + * + * @since 1.0.0 + * + * @var string + */ + public $name; + + /** + * Type of the field, eg "textarea". + * + * @since 1.0.0 + * + * @var string + */ + public $type; + + /** + * Font Awesome Icon used for the editor button, e.g. "fa-list". + * + * @since 1.0.0 + * + * @var mixed + */ + public $icon = false; + + /** + * Field keywords for search, e.g. "checkbox, file, icon, upload". + * + * @since 1.8.3 + * + * @var string + */ + public $keywords = ''; + + /** + * Priority order the field button should show inside the "Add Fields" tab. + * + * @since 1.0.0 + * + * @var int + */ + public $order = 1; + + /** + * Field group the field belongs to. + * + * @since 1.0.0 + * + * @var string + */ + public $group = 'standard'; + + /** + * Placeholder to hold default value(s) for some field types. + * + * @since 1.0.0 + * + * @var mixed + */ + public $defaults; + + /** + * Default field settings. + * + * @since 1.9.4 + * + * @var mixed + */ + public $default_settings; + + /** + * Current form ID in the admin builder. + * + * @since 1.1.1 + * + * @var int|false + */ + public $form_id; + + /** + * Current field ID. + * + * @since 1.5.6 + * + * @var int + */ + public $field_id; + + /** + * Current form data. + * + * @since 1.1.1 + * + * @var array + */ + public $form_data; + + /** + * Current field data. + * + * @since 1.5.6 + * + * @var array + */ + public $field_data; + + /** + * Instance of the Frontend class. + * + * @since 1.8.1 + * + * @var FrontendBase + */ + protected $frontend_obj; + + /** + * Primary class constructor. + * + * @since 1.0.0 + * + * @param bool $init Pass false to allow shortcutting the whole initialization, if needed. + */ + public function __construct( $init = true ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( ! $init ) { + return; + } + + // phpcs:disable WordPress.Security.NonceVerification + $this->form_id = false; + + if ( isset( $_GET['form_id'] ) ) { + $this->form_id = absint( $_GET['form_id'] ); + } elseif ( isset( $_POST['id'] ) ) { + $this->form_id = absint( $_POST['id'] ); + } + // phpcs:enable WordPress.Security.NonceVerification + + // Bootstrap. + $this->init(); + $this->read_only_init(); + + // Init field default settings. + $this->field_default_settings(); + + // Initialize a field's Frontend class. + $this->frontend_obj = $this->get_object( 'Frontend' ); + + // Common field hooks. + $this->common_hooks(); + } + + /** + * Common field hooks. + * + * @since 1.9.4 + */ + protected function common_hooks(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Solution to get an object of the field class. + add_filter( + "wpforms_fields_get_field_object_{$this->type}", + function () { + return $this; + } + ); + + // Field data. + add_filter( 'wpforms_field_new_default', [ $this, 'field_new_default' ] ); + + // Field data. + add_filter( 'wpforms_field_data', [ $this, 'field_data' ], 10, 2 ); + + // Add fields tab. + add_filter( 'wpforms_builder_fields_buttons', [ $this, 'field_button' ], 15 ); + + // Add field keywords to the template fields. + add_filter( 'wpforms_setup_template_fields', [ $this, 'enhance_template_fields_with_keywords' ] ); + + // Field options tab. + add_action( "wpforms_builder_fields_options_{$this->type}", [ $this, 'field_options' ] ); + + // Preview fields. + add_action( "wpforms_builder_fields_previews_{$this->type}", [ $this, 'field_preview' ] ); + + // AJAX Add new field. + add_action( "wp_ajax_wpforms_new_field_{$this->type}", [ $this, 'field_new' ] ); + + // Display field input elements on the front-end. + add_action( "wpforms_display_field_{$this->type}", [ $this, 'field_display_proxy' ], 10, 3 ); + + // Display field on the back-end. + add_filter( "wpforms_pro_admin_entries_edit_is_field_displayable_{$this->type}", '__return_true', 9 ); + + // Validation on submitting. + add_action( "wpforms_process_validate_{$this->type}", [ $this, 'validate' ], 10, 3 ); + + // Format. + add_action( "wpforms_process_format_{$this->type}", [ $this, 'format' ], 10, 3 ); + + // Prefill. + add_filter( 'wpforms_field_properties', [ $this, 'field_prefill_value_property' ], 10, 3 ); + + // Change the choice's value while saving entries. + add_filter( 'wpforms_process_before_form_data', [ $this, 'field_fill_empty_choices' ] ); + + // Change the field name for ajax error. + add_filter( 'wpforms_process_ajax_error_field_name', [ $this, 'ajax_error_field_name' ], 10, 4 ); + + // Add HTML line breaks before all newlines in Entry Preview. + add_filter( "wpforms_pro_fields_entry_preview_get_field_value_{$this->type}_field_after", 'nl2br', 100 ); + + // Add allowed HTML tags for the field label. + add_filter( 'wpforms_builder_strings', [ $this, 'add_allowed_label_html_tags' ] ); + + // Exclude empty dynamic choices from Entry Preview. + add_filter( 'wpforms_pro_fields_entry_preview_print_entry_preview_exclude_field', [ $this, 'exclude_empty_dynamic_choices' ], 10, 3 ); + + // Add classes to the builder field preview. + add_filter( 'wpforms_field_preview_class', [ $this, 'preview_field_class' ], 10, 2 ); + } + + /** + * All systems go. Used by subclasses. Required. + * + * @since 1.0.0 + * @since 1.5.0 Converted to abstract method, as it's required for all fields. + */ + abstract public function init(); + + /** + * Prefill the field value with either fallback or dynamic data. + * This needs to be public (although internal) to be used in WordPress hooks. + * + * @since 1.5.0 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * @param array $form_data Prepared form data/settings. + * + * @return array Modified field properties. + */ + public function field_prefill_value_property( $properties, $field, $form_data ) { + + // Process only for the current field. + if ( $this->type !== $field['type'] ) { + return $properties; + } + + // Set the form data, so we can reuse it later, even on the front-end. + $this->form_data = $form_data; + + // Dynamic data. + if ( ! empty( $this->form_data['settings']['dynamic_population'] ) ) { + $properties = $this->field_prefill_value_property_dynamic( $properties, $field ); + } + + // Fallback data rewrites the dynamic because user-submitted data is more important. + return $this->field_prefill_value_property_fallback( $properties, $field ); + } + + /** + * As we are processing user submitted data - ignore all admin-defined defaults. + * Preprocess choice-related fields only. + * + * @since 1.5.0 + * + * @param array $field Field data and settings. + * @param array $properties Properties we are modifying. + */ + public function field_prefill_remove_choices_defaults( $field, &$properties ): void { + + // Skip this step on the admin page. + if ( is_admin() && ! wpforms_is_admin_page( 'entries', 'edit' ) ) { + return; + } + + if ( + ! empty( $field['dynamic_choices'] ) || + ! empty( $field['choices'] ) + ) { + array_walk_recursive( + $properties['inputs'], + static function ( &$value, $key ) { + + if ( $key === 'default' ) { + $value = false; + } + if ( $value === 'wpforms-selected' ) { + $value = ''; + } + } + ); + } + } + + /** + * Whether the current field can be populated dynamically. + * + * @since 1.5.0 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_dynamic_population_allowed( $properties, $field ) { + + $allowed = true; + + // Allow the population on the front-end only. + if ( is_admin() ) { + $allowed = false; + } + + // For dynamic population we require $_GET. + if ( empty( $_GET ) ) { // phpcs:ignore + $allowed = false; + } + + /** + * Filters whether the current field can be populated dynamically. + * + * @since 1.5.0 + * + * @param bool $allowed Whether the current field can be populated dynamically. + * @param array $properties Field properties. + * @param array $field Field data. + */ + return (bool) apply_filters( 'wpforms_field_is_dynamic_population_allowed', $allowed, $properties, $field ); + } + + /** + * Prefill the field value with a dynamic value that we get from $_GET. + * The pattern is: wpf4_12_primary, where: + * 4 - form_id, + * 12 - field_id, + * first - input key. + * As 'primary' is our default input key, "wpf4_12_primary" and "wpf4_12" are the same. + * + * @since 1.5.0 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function field_prefill_value_property_dynamic( $properties, $field ) { + + if ( ! $this->is_dynamic_population_allowed( $properties, $field ) ) { + return $properties; + } + + // Iterate over each GET key, parse, and scrap data from there. + foreach ( $_GET as $key => $raw_value ) { // phpcs:ignore + preg_match( '/wpf(\d+)_(\d+)(.*)/i', $key, $matches ); + + if ( empty( $matches ) || ! is_array( $matches ) ) { + continue; + } + + // Required. + $form_id = absint( $matches[1] ); + $field_id = absint( $matches[2] ); + $input = 'primary'; + + // Optional. + if ( ! empty( $matches[3] ) ) { + $input = sanitize_key( trim( $matches[3], '_' ) ); + } + + // Both form and field IDs should be the same as the current form / field. + if ( + (int) $this->form_data['id'] !== $form_id || + (int) $field['id'] !== $field_id + ) { + // Go to the next GET param. + continue; + } + + if ( ! empty( $raw_value ) ) { + $this->field_prefill_remove_choices_defaults( $field, $properties ); + + if ( + is_string( $raw_value ) && + in_array( + $field['type'], + wpforms_get_multi_fields(), + true + ) + ) { + $raw_value = explode( '|', rawurldecode( $raw_value ) ); + } + } + + /* + * Some fields (like checkboxes) support multiple selection. + * We do not support nested values, so omit them. + * Example: ?wpf771_19_wpforms[fields][19][address1]=test + * In this case: + * $input = wpforms + * $raw_value = [fields=>[]] + * $single_value = [19=>[]] + * There is no reliable way to clean those things out. + * So we will ignore the value altogether if it's an array. + * We support only single value numeric arrays, like these: + * ?wpf771_19[]=test1&wpf771_19[]=test2 + * ?wpf771_19_value[]=test1&wpf771_19_value[]=test2 + * ?wpf771_41_r3_c2[]=1&wpf771_41_r1_c4[]=1 + * We support also pipe-separated values like this: + * ?wpf771_19=test1|test2 + */ + if ( is_array( $raw_value ) ) { + foreach ( $raw_value as $single_value ) { + $properties = $this->get_field_populated_single_property_value( $single_value, $input, $properties, $field ); + } + } else { + $properties = $this->get_field_populated_single_property_value( $raw_value, $input, $properties, $field ); + } + } + + return $properties; + } + + /** + * Public version of get_field_populated_single_property_value() to use by external classes. + * + * @since 1.6.0.1 + * + * @param string $raw_value Value from a GET param, always a string. + * @param string $input Represent a subfield inside the field. Maybe empty. + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + public function get_field_populated_single_property_value_public( $raw_value, $input, $properties, $field ) { + + return $this->get_field_populated_single_property_value( $raw_value, $input, $properties, $field ); + } + + /** + * Get the value used to prefill via dynamic or fallback population. + * Based on field data and current properties. + * + * @since 1.5.0 + * + * @param string $raw_value Value from a GET param, always a string. + * @param string $input Represent a subfield inside the field. Maybe empty. + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function get_field_populated_single_property_value( $raw_value, $input, $properties, $field ) { + + if ( ! is_string( $raw_value ) ) { + return $properties; + } + + $get_value = stripslashes( sanitize_text_field( $raw_value ) ); + + // For fields that have dynamic choices, we need to add extra logic. + if ( ! empty( $field['dynamic_choices'] ) ) { + $properties = $this->get_field_populated_single_property_value_dynamic_choices( $get_value, $properties ); + } elseif ( ! empty( $field['choices'] ) && is_array( $field['choices'] ) ) { + $properties = $this->get_field_populated_single_property_value_normal_choices( $get_value, $properties, $field ); + + } elseif ( + /** + * For other types of fields, we need to check that + * the key is registered for the defined field in an input array. + */ + ! empty( $input ) && + isset( $properties['inputs'][ $input ] ) + ) { + $properties['inputs'][ $input ]['attr']['value'] = $get_value; + } + + return $properties; + } + + /** + * Get the value used to prefill via dynamic or fallback population. + * Based on field data and current properties. + * Dynamic choices section. + * + * @since 1.6.0 + * + * @param string $get_value Value from a GET param, always a string, sanitized, stripped slashes. + * @param array $properties Field properties. + * + * @return array Modified field properties. + */ + protected function get_field_populated_single_property_value_dynamic_choices( $get_value, $properties ) { + + $default_key = null; + + foreach ( $properties['inputs'] as $input_key => $input_arr ) { + // Dynamic choices support only integers in its values. + if ( absint( $get_value ) === $input_arr['attr']['value'] ) { + $default_key = $input_key; + // Stop iterating over choices. + break; + } + } + + // Redefine default choice only if dynamic value has changed anything. + if ( $default_key !== null ) { + foreach ( $properties['inputs'] as $input_key => $choice_arr ) { + if ( $input_key === $default_key ) { + $properties['inputs'][ $input_key ]['default'] = true; + $properties['inputs'][ $input_key ]['container']['class'][] = 'wpforms-selected'; + // Stop iterating over choices. + break; + } + } + } + + return $properties; + } + + /** + * Fill choices without labels. + * + * @since 1.6.2 + * + * @param array $form_data Form data. + * + * @return array + */ + public function field_fill_empty_choices( $form_data ) { + + if ( empty( $form_data['fields'] ) ) { + return $form_data; + } + + // Set value for choices with the image only. Conditional logic doesn't work without value. + foreach ( $form_data['fields'] as $field_key => $field ) { + // Payment fields have their labels set up upfront. + if ( empty( $field['choices'] ) || ! in_array( $field['type'], [ 'radio', 'checkbox' ], true ) ) { + continue; + } + + foreach ( $field['choices'] as $choice_id => $choice ) { + if ( ( isset( $choice['value'] ) && '' !== trim( $choice['value'] ) ) || empty( $choice['image'] ) ) { + continue; + } + + $form_data['fields'][ $field_key ]['choices'][ $choice_id ]['value'] = sprintf( /* translators: %d - choice number. */ + esc_html__( 'Choice %d', 'wpforms-lite' ), + (int) $choice_id + ); + } + } + + return $form_data; + } + + /** + * Get the value used to prefill via dynamic or fallback population. + * Based on field data and current properties. + * Normal choices section. + * + * @since 1.6.0 + * + * @param string $get_value Value from a GET param, always a string, sanitized. + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function get_field_populated_single_property_value_normal_choices( $get_value, $properties, $field ) { + + $default_key = null; + + // For fields that have normal choices, we need to add extra logic. + foreach ( $field['choices'] as $choice_key => $choice_arr ) { + $choice_value_key = isset( $field['show_values'] ) ? 'value' : 'label'; + + if ( + ( + isset( $choice_arr[ $choice_value_key ] ) && + strtoupper( sanitize_text_field( $choice_arr[ $choice_value_key ] ) ) === strtoupper( $get_value ) + ) || + ( + empty( $choice_arr[ $choice_value_key ] ) && + $get_value === sprintf( /* translators: %d - choice number. */ + esc_html__( 'Choice %d', 'wpforms-lite' ), + (int) $choice_key + ) + ) + ) { + $default_key = $choice_key; + // Stop iterating over choices. + break; + } + } + + // Redefine the default choice only if population value has changed anything. + if ( $default_key === null ) { + return $properties; + } + + foreach ( $field['choices'] as $choice_key => $choice_arr ) { + if ( $choice_key === $default_key ) { + $properties['inputs'][ $choice_key ]['default'] = true; + $properties['inputs'][ $choice_key ]['container']['class'][] = 'wpforms-selected'; + + $properties = $this->add_quantity_to_populated_field_properties( $properties, $field ); + + break; + } + } + + return $properties; + } + + /** + * Handle the dropdown items field with quantities. + * + * @since 1.9.0 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array + */ + private function add_quantity_to_populated_field_properties( array $properties, array $field ): array { + + if ( + empty( $this->form_data['id'] ) || + empty( $field['id'] ) || + empty( $field['type'] ) || + empty( $field['enable_quantity'] ) || + $field['type'] !== 'payment-select' + ) { + return $properties; + } + + $quantity_key = 'wpq' . $this->form_data['id'] . '_' . $field['id']; + + // phpcs:disable WordPress.Security.NonceVerification + if ( empty( $_GET[ $quantity_key ] ) ) { + return $properties; + } + + $quantity = absint( $_GET[ $quantity_key ] ); + // phpcs:enable WordPress.Security.NonceVerification + + if ( $quantity > ( $field['max_quantity'] ?? 10 ) || $quantity < ( $field['min_quantity'] ?? 0 ) ) { + return $properties; + } + + $properties['quantity'] = $quantity; + + return $properties; + } + + /** + * Whether the current field can be populated dynamically. + * + * @since 1.5.0 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_fallback_population_allowed( $properties, $field ) { + + $allowed = true; + + // Allow the population on the front-end only. + if ( is_admin() ) { + $allowed = false; + } + + /* + * Commented out to allow partial failing for complex multi-inputs fields. + * Example: name field with first/last format and being required, filled out only first. + * On submitting, we will preserve those sub-inputs that are not empty and display an error for an empty. + */ + + // Do not populate if there are errors for that field. + + // Require form id being the same for submitted and currently rendered form. + if ( + ! empty( $_POST['wpforms']['id'] ) && // phpcs:ignore + (int) $_POST['wpforms']['id'] !== (int) $this->form_data['id'] // phpcs:ignore + ) { + $allowed = false; + } + + // Require $_POST of the submitted field. + if ( empty( $_POST['wpforms']['fields'] ) ) { // phpcs:ignore + $allowed = false; + } + + // Require field (processed and rendered) being the same. + if ( ! isset( $_POST['wpforms']['fields'][ $field['id'] ] ) ) { // phpcs:ignore + $allowed = false; + } + + /** + * Filters whether the current field can be populated using a fallback. + * + * @since 1.5.0 + * + * @param bool $allowed Whether the current field can be populated using a fallback. + * @param array $properties Field properties. + * @param array $field Field data. + */ + return (bool) apply_filters( 'wpforms_field_is_fallback_population_allowed', $allowed, $properties, $field ); + } + + /** + * Prefill the field value with a fallback value from form submission (in case of JS validation failed), that we get from $_POST. + * + * @since 1.5.0 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function field_prefill_value_property_fallback( $properties, $field ) { + + if ( ! $this->is_fallback_population_allowed( $properties, $field ) ) { + return $properties; + } + + if ( empty( $_POST['wpforms']['fields'] ) || ! is_array( $_POST['wpforms']['fields'] ) ) { // phpcs:ignore + return $properties; + } + + // We got user submitted raw data (not processed, will be done later). + $raw_value = $_POST['wpforms']['fields'][ $field['id'] ]; // phpcs:ignore + $input = 'primary'; + + if ( ! empty( $raw_value ) ) { + $this->field_prefill_remove_choices_defaults( $field, $properties ); + } + + /* + * For this particular field, this value may be either an array or a string. + * In array - this is a complex field, like address. + * The key in an array will be a sub-input (address1, state), and its appropriate value. + */ + if ( is_array( $raw_value ) ) { + foreach ( $raw_value as $input => $single_value ) { + $properties = $this->get_field_populated_single_property_value( $single_value, sanitize_key( $input ), $properties, $field ); + } + } else { + $properties = $this->get_field_populated_single_property_value( $raw_value, sanitize_key( $input ), $properties, $field ); + } + + return $properties; + } + + /** + * Init and return field default settings. + * + * @since 1.9.4 + * + * @return array + */ + public function field_default_settings(): array { + + // Merge common defaults with the current field defaults. + $this->default_settings = wp_parse_args( (array) ( $this->default_settings ?? [] ), self::COMMON_DEFAULT_SETTINGS ); + + return $this->default_settings; + } + + /** + * Get field data for the field. + * + * @since 1.8.2 + * + * @param array $field Current field. + * + * @return array + */ + public function field_new_default( $field ): array { + + if ( ! isset( $field['type'] ) || $field['type'] !== $this->type ) { + return $field; + } + + return wp_parse_args( $field, $this->field_default_settings() ); + } + + /** + * Get field data for the field. + * + * @since 1.8.2 + * + * @param array $field Current field. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_data( $field, $form_data ) { + + if ( ! isset( $field['type'] ) || $field['type'] !== $this->type ) { + return $field; + } + + // Remove field on frontend if it has no dynamic choices. + if ( $this->is_dynamic_choices_empty( $field, $form_data ) ) { + return []; + } + + return wp_parse_args( $field, $this->default_settings ); + } + + /** + * Create the button for the 'Add Fields' tab, inside the form editor. + * + * @since 1.0.0 + * + * @param array $fields List of form fields with their data. + * + * @return array + */ + public function field_button( $fields ) { + + // If the field is a Pro field and the plugin is not a Pro, don't show the field. + if ( ! empty( $this->is_disabled_field ) ) { + return $fields; + } + + // Add field information to a fields' array. + $fields[ $this->group ]['fields'][] = [ + 'order' => $this->order, + 'name' => $this->name, + 'type' => $this->type, + 'icon' => $this->icon, + 'keywords' => $this->keywords, + ]; + + // Wipe hands clean. + return $fields; + } + + /** + * Enhances template fields by adding keywords. + * + * @since 1.8.6 + * + * @param array $template_fields List of template fields. + * + * @return array + */ + public function enhance_template_fields_with_keywords( array $template_fields ): array { + + foreach ( $template_fields as $key => $field ) { + if ( $field === $this->type ) { + $template_fields[ $key ] = $this->name; + + $this->add_keywords( $template_fields ); + } + } + + return array_unique( $template_fields ); + } + + /** + * Adds keywords to the provided fields. + * + * @since 1.8.6 + * + * @param array $fields List of fields to which keywords will be added. + * + * @return void + */ + private function add_keywords( array &$fields ): void { + + if ( $this->keywords ) { + $keywords_list = explode( ',', $this->keywords ); + + foreach ( $keywords_list as $keyword ) { + $fields[] = trim( $keyword ); + } + } + } + + /** + * Create the field options panel. Used by subclasses. + * + * @since 1.0.0 + * @since 1.5.0 Converted to abstract method, as it's required for all fields. + * + * @param array $field Field data and settings. + */ + abstract public function field_options( $field ); + + /** + * Create the field preview. Used by subclasses. + * + * @since 1.0.0 + * @since 1.5.0 Converted to abstract method, as it's required for all fields. + * + * @param array $field Field data and settings. + */ + abstract public function field_preview( $field ); + + /** + * Helper function to create field option elements. + * + * Field option elements are pieces that help create a field option. + * They are used to quickly build field options. + * + * @since 1.0.0 + * + * @param string $option Field option to render. + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $do_echo Print or return the value. Print by default. + * + * @return string|null echo or return string + * @noinspection HtmlUnknownAttribute + * @noinspection HtmlWrongAttributeValue + */ + public function field_element( $option, $field, $args = [], $do_echo = true ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded + + $id = (int) $field['id']; + $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( (array) $args['class'], true ) : ''; + $slug = ! empty( $args['slug'] ) ? sanitize_title( $args['slug'] ) : ''; + $attrs = ''; + $output = ''; + + // Check for Smart Tags. + if ( ! empty( $args['smarttags'] ) ) { + $type = ! empty( $args['smarttags']['type'] ) ? esc_attr( $args['smarttags']['type'] ) : 'fields'; + $fields = ! empty( $args['smarttags']['fields'] ) ? esc_attr( $args['smarttags']['fields'] ) : ''; + $is_repeater_allowed = ! empty( $args['smarttags']['allow-repeated-fields'] ) ? esc_attr( $args['smarttags']['allow-repeated-fields'] ) : ''; + $allowed_smarttags = ! empty( $args['smarttags']['allowed'] ) ? esc_attr( $args['smarttags']['allowed'] ) : ''; + $location = ! empty( $args['location'] ) ? esc_attr( $args['location'] ) : ''; + + $args['data'] = [ + 'location' => $location, + 'type' => $type, + 'fields' => $fields, + 'allowed-smarttags' => $allowed_smarttags, + 'allow-repeated-fields' => $is_repeater_allowed, + ]; + } + + if ( ! empty( $args['data'] ) ) { + foreach ( $args['data'] as $arg_key => $val ) { + if ( is_array( $val ) ) { + $val = wp_json_encode( $val ); + } + $attrs .= ' data-' . $arg_key . '=\'' . $val . '\''; + } + } + + if ( ! empty( $args['attrs'] ) ) { + foreach ( $args['attrs'] as $arg_key => $val ) { + if ( is_array( $val ) ) { + $val = wp_json_encode( $val ); + } + $attrs .= $arg_key . '=\'' . $val . '\''; + } + } + + switch ( $option ) { + // Row. + case 'row': + $output = sprintf( + '
              %s
              ', + $slug, + $class, + $id, + $slug, + $id, + $attrs, + $args['content'] + ); + break; + + // Label. + case 'label': + $class = ! empty( $class ) ? ' class="' . $class . '"' : ''; + $output = sprintf( ''; + break; + + // Text input. + case 'text': + $type = ! empty( $args['type'] ) ? esc_attr( $args['type'] ) : 'text'; + $placeholder = ! empty( $args['placeholder'] ) ? esc_attr( $args['placeholder'] ) : ''; + $before = ! empty( $args['before'] ) ? '' . esc_html( $args['before'] ) . '' : ''; + $after = ! empty( $args['after'] ) ? '' . esc_html( $args['after'] ) . '' : ''; + + if ( ! empty( $before ) ) { + $class .= ' has-before'; + } + + if ( ! empty( $after ) ) { + $class .= ' has-after'; + } + + $output = sprintf( '%s%s', $before, $type, $class, $id, $slug, $id, $slug, esc_attr( $args['value'] ), $placeholder, $attrs, $after ); + break; + + // Textarea. + case 'textarea': + $rows = ! empty( $args['rows'] ) ? (int) $args['rows'] : '3'; + $before = ! empty( $args['before'] ) ? '' . esc_html( $args['before'] ) . '' : ''; + $after = ! empty( $args['after'] ) ? '' . esc_html( $args['after'] ) . '' : ''; + + $output = sprintf( '%s%s', $before, $class, $id, $slug, $id, $slug, $rows, $attrs, $args['value'], $after ); + break; + + // Checkbox. + case 'checkbox': + $checked = checked( '1', $args['value'], false ); + $output = sprintf( '', $class, $id, $slug, $id, $slug, $checked, $attrs ); + $output .= empty( $args['nodesc'] ) ? sprintf( '' : ''; + break; + + // Toggle. + case 'toggle': + $output = $this->field_element_toggle( $args, $class, $id, $slug, $attrs ); + break; + + // Select. + case 'select': + $output = $this->field_element_select( $args, $class, $id, $slug, $attrs ); + break; + + case 'select-multiple': + $options = $args['options']; + $selected = (array) ( $args['value'] ?? [] ); + $choicesjs = $args['choicesjs'] ?? 'choicesjs-select'; // Initialize the class for Choices.js by default. + + $output = sprintf( ''; + $output .= sprintf( '', $id, $slug, esc_attr( empty( $selected ) ? '' : wp_json_encode( $selected ) ) ); + $output .= ! empty( $args['desc'] ) ? sprintf( '%s', $args['desc'] ) : ''; + break; + + // Color. + case 'color': + $args['class'][] = 'wpforms-color-picker'; + + $output = $this->field_element( 'text', $field, $args, $do_echo ); + break; + + // Button. + case 'button': + $class .= ' wpforms-btn'; + $output = sprintf( + '', + $class, + $id, + $slug, + $attrs, + $args['value'] + ); + break; + } + + if ( ! $do_echo ) { + return $output; + } + + // @todo Ideally, we should late-escape here. All data above seems to be escaped or trusted, but we should consider refactoring this method. + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $output; + + return null; + } + + /** + * Create field option toggle element. + * + * @since 1.6.8 + * + * @param array $args Arguments. + * @param string $class_name Class name. + * @param int $id Field ID. + * @param string $slug Field slug. + * @param string $attrs Attributes. + * + * @return string + */ + private function field_element_toggle( array $args, string $class_name, int $id, string $slug, string $attrs ): string { + + $input_id = sprintf( + 'wpforms-field-option-%d-%s', + esc_attr( $id ), + esc_attr( $slug ) + ); + + $field_name = sprintf( + 'fields[%d][%s]', + esc_attr( $id ), + esc_attr( $slug ) + ); + + $label = ! empty( $args['desc'] ) ? $args['desc'] : ''; + $value = ! empty( $args['value'] ) ? $args['value'] : ''; + + // Compatibility with the `checkbox` element. + $args['label-hide'] = ! empty( $args['nodesc'] ) ? $args['nodesc'] : false; + $args['input-class'] = $class_name; + + return wpforms_panel_field_toggle_control( $args, $input_id, $field_name, $label, $value, $attrs ); + } + + /** + * Create field option select element. + * + * @since 1.9.8 + * + * @param array $args Arguments. + * @param string $class_name Class name. + * @param int $id Field ID. + * @param string $slug Field slug. + * @param string $attrs Attributes. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ + protected function field_element_select( array $args, string $class_name, int $id, string $slug, string $attrs ): string { + + $options = $args['options']; + $value = $args['value'] ?? ''; + $output = sprintf( + ''; + + return $output; + } + + /** + * Helper function to create common field options that are used frequently. + * + * @since 1.0.0 + * + * @param string $option Field option to render. + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $do_echo Print or return the value. Print by default. + * + * @return string|null echo or return string + * @noinspection HtmlUnknownAttribute + * @noinspection HtmlUnknownTarget + * @noinspection HtmlWrongAttributeValue + * @noinspection PhpMissingReturnTypeInspection + * @noinspection ReturnTypeCanBeDeclaredInspection + * @noinspection HtmlRequiredAltAttribute + */ + public function field_option( $option, $field, $args = [], $do_echo = true ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded, Generic.Metrics.NestingLevel.MaxExceeded + + $output = ''; + $markup = ''; + + switch ( $option ) { + /** + * Basic Fields. + * + * Basic Options markup. + */ + case 'basic-options': + $markup = ! empty( $args['markup'] ) ? $args['markup'] : 'open'; + + if ( $markup === 'open' ) { + $class = ! empty( $args['class'] ) ? esc_html( $args['class'] ) : ''; + $after_name = ! empty( $args['after_title'] ) ? $args['after_title'] : ''; + + $output = sprintf( + '
              %3$s (ID #%1$d)
              %5$s +
              + %2$s +
              + ', + wpforms_validate_field_id( $field['id'] ), + esc_html__( 'General', 'wpforms-lite' ), + esc_html( $this->name ), + esc_attr( $class ), + $after_name + ); + + } else { + $output = '
              '; + } + break; + + /* + * Field Label. + */ + case 'label': + $value = ! empty( $field['label'] ) ? esc_html( $field['label'] ) : ''; + $tooltip = ! empty( $args['tooltip'] ) ? $args['tooltip'] : esc_html__( 'Enter text for the form field label. Field labels are recommended and can be hidden in the Advanced Settings.', 'wpforms-lite' ); + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'label', + 'value' => esc_html__( 'Label', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'label', + 'value' => $value, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'label', + 'content' => $output, + ], + false + ); + break; + + /* + * Field Description. + */ + case 'description': + $value = ! empty( $field['description'] ) ? esc_html( $field['description'] ) : ''; + $tooltip = esc_html__( 'Enter text for the form field description.', 'wpforms-lite' ); + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'description', + 'value' => esc_html__( 'Description', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'textarea', + $field, + [ + 'slug' => 'description', + 'value' => $value, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'description', + 'content' => $output, + ], + false + ); + break; + + /* + * Field Required toggle. + */ + case 'required': + $default = ! empty( $args['default'] ) ? $args['default'] : '0'; + $value = isset( $field['required'] ) ? esc_attr( $field['required'] ) : esc_attr( $default ); + $tooltip = esc_html__( 'Check this option to mark the field required. A form will not submit unless all required fields are provided.', 'wpforms-lite' ); + + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'required', + 'value' => $value, + 'desc' => esc_html__( 'Required', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'required', + 'content' => $output, + ], + false + ); + break; + + /* + * Field Meta (field type and ID). + */ + case 'meta': + _deprecated_argument( __CLASS__ . '::' . __METHOD__ . '( [ \'slug\' => \'meta\' ] )', '1.7.1 of the WPForms plugin' ); + + $output = sprintf( '', esc_html__( 'Type', 'wpforms-lite' ) ); + + $output .= sprintf( + '

              %s (ID #%s)

              ', + esc_attr( $this->name ), + wpforms_validate_field_id( $field['id'] ) + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'meta', + 'content' => $output, + ], + false + ); + break; + + /* + * Code Block. + */ + case 'code': + $value = ! empty( $field['code'] ) ? esc_textarea( $field['code'] ) : ''; + $tooltip = esc_html__( 'Enter code for the form field.', 'wpforms-lite' ); + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'code', + 'value' => esc_html__( 'Code', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'textarea', + $field, + [ + 'slug' => 'code', + 'value' => $value, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'code', + 'content' => $output, + ], + false + ); + break; + + /* + * Choices. + */ + case 'choices': + $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults; + $label = ! empty( $args['label'] ) ? esc_html( $args['label'] ) : esc_html__( 'Choices', 'wpforms-lite' ); + $class = [ 'wpforms-undo-redo-container' ]; + $field_type = $this->type; + $inline_style = ''; + + if ( ! empty( $field['multiple'] ) ) { + $field_type = 'checkbox'; + } + + if ( ! AIHelpers::is_disabled() ) { + $class[] = 'wpforms-ai-choices'; + } + + if ( ! empty( $field['show_values'] ) ) { + $class[] = 'show-values'; + } + + if ( ! empty( $field['dynamic_choices'] ) ) { + $class[] = 'wpforms-hidden'; + } + + if ( ! empty( $field['choices_images'] ) ) { + $class[] = 'show-images'; + } + + if ( ! empty( $field['choices_icons'] ) ) { + $class[] = 'show-icons'; + $icon_color = isset( $field['choices_icons_color'] ) ? wpforms_sanitize_hex_color( $field['choices_icons_color'] ) : ''; + $icon_color = empty( $icon_color ) ? IconChoices::get_default_color() : $icon_color; + $inline_style = "--wpforms-icon-choices-color: {$icon_color};"; + } + + $after_tooltip_classes = [ + 'toggle-bulk-add-display', + 'toggle-unfoldable-cont', + empty( $field['dynamic_choices'] ) ? '' : 'wpforms-hidden', + ]; + + // Field label. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'choices', + 'value' => $label, + 'tooltip' => esc_html__( 'Add choices for the form field.', 'wpforms-lite' ), + 'tooltip_class' => empty( $field['dynamic_choices'] ) ? '' : 'wpforms-hidden', + 'after_tooltip' => sprintf( + '' . esc_html__( 'Bulk Add', 'wpforms-lite' ) . '', + wpforms_sanitize_classes( $after_tooltip_classes, true ) + ), + ], + false + ); + + $id = 'wpforms-field-option-' . wpforms_validate_field_id( $field['id'] ) . '-choices-list'; + + // Field contents. + $fld = sprintf( + '
                ', + esc_attr( $id ), + max( array_keys( $values ) ) + 1, + wpforms_sanitize_classes( $class, true ), + wpforms_validate_field_id( $field['id'] ), + esc_attr( $this->type ), + esc_attr( $inline_style ) + ); + + foreach ( $values as $key => $value ) { + $default = ! empty( $value['default'] ) ? $value['default'] : ''; + $base = sprintf( 'fields[%s][choices][%d]', wpforms_validate_field_id( $field['id'] ), absint( $key ) ); + $label = $value['label'] ?? ''; + $image = ! empty( $value['image'] ) ? $value['image'] : ''; + $hide_image_btn = false; + $icon = isset( $value['icon'] ) && ! wpforms_is_empty_string( $value['icon'] ) ? $value['icon'] : IconChoices::DEFAULT_ICON; + $icon_style = ! empty( $value['icon_style'] ) ? $value['icon_style'] : IconChoices::DEFAULT_ICON_STYLE; + $is_other_option = ! empty( $value['other'] ); + + $not_draggable = $is_other_option ? 'not-draggable wpforms-choice-other-option' : ''; + + $fld .= '
              • '; + + $add_class = $is_other_option ? 'add wpforms-disabled' : 'add'; + $remove_class = $is_other_option ? 'remove wpforms-disabled' : 'remove'; + $move_class = $is_other_option ? 'move wpforms-disabled' : 'move'; + + $fld .= sprintf( '', esc_attr( $move_class ) ); + + $fld .= sprintf( + '', + $field_type === 'checkbox' ? 'checkbox' : 'radio', + esc_attr( $base ), + checked( '1', $default, false ) + ); + + /** + * Fires before the field choice label. + * + * @since 1.9.8.6 + * + * @param string $output Output string. + * @param int $key Choice key. + * @param array $value Choice value. + * @param array $field Field settings. + * @param array $args Field options. + */ + $fld .= apply_filters( 'wpforms_field_option_choice_before_label', '', $key, $value, $field, $args ); + + $fld .= sprintf( + '', + esc_attr( $base ), + esc_attr( $label ) + ); + + /** + * Fires after the field choice label. + * + * @since 1.9.8.6 + * + * @param string $output Output string. + * @param int $key Choice key. + * @param array $value Choice value. + * @param array $field Field settings. + * @param array $args Field options. + */ + $fld .= apply_filters( 'wpforms_field_option_choice_after_label', '', $key, $value, $field, $args ); + + $fld .= sprintf( '', esc_attr( $add_class ), esc_attr( $remove_class ) ); + + /** + * Fires after the field choice label. + * + * @since 1.9.9 + * + * @param string $output Output string. + * @param int $key Choice key. + * @param array $value Choice value. + * @param array $field Field settings. + * @param array $args Field options. + */ + $fld .= apply_filters( 'wpforms_field_option_choice_after_controls', '', $key, $value, $field, $args ); + + $fld .= sprintf( + '', + esc_attr( $base ), + esc_attr( $value['value'] ?? '' ) + ); + $fld .= '
                '; + $fld .= '
                '; + + if ( ! empty( $image ) ) { + $fld .= sprintf( + '', + esc_url_raw( $image ), + esc_attr__( 'Remove Image', 'wpforms-lite' ) + ); + + $hide_image_btn = true; + } + + $fld .= '
                '; + $fld .= sprintf( + '', + $hide_image_btn ? ' style="display:none;"' : '', + esc_html__( 'Upload Image', 'wpforms-lite' ) + ); + $fld .= sprintf( + '', + esc_attr( $base ), + esc_url_raw( $image ) + ); + $fld .= '
                '; + + $fld .= sprintf( + '
                + + %2$s + + + +
                ', + esc_attr( $icon_style ), + esc_attr( $icon ), + esc_attr( $base ) + ); + + if ( $is_other_option ) { + $fld .= sprintf( '', esc_attr( $base ) ); + } + + $fld .= '
              • '; + } + $fld .= '
              '; + + // Field note: dynamic status. + $source = ''; + $type = ''; + $dynamic = ! empty( $field['dynamic_choices'] ) ? esc_html( $field['dynamic_choices'] ) : ''; + + if ( $dynamic === 'post_type' && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) { + $type = esc_html__( 'post type', 'wpforms-lite' ); + $pt = get_post_type_object( $field[ 'dynamic_' . $dynamic ] ); + + if ( $pt !== null ) { + $source = $pt->labels->name; + } + } elseif ( $dynamic === 'taxonomy' && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) { + $type = esc_html__( 'taxonomy', 'wpforms-lite' ); + $tax = get_taxonomy( $field[ 'dynamic_' . $dynamic ] ); + + if ( $tax !== false ) { + $source = $tax->labels->name; + } + } + + $note = sprintf( + '
              ', + ! empty( $dynamic ) && ! empty( $field[ 'dynamic_' . $dynamic ] ) ? '' : 'wpforms-hidden' + ); + + $note .= '

              ' . esc_html__( 'Dynamic Choices Active', 'wpforms-lite' ) . '

              '; + + $note .= sprintf( + /* translators: %1$s - source name, %2$s - type name. */ + '

              ' . esc_html__( 'Choices are dynamically populated from the %1$s %2$s. Go to the Advanced tab to change this.', 'wpforms-lite' ) . '

              ', + '' . esc_html( $source ) . '', + '' . esc_html( $type ) . '' + ); + $note .= '
              '; + + // Final field output. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices', + 'content' => $lbl . $fld . $note, + ], + false + ); + break; + + /* + * Choices for payments. + */ + case 'choices_payments': + $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults; + $class = [ 'wpforms-undo-redo-container' ]; + $input_type = in_array( $field['type'], [ 'payment-multiple', 'payment-select' ], true ) ? 'radio' : 'checkbox'; + $inline_style = ''; + + if ( ! empty( $field['choices_images'] ) ) { + $class[] = 'show-images'; + } + + if ( ! empty( $field['choices_icons'] ) ) { + $class[] = 'show-icons'; + $icon_color = isset( $field['choices_icons_color'] ) ? wpforms_sanitize_hex_color( $field['choices_icons_color'] ) : ''; + $icon_color = empty( $icon_color ) ? IconChoices::get_default_color() : $icon_color; + $inline_style = "--wpforms-icon-choices-color: {$icon_color};"; + } + + // Field label. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'choices', + 'value' => esc_html__( 'Items', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Add choices for the form field.', 'wpforms-lite' ), + ], + false + ); + + $id = 'wpforms-field-option-' . wpforms_validate_field_id( $field['id'] ) . '-choices-list'; + + // Field contents. + $fld = sprintf( + '
                ', + esc_attr( $id ), + max( array_keys( $values ) ) + 1, + wpforms_sanitize_classes( $class, true ), + wpforms_validate_field_id( $field['id'] ), + esc_attr( $this->type ), + esc_attr( $inline_style ) + ); + + foreach ( $values as $key => $value ) { + $default = ! empty( $value['default'] ) ? $value['default'] : ''; + $base = sprintf( 'fields[%s][choices][%d]', wpforms_validate_field_id( $field['id'] ), absint( $key ) ); + $image = ! empty( $value['image'] ) ? $value['image'] : ''; + $hide_image_btn = false; + $icon = isset( $value['icon'] ) && ! wpforms_is_empty_string( $value['icon'] ) ? $value['icon'] : IconChoices::DEFAULT_ICON; + $icon_style = ! empty( $value['icon_style'] ) ? $value['icon_style'] : IconChoices::DEFAULT_ICON_STYLE; + + $fld .= '
              • '; + $fld .= ''; + $fld .= sprintf( + '', + esc_attr( $input_type ), + esc_attr( $base ), + checked( '1', $default, false ) + ); + $fld .= sprintf( + '', + esc_attr( $base ), + esc_attr( $value['label'] ) + ); + + $fld .= sprintf( + '', + esc_attr( $base ), + esc_attr( wpforms_format_amount( wpforms_sanitize_amount( $value['value'] ) ) ), + wpforms_format_amount( 0 ) + ); + $fld .= ''; + $fld .= '
                '; + $fld .= '
                '; + + if ( ! empty( $image ) ) { + $fld .= sprintf( + '', + esc_url_raw( $image ), + esc_attr__( 'Remove Image', 'wpforms-lite' ) + ); + + $hide_image_btn = true; + } + + $fld .= '
                '; + $fld .= sprintf( + '', + $hide_image_btn ? ' style="display:none;"' : '', + esc_html__( 'Upload Image', 'wpforms-lite' ) + ); + $fld .= sprintf( + '', + $base, + esc_url_raw( $image ) + ); + $fld .= '
                '; + + $fld .= sprintf( + '
                + + %2$s + + + +
                ', + esc_attr( $icon_style ), + esc_attr( $icon ), + esc_attr( $base ) + ); + + $fld .= '
              • '; + } + $fld .= '
              '; + + // Final field output. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices', + 'content' => $lbl . $fld, + ], + false + ); + break; + + /* + * Add Other Choice. + */ + case 'choices_other': + // Field contents. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'choices_other', + 'value' => $this->has_other_choice( $field ) ? '1' : '0', + 'desc' => esc_html__( 'Add Other Choice', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Add an Other choice so users can input their own value.', 'wpforms-lite' ), + ], + false + ); + + // Final field output. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_other', + 'class' => $this->is_dynamic_choices( $field ) ? 'wpforms-hidden' : '', + 'content' => $fld, + ], + false + ); + break; + + /* + * Other Placeholder (for the "Other" choice input field). + */ + case 'other_placeholder': + $label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'other_placeholder', + 'value' => esc_html__( 'Placeholder Text', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter placeholder text for the Other input.', 'wpforms-lite' ), + ], + false + ); + + $input = $this->field_element( + 'text', + $field, + [ + 'slug' => 'other_placeholder', + 'value' => isset( $field['other_placeholder'] ) ? esc_attr( $field['other_placeholder'] ) : '', + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'other_placeholder', + 'content' => $label . $input, + 'class' => ( $this->is_dynamic_choices( $field ) || ! $this->has_other_choice( $field ) ) ? 'wpforms-hidden' : '', + ], + false + ); + break; + + /* + * Other Field Size (for "Other" choice input field). + */ + case 'other_size': + $tooltip = esc_html__( 'Select the size of the Other input.', 'wpforms-lite' ); + $value = ! empty( $field['other_size'] ) ? esc_attr( $field['other_size'] ) : 'medium'; + $options = [ + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ]; + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'other_size', + 'value' => esc_html__( 'Field Size', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'other_size', + 'value' => $value, + 'options' => $options, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'other_size', + 'content' => $output, + 'class' => ( $this->is_dynamic_choices( $field ) || ! $this->has_other_choice( $field ) ) ? 'wpforms-hidden' : '', + ], + false + ); + break; + + /* + * Choices Images. + */ + case 'choices_images': + // Field note: Image tips. + $note = sprintf( + '
              ', + ! empty( $field['choices_images'] ) ? '' : 'wpforms-hidden' + ); + $note .= wp_kses( + __( '

              Images are not cropped or resized.

              For best results, they should be the same size and 250x250 pixels or smaller.

              ', 'wpforms-lite' ), + [ + 'h4' => [], + 'p' => [], + ] + ); + $note .= '
              '; + + // Field contents. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'choices_images', + 'value' => isset( $field['choices_images'] ) ? '1' : '0', + 'desc' => esc_html__( 'Use Image Choices', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enable this option to use images with choices', 'wpforms-lite' ), + ], + false + ); + + // Final field output. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_images', + 'class' => ! empty( $field['dynamic_choices'] ) ? 'wpforms-hidden' : '', + 'content' => $note . $fld, + ], + false + ); + break; + + /* + * Hide Images Choices. + */ + case 'choices_images_hide': + $output = $this->choices_images_hide_option( $field ); + break; + + /* + * Choices Images Style. + */ + case 'choices_images_style': + // Field label. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'choices_images_style', + 'value' => esc_html__( 'Image Choice Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the style for the image choices.', 'wpforms-lite' ), + ], + false + ); + + // Field contents. + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'choices_images_style', + 'value' => ! empty( $field['choices_images_style'] ) ? esc_attr( $field['choices_images_style'] ) : 'modern', + 'options' => [ + 'modern' => esc_html__( 'Modern', 'wpforms-lite' ), + 'classic' => esc_html__( 'Classic', 'wpforms-lite' ), + 'none' => esc_html__( 'None', 'wpforms-lite' ), + ], + ], + false + ); + + // Final field output. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_images_style', + 'content' => $lbl . $fld, + 'class' => ! empty( $field['choices_images'] ) ? '' : 'wpforms-hidden', + ], + false + ); + break; + + /* + * Choices Icons. + */ + case 'choices_icons': + // Field contents. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'choices_icons', + 'value' => isset( $field['choices_icons'] ) ? '1' : '0', + 'desc' => esc_html__( 'Use Icon Choices', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enable this option to use icons with the choices.', 'wpforms-lite' ), + ], + false + ); + + // Final field output. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_icons', + 'class' => ! empty( $field['dynamic_choices'] ) ? 'wpforms-hidden' : '', + 'content' => $fld, + ], + false + ); + break; + + case 'choices_icons_color': + // Color picker. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'choices_icons_color', + 'value' => esc_html__( 'Icon Color', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select an accent color for the icon choices.', 'wpforms-lite' ), + ], + false + ); + + $icon_color = isset( $field['choices_icons_color'] ) ? wpforms_sanitize_hex_color( $field['choices_icons_color'] ) : ''; + $icon_color = empty( $icon_color ) ? IconChoices::get_default_color() : $icon_color; + + $fld = $this->field_element( + 'color', + $field, + [ + 'slug' => 'choices_icons_color', + 'value' => $icon_color, + 'data' => [ + 'fallback-color' => $icon_color, + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_icons_color', + 'content' => $lbl . $fld, + 'class' => ! empty( $field['choices_icons'] ) ? [ 'color-picker-row' ] : [ 'color-picker-row', 'wpforms-hidden' ], + ] + ); + break; + + case 'choices_icons_size': + // Field abel. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'choices_icons_size', + 'value' => esc_html__( 'Icon Size', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select icon size.', 'wpforms-lite' ), + ], + false + ); + + $icon_choices_obj = wpforms()->obj( 'icon_choices' ); + $raw_icon_sizes = $icon_choices_obj ? $icon_choices_obj->get_icon_sizes() : []; + + $icon_sizes = array_map( + static function ( $data ) { + + return $data['label'] ?? ''; + }, + $raw_icon_sizes + ); + + // Field contents. + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'choices_icons_size', + 'value' => ! empty( $field['choices_icons_size'] ) ? esc_attr( $field['choices_icons_size'] ) : 'large', + 'options' => $icon_sizes, + ], + false + ); + + // Final field output. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_icons_size', + 'content' => $lbl . $fld, + 'class' => ! empty( $field['choices_icons'] ) ? '' : 'wpforms-hidden', + ] + ); + break; + + case 'choices_icons_style': + // Field label. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'choices_icons_style', + 'value' => esc_html__( 'Icon Choice Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the style for the icon choices.', 'wpforms-lite' ), + ], + false + ); + + // Field contents. + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'choices_icons_style', + 'value' => ! empty( $field['choices_icons_style'] ) ? esc_attr( $field['choices_icons_style'] ) : 'default', + 'options' => [ + 'default' => esc_html__( 'Default', 'wpforms-lite' ), + 'modern' => esc_html__( 'Modern', 'wpforms-lite' ), + 'classic' => esc_html__( 'Classic', 'wpforms-lite' ), + 'none' => esc_html__( 'None', 'wpforms-lite' ), + ], + ], + false + ); + + // Final field output. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_icons_style', + 'content' => $lbl . $fld, + 'class' => ! empty( $field['choices_icons'] ) ? '' : 'wpforms-hidden', + ] + ); + break; + + /** + * Advanced Fields. + */ + + /* + * Default value. + */ + case 'default_value': + $value = ! empty( $field['default_value'] ) || ( isset( $field['default_value'] ) && '0' === (string) $field['default_value'] ) ? esc_attr( $field['default_value'] ) : ''; + $tooltip = esc_html__( 'Enter text for the default form field value.', 'wpforms-lite' ); + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'default_value', + 'value' => esc_html__( 'Default Value', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'default_value', + 'value' => $value, + 'class' => 'wpforms-smart-tags-enabled', + 'smarttags' => [ + 'type' => 'other', + ], + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'default_value', + 'content' => $output, + ], + false + ); + break; + + /* + * Size. + */ + case 'size': + $value = ! empty( $field['size'] ) ? esc_attr( $field['size'] ) : 'medium'; + $class = ! empty( $args['class'] ) ? esc_html( $args['class'] ) : ''; + $tooltip = esc_html__( 'Select the default form field size.', 'wpforms-lite' ); + $options = [ + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ]; + + if ( ! empty( $args['exclude'] ) ) { + $options = array_diff_key( $options, array_flip( $args['exclude'] ) ); + } + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'size', + 'value' => esc_html__( 'Field Size', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'size', + 'value' => $value, + 'options' => $options, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'size', + 'content' => $output, + 'class' => $class, + ], + false + ); + break; + + /* + * Advanced Options markup. + */ + case 'advanced-options': + $markup = ! empty( $args['markup'] ) ? $args['markup'] : 'open'; + + if ( $markup === 'open' ) { + $override = apply_filters( 'wpforms_advanced_options_override', false ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.Comments.SinceTagHooks.MissingSinceTag + $override = ! empty( $override ) ? 'style="display:' . $override . ';"' : ''; + $class = ! empty( $args['class'] ) ? esc_html( $args['class'] ) : ''; + + $output = sprintf( + '
              + %3$s +
              ', + wpforms_validate_field_id( $field['id'] ), + $override, + esc_html__( 'Advanced', 'wpforms-lite' ), + esc_attr( $class ) + ); + + } else { + $output = '
              '; + } + break; + + /* + * Placeholder. + */ + case 'placeholder': + $class = ! empty( $args['class'] ) ? esc_html( $args['class'] ) : ''; + $value = ! empty( $field['placeholder'] ) ? esc_attr( $field['placeholder'] ) : ''; + $tooltip = esc_html__( 'Enter text for the form field placeholder.', 'wpforms-lite' ); + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'placeholder', + 'value' => esc_html__( 'Placeholder Text', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'placeholder', + 'value' => $value, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'placeholder', + 'content' => $output, + 'class' => $class, + ], + false + ); + break; + + /* + * CSS classes. + */ + case 'css': + $toggle = ''; + $value = ! empty( $field['css'] ) ? esc_attr( $field['css'] ) : ''; + $tooltip = esc_html__( 'Enter CSS class names for the form field container. Class names should be separated with spaces.', 'wpforms-lite' ); + + if ( $field['type'] !== 'pagebreak' ) { + $toggle = '' . esc_html__( 'Show Layouts', 'wpforms-lite' ) . ''; + } + + // Build output. + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'css', + 'value' => esc_html__( 'CSS Classes', 'wpforms-lite' ), + 'tooltip' => $tooltip, + 'after_tooltip' => $toggle, + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'css', + 'value' => $value, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'css', + 'content' => $output, + ], + false + ); + break; + + /* + * Hide Label. + */ + case 'label_hide': + $value = $field['label_hide'] ?? '0'; + $tooltip = esc_html__( 'Check this option to hide the form field label.', 'wpforms-lite' ); + + // Build output. + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'label_hide', + 'value' => $value, + 'desc' => esc_html__( 'Hide Label', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'label_hide', + 'content' => $output, + 'class' => ! empty( $args['class'] ) ? wpforms_sanitize_classes( $args['class'] ) : '', + ], + false + ); + break; + + /* + * Hide sublabels. + */ + case 'sublabel_hide': + $value = $field['sublabel_hide'] ?? '0'; + $tooltip = esc_html__( 'Check this option to hide the form field sublabel.', 'wpforms-lite' ); + + // Build output. + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'sublabel_hide', + 'value' => $value, + 'desc' => esc_html__( 'Hide Sublabels', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'sublabel_hide', + 'content' => $output, + 'class' => ! empty( $args['class'] ) ? wpforms_sanitize_classes( $args['class'] ) : '', + ], + false + ); + break; + + /* + * Input Columns. + */ + case 'input_columns': + $value = ! empty( $field['input_columns'] ) ? esc_attr( $field['input_columns'] ) : ''; + $tooltip = esc_html__( 'Select the layout for displaying field choices.', 'wpforms-lite' ); + $options = [ + '' => esc_html__( 'One Column', 'wpforms-lite' ), + '2' => esc_html__( 'Two Columns', 'wpforms-lite' ), + '3' => esc_html__( 'Three Columns', 'wpforms-lite' ), + 'inline' => esc_html__( 'Inline', 'wpforms-lite' ), + ]; + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'input_columns', + 'value' => esc_html__( 'Choice Layout', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'input_columns', + 'value' => $value, + 'options' => $options, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'input_columns', + 'content' => $output, + ], + false + ); + break; + + /* + * Dynamic Choices. + */ + case 'dynamic_choices': + $value = $this->is_dynamic_choices( $field ) ? esc_attr( $field['dynamic_choices'] ) : ''; + $tooltip = esc_html__( 'Select auto-populate method to use.', 'wpforms-lite' ); + $options = [ + '' => esc_html__( 'Off', 'wpforms-lite' ), + 'post_type' => esc_html__( 'Post Type', 'wpforms-lite' ), + 'taxonomy' => esc_html__( 'Taxonomy', 'wpforms-lite' ), + ]; + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'dynamic_choices', + 'value' => esc_html__( 'Dynamic Choices', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'dynamic_choices', + 'value' => $value, + 'options' => $options, + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'dynamic_choices', + 'class' => ! empty( $field['choices_images'] ) || ! empty( $field['choices_icons'] ) || $this->has_other_choice( $field ) ? 'wpforms-hidden' : '', + 'content' => $output, + ], + false + ); + break; + + /* + * Dynamic Choices Source. + */ + case 'dynamic_choices_source': + $type = ! empty( $field['dynamic_choices'] ) ? esc_attr( $field['dynamic_choices'] ) : ''; + + if ( ! empty( $type ) ) { + $type_name = ''; + $items = []; + + if ( $type === 'post_type' ) { + + $type_name = esc_html__( 'Post Type', 'wpforms-lite' ); + $items = get_post_types( + [ + 'public' => true, + ], + 'objects' + ); + + unset( $items['attachment'] ); + } elseif ( $type === 'taxonomy' ) { + $type_name = esc_html__( 'Taxonomy', 'wpforms-lite' ); + $items = get_taxonomies( + [ + 'public' => true, + 'publicly_queryable' => true, + ], + 'objects' + ); + + unset( $items['post_format'] ); + } + + /* translators: %s - dynamic source type name. */ + $tooltip = sprintf( esc_html__( 'Select %s to use for auto-populating field choices.', 'wpforms-lite' ), esc_html( $type_name ) ); + + /* translators: %s - dynamic source type name. */ + $label = sprintf( esc_html__( 'Dynamic %s Source', 'wpforms-lite' ), esc_html( $type_name ) ); + $options = []; + $source = ! empty( $field[ 'dynamic_' . $type ] ) ? esc_attr( $field[ 'dynamic_' . $type ] ) : ''; + + uasort( + $items, + static function ( $prev_item, $item ) { + + return strcmp( $prev_item->name, $item->name ); + } + ); + + foreach ( $items as $key => $item ) { + $options[ $key ] = esc_html( $item->labels->name ); + } + + // Field option label. + $option_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'dynamic_' . $type, + 'value' => $label, + 'tooltip' => $tooltip, + ], + false + ); + + // The field option selects input. + $option_input = $this->field_element( + 'select', + $field, + [ + 'slug' => 'dynamic_' . $type, + 'options' => $options, + 'value' => $source, + ], + false + ); + + // Field option row (markup) including label and input. + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'dynamic_' . $type, + 'content' => $option_label . $option_input, + ], + false + ); + } // End if. + break; + + /* + * Quantity. + */ + case 'quantity': + $is_allowed = RequirementsAlerts::is_product_quantities_allowed(); + $enable_quantity = $this->is_payment_quantities_enabled( $field ); + $min_quantity = isset( $field['min_quantity'] ) ? (int) $field['min_quantity'] : 0; + $max_quantity = isset( $field['max_quantity'] ) ? (int) $field['max_quantity'] : 10; + $toggle_tooltip = esc_html__( 'Enable quantity for this product to allow customers to purchase more than one.', 'wpforms-lite' ); + $range_tooltip = esc_html__( 'Set the minimum and maximum quantity for this product.', 'wpforms-lite' ); + $hidden_class = ! empty( $args['hidden'] ) ? 'wpforms-hidden' : ''; + + $toggle_data = [ + 'slug' => 'enable_quantity', + 'value' => $enable_quantity, + 'desc' => esc_html__( 'Enable Quantity', 'wpforms-lite' ), + 'tooltip' => $toggle_tooltip, + ]; + + if ( ! $is_allowed ) { + $toggle_data['attrs'] = [ 'disabled' => 'disabled' ]; + $toggle_data['control-class'] = 'wpforms-toggle-control-disabled'; + } + + $toggle = $this->field_element( + 'toggle', + $field, + $toggle_data, + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'enable_quantity', + 'content' => $toggle, + 'class' => $hidden_class, + ], + false + ); + + $min_has_error = $min_quantity > $max_quantity ? 'wpforms-error' : ''; + + $content = $this->field_element( + 'label', + $field, + [ + 'slug' => 'quantity', + 'value' => esc_html__( 'Range', 'wpforms-lite' ), + 'tooltip' => $range_tooltip, + ], + false + ); + $content .= '
              '; + $content .= '
              '; + $content .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'min_quantity', + 'type' => 'number', + 'value' => $min_quantity, + 'after' => esc_html__( 'Minimum', 'wpforms-lite' ), + 'class' => [ 'wpforms-field-options-column', 'min-quantity-input', $min_has_error ], + 'attrs' => + [ + 'min' => 0, + 'step' => 1, + ], + ], + false + ); + $content .= '
              '; + $content .= '
              '; + $content .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'max_quantity', + 'type' => 'number', + 'value' => $max_quantity, + 'after' => esc_html__( 'Maximum', 'wpforms-lite' ), + 'class' => [ 'wpforms-field-options-column', 'max-quantity-input' ], + 'attrs' => + [ + 'min' => 1, + 'step' => 1, + ], + ], + false + ); + $content .= '
              '; + $content .= '
              '; + + $range_hidden_class = $enable_quantity && empty( $args['hidden'] ) ? '' : 'wpforms-hidden'; + + $output .= $this->field_element( + 'row', + $field, + [ + 'slug' => 'quantity', + 'content' => $content, + 'class' => [ $range_hidden_class, 'wpforms-field-quantity-option' ], + ], + false + ); + + if ( ! $is_allowed ) { + $output .= $this->field_element( + 'row', + $field, + [ + 'slug' => 'quantities_alert', + 'content' => RequirementsAlerts::get_product_quantities_alert(), + 'class' => $hidden_class, + ], + false + ); + } + break; + + /* + * Choice Limit. + */ + case 'choice_limit': + $output = $this->choice_limit_option( $field ); + break; + + default: + /** + * Filters the field preview option output. + * + * @since 1.9.1 + * + * @param string $output Field option output. + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param object $this WPForms_Field object. + */ + $output = (string) apply_filters( "wpforms_field_option_{$option}", $output, $field, $args, $this ); + break; + } + + if ( ! $do_echo ) { + return $output; + } + + if ( ! in_array( $option, [ 'basic-options', 'advanced-options' ], true ) ) { + /** + * Fires before the field option output. + * + * @since 1.9.8.6 + * + * @param array $field Field data and settings. + * @param object $this WPForms_Field object. + */ + do_action( "wpforms_field_options_before_{$option}", $field, $this ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $output; + + /** + * Fires after the field option output. + * + * @since 1.9.8.6 + * + * @param array $field Field data and settings. + * @param object $this WPForms_Field object. + */ + do_action( "wpforms_field_options_after_{$option}", $field, $this ); + + return null; + } + + if ( $markup === 'open' ) { + /** + * Fires before the field option output. + * + * @since 1.0.2 + * + * @param array $field Field data and settings. + * @param object $this WPForms_Field object. + */ + do_action( "wpforms_field_options_before_{$option}", $field, $this ); + } + + if ( $markup === 'close' ) { + /** + * Fires at the bottom of the field option output. + * + * @since 1.0.2 + * + * @param array $field Field data and settings. + * @param object $this WPForms_Field object. + */ + do_action( "wpforms_field_options_bottom_{$option}", $field, $this ); + } + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $output; + + if ( $markup === 'open' ) { + /** + * Fires at the top of the field option output. + * + * @since 1.0.2 + * + * @param array $field Field data and settings. + * @param object $this WPForms_Field object. + */ + do_action( "wpforms_field_options_top_{$option}", $field, $this ); + } + + if ( $markup === 'close' ) { + /** + * Fires after the field option output. + * + * @since 1.0.2 + * + * @param array $field Field data and settings. + * @param object $this WPForms_Field object. + */ + do_action( "wpforms_field_options_after_{$option}", $field, $this ); + } + + return null; + } + + /** + * Get choice images hide an option field element. + * + * @since 1.9.8.3 + * + * @param array $field Field data and settings. + * + * @return string + */ + private function choices_images_hide_option( array $field ): string { + + // Field contents. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'choices_images_hide', + 'value' => isset( $field['choices_images_hide'] ) ? '1' : '0', + 'desc' => wpforms()->is_pro() ? esc_html__( 'Hide Images in Entries', 'wpforms-lite' ) : esc_html__( 'Hide Images in Notifications', 'wpforms-lite' ), + 'tooltip' => wpforms()->is_pro() ? esc_html__( 'Enable this option to hide the images in entries and notifications.', 'wpforms-lite' ) : esc_html__( 'Enable this option to hide the images in notifications.', 'wpforms-lite' ), + ], + false + ); + + // Final field output. + return $this->field_element( + 'row', + $field, + [ + 'slug' => 'choices_images_hide', + 'class' => ! empty( $field['choices_images'] ) ? '' : 'wpforms-hidden', + 'content' => $fld, + ], + false + ); + } + + /** + * Get choice limit option field element. + * + * @since 1.9.7 + * + * @param array $field Field data and settings. + * + * @return string + */ + private function choice_limit_option( array $field ): string { + + return $this->field_element( + 'row', + $field, + [ + 'slug' => 'choice_limit', + 'content' => + $this->field_element( + 'label', + $field, + [ + 'slug' => 'choice_limit', + 'value' => esc_html__( 'Choice Limit', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Limit the number of checkboxes a user can select. Leave empty for unlimited.', 'wpforms-lite' ), + ], + false + ) . $this->field_element( + 'text', + $field, + [ + 'slug' => 'choice_limit', + 'value' => isset( $field['choice_limit'] ) && (int) $field['choice_limit'] > 0 ? (int) $field['choice_limit'] : '', + 'type' => 'number', + ], + false + ), + ], + false + ); + } + + /** + * Helper function to create common field options that are used frequently + * in the field preview. + * + * @since 1.0.0 + * @since 1.5.0 Added support for -based fields. + if ( $type === 'select' ) { + if ( empty( $values ) ) { + $list_class[] = 'wpforms-hidden'; + } + + $multiple = ! empty( $field['multiple'] ) ? ' multiple' : ''; + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + + $output = sprintf( + ''; + } else { + // Normal checkbox/radio-based fields. + $output = sprintf( + '
                ', + wpforms_sanitize_classes( $list_class, true ), + esc_attr( $inline_style ) + ); + + foreach ( $values as $key => $value ) { + + $default = $value['default'] ?? ''; + $selected = checked( '1', $default, false ); + $input_class = []; + $item_class = []; + + if ( ! empty( $value['default'] ) ) { + $item_class[] = 'wpforms-selected'; + } + + // Mark Other choice in preview and prepare standalone input HTML. + if ( $with_other ) { + $item_class[] = 'wpforms-other-choice'; + } + + if ( $with_images ) { + $item_class[] = 'wpforms-image-choices-item'; + } + + if ( $with_icons ) { + $item_class[] = 'wpforms-icon-choices-item'; + } + + $output .= sprintf( + '
              • ', + wpforms_sanitize_classes( $item_class, true ) + ); + + $label = $this->get_choices_label( $value['label'] ?? '', $key + 1, $field ); + $label .= ! empty( $field['show_price_after_labels'] ) && isset( $value['value'] ) ? $this->get_price_after_label( $value['value'] ) : ''; + + if ( $with_images ) { + + if ( in_array( $field['choices_images_style'], [ 'modern', 'classic' ], true ) ) { + $input_class[] = 'wpforms-screen-reader-element'; + } + + $output .= ''; + + } elseif ( $with_icons ) { + + $icon = isset( $value['icon'] ) && ! wpforms_is_empty_string( $value['icon'] ) ? $value['icon'] : IconChoices::DEFAULT_ICON; + $icon_style = ! empty( $value['icon_style'] ) ? $value['icon_style'] : IconChoices::DEFAULT_ICON_STYLE; + + if ( in_array( $field['choices_icons_style'], [ 'default', 'modern', 'classic' ], true ) ) { + $input_class[] = 'wpforms-screen-reader-element'; + } + + $output .= ''; + + } else { + $output .= sprintf( + ' %s', + $type, + $selected, + wp_kses( $label, $allowed_tags ) + ); + } + + $output .= '
              • '; + } + + $output .= '
              '; + + // Multiple choice: Another option. + if ( $type === 'radio' ) { + + $placeholder = ! empty( $field['other_placeholder'] ) ? $field['other_placeholder'] : ''; + $default_value = ( ! empty( $field['show_values'] ) && isset( $value['value'] ) && $value['value'] !== '' ) ? $value['value'] : ''; + // Show input by default if the Other choice is set as default. + $hidden_class = ! empty( $default ) && ! empty( $value['other'] ) ? '' : 'wpforms-hidden'; + + $other_input_html = sprintf( + '', + esc_attr( $hidden_class ), + esc_attr( $placeholder ), + esc_attr( $default_value ) + ); + + $output .= $other_input_html; + } + + /* + * Contains more than 20/250 items, include a note about a limited subset of results displayed. + */ + if ( $total > $slice_size ) { + $output .= '
              '; + $output .= sprintf( + wp_kses( /* translators: %s - total number of choices. */ + __( 'Showing the first %1$s choices.
              All %2$s choices will be displayed when viewing the form.', 'wpforms-lite' ), + [ + 'br' => [], + ] + ), + $slice_size, + $total + ); + $output .= '
              '; + } + } + break; + + case 'quantity': + $first_item = ! empty( $field['min_quantity'] ) ? $field['min_quantity'] : 0; + $class .= $this->is_payment_quantities_enabled( $field ) ? '' : ' wpforms-hidden'; + + $output = sprintf( + ''; + break; + } + + if ( ! $do_echo ) { + return $output; + } + + echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + return null; + } + + /** + * Create a new field in the admin AJAX editor. + * + * @since 1.0.0 + */ + public function field_new(): void { + + // Run a security check. + if ( ! check_ajax_referer( 'wpforms-builder', 'nonce', false ) ) { + wp_send_json_error( esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ); + } + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error( esc_html__( 'You are not allowed to perform this action.', 'wpforms-lite' ) ); + } + + // Check for form ID. + if ( empty( $_POST['id'] ) ) { + wp_send_json_error( esc_html__( 'No form ID found', 'wpforms-lite' ) ); + } + + // Check for a field type to add. + if ( empty( $_POST['type'] ) ) { + wp_send_json_error( esc_html__( 'No field type found', 'wpforms-lite' ) ); + } + + // Grab field data. + $field_args = ! empty( $_POST['defaults'] ) && is_array( $_POST['defaults'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['defaults'] ) ) : []; + $field_type = sanitize_key( $_POST['type'] ); + $form_obj = wpforms()->obj( 'form' ); + $field_id = $form_obj ? $form_obj->next_field_id( absint( $_POST['id'] ) ) : false; + $field = [ + 'id' => $field_id, + 'type' => $field_type, + 'label' => $this->name, + 'description' => '', + ]; + $field = wp_parse_args( $field_args, $field ); + + /** + * Allow the default field settings to be filtered. + * + * @since 1.0.8 + * + * @param array $field Default field settings. + */ + $field = (array) apply_filters( 'wpforms_field_new_default', $field ); + + /** + * Filter whether the field should be required by default. + * + * @since 1.0.8 + * + * @param string $field_required Required attribute value. + * @param array $field Field settings. + */ + $field_required = (string) apply_filters( 'wpforms_field_new_required', '', $field ); + + /** + * Filter the new field CSS class. + * + * @since 1.0.8 + * + * @param string $class Required attribute value. + * @param array $field Field settings. + */ + $field_class = (string) apply_filters( 'wpforms_field_new_class', '', $field ); + + $field_helper_hide = ! empty( $_COOKIE['wpforms_field_helper_hide'] ); + + // Field types that default to the required. + if ( ! empty( $field_required ) ) { + $field_required = 'required'; + $field['required'] = '1'; + } + + // Build Preview. + ob_start(); + /** + * Fires after the field preview output in the Form Builder. + * + * @since 1.0.0 + * + * @param array $field Field data. + */ + do_action( "wpforms_builder_fields_previews_{$field_type}", $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $prev = ob_get_clean(); + $preview = sprintf( + '
              ', + esc_attr( $field_type ), + esc_attr( $field_required ), + esc_attr( $field_class ), + wpforms_validate_field_id( $field['id'] ), + esc_attr( $field_type ) + ); + + /** + * Allow the duplicate button to be hidden. + * + * @since 1.5.5 + * + * @param bool $display Whether to display the duplicate button. Default is true. + * @param array $field Field. + */ + if ( apply_filters( 'wpforms_field_new_display_duplicate_button', true, $field ) ) { + $preview .= sprintf( '', esc_attr__( 'Duplicate Field', 'wpforms-lite' ) ); + } + + $preview .= sprintf( '', esc_attr__( 'Delete Field', 'wpforms-lite' ) ); + + // Multi-field actions menu. + $preview .= $this->get_multi_field_menu_html(); + + if ( ! $field_helper_hide ) { + $preview .= sprintf( + '
              + %s + %s + + + +
              ', + esc_html__( 'Click to Edit', 'wpforms-lite' ), + esc_html__( 'Drag to Reorder', 'wpforms-lite' ), + esc_html__( 'Hide Helper', 'wpforms-lite' ) + ); + } + + $preview .= $prev; + $preview .= '
              '; + + // Build Options. + $class = apply_filters( 'wpforms_builder_field_option_class', '', $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.Comments.SinceTagHooks.MissingSinceTag + $options = sprintf( + '
              ', + sanitize_html_class( $field['type'] ), + wpforms_sanitize_classes( $class ), + wpforms_validate_field_id( $field['id'] ) + ); + + $options .= sprintf( + '', + wpforms_validate_field_id( $field['id'] ) + ); + $options .= sprintf( + '', + wpforms_validate_field_id( $field['id'] ), + esc_attr( $field['type'] ) + ); + + ob_start(); + $this->field_options( $field ); + $options .= ob_get_clean(); + $options .= '
              '; + + // Prepare to return compiled results. + wp_send_json_success( + [ + 'form_id' => absint( $_POST['id'] ), + 'field' => $field, + 'preview' => $preview, + 'options' => $options, + ] + ); + } + + /** + * Display the field input elements on the frontend + * according to the render engine setting. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $field_atts Field attributes (deprecated). + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function field_display_proxy( $field, $field_atts, $form_data ): void { + + $render_engine = wpforms_get_render_engine(); + $method = "field_display_{$render_engine}"; + + if ( ! method_exists( $this, $method ) ) { + + // Something is wrong, this should never occur. + // Let's display the classic field in this case. + $method = 'fields_display_classic'; + } + + $this->$method( $field, $form_data ); + } + + /** + * Display the field using classic rendering. + * + * @since 1.0.0 + * @since 1.5.0 Converted to abstract method, as it's required for all fields. + * + * @param array $field Field data and settings. + * @param array|null $deprecated Field attributes (deprecated). + * @param array $form_data Form data and settings. + */ + abstract public function field_display( $field, $deprecated, $form_data ); + + /** + * Display the field using classic rendering. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + */ + protected function field_display_classic( $field, $form_data ): void { + + // The classic view is the same good old `field_display`. + $this->field_display( $field, null, $form_data ); + } + + /** + * Display the field using modern rendering. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + */ + protected function field_display_modern( $field, $form_data ) { + + // Maybe call the method from the field's modern frontend class. + if ( ! empty( $this->frontend_obj ) && method_exists( $this->frontend_obj, 'field_display_modern' ) ) { + $this->frontend_obj->field_display_modern( $field, $form_data ); + + return; + } + + // By default, the modern view is the same as the classic. + // In this way, we will implement modern only for the fields, + // where it is necessary. + $this->field_display_classic( $field, $form_data ); + } + + + /** + * Display field input errors if present. + * + * @since 1.3.7 + * + * @param string $key Input key. + * @param array $field Field data and settings. + */ + public function field_display_error( $key, $field ) { + + // Need an error. + if ( empty( $field['properties']['error']['value'][ $key ] ) ) { + return; + } + + printf( + '', + esc_attr( $field['properties']['inputs'][ $key ]['id'] ?? '' ), + esc_html( $field['properties']['error']['value'][ $key ] ) + ); + } + + /** + * Display field input sublabel if present. + * + * @since 1.3.7 + * @since 1.8.9 Ability to skip for attribute. + * + * @param string $key Input key. + * @param string $position Sublabel position. + * @param array $field Field data and settings. + * + * @noinspection HtmlUnknownAttribute + */ + public function field_display_sublabel( $key, $position, $field ): void { + + // Need a sublabel value. + if ( empty( $field['properties']['inputs'][ $key ]['sublabel']['value'] ) ) { + return; + } + + $field_position = ! empty( $field['properties']['inputs'][ $key ]['sublabel']['position'] ) ? $field['properties']['inputs'][ $key ]['sublabel']['position'] : 'after'; + + // Used to prevent from displaying sublabel twice. + if ( $field_position !== $position ) { + return; + } + + $classes = [ + 'wpforms-field-sublabel', + $field_position, + ]; + + if ( ! empty( $field['properties']['inputs'][ $key ]['sublabel']['hidden'] ) ) { + $classes[] = 'wpforms-sublabel-hide'; + } + + /** + * Allow skipping the `for` attribute inside the label. + * + * @since 1.8.9 + * + * @param bool $skip Whether to skip the `for` attribute. + * @param string $key Input key. + * @param array $field Field data and settings. + */ + $skip_for = (bool) apply_filters( 'wpforms_field_display_sublabel_skip_for', false, $key, $field ); + + /** + * Allow setting custom for attribute to the label. + * + * @since 1.8.9 + * + * @param string $value Actual for attribute value. + * @param string $key Input key. + * @param array $field Field data and settings. + */ + $for = apply_filters( 'wpforms_field_display_sublabel_for', $field['properties']['inputs'][ $key ]['id'], $key, $field ); + + printf( + '', + ! $skip_for ? sprintf( 'for="%s"', esc_attr( $for ) ) : '', + wpforms_sanitize_classes( $classes, true ), + esc_html( $field['properties']['inputs'][ $key ]['sublabel']['value'] ) + ); + } + + /** + * Validate field on form submitting. + * + * @since 1.0.0 + * + * @param string|int $field_id Field ID as a numeric string. + * @param mixed $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + if ( ! empty( $this->is_disabled_field ) ) { + return; + } + + // Basic required check - If a field is marked as required, check for entry data. + if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) && '0' !== (string) $field_submit ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = wpforms_get_required_label(); + } + } + + /** + * Format and sanitize field. + * + * @since 1.0.0 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + if ( is_array( $field_submit ) ) { + $field_submit = array_filter( $field_submit ); + $field_submit = implode( "\r\n", $field_submit ); + } + + $name = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? sanitize_text_field( $form_data['fields'][ $field_id ]['label'] ) : ''; + + // Sanitize but keep line breaks. + $value = wpforms_sanitize_textarea_field( $field_submit ); + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $name, + 'value' => $value, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Format field returning value due to the context and field type: + * E.g., return images, if any, for HTML-supported values, use separate formatting for the Other option. + * + * @since 1.4.5 + * + * @param string|mixed $value Field value. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * @param string $context Value display context. + * + * @return string + */ + public function field_html_value( $value, $field, $form_data = [], $context = '' ) { + + $value = (string) $value; + + if ( wpforms_payment_has_quantity( $field, $form_data ) ) { + return wpforms_payment_format_quantity( $field ); + } + + // Only use HTML formatting for checkbox fields, with image choices enabled + // and exclude the entry table display. + // Lastly, provides a filter to disable fancy display. + if ( + ! empty( $field['value'] ) && + $field['type'] === $this->type && + $context !== 'entry-table' && + $this->filter_field_html_value_images( $context, $form_data['fields'][ $field['id'] ] ?? [] ) + ) { + return $this->get_field_html( $field, $value, $form_data ); + } + + return $value; + } + + /** + * Filter whether to use HTML formatting for a field with image choices enabled. + * + * @since 1.9.8.3 + * + * @param bool $filtering Whether to use HTML formatting. + * @param string $context Value display context. + * @param array $field Field settings. + * + * @return bool + */ + public function field_html_value_images( $filtering, string $context, array $field ): bool { + + // Bail if images are hidden and not in the entry-preview context. + if ( ! empty( $field['choices_images_hide'] ) && $context !== 'entry-preview' ) { + return false; + } + + return (bool) $filtering; + } + + /** + * Return HTML for a field value. + * + * @since 1.8.4.1 + * @since 1.8.9 Add $form_data parameter. + * + * @param array $field Field settings. + * @param string $value Field value. + * @param array $form_data Form data. + * + * @return string + */ + private function get_field_html( array $field, string $value, array $form_data ): string { + + if ( ! empty( $field['image'] ) ) { + $value = $this->get_choices_value( $field, $form_data ); + + return $this->get_field_html_image( $field['image'], $value ); + } + + if ( ! empty( $field['images'] ) ) { + $items = []; + $value = $this->get_choices_value( $field, $form_data ); + $values = explode( "\n", $value ); + + foreach ( $values as $key => $choice_label ) { + if ( ! empty( $field['images'][ $key ] ) ) { + $choice_label = $this->get_field_html_image( $field['images'][ $key ], $choice_label ); + } + + $items[] = $choice_label; + } + + return implode( '', $items ); + } + + return $value; + } + + /** + * Return choice value. + * + * This is only a wrapper for the wpforms_get_choices_value() global function. + * + * @since 1.9.8.3 + * + * @param array $field Field settings. + * @param array $form_data Form data. + * + * @return string + */ + protected function get_choices_value( array $field, array $form_data ): string { + + return wpforms_get_choices_value( $field, $form_data ); + } + + /** + * Return image HTML for a field value. + * + * @since 1.8.4.1 + * + * @param string $url Image URL. + * @param string $label Field value. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + private function get_field_html_image( $url, $label ): string { + + return sprintf( + '%s', + esc_url( $url ), + $label + ); + } + + /** + * Return boolean determining if field HTML values uses images. + * + * Bail if a field type is not set. + * + * @since 1.8.2 + * + * @param string $context Context of the field. + * @param array $field Field settings. + * + * @return bool + */ + private function filter_field_html_value_images( string $context, array $field ): bool { + + /** + * Filters whether to use HTML formatting for a field with image choices enabled. + * + * @since 1.5.1 + * @since 1.9.8.3 Added $field parameter. + * + * @param bool $use_html Whether to use HTML formatting. + * @param string $context Value display context. + * @param array $field Field settings. + */ + return (bool) apply_filters( "wpforms_{$this->type}_field_html_value_images", true, $context, $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Get a field name for an ajax error message. + * + * @since 1.6.3 + * + * @param string|mixed $name Field name for error triggered. + * @param array $field Field settings. + * @param array $props List of properties. + * @param string|string[] $error Error message. + * + * @return string + * @noinspection PhpMissingReturnTypeInspection + * @noinspection ReturnTypeCanBeDeclaredInspection + * @noinspection PhpMissingParamTypeInspection + */ + public function ajax_error_field_name( $name, $field, $props, $error ) { + + $name = (string) $name; + + if ( $name ) { + return $name; + } + + if ( is_array( $error ) && isset( $props['inputs'][ key( $error ) ] ) ) { + // Handle separate error messages for composed fields like name or date_time. + $input = $props['inputs'][ key( $error ) ]; + } else { + $input = $props['inputs']['primary'] ?? end( $props['inputs'] ); + } + + return (string) isset( $input['attr']['name'] ) ? $input['attr']['name'] : ''; + } + + /** + * Exclude empty dynamic choices from the entry preview. + * + * @since 1.8.2 + * + * @param bool $hide Whether to hide the field. + * @param array $field Field data. + * @param array $form_data Form data. + * + * @return bool + */ + public function exclude_empty_dynamic_choices( $hide, $field, $form_data ) { + + if ( empty( $field['dynamic'] ) ) { + return $hide; + } + + $field_id = $field['id']; + $fields = $form_data['fields']; + $form_field = $fields[ $field_id ]; + + return $this->is_dynamic_choices_empty( $form_field, $form_data ); + } + + /** + * Enqueue Choicesjs script and config. + * + * @param array $forms Forms on the current page. + * + * @since 1.6.3 + */ + protected function enqueue_choicesjs_once( $forms ): void { + + if ( wpforms()->obj( 'frontend' )->is_choicesjs_enqueued ) { + return; + } + + wp_enqueue_script( + 'wpforms-choicesjs', + WPFORMS_PLUGIN_URL . 'assets/lib/choices.min.js', + [], + '10.2.0', + $this->load_script_in_footer() + ); + + $config = [ + 'removeItemButton' => true, + 'shouldSort' => false, + // Forces the search to look for exact matches anywhere in the string. + 'fuseOptions' => [ + 'threshold' => 0.1, + 'distance' => 1000, + ], + 'loadingText' => esc_html__( 'Loading...', 'wpforms-lite' ), + 'noResultsText' => esc_html__( 'No results found', 'wpforms-lite' ), + 'noChoicesText' => esc_html__( 'No choices to choose from', 'wpforms-lite' ), + 'uniqueItemText' => esc_html__( 'Only unique values can be added', 'wpforms-lite' ), + 'customAddItemText' => esc_html__( 'Only values matching specific conditions can be added', 'wpforms-lite' ), + ]; + + /** + * Allow theme/plugin developers to modify the provided or add own Choices.js settings. + * + * @since 1.6.1 + * + * @param array $config Choices.js settings. + * @param array $forms Forms on the current page. + * @param WPForms_Field $field_obj Field object. + */ + $config = apply_filters( 'wpforms_field_select_choicesjs_config', $config, $forms, $this ); + + wp_localize_script( + 'wpforms-choicesjs', + 'wpforms_choicesjs_config', + $config + ); + + wpforms()->obj( 'frontend' )->is_choicesjs_enqueued = true; + } + + /** + * Whether a Choicesjs search area should be shown. + * + * @since 1.6.4 + * + * @param int $choices_count Choices amount. + * + * @return bool + */ + protected function is_choicesjs_search_enabled( $choices_count ) { + + /** + * Allow modifying the minimum number of choices to show the search area. + * We should auto hide/remove search, if less than 8 choices by default. + * + * @since 1.6.4 + * + * @param int $min_choices Minimum number of choices to show the search area. + */ + return $choices_count >= (int) apply_filters( 'wpforms_field_choicesjs_search_enabled_items_min', 8 ); + } + + /** + * Whether a Choicesjs search area should be shown for quantity select. + * + * @since 1.8.7 + * + * @param array $field Field data. + * + * @return bool + */ + protected function is_quantity_choicesjs_search_enabled( $field ) { + + if ( ! isset( $field['max_quantity'], $field['min_quantity'] ) ) { + return false; + } + + $choices_count = (int) $field['max_quantity'] - (int) $field['min_quantity']; + + /** + * We should auto hide/remove search, if less than 20 choices. + * + * @since 1.8.7 + * + * @param int $limit Minimum limit. + */ + return $choices_count >= (int) apply_filters( 'wpforms_field_quantity_choicesjs_search_enabled_items_min', 20 ); + } + + /** + * Get an instance of the class connected to the current field + * and located in the `src/Forms/[Pro/]Fields/FieldType/Class.php` file. + * + * @since 1.8.1 + * + * @param string $class_name Class name, for example `Frontend`. + * + * @return object + */ + protected function get_object( $class_name ) { + + $property = strtolower( $class_name ) . '_obj'; + + if ( ! is_null( $this->$property ) ) { + return $this->$property; + } + + $class_dir = implode( '', array_map( 'ucfirst', explode( '-', $this->type ) ) ); + $class_name = ucfirst( $class_name ); + $class_name = 'Forms\Fields\\' . $class_dir . '\\' . $class_name; + $fqdn_class = '\WPForms\Pro\\' . $class_name; + $fqdn_class = class_exists( $fqdn_class ) && wpforms()->is_pro() ? $fqdn_class : '\WPForms\Lite\\' . $class_name; + $fqdn_class = class_exists( $fqdn_class ) ? $fqdn_class : '\WPForms\\' . $class_name; + + $this->$property = class_exists( $fqdn_class ) ? new $fqdn_class( $this ) : null; + + return $this->$property; + } + + /** + * Add allowed HTML tags for field labels. + * + * @since 1.8.2 + * + * @param array $strings Array of strings. + * + * @return array + */ + public function add_allowed_label_html_tags( $strings ) { + + // Default allowed tags. + $allowed_tags = [ + 'br', + 'strong', + 'b', + 'em', + 'i', + 'a', + ]; + + /** + * Filter the allowed HTML tags for field labels. + * + * @since 1.8.2 + * + * @param array $allowed_tags Allowed HTML tags. + */ + $strings['allowed_label_html_tags'] = (array) apply_filters( 'wpforms_field_label_allowed_html_tags', $allowed_tags ); + + return $strings; + } + + /** + * Whether a field has dynamic choices. + * + * @since 1.8.2 + * + * @param array $field Field settings. + * + * @return bool + */ + protected function is_dynamic_choices( array $field ): bool { + + return ! empty( $field['dynamic_choices'] ); + } + + /** + * Whether a field has dynamic choices and they are empty. + * + * @since 1.8.2 + * + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return bool + */ + protected function is_dynamic_choices_empty( $field, $form_data ) { + + if ( ! $this->is_dynamic_choices( $field ) ) { + return false; + } + + $form_id = absint( $form_data['id'] ); + $dynamic = wpforms_get_field_dynamic_choices( $field, $form_id, $form_data ); + + return empty( $dynamic ); + } + + /** + * Get an empty dynamic choices message. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + * + * @return string + */ + protected function get_empty_dynamic_choices_message( $field ) { + + $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false; + + if ( ! $dynamic ) { + return ''; + } + + if ( empty( $field[ 'dynamic_' . $dynamic ] ) ) { + return ''; + } + + $source = esc_html__( 'Dynamic choices', 'wpforms-lite' ); + $type = esc_html__( 'items', 'wpforms-lite' ); + + $source_object = null; + + if ( $dynamic === 'post_type' ) { + $type = esc_html__( 'posts', 'wpforms-lite' ); + $source_object = get_post_type_object( $field[ 'dynamic_' . $dynamic ] ); + } + + if ( $dynamic === 'taxonomy' ) { + $type = esc_html__( 'terms', 'wpforms-lite' ); + $source_object = get_taxonomy( $field[ 'dynamic_' . $dynamic ] ); + } + + if ( $source_object !== null ) { + $source = $source_object->labels->name; + } + + return sprintf( /* translators: %1$s - data source name (e.g., Categories, Posts), %2$s - data source type (e.g., post type, taxonomy). */ + esc_html__( 'This field will not be displayed in your form since there are no %2$s belonging to %1$s.', 'wpforms-lite' ), + esc_html( $source ), + esc_html( $type ) + ); + } + + /** + * Display an empty dynamic choices message. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + */ + protected function display_empty_dynamic_choices_message( $field ): void { + + printf( + '
              %s
              ', + esc_html( $this->get_empty_dynamic_choices_message( $field ) ) + ); + } + + /** + * Get checkbox, choices and select the field options label. + * + * @since 1.8.6 + * @since 1.8.9 Added the `$field` parameter. + * + * @param string $label Choice option label. + * @param int $key Choice number. + * @param array $field Field data and settings. + * + * @return string + */ + protected function get_choices_label( $label, int $key, array $field ) { + + $is_payment_field = ! empty( $field ) && ( $field['type'] === 'payment-checkbox' || $field['type'] === 'payment-multiple' ); + $label = trim( $label ); + $is_icon_image_choice = ! empty( $field['choices_icons'] ) || ! empty( $field['choices_images'] ); + + // Do not set a placeholder for an empty label in Icon and Image choices except for payment fields. + if ( ! $is_payment_field && $is_icon_image_choice && wpforms_is_empty_string( $label ) ) { + return ''; + } + + /* translators: %d - choice number. */ + $placeholder = $is_payment_field ? __( 'Item %d', 'wpforms-lite' ) : __( 'Choice %d', 'wpforms-lite' ); + + return ! wpforms_is_empty_string( $label ) ? + $label : + sprintf( + $placeholder, + $key + ); + } + + /** + * Display quantity dropdown on the front. + * + * @since 1.8.7 + * + * @param array $field Field data and settings. + * + * @noinspection HtmlUnknownAttribute + */ + protected function display_quantity_dropdown( $field ): void { + + if ( ! $this->is_payment_quantities_enabled( $field ) ) { + return; + } + + $field_id = wpforms_validate_field_id( $field['id'] ); + $form_id = absint( $this->form_data['id'] ); + $container = [ + 'id' => "wpforms-{$form_id}-field_{$field_id}-quantity", + 'class' => [ 'wpforms-payment-quantity' ], + 'attr' => [ + 'name' => "wpforms[quantities][{$field_id}]", + ], + 'data' => [], + ]; + $is_modern = ! empty( $field['style'] ) && $field['style'] === 'modern'; + + // Add a class for Choices.js initialization. + if ( $is_modern ) { + $container['class'][] = 'choicesjs-select'; + $container['data']['size-class'] = 'wpforms-payment-quantity'; + $container['data']['search-enabled'] = $this->is_quantity_choicesjs_search_enabled( $field ); + $container['data']['remove-items-enabled'] = false; + } + + // Add the required attribute. + if ( ! empty( $field['required'] ) ) { + $container['attr']['required'] = 'required'; + } + + // Preselect default if no other choices were marked as default. + printf( + ''; + } + + /** + * Add a class to the builder field preview. + * + * @since 1.8.7 + * + * @param string $css Class names. + * @param array $field Field properties. + * + * @return string + */ + public function preview_field_class( $css, $field ) { + + if ( $field['type'] !== $this->type ) { + return $css; + } + + if ( $this->is_payment_quantities_enabled( $field ) ) { + $css .= ' payment-quantity-enabled'; + } + + return $css; + } + + /** + * Determine if payment quantities enabled. + * + * @since 1.8.7 + * + * @param array $field_settings Field settings. + * + * @return bool + */ + protected function is_payment_quantities_enabled( $field_settings ) { + + if ( empty( $field_settings['enable_quantity'] ) ) { + return false; + } + + // Quantity available only for `single` format of the Single payment field. + if ( $field_settings['type'] === 'payment-single' && $field_settings['format'] !== 'single' ) { + return false; + } + + // Otherwise return true. + return true; + } + + /** + * Get field payment submitted quantity. + * + * @since 1.8.7 + * + * @param array $field Field data. + * @param array $form_data Form data and settings. + * + * @return int + */ + protected function get_submitted_field_quantity( $field, $form_data ): int { + // phpcs:disable WordPress.Security.NonceVerification.Missing + $has_submitted_quantity = isset( $_POST['wpforms']['quantities'][ $field['id'] ] ); + $submitted_quantity = $has_submitted_quantity ? (int) $_POST['wpforms']['quantities'][ $field['id'] ] : 0; + // phpcs:enable WordPress.Security.NonceVerification.Missing + + if ( ! $has_submitted_quantity && isset( $form_data['quantities'][ $field['id'] ] ) ) { + $submitted_quantity = (int) $form_data['quantities'][ $field['id'] ]; + } + + $min_quantity = (int) $field['min_quantity']; + + // Verify submitted quantity value. + if ( $submitted_quantity >= $min_quantity && $submitted_quantity <= (int) $field['max_quantity'] ) { + return $submitted_quantity; + } + + // Otherwise, return a minimum quantity. + return $min_quantity; + } + + /** + * Whether to print the script in the footer. + * + * @since 1.9.0 + * + * @return bool + */ + protected function load_script_in_footer(): bool { + + return ! wpforms_is_frontend_js_header_force_load(); + } + + /** + * Get formatted price after label. + * + * @since 1.9.2 + * + * @param float $amount Amount. + * + * @return string + */ + protected function get_price_after_label( $amount ): string { + + return sprintf( ' - %s', wpforms_format_amount( wpforms_sanitize_amount( $amount ), true ) ); + } + + /** + * Validate field choice limit. + * + * @since 1.9.7 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + protected function validate_field_choice_limit( int $field_id, array $field_submit, array $form_data ): void { + + $choice_limit = isset( $form_data['fields'][ $field_id ]['choice_limit'] ) ? (int) $form_data['fields'][ $field_id ]['choice_limit'] : ''; + $count_choices = count( $field_submit ); + + if ( ! $choice_limit || $count_choices <= $choice_limit ) { + return; + } + + // Generating the error. + $error = wpforms_setting( 'validation-check-limit', esc_html__( 'You have exceeded the number of allowed selections: {#}.', 'wpforms-lite' ) ); + $error = str_replace( '{#}', $choice_limit, $error ); + + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = $error; + } + + /** + * Determines if the field has the "Add Other Choice" option enabled. + * + * @since 1.9.8.3 + * + * @param array $field The field data to check for the "Add Other Choice" option. + * + * @return bool True, if the "Add Other Choice" option is enabled, false otherwise. + */ + protected function has_other_choice( array $field ): bool { + + return ! empty( $field['choices_other'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-checkbox.php b/wp-content/plugins/wpforms-lite/includes/fields/class-checkbox.php new file mode 100644 index 0000000..3cea747 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-checkbox.php @@ -0,0 +1,773 @@ +name = esc_html__( 'Checkboxes', 'wpforms-lite' ); + $this->keywords = esc_html__( 'choice', 'wpforms-lite' ); + $this->type = 'checkbox'; + $this->icon = 'fa-check-square-o'; + $this->order = 110; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'First Choice', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + 2 => [ + 'label' => esc_html__( 'Second Choice', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + 3 => [ + 'label' => esc_html__( 'Third Choice', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + // Customize HTML field values. + add_filter( 'wpforms_html_field_value', [ $this, 'field_html_value' ], 10, 4 ); + add_filter( "wpforms_{$this->type}_field_html_value_images", [ $this, 'field_html_value_images' ], 10, 3 ); + + // Define additional field properties. + add_filter( 'wpforms_field_properties_checkbox', [ $this, 'field_properties' ], 5, 3 ); + + // This field requires fieldset+legend instead of the field label. + add_filter( "wpforms_frontend_modern_is_field_requires_fieldset_{$this->type}", '__return_true', PHP_INT_MAX, 2 ); + } + + /** + * Define additional field properties. + * + * @since 1.4.5 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = wpforms_validate_field_id( $field['id'] ); + $choices = $field['choices']; + $dynamic = wpforms_get_field_dynamic_choices( $field, $form_id, $form_data ); + + if ( $dynamic !== false ) { + $choices = $dynamic; + $field['show_values'] = true; + } + + // Remove primary input, unset for attribute for label. + unset( $properties['inputs']['primary'], $properties['label']['attr']['for'] ); + + // Set input container (ul) properties. + $properties['input_container'] = [ + 'class' => [ ! empty( $field['random'] ) ? 'wpforms-randomize' : '' ], + 'data' => [], + 'attr' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + ]; + + $is_choice_limit_set = ! empty( $field['choice_limit'] ) && (int) $field['choice_limit'] > 0; + + if ( $is_choice_limit_set ) { + $properties['input_container']['data']['choice-limit'] = $field['choice_limit']; + } + + // Set input properties. + foreach ( $choices as $key => $choice ) { + + // Used for dynamic choices. + $depth = isset( $choice['depth'] ) ? absint( $choice['depth'] ) : 1; + $label = isset( $choice['label'] ) ? $choice['label'] : ''; + + // Choice labels should not be left blank, but if they are we + // provide a basic value. + $value = isset( $field['show_values'] ) ? $choice['value'] : $label; + + if ( '' === $value ) { + if ( 1 === count( $choices ) ) { + $value = esc_html__( 'Checked', 'wpforms-lite' ); + } else { + /* translators: %s - choice number. */ + $value = sprintf( esc_html__( 'Choice %s', 'wpforms-lite' ), $key ); + } + } + + $properties['inputs'][ $key ] = [ + 'container' => [ + 'attr' => [], + 'class' => [ "choice-{$key}", "depth-{$depth}" ], + 'data' => [], + 'id' => '', + ], + 'label' => [ + 'attr' => [ + 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + ], + 'class' => [ 'wpforms-field-label-inline' ], + 'data' => [], + 'id' => '', + 'text' => $label, + ], + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][]", + 'value' => $value, + ], + 'class' => [], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + 'icon' => isset( $choice['icon'] ) ? $choice['icon'] : '', + 'icon_style' => isset( $choice['icon_style'] ) ? $choice['icon_style'] : '', + 'image' => isset( $choice['image'] ) ? $choice['image'] : '', + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'default' => isset( $choice['default'] ), + ]; + + // Rule for validator only if needed. + if ( $is_choice_limit_set ) { + $properties['inputs'][ $key ]['data']['rule-check-limit'] = 'true'; + } + } + + // Required class for pagebreak validation. + if ( ! empty( $field['required'] ) ) { + $properties['input_container']['class'][] = 'wpforms-field-required'; + } + + // Custom properties if image choices is enabled. + if ( ! $dynamic && ! empty( $field['choices_images'] ) ) { + + $properties['input_container']['class'][] = 'wpforms-image-choices'; + $properties['input_container']['class'][] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] ); + + foreach ( $properties['inputs'] as $key => $inputs ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-image-choices-item'; + + if ( in_array( $field['choices_images_style'], [ 'modern', 'classic' ], true ) ) { + $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element'; + } + } + } elseif ( ! $dynamic && ! empty( $field['choices_icons'] ) ) { + $properties = wpforms()->obj( 'icon_choices' )->field_properties( $properties, $field ); + } + + // Custom properties for disclaimer format display. + if ( ! empty( $field['disclaimer_format'] ) ) { + + $properties['description']['class'][] = 'wpforms-disclaimer-description'; + $properties['description']['value'] = nl2br( $properties['description']['value'] ); + } + + // Add selected class for choices with defaults. + foreach ( $properties['inputs'] as $key => $inputs ) { + if ( ! empty( $inputs['default'] ) ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-selected'; + } + } + + return $properties; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Choices. + $this->field_option( 'choices', $field ); + + // AI Feature. + $this->field_option( + 'ai_modal_button', + $field, + [ + 'value' => esc_html__( 'Generate Choices', 'wpforms-lite' ), + 'type' => 'choices', + ] + ); + + // Choices Images. + $this->field_option( 'choices_images', $field ); + + // Hide Choices Images. + $this->field_option( 'choices_images_hide', $field ); + + // Choices Images Style (theme). + $this->field_option( 'choices_images_style', $field ); + + // Choices Icons. + $this->field_option( 'choices_icons', $field ); + + // Choices Icons Color. + $this->field_option( 'choices_icons_color', $field ); + + // Choices Icons Size. + $this->field_option( 'choices_icons_size', $field ); + + // Choices Icons Style. + $this->field_option( 'choices_icons_style', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Randomize order of choices. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'random', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'random', + 'value' => isset( $field['random'] ) ? '1' : '0', + 'desc' => esc_html__( 'Randomize Choices', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to randomize the order of the choices.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + // Show Values toggle option. This option will only show if already used + // or if manually enabled by a filter. + if ( ! empty( $field['show_values'] ) || wpforms_show_fields_options_setting() ) { + $this->field_element( + 'row', + $field, + [ + 'slug' => 'show_values', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'show_values', + 'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0', + 'desc' => esc_html__( 'Show Values', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to manually set form field values.', 'wpforms-lite' ), + ], + false + ), + ] + ); + } + + // Display format. + $this->field_option( 'input_columns', $field ); + + // Choice Limit. + $this->field_option( 'choice_limit', $field ); + + // Dynamic choice auto-populating toggle. + $this->field_option( 'dynamic_choices', $field ); + + // Dynamic choice source. + $this->field_option( 'dynamic_choices_source', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Enable Disclaimer formatting. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'disclaimer_format', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'disclaimer_format', + 'value' => isset( $field['disclaimer_format'] ) ? '1' : '0', + 'desc' => esc_html__( 'Enable Disclaimer / Terms of Service Display', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to adjust the field styling to support Disclaimers and Terms of Service type agreements.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Choices. + $this->field_preview_option( 'choices', $field ); + + // Description. + $this->field_preview_option( + 'description', + $field, + [ + 'class' => ! empty( $field['disclaimer_format'] ) ? 'disclaimer nl2br' : false, + ] + ); + } + + /** + * Field display on the form front-end and admin entry edit page. + * + * @since 1.0.0 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + $using_image_choices = empty( $field['dynamic_choices'] ) && ! empty( $field['choices_images'] ); + $using_icon_choices = empty( $field['dynamic_choices'] ) && empty( $field['choices_images'] ) && ! empty( $field['choices_icons'] ); + + // Define data. + $container = $field['properties']['input_container']; + $choices = $field['properties']['inputs']; + + // Do not display the field with empty choices on the frontend. + if ( ! $choices && ! is_admin() ) { + return; + } + + // Display a warning message on Entry Edit page. + if ( ! $choices && is_admin() ) { + $this->display_empty_dynamic_choices_message( $field ); + + return; + } + + $amp_state_id = ''; + + if ( wpforms_is_amp() && ( $using_image_choices || $using_icon_choices ) ) { + $amp_state_id = str_replace( '-', '_', sanitize_key( $container['id'] ) ) . '_state'; + $state = []; + + foreach ( $choices as $key => $choice ) { + $state[ $choice['id'] ] = ! empty( $choice['default'] ); + } + printf( + '', + esc_attr( $amp_state_id ), + wp_json_encode( $state ) + ); + } + + printf( + '
                ', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) + ); + + foreach ( $choices as $key => $choice ) { + $label = $this->get_choices_label( $choice['label']['text'] ?? '', $key, $field ); + + if ( wpforms_is_amp() && ( $using_image_choices || $using_icon_choices ) ) { + $choice['container']['attr']['[class]'] = sprintf( + '%s + ( %s[%s] ? " wpforms-selected" : "")', + wp_json_encode( implode( ' ', $choice['container']['class'] ) ), + $amp_state_id, + wp_json_encode( $choice['id'] ) + ); + } + + // If the field is required, has the label hidden, and has + // disclaimer mode enabled, so the required status in choice + // label. + $required = ''; + + if ( ! empty( $field['disclaimer_format'] ) && ! empty( $choice['required'] ) && ! empty( $field['label_hide'] ) ) { + $required = wpforms_get_field_required_label(); + } + + printf( + '
              • ', + wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] ) + ); + + // The required constraint in HTML5 form validation does not work with checkbox groups, so omit in AMP. + $required_attr = wpforms_is_amp() && count( $choices ) > 1 ? '' : $choice['required']; + + if ( $using_image_choices ) { + + // Make sure the image choices are keyboard-accessible. + $choice['label']['attr']['tabindex'] = 0; + + if ( wpforms_is_amp() ) { + $choice['label']['attr']['on'] = sprintf( + 'tap:AMP.setState({ %s: { %s: ! %s[%s] } })', + wp_json_encode( $amp_state_id ), + wp_json_encode( $choice['id'] ), + $amp_state_id, + wp_json_encode( $choice['id'] ) + ); + $choice['label']['attr']['role'] = 'button'; + } + if ( is_array( $choice['label']['class'] ) && wpforms_is_empty_string( $label ) ) { + $choice['label']['class'][] = 'wpforms-field-label-inline-empty'; + } + + // Image choices. + printf( + ''; + + } elseif ( $using_icon_choices ) { + + if ( wpforms_is_amp() ) { + $choice['label']['attr']['on'] = sprintf( + 'tap:AMP.setState({ %s: { %s: ! %s[%s] } })', + wp_json_encode( $amp_state_id ), + wp_json_encode( $choice['id'] ), + $amp_state_id, + wp_json_encode( $choice['id'] ) + ); + $choice['label']['attr']['role'] = 'button'; + } + + // Icon Choices. + wpforms()->obj( 'icon_choices' )->field_display( $field, $choice, 'checkbox' ); + + } else { + + // Normal display. + printf( + '', + wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ), + esc_attr( $required_attr ), + checked( '1', $choice['default'], false ) + ); + + printf( + '', + wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ), + wp_kses_post( $label ), + wp_kses( + $required, + [ + 'span' => [ + 'class' => true, + ], + ] + ) + ); + } + + echo '
              • '; + } + + echo '
              '; + } + + /** + * Validate field on form submit. + * + * @since 1.5.2 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value (raw data). + * @param array $form_data Form data. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $field_id = (int) $field_id; + $field = $form_data['fields'][ $field_id ]; + + // Skip validation if field is dynamic and choices are empty. + if ( $this->is_dynamic_choices_empty( $field, $form_data ) ) { + return; + } + + $field_submit = (array) $field_submit; + + $this->validate_field_choice_limit( $field_id, $field_submit, $form_data ); + + // Basic required check - If field is marked as required, check for entry data. + if ( + ! empty( $form_data['fields'][ $field_id ]['required'] ) && + ( + empty( $field_submit ) || + ( + count( $field_submit ) === 1 && + ( ! isset( $field_submit[0] ) || (string) $field_submit[0] === '' ) + ) + ) + ) { + $error = wpforms_get_required_label(); + } + + if ( ! empty( $error ) ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = $error; + } + } + + /** + * Format and sanitize field. + * + * @since 1.0.2 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted form data. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field_submit = (array) $field_submit; + $field = $form_data['fields'][ $field_id ]; + $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false; + $name = sanitize_text_field( $field['label'] ); + $value_raw = wpforms_sanitize_array_combine( $field_submit ); + + $data = [ + 'name' => $name, + 'value' => '', + 'value_raw' => $value_raw, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + + if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) { + + // Dynamic population is enabled using post type. + $value_raw = implode( ',', array_map( 'absint', $field_submit ) ); + $data['value_raw'] = $value_raw; + $data['dynamic'] = 'post_type'; + $data['dynamic_items'] = $value_raw; + $data['dynamic_post_type'] = $field['dynamic_post_type']; + $posts = []; + + foreach ( $field_submit as $id ) { + $post = get_post( $id ); + + if ( ! is_wp_error( $post ) && ! empty( $post ) && $data['dynamic_post_type'] === $post->post_type ) { + $posts[] = esc_html( wpforms_get_post_title( $post ) ); + } + } + + $data['value'] = ! empty( $posts ) ? wpforms_sanitize_array_combine( $posts ) : ''; + + } + elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) { + + // Dynamic population is enabled using taxonomy. + $value_raw = implode( ',', array_map( 'absint', $field_submit ) ); + $data['value_raw'] = $value_raw; + $data['dynamic'] = 'taxonomy'; + $data['dynamic_items'] = $value_raw; + $data['dynamic_taxonomy'] = $field['dynamic_taxonomy']; + $terms = []; + + foreach ( $field_submit as $id ) { + $term = get_term( $id, $field['dynamic_taxonomy'] ); + + if ( ! is_wp_error( $term ) && ! empty( $term ) ) { + $terms[] = esc_html( wpforms_get_term_name( $term ) ); + } + } + + $data['value'] = ! empty( $terms ) ? wpforms_sanitize_array_combine( $terms ) : ''; + + } else { + + // Normal processing, dynamic population is off. + $choice_keys = []; + + // If show_values is true, that means values posted are the raw values + // and not the labels. So we need to set label values. Also store + // the choice keys. + if ( ! empty( $field['show_values'] ) && (int) $field['show_values'] === 1 ) { + + foreach ( $field_submit as $item ) { + foreach ( $field['choices'] as $key => $choice ) { + // Check if the submitted value is the same as the choice value or if the value is empty and the key matches. + // Skip if the submitted value is empty. + if ( ( ! empty( $item ) && $item === $choice['value'] ) || ( empty( $choice['value'] ) && (int) str_replace( 'Choice ', '', $item ) === $key ) ) { + $value[] = $choice['label']; + $choice_keys[] = $key; + + break; + } + } + } + + $data['value'] = ! empty( $value ) ? wpforms_sanitize_array_combine( $value ) : ''; + + } else { + + $data['value'] = $value_raw; + + // Determine choices keys, this is needed for image choices. + foreach ( $field_submit as $item ) { + foreach ( $field['choices'] as $key => $choice ) { + /* translators: %s - choice number. */ + if ( $item === $choice['label'] || $item === sprintf( esc_html__( 'Choice %s', 'wpforms-lite' ), $key ) ) { + $choice_keys[] = $key; + + break; + } + } + } + } + + // Images choices are enabled, lookup and store image URLs. + if ( ! empty( $choice_keys ) && ! empty( $field['choices_images'] ) ) { + + $data['images'] = []; + + foreach ( $choice_keys as $key ) { + $data['images'][] = ! empty( $field['choices'][ $key ]['image'] ) ? esc_url_raw( $field['choices'][ $key ]['image'] ) : ''; + } + } + } + + // Push field details to be saved. + wpforms()->obj( 'process' )->fields[ $field_id ] = $data; + } +} + +new WPForms_Field_Checkbox(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-email.php b/wp-content/plugins/wpforms-lite/includes/fields/class-email.php new file mode 100644 index 0000000..227ca80 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-email.php @@ -0,0 +1,1397 @@ +name = esc_html__( 'Email', 'wpforms-lite' ); + $this->keywords = esc_html__( 'user', 'wpforms-lite' ); + $this->type = 'email'; + $this->icon = 'fa-envelope-o'; + $this->order = 170; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + // Define additional field properties. + add_filter( 'wpforms_field_properties_email', [ $this, 'field_properties' ], 5, 3 ); + + // Set field to default to required. + add_filter( 'wpforms_field_new_required', [ $this, 'default_required' ], 10, 2 ); + + // Set confirmation status to option wrapper class. + add_filter( 'wpforms_builder_field_option_class', [ $this, 'field_option_class' ], 10, 2 ); + + add_action( 'wp_ajax_wpforms_restricted_email', [ $this, 'ajax_check_restricted_email' ] ); + add_action( 'wp_ajax_nopriv_wpforms_restricted_email', [ $this, 'ajax_check_restricted_email' ] ); + + add_action( 'wp_ajax_wpforms_sanitize_restricted_rules', [ $this, 'ajax_sanitize_restricted_rules' ] ); + add_action( 'wp_ajax_wpforms_sanitize_default_email', [ $this, 'ajax_sanitize_default_email' ] ); + + add_filter( 'wpforms_save_form_args', [ $this, 'save_form_args' ], 11, 3 ); + + add_filter( 'wpforms_builder_strings', [ $this, 'add_builder_strings' ], 10, 2 ); + + // This field requires fieldset+legend instead of the field label. + add_filter( "wpforms_frontend_modern_is_field_requires_fieldset_{$this->type}", [ $this, 'is_field_requires_fieldset' ], PHP_INT_MAX, 2 ); + } + + /** + * Define additional field properties. + * + * @since 1.3.7 + * + * @param array $properties List field properties. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Prevent "spell-jacking" of email addresses. + $properties['inputs']['primary']['attr']['spellcheck'] = 'false'; + + if ( ! empty( $field['confirmation'] ) ) { + $properties = $this->confirmation_field_properties( $properties, $field, $form_data ); + } + if ( ! empty( $field['filter_type'] ) ) { + $properties = $this->filter_type_field_properties( $properties, $field, $form_data ); + } + + return $properties; + } + + /** + * Define the confirmation field properties. + * + * @since 1.6.3 + * + * @param array $properties List field properties. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function confirmation_field_properties( $properties, $field, $form_data ) { + $form_id = absint( $form_data['id'] ); + $field_id = wpforms_validate_field_id( $field['id'] ); + + // Email confirmation setting enabled. + $props = [ + 'inputs' => [ + 'primary' => [ + 'block' => [ + 'wpforms-field-row-block', + 'wpforms-one-half', + 'wpforms-first', + ], + 'class' => [ + 'wpforms-field-email-primary', + ], + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Email', 'wpforms-lite' ), + ], + ], + 'secondary' => [ + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][secondary]", + 'value' => '', + 'placeholder' => ! empty( $field['confirmation_placeholder'] ) ? $field['confirmation_placeholder'] : '', + 'spellcheck' => 'false', + ], + 'block' => [ + 'wpforms-field-row-block', + 'wpforms-one-half', + ], + 'class' => [ + 'wpforms-field-email-secondary', + ], + 'data' => [ + 'rule-confirm' => '#' . $properties['inputs']['primary']['id'], + ], + 'id' => "wpforms-{$form_id}-field_{$field_id}-secondary", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Confirm Email', 'wpforms-lite' ), + ], + 'value' => '', + ], + ], + ]; + + $properties = array_merge_recursive( $properties, $props ); + + // Input Primary: adjust name. + $properties['inputs']['primary']['attr']['name'] = "wpforms[fields][{$field_id}][primary]"; + + // Input Primary: remove size and error classes. + $properties['inputs']['primary']['class'] = array_diff( + $properties['inputs']['primary']['class'], + [ + 'wpforms-field-' . sanitize_html_class( $field['size'] ), + 'wpforms-error', + ] + ); + + // Input Primary: add error class if needed. + if ( ! empty( $properties['error']['value']['primary'] ) ) { + $properties['inputs']['primary']['class'][] = 'wpforms-error'; + } + + // Input Secondary: add error class if needed. + if ( ! empty( $properties['error']['value']['secondary'] ) ) { + $properties['inputs']['secondary']['class'][] = 'wpforms-error'; + } + + // Input Secondary: add required class if needed. + if ( ! empty( $field['required'] ) ) { + $properties['inputs']['secondary']['class'][] = 'wpforms-field-required'; + } + + // Remove reference to an input element to prevent duplication. + if ( empty( $field['sublabel_hide'] ) ) { + unset( $properties['label']['attr']['for'] ); + } + + return $properties; + } + + /** + * Define the filter field properties. + * + * @since 1.6.3 + * + * @param array $properties List field properties. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function filter_type_field_properties( $properties, $field, $form_data ) { + + if ( ! empty( $field['filter_type'] ) && ! empty( $field[ $field['filter_type'] ] ) ) { + $properties['inputs']['primary']['data']['rule-restricted-email'] = true; + } + + return $properties; + } + + /** + * Field should default to being required. + * + * @since 1.0.9 + * @param bool $required + * @param array $field + * @return bool + */ + public function default_required( $required, $field ) { + + if ( 'email' === $field['type'] ) { + return true; + } + return $required; + } + + /** + * Add class to field options wrapper to indicate if field confirmation is + * enabled. + * + * @since 1.3.0 + * + * @param string $class Class strings. + * @param array $field Current field. + * + * @return string + */ + public function field_option_class( $class, $field ) { + + if ( 'email' !== $field['type'] ) { + return $class; + } + + $class .= isset( $field['confirmation'] ) ? ' wpforms-confirm-enabled' : ' wpforms-confirm-disabled'; + if ( ! empty( $field['filter_type'] ) ) { + $class .= ' wpforms-filter-' . $field['filter_type']; + } + + return $class; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Confirmation toggle. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'confirmation', + 'value' => isset( $field['confirmation'] ) ? '1' : '0', + 'desc' => esc_html__( 'Enable Email Confirmation', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to ask users to provide an email address twice.', 'wpforms-lite' ), + ], + false + ); + + $args = [ + 'slug' => 'confirmation', + 'content' => $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Confirmation Placeholder. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'confirmation_placeholder', + 'value' => esc_html__( 'Confirmation Placeholder Text', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for the confirmation field placeholder.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'confirmation_placeholder', + 'value' => ! empty( $field['confirmation_placeholder'] ) ? esc_attr( $field['confirmation_placeholder'] ) : '', + ], + false + ); + + $args = [ + 'slug' => 'confirmation_placeholder', + 'content' => $lbl . $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Default value. + $this->field_option( 'default_value', $field ); + + $filter_type_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'filter_type', + 'value' => esc_html__( 'Allowlist / Denylist', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Restrict which email addresses are allowed. Be sure to separate each email address with a comma.', 'wpforms-lite' ), + ], + false + ); + + $filter_type_field = $this->field_element( + 'select', + $field, + [ + 'slug' => 'filter_type', + 'value' => ! empty( $field['filter_type'] ) ? esc_attr( $field['filter_type'] ) : '', + 'options' => [ + '' => esc_html__( 'None', 'wpforms-lite' ), + 'allowlist' => esc_html__( 'Allowlist', 'wpforms-lite' ), + 'denylist' => esc_html__( 'Denylist', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'filter_type', + 'content' => $filter_type_label . $filter_type_field, + ] + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'allowlist', + 'content' => $this->field_element( + 'textarea', + $field, + [ + 'slug' => 'allowlist', + 'value' => ! empty( $field['allowlist'] ) ? esc_attr( $this->decode_email_patterns_rules_list( $field['allowlist'] ) ) : '', + ], + false + ), + ] + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'denylist', + 'content' => $this->field_element( + 'textarea', + $field, + [ + 'slug' => 'denylist', + 'value' => ! empty( $field['denylist'] ) ? esc_attr( $this->decode_email_patterns_rules_list( $field['denylist'] ) ) : '', + ], + false + ), + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabels. + $this->field_option( 'sublabel_hide', $field ); + + // Disable email suggestions. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'disable_suggestions', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'disable_suggestions', + 'value' => isset( $field['disable_suggestions'] ) ? '1' : '0', + 'desc' => esc_html__( 'Disable Suggestions', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Prevent email suggestions for common typos. Enable this if you find the suggestions distracting.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * @param array $field + */ + public function field_preview( $field ) { + + // Define data. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $confirm_placeholder = ! empty( $field['confirmation_placeholder'] ) ? $field['confirmation_placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + $confirm = ! empty( $field['confirmation'] ) ? 'enabled' : 'disabled'; + + // Label. + $this->field_preview_option( 'label', $field ); + ?> + +
              + +
              + + +
              + +
              + + +
              + +
              + + field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.0.0 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $primary = $field['properties']['inputs']['primary']; + $secondary = ! empty( $field['properties']['inputs']['secondary'] ) ? $field['properties']['inputs']['secondary'] : []; + + $is_confirmation_enabled = ! empty( $field['confirmation'] ); + $is_suggestions_disabled = ! empty( $field['disable_suggestions'] ); + + // Set data attributes if suggestions are disabled. + if ( $is_suggestions_disabled ) { + $primary['data']['disable-suggestions'] = true; + + if ( ! empty( $secondary ) ) { + $secondary['data']['disable-suggestions'] = true; + } + } + + // Standard email field. + if ( ! $is_confirmation_enabled ) { + + // Primary field. + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ), + esc_attr( $primary['required'] ) + ); + $this->field_display_error( 'primary', $field ); + + // Confirmation email field configuration. + } else { + + // Row wrapper. + echo '
              '; + + // Primary field. + echo '
              '; + $this->field_display_sublabel( 'primary', 'before', $field ); + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ), + esc_attr( $primary['required'] ) + ); + $this->field_display_sublabel( 'primary', 'after', $field ); + $this->field_display_error( 'primary', $field ); + echo '
              '; + + // Secondary field. + echo '
              '; + $this->field_display_sublabel( 'secondary', 'before', $field ); + printf( + '', + wpforms_html_attributes( $secondary['id'], $secondary['class'], $secondary['data'], $secondary['attr'] ), + esc_attr( $secondary['required'] ) + ); + $this->field_display_sublabel( 'secondary', 'after', $field ); + $this->field_display_error( 'secondary', $field ); + echo '
              '; + + echo '
              '; + + } + } + + /** + * Format and sanitize field. + * + * @since 1.3.0 + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + // Define data. + if ( is_array( $field_submit ) ) { + $value = ! empty( $field_submit['primary'] ) ? $field_submit['primary'] : ''; + } else { + $value = ! empty( $field_submit ) ? $field_submit : ''; + } + + if ( $value && ! wpforms_is_email( $value ) ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'The provided email is not valid.', 'wpforms-lite' ); + + return; + } + + $name = ! empty( $form_data['fields'][ $field_id ] ['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $name ), + 'value' => sanitize_text_field( $this->decode_punycode( $value ) ), + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Validate field on form submit. + * + * @since 1.0.0 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $form_id = (int) $form_data['id']; + + parent::validate( $field_id, $field_submit, $form_data ); + + if ( ! is_array( $field_submit ) && ! empty( $field_submit ) ) { + $field_submit = [ + 'primary' => $field_submit, + ]; + } + + if ( empty( $field_submit['primary'] ) ) { + return; + } + + $process = wpforms()->obj( 'process' ); + + if ( ! $process ) { + return; + } + + $field_submit['primary'] = $this->email_encode_punycode( $field_submit['primary'] ); + + if ( ! $field_submit['primary'] ) { + $process->errors[ $form_id ][ $field_id ] = esc_html__( 'The provided email is not valid.', 'wpforms-lite' ); + + return; + } + + // Validate email field with confirmation. + if ( isset( $form_data['fields'][ $field_id ]['confirmation'] ) && ! empty( $field_submit['secondary'] ) ) { + $field_submit['secondary'] = $this->email_encode_punycode( $field_submit['secondary'] ); + + if ( ! $field_submit['secondary'] ) { + $process->errors[ $form_id ][ $field_id ] = esc_html__( 'The provided email is not valid.', 'wpforms-lite' ); + + return; + } + + if ( $field_submit['primary'] !== $field_submit['secondary'] ) { + $process->errors[ $form_id ][ $field_id ] = esc_html__( 'The provided emails do not match.', 'wpforms-lite' ); + + return; + } + + if ( ! $this->is_restricted_email( $field_submit['primary'], $form_data['fields'][ $field_id ] ) ) { + $process->errors[ $form_id ][ $field_id ] = wpforms_setting( 'validation-email-restricted', esc_html__( 'This email address is not allowed.', 'wpforms-lite' ) ); + + return; + } + } + + // Validate regular email field, without confirmation. + if ( ! isset( $form_data['fields'][ $field_id ]['confirmation'] ) && ! $this->is_restricted_email( $field_submit['primary'], $form_data['fields'][ $field_id ] ) ) { + $process->errors[ $form_id ][ $field_id ] = wpforms_setting( 'validation-email-restricted', esc_html__( 'This email address is not allowed.', 'wpforms-lite' ) ); + } + } + + /** + * Ajax handler to detect restricted email. + * + * @since 1.6.3 + * @since 1.9.1 Added repeater field compatibility. + */ + public function ajax_check_restricted_email() { + + $form_id = filter_input( INPUT_POST, 'form_id', FILTER_SANITIZE_NUMBER_INT ); + $field_id = absint( filter_input( INPUT_POST, 'field_id', FILTER_SANITIZE_FULL_SPECIAL_CHARS ) ); + $email = filter_input( INPUT_POST, 'email', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_FLAG_NO_ENCODE_QUOTES ); + + // The valid email can contain such characters: !#$%&'*+/=?^_`{|}~-. + // After filtering the email, we need to decode the `&`, otherwise the email with `&` couldn't be properly recognized. + $email = str_replace( '&', '&', $email ); + + if ( ! $form_id || ! $field_id || ! $email ) { + wp_send_json_error(); + } + + $form_data = wpforms()->obj( 'form' )->get( + $form_id, + [ 'content_only' => true ] + ); + + if ( empty( $form_data['fields'][ $field_id ] ) ) { + wp_send_json_error(); + } + + wp_send_json_success( + $this->is_restricted_email( $email, $form_data['fields'][ $field_id ] ) + ); + } + + /** + * Sanitize restricted rules. + * + * @since 1.6.3 + */ + public function ajax_sanitize_restricted_rules() { + + $this->ajax_sanitize( self::RULES ); + } + + /** + * Sanitize default email. + * + * @since 1.7.5 + */ + public function ajax_sanitize_default_email() { + + $this->ajax_sanitize( self::EMAIL ); + } + + /** + * Sanitize email options input. + * + * @since 1.7.5 + * + * @param string $type Type of sanitization. + * + * @return void + */ + private function ajax_sanitize( $type ) { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + $content = filter_input( INPUT_GET, 'content', FILTER_SANITIZE_FULL_SPECIAL_CHARS ); + $content = wpforms_json_decode( $content, true ); + + if ( ! $content ) { + wp_send_json_error(); + } + + $this->restricted_rules = []; + + switch ( $type ) { + case self::RULES: + $current = $content['current']; + $other = $current === 'allow' ? 'deny' : 'allow'; + $current_rules = $this->sanitize_restricted_rules( $content[ $current ] ); + $other_rules = $this->sanitize_restricted_rules( $content[ $other ] ); + $intersect_rules = array_intersect( $current_rules, $other_rules ); + $current_rules = array_diff( $current_rules, $intersect_rules ); + $content = [ + 'currentField' => $this->decode_email_patterns_rules_array( $current_rules ), + 'intersect' => str_replace( + PHP_EOL, + '
              ', + $this->decode_email_patterns_rules_array( $intersect_rules ) + ), + ]; + break; + + case self::EMAIL: + list( $local, $domain ) = $this->parse_email_pattern( $content ); + + $local = $this->sanitize_local_pattern( $local ); + $domain = $this->sanitize_domain_pattern( $domain ); + + $content = (string) wpforms_is_email( $this->get_pattern( $local, $domain ) ); + break; + + default: + break; + } + + if ( ! empty( $this->restricted_rules ) ) { + $content['restricted'] = count( $this->restricted_rules ); + } + + wp_send_json_success( $content ); + } + + /** + * Verify that an email pattern is valid. + * + * @since 1.7.5 + * + * @param string $pattern Email pattern. + * + * @return string|false + */ + private function is_email_pattern( $pattern ) { + + if ( ! $pattern ) { + // Empty pattern is not valid. + return false; + } + + list( $local, $domain ) = $this->parse_email_pattern( $pattern ); + + $local = $this->sanitize_local_pattern( $local ); + $domain = $this->sanitize_domain_pattern( $domain ); + + if ( mb_strpos( $pattern, '@' ) === false ) { + return $this->is_email_pattern_without_at( $local ); + } + + $domain_check = str_replace( '*', '', $domain ); + $domain_check = $this->maybe_adjust_domain( $domain_check ); + $pattern_check = $this->get_pattern( $local, $domain_check ); + + if ( wpforms_is_email( $pattern_check ) ) { + return $this->get_pattern( $local, $domain ); + } + + return false; + } + + /** + * Sanitize the local or domain part of the email pattern. + * + * @since 1.7.5 + * + * @param string $part Local or domain part of the email pattern. + * @param string $pattern Sanitization pattern. + * + * @return string + */ + private function sanitize_part_pattern( $part, $pattern ) { + + /** + * Smart tag placeholder. Should contain allowed chars only. + * See patterns in sanitize_local_pattern(), sanitize_domain_pattern(). + */ + $smart_tag_placeholder = '-wpforms-smart-tag-'; + + $smart_tag_pattern = '/{.+?}/'; + $smart_tags = []; + + if ( preg_match_all( $smart_tag_pattern, $part, $m ) ) { + $smart_tags = $m[0]; + + foreach ( $smart_tags as $smart_tag ) { + $part = preg_replace( + '/' . preg_quote( $smart_tag, '/' ) . '/', + $smart_tag_placeholder, + $part, + 1 + ); + } + } + + // Sanitize part by pattern. + $part = preg_replace( $pattern, '', $part ); + + foreach ( $smart_tags as $smart_tag ) { + $part = preg_replace( + '/' . preg_quote( $smart_tag_placeholder, '/' ) . '/', + $smart_tag, + $part, + 1 + ); + } + + return $part; + } + + /** + * Sanitize the local part of the email pattern. + * + * @since 1.7.5 + * + * @param string $local Local part of the email pattern. + * + * @return string + */ + private function sanitize_local_pattern( $local ) { + + /** + * This regexp is from is_email() WP core function + * with added international characters and + * asterisk [*] for patterns. + */ + return $this->sanitize_part_pattern( $local, '/[^a-zA-Z0-9\x{0080}-\x{0FFF}!#$%&\'*+\/=?^_`{|}~.-]/u' ); + } + + /** + * Sanitize the domain part of the email pattern. + * + * @since 1.7.5 + * + * @param string $domain Domain part of the email pattern. + * + * @return string + */ + private function sanitize_domain_pattern( $domain ) { + + /** + * This regexp is from is_email() WP core function + * with added international characters, + * dot [.] for the whole domain part and + * asterisk [*] for patterns. + */ + return $this->sanitize_part_pattern( $domain, '/[^a-z0-9\x{0080}-\x{FFFF}-.*]/u' ); + } + + /** + * Maybe replace empty subdomains with templates. + * + * @since 1.7.5 + * + * @param string $domain Email domain. + * + * @return string + */ + private function maybe_adjust_domain( $domain ) { + + $domain_subs = array_pad( explode( '.', $domain ), 2, '' ); + $domain_template_subs = [ 'a', 'me' ]; + + foreach ( $domain_template_subs as $index => $domain_template_sub ) { + $domain_subs[ $index ] = trim( $domain_subs[ $index ] ); + + if ( ! $domain_subs[ $index ] ) { + $domain_subs[ $index ] = $domain_template_sub; + } + } + + return implode( '.', $domain_subs ); + } + + /** + * Get pattern from local and domain parts. + * + * @since 1.7.5 + * + * @param string $local Local part. + * @param string $domain Domain part. + * + * @return string + */ + private function get_pattern( $local, $domain = '' ) { + + return implode( '@', array_filter( [ $local, $domain ] ) ); + } + + /** + * Sanitize restricted rules. + * + * @since 1.6.3 + * + * @param string $content Content. + * + * @return array + */ + private function sanitize_restricted_rules( $content ) { + + $patterns = array_filter( preg_split( '/\r\n|\r|\n|,/', $content ) ); + + foreach ( $patterns as $key => $pattern ) { + $pattern = mb_strtolower( trim( $pattern ) ); + $email_pattern = $this->is_email_pattern( $pattern ); + + if ( ! $email_pattern ) { + unset( $patterns[ $key ] ); + $this->restricted_rules[] = $pattern; + + continue; + } + + $patterns[ $key ] = $this->encode_punycode( $email_pattern ); + } + + return array_unique( $patterns ); + } + + /** + * The check is a restricted email. + * + * @since 1.6.3 + * + * @param string $email Email string. + * @param array $field Field data. + * + * @return bool + */ + private function is_restricted_email( $email, $field ) { + + if ( empty( $field['filter_type'] ) || empty( $field[ $field['filter_type'] ] ) ) { + return true; + } + + $email = mb_strtolower( trim( $email ) ); + + if ( ! wpforms_is_email( $email ) ) { + return false; + } + + // Chrome and Edge encode to punycode, but domain part only. + // Firefox sends intl email as is. + if ( $this->is_encoded_punycode( $email ) ) { + $email = $this->decode_punycode( $email ); + } + + $patterns = $this->sanitize_restricted_rules( $field[ $field['filter_type'] ] ); + $patterns = array_map( [ $this, 'decode_punycode' ], $patterns ); + $patterns = array_map( [ $this, 'sanitize_email_pattern' ], $patterns ); + + $check = $field['filter_type'] === 'allowlist'; + + foreach ( $patterns as $pattern ) { + if ( preg_match( '/' . $pattern . '/', $email ) ) { + return $check; + } + } + + return ! $check; + } + + /** + * Sanitize from email patter a REGEX pattern. + * + * @since 1.6.3 + * + * @param string $pattern Pattern line. + * + * @return string + */ + private function sanitize_email_pattern( $pattern ) { + + $chars = [ '.', '*', '/' ]; + $replace = [ '\.', '.*', '\/' ]; + + // Create regex pattern from a string. + return '^' . str_replace( $chars, $replace, $pattern ) . '$'; + } + + /** + * Sanitize allow/deny list and default value before saving. + * + * @since 1.6.8 + * + * @param array $form Form array which is usable with `wp_update_post()`. + * @param array $data Data retrieved from $_POST and processed. + * @param array $args Empty by default, may contain custom data not intended to be saved, but used for processing. + * + * @return array + */ + public function save_form_args( $form, $data, $args ) { + + // Get a filtered form content. + $form_data = json_decode( stripslashes( $form['post_content'] ), true ); + + if ( ! empty( $form_data['fields'] ) ) { + foreach ( (array) $form_data['fields'] as $key => $field ) { + if ( empty( $field['type'] ) || $field['type'] !== 'email' ) { + continue; + } + + $form_data['fields'][ $key ]['allowlist'] = ! empty( $field['allowlist'] ) ? implode( PHP_EOL, $this->sanitize_restricted_rules( $field['allowlist'] ) ) : ''; + $form_data['fields'][ $key ]['denylist'] = ! empty( $field['denylist'] ) ? implode( PHP_EOL, $this->sanitize_restricted_rules( $field['denylist'] ) ) : ''; + $form_data['fields'][ $key ]['default_value'] = isset( $field['default_value'] ) ? wpforms_is_email( $field['default_value'] ) : ''; + } + } + + $form['post_content'] = wpforms_encode( $form_data ); + + return $form; + } + + /** + * Add a custom JS i18n strings for the builder. + * + * @since 1.7.5 + * + * @param array $strings List of strings. + * @param array $form Current form. + * + * @return array + */ + public function add_builder_strings( $strings, $form ) { + + $email_strings = [ + 'allow_deny_lists_intersect' => esc_html__( + 'We’ve detected the same text in your allowlist and denylist. To prevent a conflict, we’ve removed the following text from the list you’re currently viewing:', + 'wpforms-lite' + ), + 'restricted_rules' => esc_html__( + 'At least one of the emails in your list contained an error and has been removed.', + 'wpforms-lite' + ), + 'restricted_default_email' => esc_html__( + 'The provided email is not valid.', + 'wpforms-lite' + ), + ]; + + return array_merge( $strings, $email_strings ); + } + + /** + * Get Punycode lib class. + * + * @since 1.6.9 + * + * @return WPForms\Vendor\TrueBV\Punycode + */ + private function get_punycode() { + + static $punycode; + + if ( ! $punycode ) { + $punycode = new Punycode(); + } + + return $punycode; + } + + /** + * Get email patterns parts splitted by @ and *. + * + * @since 1.6.9 + * + * @param string $email_pattern Email pattern. + * + * @return array + */ + private function get_email_pattern_parts( $email_pattern ) { + + $parts = preg_split( '/[*@.]/', $email_pattern, - 1, PREG_SPLIT_OFFSET_CAPTURE ); + + if ( empty( $parts ) ) { + return []; + } + + foreach ( $parts as $key => $part ) { + + // Replace split symbol position to the split symbol. + $part[1] = $part[1] > 0 ? $email_pattern[ $part[1] - 1 ] : ''; + + $parts[ $key ] = $part; + } + + return $parts; + } + + /** + * Glue email patterns parts. + * + * @since 1.6.9 + * + * @param array $parts Email pattern parts. + * + * @return string + */ + private function glue_email_pattern_parts( $parts ) { + + $email_pattern = ''; + + foreach ( $parts as $part ) { + $email_pattern .= $part[1] . $part[0]; + } + + return $email_pattern; + } + + /** + * Decode email patterns rules array. + * + * @since 1.7.5 + * + * @param array $rules_arr Patterns rules array. + * + * @return string + */ + private function decode_email_patterns_rules_array( $rules_arr ) { + + return implode( + PHP_EOL, + array_filter( + array_map( + function ( $rule ) { + $rule = mb_strtolower( trim( $rule ) ); + + return $this->is_email_pattern( $rule ) ? $this->decode_punycode( $rule ) : ''; + }, + $rules_arr + ) + ) + ); + } + + /** + * Decode email patterns rules list. + * + * @since 1.6.9 + * + * @param string $rules Patterns rules list. + * + * @return string + */ + private function decode_email_patterns_rules_list( $rules ) { + + return $this->decode_email_patterns_rules_array( preg_split( '/\r\n|\r|\n|,/', $rules ) ); + } + + /** + * Encode email. + * + * @since 1.7.3 + * + * @param string $email Email. + * + * @return string + */ + private function email_encode_punycode( $email ) { + + if ( ! wpforms_is_email( $email ) ) { + return ''; + } + + return $this->encode_punycode( $email ); + } + + /** + * Is email encoded. + * + * @since 1.7.5 + * + * @param string $email Email. + * + * @return bool + */ + private function is_encoded_punycode( $email ) { + + list( $local, $domain ) = $this->parse_email_pattern( $email ); + + // Check xn-- prefix in the beginning of domain part only. + return strpos( $domain, 'xn--' ) === 0; + } + + /** + * Encode email pattern. + * + * @since 1.6.9 + * + * @param string $email_pattern Email pattern. + * + * @return string + */ + private function encode_punycode( $email_pattern ) { + + try { + $encoded = $this->transform_punycode( $email_pattern, [ $this->get_punycode(), 'encode' ] ); + } catch ( Exception $e ) { + return ''; + } + + return $encoded; + } + + /** + * Decode email pattern. + * + * @since 1.6.9 + * + * @param string $email_pattern Email pattern. + * + * @return string + */ + private function decode_punycode( $email_pattern ) { + + return $this->transform_punycode( $email_pattern, [ $this->get_punycode(), 'decode' ] ); + } + + /** + * Transform email pattern. + * + * @since 1.6.9 + * + * @param string $email_pattern Email pattern. + * @param callable $callback Punycode callback. + * + * @return string + */ + private function transform_punycode( $email_pattern, callable $callback ) { + + $parts = $this->get_email_pattern_parts( $email_pattern ); + + foreach ( $parts as $key => $part ) { + if ( ! $part[0] ) { + continue; + } + + $parts[ $key ][0] = call_user_func( $callback, $part[0] ); + } + + return $this->glue_email_pattern_parts( $parts ); + } + + /** + * Parse email pattern and return local and domain parts (maybe empty). + * + * @since 1.7.5 + * + * @param string $pattern Email pattern. + * + * @return array + */ + private function parse_email_pattern( $pattern ) { + + return array_pad( explode( '@', $pattern ), 2, '' ); + } + + /** + * Verify that an email pattern without @ is valid. + * + * @since 1.7.5 + * + * @param string $pattern Local part. + * + * @return false|string + */ + private function is_email_pattern_without_at( $pattern ) { + + if ( mb_strpos( $pattern, '*' ) === false ) { + return false; + } + + /** + * If pattern does not have @ separator, we should check the pattern twice, assuming: + * case 1 - pattern is a local pattern, + * case 2 - pattern is a domain pattern. + */ + + // Check case 1. + $pattern_check = $this->get_pattern( $pattern, 'a.me' ); + + if ( wpforms_is_email( $pattern_check ) ) { + return $this->get_pattern( $pattern ); + } + + // Check case 2. + // Asterisk in the email is allowed in local part, but not in the domain part. + $pattern_check = $this->get_pattern( 'a', str_replace( '*', '', $pattern ) ); + + if ( wpforms_is_email( $pattern_check ) ) { + return $this->get_pattern( $pattern ); + } + + return false; + } + + /** + * Determine if the field requires fieldset instead of the regular field label. + * + * @since 1.8.1 + * + * @param bool $requires_fieldset True if requires fieldset. + * @param array $field Field data. + * + * @return bool + * + * @noinspection PhpUnusedParameterInspection + */ + public function is_field_requires_fieldset( $requires_fieldset, $field ) { + + return ! empty( $field['confirmation'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-gdpr-checkbox.php b/wp-content/plugins/wpforms-lite/includes/fields/class-gdpr-checkbox.php new file mode 100644 index 0000000..aa1a85f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-gdpr-checkbox.php @@ -0,0 +1,329 @@ +name = esc_html__( 'GDPR Agreement', 'wpforms-lite' ); + $this->type = 'gdpr-checkbox'; + $this->icon = 'fa-check-square-o'; + $this->order = 500; + $this->allow_read_only = false; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'I consent to having this website store my submitted information so they can respond to my inquiry.', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + // Set field to default to the required. + add_filter( 'wpforms_field_new_required', [ $this, 'field_default_required' ], 10, 2 ); + + // Define additional field properties. + add_filter( 'wpforms_field_properties_gdpr-checkbox', [ $this, 'field_properties' ], 5, 3 ); + } + + /** + * Field should default to being required. + * + * @since 1.4.6 + * + * @param bool $required Required status, true is required. + * @param array $field Field settings. + * + * @return bool + */ + public function field_default_required( $required, $field ) { + + if ( $this->type === $field['type'] ) { + return true; + } + + return $required; + } + + /** + * Define additional field properties. + * + * @since 1.4.6 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + $choices = ! empty( $field['choices'] ) ? $field['choices'] : []; + + // Remove primary input, unset for attribute for label. + unset( $properties['inputs']['primary'], $properties['label']['attr']['for'] ); + + // Set input container (ul) properties. + $properties['input_container'] = [ + 'class' => [], + 'data' => [], + 'attr' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + ]; + + // Set input properties. + foreach ( $choices as $key => $choice ) { + + $properties['inputs'][ $key ] = [ + 'container' => [ + 'attr' => [], + 'class' => [ "choice-{$key}" ], + 'data' => [], + 'id' => '', + ], + 'label' => [ + 'attr' => [ + 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + ], + 'class' => [ 'wpforms-field-label-inline' ], + 'data' => [], + 'id' => '', + 'text' => $choice['label'], + ], + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][]", + 'value' => $choice['label'], + ], + 'class' => [], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + 'image' => '', + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'default' => '', + ]; + } + + // Required class for pagebreak validation. + if ( ! empty( $field['required'] ) ) { + $properties['input_container']['class'][] = 'wpforms-field-required'; + } + + return $properties; + } + + /** + * Whether the current field can be populated dynamically. + * + * @since 1.9.4 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_dynamic_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Field options panel inside the builder. + * + * @since 1.4.6 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + + // Field is always required. + $this->field_element( + 'text', + $field, + [ + 'type' => 'hidden', + 'slug' => 'required', + 'value' => '1', + ] + ); + + // -------------------------------------------------------------------// + // Basic field options + // -------------------------------------------------------------------// + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Choices. + $this->field_option( + 'choices', + $field, + [ + 'label' => esc_html__( 'Agreement', 'wpforms-lite' ), + ] + ); + + // Description. + $this->field_option( 'description', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + // -------------------------------------------------------------------// + // Advanced field options + // -------------------------------------------------------------------// + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.4.6 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Choices. + $this->field_preview_option( 'choices', $field ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.4.6 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $container = $field['properties']['input_container']; + $choices = $field['properties']['inputs']; + + printf( + '
                ', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) + ); + + foreach ( $choices as $choice ) { + $required = ''; + + if ( ! empty( $choice['required'] ) && ! empty( $field['label_hide'] ) ) { + $required = wpforms_get_field_required_label(); + } + + printf( + '
              • ', + wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] ) + ); + // Normal display. + printf( + '', + wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ), + esc_attr( $choice['required'] ), + checked( '1', $choice['default'], false ) + ); + + printf( + '', + wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ), + wp_kses_post( $choice['label']['text'] ), + wp_kses_post( $required ) + ); + + echo '
              • '; + } + + echo '
              '; + } + + /** + * Format and sanitize field. + * + * @since 1.4.6 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted form data. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => ! empty( $form_data['fields'][ $field_id ]['label'] ) ? sanitize_text_field( $form_data['fields'][ $field_id ]['label'] ) : '', + 'value' => $form_data['fields'][ $field_id ]['choices'][1]['label'], + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } +} + +new WPForms_Field_GDPR_Checkbox(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-internal-information.php b/wp-content/plugins/wpforms-lite/includes/fields/class-internal-information.php new file mode 100644 index 0000000..72c30b1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-internal-information.php @@ -0,0 +1,934 @@ +name = $this->is_editable() ? esc_html__( 'Internal Information', 'wpforms-lite' ) : esc_html__( 'This field is not editable', 'wpforms-lite' ); + $this->type = 'internal-information'; + $this->icon = 'fa fa-sticky-note-o'; + $this->order = 550; + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.7.6 + * + * @noinspection PhpUnnecessaryCurlyVarSyntaxInspection + */ + private function hooks() { + + add_filter( 'wpforms_entries_table_fields_disallow', [ $this, 'hide_column_in_entries_table' ], 10, 2 ); + add_filter( 'wpforms_field_preview_class', [ $this, 'add_css_class_for_field_wrapper' ], 10, 2 ); + add_filter( 'wpforms_field_new_class', [ $this, 'add_css_class_for_field_wrapper' ], 10, 2 ); + add_filter( "wpforms_pro_admin_entries_edit_is_field_displayable_{$this->type}", '__return_false' ); + add_filter( 'wpforms_builder_strings', [ $this, 'builder_strings' ], 10, 2 ); + add_filter( 'wpforms_frontend_form_data', [ $this, 'remove_internal_fields_on_front_end' ] ); + add_filter( 'wpforms_pro_fields_entry_preview_get_ignored_fields', [ $this, 'ignore_entry_preview' ] ); + add_filter( 'wpforms_process_before_form_data', [ $this, 'process_before_form_data' ], 10, 2 ); + add_filter( 'wpforms_field_preview_display_duplicate_button', [ $this, 'display_duplicate_button' ], 10, 3 ); + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_enqueues' ] ); + add_action( 'wp_ajax_wpforms_builder_save_internal_information_checkbox', [ $this, 'save_internal_information_checkbox' ] ); + } + + /** + * Whether the current field can be populated dynamically. + * + * @since 1.7.6 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_dynamic_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Whether the current field can be populated using a fallback. + * + * @since 1.7.6 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_fallback_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Define field options to display in the left panel. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + */ + public function field_options( $field ) { + + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + $this->heading_option( $field ); + $this->field_option( 'description', $field ); + $this->expanded_description_option( $field ); + $this->cta_label_option( $field ); + $this->cta_link_option( $field ); + + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + $this->field_code( $field ); + } + + /** + * Define field preview on the right side on builder. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + */ + public function field_preview( $field ) { + + $class = wpforms_sanitize_classes( $field['class'] ?? '' ); + + printf( + '
              ', + esc_attr( $class ) + ); + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'fields/internal-information/icon-lightbulb' ); + + echo '
              '; + + $this->render_preview( 'heading', $field ); + $this->render_preview( 'description', $field ); + $this->render_preview( 'expanded-description', $field ); + $this->render_preview( 'addon', $field ); + + if ( $this->is_button_displayable( $field ) ) { + echo '
              '; + echo $this->render_custom_preview( 'cta-button', $field ); + echo '
              '; + } + + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + } + + /** + * Checks if the button is displayable. + * + * @since 1.7.6 + * + * @param array $field Field data. + * + * @return bool + */ + private function is_button_displayable( $field ) { + + return ! empty( $field['expanded-description'] ) || + ( ! empty( $field['cta-label'] ) && ! empty( $field['cta-link'] ) ) || + $this->is_editable(); + } + + /** + * Stub to make the field not visible in the front-end. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + * @param array $deprecated Field attributes. + * @param array $form_data Form data. + */ + public function field_display( $field, $deprecated, $form_data ) { + } + + /** + * Heading option. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + */ + private function heading_option( $field ) { + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'heading', + 'value' => esc_html__( 'Heading', 'wpforms-lite' ), + 'tooltip' => esc_attr__( 'Enter text for the form field heading.', 'wpforms-lite' ), + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'label', + 'value' => ! empty( $field['label'] ) ? esc_attr( $field['label'] ) : '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'heading', + 'content' => $output, + ] + ); + } + + /** + * Expanded description option. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + */ + private function expanded_description_option( $field ) { + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'expanded-description', + 'value' => esc_html__( 'Expanded Content', 'wpforms-lite' ), + 'tooltip' => esc_attr__( 'Enter text for the form field expanded description.', 'wpforms-lite' ), + ], + false + ); + + $output .= $this->field_element( + 'textarea', + $field, + [ + 'slug' => 'expanded-description', + 'value' => ! empty( $field['expanded-description'] ) ? esc_html( $field['expanded-description'] ) : '', + ], + false + ); + + $output .= sprintf( + '

              %s

              ', + esc_html__( 'Adds an expandable content area below the description.', 'wpforms-lite' ) + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'expanded-description', + 'content' => $output, + ] + ); + } + + /** + * CTA label option. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + */ + private function cta_label_option( $field ) { + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'cta-label', + 'value' => esc_html__( 'CTA Label', 'wpforms-lite' ), + 'tooltip' => esc_attr__( 'Enter label for the form field call to action button. The label will be ignored if the field has extended description content: in that case button will be used to expand the description content.', 'wpforms-lite' ), + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'cta-label', + 'value' => ! empty( $field['cta-label'] ) ? esc_attr( $field['cta-label'] ) : esc_attr__( 'Learn More', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'cta-label', + 'content' => $output, + ] + ); + } + + /** + * CTA link option. + * + * @since 1.7.6 + * + * @param array $field Field data and settings. + */ + private function cta_link_option( $field ) { + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'cta-link', + 'value' => esc_html__( 'CTA Link', 'wpforms-lite' ), + 'tooltip' => esc_attr__( 'Enter the URL for the form field call to action button. URL will be ignored if the field has extended description content: in that case button will be used to expand the description content.', 'wpforms-lite' ), + ], + false + ); + + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'cta-link', + 'value' => ! empty( $field['cta-link'] ) ? esc_url( $field['cta-link'] ) : '', + ], + false + ); + + $output .= sprintf( + '

              %s

              ', + esc_html__( 'CTA is hidden if Expanded Content is used.', 'wpforms-lite' ) + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'cta-link', + 'content' => $output, + ] + ); + } + + /** + * Add hidden input with code identifier. + * + * @since 1.8.9 + * + * @param array $field Field data and settings. + */ + private function field_code( $field ) { + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'code', + 'content' => sprintf( + '', + $field['id'], + ! empty( $field['code'] ) ? esc_attr( $field['code'] ) : '' + ), + ] + ); + } + + /** + * Add a CSS class to hide field settings when the field is not editable. + * + * @since 1.7.6 + * + * @param string $option Field option to render. + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $do_echo Print or return the value. Print by default. + * + * @return string|null + */ + public function field_element( $option, $field, $args = [], $do_echo = true ) { + + if ( ! isset( $args['class'] ) ) { + $args['class'] = ''; + } + + if ( ! $this->is_editable() ) { + $args['class'] .= ' wpforms-hidden '; + } + + return parent::field_element( $option, $field, $args, $do_echo ); + } + + /** + * Render a custom option preview on the right side of the builder. + * + * @since 1.7.6 + * + * @param string $option Field option to render. + * @param array $field Field data and settings. + * @param array $args Field arguments. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + private function render_custom_preview( $option, $field, $args = [] ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( $args['class'] ) : ''; + $allowed_tags = $this->get_allowed_tags(); + + switch ( $option ) { + case 'heading': + $label = isset( $field['label'] ) && ! wpforms_is_empty_string( $field['label'] ) ? esc_html( $field['label'] ) : ''; + + if ( ! $label ) { + $class .= ' hidden '; + } + + return sprintf( + '', + esc_attr( $class ), + esc_html( $label ) + ); + + case 'description': // phpcs:ignore WPForms.Formatting.Switch.AddEmptyLineBefore + $description = ! empty( $field['description'] ) ? wp_kses( $field['description'], $allowed_tags ) : ''; + $description = wpautop( $this->replace_checkboxes( $description, $field ) ); + $description = $this->add_link_attributes( $description ); + + return sprintf( '
              %s
              ', $class, $description ); + + case 'expanded-description': // phpcs:ignore WPForms.Formatting.Switch.AddEmptyLineBefore + $description = isset( $field['expanded-description'] ) && ! wpforms_is_empty_string( $field['expanded-description'] ) ? wp_kses( $field['expanded-description'], $allowed_tags ) : ''; + $description = wpautop( $this->replace_checkboxes( $description, $field ) ); + $description = $this->add_link_attributes( $description ); + + return sprintf( '
              %s
              ', esc_attr( $class ), wp_kses( $description, $allowed_tags ) ); + + case 'cta-button': // phpcs:ignore WPForms.Formatting.Switch.AddEmptyLineBefore + $label = ! empty( $field['cta-label'] ) && empty( $field['expanded-description'] ) ? esc_attr( $field['cta-label'] ) : esc_attr__( 'Learn More', 'wpforms-lite' ); + + if ( ! empty( $field['expanded-description'] ) ) { + return sprintf( + '', + esc_attr( $class ), + esc_html( $label ), + wpforms_render( 'fields/internal-information/icon-not-expanded' ), + wpforms_render( 'fields/internal-information/icon-expanded' ) + ); + } + + if ( ! empty( $field['cta-link'] ) ) { + return sprintf( '', esc_attr( $class ), esc_url( $this->add_url_utm( $field ) ), esc_html( $label ) ); + } + + return sprintf( '', esc_attr( $class ) ); + + case 'addon': + if ( empty( $field['addon'] ) ) { + return ''; + } + + return sprintf( '', esc_attr( $field['id'] ), esc_attr( $field['addon'] ) ); + } + + return ''; + } + + /** + * Display the field button in the left panel only if the field is editable. + * + * @since 1.7.6 + * + * @param array $fields All fields to display in the left panel. + * + * @return array + */ + public function field_button( $fields ) { + + if ( $this->is_editable() ) { + return parent::field_button( $fields ); + } + + return $fields; + } + + /** + * When the form is going to be displayed on the front-end, remove internal information fields. + * + * @since 1.7.6 + * + * @param array $form_data Form data. + * + * @return array + */ + public function remove_internal_fields_on_front_end( $form_data ) { + + if ( empty( $form_data['fields'] ) ) { + return $form_data; + } + + foreach ( $form_data['fields'] as $id => $field ) { + if ( $field['type'] === $this->type ) { + unset( $form_data['fields'][ $id ] ); + } + } + + return $form_data; + } + + /** + * Add the internal information field to the list of ignored fields for entry preview. + * + * @since 1.9.1 + * + * @param array|mixed $ignored_fields Ignored fields. + * + * @return array + */ + public function ignore_entry_preview( $ignored_fields ): array { + + $ignored_fields = (array) $ignored_fields; + $ignored_fields[] = $this->type; + + return $ignored_fields; + } + + /** + * Remove field from form data before processing the form submit. + * + * @since 1.7.6 + * + * @param array $form_data Form data. + * @param array $entry Form submission raw data ($_POST). + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function process_before_form_data( $form_data, $entry ) { + + return $this->remove_internal_fields_on_front_end( $form_data ); + } + + /** + * Do not display the duplicate button. + * + * @since 1.7.6 + * + * @param bool $is_visible If true, the duplicate button will be displayed. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return bool + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function display_duplicate_button( $is_visible, $field, $form_data ) { + + if ( $this->is_internal_information_field( $field ) && ! $this->is_editable() ) { + return false; + } + + return $is_visible; + } + + /** + * Hide the column from the entry list table. + * + * @since 1.7.6 + * + * @param array|mixed $disallowed Table columns. + * + * @return array + */ + public function hide_column_in_entries_table( $disallowed ): array { + + $disallowed = (array) $disallowed; + $disallowed[] = $this->type; + + return $disallowed; + } + + /** + * Add a CSS class for the field parent div informing about mode (editable or not). + * + * @since 1.7.6 + * + * @param string $css CSS classes. + * @param array $field Field data and settings. + * + * @return string + */ + public function add_css_class_for_field_wrapper( $css, $field ) { + + if ( ! $this->is_internal_information_field( $field ) ) { + return $css; + } + + // If the Internal Information field is added by some add-ons, it will be hidden by default. + // Add styles to the addon assets to display the field. + // When the addon is disabled, the field is hidden. + if ( ! empty( $field['addon'] ) ) { + $css .= sprintf( ' wpforms-field-internal-information-%s-addon wpforms-hidden', $field['addon'] ); + } + + if ( $this->is_editable() ) { + $css .= ' internal-information-editable '; + + return $css; + } + + $css .= ' ui-sortable-disabled internal-information-not-editable internal-information-not-draggable '; + + return str_replace( 'ui-sortable-handle', '', $css ); + } + + /** + * Save the checkbox state to the post meta table. + * + * @since 1.7.6 + */ + public function save_internal_information_checkbox(): void { + + $form_id = isset( $_POST['formId'] ) ? absint( $_POST['formId'] ) : 0; + + // Run several checks: required items, security, permissions. + if ( + ! $form_id || + ! isset( $_POST['name'], $_POST['checked'] ) || + ! check_ajax_referer( 'wpforms-builder', 'nonce', false ) || + ! wpforms_current_user_can( 'edit_forms', $form_id ) + ) { + wp_send_json_error(); + } + + $checked = (int) $_POST['checked']; + $name = sanitize_text_field( wp_unslash( $_POST['name'] ) ); + $post_meta = get_post_meta( $form_id, self::CHECKBOX_META_KEY, true ); + $post_meta = ! empty( $post_meta ) ? (array) $post_meta : []; + + if ( $checked ) { + $post_meta[ $name ] = $checked; + } else { + unset( $post_meta[ $name ] ); + } + + update_post_meta( $form_id, self::CHECKBOX_META_KEY, $post_meta ); + + wp_send_json_success(); + } + + /** + * Localized strings for wpforms-internal-information-field JS script. + * + * @since 1.7.6 + * + * @param array $strings Localized strings. + * @param array $form The form element. + * + * @return array + * @noinspection PhpUnusedParameterInspection + */ + public function builder_strings( $strings, $form ) { + + $strings['iif_redirect_url_field_error'] = esc_html__( 'You should enter a valid absolute address to the CTA Link field or leave it empty.', 'wpforms-lite' ); + $strings['iif_dismiss'] = esc_html__( 'Dismiss', 'wpforms-lite' ); + $strings['iif_more'] = esc_html__( 'Learn More', 'wpforms-lite' ); + + return $strings; + } + + /** + * Enqueue wpforms-internal-information-field script. + * + * @since 1.7.6 + * + * @param string $view Current view. + * + * @noinspection PhpUnusedParameterInspection, PhpUnnecessaryCurlyVarSyntaxInspection + */ + public function builder_enqueues( $view ) { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-md5-hash', + WPFORMS_PLUGIN_URL . 'assets/lib/md5.min.js', + [ 'wpforms-builder' ], + '2.19.0', + false + ); + + wp_enqueue_script( + 'wpforms-internal-information-field', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/fields/internal-information{$min}.js", + [ 'wpforms-builder', 'wpforms-md5-hash', 'wpforms-builder-drag-fields' ], + WPFORMS_VERSION, + false + ); + } + + /** + * Checks if the user is allowed to edit the field's content. + * + * @since 1.7.6 + * + * @return bool + */ + private function is_editable() { + + /** + * Allow changing a mode. + * + * @since 1.7.6 + * + * @param bool $is_editable True if editable mode is allowed. Default: false. + */ + return (bool) apply_filters( 'wpforms_field_internal_information_is_editable', false ); + } + + /** + * Check if the field has type internal-information. + * + * @since 1.7.6 + * + * @param array $field Field data. + * + * @return bool + */ + private function is_internal_information_field( $field ) { + + return isset( $field['type'] ) && $field['type'] === $this->type; + } + + /** + * Render result of field_preview_option into custom div. + * + * If the field has no value, do not echo anything. + * + * @since 1.7.6 + * + * @param string $label Field label. + * @param array $field Field settings and data. + * @param array $args Field arguments. + */ + private function render_preview( $label, $field, $args = [] ) { + + $key = $label === 'heading' ? 'label' : $label; + + if ( empty( $field[ $key ] ) && ! $this->is_editable() ) { + return; + } + + $allowed_tags = $this->get_allowed_tags(); + + printf( + '
              %s
              ', + esc_attr( $label ), + wp_kses( $this->render_custom_preview( $label, $field, $args ), $allowed_tags ) + ); + } + + /** + * Replace `[] some text` with checkboxes. + * + * Additionally, generates the input name by hashing the line of text where the checkbox is. + * + * @since 1.7.6 + * + * @param string $description Expanded description. + * @param array $field Field data and settings. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ + private function replace_checkboxes( $description, array $field ) { + + if ( ! $this->form_id ) { + return $description; + } + + $lines = explode( PHP_EOL, $description ); + $replaced = []; + $post_meta = get_post_meta( $this->form_id, self::CHECKBOX_META_KEY, true ); + $post_meta = ! empty( $post_meta ) ? (array) $post_meta : []; + $field_id = $field['id'] ?? 0; + $needle = '[] '; + + foreach ( $lines as $line_number => $line ) { + $line = trim( $line ); + + if ( strpos( $line, $needle ) !== 0 ) { + $replaced[] = $line . PHP_EOL; + + continue; + } + + $field_name = sprintf( 'iif-%d-%s-%d', $field_id, md5( $line ), $line_number ); + $checked = (int) isset( $post_meta[ $field_name ] ); + $attributes = [ + 'name' => esc_attr( $field_name ), + 'value' => 1, + ]; + + if ( $this->is_editable() ) { + $attributes['disabled'] = 'disabled'; + $attributes['title'] = esc_html__( 'This field is disabled in the editor mode.', 'wpforms-lite' ); + } + + $html = sprintf( + '
              ', + wpforms_html_attributes( + '', + [ 'wpforms-field-internal-information-checkbox' ], + [], + $attributes + ), + ! $this->is_editable() ? checked( $checked, 1, false ) : '' + ); + + $line = substr_replace( $line, $html, 0, strlen( $needle ) ); + + $replaced[] = '
              ' . $line . '
              '; + } + + return implode( '', $replaced ); + } + + /** + * Return allowed tags specific to internal information field content. + * + * @since 1.7.6 + * + * @return array + */ + private function get_allowed_tags() { + + $allowed_tags = wpforms_builder_preview_get_allowed_tags(); + + $allowed_tags['input'] = [ + 'type' => [], + 'name' => [], + 'value' => [], + 'class' => [], + 'checked' => [], + 'disabled' => [], + 'title' => [], + ]; + + return $allowed_tags; + } + + /** + * Adds link parameters to all links in the provided content. + * + * @since 1.8.3 + * + * @param string $content The content to modify. + * + * @return string The modified content with UTM parameters added to links. + */ + private function add_link_attributes( $content ) { + + if ( empty( $content ) || ! class_exists( 'DOMDocument' ) ) { + return $content; + } + + $dom = new DOMDocument(); + $form_data = wpforms()->obj( 'form' )->get( $this->form_id, [ 'content_only' => true ] ); + $template_data = ! empty( $form_data['meta'] ) ? wpforms()->obj( 'builder_templates' )->get_template( $form_data['meta']['template'] ) : []; + $template_name = ! empty( $template_data ) ? $template_data['name'] : ''; + + $dom->loadHTML( htmlspecialchars_decode( htmlentities( $content ) ) ); + + $links = $dom->getElementsByTagName( 'a' ); + + foreach ( $links as $link ) { + $href = $link->getAttribute( 'href' ); + $text = $link->textContent; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + $modified_href = wpforms_utm_link( $href, 'Form Template Information Note', $template_name, $text ); + + $link->setAttribute( 'href', $modified_href ); + $link->setAttribute( 'target', '_blank' ); + $link->setAttribute( 'rel', 'noopener noreferrer' ); + } + + // Remove the wrapper elements. + $body = $dom->getElementsByTagName( 'body' )->item( 0 ); + $inner_html = ''; + + foreach ( $body->childNodes as $node ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + $inner_html .= $dom->saveHTML( $node ); + } + + return $inner_html; + } + + /** + * Add UTM parameters to the CTA button link. + * + * @since 1.7.6 + * + * @param array $field Field data. + * + * @return string + */ + private function add_url_utm( $field ) { + + if ( strpos( $field['cta-link'], 'https://wpforms.com' ) === 0 ) { + return wpforms_utm_link( $field['cta-link'], 'Template Documentation' ); + } + + return $field['cta-link']; + } +} + +new WPForms_Field_Internal_Information(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-name.php b/wp-content/plugins/wpforms-lite/includes/fields/class-name.php new file mode 100644 index 0000000..1bf0f77 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-name.php @@ -0,0 +1,681 @@ +name = esc_html__( 'Name', 'wpforms-lite' ); + $this->keywords = esc_html__( 'user, first, last', 'wpforms-lite' ); + $this->type = 'name'; + $this->icon = 'fa-user'; + $this->order = 150; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.1 + */ + private function hooks(): void { + + // Define additional field properties. + add_filter( 'wpforms_field_properties_name', [ $this, 'field_properties' ], 5, 3 ); + + // Set field to default required. + add_filter( 'wpforms_field_new_required', [ $this, 'default_required' ], 10, 2 ); + + // This field requires fieldset+legend instead of the field label. + add_filter( "wpforms_frontend_modern_is_field_requires_fieldset_{$this->type}", [ $this, 'is_field_requires_fieldset' ], PHP_INT_MAX, 2 ); + } + + /** + * Define additional field properties. + * + * @since 1.3.7 + * + * @param array|mixed $properties Field properties. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ): array { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded + + $properties = (array) $properties; + + $format = ! empty( $field['format'] ) ? esc_attr( $field['format'] ) : 'first-last'; + + // Simple format. + if ( $format === 'simple' ) { + $properties['inputs']['primary']['attr']['placeholder'] = ! empty( $field['simple_placeholder'] ) + ? $field['simple_placeholder'] : + ''; + $properties['inputs']['primary']['attr']['value'] = ! empty( $field['simple_default'] ) + ? wpforms_process_smart_tags( $field['simple_default'], $form_data, [], '', 'field-properties' ) + : ''; + + return $properties; + } + + // Expanded formats. + // Remove primary for expanded formats since we have first, middle, last. + unset( $properties['inputs']['primary'] ); + + // Remove reference to an input element to prevent duplication. + if ( empty( $field['sublabel_hide'] ) ) { + unset( $properties['label']['attr']['for'] ); + } + + $form_id = absint( $form_data['id'] ); + $field_id = wpforms_validate_field_id( $field['id'] ); + + $props = [ + 'inputs' => [ + 'first' => [ + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][first]", + 'value' => ! empty( $field['first_default'] ) + ? wpforms_process_smart_tags( $field['first_default'], $form_data, [], '', 'field-properties' ) + : '', + 'placeholder' => ! empty( $field['first_placeholder'] ) ? $field['first_placeholder'] : '', + ], + 'block' => [ + 'wpforms-field-row-block', + 'wpforms-first', + ], + 'class' => [ + 'wpforms-field-name-first', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'First', 'wpforms-lite' ), + ], + ], + 'middle' => [ + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][middle]", + 'value' => ! empty( $field['middle_default'] ) + ? wpforms_process_smart_tags( $field['middle_default'], $form_data, [], '', 'field-properties' ) + : '', + 'placeholder' => ! empty( $field['middle_placeholder'] ) ? $field['middle_placeholder'] : '', + ], + 'block' => [ + 'wpforms-field-row-block', + 'wpforms-one-fifth', + ], + 'class' => [ + 'wpforms-field-name-middle', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}-middle", + 'required' => '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Middle', 'wpforms-lite' ), + ], + ], + 'last' => [ + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][last]", + 'value' => ! empty( $field['last_default'] ) + ? wpforms_process_smart_tags( $field['last_default'], $form_data, [], '', 'field-properties' ) + : '', + 'placeholder' => ! empty( $field['last_placeholder'] ) ? $field['last_placeholder'] : '', + ], + 'block' => [ + 'wpforms-field-row-block', + + ], + 'class' => [ + 'wpforms-field-name-last', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}-last", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Last', 'wpforms-lite' ), + ], + ], + ], + ]; + + $properties = array_merge_recursive( $properties, $props ); + + $has_common_error = ! empty( $properties['error']['value'] ) && is_string( $properties['error']['value'] ); + + // Input First: add error class if needed. + if ( ! empty( $properties['error']['value']['first'] ) || $has_common_error ) { + $properties['inputs']['first']['class'][] = 'wpforms-error'; + } + + // Input First: add required class if needed. + if ( ! empty( $field['required'] ) ) { + $properties['inputs']['first']['class'][] = 'wpforms-field-required'; + } + + // Input First: add column class. + $properties['inputs']['first']['block'][] = $format === 'first-last' ? 'wpforms-one-half' : 'wpforms-two-fifths'; + + // Input Middle: add error class if needed. + if ( $has_common_error ) { + $properties['inputs']['middle']['class'][] = 'wpforms-error'; + } + + // Input Last: add error class if needed. + if ( ! empty( $properties['error']['value']['last'] ) || $has_common_error ) { + $properties['inputs']['last']['class'][] = 'wpforms-error'; + } + + // Input Last: add required class if needed. + if ( ! empty( $field['required'] ) ) { + $properties['inputs']['last']['class'][] = 'wpforms-field-required'; + } + + // Input Last: add column class. + $properties['inputs']['last']['block'][] = $format === 'first-last' ? 'wpforms-one-half' : 'wpforms-two-fifths'; + + return $properties; + } + + /** + * Name fields should default to being required. + * + * @since 1.0.8 + * + * @param bool|mixed $required Whether the field is required. + * @param array $field Field data. + * + * @return bool + */ + public function default_required( $required, $field ): bool { + + if ( $field['type'] === 'name' ) { + return true; + } + + return (bool) $required; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field information. + */ + public function field_options( $field ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Define data. + $format = ! empty( $field['format'] ) ? esc_attr( $field['format'] ) : 'first-last'; + + /* + * Basic field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Label. + $this->field_option( 'label', $field ); + + // Format. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'format', + 'value' => esc_html__( 'Format', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select format to use for the name form field', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'format', + 'value' => $format, + 'options' => [ + 'simple' => esc_html__( 'Simple', 'wpforms-lite' ), + 'first-last' => esc_html__( 'First Last', 'wpforms-lite' ), + 'first-middle-last' => esc_html__( 'First Middle Last', 'wpforms-lite' ), + ], + ], + false + ); + + $args = [ + 'slug' => 'format', + 'content' => $lbl . $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + echo '
              '; + + // Simple. + $simple_placeholder = ! empty( $field['simple_placeholder'] ) ? esc_attr( $field['simple_placeholder'] ) : ''; + $simple_default = ! empty( $field['simple_default'] ) ? esc_attr( $field['simple_default'] ) : ''; + + printf( '
              ', esc_attr( $field['id'] ), esc_attr( $field['id'] ) ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'simple_placeholder', + 'value' => esc_html__( 'Name', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Name field advanced options.', 'wpforms-lite' ), + ] + ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], (int) $field['id'], esc_attr( $simple_placeholder ) ); + printf( '', (int) $field['id'], esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], (int) $field['id'], esc_attr( $simple_default ) ); + printf( '', (int) $field['id'], esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + echo '
              '; + + // First. + $first_placeholder = ! empty( $field['first_placeholder'] ) ? esc_attr( $field['first_placeholder'] ) : ''; + $first_default = ! empty( $field['first_default'] ) ? esc_attr( $field['first_default'] ) : ''; + + printf( '
              ', esc_attr( $field['id'] ), esc_attr( $field['id'] ) ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'first_placeholder', + 'value' => esc_html__( 'First Name', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'First name field advanced options.', 'wpforms-lite' ), + ] + ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], esc_attr( $first_placeholder ) ); + printf( '', (int) $field['id'], esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], esc_attr( $first_default ) ); + printf( '', (int) $field['id'], esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + echo '
              '; + + // Middle. + $middle_placeholder = ! empty( $field['middle_placeholder'] ) ? esc_attr( $field['middle_placeholder'] ) : ''; + $middle_default = ! empty( $field['middle_default'] ) ? esc_attr( $field['middle_default'] ) : ''; + + printf( '
              ', esc_attr( $field['id'] ), esc_attr( $field['id'] ) ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'middle_placeholder', + 'value' => esc_html__( 'Middle Name', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Middle name field advanced options.', 'wpforms-lite' ), + ] + ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], esc_attr( $middle_placeholder ) ); + printf( '', (int) $field['id'], esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], esc_attr( $middle_default ) ); + printf( '', (int) $field['id'], esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + echo '
              '; + + // Last. + $last_placeholder = ! empty( $field['last_placeholder'] ) ? esc_attr( $field['last_placeholder'] ) : ''; + $last_default = ! empty( $field['last_default'] ) ? esc_attr( $field['last_default'] ) : ''; + + printf( '
              ', esc_attr( $field['id'] ), esc_attr( $field['id'] ) ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'last_placeholder', + 'value' => esc_html__( 'Last Name', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Last name field advanced options.', 'wpforms-lite' ), + ] + ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], esc_attr( $last_placeholder ) ); + printf( '', (int) $field['id'], esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', (int) $field['id'], esc_attr( $last_default ) ); + printf( '', (int) $field['id'], esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + echo '
              '; + + echo '
              '; + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabels. + $sublabel_class = isset( $field['format'] ) && ! in_array( $field['format'], [ 'first-last', 'first-middle-last' ], true ) ? 'wpforms-hidden' : ''; + + $this->field_option( 'sublabel_hide', $field, [ 'class' => $sublabel_class ] ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field information. + */ + public function field_preview( $field ) { + + // Define data. + $simple_placeholder = ! empty( $field['simple_placeholder'] ) ? $field['simple_placeholder'] : ''; + $first_placeholder = ! empty( $field['first_placeholder'] ) ? $field['first_placeholder'] : ''; + $middle_placeholder = ! empty( $field['middle_placeholder'] ) ? $field['middle_placeholder'] : ''; + $last_placeholder = ! empty( $field['last_placeholder'] ) ? $field['last_placeholder'] : ''; + $simple_default = ! empty( $field['simple_default'] ) ? $field['simple_default'] : ''; + $first_default = ! empty( $field['first_default'] ) ? $field['first_default'] : ''; + $middle_default = ! empty( $field['middle_default'] ) ? $field['middle_default'] : ''; + $last_default = ! empty( $field['last_default'] ) ? $field['last_default'] : ''; + $format = ! empty( $field['format'] ) ? $field['format'] : 'first-last'; + + // Label. + $this->field_preview_option( 'label', $field ); + ?> + +
              + +
              + +
              + +
              + + +
              + +
              + + +
              + +
              + + +
              + +
              + + field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.0.0 + * + * @param array $field Field information. + * @param array $deprecated Deprecated parameter, not used anymore. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $format = ! empty( $field['format'] ) ? esc_attr( $field['format'] ) : 'first-last'; + $primary = ! empty( $field['properties']['inputs']['primary'] ) ? $field['properties']['inputs']['primary'] : ''; + $first = ! empty( $field['properties']['inputs']['first'] ) ? $field['properties']['inputs']['first'] : ''; + $middle = ! empty( $field['properties']['inputs']['middle'] ) ? $field['properties']['inputs']['middle'] : ''; + $last = ! empty( $field['properties']['inputs']['last'] ) ? $field['properties']['inputs']['last'] : ''; + + // Simple format. + if ( $format === 'simple' ) { + + // Primary field (Simple). + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ), + esc_attr( $primary['required'] ) + ); + + // Expanded formats. + } else { + + // Row wrapper. + echo '
              '; + + // First name. + echo '
              '; + $this->field_display_sublabel( 'first', 'before', $field ); + printf( + '', + wpforms_html_attributes( $first['id'], $first['class'], $first['data'], $first['attr'] ), + esc_attr( $first['required'] ) + ); + $this->field_display_sublabel( 'first', 'after', $field ); + $this->field_display_error( 'first', $field ); + echo '
              '; + + // Middle name. + if ( $format === 'first-middle-last' ) { + echo '
              '; + $this->field_display_sublabel( 'middle', 'before', $field ); + printf( + '', + wpforms_html_attributes( $middle['id'], $middle['class'], $middle['data'], $middle['attr'] ), + esc_attr( $middle['required'] ) + ); + $this->field_display_sublabel( 'middle', 'after', $field ); + $this->field_display_error( 'middle', $field ); + echo '
              '; + } + + // Last name. + echo '
              '; + $this->field_display_sublabel( 'last', 'before', $field ); + printf( + '', + wpforms_html_attributes( $last['id'], $last['class'], $last['data'], $last['attr'] ), + esc_attr( $last['required'] ) + ); + $this->field_display_sublabel( 'last', 'after', $field ); + $this->field_display_error( 'last', $field ); + echo '
              '; + + echo '
              '; + + } + } + + /** + * Validate field on submitting a form. + * + * @since 1.0.0 + * + * @param int $field_id Field id. + * @param array|string $field_submit Submitted field value (raw data). + * @param array $form_data Form data. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + if ( empty( $form_data['fields'][ $field_id ]['required'] ) ) { + return; + } + + // Extended validation needed for the different name fields. + $form_id = $form_data['id']; + $format = $form_data['fields'][ $field_id ]['format']; + $required = wpforms_get_required_label(); + $process = wpforms()->obj( 'process' ); + + if ( $format === 'simple' && wpforms_is_empty_string( $field_submit ) ) { + $process->errors[ $form_id ][ $field_id ] = $required; + + return; + } + + if ( ! ( $format === 'first-last' || $format === 'first-middle-last' ) ) { + return; + } + + $this->validate_complicated_formats( $process, $form_id, $field_id, $field_submit, $required ); + } + + /** + * Format and sanitize field. + * + * @since 1.0.0 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + // Define data. + $name = isset( $form_data['fields'][ $field_id ]['label'] ) && ! wpforms_is_empty_string( $form_data['fields'][ $field_id ]['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + $first = isset( $field_submit['first'] ) && ! wpforms_is_empty_string( $field_submit['first'] ) ? $field_submit['first'] : ''; + $middle = isset( $field_submit['middle'] ) && ! wpforms_is_empty_string( $field_submit['middle'] ) ? $field_submit['middle'] : ''; + $last = isset( $field_submit['last'] ) && ! wpforms_is_empty_string( $field_submit['last'] ) ? $field_submit['last'] : ''; + + if ( is_array( $field_submit ) ) { + $value = implode( ' ', array_filter( [ $first, $middle, $last ] ) ); + } else { + $value = $field_submit; + } + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $name ), + 'value' => sanitize_text_field( $value ), + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + 'first' => sanitize_text_field( $first ), + 'middle' => sanitize_text_field( $middle ), + 'last' => sanitize_text_field( $last ), + ]; + } + + /** + * Determine if the field requires fieldset+legend instead of the regular field label. + * + * @since 1.8.1 + * + * @param bool $requires_fieldset True if it requires fieldset. + * @param array $field Field data. + * + * @return bool + * + * @noinspection PhpUnusedParameterInspection + */ + public function is_field_requires_fieldset( $requires_fieldset, $field ) { + + return isset( $field['format'] ) && $field['format'] !== 'simple'; + } + + /** + * Validate complicated formats. + * + * @since 1.8.2.3 + * + * @param WPForms_Process $process Process class instance. + * @param int|string $form_id Form id. + * @param int|string $field_id Field id. + * @param array $field_submit Field submit. + * @param string $required Required message text. + */ + private function validate_complicated_formats( $process, $form_id, $field_id, $field_submit, $required ) { + + // Prevent PHP Warning: Illegal string offset ‘first’ or 'last'. + if ( isset( $process->errors[ $form_id ][ $field_id ] ) ) { + $process->errors[ $form_id ][ $field_id ] = (array) $process->errors[ $form_id ][ $field_id ]; + } + + if ( isset( $field_submit['first'] ) && wpforms_is_empty_string( $field_submit['first'] ) ) { + $process->errors[ $form_id ][ $field_id ]['first'] = $required; + } + + if ( isset( $field_submit['last'] ) && wpforms_is_empty_string( $field_submit['last'] ) ) { + $process->errors[ $form_id ][ $field_id ]['last'] = $required; + } + } +} + +new WPForms_Field_Name(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-number-slider.php b/wp-content/plugins/wpforms-lite/includes/fields/class-number-slider.php new file mode 100644 index 0000000..925e469 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-number-slider.php @@ -0,0 +1,452 @@ +name = esc_html__( 'Number Slider', 'wpforms-lite' ); + $this->type = 'number-slider'; + $this->icon = 'fa-sliders'; + $this->order = 180; + + // Customize value format for HTML emails. + add_filter( 'wpforms_html_field_value', [ $this, 'html_email_value' ], 10, 4 ); + + // Builder strings. + add_filter( 'wpforms_builder_strings', [ $this, 'add_builder_strings' ] ); + } + + /** + * Add Builder strings. + * + * @since 1.6.2.3 + * + * @param array $strings Form Builder strings. + * + * @return array Form Builder strings. + */ + public function add_builder_strings( $strings ) { + + $strings['error_number_slider_increment'] = esc_html__( 'Increment value should be greater than zero. Decimal fractions allowed.', 'wpforms-lite' ); + + return $strings; + } + + /** + * Customize format for HTML email notifications. + * + * @since 1.5.7 + * + * @param string $val Field value. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * @param string $context Value display context. + * + * @return string + */ + public function html_email_value( $val, $field, $form_data = [], $context = '' ) { + + if ( empty( $field['value_raw'] ) || $field['type'] !== $this->type ) { + return $val; + } + + $value = isset( $field['value_raw']['value'] ) ? (float) $field['value_raw']['value'] : 0; + $min = isset( $field['value_raw']['min'] ) ? (float) $field['value_raw']['min'] : self::SLIDER_MIN; + $max = isset( $field['value_raw']['max'] ) ? (float) $field['value_raw']['max'] : self::SLIDER_MAX; + + $html_value = $value; + if ( strpos( $field['value_raw']['value_display'], '{value}' ) !== false ) { + $html_value = str_replace( + '{value}', + /* translators: %1$s - Number slider selected value, %2$s - its minimum value, %3$s - its maximum value. */ + sprintf( esc_html__( '%1$s (%2$s min / %3$s max)', 'wpforms-lite' ), $value, $min, $max ), + $field['value_raw']['value_display'] + ); + } + + return $html_value; + } + + /** + * Field options panel inside the builder. + * + * @since 1.5.7 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Set default values for Min, Max, Step, Default Value Options. + $field = $this->set_default_field_args( $field ); + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle disabled. + $this->field_element( + 'text', + $field, + [ + 'slug' => 'required', + 'value' => '', + 'type' => 'hidden', + ] + ); + + // Min/Max. + $min_max_args = [ + 'class' => 'wpforms-number-slider', + 'label' => esc_html__( 'Value Range', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Define the minimum and the maximum values for the slider.', 'wpforms-lite' ), + ]; + $min_max = $this->field_number_option_min_max( $field, $min_max_args, false ); + + // Default value. + $default_value_args = [ + 'class' => 'wpforms-number-slider-default-value', + ]; + $default_value = $this->field_number_option_default_value( $field, $default_value_args, false ); + + // Increment. + $step_args = [ + 'class' => 'wpforms-number-slider-step', + 'tooltip' => esc_html__( 'Determines the increment between selectable values on the slider.', 'wpforms-lite' ), + ]; + $step = $this->field_number_option_step( $field, $step_args, false ); + + // Print of options markup: Minimum, Maximum, Increment, Default Value. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'number_min_max_step_dependent', + 'content' => $min_max . $default_value . $step, + 'class' => 'wpforms-field-number-slider-option', + ], + true + ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Value display. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'value_display', + 'value' => esc_html__( 'Value Display', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Displays the currently selected value below the slider.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'value_display', + 'class' => 'wpforms-number-slider-value-display', + 'value' => isset( $field['value_display'] ) ? $field['value_display'] : $this->get_default_display_value(), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'value_display', + 'content' => $lbl . $fld, + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Get default display value. + * + * @since 1.7.1 + * + * @return string + */ + private function get_default_display_value() { + + return sprintf( /* translators: %s - value. */ + esc_html__( 'Selected Value: %s', 'wpforms-lite' ), + '{value}' + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.5.7 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + $value_display = isset( $field['value_display'] ) ? esc_attr( $field['value_display'] ) : $this->get_default_display_value(); + $default_value = ! empty( $field['default_value'] ) ? (float) $field['default_value'] : 0; + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'fields/number-slider/builder-preview', + [ + 'min' => isset( $field['min'] ) && is_numeric( $field['min'] ) ? (float) $field['min'] : self::SLIDER_MIN, + 'max' => isset( $field['max'] ) && is_numeric( $field['max'] ) ? (float) $field['max'] : self::SLIDER_MAX, + 'step' => isset( $field['step'] ) && is_numeric( $field['step'] ) ? (float) $field['step'] : self::SLIDER_STEP, + 'value_display' => $value_display, + 'default_value' => $default_value, + 'value_hint' => str_replace( '{value}', '' . $default_value . '', wp_kses( $value_display, wpforms_builder_preview_get_allowed_tags() ) ), + 'field_id' => $field['id'], + ], + true + ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.5.7 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use $field['properties'] instead. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $primary = $field['properties']['inputs']['primary']; + + $value_display = isset( $field['value_display'] ) ? esc_attr( $field['value_display'] ) : esc_html__( 'Selected Value: {value}', 'wpforms-lite' ); + $hint_value = ! empty( $primary['attr']['value'] ) ? (float) $primary['attr']['value'] : 0; + + $hint = str_replace( '{value}', '' . $hint_value . '', $value_display ); + + // phpcs:ignore + echo wpforms_render( + 'fields/number-slider/frontend', + [ + 'atts' => $primary['attr'], + 'class' => $primary['class'], + 'datas' => $primary['data'], + 'id' => $primary['id'], + 'max' => isset( $field['max'] ) && is_numeric( $field['max'] ) ? (float) $field['max'] : self::SLIDER_MAX, + 'min' => isset( $field['min'] ) && is_numeric( $field['min'] ) ? (float) $field['min'] : self::SLIDER_MIN, + 'required' => $primary['required'], + 'step' => isset( $field['step'] ) && is_numeric( $field['step'] ) ? (float) $field['step'] : self::SLIDER_STEP, + 'value_display' => $value_display, + 'value_hint' => $hint, + ], + true + ); + } + + /** + * Validate field on form submit. + * + * @since 1.5.7 + * + * @param int $field_id Field ID. + * @param int|float|string $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $form_id = $form_data['id']; + + $field_submit = (float) $this->sanitize_value( $field_submit ); + + // Basic required check - if field is marked as required, check for entry data. + if ( + ! empty( $form_data['fields'][ $field_id ]['required'] ) && + empty( $field_submit ) && + (string) $field_submit !== '0' + ) { + wpforms()->obj( 'process' )->errors[ $form_id ][ $field_id ] = wpforms_get_required_label(); + } + + // Check if value is numeric. + if ( ! empty( $field_submit ) && ! is_numeric( $field_submit ) ) { + /** + * Filter the error message for the number field. + * + * @since 1.0.0 + * + * @param string $message Error message. + */ + wpforms()->obj( 'process' )->errors[ $form_id ][ $field_id ] = apply_filters( 'wpforms_valid_number_label', esc_html__( 'Please provide a valid value.', 'wpforms-lite' ) ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + } + + /** + * Format and sanitize field. + * + * @since 1.5.7 + * + * @param int $field_id Field ID. + * @param int|string|float $field_submit Submitted field value. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + // Define data. + $name = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + $value = (float) $this->sanitize_value( $field_submit ); + + $value_raw = [ + 'value' => $value, + 'min' => (float) $form_data['fields'][ $field_id ]['min'], + 'max' => (float) $form_data['fields'][ $field_id ]['max'], + 'value_display' => wp_kses_post( $form_data['fields'][ $field_id ]['value_display'] ), + ]; + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $name ), + 'value' => $value, + 'value_raw' => $value_raw, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Sanitize the value. + * + * @since 1.5.7 + * + * @param string $value The number field submitted value. + * + * @return float|int|string + */ + private function sanitize_value( $value ) { + + // Some browsers allow other non-digit/decimal characters to be submitted + // with the num input, which then trips the is_numeric validation below. + // To get around this we remove all chars that are not expected. + $signed_value = preg_replace( '/[^-0-9.]/', '', $value ); + + // If there's no number on the signed value we return zero. + // We have to do that because since PHP 8.0, the abs() function is allowed an argument with int|float type. + if ( ! is_numeric( $signed_value ) ) { + return 0; + } + + $abs_value = abs( $signed_value ); + $value = strpos( $signed_value, '-' ) === 0 ? '-' . $abs_value : $abs_value; + + return $value; + } + + /** + * Sets default field settings. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * + * @return array Modified array. + */ + private function set_default_field_args( $field ) { + + $field['min'] = empty( $field['min'] ) ? self::SLIDER_MIN : $field['min']; + $field['max'] = empty( $field['max'] ) ? self::SLIDER_MAX : $field['max']; + $field['step'] = empty( $field['step'] ) ? self::SLIDER_STEP : $field['step']; + $field['default_value'] = empty( $field['default_value'] ) ? self::SLIDER_MIN : $field['default_value']; + + return $field; + } +} + +new WPForms_Field_Number_Slider(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-number.php b/wp-content/plugins/wpforms-lite/includes/fields/class-number.php new file mode 100644 index 0000000..2693c29 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-number.php @@ -0,0 +1,278 @@ +name = esc_html__( 'Numbers', 'wpforms-lite' ); + $this->type = 'number'; + $this->icon = 'fa-hashtag'; + $this->order = 130; + + $this->hooks(); + $this->number_hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + private function hooks() { + + // Define additional field properties. + add_filter( 'wpforms_field_properties_number', [ $this, 'field_properties' ], 5, 3 ); + } + + /** + * Define additional field properties. + * + * @since 1.9.4 + * + * @param array|mixed $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function field_properties( $properties, $field, $form_data ): array { + + $properties = (array) $properties; + + if ( is_numeric( $field['min'] ?? null ) ) { + $properties['inputs']['primary']['attr']['min'] = (float) $field['min']; + } + + if ( is_numeric( $field['max'] ?? null ) ) { + $properties['inputs']['primary']['attr']['max'] = (float) $field['max']; + } + + $properties['inputs']['primary']['attr']['step'] = 'any'; + + return $properties; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Min/Max. + $this->field_number_option_min_max( $field, [ 'class' => 'wpforms-numbers' ] ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Define data. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + + // Label. + $this->field_preview_option( 'label', $field ); + + // Primary input. + echo ''; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.0.0 + * + * @param array $field Field data. + * @param array $deprecated Deprecated, not used. + * @param array $form_data Form data. + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $primary = $field['properties']['inputs']['primary']; + + // Primary field. + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ), + esc_attr( $primary['required'] ) + ); + } + + /** + * Validate field on form submit. + * + * @since 1.0.0 + * + * @param int $field_id Field id. + * @param string $field_submit Submitted field value (raw data). + * @param array $form_data Form data. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $form_id = $form_data['id']; + + $value = $this->sanitize_value( $field_submit ); + + // If field is marked as required, check for entry data. + if ( + ! empty( $form_data['fields'][ $field_id ]['required'] ) && + empty( $value ) && + ! is_numeric( $value ) + ) { + wpforms()->obj( 'process' )->errors[ $form_id ][ $field_id ] = wpforms_get_required_label(); + } + + // Check if value is numeric. + if ( ! empty( $value ) && ! is_numeric( $value ) ) { + /** + * Filter the error message for the number field. + * + * @since 1.0.0 + * + * @param string $message Error message. + */ + wpforms()->obj( 'process' )->errors[ $form_id ][ $field_id ] = apply_filters( 'wpforms_valid_number_label', esc_html__( 'Please enter a valid number.', 'wpforms-lite' ) ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + } + + /** + * Format and sanitize field. + * + * @since 1.3.5 + * + * @param int $field_id Field id. + * @param string $field_submit Submitted value. + * @param array $form_data Form data. + */ + public function format( $field_id, $field_submit, $form_data ) { + + // Define data. + $name = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $name ), + 'value' => $this->sanitize_value( $field_submit ), + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Sanitize the value. + * + * @since 1.5.7 + * + * @param string $value The number field submitted value. + * + * @return float|int|string + */ + private function sanitize_value( $value ) { + + if ( empty( $value ) && ! is_numeric( $value ) ) { + return ''; + } + + // Some browsers allow other non-digit/decimal characters to be submitted + // with the num input, which then trips the is_numeric validation below. + // To get around this we remove all chars that are not expected. + $signed_value = preg_replace( '/[^-0-9.]/', '', $value ); + $abs_value = str_replace( '-', '', $signed_value ); + + return $signed_value < 0 ? '-' . $abs_value : $abs_value; + } +} + +new WPForms_Field_Number(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-radio.php b/wp-content/plugins/wpforms-lite/includes/fields/class-radio.php new file mode 100644 index 0000000..dca5308 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-radio.php @@ -0,0 +1,944 @@ +name = esc_html__( 'Multiple Choice', 'wpforms-lite' ); + $this->keywords = esc_html__( 'radio', 'wpforms-lite' ); + $this->type = 'radio'; + $this->icon = 'fa-dot-circle-o'; + $this->order = 110; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'First Choice', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + 2 => [ + 'label' => esc_html__( 'Second Choice', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + 3 => [ + 'label' => esc_html__( 'Third Choice', 'wpforms-lite' ), + 'value' => '', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + // Customize HTML field values. + add_filter( 'wpforms_html_field_value', [ $this, 'field_html_value' ], 10, 4 ); + add_filter( "wpforms_{$this->type}_field_html_value_images", [ $this, 'field_html_value_images' ], 10, 3 ); + + // Define additional field properties. + add_filter( 'wpforms_field_properties_radio', [ $this, 'field_properties' ], 5, 3 ); + + // This field requires fieldset+legend instead of the field label. + add_filter( "wpforms_frontend_modern_is_field_requires_fieldset_{$this->type}", '__return_true', PHP_INT_MAX, 2 ); + + // Load assets. + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_assets' ] ); + + // Modify an export data format for the Other option. + add_filter( 'wpforms_pro_admin_entries_export_ajax_get_entry_fields_data_field', [ $this, 'export_entry_field_data' ] ); + + // Allow radio fields to be included in the Keyword Filter. + add_filter( 'wpforms_pro_anti_spam_keyword_filter_get_filtered_fields', [ $this, 'add_field_to_anti_spam_keyword_filter' ] ); + + // Adjust entry field before saving to entry_fields DB table. + add_filter( 'wpforms_entry_save_fields', [ $this, 'save_field' ], 10, 3 ); + } + + /** + * Enqueue assets for the builder. + * + * @since 1.9.8.3 + */ + public function builder_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-multiple-choices', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/multiple-choices{$min}.js", + [ 'jquery', 'wpforms-builder' ], + WPFORMS_VERSION, + false + ); + } + + /** + * Adjust builder preview container classes. + * + * Adds size-{small|medium|large} to the Radio field container in the Builder + * when the "Add Other Choice" option is enabled. + * + * @since 1.9.8.3 + * + * @param string $css Existing class string. + * @param array $field Field data and settings. + * + * @return string + */ + public function preview_field_class( $css, $field ): string { + + $css = parent::preview_field_class( $css, $field ); + + if ( $field['type'] !== $this->type ) { + return $css; + } + + // Apply a size class to the field container when Other Choice is enabled. + if ( $this->has_other_choice( $field ) ) { + $size = ! empty( $field['other_size'] ) ? sanitize_html_class( $field['other_size'] ) : 'medium'; + $css .= ' size-' . $size; + } + + return $css; + } + + /** + * Define additional field properties. + * + * @since 1.4.5 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Remove primary input, unset for attribute for label. + unset( $properties['inputs']['primary'], $properties['label']['attr']['for'] ); + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = wpforms_validate_field_id( $field['id'] ); + $choices = $field['choices']; + $dynamic = wpforms_get_field_dynamic_choices( $field, $form_id, $form_data ); + + if ( $dynamic !== false ) { + $choices = $dynamic; + $field['show_values'] = true; + } + + // Set input container (ul) properties. + $properties['input_container'] = [ + 'class' => [ ! empty( $field['random'] ) ? 'wpforms-randomize' : '' ], + 'data' => [], + 'attr' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + ]; + + // Set input properties. + foreach ( $choices as $key => $choice ) { + + // Used for dynamic choices. + $depth = isset( $choice['depth'] ) ? absint( $choice['depth'] ) : 1; + + $value = ! empty( $field['show_values'] ) ? $choice['value'] : $choice['label']; + /* translators: %s - choice number. */ + $value = ( $value === '' ) ? sprintf( esc_html__( 'Choice %s', 'wpforms-lite' ), $key ) : $value; + + // Check if this is the "Other" choice. + $is_other_choice = isset( $choice['other'] ) && (bool) $choice['other'] === true; + + $properties['inputs'][ $key ] = [ + 'container' => [ + 'attr' => [], + 'class' => [ "choice-{$key}", "depth-{$depth}", $is_other_choice ? 'wpforms-other-choice' : '' ], + 'data' => [], + 'id' => '', + ], + 'label' => [ + 'attr' => [ + 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + ], + 'class' => [ 'wpforms-field-label-inline' ], + 'data' => [], + 'id' => '', + 'text' => $choice['label'], + ], + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}]", + 'value' => $value, + ], + 'class' => [], + 'data' => $is_other_choice ? [ 'other-choice' => 'true' ] : [], + 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + 'icon' => isset( $choice['icon'] ) ? $choice['icon'] : '', + 'icon_style' => isset( $choice['icon_style'] ) ? $choice['icon_style'] : '', + 'image' => isset( $choice['image'] ) ? $choice['image'] : '', + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'default' => isset( $choice['default'] ), + ]; + } + + // Required class for pagebreak validation. + if ( ! empty( $field['required'] ) ) { + $properties['input_container']['class'][] = 'wpforms-field-required'; + } + + // Custom properties if image choices is enabled. + if ( ! $dynamic && ! empty( $field['choices_images'] ) ) { + + $properties['input_container']['class'][] = 'wpforms-image-choices'; + $properties['input_container']['class'][] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] ); + + foreach ( $properties['inputs'] as $key => $inputs ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-image-choices-item'; + + if ( in_array( $field['choices_images_style'], [ 'modern', 'classic' ], true ) ) { + $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element'; + } + } + } elseif ( ! $dynamic && ! empty( $field['choices_icons'] ) ) { + $properties = wpforms()->obj( 'icon_choices' )->field_properties( $properties, $field ); + } + + // Add selected class for choices with defaults. + foreach ( $properties['inputs'] as $key => $inputs ) { + if ( ! empty( $inputs['default'] ) ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-selected'; + } + } + + return $properties; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Choices. + $this->field_option( 'choices', $field ); + + // AI Feature. + $this->field_option( + 'ai_modal_button', + $field, + [ + 'value' => esc_html__( 'Generate Choices', 'wpforms-lite' ), + 'type' => 'choices', + ] + ); + + // Add Other Choice. + $this->field_option( 'choices_other', $field ); + + // Other Field Size for "Other" input. + $this->field_option( 'other_size', $field ); + + // Other Placeholder for "Other" input. + $this->field_option( 'other_placeholder', $field ); + + // Choices Images. + $this->field_option( 'choices_images', $field ); + + // Hide Choices Images. + $this->field_option( 'choices_images_hide', $field ); + + // Choices Images Style (theme). + $this->field_option( 'choices_images_style', $field ); + + // Choices Icons. + $this->field_option( 'choices_icons', $field ); + + // Choices Icons Color. + $this->field_option( 'choices_icons_color', $field ); + + // Choices Icons Size. + $this->field_option( 'choices_icons_size', $field ); + + // Choices Icons Style. + $this->field_option( 'choices_icons_style', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Randomize order of choices. + $this->field_element( + 'row', + $field, + [ + 'slug' => 'random', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'random', + 'value' => isset( $field['random'] ) ? '1' : '0', + 'desc' => esc_html__( 'Randomize Choices', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to randomize the order of the choices.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + // Show Values toggle option. This option will only show if already used + // or if manually enabled by a filter. + if ( ! empty( $field['show_values'] ) || wpforms_show_fields_options_setting() ) { + $this->field_element( + 'row', + $field, + [ + 'slug' => 'show_values', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'show_values', + 'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0', + 'desc' => esc_html__( 'Show Values', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to manually set form field values.', 'wpforms-lite' ), + ], + false + ), + ] + ); + } + + // Display format. + $this->field_option( 'input_columns', $field ); + + // Dynamic choice auto-populating toggle. + $this->field_option( 'dynamic_choices', $field ); + + // Dynamic choice source. + $this->field_option( 'dynamic_choices_source', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Choices. + $this->field_preview_option( 'choices', $field ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end and admin entry edit page. + * + * @since 1.0.0 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + $using_image_choices = empty( $field['dynamic_choices'] ) && empty( $field['choices_icons'] ) && ! empty( $field['choices_images'] ); + $using_icon_choices = empty( $field['dynamic_choices'] ) && empty( $field['choices_images'] ) && ! empty( $field['choices_icons'] ); + + // Define data. + $container = $field['properties']['input_container']; + $choices = $field['properties']['inputs']; + + // Do not display the field with empty choices on the frontend. + if ( ! $choices && ! is_admin() ) { + return; + } + + // Display a warning message on Entry Edit page. + if ( ! $choices && is_admin() ) { + $this->display_empty_dynamic_choices_message( $field ); + + return; + } + + $amp_state_id = ''; + + if ( wpforms_is_amp() && ( $using_image_choices || $using_icon_choices ) ) { + $amp_state_id = str_replace( '-', '_', sanitize_key( $container['id'] ) ) . '_state'; + $state = [ + 'selected' => null, + ]; + + foreach ( $choices as $key => $choice ) { + if ( $choice['default'] ) { + $state['selected'] = $choice['attr']['value']; + + break; + } + } + printf( + '', + esc_attr( $amp_state_id ), + wp_json_encode( $state ) + ); + } + + printf( + '
                ', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) + ); + + foreach ( $choices as $key => $choice ) { + $label = $this->get_choices_label( $choice['label']['text'] ?? '', $key, $field ); + + if ( wpforms_is_amp() && ( $using_image_choices || $using_icon_choices ) ) { + $choice['container']['attr']['[class]'] = sprintf( + '%s + ( %s == %s ? " wpforms-selected" : "")', + wp_json_encode( implode( ' ', $choice['container']['class'] ) ), + $amp_state_id, + wp_json_encode( $choice['attr']['value'] ) + ); + } + + printf( + '
              • ', + wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] ) + ); + + if ( $using_image_choices ) { + + // Make sure the image choices are keyboard-accessible. + $choice['label']['attr']['tabindex'] = 0; + + if ( wpforms_is_amp() ) { + $choice['label']['attr']['on'] = sprintf( + 'tap:AMP.setState(%s)', + wp_json_encode( [ $amp_state_id => $choice['attr']['value'] ] ) + ); + $choice['label']['attr']['role'] = 'button'; + } + + if ( is_array( $choice['label']['class'] ) && wpforms_is_empty_string( $label ) ) { + $choice['label']['class'][] = 'wpforms-field-label-inline-empty'; + } + + // Image choices. + printf( + ''; + + } elseif ( $using_icon_choices ) { + + if ( wpforms_is_amp() ) { + $choice['label']['attr']['on'] = sprintf( + 'tap:AMP.setState(%s)', + wp_json_encode( [ $amp_state_id => $choice['attr']['value'] ] ) + ); + $choice['label']['attr']['role'] = 'button'; + } + + // Icon Choices. + wpforms()->obj( 'icon_choices' )->field_display( $field, $choice, 'radio' ); + + } else { + // Normal display. + printf( + '', + wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ), + esc_attr( $choice['required'] ), + checked( '1', $choice['default'], false ) + ); + + printf( + '', + wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ), + wp_kses_post( $label ) + ); + } + + // Capture the text field for "Other" choice to render separately below the list. + if ( ! empty( $choice['data']['other-choice'] ) ) { + $default_value = ''; + $size = ! empty( $field['other_size'] ) ? sanitize_html_class( $field['other_size'] ) : 'medium'; + $size_class = 'wpforms-field-' . $size; + + // Do not hide the Other input if this choice is set as default. + $hidden_class = ! empty( $choice['default'] ) ? '' : ' wpforms-hidden'; + + if ( isset( $field['choices'][ $key ]['value'] ) && $field['choices'][ $key ]['value'] !== '' ) { + $default_value = $field['choices'][ $key ]['value']; + } + + /** + * Filters the default value of the Other choice field option. + * + * This filter allows modifying what value should be prefilled for the Other choice inputs. + * + * @since 1.9.8.3 + * + * @param string $default_value Default value for the "Other" choice input. + * @param array $field Field data and settings. + * @param string $label Field label. + */ + $default_value = apply_filters( 'wpforms_field_radio_other_choice_default_value', $default_value, $field, $label ); + + $other_atts = [ + 'name' => "wpforms[fields][{$field['id']}][other]", + 'value' => $default_value, + ]; + + if ( empty( $choice['default'] ) ) { + $other_atts['disabled'] = 'disabled'; + } + + if ( ! empty( $field['other_placeholder'] ) ) { + $other_atts['placeholder'] = $field['other_placeholder']; + } + + $other_input_html = sprintf( + '', + wpforms_html_attributes( + "wpforms-{$form_data['id']}-field_{$field['id']}_other", + [ 'wpforms-other-input', 'wpforms-field-required', $size_class, $hidden_class ], + [], + $other_atts + ) + ); + } + + echo '
              • '; + } + + echo '
              '; + // Render the captured "Other" input separately, under the list of options. + if ( ! empty( $other_input_html ) ) { + echo $other_input_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + } + + /** + * Validate field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string|array $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + + // Skip validation if field is dynamic and choices are empty. + if ( $this->is_dynamic_choices_empty( $field, $form_data ) ) { + return; + } + + parent::validate( $field_id, $field_submit, $form_data ); + } + + /** + * Format and sanitize field. + * + * @since 1.0.2 + * @since 1.9.8.3 Changed the expected $field_submit from string to mixed as in case with the Other option we can expect the array to arrive here. + * + * @param int $field_id Field ID. + * @param mixed $field_submit Submitted form data. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false; + $name = sanitize_text_field( $field['label'] ); + $value_raw = sanitize_text_field( $field_submit ); + + $data = [ + 'name' => $name, + 'value' => '', + 'value_raw' => $value_raw, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + + if ( 'post_type' === $dynamic && ! empty( $field['dynamic_post_type'] ) ) { + + // Dynamic population is enabled using post type. + $data['dynamic'] = 'post_type'; + $data['dynamic_items'] = absint( $value_raw ); + $data['dynamic_post_type'] = $field['dynamic_post_type']; + $post = get_post( $value_raw ); + + if ( ! empty( $post ) && ! is_wp_error( $post ) && $data['dynamic_post_type'] === $post->post_type ) { + $data['value'] = esc_html( wpforms_get_post_title( $post ) ); + } + } elseif ( 'taxonomy' === $dynamic && ! empty( $field['dynamic_taxonomy'] ) ) { + + // Dynamic population is enabled using taxonomy. + $data['dynamic'] = 'taxonomy'; + $data['dynamic_items'] = absint( $value_raw ); + $data['dynamic_taxonomy'] = $field['dynamic_taxonomy']; + $term = get_term( $value_raw, $data['dynamic_taxonomy'] ); + + if ( ! empty( $term ) && ! is_wp_error( $term ) ) { + $data['value'] = esc_html( wpforms_get_term_name( $term ) ); + } + } else { + + // Normal processing, dynamic population is off. + $choice_key = ''; + + // If show_values is true, that means value posted is the raw value + // and not the label. So we need to set label value. Also store + // the choice key. + if ( ! empty( $field['show_values'] ) ) { + foreach ( $field['choices'] as $key => $choice ) { + if ( ! empty( $field_submit ) && $choice['value'] === $field_submit ) { + $data['value'] = sanitize_text_field( $choice['label'] ); + $choice_key = $key; + break; + } + } + } else { + + $data['value'] = $value_raw; + + // Determine choice key, this is needed for image choices. + foreach ( $field['choices'] as $key => $choice ) { + /* translators: %s - choice number. */ + if ( $field_submit === $choice['label'] || $value_raw === sprintf( esc_html__( 'Choice %s', 'wpforms-lite' ), $key ) ) { + $choice_key = $key; + + break; + } + } + } + + // Images choices are enabled, lookup and store image URL. + if ( ! empty( $choice_key ) && ! empty( $field['choices_images'] ) ) { + + $data['image'] = ! empty( $field['choices'][ $choice_key ]['image'] ) ? esc_url_raw( $field['choices'][ $choice_key ]['image'] ) : ''; + } + } + + // For the Other option the value_raw is the option and the value is text from the input. + if ( is_array( $field_submit ) && ! empty( $field_submit['other'] ) ) { + $data['value'] = sanitize_text_field( $field_submit['other'] ); + // Save the flag that the saved value is from the other option field. + $data['is_other'] = true; + + foreach ( $field['choices'] as $choice ) { + + if ( isset( $choice['other'] ) ) { + $data['value_raw'] = $choice['label']; + $data['image'] = ! empty( $field['choices_images'] ) && ! empty( $choice['image'] ) ? esc_url_raw( $choice['image'] ) : ''; + + break; + } + } + } + + // Push field details to be saved. + wpforms()->obj( 'process' )->fields[ $field_id ] = $data; + } + + /** + * Export entry field data. + * + * @since 1.9.8.3 + * + * @param array|mixed $field Field data. + * + * @return array + */ + public function export_entry_field_data( $field ): array { + + $field = (array) $field; + + if ( empty( $field['is_other'] ) ) { + return $field; + } + + $value = (string) ( $field['value'] ?? '' ); + $value_raw = (string) ( $field['value_raw'] ?? '' ); + + $field['value'] = $value_raw . ': ' . $value; + + return $field; + } + + /** + * Include a radio field in allowed field types for keyword search. + * + * @since 1.9.8.3 + * + * @param array|mixed $fields Array of field types. + * + * @return array + */ + public function add_field_to_anti_spam_keyword_filter( $fields ): array { + + $fields[] = $this->type; + + return $fields; + } + + /** + * Generate the HTML value for a field. + * + * It overrides the parent method because of fields with Other choices. + * + * @since 1.9.8.3 + * + * @param mixed $value The value of the field. + * @param array $field Field data and settings. + * @param array $form_data Optional. Additional form data. + * @param string $context Optional. The context in which the value is being rendered. + * + * @return string + */ + public function field_html_value( $value, $field, $form_data = [], $context = '' ) { + + if ( empty( $field['type'] ) || $field['type'] !== $this->type ) { + return $value; + } + + $other_value = $this->get_other_choice_value( $field ); + $field_value = $other_value ?? $field['value'] ?? ''; + + return parent::field_html_value( + $field_value, + $field, + $form_data, + $context + ); + } + + /** + * Return choice value, including Other label if applicable. + + * It overrides the parent method because of fields with Other choices. + * + * @since 1.9.8.3 + * + * @param array $field Field settings. + * @param array $form_data Form data. + * + * @return string + */ + protected function get_choices_value( array $field, array $form_data ): string { + + $other_value = $this->get_other_choice_value( $field ); + + return $other_value ?? parent::get_choices_value( $field, $form_data ); + } + + /** + * Retrieve the value for the "Other" choice option in a field. + * + * This method handles the retrieval of the "Other" choice value, considering + * both raw and processed values. It supports cases where the "Other" choice + * is enabled and attempts to construct a meaningful representation of the value + * based on the available inputs. + * + * @since 1.9.8.3 + * + * @param array $field Field data. + * + * @return string|null Returns the constructed "Other" choice value if available, + * or null if the "Other" choice is not enabled. + */ + private function get_other_choice_value( array $field ): ?string { + + // Bail out early if it's not an Other choice. + if ( empty( $field['is_other'] ) ) { + return null; + } + + $value = $field['value'] ?? ''; + $value_raw = $field['value_raw'] ?? ''; + + if ( wpforms_is_empty_string( $value_raw ) ) { + return (string) $value; + } + + // Return a value with a value_raw as a prefix only if both are not empty. + if ( ! wpforms_is_empty_string( $value ) ) { + return sprintf( '%1$s: %2$s', $value_raw, $value ); + } + + return (string) $value_raw; + } + + /** + * Adjust the entry field before saving. + * + * It's necessary for fields with other choices. + * + * @since 1.9.8.3 + * + * @param array $field Field data. + * @param array $form_data Form data. + * @param int $entry_id Entry ID. + * + * @return array + * @noinspection PhpUnused + */ + public function save_field( $field, $form_data, $entry_id ) { + + if ( empty( $field['type'] ) || $field['type'] !== $this->type ) { + return $field; + } + + // Save `value_raw: value` for fields with Other choices. + // It's necessary for search functionality on the Form Entries Overview table. + // Admins should be able to search for entries that have used an other value. + $other_value = $this->get_other_choice_value( $field ); + + if ( $other_value !== null ) { + $field['value'] = $other_value; + } + + return $field; + } +} + +new WPForms_Field_Radio(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-select.php b/wp-content/plugins/wpforms-lite/includes/fields/class-select.php new file mode 100644 index 0000000..0c8011e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-select.php @@ -0,0 +1,795 @@ +name = esc_html__( 'Dropdown', 'wpforms-lite' ); + $this->keywords = esc_html__( 'choice', 'wpforms-lite' ); + $this->type = 'select'; + $this->icon = 'fa-caret-square-o-down'; + $this->order = 70; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'First Choice', 'wpforms-lite' ), + 'value' => '', + 'default' => '', + ], + 2 => [ + 'label' => esc_html__( 'Second Choice', 'wpforms-lite' ), + 'value' => '', + 'default' => '', + ], + 3 => [ + 'label' => esc_html__( 'Third Choice', 'wpforms-lite' ), + 'value' => '', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + // Define additional field properties. + add_filter( 'wpforms_field_properties_' . $this->type, [ $this, 'field_properties' ], 5, 3 ); + + // Form frontend CSS enqueues. + add_action( 'wpforms_frontend_css', [ $this, 'enqueue_frontend_css' ] ); + + // Form frontend JS enqueues. + add_action( 'wpforms_frontend_js', [ $this, 'enqueue_frontend_js' ] ); + + add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_block_editor_assets' ] ); + } + + /** + * Define additional field properties. + * + * @since 1.5.0 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Remove primary input. + unset( $properties['inputs']['primary'] ); + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = wpforms_validate_field_id( $field['id'] ); + $choices = $field['choices']; + $dynamic = wpforms_get_field_dynamic_choices( $field, $form_id, $form_data ); + + if ( $dynamic !== false ) { + $choices = $dynamic; + $field['show_values'] = true; + } + + // Set options container (', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) + ); + + // Optional placeholder. + if ( ! empty( $field_placeholder ) || $is_modern ) { + printf( + '', + selected( false, $has_default || $is_multiple, false ), + esc_html( $field_placeholder ) + ); + } + + // Build the select options. + foreach ( $choices as $key => $choice ) { + $label = $this->get_choices_label( $choice['label']['text'] ?? '', $key, $field ); + $value = isset( $choice['attr']['value'] ) && ! wpforms_is_empty_string( $choice['attr']['value'] ) ? $choice['attr']['value'] : $label; + $data = $choice['container']['data'] ?? []; + $data_html = ''; + + if ( ! empty( $data ) ) { + $data_html = wpforms_html_attributes( '', '', $data ); + } + + $selected = $choice['attr']['selected'] ?? false; + $selected_html = $selected ? ' selected="selected"' : ''; + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + printf( + '', + esc_attr( $value ), + selected( true, ! empty( $choice['default'] ), false ), + esc_attr( implode( ' ', $choice['container']['class'] ) ), + $data_html, + $selected_html, + wp_kses( + $label, + [ + 'span' => [ + 'class' => [], + ], + ] + ) + ); + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + } + + echo ''; + } + + /** + * Validate field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string|array $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + + // Skip validation if the field is dynamic and choices are empty. + if ( $this->is_dynamic_choices_empty( $field, $form_data ) ) { + return; + } + + parent::validate( $field_id, $field_submit, $form_data ); + } + + /** + * Format and sanitize field. + * + * @since 1.0.2 + * @since 1.6.1 Added support for multiple values. + * + * @param int $field_id Field ID. + * @param string|array $field_submit Submitted field value (selected option). + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, Generic.Metrics.NestingLevel.MaxExceeded + + $field = $form_data['fields'][ $field_id ]; + $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false; + $multiple = ! empty( $field['multiple'] ); + $name = sanitize_text_field( $field['label'] ); + $value = []; + + // Convert the submitted field value to array. + if ( ! is_array( $field_submit ) ) { + $field_submit = [ $field_submit ]; + } + + $value_raw = wpforms_sanitize_array_combine( $field_submit ); + + $data = [ + 'name' => $name, + 'value' => '', + 'value_raw' => $value_raw, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + + if ( $dynamic === 'post_type' && ! empty( $field['dynamic_post_type'] ) ) { + + // Dynamic population is enabled using post type (like for a `Checkboxes` field). + $value_raw = implode( ',', array_map( 'absint', $field_submit ) ); + $data['value_raw'] = $value_raw; + $data['dynamic'] = 'post_type'; + $data['dynamic_items'] = $value_raw; + $data['dynamic_post_type'] = $field['dynamic_post_type']; + $posts = []; + + foreach ( $field_submit as $id ) { + $post = get_post( $id ); + + if ( ! empty( $post ) && ! is_wp_error( $post ) && $data['dynamic_post_type'] === $post->post_type ) { + $posts[] = esc_html( wpforms_get_post_title( $post ) ); + } + } + + $data['value'] = ! empty( $posts ) ? wpforms_sanitize_array_combine( $posts ) : ''; + + } elseif ( $dynamic === 'taxonomy' && ! empty( $field['dynamic_taxonomy'] ) ) { + + // Dynamic population is enabled using taxonomy (like for a `Checkboxes` field). + $value_raw = implode( ',', array_map( 'absint', $field_submit ) ); + $data['value_raw'] = $value_raw; + $data['dynamic'] = 'taxonomy'; + $data['dynamic_items'] = $value_raw; + $data['dynamic_taxonomy'] = $field['dynamic_taxonomy']; + $terms = []; + + foreach ( $field_submit as $id ) { + $term = get_term( $id, $field['dynamic_taxonomy'] ); + + if ( ! empty( $term ) && ! is_wp_error( $term ) ) { + $terms[] = esc_html( wpforms_get_term_name( $term ) ); + } + } + + $data['value'] = ! empty( $terms ) ? wpforms_sanitize_array_combine( $terms ) : ''; + + } else { + + // Normal processing, dynamic population is off. + + // If show_values is true, that means values posted are the raw values + // and not the labels. So we need to get the label values. + if ( ! empty( $field['show_values'] ) && (int) $field['show_values'] === 1 ) { + + foreach ( $field_submit as $item ) { + foreach ( $field['choices'] as $choice ) { + if ( $item === $choice['value'] ) { + $value[] = $choice['label']; + + break; + } + } + } + + $data['value'] = ! empty( $value ) ? wpforms_sanitize_array_combine( $value ) : ''; + + } else { + $data['value'] = $value_raw; + } + } + + // Backward compatibility: for single dropdown save a string, for multiple - array. + if ( ! $multiple && is_array( $data ) && ( 1 === count( $data ) ) ) { + $data = reset( $data ); + } + + // Push field details to be saved. + wpforms()->obj( 'process' )->fields[ $field_id ] = $data; + } + + /** + * Form frontend CSS enqueues. + * + * @since 1.6.1 + * + * @param array $forms Forms on the current page. + */ + public function enqueue_frontend_css( $forms ) { + + $has_modern_select = false; + + foreach ( $forms as $form ) { + if ( $this->is_field_style( $form, self::STYLE_MODERN ) ) { + $has_modern_select = true; + + break; + } + } + + if ( $has_modern_select || wpforms()->obj( 'frontend' )->assets_global() ) { + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-choicesjs', + WPFORMS_PLUGIN_URL . "assets/css/choices{$min}.css", + [], + self::CHOICES_VERSION + ); + } + } + + /** + * Form frontend JS enqueues. + * + * @since 1.6.1 + * + * @param array $forms Forms on the current page. + */ + public function enqueue_frontend_js( $forms ) { + + $has_modern_select = false; + + foreach ( $forms as $form ) { + if ( $this->is_field_style( $form, self::STYLE_MODERN ) ) { + $has_modern_select = true; + + break; + } + } + + if ( $has_modern_select || wpforms()->obj( 'frontend' )->assets_global() ) { + $this->enqueue_choicesjs_once( $forms ); + } + } + + /** + * Load WPForms Gutenberg block scripts. + * + * @since 1.8.1 + */ + public function enqueue_block_editor_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-choicesjs', + WPFORMS_PLUGIN_URL . "assets/css/choices{$min}.css", + [], + self::CHOICES_VERSION + ); + + $this->enqueue_choicesjs_once( [] ); + } + + /** + * Whether the provided form has a dropdown field with a specified style. + * + * @since 1.6.1 + * + * @param array $form Form data. + * @param string $style Desired field style. + * + * @return bool + */ + protected function is_field_style( $form, $style ) { + + $is_field_style = false; + + if ( empty( $form['fields'] ) ) { + return false; + } + + foreach ( (array) $form['fields'] as $field ) { + if ( + ! empty( $field['type'] ) && + $field['type'] === $this->type && + ! empty( $field['style'] ) && + sanitize_key( $style ) === $field['style'] + ) { + $is_field_style = true; + + break; + } + } + + return $is_field_style; + } + + /** + * Get a field name for an ajax error message. + * + * @since 1.6.3 + * + * @param string|mixed $name Field name for error triggered. + * @param array $field Field settings. + * @param array $props List of properties. + * @param string|string[] $error Error message. + * + * @return string + * @noinspection PhpMissingReturnTypeInspection + * @noinspection ReturnTypeCanBeDeclaredInspection + */ + public function ajax_error_field_name( $name, $field, $props, $error ) { + + $name = (string) $name; + + if ( ! isset( $field['type'] ) || $field['type'] !== 'select' ) { + return $name; + } + + if ( ! empty( $field['multiple'] ) ) { + $input = isset( $props['inputs'] ) ? end( $props['inputs'] ) : []; + + return isset( $input['attr']['name'] ) ? $input['attr']['name'] . '[]' : ''; + } + + return $name; + } +} + +new WPForms_Field_Select(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-text.php b/wp-content/plugins/wpforms-lite/includes/fields/class-text.php new file mode 100644 index 0000000..2b39281 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-text.php @@ -0,0 +1,558 @@ +name = esc_html__( 'Single Line Text', 'wpforms-lite' ); + $this->type = 'text'; + $this->icon = 'fa-text-width'; + $this->order = 30; + + // Define additional field properties. + add_filter( 'wpforms_field_properties_text', [ $this, 'field_properties' ], 5, 3 ); + add_action( 'wpforms_frontend_js', [ $this, 'frontend_js' ] ); + } + + /** + * Convert mask formatted for jquery.inputmask into the format used by amp-inputmask. + * + * Note that amp-inputmask does not yet support all of the options that jquery.inputmask provides. + * In particular, amp-inputmask doesn't provides: + * - Upper-alphabetical mask. + * - Upper-alphanumeric mask. + * - Advanced Input Masks with arbitrary repeating groups. + * + * @link https://amp.dev/documentation/components/amp-inputmask + * @link https://wpforms.com/docs/how-to-use-custom-input-masks/ + * + * @param string $mask Mask formatted for jquery.inputmask. + * @return array { + * Mask and placeholder. + * + * @type string $mask Mask for amp-inputmask. + * @type string $placeholder Placeholder derived from mask if one is not supplied. + * } + */ + protected function convert_mask_to_amp_inputmask( $mask ) { + $placeholder = ''; + + // Convert jquery.inputmask format into amp-inputmask format. + $amp_mask = ''; + $req_mask_mapping = [ + '9' => '0', // Numeric. + 'a' => 'L', // Alphabetical (a-z or A-Z). + 'A' => 'L', // Upper-alphabetical (A-Z). Note: AMP does not have an uppercase-alphabetical mask type, so same as previous. + '*' => 'A', // Alphanumeric (0-9, a-z, A-Z). + '&' => 'A', // Upper-alphanumeric (A-Z, 0-9). Note: AMP does not have an uppercase-alphanumeric mask type, so same as previous. + ' ' => '_', // Automatically insert spaces. + ]; + $opt_mask_mapping = [ + '9' => '9', // The user may optionally add a numeric character. + 'a' => 'l', // The user may optionally add an alphabetical character. + 'A' => 'l', // The user may optionally add an alphabetical character. + '*' => 'a', // The user may optionally add an alphanumeric character. + '&' => 'a', // The user may optionally add an alphanumeric character. + ]; + $placeholder_mapping = [ + '9' => '0', + 'a' => 'a', + 'A' => 'a', + '*' => '_', + '&' => '_', + ]; + $is_inside_optional = false; + $last_mask_token = null; + for ( $i = 0, $len = strlen( $mask ); $i < $len; $i++ ) { + if ( '[' === $mask[ $i ] ) { + $is_inside_optional = true; + $placeholder .= $mask[ $i ]; + continue; + } elseif ( ']' === $mask[ $i ] ) { + $is_inside_optional = false; + $placeholder .= $mask[ $i ]; + continue; + } elseif ( isset( $last_mask_token ) && preg_match( '/^\{(?P\d+)(?:,(?P\d+))?\}/', substr( $mask, $i ), $matches ) ) { + $amp_mask .= str_repeat( $req_mask_mapping[ $last_mask_token ], $matches['n'] ); + $placeholder .= str_repeat( $placeholder_mapping[ $last_mask_token ], $matches['n'] ); + if ( isset( $matches['m'] ) ) { + $amp_mask .= str_repeat( $opt_mask_mapping[ $last_mask_token ], $matches['m'] ); + $placeholder .= str_repeat( $placeholder_mapping[ $last_mask_token ], $matches['m'] ); + } + $i += strlen( $matches[0] ) - 1; + + $last_mask_token = null; // Reset. + continue; + } + + if ( '\\' === $mask[ $i ] ) { + $amp_mask .= '\\'; + $i++; + if ( ! isset( $mask[ $i ] ) ) { + continue; + } + $amp_mask .= $mask[ $i ]; + } else { + // Remember this token in case it is a mask. + if ( isset( $opt_mask_mapping[ $mask[ $i ] ] ) ) { + $last_mask_token = $mask[ $i ]; + } + + if ( $is_inside_optional && isset( $opt_mask_mapping[ $mask[ $i ] ] ) ) { + $amp_mask .= $opt_mask_mapping[ $mask[ $i ] ]; + } elseif ( isset( $req_mask_mapping[ $mask[ $i ] ] ) ) { + $amp_mask .= $req_mask_mapping[ $mask[ $i ] ]; + } else { + $amp_mask .= '\\' . $mask[ $i ]; + } + } + + if ( isset( $placeholder_mapping[ $mask[ $i ] ] ) ) { + $placeholder .= $placeholder_mapping[ $mask[ $i ] ]; + } else { + $placeholder .= $mask[ $i ]; + } + } + + return [ $amp_mask, $placeholder ]; + } + + /** + * Define additional field properties. + * + * @since 1.4.5 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Input primary: Detect custom input mask. + if ( empty( $field['input_mask'] ) ) { + return $properties; + } + + // Add class that will trigger custom mask. + $properties['inputs']['primary']['class'][] = 'wpforms-masked-input'; + + if ( wpforms_is_amp() ) { + return $this->get_amp_input_mask_properties( $properties, $field ); + } + + $properties['inputs']['primary']['data']['rule-inputmask-incomplete'] = true; + + if ( strpos( $field['input_mask'], 'alias:' ) !== false ) { + $mask = str_replace( 'alias:', '', $field['input_mask'] ); + $properties['inputs']['primary']['data']['inputmask-alias'] = $mask; + + return $properties; + } + + if ( strpos( $field['input_mask'], 'regex:' ) !== false ) { + $mask = str_replace( 'regex:', '', $field['input_mask'] ); + $properties['inputs']['primary']['data']['inputmask-regex'] = $mask; + + return $properties; + } + + if ( strpos( $field['input_mask'], 'date:' ) !== false ) { + $mask = str_replace( 'date:', '', $field['input_mask'] ); + $properties['inputs']['primary']['data']['inputmask-alias'] = 'datetime'; + $properties['inputs']['primary']['data']['inputmask-inputformat'] = $mask; + + /** + * Some datetime formats include letters, so we need to switch inputmode to text. + * For instance: + * – tt is am/pm + * – TT is AM/PM + */ + $properties['inputs']['primary']['data']['inputmask-inputmode'] = preg_match( '/[tT]/', $mask ) ? 'text' : 'numeric'; + + return $properties; + } + + $properties['inputs']['primary']['data']['inputmask-mask'] = $field['input_mask']; + + return $properties; + } + + /** + * Define additional field properties for the inputmask on AMP pages. + * + * @since 1.7.6 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * + * @return array + */ + private function get_amp_input_mask_properties( $properties, $field ) { + + list( $amp_mask, $placeholder ) = $this->convert_mask_to_amp_inputmask( $field['input_mask'] ); + + $properties['inputs']['primary']['attr']['mask'] = $amp_mask; + + if ( empty( $properties['inputs']['primary']['attr']['placeholder'] ) ) { + $properties['inputs']['primary']['attr']['placeholder'] = $placeholder; + } + + return $properties; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Limit length. + $args = [ + 'slug' => 'limit_enabled', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'limit_enabled', + 'value' => isset( $field['limit_enabled'] ), + 'desc' => esc_html__( 'Limit Length', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to limit text length by characters or words count.', 'wpforms-lite' ), + ], + false + ), + ]; + + $this->field_element( 'row', $field, $args ); + + $count = $this->field_element( + 'text', + $field, + [ + 'type' => 'number', + 'slug' => 'limit_count', + 'attrs' => [ + 'min' => 1, + 'step' => 1, + 'pattern' => '[0-9]', + ], + 'value' => ! empty( $field['limit_count'] ) ? absint( $field['limit_count'] ) : 1, + ], + false + ); + + $mode = $this->field_element( + 'select', + $field, + [ + 'slug' => 'limit_mode', + 'value' => ! empty( $field['limit_mode'] ) ? esc_attr( $field['limit_mode'] ) : 'characters', + 'options' => [ + 'characters' => esc_html__( 'Characters', 'wpforms-lite' ), + 'words' => esc_html__( 'Words', 'wpforms-lite' ), + ], + ], + false + ); + + $args = [ + 'slug' => 'limit_controls', + 'class' => ! isset( $field['limit_enabled'] ) ? 'wpforms-hide' : '', + 'content' => $count . $mode, + ]; + + $this->field_element( 'row', $field, $args ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Input Mask. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'input_mask', + 'value' => esc_html__( 'Input Mask', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter your custom input mask.', 'wpforms-lite' ), + 'after_tooltip' => '' . esc_html__( 'See Examples & Docs', 'wpforms-lite' ) . '', + ], + false + ); + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'input_mask', + 'value' => ! empty( $field['input_mask'] ) ? esc_attr( $field['input_mask'] ) : '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'input_mask', + 'content' => $lbl . $fld, + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Define data. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + + // Label. + $this->field_preview_option( 'label', $field ); + + // Primary input. + echo ''; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.0.0 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $primary = $field['properties']['inputs']['primary']; + + if ( isset( $field['limit_enabled'] ) ) { + $limit_count = isset( $field['limit_count'] ) ? absint( $field['limit_count'] ) : 0; + $limit_mode = isset( $field['limit_mode'] ) ? sanitize_key( $field['limit_mode'] ) : 'characters'; + + $primary['data']['form-id'] = $form_data['id']; + $primary['data']['field-id'] = $field['id']; + + if ( 'characters' === $limit_mode ) { + $primary['class'][] = 'wpforms-limit-characters-enabled'; + $primary['attr']['maxlength'] = $limit_count; + $primary['data']['text-limit'] = $limit_count; + } else { + $primary['class'][] = 'wpforms-limit-words-enabled'; + $primary['data']['text-limit'] = $limit_count; + } + } + + // Primary field. + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ), + $primary['required'] // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Enqueue frontend limit option js. + * + * @since 1.5.6 + * + * @param array $forms Forms on the current page. + */ + public function frontend_js( $forms ) { + + // Get fields. + $fields = array_map( + function( $form ) { + return empty( $form['fields'] ) ? [] : $form['fields']; + }, + (array) $forms + ); + + // Make fields flat. + $fields = array_reduce( + $fields, + function( $accumulator, $current ) { + return array_merge( $accumulator, $current ); + }, + [] + ); + + // Leave only fields with limit. + $fields = array_filter( + $fields, + function( $field ) { + return $field['type'] === $this->type && isset( $field['limit_enabled'] ) && ! empty( $field['limit_count'] ); + } + ); + + if ( count( $fields ) ) { + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-text-limit', + WPFORMS_PLUGIN_URL . "assets/js/frontend/fields/text-limit.es5{$min}.js", + [], + WPFORMS_VERSION, + $this->load_script_in_footer() + ); + } + } + + /** + * Format and sanitize field. + * + * @since 1.5.6 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + $name = ! empty( $field['label'] ) ? sanitize_text_field( $field['label'] ) : ''; + + // Sanitize. + $value = sanitize_text_field( $field_submit ); + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $name, + 'value' => $value, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Validate field on form submit. + * + * @since 1.6.2 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + parent::validate( $field_id, $field_submit, $form_data ); + + if ( empty( $form_data['fields'][ $field_id ] ) || empty( $form_data['fields'][ $field_id ]['limit_enabled'] ) ) { + return; + } + + $field = $form_data['fields'][ $field_id ]; + $limit = absint( $field['limit_count'] ); + $mode = ! empty( $field['limit_mode'] ) ? sanitize_key( $field['limit_mode'] ) : 'characters'; + $value = sanitize_text_field( $field_submit ); + + if ( 'characters' === $mode ) { + if ( mb_strlen( str_replace( "\r\n", "\n", $value ) ) > $limit ) { + /* translators: %s - limit characters number. */ + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf( _n( 'Text can\'t exceed %d character.', 'Text can\'t exceed %d characters.', $limit, 'wpforms-lite' ), $limit ); + + return; + } + } else { + if ( wpforms_count_words( $value ) > $limit ) { + /* translators: %s - limit words number. */ + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf( _n( 'Text can\'t exceed %d word.', 'Text can\'t exceed %d words.', $limit, 'wpforms-lite' ), $limit ); + + return; + } + } + } +} + +new WPForms_Field_Text(); diff --git a/wp-content/plugins/wpforms-lite/includes/fields/class-textarea.php b/wp-content/plugins/wpforms-lite/includes/fields/class-textarea.php new file mode 100644 index 0000000..ab0338f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/fields/class-textarea.php @@ -0,0 +1,380 @@ +name = esc_html__( 'Paragraph Text', 'wpforms-lite' ); + $this->keywords = esc_html__( 'textarea', 'wpforms-lite' ); + $this->type = 'textarea'; + $this->icon = 'fa-paragraph'; + $this->order = 50; + + add_action( 'wpforms_frontend_js', [ $this, 'frontend_js' ] ); + } + + /** + * Get the value, that is used to prefill via dynamic or fallback population. + * Based on field data and current properties. + * + * @since 1.6.4 + * + * @param string $raw_value Value from a GET param, always a string. + * @param string $input Represent a subfield inside the field. May be empty. + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function get_field_populated_single_property_value( $raw_value, $input, $properties, $field ) { + + if ( ! is_string( $raw_value ) ) { + return $properties; + } + + if ( + ! empty( $input ) && + isset( $properties['inputs'][ $input ] ) + ) { + $properties['inputs'][ $input ]['attr']['value'] = wpforms_sanitize_textarea_field( wp_unslash( $raw_value ) ); + } + + return $properties; + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field data and settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Limit length. + $args = [ + 'slug' => 'limit_enabled', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'limit_enabled', + 'value' => isset( $field['limit_enabled'] ) ? '1' : '0', + 'desc' => esc_html__( 'Limit Length', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to limit text length by characters or words count.', 'wpforms-lite' ), + ], + false + ), + ]; + + $this->field_element( 'row', $field, $args ); + + $count = $this->field_element( + 'text', + $field, + [ + 'type' => 'number', + 'slug' => 'limit_count', + 'attrs' => [ + 'min' => 1, + 'step' => 1, + 'pattern' => '[0-9]', + ], + 'value' => ! empty( $field['limit_count'] ) ? $field['limit_count'] : 1, + ], + false + ); + + $mode = $this->field_element( + 'select', + $field, + [ + 'slug' => 'limit_mode', + 'value' => ! empty( $field['limit_mode'] ) ? esc_attr( $field['limit_mode'] ) : 'characters', + 'options' => [ + 'characters' => esc_html__( 'Characters', 'wpforms-lite' ), + 'words' => esc_html__( 'Words', 'wpforms-lite' ), + ], + ], + false + ); + + $args = [ + 'slug' => 'limit_controls', + 'class' => ! isset( $field['limit_enabled'] ) ? 'wpforms-hide' : '', + 'content' => $count . $mode, + ]; + + $this->field_element( 'row', $field, $args ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field data and settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Primary input. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + + echo ''; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.0.0 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $primary = $field['properties']['inputs']['primary']; + $value = ''; + + if ( isset( $primary['attr']['value'] ) ) { + $value = esc_textarea( html_entity_decode( $primary['attr']['value'] ) ); + + unset( $primary['attr']['value'] ); + } + + if ( isset( $field['limit_enabled'] ) ) { + $limit_count = isset( $field['limit_count'] ) ? absint( $field['limit_count'] ) : 0; + $limit_mode = isset( $field['limit_mode'] ) ? sanitize_key( $field['limit_mode'] ) : 'characters'; + + $primary['data']['form-id'] = $form_data['id']; + $primary['data']['field-id'] = $field['id']; + + if ( 'characters' === $limit_mode ) { + $primary['class'][] = 'wpforms-limit-characters-enabled'; + $primary['attr']['maxlength'] = $limit_count; + $primary['data']['text-limit'] = $limit_count; + } else { + $primary['class'][] = 'wpforms-limit-words-enabled'; + $primary['data']['text-limit'] = $limit_count; + } + } + + // Primary field. + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ), + $primary['required'], // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $value // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Enqueue frontend limit option js. + * + * @since 1.5.6 + * + * @param array $forms Forms on the current page. + */ + public function frontend_js( $forms ) { + + // Get fields. + $fields = array_map( + function( $form ) { + return empty( $form['fields'] ) ? [] : $form['fields']; + }, + (array) $forms + ); + + // Make fields flat. + $fields = array_reduce( + $fields, + function( $accumulator, $current ) { + return array_merge( $accumulator, $current ); + }, + [] + ); + + // Leave only fields with limit. + $fields = array_filter( + $fields, + function( $field ) { + return $field['type'] === $this->type && isset( $field['limit_enabled'] ); + } + ); + + if ( count( $fields ) ) { + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-text-limit', + WPFORMS_PLUGIN_URL . "assets/js/frontend/fields/text-limit.es5{$min}.js", + [], + WPFORMS_VERSION, + $this->load_script_in_footer() + ); + } + } + + /** + * Format and sanitize field. + * + * @since 1.5.6 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + if ( is_array( $field_submit ) ) { + $field_submit = implode( "\r\n", array_filter( $field_submit ) ); + } + + $name = ! empty( $field['label'] ) ? sanitize_text_field( $field['label'] ) : ''; + + // Sanitize but keep line breaks. + $value = wpforms_sanitize_textarea_field( $field_submit ); + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $name, + 'value' => $value, + 'id' => wpforms_validate_field_id( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Validate field on form submit. + * + * @since 1.6.2 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + parent::validate( $field_id, $field_submit, $form_data ); + + if ( empty( $form_data['fields'][ $field_id ] ) || empty( $form_data['fields'][ $field_id ]['limit_enabled'] ) ) { + return; + } + + if ( is_array( $field_submit ) ) { + $field_submit = implode( "\r\n", array_filter( $field_submit ) ); + } + + $field = $form_data['fields'][ $field_id ]; + $limit = absint( $field['limit_count'] ); + $mode = ! empty( $field['limit_mode'] ) ? sanitize_key( $field['limit_mode'] ) : 'characters'; + $value = wpforms_sanitize_textarea_field( $field_submit ); + + if ( 'characters' === $mode ) { + if ( mb_strlen( str_replace( "\r\n", "\n", $value ) ) > $limit ) { + /* translators: %s - limit characters number. */ + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf( _n( 'Text can\'t exceed %d character.', 'Text can\'t exceed %d characters.', $limit, 'wpforms-lite' ), $limit ); + + return; + } + } else { + if ( wpforms_count_words( $value ) > $limit ) { + /* translators: %s - limit words number. */ + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf( _n( 'Text can\'t exceed %d word.', 'Text can\'t exceed %d words.', $limit, 'wpforms-lite' ), $limit ); + + return; + } + } + } +} + +new WPForms_Field_Textarea(); diff --git a/wp-content/plugins/wpforms-lite/includes/functions-list.php b/wp-content/plugins/wpforms-lite/includes/functions-list.php new file mode 100644 index 0000000..2d49902 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions-list.php @@ -0,0 +1,7 @@ +is_pro() ? 'wpforms_versions' : 'wpforms_versions_lite'; + $upgrades = (array) get_option( $option_name, [] ); + + if ( ! isset( $upgrades[ $version ] ) ) { + return false; + } + + return (int) $upgrades[ $version ]; +} + +/** + * Get the default capability to manage everything for WPForms. + * + * @since 1.4.4 + * + * @return string + */ +function wpforms_get_capability_manage_options(): string { + + /** + * Filters the default capability to manage everything for WPForms. + * By default, it is 'manage_options'. + * + * @since 1.4.4 + * + * @param string $capability Default capability to manage everything for WPForms. + */ + return (string) apply_filters( 'wpforms_manage_cap', 'manage_options' ); +} + +/** + * Check WPForms permissions for currently logged-in user. + * Both short (e.g. 'view_own_forms') or long (e.g. 'wpforms_view_own_forms') capability names can be used. + * Only WPForms capabilities get processed. + * + * @since 1.4.4 + * + * @param array|string $caps Capability name(s). + * @param int|mixed $id ID of the specific object to check against if capability is a "meta" cap. + * "Meta" capabilities, e.g. 'edit_post', 'edit_user', etc., + * are capabilities used by map_meta_cap() to map to other "primitive" capabilities, + * e.g. 'edit_posts', 'edit_others_posts', etc. + * Accessed via func_get_args() and passed to WP_User::has_cap(), then map_meta_cap(). + * + * @return bool + */ +function wpforms_current_user_can( $caps = [], $id = 0 ): bool { + + static $results; + + $id = (int) $id; + $caps_str = is_array( $caps ) ? implode( ' ', $caps ) : (string) $caps; + $hash = md5( $caps_str . $id ); + + // Return a cached result. + if ( isset( $results[ $hash ] ) ) { + return $results[ $hash ]; + } + + $access = wpforms()->obj( 'access' ); + + if ( ! $access || ! method_exists( $access, 'current_user_can' ) ) { + return false; + } + + $user_can = $access->current_user_can( $caps, $id ); + + /** + * Filters the result of the WPForms permissions check for the currently logged-in user. + * + * @since 1.4.4 + * + * @param bool $user_can Whether the current user has the capability. + * @param array|string $caps Capability name(s). + * @param int $id ID of the specific object to check against if capability is a "meta" cap. + */ + $results[ $hash ] = apply_filters( 'wpforms_current_user_can', $user_can, $caps, $id ); + + return $results[ $hash ]; +} + +/** + * Search for posts editable by the user. + * + * @since 1.7.9 + * + * @param string $search_term Optional search term. Default ''. + * @param array $args Args { + * Optional. An array of arguments. + * + * @type string $post_type Post type to search for. + * @type string[] $post_status Post status to search for. + * @type int $count Number of results to return. Default 20. + * } + * + * @return array + * @noinspection PhpTernaryExpressionCanBeReducedToShortVersionInspection + * @noinspection ElvisOperatorCanBeUsedInspection + */ +function wpforms_search_posts( $search_term = '', $args = [] ): array { + + global $wpdb; + + $default_args = [ + 'post_type' => 'page', + 'post_status' => [ 'publish' ], + 'count' => 20, + ]; + $args = wp_parse_args( $args, $default_args ); + + // @todo: add trash access capabilities to MySQL. + // See edit_post/edit_page case in map_meta_cap(). + $args['post_status'] = array_diff( $args['post_status'], [ 'trash' ] ); + + $user = wp_get_current_user(); + $user_id = $user->ID ?? 0; + $post_type = get_post_type_object( $args['post_type'] ); + + if ( ! $user || ! $user_id || ! $post_type || $args['count'] <= 0 ) { + return []; + } + + $last_changed = wp_cache_get_last_changed( 'posts' ); + $key = __FUNCTION__ . ":$search_term:$last_changed"; + $cache_posts = wp_cache_get( $key, '', false, $found ); + + if ( $found ) { + return (array) $cache_posts; + } + + $post_title_where = $search_term ? $wpdb->prepare( + 'post_title LIKE %s AND', + '%' . $wpdb->esc_like( $search_term ) . '%' + ) : + ''; + + $post_statuses = array_intersect( array_keys( get_post_statuses() ), $args['post_status'] ); + $post_statuses = wpforms_wpdb_prepare_in( $post_statuses ); + $policy_id = (int) get_option( 'wp_page_for_privacy_policy' ); + $can_delete_published_posts = (int) $user->has_cap( $post_type->cap->delete_published_posts ); + $can_delete_posts = (int) $user->has_cap( $post_type->cap->delete_posts ); + $can_delete_others_posts = (int) $user->has_cap( $post_type->cap->delete_others_posts ); + $can_delete_private_posts = (int) $user->has_cap( $post_type->cap->delete_private_posts ); + $can_edit_policy = (int) $user->has_cap( map_meta_cap( 'manage_privacy_options', $user_id )[0] ); + + // For the case when the user is post author. + $capability_author_where = "post_author = $user_id AND + ( ( post_status IN ( 'publish', 'future' ) AND $can_delete_published_posts ) OR + ( ( post_status NOT IN ( 'publish', 'future', 'trash' ) ) AND $can_delete_posts ) + )"; + + // For the case when accessing someone other's post. + $capability_other_where = "post_author != $user_id AND + $can_delete_others_posts AND + ( ( post_status IN ( 'publish', 'future' ) AND $can_delete_published_posts ) OR + ( ( post_status IN ( 'private' ) ) AND $can_delete_private_posts ) + )"; + + // For privacy policy page. + $capability_policy_where = "ID = $policy_id AND $can_edit_policy"; + + $capability_where = '( ' . + '(' . $capability_author_where . ') OR ' . + '(' . $capability_other_where . ') OR ' . + '(' . $capability_policy_where . ')' . + ' )'; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $posts = $wpdb->get_results( + $wpdb->prepare( + "SELECT ID, post_title, post_author + FROM $wpdb->posts + WHERE $post_title_where + post_type = %s AND + post_status IN ( $post_statuses ) AND + $capability_where + ORDER BY post_title LIMIT %d", + $args['post_type'], + absint( $args['count'] ) + ) + ); + // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared + + $posts = $posts ? $posts : []; + $posts = array_map( + static function ( $post ) { + $post->post_title = wpforms_get_post_title( $post ); + + unset( $post->post_author ); + + return $post; + }, + $posts + ); + + wp_cache_set( $key, $posts ); + + return $posts; +} + +/** + * Search pages by search term and return an array containing + * `value` and `label` which is the post ID and post title respectively. + * + * @since 1.7.9 + * + * @param string $search_term The search term. + * @param array $args Optional. An array of arguments. + * + * @return array + */ +function wpforms_search_pages_for_dropdown( $search_term, $args = [] ): array { + + $search_results = wpforms_search_posts( $search_term, $args ); + $result_pages = []; + + // Prepare for ChoicesJS render. + foreach ( $search_results as $search_result ) { + $result_pages[] = [ + 'value' => absint( $search_result->ID ), + 'label' => esc_html( $search_result->post_title ), + ]; + } + + return $result_pages; +} diff --git a/wp-content/plugins/wpforms-lite/includes/functions/builder.php b/wp-content/plugins/wpforms-lite/includes/functions/builder.php new file mode 100644 index 0000000..741f9a5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions/builder.php @@ -0,0 +1,33 @@ +%3$s%4$s', + sanitize_html_class( $is_active ? 'green' : 'silver' ), + esc_attr( $is_active ), + $is_active ? '' : '', + esc_html( $label ), + esc_attr( $title ), + esc_attr( $connection_id ) + ); + + printf( '', esc_attr( $name ), esc_attr( $connection_id ), absint( $is_active ) ); +} diff --git a/wp-content/plugins/wpforms-lite/includes/functions/checks.php b/wp-content/plugins/wpforms-lite/includes/functions/checks.php new file mode 100644 index 0000000..5f68e62 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions/checks.php @@ -0,0 +1,595 @@ + 254 ) { + return false; + } + + $email_arr = explode( '@', $email ); + + if ( count( $email_arr ) !== 2 ) { + return false; + } + + [ $local, $domain ] = $email_arr; + + /** + * RFC requires local part to be no longer than 64 octets. + * Punycode library checks for 63 octets. + * + * @link https://github.com/true/php-punycode/blob/master/src/Punycode.php#L182. + */ + if ( strlen( $local ) > 63 ) { + return false; + } + + $domain_arr = explode( '.', $domain ); + + foreach ( $domain_arr as $domain_label ) { + $domain_label = trim( $domain_label ); + + if ( ! $domain_label ) { + return false; + } + + // The RFC says: 'A DNS label may be no more than 63 octets long'. + if ( strlen( $domain_label ) > 63 ) { + return false; + } + } + + if ( ! $punycode ) { + $punycode = new Punycode(); + } + + /** + * The wp_mail() uses phpMailer, which uses is_email() as verification callback. + * For verification, phpMailer sends the email address where the domain part is punycode encoded only. + * We follow here the same principle. + */ + $email_check = $local . '@' . $punycode->encode( $domain ); + + // Other limitations are checked by the native WordPress function is_email(). + return is_email( $email_check ) ? $local . '@' . $domain : false; +} + +/** + * Check whether the string is json-encoded. + * + * @since 1.7.5 + * + * @param string $value A string. + * + * @return bool + */ +function wpforms_is_json( $value ): bool { + + return ( + is_string( $value ) && + is_array( json_decode( $value, true ) ) && + json_last_error() === JSON_ERROR_NONE + ); +} + +/** + * Check whether the current page is in AMP mode or not. + * We need to check for specific functions, as there is no special AMP header. + * + * @since 1.4.1 + * + * @param bool $check_theme_support Whether theme support should be checked. Defaults to true. + * + * @return bool + */ +function wpforms_is_amp( $check_theme_support = true ): bool { + + $is_amp = false; + + // Check for AMP by AMP Project Contributors. + if ( function_exists( 'amp_is_request' ) && amp_is_request() ) { + $is_amp = true; + } + + if ( $is_amp && $check_theme_support ) { + $is_amp = current_theme_supports( 'amp' ); + } + + /** + * Filters AMP flag. + * + * @since 1.4.1 + * + * @param bool $is_amp Current page AMP status. + * + * @return bool + */ + return (bool) apply_filters( 'wpforms_is_amp', $is_amp ); +} + +/** + * Helper function to determine if loading on WPForms related admin page. + * + * Here we determine if the current administration page is owned/created by + * WPForms. This is done in compliance with WordPress best practices for + * development, so that we only load required WPForms CSS and JS files on pages + * we create. As a result, we do not load our assets admin wide, where they might + * conflict with other plugins needlessly, also leading to a better, faster user + * experience for our users. + * + * @since 1.3.9 + * + * @param string $slug Slug identifier for a specific WPForms admin page. + * @param string $view Slug identifier for a specific WPForms admin page view ("subpage"). + * + * @return bool + */ +function wpforms_is_admin_page( $slug = '', $view = '' ): bool { + + // phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash + $page = ( (array) ( $_REQUEST['page'] ?? '' ) )[0]; + + // Check against basic requirements. + if ( + strpos( $page, 'wpforms' ) === false || + ! is_admin() + ) { + return false; + } + + // Check against page slug identifier. + if ( + ( ! empty( $slug ) && $_REQUEST['page'] !== 'wpforms-' . $slug ) || + ( empty( $slug ) && $_REQUEST['page'] === 'wpforms-builder' ) + ) { + return false; + } + + // Check against sublevel page view. + if ( + ! empty( $view ) && + ( empty( $_REQUEST['view'] ) || $_REQUEST['view'] !== $view ) + ) { + return false; + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash + + return true; +} + +/** + * Check if a string is empty. + * + * @since 1.5.0 + * + * @param string $value String to test. + * + * @return bool + */ +function wpforms_is_empty_string( $value ): bool { + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + return $value === ''; +} + +/** + * Determine if the request is a rest API call. + * + * Case #1: After WP_REST_Request initialization + * Case #2: Support "plain" permalink settings + * Case #3: It can happen that WP_Rewrite is not yet initialized, + * so do this (wp-settings.php) + * Case #4: URL Path begins with wp-json/ (your REST prefix) + * Also supports WP installations in sub folders + * + * @since 1.8.8 + * + * @return bool True if the request is a REST API call, false if not. + * @author matzeeable + */ +function wpforms_is_rest(): bool { + + if ( ! isset( $_SERVER['REQUEST_URI'] ) ) { + return false; + } + + // Case #1. + if ( defined( 'REST_REQUEST' ) && constant( 'REST_REQUEST' ) ) { + return true; + } + + // Case #2. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $rest_route = isset( $_GET['rest_route'] ) ? + filter_input( INPUT_GET, 'rest_route', FILTER_SANITIZE_FULL_SPECIAL_CHARS ) : + ''; + + if ( strpos( trim( $rest_route, '\\/' ), rest_get_url_prefix() ) === 0 ) { + return true; + } + + // Case #3. + global $wp_rewrite; + if ( $wp_rewrite === null ) { + // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited + $wp_rewrite = new WP_Rewrite(); + } + + // Case #4. + $current_url = (string) wp_parse_url( add_query_arg( [] ), PHP_URL_PATH ); + $rest_url = wp_parse_url( trailingslashit( rest_url() ), PHP_URL_PATH ); + + return strpos( $current_url, $rest_url ) === 0; +} + +/** + * Determine if the request is a WPForms related rest API call. + * + * NOTE: The function shouldn't be used before the `rest_api_init` action. + * + * @since 1.9.6.1 + * + * @return bool True if the request is a WPForms related rest API call, false if not. + */ +function wpforms_is_wpforms_rest(): bool { + + if ( ! wpforms_is_rest() ) { + return false; + } + + $rest_url = wp_parse_url( trailingslashit( rest_url() ) ); + $current_url = wp_parse_url( trailingslashit( wpforms_current_url() ) ); + $rest_url['path'] = $rest_url['path'] ?? ''; + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + $is_rest_plain = $rest_url['path'] === '/index.php' && ! empty( $_GET['rest_route'] ); + $is_rest_post_name = strpos( $rest_url['path'], '/wp-json/' ) !== false; + + if ( $is_rest_plain ) { + $rest_route = sanitize_text_field( wp_unslash( $_GET['rest_route'] ) ); + + return strpos( $rest_route, '/wpforms/' ) !== false; + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended + + if ( $is_rest_post_name ) { + return strpos( $current_url['path'] ?? '', '/wpforms/' ) !== false; + } + + return false; +} + +/** + * Determine if the request is WPForms AJAX. + * + * @since 1.8.0 + * @since 1.9.1 Added an optional parameter to check for a specific action. + * + * @param string $action Certain AJAX action to check. Optional. Default is empty. + * + * @return bool + */ +function wpforms_is_ajax( string $action = '' ): bool { + + if ( ! wp_doing_ajax() ) { + return false; + } + + // Make sure the request target is admin-ajax.php. + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && basename( sanitize_text_field( wp_normalize_path( $_SERVER['SCRIPT_FILENAME'] ) ) ) !== 'admin-ajax.php' ) { + return false; + } + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $request_action = isset( $_REQUEST['action'] ) ? sanitize_key( $_REQUEST['action'] ) : ''; + $is_wpforms_action = strpos( $request_action, 'wpforms_' ) === 0; + + if ( empty( $action ) ) { + return $is_wpforms_action; + } + + return $is_wpforms_action && $action === $request_action; +} + +/** + * Determine if request is frontend AJAX. + * + * @since 1.5.8.2 + * @since 1.6.5 Added filterable frontend ajax actions list as a fallback to missing referer cases. + * @since 1.6.7.1 Removed a requirement for an AJAX action to be a WPForms action if referer is not missing. + * @since 1.8.0 Added clear separation between frontend and admin AJAX requests, see `wpforms_is_admin_ajax()`. + * + * @return bool + */ +function wpforms_is_frontend_ajax(): bool { + + if ( wpforms_is_ajax() && ! wpforms_is_admin_ajax() ) { + return true; + } + + // Try detecting a frontend AJAX call indirectly by comparing the current action + // with a known frontend actions list in case there's no HTTP referer. + + $ref = wp_get_raw_referer(); + + if ( $ref ) { + return false; + } + + $frontend_actions = [ + 'wpforms_submit', + 'wpforms_file_upload_speed_test', + 'wpforms_upload_chunk_init', + 'wpforms_upload_chunk', + 'wpforms_file_chunks_uploaded', + 'wpforms_remove_file', + 'wpforms_restricted_email', + 'wpforms_form_locker_unique_answer', + 'wpforms_form_abandonment', + ]; + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $action = isset( $_REQUEST['action'] ) ? sanitize_key( $_REQUEST['action'] ) : ''; + + /** + * Allow modifying the list of frontend AJAX actions. + * + * This filter may be running as early as `plugins_loaded` hook. + * Please mind the hook order when using it. + * + * @since 1.6.5 + * + * @param array $frontend_actions A list of frontend actions. + */ + $frontend_actions = (array) apply_filters( 'wpforms_is_frontend_ajax_frontend_actions', $frontend_actions ); + + return in_array( $action, $frontend_actions, true ); +} + +/** + * Determine if request is admin AJAX. + * + * @since 1.8.0 + * + * @return bool + */ +function wpforms_is_admin_ajax(): bool { + + if ( ! wpforms_is_ajax() ) { + return false; + } + + $ref = wp_get_raw_referer(); + + if ( ! $ref ) { + return false; + } + + $path = wp_parse_url( $ref, PHP_URL_PATH ); + $admin_path = wp_parse_url( admin_url(), PHP_URL_PATH ); + + // Is an admin AJAX call if HTTP referer contain an admin path. + return strpos( $path, $admin_path ) !== false; +} + +/** + * Check if Gutenberg is active. + * + * @since 1.6.2 + * + * @return bool True if Gutenberg is active. + * @noinspection PhpUndefinedFunctionInspection + */ +function wpforms_is_gutenberg_active(): bool { + + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + + if ( is_plugin_active( 'classic-editor/classic-editor.php' ) ) { + return in_array( get_option( 'classic-editor-replace' ), [ 'no-replace', 'block' ], true ); + } + + if ( is_plugin_active( 'disable-gutenberg/disable-gutenberg.php' ) ) { + return ! disable_gutenberg(); + } + + return true; +} + +/** + * Check if website support Divi Builder. + * + * @since 1.9.2.3 + * + * @return bool True if Divi builder plugin or Divi or Extra theme is active. + */ +function wpforms_is_divi_active(): bool { + + if ( function_exists( 'et_divi_builder_init_plugin' ) ) { + return true; + } + + $allow_themes = [ 'Divi', 'Extra' ]; + $theme_name = get_template(); + + return in_array( $theme_name, $allow_themes, true ); +} + +/** + * Determines whether the current request is a WP CLI request. + * + * @since 1.7.6 + * + * @return bool + */ +function wpforms_doing_wp_cli(): bool { + + return defined( 'WP_CLI' ) && WP_CLI; +} + +/** + * Determines whether the Action Scheduler task is executing. + * + * @since 1.9.4 + * + * @return bool + */ +function wpforms_doing_scheduled_action(): bool { + + return class_exists( Tasks::class ) && Tasks::is_executing(); +} + +/** + * Determines whether search functionality is enabled for Choices.js elements in the admin area. + * + * @since 1.8.3 + * + * @param array $data Data to be displayed in the dropdown. + * + * @return string + */ +function wpforms_choices_js_is_search_enabled( $data ): string { + + /** + * Filter max number of items at which no search box is displayed. + * + * @since 1.8.3 + * + * @param int $count Max items count. + */ + return count( $data ) >= apply_filters( 'wpforms_choices_js_is_search_enabled_max_limit', 20 ) ? 'true' : 'false'; +} + +/** + * Check if a form is a template. + * + * @since 1.8.8 + * + * @param int|WP_Post $form Form ID or object. + * + * @return bool True if the form is a template. + */ +function wpforms_is_form_template( $form ): bool { + + $template_post_type = 'wpforms-template'; + + if ( $form instanceof WP_Post ) { + return $form->post_type === $template_post_type; + } + + return $template_post_type === get_post_type( $form ); +} + +/** + * Checks if the current screen is using the block editor. + * + * @since 1.8.8 + * + * @return bool True if the current screen is using the block editor, false otherwise. + */ +function wpforms_is_block_editor(): bool { + + $screen = get_current_screen(); + + return $screen && method_exists( $screen, 'is_block_editor' ) && $screen->is_block_editor(); +} + +/** + * Check for the editor page. + * + * @since 1.9.0 + * + * @return bool True if the page is in the editor, false otherwise. + */ +function wpforms_is_editor_page(): bool { + + // phpcs:disable WordPress.Security.NonceVerification + $rest_request = defined( 'REST_REQUEST' ) && REST_REQUEST; + $context = isset( $_REQUEST['context'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['context'] ) ) : ''; + $post_action = isset( $_POST['action'] ) ? sanitize_text_field( wp_unslash( $_POST['action'] ) ) : ''; + $get_action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : ''; + + $is_gutenberg = $rest_request && $context === 'edit'; + $is_elementor = $post_action === 'elementor_ajax' || $get_action === 'elementor'; + $is_divi = wpforms_is_divi_editor(); + // phpcs:enable WordPress.Security.NonceVerification + + return $is_gutenberg || $is_elementor || $is_divi; +} + +/** + * Determines whether the current context is the Divi editor. + * + * @since 1.9.4 + * + * @return bool + */ +function wpforms_is_divi_editor(): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended + return ! empty( $_GET['et_fb'] ) || ( isset( $_POST['action'] ) && sanitize_key( $_POST['action'] ) === 'wpforms_divi_preview' ); +} diff --git a/wp-content/plugins/wpforms-lite/includes/functions/colors.php b/wp-content/plugins/wpforms-lite/includes/functions/colors.php new file mode 100644 index 0000000..e840f94 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions/colors.php @@ -0,0 +1,165 @@ + 155 ? $dark : $light; +} + +/** + * Convert hex color value to RGB. + * + * @since 1.7.9 + * @since 1.8.5 New param and return type were added. + * + * @param string $hex Color value in hex format. + * @param bool $as_string Whether to return the RGB value as a string or array. + * + * @return string|array Color value in RGB format. + */ +function wpforms_hex_to_rgb( $hex, $as_string = true ) { + + $hex = ltrim( $hex, '#' ); + + // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF". + $rgb_parts = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $hex ); + + $rgb = []; + $rgb['R'] = hexdec( $rgb_parts[0] . $rgb_parts[1] ); + $rgb['G'] = hexdec( $rgb_parts[2] . $rgb_parts[3] ); + $rgb['B'] = hexdec( $rgb_parts[4] . $rgb_parts[5] ); + + // Return the RGB value as a string. + if ( $as_string ) { + return sprintf( + '%1$d, %2$d, %3$d', + $rgb['R'], + $rgb['G'], + $rgb['B'] + ); + } + + return $rgb; // This is an array. +} + +/** + * Get a lighter color hex value. + * + * @since 1.8.5 + * + * @param string $color Color hex value. + * @param int $factor Factor to lighten the color. + * + * @return string Lighter color hex value. + */ +function wpforms_hex_lighter( $color, $factor = 30 ) { + + $base = wpforms_hex_to_rgb( $color, false ); + + // Leave if we can't get the RGB values. + if ( empty( $base ) || count( $base ) !== 3 ) { + return ''; + } + + $hex = '#'; + + foreach ( $base as $channel ) { + $amount = 255 - $channel; + $amount = $amount / 100; + $amount = round( floatval( $amount * $factor ) ); + $new_decimal = $channel + $amount; + + $new_hex_component = dechex( $new_decimal ); + + if ( strlen( $new_hex_component ) < 2 ) { + $new_hex_component = '0' . $new_hex_component; + } + + $hex .= $new_hex_component; + } + + return $hex; +} + +/** + * Get a darker color hex value. + * + * @since 1.8.5 + * + * @param string $color Color hex value. + * @param int $factor Factor to darken the color. + * + * @return string Darker color hex value. + */ +function wpforms_hex_darker( $color, $factor = 30 ) { + + $base = wpforms_hex_to_rgb( $color, false ); + + // Leave if we can't get the RGB values. + if ( empty( $base ) || count( $base ) !== 3 ) { + return ''; + } + + $hex = '#'; + + foreach ( $base as $channel ) { + $amount = $channel / 100; + $amount = round( floatval( $amount * $factor ) ); + $new_decimal = $channel - $amount; + + $new_hex_component = dechex( $new_decimal ); + + if ( strlen( $new_hex_component ) < 2 ) { + $new_hex_component = '0' . $new_hex_component; + } + + $hex .= $new_hex_component; + } + + return $hex; +} + +/** + * Generate a contrasting color based on the given color. + * + * This function calculates a contrasting color to ensure readability based on the provided color. + * + * @since 1.8.5 + * + * @param string $color The original color value. Color hex value. + * @param int $light_factor The factor to lighten the color. + * @param int $dark_factor The factor to darken the color. + * + * @return string The contrasting color value. + */ +function wpforms_generate_contrasting_color( $color, $light_factor = 30, $dark_factor = 30 ) { + + $is_dark = wpforms_light_or_dark( $color, 'light', 'dark' ) === 'dark'; + + return $is_dark ? wpforms_hex_lighter( $color, $light_factor ) : wpforms_hex_darker( $color, $dark_factor ); +} diff --git a/wp-content/plugins/wpforms-lite/includes/functions/data-presets.php b/wp-content/plugins/wpforms-lite/includes/functions/data-presets.php new file mode 100644 index 0000000..d220b78 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions/data-presets.php @@ -0,0 +1,445 @@ + esc_html__( 'Alabama', 'wpforms-lite' ), + 'AK' => esc_html__( 'Alaska', 'wpforms-lite' ), + 'AZ' => esc_html__( 'Arizona', 'wpforms-lite' ), + 'AR' => esc_html__( 'Arkansas', 'wpforms-lite' ), + 'CA' => esc_html__( 'California', 'wpforms-lite' ), + 'CO' => esc_html__( 'Colorado', 'wpforms-lite' ), + 'CT' => esc_html__( 'Connecticut', 'wpforms-lite' ), + 'DE' => esc_html__( 'Delaware', 'wpforms-lite' ), + 'DC' => esc_html__( 'District of Columbia', 'wpforms-lite' ), + 'FL' => esc_html__( 'Florida', 'wpforms-lite' ), + 'GA' => esc_html_x( 'Georgia', 'US State', 'wpforms-lite' ), + 'HI' => esc_html__( 'Hawaii', 'wpforms-lite' ), + 'ID' => esc_html__( 'Idaho', 'wpforms-lite' ), + 'IL' => esc_html__( 'Illinois', 'wpforms-lite' ), + 'IN' => esc_html__( 'Indiana', 'wpforms-lite' ), + 'IA' => esc_html__( 'Iowa', 'wpforms-lite' ), + 'KS' => esc_html__( 'Kansas', 'wpforms-lite' ), + 'KY' => esc_html__( 'Kentucky', 'wpforms-lite' ), + 'LA' => esc_html__( 'Louisiana', 'wpforms-lite' ), + 'ME' => esc_html__( 'Maine', 'wpforms-lite' ), + 'MD' => esc_html__( 'Maryland', 'wpforms-lite' ), + 'MA' => esc_html__( 'Massachusetts', 'wpforms-lite' ), + 'MI' => esc_html__( 'Michigan', 'wpforms-lite' ), + 'MN' => esc_html__( 'Minnesota', 'wpforms-lite' ), + 'MS' => esc_html__( 'Mississippi', 'wpforms-lite' ), + 'MO' => esc_html__( 'Missouri', 'wpforms-lite' ), + 'MT' => esc_html__( 'Montana', 'wpforms-lite' ), + 'NE' => esc_html__( 'Nebraska', 'wpforms-lite' ), + 'NV' => esc_html__( 'Nevada', 'wpforms-lite' ), + 'NH' => esc_html__( 'New Hampshire', 'wpforms-lite' ), + 'NJ' => esc_html__( 'New Jersey', 'wpforms-lite' ), + 'NM' => esc_html__( 'New Mexico', 'wpforms-lite' ), + 'NY' => esc_html__( 'New York', 'wpforms-lite' ), + 'NC' => esc_html__( 'North Carolina', 'wpforms-lite' ), + 'ND' => esc_html__( 'North Dakota', 'wpforms-lite' ), + 'OH' => esc_html__( 'Ohio', 'wpforms-lite' ), + 'OK' => esc_html__( 'Oklahoma', 'wpforms-lite' ), + 'OR' => esc_html__( 'Oregon', 'wpforms-lite' ), + 'PA' => esc_html__( 'Pennsylvania', 'wpforms-lite' ), + 'RI' => esc_html__( 'Rhode Island', 'wpforms-lite' ), + 'SC' => esc_html__( 'South Carolina', 'wpforms-lite' ), + 'SD' => esc_html__( 'South Dakota', 'wpforms-lite' ), + 'TN' => esc_html__( 'Tennessee', 'wpforms-lite' ), + 'TX' => esc_html__( 'Texas', 'wpforms-lite' ), + 'UT' => esc_html__( 'Utah', 'wpforms-lite' ), + 'VT' => esc_html__( 'Vermont', 'wpforms-lite' ), + 'VA' => esc_html__( 'Virginia', 'wpforms-lite' ), + 'WA' => esc_html__( 'Washington', 'wpforms-lite' ), + 'WV' => esc_html__( 'West Virginia', 'wpforms-lite' ), + 'WI' => esc_html__( 'Wisconsin', 'wpforms-lite' ), + 'WY' => esc_html__( 'Wyoming', 'wpforms-lite' ), + ]; + + return apply_filters( 'wpforms_us_states', $states ); +} + +/** + * Countries. + * + * @since 1.0.0 + * + * @return array + */ +function wpforms_countries() { + + $countries = [ + 'AF' => esc_html__( 'Afghanistan', 'wpforms-lite' ), + 'AX' => esc_html__( 'Åland Islands', 'wpforms-lite' ), + 'AL' => esc_html__( 'Albania', 'wpforms-lite' ), + 'DZ' => esc_html__( 'Algeria', 'wpforms-lite' ), + 'AS' => esc_html__( 'American Samoa', 'wpforms-lite' ), + 'AD' => esc_html__( 'Andorra', 'wpforms-lite' ), + 'AO' => esc_html__( 'Angola', 'wpforms-lite' ), + 'AI' => esc_html__( 'Anguilla', 'wpforms-lite' ), + 'AQ' => esc_html__( 'Antarctica', 'wpforms-lite' ), + 'AG' => esc_html__( 'Antigua and Barbuda', 'wpforms-lite' ), + 'AR' => esc_html__( 'Argentina', 'wpforms-lite' ), + 'AM' => esc_html__( 'Armenia', 'wpforms-lite' ), + 'AW' => esc_html__( 'Aruba', 'wpforms-lite' ), + 'AU' => esc_html__( 'Australia', 'wpforms-lite' ), + 'AT' => esc_html__( 'Austria', 'wpforms-lite' ), + 'AZ' => esc_html__( 'Azerbaijan', 'wpforms-lite' ), + 'BS' => esc_html__( 'Bahamas', 'wpforms-lite' ), + 'BH' => esc_html__( 'Bahrain', 'wpforms-lite' ), + 'BD' => esc_html__( 'Bangladesh', 'wpforms-lite' ), + 'BB' => esc_html__( 'Barbados', 'wpforms-lite' ), + 'BY' => esc_html__( 'Belarus', 'wpforms-lite' ), + 'BE' => esc_html__( 'Belgium', 'wpforms-lite' ), + 'BZ' => esc_html__( 'Belize', 'wpforms-lite' ), + 'BJ' => esc_html__( 'Benin', 'wpforms-lite' ), + 'BM' => esc_html__( 'Bermuda', 'wpforms-lite' ), + 'BT' => esc_html__( 'Bhutan', 'wpforms-lite' ), + 'BO' => esc_html__( 'Bolivia (Plurinational State of)', 'wpforms-lite' ), + 'BQ' => esc_html__( 'Bonaire, Saint Eustatius and Saba', 'wpforms-lite' ), + 'BA' => esc_html__( 'Bosnia and Herzegovina', 'wpforms-lite' ), + 'BW' => esc_html__( 'Botswana', 'wpforms-lite' ), + 'BV' => esc_html__( 'Bouvet Island', 'wpforms-lite' ), + 'BR' => esc_html__( 'Brazil', 'wpforms-lite' ), + 'IO' => esc_html__( 'British Indian Ocean Territory', 'wpforms-lite' ), + 'BN' => esc_html__( 'Brunei Darussalam', 'wpforms-lite' ), + 'BG' => esc_html__( 'Bulgaria', 'wpforms-lite' ), + 'BF' => esc_html__( 'Burkina Faso', 'wpforms-lite' ), + 'BI' => esc_html__( 'Burundi', 'wpforms-lite' ), + 'CV' => esc_html__( 'Cabo Verde', 'wpforms-lite' ), + 'KH' => esc_html__( 'Cambodia', 'wpforms-lite' ), + 'CM' => esc_html__( 'Cameroon', 'wpforms-lite' ), + 'CA' => esc_html__( 'Canada', 'wpforms-lite' ), + 'KY' => esc_html__( 'Cayman Islands', 'wpforms-lite' ), + 'CF' => esc_html__( 'Central African Republic', 'wpforms-lite' ), + 'TD' => esc_html__( 'Chad', 'wpforms-lite' ), + 'CL' => esc_html__( 'Chile', 'wpforms-lite' ), + 'CN' => esc_html__( 'China', 'wpforms-lite' ), + 'CX' => esc_html__( 'Christmas Island', 'wpforms-lite' ), + 'CC' => esc_html__( 'Cocos (Keeling) Islands', 'wpforms-lite' ), + 'CO' => esc_html__( 'Colombia', 'wpforms-lite' ), + 'KM' => esc_html__( 'Comoros', 'wpforms-lite' ), + 'CG' => esc_html__( 'Congo', 'wpforms-lite' ), + 'CD' => esc_html__( 'Congo (Democratic Republic of the)', 'wpforms-lite' ), + 'CK' => esc_html__( 'Cook Islands', 'wpforms-lite' ), + 'CR' => esc_html__( 'Costa Rica', 'wpforms-lite' ), + 'CI' => esc_html__( 'Côte d\'Ivoire', 'wpforms-lite' ), + 'HR' => esc_html__( 'Croatia', 'wpforms-lite' ), + 'CU' => esc_html__( 'Cuba', 'wpforms-lite' ), + 'CW' => esc_html__( 'Curaçao', 'wpforms-lite' ), + 'CY' => esc_html__( 'Cyprus', 'wpforms-lite' ), + 'CZ' => esc_html__( 'Czech Republic', 'wpforms-lite' ), + 'DK' => esc_html__( 'Denmark', 'wpforms-lite' ), + 'DJ' => esc_html__( 'Djibouti', 'wpforms-lite' ), + 'DM' => esc_html__( 'Dominica', 'wpforms-lite' ), + 'DO' => esc_html__( 'Dominican Republic', 'wpforms-lite' ), + 'EC' => esc_html__( 'Ecuador', 'wpforms-lite' ), + 'EG' => esc_html__( 'Egypt', 'wpforms-lite' ), + 'SV' => esc_html__( 'El Salvador', 'wpforms-lite' ), + 'GQ' => esc_html__( 'Equatorial Guinea', 'wpforms-lite' ), + 'ER' => esc_html__( 'Eritrea', 'wpforms-lite' ), + 'EE' => esc_html__( 'Estonia', 'wpforms-lite' ), + 'ET' => esc_html__( 'Ethiopia', 'wpforms-lite' ), + 'FK' => esc_html__( 'Falkland Islands (Malvinas)', 'wpforms-lite' ), + 'FO' => esc_html__( 'Faroe Islands', 'wpforms-lite' ), + 'FJ' => esc_html__( 'Fiji', 'wpforms-lite' ), + 'FI' => esc_html__( 'Finland', 'wpforms-lite' ), + 'FR' => esc_html__( 'France', 'wpforms-lite' ), + 'GF' => esc_html__( 'French Guiana', 'wpforms-lite' ), + 'PF' => esc_html__( 'French Polynesia', 'wpforms-lite' ), + 'TF' => esc_html__( 'French Southern Territories', 'wpforms-lite' ), + 'GA' => esc_html__( 'Gabon', 'wpforms-lite' ), + 'GM' => esc_html__( 'Gambia', 'wpforms-lite' ), + 'GE' => esc_html_x( 'Georgia', 'Country', 'wpforms-lite' ), + 'DE' => esc_html__( 'Germany', 'wpforms-lite' ), + 'GH' => esc_html__( 'Ghana', 'wpforms-lite' ), + 'GI' => esc_html__( 'Gibraltar', 'wpforms-lite' ), + 'GR' => esc_html__( 'Greece', 'wpforms-lite' ), + 'GL' => esc_html__( 'Greenland', 'wpforms-lite' ), + 'GD' => esc_html__( 'Grenada', 'wpforms-lite' ), + 'GP' => esc_html__( 'Guadeloupe', 'wpforms-lite' ), + 'GU' => esc_html__( 'Guam', 'wpforms-lite' ), + 'GT' => esc_html__( 'Guatemala', 'wpforms-lite' ), + 'GG' => esc_html__( 'Guernsey', 'wpforms-lite' ), + 'GN' => esc_html__( 'Guinea', 'wpforms-lite' ), + 'GW' => esc_html__( 'Guinea-Bissau', 'wpforms-lite' ), + 'GY' => esc_html__( 'Guyana', 'wpforms-lite' ), + 'HT' => esc_html__( 'Haiti', 'wpforms-lite' ), + 'HM' => esc_html__( 'Heard Island and McDonald Islands', 'wpforms-lite' ), + 'HN' => esc_html__( 'Honduras', 'wpforms-lite' ), + 'HK' => esc_html__( 'Hong Kong', 'wpforms-lite' ), + 'HU' => esc_html__( 'Hungary', 'wpforms-lite' ), + 'IS' => esc_html__( 'Iceland', 'wpforms-lite' ), + 'IN' => esc_html__( 'India', 'wpforms-lite' ), + 'ID' => esc_html__( 'Indonesia', 'wpforms-lite' ), + 'IR' => esc_html__( 'Iran (Islamic Republic of)', 'wpforms-lite' ), + 'IQ' => esc_html__( 'Iraq', 'wpforms-lite' ), + 'IE' => esc_html__( 'Ireland (Republic of)', 'wpforms-lite' ), + 'IM' => esc_html__( 'Isle of Man', 'wpforms-lite' ), + 'IL' => esc_html__( 'Israel', 'wpforms-lite' ), + 'IT' => esc_html__( 'Italy', 'wpforms-lite' ), + 'JM' => esc_html__( 'Jamaica', 'wpforms-lite' ), + 'JP' => esc_html__( 'Japan', 'wpforms-lite' ), + 'JE' => esc_html__( 'Jersey', 'wpforms-lite' ), + 'JO' => esc_html__( 'Jordan', 'wpforms-lite' ), + 'KZ' => esc_html__( 'Kazakhstan', 'wpforms-lite' ), + 'KE' => esc_html__( 'Kenya', 'wpforms-lite' ), + 'KI' => esc_html__( 'Kiribati', 'wpforms-lite' ), + 'KP' => esc_html__( 'Korea (Democratic People\'s Republic of)', 'wpforms-lite' ), + 'KR' => esc_html__( 'Korea (Republic of)', 'wpforms-lite' ), + 'XK' => esc_html__( 'Kosovo', 'wpforms-lite' ), + 'KW' => esc_html__( 'Kuwait', 'wpforms-lite' ), + 'KG' => esc_html__( 'Kyrgyzstan', 'wpforms-lite' ), + 'LA' => esc_html__( 'Lao People\'s Democratic Republic', 'wpforms-lite' ), + 'LV' => esc_html__( 'Latvia', 'wpforms-lite' ), + 'LB' => esc_html__( 'Lebanon', 'wpforms-lite' ), + 'LS' => esc_html__( 'Lesotho', 'wpforms-lite' ), + 'LR' => esc_html__( 'Liberia', 'wpforms-lite' ), + 'LY' => esc_html__( 'Libya', 'wpforms-lite' ), + 'LI' => esc_html__( 'Liechtenstein', 'wpforms-lite' ), + 'LT' => esc_html__( 'Lithuania', 'wpforms-lite' ), + 'LU' => esc_html__( 'Luxembourg', 'wpforms-lite' ), + 'MO' => esc_html__( 'Macao', 'wpforms-lite' ), + 'MK' => esc_html__( 'North Macedonia (Republic of)', 'wpforms-lite' ), + 'MG' => esc_html__( 'Madagascar', 'wpforms-lite' ), + 'MW' => esc_html__( 'Malawi', 'wpforms-lite' ), + 'MY' => esc_html__( 'Malaysia', 'wpforms-lite' ), + 'MV' => esc_html__( 'Maldives', 'wpforms-lite' ), + 'ML' => esc_html__( 'Mali', 'wpforms-lite' ), + 'MT' => esc_html__( 'Malta', 'wpforms-lite' ), + 'MH' => esc_html__( 'Marshall Islands', 'wpforms-lite' ), + 'MQ' => esc_html__( 'Martinique', 'wpforms-lite' ), + 'MR' => esc_html__( 'Mauritania', 'wpforms-lite' ), + 'MU' => esc_html__( 'Mauritius', 'wpforms-lite' ), + 'YT' => esc_html__( 'Mayotte', 'wpforms-lite' ), + 'MX' => esc_html__( 'Mexico', 'wpforms-lite' ), + 'FM' => esc_html__( 'Micronesia (Federated States of)', 'wpforms-lite' ), + 'MD' => esc_html__( 'Moldova (Republic of)', 'wpforms-lite' ), + 'MC' => esc_html__( 'Monaco', 'wpforms-lite' ), + 'MN' => esc_html__( 'Mongolia', 'wpforms-lite' ), + 'ME' => esc_html__( 'Montenegro', 'wpforms-lite' ), + 'MS' => esc_html__( 'Montserrat', 'wpforms-lite' ), + 'MA' => esc_html__( 'Morocco', 'wpforms-lite' ), + 'MZ' => esc_html__( 'Mozambique', 'wpforms-lite' ), + 'MM' => esc_html__( 'Myanmar', 'wpforms-lite' ), + 'NA' => esc_html__( 'Namibia', 'wpforms-lite' ), + 'NR' => esc_html__( 'Nauru', 'wpforms-lite' ), + 'NP' => esc_html__( 'Nepal', 'wpforms-lite' ), + 'NL' => esc_html__( 'Netherlands', 'wpforms-lite' ), + 'NC' => esc_html__( 'New Caledonia', 'wpforms-lite' ), + 'NZ' => esc_html__( 'New Zealand', 'wpforms-lite' ), + 'NI' => esc_html__( 'Nicaragua', 'wpforms-lite' ), + 'NE' => esc_html__( 'Niger', 'wpforms-lite' ), + 'NG' => esc_html__( 'Nigeria', 'wpforms-lite' ), + 'NU' => esc_html__( 'Niue', 'wpforms-lite' ), + 'NF' => esc_html__( 'Norfolk Island', 'wpforms-lite' ), + 'MP' => esc_html__( 'Northern Mariana Islands', 'wpforms-lite' ), + 'NO' => esc_html__( 'Norway', 'wpforms-lite' ), + 'OM' => esc_html__( 'Oman', 'wpforms-lite' ), + 'PK' => esc_html__( 'Pakistan', 'wpforms-lite' ), + 'PW' => esc_html__( 'Palau', 'wpforms-lite' ), + 'PS' => esc_html__( 'Palestine (State of)', 'wpforms-lite' ), + 'PA' => esc_html__( 'Panama', 'wpforms-lite' ), + 'PG' => esc_html__( 'Papua New Guinea', 'wpforms-lite' ), + 'PY' => esc_html__( 'Paraguay', 'wpforms-lite' ), + 'PE' => esc_html__( 'Peru', 'wpforms-lite' ), + 'PH' => esc_html__( 'Philippines', 'wpforms-lite' ), + 'PN' => esc_html__( 'Pitcairn', 'wpforms-lite' ), + 'PL' => esc_html__( 'Poland', 'wpforms-lite' ), + 'PT' => esc_html__( 'Portugal', 'wpforms-lite' ), + 'PR' => esc_html__( 'Puerto Rico', 'wpforms-lite' ), + 'QA' => esc_html__( 'Qatar', 'wpforms-lite' ), + 'RE' => esc_html__( 'Réunion', 'wpforms-lite' ), + 'RO' => esc_html__( 'Romania', 'wpforms-lite' ), + 'RU' => esc_html__( 'Russian Federation', 'wpforms-lite' ), + 'RW' => esc_html__( 'Rwanda', 'wpforms-lite' ), + 'BL' => esc_html__( 'Saint Barthélemy', 'wpforms-lite' ), + 'SH' => esc_html__( 'Saint Helena, Ascension and Tristan da Cunha', 'wpforms-lite' ), + 'KN' => esc_html__( 'Saint Kitts and Nevis', 'wpforms-lite' ), + 'LC' => esc_html__( 'Saint Lucia', 'wpforms-lite' ), + 'MF' => esc_html__( 'Saint Martin (French part)', 'wpforms-lite' ), + 'PM' => esc_html__( 'Saint Pierre and Miquelon', 'wpforms-lite' ), + 'VC' => esc_html__( 'Saint Vincent and the Grenadines', 'wpforms-lite' ), + 'WS' => esc_html__( 'Samoa', 'wpforms-lite' ), + 'SM' => esc_html__( 'San Marino', 'wpforms-lite' ), + 'ST' => esc_html__( 'Sao Tome and Principe', 'wpforms-lite' ), + 'SA' => esc_html__( 'Saudi Arabia', 'wpforms-lite' ), + 'SN' => esc_html__( 'Senegal', 'wpforms-lite' ), + 'RS' => esc_html__( 'Serbia', 'wpforms-lite' ), + 'SC' => esc_html__( 'Seychelles', 'wpforms-lite' ), + 'SL' => esc_html__( 'Sierra Leone', 'wpforms-lite' ), + 'SG' => esc_html__( 'Singapore', 'wpforms-lite' ), + 'SX' => esc_html__( 'Sint Maarten (Dutch part)', 'wpforms-lite' ), + 'SK' => esc_html__( 'Slovakia', 'wpforms-lite' ), + 'SI' => esc_html__( 'Slovenia', 'wpforms-lite' ), + 'SB' => esc_html__( 'Solomon Islands', 'wpforms-lite' ), + 'SO' => esc_html__( 'Somalia', 'wpforms-lite' ), + 'ZA' => esc_html__( 'South Africa', 'wpforms-lite' ), + 'GS' => esc_html__( 'South Georgia and the South Sandwich Islands', 'wpforms-lite' ), + 'SS' => esc_html__( 'South Sudan', 'wpforms-lite' ), + 'ES' => esc_html__( 'Spain', 'wpforms-lite' ), + 'LK' => esc_html__( 'Sri Lanka', 'wpforms-lite' ), + 'SD' => esc_html__( 'Sudan', 'wpforms-lite' ), + 'SR' => esc_html__( 'Suriname', 'wpforms-lite' ), + 'SJ' => esc_html__( 'Svalbard and Jan Mayen', 'wpforms-lite' ), + 'SZ' => esc_html__( 'Eswatini (Kingdom of)', 'wpforms-lite' ), + 'SE' => esc_html__( 'Sweden', 'wpforms-lite' ), + 'CH' => esc_html__( 'Switzerland', 'wpforms-lite' ), + 'SY' => esc_html__( 'Syrian Arab Republic', 'wpforms-lite' ), + 'TW' => esc_html__( 'Taiwan, Republic of China', 'wpforms-lite' ), + 'TJ' => esc_html__( 'Tajikistan', 'wpforms-lite' ), + 'TZ' => esc_html__( 'Tanzania (United Republic of)', 'wpforms-lite' ), + 'TH' => esc_html__( 'Thailand', 'wpforms-lite' ), + 'TL' => esc_html__( 'Timor-Leste', 'wpforms-lite' ), + 'TG' => esc_html__( 'Togo', 'wpforms-lite' ), + 'TK' => esc_html__( 'Tokelau', 'wpforms-lite' ), + 'TO' => esc_html__( 'Tonga', 'wpforms-lite' ), + 'TT' => esc_html__( 'Trinidad and Tobago', 'wpforms-lite' ), + 'TN' => esc_html__( 'Tunisia', 'wpforms-lite' ), + 'TR' => esc_html__( 'Türkiye', 'wpforms-lite' ), + 'TM' => esc_html__( 'Turkmenistan', 'wpforms-lite' ), + 'TC' => esc_html__( 'Turks and Caicos Islands', 'wpforms-lite' ), + 'TV' => esc_html__( 'Tuvalu', 'wpforms-lite' ), + 'UG' => esc_html__( 'Uganda', 'wpforms-lite' ), + 'UA' => esc_html__( 'Ukraine', 'wpforms-lite' ), + 'AE' => esc_html__( 'United Arab Emirates', 'wpforms-lite' ), + 'GB' => esc_html__( 'United Kingdom of Great Britain and Northern Ireland', 'wpforms-lite' ), + 'US' => esc_html__( 'United States of America', 'wpforms-lite' ), + 'UM' => esc_html__( 'United States Minor Outlying Islands', 'wpforms-lite' ), + 'UY' => esc_html__( 'Uruguay', 'wpforms-lite' ), + 'UZ' => esc_html__( 'Uzbekistan', 'wpforms-lite' ), + 'VU' => esc_html__( 'Vanuatu', 'wpforms-lite' ), + 'VA' => esc_html__( 'Vatican City State', 'wpforms-lite' ), + 'VE' => esc_html__( 'Venezuela (Bolivarian Republic of)', 'wpforms-lite' ), + 'VN' => esc_html__( 'Vietnam', 'wpforms-lite' ), + 'VG' => esc_html__( 'Virgin Islands (British)', 'wpforms-lite' ), + 'VI' => esc_html__( 'Virgin Islands (U.S.)', 'wpforms-lite' ), + 'WF' => esc_html__( 'Wallis and Futuna', 'wpforms-lite' ), + 'EH' => esc_html__( 'Western Sahara', 'wpforms-lite' ), + 'YE' => esc_html__( 'Yemen', 'wpforms-lite' ), + 'ZM' => esc_html__( 'Zambia', 'wpforms-lite' ), + 'ZW' => esc_html__( 'Zimbabwe', 'wpforms-lite' ), + ]; + + return apply_filters( 'wpforms_countries', $countries ); +} + +/** + * Calendar Months. + * + * @since 1.3.7 + * + * @return array + */ +function wpforms_months() { + + $months = [ + 'Jan' => esc_html__( 'January', 'wpforms-lite' ), + 'Feb' => esc_html__( 'February', 'wpforms-lite' ), + 'Mar' => esc_html__( 'March', 'wpforms-lite' ), + 'Apr' => esc_html__( 'April', 'wpforms-lite' ), + 'May' => esc_html__( 'May', 'wpforms-lite' ), + 'Jun' => esc_html__( 'June', 'wpforms-lite' ), + 'Jul' => esc_html__( 'July', 'wpforms-lite' ), + 'Aug' => esc_html__( 'August', 'wpforms-lite' ), + 'Sep' => esc_html__( 'September', 'wpforms-lite' ), + 'Oct' => esc_html__( 'October', 'wpforms-lite' ), + 'Nov' => esc_html__( 'November', 'wpforms-lite' ), + 'Dec' => esc_html__( 'December', 'wpforms-lite' ), + ]; + + return apply_filters( 'wpforms_months', $months ); +} + +/** + * Calendar Days. + * + * @since 1.3.7 + * + * @return array + */ +function wpforms_days() { + + $days = [ + 'Sun' => esc_html__( 'Sunday', 'wpforms-lite' ), + 'Mon' => esc_html__( 'Monday', 'wpforms-lite' ), + 'Tue' => esc_html__( 'Tuesday', 'wpforms-lite' ), + 'Wed' => esc_html__( 'Wednesday', 'wpforms-lite' ), + 'Thu' => esc_html__( 'Thursday', 'wpforms-lite' ), + 'Fri' => esc_html__( 'Friday', 'wpforms-lite' ), + 'Sat' => esc_html__( 'Saturday', 'wpforms-lite' ), + ]; + + return apply_filters( 'wpforms_days', $days ); +} + +/** + * Return available date formats. + * + * @since 1.7.5 + * + * @return array + */ +function wpforms_date_formats() { + + /** + * Filters available date formats. + * + * @since 1.3.0 + * + * @param array $date_formats Default date formats. + * Item key is JS date character - see https://flatpickr.js.org/formatting/ + * Item value is in PHP format - see http://php.net/manual/en/function.date.php. + */ + return (array) apply_filters( + 'wpforms_datetime_date_formats', + [ + 'm/d/Y' => 'm/d/Y', + 'd/m/Y' => 'd/m/Y', + 'Y/m/d' => 'Y/m/d', + 'm.d.Y' => 'm.d.Y', + 'd.m.Y' => 'd.m.Y', + 'Y.m.d' => 'Y.m.d', + 'F j, Y' => 'F j, Y', + ] + ); +} + +/** + * Return available time formats. + * + * @since 1.7.7 + * + * @return array + */ +function wpforms_time_formats() { + + /** + * Filters available time formats. + * + * @since 1.5.9 + * + * @param array $time_formats Default time formats. + * Item key is in PHP format which it used in jquery.timepicker as well, + * see http://php.net/manual/en/function.date.php. + */ + return (array) apply_filters( + 'wpforms_datetime_time_formats', + [ + 'g:i A' => '12 H', + 'H:i' => '24 H', + ] + ); +} diff --git a/wp-content/plugins/wpforms-lite/includes/functions/date-time.php b/wp-content/plugins/wpforms-lite/includes/functions/date-time.php new file mode 100644 index 0000000..06b7a19 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions/date-time.php @@ -0,0 +1,118 @@ + + .wpforms-debug { + line-height: 0; + } + .wpforms-debug textarea { + background: #f6f7f7 !important; + margin: 20px 0 0 0; + width: 100%%; + height: 500px; + font-size: 12px; + font-family: Consolas, Menlo, Monaco, monospace; + direction: ltr; + unicode-bidi: embed; + line-height: 1.4; + padding: 10px; + border-radius: 0; + border-color: #c3c4c7; + box-sizing: border-box; + } + .postbox .wpforms-debug { + padding: 6px; + } + .postbox .wpforms-debug:not(:first-of-type) { + padding-top: 0; + } + .postbox .wpforms-debug textarea { + margin-top: 0 !important; + } + +
              + +
              ', + "\n\n" . esc_html( $data ) + ); + + /** + * Allow developers to determine whether the debug data should be displayed. + * Works only in debug mode (`WPFORMS_DEBUG` constant is `true`). + * + * @since 1.6.8 + * + * @param bool $allow_display True by default. + */ + $allow_display = apply_filters( 'wpforms_debug_data_allow_display', true ); + + if ( $do_echo && $allow_display ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $output; + } else { + return $output; + } +} + +/** + * Log helper. + * + * @since 1.0.0 + * + * @param string $title Title of a log message. + * @param mixed $message Content of a log message. + * @param array $args Expected keys: type, form_id, meta, parent, force. + */ +function wpforms_log( $title = '', $message = '', $args = [] ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Skip if logs disabled in Tools -> Logs. + if ( empty( $args['force'] ) && ! wpforms_setting( 'logs-enable' ) ) { + return; + } + + // Require log title. + if ( empty( $title ) ) { + return; + } + + /** + * Compare error levels to determine if we should log. + * Current supported levels: + * - Conditional Logic (conditional_logic) + * - Entries (entry) + * - Errors (error) + * - Payments (payment) + * - Providers (provider) + * - Security (security) + * - Spam (spam) + * - Log (log) + */ + $types = ! empty( $args['type'] ) ? (array) $args['type'] : [ 'error' ]; + + // Skip invalid logs types. + $log_types = Log::get_log_types(); + + foreach ( $types as $key => $type ) { + if ( ! isset( $log_types[ $type ] ) ) { + unset( $types[ $key ] ); + } + } + + if ( empty( $types ) ) { + return; + } + + /** + * Filter log message. + * + * @since 1.8.2 + * + * @param mixed $message Log message. + * @param string $title Log title. + * @param array $args Log arguments. + */ + $message = apply_filters( 'wpforms_log_message', $message, $title, $args ); + + // Make arrays and objects look nice. + if ( is_array( $message ) || is_object( $message ) ) { + $message = '
              ' . esc_html( print_r( $message, true ) ) . '
              '; // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r + } + + // Filter logs types from Tools -> Logs page. + $logs_types = wpforms_setting( 'logs-types' ); + + if ( $logs_types && empty( array_intersect( $logs_types, $types ) ) ) { + return; + } + + // Filter user roles from Tools -> Logs page. + $current_user = function_exists( 'wp_get_current_user' ) ? wp_get_current_user() : null; + $current_user_id = $current_user->ID ?? 0; + $current_user_roles = $current_user->roles ?? []; + $logs_user_roles = wpforms_setting( 'logs-user-roles' ); + + if ( $logs_user_roles && empty( array_intersect( $logs_user_roles, $current_user_roles ) ) ) { + return; + } + + // Filter logs users from Tools -> Logs page. + $logs_users = wpforms_setting( 'logs-users' ); + + if ( $logs_users && ! in_array( $current_user_id, $logs_users, true ) ) { + return; + } + + $log = wpforms()->obj( 'log' ); + + if ( ! $log || ! method_exists( $log, 'add' ) ) { + return; + } + + // Create log entry. + $log->add( + $title, + $message, + $types, + isset( $args['form_id'] ) ? absint( $args['form_id'] ) : 0, + isset( $args['parent'] ) ? absint( $args['parent'] ) : 0, + $current_user_id + ); +} + +/** + * Wrapper for set_time_limit to see if it is enabled. + * + * @since 1.6.4 + * + * @param int $limit Time limit. + */ +function wpforms_set_time_limit( $limit = 0 ) { + + if ( function_exists( 'set_time_limit' ) && false === strpos( ini_get( 'disable_functions' ), 'set_time_limit' ) ) { + @set_time_limit( $limit ); // @codingStandardsIgnoreLine + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/functions/education.php b/wp-content/plugins/wpforms-lite/includes/functions/education.php new file mode 100644 index 0000000..8cc63a7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/functions/education.php @@ -0,0 +1,96 @@ + + + +
              +

              +
              + + '; + + $output .= sprintf( '', $this->slug, $connection_id, esc_attr( $connection['connection_name'] ) ); + + $output .= ''; + + return $output; + } + + /** + * Provider account authorize fields HTML. + * + * @since 1.0.0 + * + * @return string + */ + public function output_auth() { + + return ''; + } + + /** + * Provider account select HTML. + * + * @since 1.0.0 + * + * @param string $connection_id Unique connection ID. + * @param array $connection Array of connection data. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ + public function output_accounts( $connection_id = '', $connection = [] ) { + + if ( empty( $connection_id ) || empty( $connection ) ) { + return ''; + } + + $providers = wpforms_get_providers_options(); + + if ( empty( $providers[ $this->slug ] ) ) { + return ''; + } + + $output = '
              '; + + $output .= sprintf( '

              %s

              ', esc_html__( 'Select Account', 'wpforms-lite' ) ); + $output .= sprintf( ''; + + $output .= '
              '; + + return $output; + } + + /** + * Provider account lists HTML. + * + * @since 1.0.0 + * + * @param string $connection_id Unique connection ID. + * @param array $connection Connection data. + * + * @return WP_Error|string + * @noinspection HtmlUnknownAttribute + */ + public function output_lists( $connection_id = '', $connection = [] ) { + + if ( empty( $connection_id ) || empty( $connection['account_id'] ) ) { + return ''; + } + + $lists = $this->api_lists( $connection_id, $connection['account_id'] ); + $selected = ! empty( $connection['list_id'] ) ? $connection['list_id'] : ''; + + if ( is_wp_error( $lists ) ) { + return $lists; + } + + $output = '
              '; + + $output .= sprintf( '

              %s

              ', esc_html__( 'Select List', 'wpforms-lite' ) ); + + $output .= sprintf( ''; + + $output .= '
              '; + + return $output; + } + + /** + * Provider account list groups HTML. + * + * @since 1.0.0 + * + * @param string $connection_id Unique connection ID. + * @param array $connection Connection data. + * + * @return string + * @noinspection HtmlUnknownAttribute + */ + public function output_groups( $connection_id = '', $connection = [] ) { + + if ( empty( $connection_id ) || empty( $connection['account_id'] ) || empty( $connection['list_id'] ) ) { + return ''; + } + + $groupsets = $this->api_groups( $connection_id, $connection['account_id'], $connection['list_id'] ); + + if ( is_wp_error( $groupsets ) ) { + return ''; + } + + $output = '
              '; + + $output .= sprintf( '

              %s

              ', esc_html__( 'Select Groups', 'wpforms-lite' ) ); + + $output .= sprintf( '

              %s

              ', esc_html__( 'We also noticed that you have some segments in your list. You can select specific list segments below if needed. This is optional.', 'wpforms-lite' ) ); + + $output .= '
              '; + + foreach ( $groupsets as $groupset ) { + + $output .= sprintf( '

              %s

              ', esc_html( $groupset['name'] ) ); + + foreach ( $groupset['groups'] as $group ) { + + $selected = + ! empty( $connection['groups'] ) && + ! empty( $connection['groups'][ $groupset['id'] ] ) && + in_array( $group['name'], $connection['groups'][ $groupset['id'] ], true ); + + $output .= sprintf( + '', + esc_attr( $group['id'] ), + esc_attr( $group['name'] ), + $this->slug, + $connection_id, + $groupset['id'], + $group['id'], + checked( $selected, true, false ), + esc_attr( $group['id'] ), + esc_attr( $group['name'] ) + ); + } + } + + $output .= '
              '; + + $output .= '
              '; + + return $output; + } + + /** + * Provider account list fields HTML. + * + * @since 1.0.0 + * + * @param string $connection_id Unique connection ID. + * @param array $connection Connection data. + * @param mixed $form Form id or form data. + * + * @return WP_Error|string + * @noinspection HtmlUnknownAttribute + */ + public function output_fields( $connection_id = '', $connection = [], $form = '' ) { + + if ( empty( $connection_id ) || empty( $connection['account_id'] ) || empty( $connection['list_id'] ) || empty( $form ) ) { + return ''; + } + + $provider_fields = $this->api_fields( $connection_id, $connection['account_id'], $connection['list_id'] ); + $form_fields = $this->get_form_fields( $form ); + + if ( is_wp_error( $provider_fields ) ) { + return $provider_fields; + } + + $output = '
              '; + + $output .= sprintf( '

              %s

              ', esc_html__( 'List Fields', 'wpforms-lite' ) ); + + // Table with all the fields. + $output .= ''; + + $output .= sprintf( '', esc_html__( 'List Fields', 'wpforms-lite' ), esc_html__( 'Available Form Fields', 'wpforms-lite' ) ); + + $output .= ''; + + foreach ( $provider_fields as $provider_field ) : + + $output .= ''; + + $output .= ''; + + $output .= ''; + + endforeach; + + $output .= ''; + + $output .= '
              %s%s
              '; + + $output .= esc_html( $provider_field['name'] ); + + if ( + ! empty( $provider_field['req'] ) && + (int) $provider_field['req'] === 1 + ) { + $output .= '*'; + } + + $output .= ''; + + $output .= sprintf( ''; + + $output .= '
              '; + + $output .= '
              '; + + return $output; + } + + /** + * Provider connection conditional options HTML. + * + * @since 1.0.0 + * + * @param string $connection_id Unique connection ID. + * @param array $connection Configured connection properties. + * @param string|array $form Form properties. + * + * @return string + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function output_conditionals( $connection_id = '', $connection = [], $form = '' ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + if ( empty( $connection['account_id'] ) || ! function_exists( 'wpforms_conditional_logic' ) ) { + return ''; + } + + return wpforms_conditional_logic()->builder_block( + [ + 'form' => $this->form_data, + 'type' => 'panel', + 'panel' => $this->slug, + 'parent' => 'providers', + 'subsection' => $connection_id, + ], + false + ); + } + + + /** + * Provider account list options HTML. + * + * @since 1.0.0 + * + * @param string $connection_id Connection ID. + * @param array $connection Connection data. + * + * @return string + */ + public function output_options( $connection_id = '', $connection = [] ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + return ''; + } + + /******************************************************** + * Builder methods - these methods _build_ the Builder. * + ********************************************************/ + + /** + * Fetch and store the current form data when in the builder. + * + * @since 1.2.3 + */ + public function builder_form_data() { + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( empty( $_GET['form_id'] ) || ! empty( $this->form_data ) ) { + return; + } + + $revisions = wpforms()->obj( 'revisions' ); + $revision = $revisions ? $revisions->get_revision() : null; + + if ( $revision ) { + // Setup form data based on the revision_id. + $this->form_data = wpforms_decode( $revision->post_content ); + + return; + } + + // Setup form data based on the ID. + $form = wpforms()->obj( 'form' ); + + if ( ! $form ) { + return; + } + + $this->form_data = $form->get( + absint( $_GET['form_id'] ), + [ 'content_only' => true ] + ); + // phpcs:enable WordPress.Security.NonceVerification.Recommended + } + + /** + * Display content inside the panel content area. + * + * @since 1.0.0 + */ + public function builder_content() { // phpcs:ignore Generic.Metrics.NestingLevel.MaxExceeded + + $form_data = $this->form_data; + $providers = wpforms_get_providers_options(); + + if ( ! empty( $form_data['providers'][ $this->slug ] ) && ! empty( $providers[ $this->slug ] ) ) { + foreach ( $form_data['providers'][ $this->slug ] as $connection_id => $connection ) { + foreach ( $providers[ $this->slug ] as $account_id => $connections ) { + if ( + ! empty( $connection['account_id'] ) && + $connection['account_id'] === $account_id + ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $this->output_connection( $connection_id, $connection, $form_data ); + } + } + } + } + } + + /** + * Get provider configured status. + * + * @since 1.6.8 + */ + private function get_configured() { + + return ! empty( $this->form_data['id'] ) && Status::init( $this->slug )->is_ready( $this->form_data['id'] ) + ? 'configured' + : ''; + } + + /** + * Display content inside the panel sidebar area. + * + * @since 1.0.0 + */ + public function builder_sidebar() { + + $configured = $this->get_configured(); + + echo ''; + + echo ''; + + echo esc_html( $this->name ); + + echo ''; + + if ( ! empty( $configured ) ) { + echo ''; + } + + echo ''; + } + + /** + * Wrap the builder content with the required markup. + * + * @since 1.0.0 + */ + public function builder_output() { + + $form_id = ! empty( $this->form_data['id'] ) ? $this->form_data['id'] : ''; + + ?> +
              + + builder_output_before(); ?> + +
              + + name ); ?> + + + +
              + slug )->is_ready( $form_id ), + $this->slug, + $this->name, + $this->icon + ); + + ?> +
              + +
              + + builder_content(); ?> + +
              + +
              + + builder_output_after(); ?> + +
              + esc_html__( 'You do not have permission', 'wpforms-lite' ), + ] + ); + } + + if ( empty( $_POST['provider'] ) || empty( $_POST['key'] ) ) { + wp_send_json_error( + [ + 'error' => esc_html__( 'Missing data', 'wpforms-lite' ), + ] + ); + } + + $providers = wpforms_get_providers_options(); + + if ( ! empty( $providers[ $_POST['provider'] ][ $_POST['key'] ] ) ) { + + unset( $providers[ $_POST['provider'] ][ $_POST['key'] ] ); + update_option( 'wpforms_providers', $providers ); + wp_send_json_success(); + + } else { + wp_send_json_error( + [ + 'error' => esc_html__( 'Connection missing', 'wpforms-lite' ), + ] + ); + } + } + + /** + * AJAX to add a provider from the settings integrations tab. + * + * @since 1.0.0 + */ + public function integrations_tab_add() { + + if ( $_POST['provider'] !== $this->slug ) { //phpcs:ignore + return; + } + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( + [ + 'error' => esc_html__( 'You do not have permission', 'wpforms-lite' ), + ] + ); + } + + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash + $args = $_POST['data'] ?? []; + + if ( empty( $args ) ) { + wp_send_json_error( + [ + 'error' => esc_html__( 'Missing data', 'wpforms-lite' ), + ] + ); + } + + $data = wp_parse_args( $args ); + $auth = $this->api_auth( $data ); + + if ( is_wp_error( $auth ) ) { + + wp_send_json_error( + [ + 'error' => esc_html__( 'Could not connect to the provider.', 'wpforms-lite' ), + 'error_msg' => $auth->get_error_message(), + ] + ); + + } else { + + $account = '
            • '; + $account .= '' . sanitize_text_field( $data['label'] ) . ''; + $account .= ''; + $account .= esc_html( + sprintf( /* translators: %1$s - Connection date. */ + __( 'Connected on: %1$s', 'wpforms-lite' ), + wpforms_date_format( time(), '', true ) + ) + ); + $account .= ''; + $account .= '' . esc_html__( 'Disconnect', 'wpforms-lite' ) . ''; + $account .= '
            • '; + + wp_send_json_success( + [ + 'html' => $account, + ] + ); + } + } + + /** + * Add provider to the Settings Integrations tab. + * + * @since 1.0.0 + * + * @param array $active Array of active connections. + * @param array $settings Array of all connection settings. + */ + public function integrations_tab_options( $active, $settings ) { + + $connected = ! empty( $active[ $this->slug ] ); + $accounts = ! empty( $settings[ $this->slug ] ) ? $settings[ $this->slug ] : []; + $class = $connected && $accounts ? 'connected' : ''; + $arrow = 'right'; + /* translators: %s - provider name. */ + $title_connect_to = sprintf( esc_html__( 'Connect to %s', 'wpforms-lite' ), esc_html( $this->name ) ); + + // This lets us highlight a specific service by a special link. + if ( ! empty( $_GET['wpforms-integration'] ) ) { //phpcs:ignore + if ( $this->slug === $_GET['wpforms-integration'] ) { //phpcs:ignore + $class .= ' focus-in'; + $arrow = 'down'; + } else { + $class .= ' focus-out'; + } + } + ?> + +
              + +
              + + + +
              +

              name ); ?>

              +

              + name ) + ); + ?> +

              + + + + +
              + +
              + +
              + +
              +
                + $account ) { + echo '
              • '; + echo '' . esc_html( $account['label'] ) . ''; + echo ''; + echo esc_html( + sprintf( /* translators: %1$s - Connection date. */ + __( 'Connected on: %1$s', 'wpforms-lite' ), + wpforms_date_format( (int) $account['date'], '', true ) + ) + ); + echo ''; + echo '' . esc_html__( 'Disconnect', 'wpforms-lite' ) . ''; + echo '
              • '; + } + } + ?> +
              +
              + +

              + + + +

              + +
              + + +

              + +

              + +
              + integrations_tab_new_form(); ?> +
              + + + +
              + +
              + +
              + slug . '-error', $message ); + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/providers/class-constant-contact.php b/wp-content/plugins/wpforms-lite/includes/providers/class-constant-contact.php new file mode 100644 index 0000000..7683d8c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/providers/class-constant-contact.php @@ -0,0 +1,969 @@ +version = '1.3.6'; + $this->name = 'Constant Contact' . $name_append; + $this->slug = 'constant-contact'; + $this->priority = 14; + $this->icon = WPFORMS_PLUGIN_URL . 'assets/images/icon-provider-constant-contact.png'; + + if ( is_admin() ) { + // Admin notice requesting connecting. + $this->connect_request(); + + add_action( 'wpforms_admin_notice_dismiss_ajax', [ $this, 'connect_dismiss' ] ); + add_filter( + "wpforms_providers_provider_settings_formbuilder_display_content_default_screen_{$this->slug}", + [ $this, 'builder_settings_default_content' ] + ); + + // Provide option to override sign up link. + $sign_up = get_option( 'wpforms_constant_contact_signup', false ); + + if ( $sign_up ) { + $this->sign_up = esc_html( $sign_up ); + } + } + } + + /** + * Process and submit entry to provider. + * + * @since 1.3.6 + * + * @param array $fields List of fields with their data and settings. + * @param array $entry Submitted entry values. + * @param array $form_data Form data and settings. + * @param int $entry_id Saved entry ID. + * + * @return void + */ + public function process_entry( $fields, $entry, $form_data, $entry_id = 0 ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded, Generic.Metrics.NestingLevel.MaxExceeded + + // Only run if this form has a connections for this provider. + if ( empty( $form_data['providers'][ $this->slug ] ) ) { + return; + } + + /* + * Fire for each connection. + */ + + foreach ( $form_data['providers'][ $this->slug ] as $connection ) : + + // Before proceeding make sure required fields are configured. + if ( empty( $connection['fields']['email'] ) ) { + continue; + } + + // Setup basic data. + $list_id = $connection['list_id']; + $account_id = $connection['account_id']; + $email_data = explode( '.', $connection['fields']['email'] ); + $email_id = $email_data[0]; + $email = $fields[ $email_id ]['value']; + + $this->api_connect( $account_id ); + + // Email is required and Access token are required. + if ( empty( $email ) || empty( $this->access_token ) ) { + continue; + } + + // Check for conditionals. + $pass = $this->process_conditionals( $fields, $entry, $form_data, $connection ); + + if ( ! $pass ) { + wpforms_log( + sprintf( 'The Constant Contact connection %s was not processed due to conditional logic.', $connection['name'] ?? '' ), + $fields, + [ + 'type' => [ 'provider', 'conditional_logic' ], + 'parent' => $entry_id, + 'form_id' => $form_data['id'], + ] + ); + continue; + } + + $this->form_id = $form_data['id'] ?? 0; + $this->entry_id = $entry_id; + $contact = $this->request( + add_query_arg( 'email', rawurlencode( $email ), 'https://api.constantcontact.com/v2/contacts' ) + ); + + if ( is_wp_error( $contact ) ) { + continue; + } + + /* + * Setup Merge Vars + */ + + $merge_vars = []; + + foreach ( $connection['fields'] as $name => $merge_var ) { + + // Don't include Email or Full name fields. + if ( $name === 'email' ) { + continue; + } + + // Check if merge var is mapped. + if ( empty( $merge_var ) ) { + continue; + } + + $merge_var = explode( '.', $merge_var ); + $id = $merge_var[0]; + $key = ! empty( $merge_var[1] ) ? $merge_var[1] : 'value'; + + // Check if mapped form field has a value. + if ( empty( $fields[ $id ][ $key ] ) ) { + continue; + } + + $value = $fields[ $id ][ $key ]; + + // Constant Contact doesn't native URL field so it has to be + // stored in a custom field. + if ( $name === 'url' ) { + + $merge_vars['custom_fields'] = [ + [ + 'name' => 'custom_field_1', + 'value' => $value, + ], + ]; + + continue; + } + + // Constant Contact stores name in two fields, so we have to + // separate it. + if ( $name === 'full_name' ) { + + $names = explode( ' ', $value ); + + if ( ! empty( $names[0] ) ) { + $merge_vars['first_name'] = $names[0]; + } + + if ( ! empty( $names[1] ) ) { + $merge_vars['last_name'] = $names[1]; + } + + continue; + } + + // Constant Contact stores address in multiple fields, so we + // have to separate it. + if ( $name === 'address' ) { + + // Only support Address fields. + if ( $fields[ $id ]['type'] !== 'address' ) { + continue; + } + + // Postal code may be in extended US format. + $postal = [ + 'code' => '', + 'subcode' => '', + ]; + + if ( ! empty( $fields[ $id ]['postal'] ) ) { + $p = explode( '-', $fields[ $id ]['postal'] ); + $postal['code'] = ! empty( $p[0] ) ? $p[0] : ''; + $postal['subcode'] = ! empty( $p[1] ) ? $p[1] : ''; + } + + $merge_vars['addresses'] = [ + [ + 'address_type' => 'BUSINESS', + 'city' => ! empty( $fields[ $id ]['city'] ) ? $fields[ $id ]['city'] : '', + 'country_code' => ! empty( $fields[ $id ]['country'] ) ? $fields[ $id ]['country'] : '', + 'line1' => ! empty( $fields[ $id ]['address1'] ) ? $fields[ $id ]['address1'] : '', + 'line2' => ! empty( $fields[ $id ]['address2'] ) ? $fields[ $id ]['address2'] : '', + 'postal_code' => $postal['code'], + 'state' => ! empty( $fields[ $id ]['state'] ) ? $fields[ $id ]['state'] : '', + 'sub_postal_code' => $postal['subcode'], + ], + ]; + + continue; + } + + $merge_vars[ $name ] = $value; + } + + /* + * Process in API + */ + + // If we have a previous contact, only update the list association. + if ( ! empty( $contact['results'] ) ) { + + $data = $contact['results'][0]; + + // Check if they are already assigned to lists. + if ( ! empty( $data['lists'] ) ) { + $has_list = false; + + foreach ( $data['lists'] as $list ) { + if ( isset( $list['id'] ) && (string) $list_id === (string) $list['id'] ) { + $has_list = true; + } + } + + if ( ! $has_list ) { + $data['lists'][ count( $data['lists'] ) ] = [ + 'id' => $list_id, + 'status' => 'ACTIVE', + ]; + } + } else { + + // Add the contact to the list. + $data['lists'][0] = [ + 'id' => $list_id, + 'status' => 'ACTIVE', + ]; + } + + // Combine merge vars into data before sending. + $data = array_merge( $data, $merge_vars ); + + // Args to use. + $args = [ + 'body' => $data, + 'method' => 'PUT', + ]; + + $this->request( 'https://api.constantcontact.com/v2/contacts/' . $data['id'] . '?action_by=ACTION_BY_VISITOR', $args ); + } else { + // Add a new contact. + $data = [ + 'email_addresses' => [ [ 'email_address' => $email ] ], + 'lists' => [ [ 'id' => $list_id ] ], + ]; + + // Combine merge vars into data before sending. + $data = array_merge( $data, $merge_vars ); + + // Args to use. + $args = [ + 'body' => $data, + 'method' => 'POST', + ]; + + $this->request( 'https://api.constantcontact.com/v2/contacts?action_by=ACTION_BY_VISITOR', $args ); + } + + endforeach; + } + + /************************************************************************ + * API methods - these methods interact directly with the provider API. * + ************************************************************************/ + + /** + * Authenticate with the API. + * + * @since 1.3.6 + * + * @param array $data Contact data. + * @param string $form_id Form ID. + * + * @return WP_Error|string Unique ID or error object + * @noinspection NonSecureUniqidUsageInspection + */ + public function api_auth( $data = [], $form_id = '' ) { + + $this->form_id = (int) $form_id; + $this->access_token = $data['authcode'] ?? ''; + $user = $this->get_account_information(); + + if ( is_wp_error( $user ) ) { + return $user; + } + + $id = uniqid(); + + wpforms_update_providers_options( + $this->slug, + [ + 'access_token' => sanitize_text_field( $data['authcode'] ), + 'label' => sanitize_text_field( $data['label'] ), + 'date' => time(), + 'email' => sanitize_text_field( $user['email'] ), + ], + $id + ); + + return $id; + } + + /** + * Get account information. + * + * @since 1.7.6 + * + * @return array|WP_Error + */ + public function get_account_information() { + + return $this->request( 'https://api.constantcontact.com/v2/account/info' ); + } + + /** + * Establish connection object to API. + * + * @since 1.3.6 + * + * @param string $account_id Account ID. + * + * @return mixed array or error object. + */ + public function api_connect( $account_id ) { + + if ( ! empty( $this->api[ $account_id ] ) ) { + return $this->api[ $account_id ]; + } + + $providers = wpforms_get_providers_options(); + + if ( ! empty( $providers[ $this->slug ][ $account_id ] ) ) { + $this->api[ $account_id ] = true; + $this->access_token = $providers[ $this->slug ][ $account_id ]['access_token']; + } else { + return $this->error( 'API error' ); + } + } + + /** + * Retrieve provider account lists. + * + * @since 1.3.6 + * + * @param string $connection_id Connection ID. + * @param string $account_id Account ID. + * + * @return array|WP_Error array or error object + */ + public function api_lists( $connection_id = '', $account_id = '' ) { + + if ( $account_id && empty( $this->access_token ) ) { + $this->api_connect( $account_id ); + } + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $this->form_id = ! empty( $_POST['id'] ) ? absint( $_POST['id'] ) : 0; + + return $this->request( 'https://api.constantcontact.com/v2/lists' ); + } + + /** + * Retrieve provider account list fields. + * + * @since 1.3.6 + * + * @param string $connection_id Connection ID. + * @param string $account_id Account ID. + * @param string $list_id List ID. + * + * @return array array or error object + */ + public function api_fields( $connection_id = '', $account_id = '', $list_id = '' ) { + + return [ + [ + 'name' => 'Email', + 'field_type' => 'email', + 'req' => '1', + 'tag' => 'email', + ], + [ + 'name' => 'Full Name', + 'field_type' => 'name', + 'tag' => 'full_name', + ], + [ + 'name' => 'First Name', + 'field_type' => 'first', + 'tag' => 'first_name', + ], + [ + 'name' => 'Last Name', + 'field_type' => 'last', + 'tag' => 'last_name', + ], + [ + 'name' => 'Phone', + 'field_type' => 'text', + 'tag' => 'work_phone', + ], + [ + 'name' => 'Website', + 'field_type' => 'text', + 'tag' => 'url', + ], + [ + 'name' => 'Address', + 'field_type' => 'address', + 'tag' => 'address', + ], + [ + 'name' => 'Job Title', + 'field_type' => 'text', + 'tag' => 'job_title', + ], + [ + 'name' => 'Company', + 'field_type' => 'text', + 'tag' => 'company_name', + ], + ]; + } + + + /************************************************************************* + * Output methods - these methods generally return HTML for the builder. * + *************************************************************************/ + + /** + * Provider account authorize fields HTML. + * + * @since 1.3.6 + * + * @return string + */ + public function output_auth() { + + $providers = wpforms_get_providers_options(); + $class = ! empty( $providers[ $this->slug ] ) ? 'hidden' : ''; + + ob_start(); + ?> + + + + +

              + + + +

              +

              + %s', + esc_url( admin_url( 'admin.php?page=wpforms-page&view=constant-contact' ) ), + esc_html__( 'Learn more about the power of email marketing.', 'wpforms-lite' ) + ); + ?> +

              + slug ) { + return; + } + + // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput + $data = ! empty( $_POST['data'] ) ? wp_parse_args( wp_unslash( $_POST['data'] ) ) : []; + + if ( empty( $data['authcode'] ) ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'The "Authorization Code" is required.', 'wpforms-lite' ), + ] + ); + } + + if ( empty( $data['label'] ) ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'The "Account Nickname" is required.', 'wpforms-lite' ), + ] + ); + } + + parent::integrations_tab_add(); + } + + /** + * Form fields to add a new provider account. + * + * @since 1.3.6 + * @noinspection HtmlUnknownTarget + */ + public function integrations_tab_new_form() { + + printf( + '

              ' . wp_kses( /* translators: %1$s - Documentation URL. */ + __( + 'If you need help connecting WPForms to Constant Contact, read our documentation.', + 'wpforms-lite' + ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ) . '

              ', + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-connect-constant-contact-with-wpforms/', 'Settings - Integration', 'Constant Contact Documentation' ) ) + ); + ?> + +

              + +

              + +

              + + + + + +

              + + ', + esc_attr( $this->name ), + esc_attr__( 'Authorization Code', 'wpforms-lite' ) + ); + + printf( + '', + esc_attr( $this->name ), + esc_attr__( 'Account Nickname', 'wpforms-lite' ) + ); + } + + /** + * Add provider to the Settings Integrations tab. + * + * @since 1.9.3 + * + * @param array $active Array of active connections. + * @param array $settings Array of all connection settings. + */ + public function integrations_tab_options( $active, $settings ) { + + if ( ! empty( wpforms_get_providers_options( Core::SLUG ) ) ) { + return; + } + + parent::integrations_tab_options( $active, $settings ); + } + + /************************ + * Other functionality. * + ************************/ + + /** + * Add admin notices to connect to Constant Contact. + * + * @since 1.3.6 + * @noinspection HtmlUnknownTarget + */ + public function connect_request() { + + // Only consider showing the review request to admin users. + if ( ! is_super_admin() ) { + return; + } + + // Don't display on WPForms admin content pages. + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['wpforms-page'] ) ) { + return; + } + + // Don't display if user is about to connect via Settings page. + if ( ! empty( $_GET['wpforms-integration'] ) && $this->slug === $_GET['wpforms-integration'] ) { + return; + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended + + // Only display the notice if the Constant Contact option is set and + // there are previous Constant Contact connections created. + // Please do not delete 'wpforms_constant_contact' option check from the code. + $cc_notice = get_option( 'wpforms_constant_contact', false ); + $providers = wpforms_get_providers_options(); + + if ( ! $cc_notice || ! empty( $providers[ $this->slug ] ) ) { + return; + } + + // Output the notice message. + $connect = admin_url( 'admin.php?page=wpforms-settings&view=integrations&wpforms-integration=constant-contact#!wpforms-tab-providers' ); + $learn_more = admin_url( 'admin.php?page=wpforms-page&view=constant-contact' ); + + ob_start(); + ?> +

              + WPForms plugin — use it with an active Constant Contact account.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ); + ?> +

              +

              + + + + + + + power of email marketing', 'wpforms-lite' ), + esc_url( $learn_more ) + ), + [ + 'a' => [ + 'href' => [], + ], + ] + ); + ?> +

              + + + Notice::DISMISS_GLOBAL, + 'slug' => 'constant_contact_connect', + 'autop' => false, + 'class' => 'wpforms-constant-contact-notice', + ] + ); + } + + /** + * Dismiss the Constant Contact admin notice. + * + * @since 1.3.6 + * @since 1.6.7.1 Added parameter $notice_id. + * + * @param string $notice_id Notice ID (slug). + */ + public function connect_dismiss( $notice_id = '' ) { + + if ( $notice_id !== 'global-constant_contact_connect' ) { + return; + } + + delete_option( 'wpforms_constant_contact' ); + + wp_send_json_success(); + } + + /** + * Request to the Constant Contact API. + * + * @since 1.9.0.4 + * + * @param string $url Request URL. + * @param array $args Request arguments. + * + * @return array|WP_Error + */ + private function request( string $url, array $args = [] ) { + + $args['method'] = $args['method'] ?? 'GET'; + $args['headers']['Authorization'] = 'Bearer ' . $this->access_token; + $args['headers']['Content-Type'] = 'application/json'; + + if ( isset( $args['body'] ) ) { + $args['body'] = wp_json_encode( $args['body'] ); + } + + $url = add_query_arg( 'api_key', $this->api_key, $url ); + $response = wp_remote_request( $url, $args ); + $response = is_wp_error( $response ) ? $response : (array) $response; + + return $this->process_response( $response ); + } + + /** + * Process response. + * + * @since 1.9.0.4 + * + * @param array|WP_Error $response Response. + * + * @return array|WP_Error + */ + public function process_response( $response ) { + + if ( is_wp_error( $response ) ) { + $this->log_error( $response ); + + return $response; + } + + // Body may be set here to an array or null. + $body = json_decode( wp_remote_retrieve_body( $response ), true ); + + if ( empty( $body ) || isset( $body[0]['error_key'] ) ) { + $error_message = $body[0]['error_message'] ?? ''; + $error = new WP_Error( $this->slug . '_error', $error_message ); + + $this->log_error( $error ); + + return $error; + } + + return $body; + } + + /** + * Log error message. + * + * @since 1.9.0.4 + * + * @param WP_Error $error Error. + * + * @return void + */ + public function log_error( WP_Error $error ) { + + wpforms_log( + 'Constant Contact API Error', + $error->get_error_message(), + [ + 'type' => [ 'provider', 'error' ], + 'parent' => $this->entry_id, + 'form_id' => $this->form_id, + ] + ); + } +} + +( new WPForms_Constant_Contact() )->setup(); diff --git a/wp-content/plugins/wpforms-lite/includes/templates/class-base.php b/wp-content/plugins/wpforms-lite/includes/templates/class-base.php new file mode 100644 index 0000000..b6a06e1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/templates/class-base.php @@ -0,0 +1,361 @@ +init(); + + // Hooks. + $this->hooks(); + } + + /** + * Let's get started. + * + * @since 1.0.0 + */ + public function init() {} + + /** + * Register hooks. + * + * @since 1.9.9 + */ + private function hooks(): void { + + $type = $this->core ? '_core' : ''; + + add_filter( "wpforms_form_templates{$type}", [ $this, 'template_details' ], $this->priority ); + add_filter( 'wpforms_create_form_args', [ $this, 'template_data' ], 10, 2 ); + add_filter( 'wpforms_save_form_args', [ $this, 'template_replace' ], 10, 3 ); + add_filter( 'wpforms_builder_template_active', [ $this, 'template_active' ], 10, 2 ); + } + + /** + * Add basic template details to the Add New Form admin screen. + * + * @since 1.0.0 + * + * @param array|mixed $templates Templates array. + * + * @return array + */ + public function template_details( $templates ): array { + + $templates = (array) $templates; + + $templates[] = [ + 'name' => $this->name, + 'slug' => $this->slug, + 'source' => $this->source, + 'categories' => $this->categories, + 'description' => $this->description, + 'includes' => $this->includes, + 'icon' => $this->icon, + 'url' => ! empty( $this->url ) ? $this->url : '', + 'plugin_dir' => $this->get_plugin_dir(), + 'thumbnail' => ! empty( $this->thumbnail ) ? $this->thumbnail : '', + ]; + + return $templates; + } + + /** + * Get the directory name of the plugin in which the current template resides. + * + * @since 1.6.9 + * + * @return string + */ + private function get_plugin_dir(): string { + + $reflection = new ReflectionClass( $this ); + $template_file_path = wp_normalize_path( $reflection->getFileName() ); + + // Cutting out the WP_PLUGIN_DIR from the beginning of the template file path. + $template_file_path = preg_replace( '{^' . wp_slash( wp_normalize_path( WP_PLUGIN_DIR ) ) . '}', '', $template_file_path ); + + $template_file_chunks = explode( '/', $template_file_path ); + + return $template_file_chunks[1]; + } + + /** + * Add template data when a form is created. + * + * @since 1.0.0 + * + * @param array $args Create form arguments. + * @param array $data Template data. + * + * @return array + */ + public function template_data( $args, $data ): array { + + if ( empty( $data['template'] ) || $data['template'] !== $this->slug ) { + return $args; + } + + // Enable Notifications by default. + $this->data['settings']['notification_enable'] = $this->data['settings']['notification_enable'] ?? '1'; + + /** + * Allow modifying form data when a template is applied to the new form. + * + * @since 1.9.0 + * + * @param array $form_data New form data. + */ + $this->data = (array) apply_filters( 'wpforms_templates_class_base_template_modify_data', $this->data ); + + $args['post_content'] = wpforms_encode( $this->data ); + + return $args; + } + + /** + * Replace the template on post update if triggered. + * + * @since 1.0.0 + * + * @param array $form Form post data. + * @param array $data Form data. + * @param array $args Update form arguments. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + */ + public function template_replace( $form, $data, $args ): array { + + // We should proceed only if the template slug passed via $args['template'] is equal to the current template slug. + // This will work only for offline templates: Blank Form, all the Addons Templates, and all the custom templates. + // All the online (modern) templates use the hash as the identifier, + // and they are handled by `\WPForms\Admin\Builder\Templates::apply_to_existing_form()`. + if ( empty( $args['template'] ) || $args['template'] !== $this->slug ) { + return $form; + } + + $form_data = wpforms_decode( wp_unslash( $form['post_content'] ) ); + + // Something is wrong with the form data. + if ( empty( $form_data ) ) { + return $form; + } + + // Compile the new form data while preserving the necessary data from the existing form. + $new = $this->data; + $new['id'] = $form_data['id'] ?? 0; + $new['settings'] = $form_data['settings'] ?? []; + $new['payments'] = $form_data['payments'] ?? []; + $new['meta'] = $form_data['meta'] ?? []; + + $template_id = $this->data['meta']['template'] ?? ''; + + // Preserve template ID `wpforms-user-template-{$form_id}` when overwriting it with the core template. + if ( wpforms_is_form_template( $form['ID'] ) ) { + $template_id = $form_data['meta']['template'] ?? ''; + } + + $new['meta']['template'] = $template_id; + + /** + * Allow modifying form data when a template is replaced. + * + * @since 1.7.9 + * + * @param array $new Updated form data. + * @param array $form_data Current form data. + * @param array $template Template data. + */ + $new = (array) apply_filters( 'wpforms_templates_class_base_template_replace_modify_data', $new, $form_data, $this ); + + // Update the form with new data. + $form['post_content'] = wpforms_encode( $new ); + + return $form; + } + + /** + * Pass information about the active template back to the builder. + * + * @since 1.0.0 + * + * @param array|mixed $details Details. + * @param WP_Post|null|false $form Form data. + * + * @return array + */ + public function template_active( $details, $form ): array { + + $details = (array) $details; + + if ( ! $form ) { + return []; + } + + $form_data = wpforms_decode( $form->post_content ); + + if ( empty( $this->modal ) || empty( $form_data['meta']['template'] ) || $this->slug !== $form_data['meta']['template'] ) { + return $details; + } + + $display = $this->template_modal_conditional( $form_data ); + + return [ + 'name' => $this->name, + 'slug' => $this->slug, + 'description' => $this->description, + 'includes' => $this->includes, + 'icon' => $this->icon, + 'modal' => $this->modal, + 'modal_display' => $display, + ]; + } + + /** + * Conditional logic to determine whether the template informational modal screens + * should be displayed. + * + * @since 1.0.0 + * + * @param array $form_data Form data and settings. + * + * @return bool + */ + public function template_modal_conditional( $form_data ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/includes/templates/class-blank.php b/wp-content/plugins/wpforms-lite/includes/templates/class-blank.php new file mode 100644 index 0000000..e4fe255 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/templates/class-blank.php @@ -0,0 +1,78 @@ +priority = 1; + $this->name = esc_html__( 'Blank Form', 'wpforms-lite' ); + $this->slug = 'blank'; + $this->source = 'wpforms-core'; + $this->categories = 'all'; + $this->description = esc_html__( 'The blank form allows you to create any type of form using our drag & drop builder.', 'wpforms-lite' ); + $this->includes = ''; + $this->icon = ''; + $this->modal = ''; + $this->core = true; + $this->data = self::get_data(); + } + + /** + * Get template data. + * + * @since 1.9.2 + * + * @return array + */ + public static function get_data(): array { + + return [ + 'field_id' => '1', + 'fields' => [], + 'settings' => [ + 'antispam_v3' => '1', + 'ajax_submit' => '1', + 'confirmation_message_scroll' => '1', + 'submit_text_processing' => esc_html__( 'Sending...', 'wpforms-lite' ), + 'store_spam_entries' => '1', + 'anti_spam' => [ + 'time_limit' => [ + 'enable' => '1', + 'duration' => '2', + ], + ], + ], + 'meta' => [ + 'template' => self::SLUG, + ], + ]; + } +} + +new WPForms_Template_Blank(); diff --git a/wp-content/plugins/wpforms-lite/includes/templates/class-simple-contact-form.php b/wp-content/plugins/wpforms-lite/includes/templates/class-simple-contact-form.php new file mode 100644 index 0000000..7ab7293 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/includes/templates/class-simple-contact-form.php @@ -0,0 +1,86 @@ +name = esc_html__( 'Simple Contact Form', 'wpforms-lite' ); + $this->priority = 1; + $this->source = 'wpforms-core'; + $this->categories = 'all'; + $this->core = true; + $this->slug = 'simple-contact-form-template'; + $this->url = 'https://wpforms.com/templates/simple-contact-form-template/'; + $this->description = esc_html__( 'Collect the names, emails, and messages from site visitors that need to talk to you.', 'wpforms-lite' ); + $this->thumbnail = esc_url( WPFORMS_PLUGIN_URL . 'assets/images/thumbnail-simple-contact-form-template.jpg' ); + $this->data = [ + 'fields' => [ + '1' => [ + 'id' => '1', + 'type' => 'name', + 'format' => 'first-last', + 'label' => esc_html__( 'Name', 'wpforms-lite' ), + 'required' => '1', + 'size' => 'medium', + ], + '2' => [ + 'id' => '2', + 'type' => 'email', + 'label' => esc_html__( 'Email', 'wpforms-lite' ), + 'required' => '1', + 'size' => 'medium', + ], + '3' => [ + 'id' => '3', + 'type' => 'textarea', + 'label' => esc_html__( 'Comment or Message', 'wpforms-lite' ), + 'size' => 'medium', + 'placeholder' => '', + 'css' => '', + ], + ], + 'field_id' => 4, + 'settings' => [ + 'form_desc' => '', + 'submit_text' => esc_html__( 'Submit', 'wpforms-lite' ), + 'submit_text_processing' => esc_html__( 'Sending...', 'wpforms-lite' ), + 'antispam_v3' => '1', + 'notification_enable' => '1', + 'notifications' => [ + '1' => [ + 'email' => '{admin_email}', + 'replyto' => '{field_id="2"}', + 'message' => '{all_fields}', + ], + ], + 'confirmations' => [ + '1' => [ + 'type' => 'message', + 'message' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ), + 'message_scroll' => '1', + ], + ], + 'ajax_submit' => '1', + ], + 'meta' => [ + 'template' => $this->slug, + ], + ]; + } +} + +new WPForms_Template_Simple_Contact_Form(); diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/addons.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/addons.php new file mode 100644 index 0000000..15fcb3f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/addons.php @@ -0,0 +1,98 @@ + Addons page template. + * + * @since 1.6.7 + * + * @var string $upgrade_link_base Upgrade link base. + * @var array $addons Addons data. + */ + +use WPForms\Admin\Education\Helpers; + +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +?> +
              +

              + + + + + + + +

              +
              +
              +
              + $addon['title'], + ], + $upgrade_link_base + ); + + $licenses = [ 'basic', 'plus', 'pro', 'elite', 'agency', 'ultimate' ]; + $addon_licenses = $addon['license']; + $common_licenses = array_intersect( $licenses, $addon_licenses ); + $minimum_required_license = reset( $common_licenses ); + $image_alt = sprintf( /* translators: %s - addon title. */ + __( '%s logo', 'wpforms-lite' ), + $addon['title'] + ); + + $badge = Helpers::get_addon_badge( $addon ); + + $item_classes = [ + 'wpforms-addons-list-item', + 'addon-item', + ! empty( $badge ) ? 'has-badge' : '', + ]; + ?> +
              +
              + <?php echo esc_attr( $image_alt ); ?> + +
              +
              + %3$s', + esc_url( $upgrade_link ), + esc_attr__( 'Learn more', 'wpforms-lite' ), + esc_html( $addon['title'] ) + ); + ?> + + +
              + +
              + +
              +
              +
              + + +
              + +
              +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/notice.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/notice.php new file mode 100644 index 0000000..a30b48f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/notice.php @@ -0,0 +1,22 @@ + +
              +
              +
              +

              You’re Viewing Sample Data

              +

              Like what you see? Upgrade to Pro to get access to Entries and dozens of awesome features and addons!

              +
              +

              + Upgrade Now +

              + Hide Sample Data +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/actions.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/actions.php new file mode 100644 index 0000000..5cf2674 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/actions.php @@ -0,0 +1,24 @@ + +
              +
              + Form Fields + + + + Entry Meta + + + + + + +
              + + +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/bulk-actions.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/bulk-actions.php new file mode 100644 index 0000000..cd82d63 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/bulk-actions.php @@ -0,0 +1,38 @@ + +
              + + + +
              + + +
              + + +
              + +
              + 12 items + + + + + + + of 1 + + + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/entry-list.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/entry-list.php new file mode 100644 index 0000000..1aacf5e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/entry-list.php @@ -0,0 +1,86 @@ + +
              +

              Entries

              +
              + $utm['entries_list_button'], + 'link_utm' => $utm['entries_list_link'], + ], + true + ); + ?> +
              +
              + + $is_lite_connect_enabled, + 'is_lite_connect_allowed' => $is_lite_connect_allowed, + 'entries_count' => $entries_count, + 'enabled_since' => $enabled_since, + 'is_enabled' => $sample_entry_enabled, + ], + true + ); + ?> +
              +
              + Select Form +

              + General Inquiry Form +
              + +
              +

              + +
              +
              + $sample_entries ], + true + ); + ?> +
              +
              + +
              +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/header.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/header.php new file mode 100644 index 0000000..5ed332c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/header.php @@ -0,0 +1,39 @@ + + + +
              + true, + ], + true + ); + ?> +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/modal.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/modal.php new file mode 100644 index 0000000..9a27e29 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/modal.php @@ -0,0 +1,88 @@ + +
              + +
              + +
              + +
              +

              + +

              +

              + +

              +
              +
                +
              • +
              • +
              • +
              • +
              +
                +
              • +
              • +
              • +
              • +
              +
              +
              +
              + + +

              + ' . esc_html( /* translators: %d - backed up entries count. */ + _n( + '%d entry has been backed up', + '%d entries have been backed up', + $entries_count, + 'wpforms-lite' + ) + ) . '', + absint( $entries_count ) + ); + + if ( ! empty( $enabled_since ) ) { + echo ' '; + printf( + /* translators: %s - time when Lite Connect was enabled. */ + esc_html__( 'since you enabled Lite Connect on %s', 'wpforms-lite' ), + esc_html( wpforms_date_format( $enabled_since, '', true ) ) + ); + } + // phpcs:ignore Squiz.PHP.EmbeddedPhp.ContentAfterEnd + ?>.

              + + + + + + + + + + + + +

              + + + +

              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/table.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/table.php new file mode 100644 index 0000000..ac9d8dd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/overview/table.php @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              + + + NameEmailDate + Actions + + +
              + + + + + + + View + | + Edit + | + Spam + | + Trash +
              + + + NameEmailDateActions +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/single/entry.php b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/single/entry.php new file mode 100644 index 0000000..35a30c6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/admin/entries/single/entry.php @@ -0,0 +1,426 @@ + +
              +

              + View Entry + + + + + + + +
              +
              + Entry 1 of 12 +
              +
              + + 1 + +
              + +
              + + +
              +
              + +

              + + $utm['entry_single_button'], + 'link_utm' => $utm['entry_single_link'], + ], + true + ); + ?> +
              +
              +
              + +
              + +
              + +
              +

              General Inquiry Form

              +
              + +
              + +
              +
              +

              Name

              +
              Michael Johnson
              +
              +
              +

              Email

              +
              michael.johnson@example.com
              +
              +
              +

              Phone

              +
              +1-206-555-6789
              +
              +
              +

              Comment or Message

              +
              I really enjoyed your insightful posts on your blog! Your writing is engaging and makes complex topics easy to understand. I'm eager to dive deeper into your passion. Keep up the fantastic work! Oh BTW, I uploaded an illustration I created that’s inspired by your writing. I hope you like it!
              +
              +
              +

              File Upload

              +
              + + illustration.jpg +
              +
              +
              +

              Signature

              +
              + +
              +
              +
              +
              + +
              + +
              +
              +

              Location

              +
              + +
              + +
                +
              • + Location + Seattle, Washington +
              • +
              • + Postal + 98125 +
              • +
              • + Country + + + US + +
              • +
              • + Lat/Long + 47.6061, -122.3328 +
              • +
              +
              +
              + +
              +
              +

              User Journey

              +
              +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              April 22, 2024
              12:23 pm + Search Results + + / (Homepage) + + + +
              12:23 pm + Homepage + + https://www.google.com/ + + + + 56 seconds
              12:24 pm + Frequently Asked Questions + + /faq/ + + + + 1 min
              12:25 pm + About Us + + /about-us/ + + + + 3 mins
              12:28 pm + Meet The Team + + /about-us/meet-the-team/ + + + + 3 mins
              12:31 pm + Testimonials + + /testimonials/ + + + + 2 mins
              12:33 pm + General Inquiry Form + + /general-inquiry-form/ + + + + 4 mins
              12:37 pm + + General Inquiry Form Submitted + + User took 7 steps over 14 mins +
              +
              +
              + +
              + +
              +

              Notes

              +
              + +
              +
              + Add Note +
              + +
              +
              + +

              My illustration of the ones that have been submitted so far. We should reach out to him and offer a t-shirt.

              +
              +
              + +

              This person went above and beyond.

              +
              +
              +
              + +
              +
              + + +
              + +
              +
              +

              Entry Details

              +
              + +
              +
              +

              + Entry ID: + 544 +

              + + + +

              + Modified: + April 22, 2024 at 12:37 PM +

              + +

              + User IP: + 192.168.1.100 +

              +
              + +
              +
              + Edit +
              +
              + Trash Entry +
              + +
              +
              +
              +
              + + +
              +
              +

              Actions

              +
              + +
              +
              +

              Print

              +

              Export (CSV)

              +

              Export (XLSX)

              +

              Resend Notifications

              +

              Star

              +

              Mark as Unread

              +

              Mark as Spam

              +

              Delete Entry

              +
              +
              +
              +
              +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/builder/context-menu.php b/wp-content/plugins/wpforms-lite/lite/templates/builder/context-menu.php new file mode 100644 index 0000000..fc578f8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/builder/context-menu.php @@ -0,0 +1,127 @@ + + +
              +
                + + + +
              • + + + + + + + +
              • + + + +
              • + + + + + + + +
              • + +
              • + + + + + + + +
              • + + + +
              • + +
              • + + + + + + + + + +
              • + +
              • + + + + + + + +
              • + +
              • + +
              • + + + + + + + +
              • + +
              • + + + + + + + +
              • +
              +
              diff --git a/wp-content/plugins/wpforms-lite/lite/templates/education/admin/did-you-know.php b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/did-you-know.php new file mode 100644 index 0000000..7482c5b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/lite/templates/education/admin/did-you-know.php @@ -0,0 +1,60 @@ +'; + +?> +
              +
              +
              +

              + +
              +
              + + + + +
              +
              +
              +
              +
              +

              + +
              +
              + + + + +
              +
              +
              + + + '; + } + foreach ( $columns as $column ) { + printf( + '', + esc_attr( $width ), + esc_html( sanitize_text_field( $column ) ) + ); + } + ?> + + + + '; + if ( ! $single ) { + echo ''; + } + /** + * Column is needed for foreach syntax. + * + * @noinspection PhpUnusedLocalVariableInspection + */ + foreach ( $columns as $column ) { + echo ''; + } + echo ''; + if ( $single ) { + break; + } + } + ?> + +
              %s
              ' . esc_html( sanitize_text_field( $row ) ) . ''; + echo ''; + echo ''; + echo '
              + field_preview_option( 'description', $field ); + + // Hide remaining elements. + $this->field_preview_option( 'hide-remaining', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/NetPromoterScore/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/NetPromoterScore/Field.php new file mode 100644 index 0000000..8fc2aa1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/NetPromoterScore/Field.php @@ -0,0 +1,288 @@ +name = esc_html__( 'Net Promoter Score', 'wpforms-lite' ); + $this->keywords = esc_html__( 'survey, nps', 'wpforms-lite' ); + $this->type = 'net_promoter_score'; + $this->icon = 'fa-tachometer'; + $this->order = 410; + $this->group = 'fancy'; + $this->addon_slug = 'surveys-polls'; + + $this->default_settings = [ + 'size' => 'large', + 'survey' => '1', + 'style' => 'modern', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + + /** + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Style (theme). + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'style', + 'value' => esc_html__( 'Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the style for the net promoter score.', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'style', + 'value' => ! empty( $field['style'] ) ? esc_attr( $field['style'] ) : 'modern', + 'options' => [ + 'modern' => esc_html__( 'Modern', 'wpforms-lite' ), + 'classic' => esc_html__( 'Classic', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'style', + 'content' => $lbl . $fld, + ] + ); + + // Size. + $this->field_option( 'size', $field ); + + // Start label. + $lowest_lbl_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'lowest_label', + 'value' => esc_html__( 'Lowest Score Label', 'wpforms-lite' ), + ], + false + ); + + $lowest_lbl_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'lowest_label', + 'value' => $field['lowest_label'] ?? esc_html__( 'Not at all Likely', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'lowest_label', + 'content' => $lowest_lbl_label . $lowest_lbl_field, + ] + ); + + // End label. + $highest_lbl_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'highest_label', + 'value' => esc_html__( 'Highest Score Label', 'wpforms-lite' ), + ], + false + ); + + $highest_lbl_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'highest_label', + 'value' => $field['highest_label'] ?? esc_html__( 'Extremely Likely', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'highest_label', + 'content' => $highest_lbl_label . $highest_lbl_field, + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Define data. + $style = ! empty( $field['style'] ) ? sanitize_html_class( $field['style'] ) : 'modern'; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Lowest/Highest labels. + $lowest_label = $field['lowest_label'] ?? esc_html__( 'Not at all Likely', 'wpforms-lite' ); + $highest_label = $field['highest_label'] ?? esc_html__( 'Extremely Likely', 'wpforms-lite' ); + ?> + + + + + + + + + + + + + + +
              + + +
              + + +
              + field_preview_option( 'description', $field ); + + // Hide remaining elements. + $this->field_preview_option( 'hide-remaining', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Signature/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Signature/Field.php new file mode 100644 index 0000000..7ce9c28 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Addons/Signature/Field.php @@ -0,0 +1,199 @@ +name = esc_html__( 'Signature', 'wpforms-lite' ); + $this->keywords = esc_html__( 'user, e-signature', 'wpforms-lite' ); + $this->type = 'signature'; + $this->icon = 'fa-pencil'; + $this->order = 200; + $this->group = 'fancy'; + $this->addon_slug = 'signatures'; + + $this->default_settings = [ + 'size' => 'large', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + + /** + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Ink color picker. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'ink_color', + 'value' => esc_html__( 'Ink Color', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the color for the signature ink.', 'wpforms-lite' ), + ], + false + ); + + $ink_color = isset( $field['ink_color'] ) ? wpforms_sanitize_hex_color( $field['ink_color'] ) : ''; + $ink_color = empty( $ink_color ) ? '#000000' : $ink_color; + + $fld = $this->field_element( + 'color', + $field, + [ + 'slug' => 'ink_color', + 'value' => $ink_color, + 'data' => [ + 'fallback-color' => $ink_color, + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'ink_color', + 'content' => $lbl . $fld, + 'class' => 'color-picker-row', + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Size. + $this->field_option( 'size', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Signature placeholder. + echo '
              '; + + // Description. + $this->field_preview_option( 'description', $field ); + + // Hide remaining elements. + $this->field_preview_option( 'hide-remaining', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Field.php new file mode 100644 index 0000000..6b61c66 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Field.php @@ -0,0 +1,769 @@ +name = esc_html__( 'Address', 'wpforms-lite' ); + $this->type = 'address'; + $this->icon = 'fa-map-marker'; + $this->order = 70; + $this->group = 'fancy'; + + // Allow for additional or customizing address schemes. + $default_schemes = [ + 'us' => [ + 'label' => esc_html__( 'US', 'wpforms-lite' ), + 'address1_label' => esc_html__( 'Address Line 1', 'wpforms-lite' ), + 'address2_label' => esc_html__( 'Address Line 2', 'wpforms-lite' ), + 'city_label' => esc_html__( 'City', 'wpforms-lite' ), + 'postal_label' => esc_html__( 'Zip Code', 'wpforms-lite' ), + 'state_label' => esc_html__( 'State', 'wpforms-lite' ), + 'states' => wpforms_us_states(), + ], + 'international' => [ + 'label' => esc_html__( 'International', 'wpforms-lite' ), + 'address1_label' => esc_html__( 'Address Line 1', 'wpforms-lite' ), + 'address2_label' => esc_html__( 'Address Line 2', 'wpforms-lite' ), + 'city_label' => esc_html__( 'City', 'wpforms-lite' ), + 'postal_label' => esc_html__( 'Postal Code', 'wpforms-lite' ), + 'state_label' => esc_html__( 'State / Province / Region', 'wpforms-lite' ), + 'states' => '', + 'country_label' => esc_html__( 'Country', 'wpforms-lite' ), + 'countries' => wpforms_countries(), + ], + ]; + + /** + * Allow modifying address schemes. + * + * @since 1.2.7 + * + * @param array $schemes Address schemes. + */ + $this->schemes = apply_filters( 'wpforms_address_schemes', $default_schemes ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Address Scheme - was "format" key prior to 1.2.7. + $scheme = ! empty( $field['scheme'] ) ? esc_attr( $field['scheme'] ) : 'us'; + + if ( empty( $scheme ) && ! empty( $field['format'] ) ) { + $scheme = esc_attr( $field['format'] ); + } + + $tooltip = esc_html__( 'Select scheme format for the address field.', 'wpforms-lite' ); + + $options = array_map( + static function ( $s ) { + + return $s['label']; + }, + $this->schemes + ); + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'scheme', + 'value' => esc_html__( 'Scheme', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'scheme', + 'value' => $scheme, + 'options' => $options, + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'scheme', + 'content' => $output, + ] + ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Size. + $this->field_option( 'size', $field ); + + // Address Line 1. + $address1_placeholder = ! empty( $field['address1_placeholder'] ) ? esc_attr( $field['address1_placeholder'] ) : ''; + $address1_default = ! empty( $field['address1_default'] ) ? esc_attr( $field['address1_default'] ) : ''; + + printf( + '
              ', + wpforms_validate_field_id( $field['id'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + $this->field_element( + 'label', + $field, + [ + 'slug' => 'address1_placeholder', + 'value' => esc_html__( 'Address Line 1', 'wpforms-lite' ), + ] + ); + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $address1_placeholder ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $address1_default ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + + echo '
              '; + + // Address Line 2. + $address2_placeholder = ! empty( $field['address2_placeholder'] ) ? esc_attr( $field['address2_placeholder'] ) : ''; + $address2_default = ! empty( $field['address2_default'] ) ? esc_attr( $field['address2_default'] ) : ''; + $address2_hide = ! empty( $field['address2_hide'] ); + + printf( + '
              ', + wpforms_validate_field_id( $field['id'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + echo '
              '; + + $this->field_element( + 'label', + $field, + [ + 'slug' => 'address2_placeholder', + 'value' => esc_html__( 'Address Line 2', 'wpforms-lite' ), + ] + ); + + $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'address2_hide', + 'value' => $address2_hide, + 'desc' => esc_html__( 'Hide', 'wpforms-lite' ), + 'title' => esc_html__( 'Turn On if you want to hide this sub field.', 'wpforms-lite' ), + 'label-left' => true, + 'control-class' => 'wpforms-field-option-in-label-right', + 'class' => 'wpforms-subfield-hide', + ] + ); + + echo '
              '; + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $address2_placeholder ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $address2_default ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + + echo '
              '; + + // City. + $city_placeholder = ! empty( $field['city_placeholder'] ) ? esc_attr( $field['city_placeholder'] ) : ''; + $city_default = ! empty( $field['city_default'] ) ? esc_attr( $field['city_default'] ) : ''; + + printf( + '
              ', + wpforms_validate_field_id( $field['id'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + $this->field_element( + 'label', + $field, + [ + 'slug' => 'city_placeholder', + 'value' => esc_html__( 'City', 'wpforms-lite' ), + ] + ); + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $city_placeholder ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $city_default ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + + echo '
              '; + + // State. + $state_placeholder = ! empty( $field['state_placeholder'] ) ? $field['state_placeholder'] : ''; + + printf( + '
              ', + wpforms_validate_field_id( $field['id'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + $this->field_element( + 'label', + $field, + [ + 'slug' => 'state_placeholder', + 'value' => esc_html__( 'State / Province / Region', 'wpforms-lite' ), + ] + ); + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $state_placeholder ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + $this->subfield_default( $field, 'state', 'states' ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + + echo '
              '; + + // ZIP/Postal. + $postal_placeholder = ! empty( $field['postal_placeholder'] ) ? esc_attr( $field['postal_placeholder'] ) : ''; + $postal_default = ! empty( $field['postal_default'] ) ? esc_attr( $field['postal_default'] ) : ''; + $postal_hide = ! empty( $field['postal_hide'] ); + $postal_visibility = ! isset( $this->schemes[ $scheme ]['postal_label'] ) ? 'wpforms-hidden' : ''; + + printf( + '
              ', + sanitize_html_class( $postal_visibility ), + wpforms_validate_field_id( $field['id'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + echo '
              '; + + $this->field_element( + 'label', + $field, + [ + 'slug' => 'postal_placeholder', + 'value' => esc_html__( 'ZIP / Postal', 'wpforms-lite' ), + ] + ); + + $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'postal_hide', + 'value' => $postal_hide, + 'desc' => esc_html__( 'Hide', 'wpforms-lite' ), + 'title' => esc_html__( 'Turn On if you want to hide this sub field.', 'wpforms-lite' ), + 'label-left' => true, + 'control-class' => 'wpforms-field-option-in-label-right', + 'class' => 'wpforms-subfield-hide', + ] + ); + + echo '
              '; + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $postal_placeholder ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $postal_default ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + + echo '
              '; + + // Country. + $country_placeholder = ! empty( $field['country_placeholder'] ) ? $field['country_placeholder'] : ''; + $country_hide = ! empty( $field['country_hide'] ); + $country_visibility = ! isset( $this->schemes[ $scheme ]['countries'] ) ? 'wpforms-hidden' : ''; + + printf( + '
              ', + sanitize_html_class( $country_visibility ), + wpforms_validate_field_id( $field['id'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + echo '
              '; + + $this->field_element( + 'label', + $field, + [ + 'slug' => 'country_placeholder', + 'value' => esc_html__( 'Country', 'wpforms-lite' ), + ] + ); + + $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'country_hide', + 'value' => $country_hide, + 'desc' => esc_html__( 'Hide', 'wpforms-lite' ), + 'title' => esc_html__( 'Turn On if you want to hide this sub field.', 'wpforms-lite' ), + 'label-left' => true, + 'control-class' => 'wpforms-field-option-in-label-right', + 'class' => 'wpforms-subfield-hide', + ] + ); + + echo '
              '; + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + echo '
              '; + printf( '', wpforms_validate_field_id( $field['id'] ), esc_attr( $country_placeholder ) ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Placeholder', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + $this->subfield_default( $field, 'country', 'countries' ); + printf( '', wpforms_validate_field_id( $field['id'] ), esc_html__( 'Default Value', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + + echo '
              '; + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabel. + $this->field_option( 'sublabel_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded + + // Define data. + $address1_placeholder = ! empty( $field['address1_placeholder'] ) ? $field['address1_placeholder'] : ''; + $address1_default = ! empty( $field['address1_default'] ) ? $field['address1_default'] : ''; + $address2_placeholder = ! empty( $field['address2_placeholder'] ) ? $field['address2_placeholder'] : ''; + $address2_default = ! empty( $field['address2_default'] ) ? $field['address2_default'] : ''; + $address2_hide = ! empty( $field['address2_hide'] ) ? 'wpforms-hide' : ''; + $city_placeholder = ! empty( $field['city_placeholder'] ) ? $field['city_placeholder'] : ''; + $city_default = ! empty( $field['city_default'] ) ? $field['city_default'] : ''; + $postal_placeholder = ! empty( $field['postal_placeholder'] ) ? $field['postal_placeholder'] : ''; + $postal_default = ! empty( $field['postal_default'] ) ? $field['postal_default'] : ''; + $postal_hide = ! empty( $field['postal_hide'] ) ? 'wpforms-hide' : ''; + $country_hide = ! empty( $field['country_hide'] ) ? 'wpforms-hide' : ''; + $format = ! empty( $field['format'] ) ? $field['format'] : 'us'; + $scheme_selected = ! empty( $field['scheme'] ) ? $field['scheme'] : $format; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Field elements. + foreach ( $this->schemes as $slug => $scheme ) { + + $address1_label = $scheme['address1_label'] ?? esc_html__( 'Address Line 1', 'wpforms-lite' ); + $address2_label = $scheme['address2_label'] ?? esc_html__( 'Address Line 2', 'wpforms-lite' ); + $city_label = $scheme['city_label'] ?? esc_html__( 'City', 'wpforms-lite' ); + $state_label = $scheme['state_label'] ?? esc_html__( 'State / Province / Region', 'wpforms-lite' ); + $postal_label = $scheme['postal_label'] ?? esc_html__( 'Postal Code', 'wpforms-lite' ); + $country_label = $scheme['country_label'] ?? esc_html__( 'Country', 'wpforms-lite' ); + + $is_active_scheme = $slug === $scheme_selected; + $scheme_hide_class = ! $is_active_scheme ? 'wpforms-hide' : ''; + + $state_placeholder = ! empty( $field['state_placeholder'] ) ? $field['state_placeholder'] : ''; + $state_default = $is_active_scheme && ! empty( $field['state_default'] ) ? $field['state_default'] : ''; + $country_placeholder = ! empty( $field['country_placeholder'] ) ? $field['country_placeholder'] : ''; + $country_default = $is_active_scheme && ! empty( $field['country_default'] ) ? $field['country_default'] : ''; + + // Wrapper. + printf( + '
              ', + wpforms_sanitize_classes( $slug ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + wpforms_sanitize_classes( $scheme_hide_class ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + // Row 1 - Address Line 1. + printf( + '
              + + +
              ', + esc_attr( $address1_placeholder ), + esc_attr( $address1_default ), + esc_html( $address1_label ) + ); + + // Row 2 - Address Line 2. + printf( + '
              + + +
              ', + wpforms_sanitize_classes( $address2_hide ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $address2_placeholder ), + esc_attr( $address2_default ), + esc_html( $address2_label ) + ); + + // Row 3 - City & State. + echo '
              '; + + // City. + printf( + '
              + + +
              ', + esc_attr( $city_placeholder ), + esc_attr( $city_default ), + esc_html( $city_label ) + ); + + // State / Providence / Region. + echo '
              '; + + if ( isset( $scheme['states'] ) && empty( $scheme['states'] ) ) { + + // State text input. + printf( '', esc_attr( $state_placeholder ), esc_attr( $state_default ) ); + + } elseif ( ! empty( $scheme['states'] ) && is_array( $scheme['states'] ) ) { + + $state_option = $this->dropdown_empty_value( (string) $state_label ); + + if ( ! empty( $state_placeholder ) ) { + $state_option = $state_placeholder; + } + + if ( $is_active_scheme && ! empty( $state_default ) ) { + $state_option = $scheme['states'][ $state_default ]; + } + + // State select. + printf( '', esc_html( $state_option ) ); + } + + printf( '', esc_html( $state_label ) ); + echo '
              '; + + // End row 3 - City & State. + echo '
              '; + + // Row 4 - Zip & Country. + echo '
              '; + + // ZIP / Postal. + printf( + '
              + + +
              ', + wpforms_sanitize_classes( $postal_hide ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $postal_placeholder ), + esc_attr( $postal_default ), + esc_html( $postal_label ) + ); + + // Country. + printf( '
              ', sanitize_html_class( $country_hide ) ); + + if ( isset( $scheme['countries'] ) && empty( $scheme['countries'] ) ) { + + // Country text input. + printf( '', esc_attr( $country_placeholder ), esc_attr( $country_default ) ); + + } elseif ( ! empty( $scheme['countries'] ) && is_array( $scheme['countries'] ) ) { + + $country_option = $this->dropdown_empty_value( (string) $country_label ); + + if ( ! empty( $country_placeholder ) ) { + $country_option = $country_placeholder; + } + + if ( $is_active_scheme && ! empty( $country_default ) ) { + $country_option = $scheme['countries'][ $country_default ]; + } + + // Country select. + printf( '', esc_html( $country_option ) ); + printf( '', esc_html( $country_label ) ); + } + + echo '
              '; + + // End row 4 - Zip & Country. + echo '
              '; + + // End wrapper. + echo '
              '; + } + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties instead. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } + + /** + * Output "Default" option fields for State/Country subfields. + * + * The default value should be set only for the scheme it belongs to. + * + * @since 1.9.4 + * + * @param array $field Address field data. + * @param string $subfield_slug Subfield slug, either `state` or `country`. + * @param string $subfield_key Subfield key in `$scheme` data, either `states` or `countries`. + * + * @noinspection HtmlUnknownAttribute + */ + private function subfield_default( array $field, string $subfield_slug, string $subfield_key ): void { + + // Scheme or default value may not be set yet. + $active_scheme = ! empty( $field['scheme'] ) ? $field['scheme'] : 'us'; + $default_value = ! empty( $field[ "{$subfield_slug}_default" ] ) ? $field[ "{$subfield_slug}_default" ] : ''; + + foreach ( $this->schemes as $scheme_slug => $scheme_data ) { + + $subfield_label = empty( $scheme_data[ $subfield_slug . '_label' ] ) ? ucfirst( $subfield_slug ) : $scheme_data[ $subfield_slug . '_label' ]; + $empty_value = $this->dropdown_empty_value( $subfield_label ); + $is_active_scheme = $scheme_slug === $active_scheme; + + // If a scheme contains an array of values, we display a select dropdown. Otherwise, text input. + if ( ! empty( $scheme_data[ $subfield_key ] ) && is_array( $scheme_data[ $subfield_key ] ) ) { + + $options_escaped = sprintf( '', esc_html( $empty_value ) ); + + foreach ( $scheme_data[ $subfield_key ] as $value => $label ) { + $options_escaped .= sprintf( + '', + esc_attr( $value ), + $is_active_scheme ? selected( $default_value, $value, false ) : '', + esc_html( $label ) + ); + } + + if ( $is_active_scheme ) { + printf( + '', + wpforms_validate_field_id( $field['id'] ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $subfield_slug ), + esc_attr( $scheme_slug ), + $options_escaped // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + continue; + } + + printf( + '', + esc_attr( $scheme_slug ), + $options_escaped // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + continue; + } + + if ( $is_active_scheme ) { + printf( + '', + wpforms_validate_field_id( $field['id'] ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $subfield_slug ), + esc_attr( $default_value ), + esc_attr( $scheme_slug ) + ); + + continue; + } + + printf( + '', + esc_attr( $scheme_slug ) + ); + } + } + + /** + * Get a select dropdown "placeholder" option which is displayed if nothing is selected. + * + * @since 1.9.4 + * + * @param string $name Select field name, can be lowercase or uppercase. + * + * @return string + */ + protected function dropdown_empty_value( string $name ): string { + + return sprintf( /* translators: %s - subfield name, e.g., state, country. */ + __( '--- Select %s ---', 'wpforms-lite' ), + $name + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Frontend.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Frontend.php new file mode 100644 index 0000000..8570e78 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Address/Frontend.php @@ -0,0 +1,73 @@ +field_obj = $field_obj; + + $this->init(); + } + + /** + * Initialize. + * + * @since 1.8.1 + */ + public function init() { + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.1 + */ + protected function hooks() { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Camera/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Camera/Field.php new file mode 100644 index 0000000..4db7511 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Camera/Field.php @@ -0,0 +1,471 @@ +name = esc_html__( 'Camera', 'wpforms-lite' ); + $this->keywords = esc_html__( 'photo, image, capture, webcam', 'wpforms-lite' ); + $this->type = 'camera'; + $this->icon = 'fa-camera'; + $this->order = 105; + $this->group = 'fancy'; + + $this->default_settings = [ + 'style' => 'button', + ]; + + $this->init_pro_field(); + + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.9.8 + */ + private function hooks(): void { + + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_enqueues' ] ); + } + + /** + * Enqueue script for the admin form builder. + * + * @since 1.9.8 + */ + public function builder_enqueues(): void { + + $min = wpforms_get_min_suffix(); + + if ( ! wpforms_is_pro() ) { + return; + } + + wp_enqueue_script( + 'wpforms-builder-file-upload-field', + WPFORMS_PLUGIN_URL . "assets/pro/js/admin/builder/fields/file-upload{$min}.js", + [ 'jquery', 'wpforms-builder' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-builder-camera', + WPFORMS_PLUGIN_URL . "assets/pro/js/admin/builder/fields/camera{$min}.js", + [ 'jquery', 'wpforms-builder' ], + WPFORMS_VERSION, + false + ); + + // Localize strings for the camera field. + wp_localize_script( + 'wpforms-builder-camera', + 'wpforms_camera_builder', + [ + 'button_link_text_label' => esc_html__( 'Button Link Text', 'wpforms-lite' ), + 'link_text_label' => esc_html__( 'Link Text', 'wpforms-lite' ), + 'button_link_text_tooltip' => esc_html__( 'Enter the text for the button link.', 'wpforms-lite' ), + 'link_text_tooltip' => esc_html__( 'Enter the text for the link.', 'wpforms-lite' ), + 'error_message' => esc_html__( 'Camera field with Link style cannot have empty Link Text. Please enter text or change style to Button.', 'wpforms-lite' ), + 'error_title' => esc_html__( 'Missing Link Text', 'wpforms-lite' ), + 'error_ok' => esc_html__( 'OK', 'wpforms-lite' ), + ] + ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.8 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Camera options. + $this->add_camera_enabled_toggle( $field ); + $this->add_camera_format_options( $field ); + $this->add_camera_aspect_ratio_options( $field ); + $this->add_camera_custom_ratio_options( $field ); + $this->add_camera_time_limit_options( $field ); + + // Max file size. + $this->add_max_file_size_options( $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + // Advanced field options. + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + // Style (Button or Link). + $this->add_style_options( $field ); + + // Button link text. + $this->add_button_link_text_options( $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Media Library toggle. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'media_library', + 'value' => ! empty( $field['media_library'] ) ? 1 : '', + 'desc' => esc_html__( 'Store Files in WordPress Media Library', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to store the final uploaded file in the WordPress Media Library', 'wpforms-lite' ), + 'class' => 'wpforms-camera-media-library', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'media_library', + 'content' => $fld, + ] + ); + + // Access Restrictions. + $this->access_restrictions_options( $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( 'advanced-options', $field, [ 'markup' => 'close' ] ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.8 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + $style = ! empty( $field['style'] ) ? $field['style'] : self::STYLE_BUTTON; + + $field_id = absint( $field['id'] ); + $text = $field['button_link_text'] ?? esc_html__( 'Capture With Your Camera', 'wpforms-lite' ); + + // Always render both button and link, but hide/show based on the selected style. + $button_class = $style === self::STYLE_BUTTON ? 'wpforms-camera-button wpforms-btn-secondary' : 'wpforms-camera-button wpforms-btn-secondary wpforms-hidden'; + $link_class = $style === self::STYLE_LINK ? 'wpforms-camera-link' : 'wpforms-camera-link wpforms-hidden'; + + printf( + '', + esc_attr( $button_class ), + (int) $field_id, + $this->get_camera_icon_svg(), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_html( $text ) + ); + + printf( + '%s', + esc_attr( $link_class ), + (int) $field_id, + esc_html( $text ) + ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + // Implemented in Pro only. + } + + /** + * Add max file size options. + * + * @since 1.9.8 + * + * @param array $field Field data. + */ + private function add_max_file_size_options( array $field ): void { + + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'max_size', + 'value' => esc_html__( 'Max File Size', 'wpforms-lite' ), + 'tooltip' => sprintf( /* translators: %s - max upload size. */ + esc_html__( 'Enter the max size of each file, in megabytes, to allow. If left blank, the value defaults to the maximum size the server allows which is %s.', 'wpforms-lite' ), + wpforms_max_upload() + ), + ], + false + ); + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'max_size', + 'type' => 'number', + 'attrs' => [ + 'min' => 1, + 'max' => 512, + 'step' => 1, + 'pattern' => '[0-9]', + ], + 'value' => ! empty( $field['max_size'] ) ? abs( $field['max_size'] ) : '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'max_size', + 'content' => $lbl . $fld, + ] + ); + } + + /** + * Add style options, Button or Link. + * + * @since 1.9.8 + * + * @param array $field Field data. + */ + private function add_style_options( array $field ): void { + + // Style (Button or Link). + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'style', + 'value' => esc_html__( 'Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Choose the style of the camera button.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'style', + 'value' => ! empty( $field['style'] ) ? $field['style'] : self::STYLE_BUTTON, + 'options' => [ + self::STYLE_BUTTON => esc_html__( 'Button', 'wpforms-lite' ), + self::STYLE_LINK => esc_html__( 'Link', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'style', + 'content' => $lbl . $fld, + 'class' => 'wpforms-camera-style', + ] + ); + } + + /** + * Add button link text options. + * + * @since 1.9.8 + * + * @param array $field Field data. + */ + private function add_button_link_text_options( array $field ): void { + + $style = ! empty( $field['style'] ) ? $field['style'] : self::STYLE_BUTTON; + + // Button link text. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'button_link_text', + 'value' => $style === self::STYLE_BUTTON ? esc_html__( 'Button Link Text', 'wpforms-lite' ) : esc_html__( 'Link Text', 'wpforms-lite' ), + 'tooltip' => $style === self::STYLE_BUTTON ? esc_html__( 'Enter the text for the button link.', 'wpforms-lite' ) : esc_html__( 'Enter the text for the link.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'button_link_text', + 'value' => $field['button_link_text'] ?? esc_html__( 'Capture With Your Camera', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'button_link_text', + 'content' => $lbl . $fld, + ] + ); + } + + /** + * Get camera icon SVG. + * + * @since 1.9.8 + * + * @return string Camera icon SVG code. + * @noinspection HtmlDeprecatedAttribute + */ + protected function get_camera_icon_svg(): string { + + return ''; + } + + /** + * Get remove selected file icon SVG. + * + * @since 1.9.8 + * + * @return string Remove icon SVG code. + * @noinspection HtmlDeprecatedAttribute + */ + protected function get_camera_remove_file_icon(): string { + + return ''; + } + + /** + * Check if the field is modern upload style. + * + * @since 1.9.8 + * + * @param array $field_data Field data. + * + * @return bool + */ + public static function is_modern_upload( $field_data ): bool { + + return isset( $field_data['style'] ) && $field_data['style'] === self::STYLE_MODERN; + } + + /** + * Format field value for display in Entries. + * + * @since 1.9.8 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field_id = absint( $field_id ); + $field_label = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? sanitize_text_field( $form_data['fields'][ $field_id ]['label'] ) : ''; + $style = ! empty( $form_data['fields'][ $field_id ]['style'] ) && $form_data['fields'][ $field_id ]['style'] === self::STYLE_MODERN + ? self::STYLE_MODERN + : self::STYLE_CLASSIC; + + if ( $style === self::STYLE_CLASSIC ) { + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $field_label, + 'value' => '', + 'file' => '', + 'file_original' => '', + 'ext' => '', + 'id' => $field_id, + 'type' => $this->type, + ]; + + return; + } + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $field_label, + 'value' => '', + 'value_raw' => '', + 'id' => $field_id, + 'type' => $this->type, + 'style' => self::STYLE_MODERN, + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Content/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Content/Field.php new file mode 100644 index 0000000..c452c2c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Content/Field.php @@ -0,0 +1,133 @@ +name = esc_html__( 'Content', 'wpforms-lite' ); + $this->keywords = esc_html__( 'image, text, table, list, heading, wysiwyg, visual', 'wpforms-lite' ); + $this->type = 'content'; + $this->icon = 'fa-file-image-o'; + $this->order = 180; + $this->group = 'fancy'; + $this->allow_read_only = false; + + $this->default_settings = [ + 'label_disable' => '1', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Register WP hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Show field options in the builder left panel. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + $this->field_option_content( $field ); + + // Set label to the disabled. + $args = [ + 'type' => 'hidden', + 'slug' => 'label_disable', + 'value' => '1', + ]; + + $this->field_element( 'text', $field, $args ); + + // Options close markup. + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + // Options open markup. + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + // Size. + $this->field_option( 'size', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Options close markup. + $this->field_option( 'advanced-options', $field, [ 'markup' => 'close' ] ); + } + + /** + * Show the field preview in the builder right panel. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + if ( ! empty( $this->is_disabled_field ) ) { + // Label. + $field['label'] = empty( $field['label'] ) ? esc_html__( 'Content', 'wpforms-lite' ) : $field['label']; + + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + } + + $this->content_input_preview( $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties instead. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/CreditCard/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/CreditCard/Field.php new file mode 100644 index 0000000..1b29406 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/CreditCard/Field.php @@ -0,0 +1,265 @@ +name = esc_html__( 'Credit Card', 'wpforms-lite' ); + $this->type = 'credit-card'; + $this->icon = 'fa-credit-card'; + $this->order = 90; + $this->group = 'payment'; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.1 + */ + protected function hooks(): void { + } + + /** + * Field options panel inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Card Number. + $cardnumber_placeholder = ! empty( $field['cardnumber_placeholder'] ) ? esc_attr( $field['cardnumber_placeholder'] ) : ''; + + printf( + '
              ', + absint( $field['id'] ) + ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'cardnumber_placeholder', + 'value' => esc_html__( 'Card Number Placeholder Text', 'wpforms-lite' ), + ] + ); + + echo '
              '; + printf( + '', + absint( $field['id'] ), + esc_attr( $cardnumber_placeholder ) + ); + echo '
              '; + echo '
              '; + + // CVC/Security Code. + $cardcvc_placeholder = ! empty( $field['cardcvc_placeholder'] ) ? $field['cardcvc_placeholder'] : ''; + + printf( + '
              ', + absint( $field['id'] ) + ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'cardcvc_placeholder', + 'value' => esc_html__( 'Security Code Placeholder Text', 'wpforms-lite' ), + ] + ); + + echo '
              '; + printf( + '', + absint( $field['id'] ), + esc_attr( $cardcvc_placeholder ) + ); + echo '
              '; + echo '
              '; + + // Card Name. + $cardname_placeholder = ! empty( $field['cardname_placeholder'] ) ? $field['cardname_placeholder'] : ''; + + printf( + '
              ', + absint( $field['id'] ) + ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'cardname_placeholder', + 'value' => esc_html__( 'Name on Card Placeholder Text', 'wpforms-lite' ), + ] + ); + + echo '
              '; + printf( + '', + absint( $field['id'] ), + esc_attr( $cardname_placeholder ) + ); + echo '
              '; + echo '
              '; + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabels. + $this->field_option( 'sublabel_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.0.0 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Define data. + $number_placeholder = ! empty( $field['cardnumber_placeholder'] ) ? esc_attr( $field['cardnumber_placeholder'] ) : ''; + $cvc_placeholder = ! empty( $field['cardcvc_placeholder'] ) ? esc_attr( $field['cardcvc_placeholder'] ) : ''; + $name_placeholder = ! empty( $field['cardname_placeholder'] ) ? esc_attr( $field['cardname_placeholder'] ) : ''; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + ?> + +
              + +
              +
              + + +
              + +
              + + +
              +
              + +
              +
              + + +
              + +
              + +
              + +
              + / +
              + +
              +
              +
              + +
              + + field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.0.0 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/CustomCaptcha/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/CustomCaptcha/Field.php new file mode 100644 index 0000000..bff93af --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/CustomCaptcha/Field.php @@ -0,0 +1,315 @@ +name = esc_html__( 'Custom Captcha', 'wpforms-lite' ); + $this->keywords = esc_html__( 'spam, math, maths, question', 'wpforms-lite' ); + $this->type = self::TYPE; + $this->icon = 'fa-question-circle'; + $this->order = 300; + $this->group = 'fancy'; + $this->allow_read_only = false; + $this->qs = [ + 1 => [ + 'question' => esc_html__( 'What is 7+4?', 'wpforms-lite' ), + 'answer' => esc_html__( '11', 'wpforms-lite' ), + ], + ]; + $this->math = [ + 'min' => 1, + 'max' => 15, + 'cal' => [ '+', '*' ], + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + + // Defaults. + $format = ! empty( $field['format'] ) ? esc_attr( $field['format'] ) : 'math'; + $qs = ! empty( $field['questions'] ) ? $field['questions'] : $this->qs; + $qs = array_filter( $qs ); + + // Field is always required. + $this->field_element( + 'text', + $field, + [ + 'type' => 'hidden', + 'slug' => 'required', + 'value' => '1', + ] + ); + + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Format. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'format', + 'value' => esc_html__( 'Type', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select type of captcha to use.', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'format', + 'value' => $format, + 'options' => [ + 'math' => esc_html__( 'Math', 'wpforms-lite' ), + 'qa' => esc_html__( 'Question and Answer', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'format', + 'content' => $lbl . $fld, + ] + ); + + // Questions. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'questions', + 'value' => esc_html__( 'Questions and Answers', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Add questions to ask the user. Questions are randomly selected.', 'wpforms-lite' ), + ], + false + ); + $fld = sprintf( + '
                ', + esc_attr( $field['id'] ), + max( array_keys( $qs ) ) + 1, + esc_attr( $this->type ) + ); + + foreach ( $qs as $key => $value ) { + $fld .= '
              • '; + $fld .= sprintf( + '', + (int) $field['id'], + esc_attr( $key ), + esc_attr( $value['question'] ), + esc_html__( 'Question', 'wpforms-lite' ) + ); + $fld .= ''; + $fld .= sprintf( + '', + (int) $field['id'], + esc_attr( $key ), + esc_attr( $value['answer'] ), + esc_html__( 'Answer', 'wpforms-lite' ) + ); + $fld .= '
              • '; + } + $fld .= '
              '; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'questions', + 'content' => $lbl . $fld, + 'class' => $format === 'math' ? 'wpforms-hidden' : '', + ] + ); + + // Description. + $this->field_option( 'description', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Size. + $this->field_option( + 'size', + $field, + [ + 'class' => $format === 'math' ? 'wpforms-hidden' : '', + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Define data. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $format = ! empty( $field['format'] ) ? $field['format'] : 'math'; + $num1 = wp_rand( $this->math['min'], $this->math['max'] ); + $num2 = wp_rand( $this->math['min'], $this->math['max'] ); + $cal = $this->math['cal'][ wp_rand( 0, count( $this->math['cal'] ) - 1 ) ]; + $questions = ! empty( $field['questions'] ) ? $field['questions'] : $this->qs; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + $first_question = array_shift( $questions ); + ?> + +
              + + + +

              + + + +
              + + field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/DateTime/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/DateTime/Field.php new file mode 100644 index 0000000..cc0db11 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/DateTime/Field.php @@ -0,0 +1,901 @@ + 'date-time', + 'date_placeholder' => '', + 'date_format' => 'm/d/Y', + 'date_type' => 'datepicker', + 'time_placeholder' => '', + 'time_format' => 'g:i A', + 'time_interval' => '30', + 'date_limit_days_sun' => '0', + 'date_limit_days_mon' => '1', + 'date_limit_days_tue' => '1', + 'date_limit_days_wed' => '1', + 'date_limit_days_thu' => '1', + 'date_limit_days_fri' => '1', + 'date_limit_days_sat' => '0', + 'time_limit_hours_start_hour' => '09', + 'time_limit_hours_start_min' => '00', + 'time_limit_hours_start_ampm' => 'am', + 'time_limit_hours_end_hour' => '06', + 'time_limit_hours_end_min' => '00', + 'time_limit_hours_end_ampm' => 'pm', + ]; + + /** + * Alternative Date Format. + * + * @since 1.9.4 + */ + public const ALT_DATE_FORMAT = 'd/m/Y'; + + /** + * Primary class constructor. + * + * @since 1.9.4 + */ + public function init() { + + // Define field type information. + $this->name = esc_html__( 'Date / Time', 'wpforms-lite' ); + $this->type = 'date-time'; + $this->icon = 'fa-calendar-o'; + $this->order = 80; + $this->group = 'fancy'; + + $this->default_settings = self::DEFAULTS; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks(): void { + + // Set custom option wrapper classes. + add_filter( 'wpforms_builder_field_option_class', [ $this, 'field_option_class' ], 10, 2 ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * + * @noinspection PackedHashtableOptimizationInspection + * @noinspection HtmlUnknownAttribute + */ + public function field_options( $field ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + /** + * Basic field options + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Format option. + $format = ! empty( $field['format'] ) ? esc_attr( $field['format'] ) : self::DEFAULTS['format']; + $format_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'format', + 'value' => esc_html__( 'Format', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select format for the date field.', 'wpforms-lite' ), + ], + false + ); + $format_select = $this->field_element( + 'select', + $field, + [ + 'slug' => 'format', + 'value' => $format, + 'options' => [ + 'date-time' => esc_html__( 'Date and Time', 'wpforms-lite' ), + 'date' => esc_html__( 'Date', 'wpforms-lite' ), + 'time' => esc_html__( 'Time', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'format', + 'content' => $format_label . $format_select, + ] + ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Size. + $this->field_option( 'size', $field ); + + // Custom options. + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + + // Date. + $date_placeholder = ! empty( $field['date_placeholder'] ) ? $field['date_placeholder'] : ''; + $date_format = ! empty( $field['date_format'] ) ? esc_attr( $field['date_format'] ) : self::DEFAULTS['date_format']; + $date_type = ! empty( $field['date_type'] ) ? esc_attr( $field['date_type'] ) : 'datepicker'; + // Backwards compatibility with old datepicker format. + if ( $date_format === 'mm/dd/yyyy' ) { + $date_format = self::DEFAULTS['date_format']; + } elseif ( $date_format === 'dd/mm/yyyy' ) { + $date_format = self::ALT_DATE_FORMAT; + } elseif ( $date_format === 'mmmm d, yyyy' ) { + $date_format = 'F j, Y'; + } + + $date_formats = wpforms_date_formats(); + + printf( + '
              ', + esc_attr( $field['id'] ), + esc_attr( $field['id'] ) + ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'date_placeholder', + 'value' => esc_html__( 'Date', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Advanced date options.', 'wpforms-lite' ), + ] + ); + + echo '
              '; + echo '
              '; + printf( + ''; + printf( + '', + esc_attr( $field['id'] ), + esc_html__( 'Type', 'wpforms-lite' ) + ); + echo '
              '; + echo '
              '; + printf( + ''; + printf( + '', + esc_attr( $field['id'] ), + esc_html__( 'Format', 'wpforms-lite' ) + ); + echo '
              '; + echo '
              '; + echo '
              '; + printf( + '', + esc_attr( $field['id'] ), + esc_attr( $field['id'] ), + esc_attr( $date_placeholder ) + ); + printf( + '', + esc_attr( $field['id'] ), + esc_html__( 'Placeholder', 'wpforms-lite' ) + ); + echo '
              '; + + // Limit Days options. + $this->field_options_limit_days( $field ); + + echo '
              '; + + // Time. + $time_placeholder = ! empty( $field['time_placeholder'] ) ? $field['time_placeholder'] : ''; + $time_format = ! empty( $field['time_format'] ) ? esc_attr( $field['time_format'] ) : self::DEFAULTS['time_format']; + $time_formats = wpforms_time_formats(); + $time_interval = ! empty( $field['time_interval'] ) ? esc_attr( $field['time_interval'] ) : '30'; + + /** + * Filters the time intervals available for the Time field. + * + * @since 1.6.0 + * + * @param array $time_intervals Array of time intervals. + */ + $time_intervals = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_datetime_time_intervals', + [ + '15' => esc_html__( '15 minutes', 'wpforms-lite' ), + '30' => esc_html__( '30 minutes', 'wpforms-lite' ), + '60' => esc_html__( '1 hour', 'wpforms-lite' ), + ] + ); + + printf( + '
              ', + esc_attr( $field['id'] ), + esc_attr( $field['id'] ) + ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'time_placeholder', + 'value' => esc_html__( 'Time', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Advanced time options.', 'wpforms-lite' ), + ] + ); + + echo '
              '; + echo '
              '; + printf( + ''; + printf( + '', + esc_attr( $field['id'] ), + esc_html__( 'Interval', 'wpforms-lite' ) + ); + echo '
              '; + + echo '
              '; + printf( + ''; + printf( + '', + esc_attr( $field['id'] ), + esc_html__( 'Format', 'wpforms-lite' ) + ); + echo '
              '; + echo '
              '; + echo '
              '; + printf( + '', + esc_attr( $field['id'] ), + esc_attr( $field['id'] ), + esc_attr( $time_placeholder ) + ); + printf( + '', + esc_attr( $field['id'] ), + esc_html__( 'Placeholder', 'wpforms-lite' ) + ); + echo '
              '; + + // Limit Hours options. + $this->field_options_limit_hours( $field ); + + echo '
              '; + + echo '
              '; + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabels. + $sublabel_class = isset( $field['format'] ) && $field['format'] !== self::DEFAULTS['format'] ? 'wpforms-hidden' : ''; + + $this->field_option( 'sublabel_hide', $field, [ 'class' => $sublabel_class ] ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Get regular date formats. + * + * @since 1.9.8.3 + * + * @return array + */ + private function get_regular_date_formats(): array { + + return [ + self::DEFAULTS['date_format'], + self::ALT_DATE_FORMAT, + 'Y/m/d', + 'm.d.Y', + 'd.m.Y', + 'Y.m.d', + ]; + } + + /** + * Display limit days options. + * + * @since 1.9.4 + * + * @param array $field Field setting. + */ + private function field_options_limit_days( array $field ): void { + + echo '
              '; + + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'date_limit_days', + 'value' => ! empty( $field['date_limit_days'] ) ? '1' : '0', + 'desc' => esc_html__( 'Limit Days', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to adjust which days of the week can be selected.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-field-toggle', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'date_limit_days', + 'content' => $output, + 'class' => 'wpforms-clear', + ] + ); + + $week_days = [ + 'sun' => esc_html__( 'Sun', 'wpforms-lite' ), + 'mon' => esc_html__( 'Mon', 'wpforms-lite' ), + 'tue' => esc_html__( 'Tue', 'wpforms-lite' ), + 'wed' => esc_html__( 'Wed', 'wpforms-lite' ), + 'thu' => esc_html__( 'Thu', 'wpforms-lite' ), + 'fri' => esc_html__( 'Fri', 'wpforms-lite' ), + 'sat' => esc_html__( 'Sat', 'wpforms-lite' ), + ]; + + // Rearrange days array according to the Start of Week setting. + $start_of_week = get_option( 'start_of_week' ); + $start_of_week = ! empty( $start_of_week ) ? (int) $start_of_week : 0; + + if ( $start_of_week > 0 ) { + $days_after = $week_days; + $days_begin = array_splice( $days_after, 0, $start_of_week ); + $days = array_merge( $days_after, $days_begin ); + } else { + $days = $week_days; + } + + // Limit Days body. + $field = $this->field_options_limit_days_body( $days, $field ); + + // Disable Past Dates. + $this->field_options_limit_days_disable_past_dates( $field ); + + // Disable Today's Date. + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'date_disable_todays_date', + 'value' => ! empty( $field['date_disable_todays_date'] ) ? '1' : '0', + 'desc' => esc_html__( 'Disable Today\'s Date', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to prevent today\'s date from being selected.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'date_disable_todays_date', + 'content' => $output, + 'class' => ! isset( $field['date_disable_past_dates'] ) ? 'wpforms-hide' : '', + ] + ); + } + + /** + * Display limit hours options. + * + * @since 1.9.4 + * + * @param array $field Field setting. + */ + private function field_options_limit_hours( array $field ): void { + + echo '
              '; + + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'time_limit_hours', + 'value' => ! empty( $field['time_limit_hours'] ) ? '1' : '0', + 'desc' => esc_html__( 'Limit Hours', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to adjust the range of times that can be selected.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-field-toggle', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'time_limit_hours', + 'content' => $output, + ] + ); + + // Determine a time format type. + // If the format contains `g` or `h`, then this is 12-hour format, otherwise 24 hours. + $time_format = empty( $field['time_format'] ) || preg_match( '/[gh]/', $field['time_format'] ) ? 12 : 24; + + // Limit Hours body. + $output = $this->field_options_limit_hours_body( $field, $time_format ); + + printf( + '
              %5$s
              ', + 'time_limit_hours_options', + 'wpforms-panel-field-toggle-body', + esc_attr( $field['id'] ), + esc_attr( 'fields[' . (int) $field['id'] . '][time_limit_hours]' ), + $output // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Generate an array of numeric options for date/time selectors. + * + * @since 1.9.4 + * + * @param integer $min Minimum value. + * @param integer $max Maximum value. + * @param integer $step Step. + * + * @return array + */ + private function get_selector_numeric_options( int $min, int $max, int $step = 1 ): array { + + $range = range( $min, $max, $step ); + $options = []; + + foreach ( $range as $i ) { + $value = str_pad( $i, 2, '0', STR_PAD_LEFT ); + $options[ $value ] = $value; + } + + return $options; + } + + /** + * Add class to field options wrapper to indicate if field confirmation is enabled. + * + * @since 1.9.4 + * + * @param string|mixed $css_class CSS class. + * @param array $field Field data. + * + * @return string + */ + public function field_option_class( $css_class, array $field ): string { + + $css_class = (string) $css_class; + + if ( $this->type === $field['type'] ) { + $date_type = ! empty( $field['date_type'] ) ? sanitize_html_class( $field['date_type'] ) : 'datepicker'; + + $css_class .= " wpforms-date-type-$date_type"; + } + + return $css_class; + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + public function field_preview( $field ) { + + $date_placeholder = ! empty( $field['date_placeholder'] ) ? $field['date_placeholder'] : ''; + $time_placeholder = ! empty( $field['time_placeholder'] ) ? $field['time_placeholder'] : ''; + $format = ! empty( $field['format'] ) ? $field['format'] : self::DEFAULTS['format']; + $date_type = ! empty( $field['date_type'] ) ? $field['date_type'] : 'datepicker'; + $date_format = ! empty( $field['date_format'] ) ? $field['date_format'] : self::DEFAULTS['date_format']; + + if ( in_array( $date_format, $this->get_month_day_formats(), true ) ) { + $date_first_select = 'MM'; + $date_second_select = 'DD'; + $date_third_select = 'YYYY'; + } elseif ( in_array( $date_format, $this->get_day_month_formats(), true ) ) { + $date_first_select = 'DD'; + $date_second_select = 'MM'; + $date_third_select = 'YYYY'; + } else { + $date_first_select = 'YYYY'; + $date_second_select = 'MM'; + $date_third_select = 'DD'; + } + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + printf( + '
              ', + sanitize_html_class( 'format-selected-' . $format ) + ); + + // Date. + printf( + '
              ', + sanitize_html_class( 'wpforms-date-type-' . $date_type ) + ); + echo '
              '; + printf( '', esc_attr( $date_placeholder ) ); + printf( '', esc_html__( 'Date', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + printf( '', esc_html( $date_first_select ) ); + printf( '', esc_html( $date_second_select ) ); + printf( '', esc_html( $date_third_select ) ); + printf( '', esc_html__( 'Date', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + + // Time. + echo '
              '; + printf( '', esc_attr( $time_placeholder ) ); + printf( '', esc_html__( 'Time', 'wpforms-lite' ) ); + echo '
              '; + echo '
              '; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Get month-day date formats. + * + * @since 1.9.8.3 + * + * @return array + */ + private function get_month_day_formats(): array { + + return [ 'mm/dd/yyyy', self::DEFAULTS['date_format'], 'm.d.Y' ]; + } + + /** + * Get day-month date formats. + * + * @since 1.9.8.3 + * + * @return array + */ + private function get_day_month_formats(): array { + + return [ 'dd/mm/yyyy', self::ALT_DATE_FORMAT, 'd.m.Y' ]; + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated array of field attributes. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } + + /** + * Field options: Limit Days body section. + * + * @since 1.9.4 + * + * @param array $days Array of days. + * @param array $field Field data and settings. + * + * @return array Modified field data array. + */ + public function field_options_limit_days_body( array $days, array $field ): array { + + // Limit Days body. + $output = ''; + + foreach ( $days as $day => $day_translation ) { + + $day_slug = 'date_limit_days_' . $day; + + // Set defaults. + if ( ! isset( $field['date_format'] ) ) { + $field[ $day_slug ] = $this->default_settings[ $day_slug ]; + } + + $output .= ''; + } + + printf( + '
              %3$s
              ', + esc_attr( $field['id'] ), + esc_attr( 'fields[' . (int) $field['id'] . '][date_limit_days]' ), + $output // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + return $field; + } + + /** + * Field options: Limit Days - Disable Past Dates section. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options_limit_days_disable_past_dates( array $field ): void { + + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'date_disable_past_dates', + 'value' => ! empty( $field['date_disable_past_dates'] ) ? '1' : '0', + 'desc' => esc_html__( 'Disable Past Dates', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to prevent any previous date from being selected.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'date_disable_past_dates', + 'content' => $output, + ] + ); + } + + /** + * Field options: Limit Hours - body section. + * + * @since 1.9.4 + * + * @param array $field Field data. + * @param int $time_format Time format. + * + * @return string + */ + private function field_options_limit_hours_body( array $field, int $time_format ): string { + + $output = ''; + + foreach ( [ 'start', 'end' ] as $option ) { + + $output .= '
              '; // Open columns container. + + $slug = 'time_limit_hours_' . $option . '_hour'; + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => $slug, + 'value' => ! empty( $field[ $slug ] ) ? $field[ $slug ] : $this->default_settings[ $slug ], + 'options' => $time_format === 12 + ? $this->get_selector_numeric_options( 1, $time_format ) + : $this->get_selector_numeric_options( 0, $time_format - 1 ), + 'class' => 'wpforms-field-options-column', + ], + false + ); + + $slug = 'time_limit_hours_' . $option . '_min'; + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => $slug, + 'value' => ! empty( $field[ $slug ] ) ? $field[ $slug ] : $this->default_settings[ $slug ], + 'options' => $this->get_selector_numeric_options( 0, 59, 5 ), + 'class' => 'wpforms-field-options-column', + ], + false + ); + + $slug = 'time_limit_hours_' . $option . '_ampm'; + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => $slug, + 'value' => ! empty( $field[ $slug ] ) ? $field[ $slug ] : $this->default_settings[ $slug ], + 'options' => [ + 'am' => 'AM', + 'pm' => 'PM', + ], + 'class' => [ + 'wpforms-field-options-column', + $time_format === 24 ? 'wpforms-hidden-strict' : '', + ], + ], + false + ); + + $slug = 'time_limit_hours_' . $option . '_hour'; + $output .= $this->field_element( + 'label', + $field, + [ + 'slug' => $slug, + 'value' => $option === 'start' ? esc_html__( 'Start Time', 'wpforms-lite' ) : esc_html__( 'End Time', 'wpforms-lite' ), + 'class' => [ + 'sub-label', + 'wpforms-field-options-column', + ], + ], + false + ); + + $output .= sprintf( + '
              ', + $time_format === 12 ? 'wpforms-hidden-strict' : '' + ); + + $output .= '
              '; // Close columns container. + } + + return $output; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Divider/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Divider/Field.php new file mode 100644 index 0000000..0a78d8a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Divider/Field.php @@ -0,0 +1,183 @@ +name = esc_html__( 'Section Divider', 'wpforms-lite' ); + $this->keywords = esc_html__( 'line, hr', 'wpforms-lite' ); + $this->type = 'divider'; + $this->icon = 'fa-arrows-h'; + $this->order = 170; + $this->group = 'fancy'; + $this->allow_read_only = false; + + $this->default_settings = [ + 'label_disable' => '1', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Set label to the disabled. + $args = [ + 'type' => 'hidden', + 'slug' => 'label_disable', + 'value' => '1', + ]; + + $this->field_element( 'text', $field, $args ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Divider Line toggle. + $this->hide_divider_line_option( $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Hide the Divider Line option. + * + * @since 1.9.7 + * + * @param array $field Field data. + */ + private function hide_divider_line_option( array $field ): void { + + $hide_divider_line_value = $field['hide_divider_line'] ?? '0'; + $hide_divider_line = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'hide_divider_line', + 'value' => $hide_divider_line_value, + 'desc' => esc_html__( 'Hide Divider Line', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Do not show the horizontal divider line.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'hide_divider_line', + 'content' => $hide_divider_line, + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/EntryPreview/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/EntryPreview/Field.php new file mode 100644 index 0000000..1d0ac36 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/EntryPreview/Field.php @@ -0,0 +1,295 @@ +name = esc_html__( 'Entry Preview', 'wpforms-lite' ); + $this->keywords = esc_html__( 'confirm', 'wpforms-lite' ); + $this->type = 'entry-preview'; + $this->icon = 'fa-file-text-o'; + $this->order = 190; + $this->group = 'fancy'; + $this->allow_read_only = false; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + + add_filter( 'wpforms_builder_strings', [ $this, 'add_builder_strings' ], 10, 2 ); + add_filter( 'wpforms_field_preview_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + add_filter( 'wpforms_field_new_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + if ( empty( $this->is_disabled_field ) ) { + $this->field_element( + 'row', + $field, + [ + 'slug' => 'description', + 'content' => sprintf( + '

              %s

              ', + esc_html__( 'Entry Preview must be displayed on its own page, without other fields. HTML fields are allowed.', 'wpforms-lite' ) + ), + ] + ); + } + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'preview-notice-enable', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'preview-notice-enable', + // When we add the field to a form, it enabled by default. + 'value' => ! empty( $field['preview-notice-enable'] ) || wp_doing_ajax(), + 'desc' => esc_html__( 'Display Preview Notice', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to show a message above the entry preview.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'preview-notice', + 'content' => + $this->field_element( + 'label', + $field, + [ + 'slug' => 'preview-notice', + 'value' => esc_html__( 'Preview Notice', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Fill in the message to show above the entry preview.', 'wpforms-lite' ), + ], + false + ) . + $this->field_element( + 'textarea', + $field, + [ + 'slug' => 'preview-notice', + 'value' => $field['preview-notice'] ?? self::get_default_notice(), + ], + false + ), + ] + ); + + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'style', + 'content' => + $this->field_element( + 'label', + $field, + [ + 'slug' => 'style', + 'value' => esc_html__( 'Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Choose the entry preview display style.', 'wpforms-lite' ), + ], + false + ) . + $this->field_element( + 'select', + $field, + [ + 'slug' => 'style', + 'value' => ! empty( $field['style'] ) ? $field['style'] : 'basic', + 'options' => self::get_styles(), + ], + false + ), + ] + ); + + $this->field_option( 'css', $field ); + + $this->field_option( 'advanced-options', $field, [ 'markup' => 'close' ] ); + } + + /** + * Create the field preview. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * + * @noinspection HtmlUnknownAttribute*/ + public function field_preview( $field ) { + + printf( + '', + esc_html__( 'Entry Preview', 'wpforms-lite' ), + $this->get_field_preview_badge() // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + $is_new_field = wp_doing_ajax(); + $notice = ! empty( $field['preview-notice-enable'] ) && isset( $field['preview-notice'] ) && ! wpforms_is_empty_string( $field['preview-notice'] ) + ? force_balance_tags( $field['preview-notice'] ) : ''; + $notice = $is_new_field || wpforms_is_empty_string( $notice ) ? self::get_default_notice() : $notice; + $is_disabled = $is_new_field || ! empty( $field['preview-notice-enable'] ); + + printf( + '
              %1$s
              ', + wp_kses_post( nl2br( $notice ) ), + ! $is_disabled ? ' style="display: none"' : '' + ); + + printf( + '
              +

              %1$s

              +
              ', + esc_html__( 'Entry preview will be displayed here and will contain all fields found on the previous page.', 'wpforms-lite' ), + $is_disabled ? ' style="display: none"' : '' + ); + } + + /** + * Display the field input elements on the frontend. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Field attributes. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } + + /** + * Add custom JS i18n strings for the builder. + * + * @since 1.9.4 + * + * @param array|mixed $strings List of strings. + * @param array $form Current form. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function add_builder_strings( $strings, $form ): array { + + $strings = (array) $strings; + + $strings['entry_preview_require_page_break'] = esc_html__( 'Page breaks are required for entry previews to work. If you\'d like to remove page breaks, you\'ll have to first remove the entry preview field.', 'wpforms-lite' ); + $strings['entry_preview_default_notice'] = self::get_default_notice(); + $strings['entry_preview_require_previous_button'] = esc_html__( 'You can\'t hide the previous button because it is required for the entry preview field on this page.', 'wpforms-lite' ); + + return $strings; + } + + /** + * Get default notice. + * + * @since 1.9.4 + * + * @return string + */ + protected static function get_default_notice(): string { + + return sprintf( + "%s\n%s", + esc_html__( 'This is a preview of your submission. It has not been submitted yet!', 'wpforms-lite' ), + esc_html__( 'Please take a moment to verify your information. You can also go back to make changes.', 'wpforms-lite' ) + ); + } + + /** + * Get a list of available styles. + * + * @since 1.9.4 + * + * @return array + */ + protected static function get_styles(): array { + + return [ + 'basic' => esc_html__( 'Basic', 'wpforms-lite' ), + 'compact' => esc_html__( 'Compact', 'wpforms-lite' ), + 'table' => esc_html__( 'Table', 'wpforms-lite' ), + 'table_compact' => esc_html__( 'Table, Compact', 'wpforms-lite' ), + ]; + } + + /** + * Disallow the field preview "Duplicate" button. + * + * @since 1.9.9 + * + * @param bool|mixed $display Display switch. + * @param array $field Field settings. + * + * @return bool + */ + public function field_display_duplicate_button( $display, array $field ): bool { + + $type = $field['type'] ?? ''; + + if ( $type === $this->type ) { + // Pagebreak fields cannot be duplicated. + return false; + } + + return (bool) $display; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/FileUpload/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/FileUpload/Field.php new file mode 100644 index 0000000..e081a7f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/FileUpload/Field.php @@ -0,0 +1,472 @@ +name = esc_html__( 'File Upload', 'wpforms-lite' ); + $this->type = 'file-upload'; + $this->icon = 'fa-upload'; + $this->order = 100; + $this->group = 'fancy'; + + $this->default_settings = [ + 'style' => self::STYLE_MODERN, + ]; + + $this->init_pro_field(); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * + * @noinspection HtmlUnknownTarget + */ + public function field_options( $field ) { + + $style = ! empty( $field['style'] ) ? $field['style'] : self::STYLE_MODERN; + + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Allowed extensions. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'extensions', + 'value' => esc_html__( 'Allowed File Extensions', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter the extensions you would like to allow, comma separated.', 'wpforms-lite' ), + 'after_tooltip' => sprintf( + '%2$s', + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/a-complete-guide-to-the-file-upload-field/#file-types', 'Field Options', 'File Upload Extensions Documentation' ) ), + esc_html__( 'See More Details', 'wpforms-lite' ) + ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'extensions', + 'value' => ! empty( $field['extensions'] ) ? $field['extensions'] : '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'extensions', + 'content' => $lbl . $fld, + ] + ); + + // Max file size. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'max_size', + 'value' => esc_html__( 'Max File Size', 'wpforms-lite' ), + 'tooltip' => sprintf( /* translators: %s - max upload size. */ + esc_html__( 'Enter the max size of each file, in megabytes, to allow. If left blank, the value defaults to the maximum size the server allows which is %s.', 'wpforms-lite' ), + wpforms_max_upload() + ), + ], + false + ); + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'max_size', + 'type' => 'number', + 'attrs' => [ + 'min' => 1, + 'max' => 512, + 'step' => 1, + 'pattern' => '[0-9]', + ], + 'value' => ! empty( $field['max_size'] ) ? abs( $field['max_size'] ) : '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'max_size', + 'content' => $lbl . $fld, + ] + ); + + // Max file number. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'max_file_number', + 'value' => esc_html__( 'Max File Uploads', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter the max number of files to allow. If left blank, the value defaults to 1.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'max_file_number', + 'type' => 'number', + 'attrs' => [ + 'min' => 1, + 'max' => self::MAX_FILE_NUM, + 'step' => 1, + 'pattern' => '[0-9]', + ], + 'value' => $this->get_max_file_number( $field ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'max_file_number', + 'content' => $lbl . $fld, + 'class' => $style === self::STYLE_CLASSIC ? 'wpforms-hidden' : '', + ] + ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + // Style. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'style', + 'value' => esc_html__( 'Style', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Modern Style supports multiple file uploads, displays a drag-and-drop upload box, and uses AJAX. Classic Style supports single file upload and displays a traditional upload button.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'style', + 'value' => $style, + 'options' => [ + self::STYLE_MODERN => esc_html__( 'Modern', 'wpforms-lite' ), + self::STYLE_CLASSIC => esc_html__( 'Classic', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'style', + 'content' => $lbl . $fld, + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Media Library toggle. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'media_library', + 'value' => ! empty( $field['media_library'] ) ? 1 : '', + 'desc' => esc_html__( 'Store Files in WordPress Media Library', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to store the final uploaded file in the WordPress Media Library', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-media-library', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'media_library', + 'content' => $fld, + ] + ); + + // Access Restrictions. + $this->access_restrictions_options( $field ); + + // Camera. + $this->camera_options( $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + $modern_classes = [ 'wpforms-file-upload-builder-modern' ]; + $classic_classes = [ 'wpforms-file-upload-builder-classic' ]; + + if ( empty( $field['style'] ) || $field['style'] !== self::STYLE_CLASSIC ) { + $classic_classes[] = 'wpforms-hide'; + } else { + $modern_classes[] = 'wpforms-hide'; + } + + $strings = $this->get_strings(); + $max_file_number = $this->get_max_file_number( $field ); + + /** + * Filter the classic camera text. + * + * @since 1.9.8 + * + * @param string $classic_camera The classic camera text. + */ + $classic_camera_text = (string) apply_filters( + 'wpforms_forms_fields_file_upload_field_classic_camera_text', + esc_html__( 'Capture With Your Camera', 'wpforms-lite' ) + ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'fields/file-upload/file-upload-backend', + [ + 'max_file_number' => $max_file_number, + 'preview_hint' => str_replace( self::TEMPLATE_MAXFILENUM, $max_file_number, $strings['preview_hint'] ), + 'modern_classes' => implode( ' ', $modern_classes ), + 'classic_classes' => implode( ' ', $classic_classes ), + 'is_camera' => ! empty( $field['camera_enabled'] ) ? 1 : '', + 'classic_camera' => $classic_camera_text, + ], + true + ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * File Uploads specific strings. + * + * @since 1.9.4 + * + * @return array Field-specific strings. + */ + public function get_strings(): array { + + return [ + 'preview_title_single' => sprintf( + /* translators: %1$s: Choose File to Upload opening tag, %2$s: Choose File to Upload closing tag. */ + esc_html__( 'Drag & Drop File or %1$sChoose File to Upload%2$s', 'wpforms-lite' ), + '', + '' + ), + 'preview_title_plural' => sprintf( + /* translators: %1$s: Choose Files to Upload opening tag, %2$s: Choose Files to Upload closing tag. */ + esc_html__( 'Drag & Drop Files or %1$sChoose Files to Upload%2$s', 'wpforms-lite' ), + '', + '' + ), + 'preview_title_single_camera' => sprintf( + /* translators: %1$s: Choose File to Upload opening tag, %2$s: Closing tag, %3$s: Capture With Camera opening tag. */ + esc_html__( 'Drag & Drop File, %1$sChoose File to Upload%2$s, or %3$sCapture With Camera%2$s', 'wpforms-lite' ), + '', + '', + '' + ), + 'preview_title_plural_camera' => sprintf( + /* translators: %1$s: Choose Files to Upload opening tag, %2$s: Closing tag, %3$s: Capture With Camera opening tag. */ + esc_html__( 'Drag & Drop Files, %1$sChoose Files to Upload%2$s, or %3$sCapture With Camera%2$s', 'wpforms-lite' ), + '', + '', + '' + ), + 'preview_hint' => sprintf( /* translators: % - max number of files as a template string (not a number), replaced by a number later. */ + esc_html__( 'You can upload up to %s files.', 'wpforms-lite' ), + self::TEMPLATE_MAXFILENUM + ), + 'password_match_error_title' => esc_html__( 'Passwords Do Not Match', 'wpforms-lite' ), + 'password_match_error_text' => esc_html__( 'Please check the password for the following fields: {fields}', 'wpforms-lite' ), + 'password_empty_error_title' => esc_html__( 'Passwords Are Empty', 'wpforms-lite' ), + 'password_empty_error_text' => esc_html__( 'Please enter a password for the following fields: {fields}', 'wpforms-lite' ), + 'notification_warning_title' => esc_html__( 'Cannot Enable Restrictions', 'wpforms-lite' ), + 'notification_warning_text' => esc_html__( 'This field is attached to Notifications. In order to enable restrictions, please first remove it from File Upload Attachments in Notifications.', 'wpforms-lite' ), + 'notification_error_title' => esc_html__( 'Cannot Enable Attachments', 'wpforms-lite' ), + 'notification_error_text' => esc_html__( 'The following fields ({fields}) cannot be attached to notifications because restrictions are enabled for them.', 'wpforms-lite' ), + 'all_user_roles_selected' => esc_html__( 'All User Roles already selected', 'wpforms-lite' ), + 'incompatible_addon_text' => esc_html__( 'File Upload Restrictions can\'t be enabled because the current version of the Post Submissions addon is incompatible.', 'wpforms-lite' ), + ]; + } + + /** + * Getting max file number. + * + * @since 1.9.4 + * + * @param array $field Field data. + * + * @return int + * @noinspection PhpMissingParamTypeInspection + */ + protected function get_max_file_number( $field ): int { + + if ( empty( $field['max_file_number'] ) ) { + return 1; + } + + $max_file_number = absint( $field['max_file_number'] ); + + if ( $max_file_number < 1 ) { + return 1; + } + + if ( $max_file_number > self::MAX_FILE_NUM ) { + return self::MAX_FILE_NUM; + } + + return $max_file_number; + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Helpers/RequirementsAlerts.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Helpers/RequirementsAlerts.php new file mode 100644 index 0000000..da79f00 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Helpers/RequirementsAlerts.php @@ -0,0 +1,255 @@ +=' ); + } + + /** + * Product Quantities feature: get an update required alert HTML. + * + * @since 1.8.7 + * + * @return string + */ + public static function get_product_quantities_alert(): string { + + $addons_require_update = self::get_addons_require_for_product_quantities(); + + // Generate update link when only one addon needs to be updated. + if ( count( $addons_require_update ) === 1 ) { + $update_url = self::get_addon_update_url( key( $addons_require_update ) ); + } else { + // Redirect to the Plugins admin page if multiple addons require an update. + $update_url = admin_url( 'plugins.php?plugin_status=upgrade' ); + } + + return self::get_update_alert( + sprintf( /* translators: %1$s - addons list. */ + __( 'The following addons require an update to support product quantities: %1$s', 'wpforms-lite' ), + implode( ', ', $addons_require_update ) + ), + $update_url + ); + } + + /** + * Order Summary feature: get an update required alert HTML. + * + * @since 1.8.7 + * + * @return string + */ + public static function get_order_summary_alert(): string { + + return self::get_update_alert( + __( 'You\'re using an older version of the Coupons addon that does not support order summary.', 'wpforms-lite' ), + self::get_addon_update_url( 'wpforms-coupons' ) + ); + } + + /** + * Repeater field: determine if addon is allowed to use inside the repeater field. + * + * @since 1.8.9 + * + * @param string $addon_slug Addon slug. + * + * @return bool + */ + public static function is_inside_repeater_allowed( string $addon_slug ): bool { + + $requirements = [ + 'wpforms-geolocation' => '2.10.0', + 'wpforms-signatures' => '1.11.0', + 'wpforms-form-abandonment' => '1.12.0', + 'wpforms-save-resume' => '1.11.0', + 'wpforms-lead-forms' => '1000', // @todo: We should adjust this value when the Lead Forms get the Repeater field support. + 'wpforms-google-sheets' => '2.1.0', + ]; + + if ( ! isset( $requirements[ $addon_slug ] ) ) { + return true; + } + + $version_constant = strtoupper( str_replace( '-', '_', $addon_slug ) ) . '_VERSION'; + + return self::is_pro() && + defined( $version_constant ) && + version_compare( constant( $version_constant ), $requirements[ $addon_slug ], '>=' ); + } + + /** + * Repeater field: get an update required alert HTML. + * + * @since 1.8.9 + * + * @param string $addon_name Addon name. + * @param string $addon_slug Addon slug. + * + * @return string + */ + public static function get_repeater_alert( string $addon_name, string $addon_slug ): string { + + return self::get_update_alert( + self::get_repeater_alert_text( $addon_name ), + self::get_addon_update_url( $addon_slug ) + ); + } + + /** + * Repeater field: get alert text. + * + * @since 1.8.9 + * + * @param string $addon_name Addon name. + * + * @return string + */ + public static function get_repeater_alert_text( string $addon_name ): string { + + return sprintf( + /* translators: %1$s - addon name. */ + __( 'You\'re using an older version of the %1$s addon that does not support the Repeater field.', 'wpforms-lite' ), + $addon_name + ); + } + + /** + * Retrieve a list of addons that require updating to support the Product Quantities feature. + * + * @since 1.8.7 + * + * @return array + */ + private static function get_addons_require_for_product_quantities(): array { + + static $addons; + + if ( ! is_null( $addons ) ) { + return $addons; + } + + $addons = []; + + // All addons require Pro and Top level licenses. + if ( ! self::is_pro() ) { + return $addons; + } + + if ( defined( 'WPFORMS_COUPONS_VERSION' ) && version_compare( WPFORMS_COUPONS_VERSION, '1.2.0', '<' ) ) { + $addons['wpforms-coupons'] = __( 'Coupons', 'wpforms-lite' ); + } + + if ( defined( 'WPFORMS_PAYPAL_COMMERCE_VERSION' ) && version_compare( WPFORMS_PAYPAL_COMMERCE_VERSION, '1.9.0', '<' ) ) { + $addons['wpforms-paypal-commerce'] = __( 'PayPal Commerce', 'wpforms-lite' ); + } + + if ( defined( 'WPFORMS_PAYPAL_STANDARD_VERSION' ) && version_compare( WPFORMS_PAYPAL_STANDARD_VERSION, '1.10.0', '<' ) ) { + $addons['wpforms-paypal-standard'] = __( 'PayPal Standard', 'wpforms-lite' ); + } + + if ( defined( 'WPFORMS_SQUARE_VERSION' ) && version_compare( WPFORMS_SQUARE_VERSION, '1.9.0', '<' ) ) { + $addons['wpforms-square'] = __( 'Square', 'wpforms-lite' ); + } + + if ( defined( 'WPFORMS_SAVE_RESUME_VERSION' ) && version_compare( WPFORMS_SAVE_RESUME_VERSION, '1.9.0', '<' ) ) { + $addons['wpforms-save-resume'] = __( 'Save and Resume', 'wpforms-lite' ); + } + + return $addons; + } + + /** + * Get an update alert HTML. + * + * @since 1.8.7 + * + * @param string $message Alert message. + * @param string $update_url Update button URL. + * + * @return string + */ + private static function get_update_alert( string $message, string $update_url ): string { + + $alert = sprintf( + '
              +

              %1$s

              +

              %2$s

              +
              +
              + %4$s +
              ', + esc_html__( 'Update Required', 'wpforms-lite' ), + esc_html( $message ), + esc_url( $update_url ), + esc_html__( 'Update Now', 'wpforms-lite' ) + ); + + return sprintf( + '
              %1$s
              ', + $alert // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Get addon update URL. + * + * @since 1.8.7 + * + * @param string $addon_slug Addon slug. + * + * @return string + */ + private static function get_addon_update_url( string $addon_slug ): string { + + $addon_path = sprintf( '%1$s/%1$s.php', $addon_slug ); + + return wp_nonce_url( + self_admin_url( 'update.php?action=upgrade-plugin&plugin=' . $addon_path ), + 'upgrade-plugin_' . $addon_path + ); + } + + /** + * Determine if Pro or Top level license is used. + * + * @since 1.8.7 + * + * @return bool + */ + private static function is_pro(): bool { + + return in_array( wpforms_get_license_type(), [ 'pro', 'elite', 'agency', 'ultimate' ], true ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Hidden/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Hidden/Field.php new file mode 100644 index 0000000..dd092bc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Hidden/Field.php @@ -0,0 +1,193 @@ +name = esc_html__( 'Hidden Field', 'wpforms-lite' ); + $this->type = 'hidden'; + $this->icon = 'fa-eye-slash'; + $this->order = 98; + $this->group = 'fancy'; + $this->allow_read_only = false; + + $this->default_settings = [ + 'label_hide' => '1', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks(): void { + + add_filter( 'wpforms_field_new_class', [ $this, 'preview_field_new_class' ], 10, 2 ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( + 'label', + $field, + [ + 'tooltip' => esc_html__( 'Enter text for the form field label. Never displayed on the front-end.', 'wpforms-lite' ), + ] + ); + + // Set the label to disable. + $this->field_element( + 'text', + $field, + [ + 'type' => 'hidden', + 'slug' => 'label_disable', + 'value' => '1', + ] + ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Advanced options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( + 'label_hide', + $field, + [ + 'class' => 'wpforms-disabled', + ] + ); + + // Advanced options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Get a new field CSS class. + * + * @since 1.9.4 + * + * @param string|mixed $css_class Preview new field CSS class. + * @param array $field Field data. + * + * @return string + */ + public function preview_field_new_class( $css_class, array $field ): string { + + $css_class = (string) $css_class; + + if ( empty( $field['type'] ) || $field['type'] !== $this->type ) { + return $css_class; + } + + return trim( $css_class . ' label_hide' ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + public function field_preview( $field ) { + + // Define data. + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + + // The Hidden field label is always hidden. + $field['label_hide'] = '1'; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Primary input. + echo ''; + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Not used any more field attributes. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Html/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Html/Field.php new file mode 100644 index 0000000..e051a96 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Html/Field.php @@ -0,0 +1,215 @@ +name = esc_html__( 'HTML', 'wpforms-lite' ); + $this->keywords = esc_html__( 'code', 'wpforms-lite' ); + $this->type = 'html'; + $this->icon = 'fa-code'; + $this->order = 185; + $this->group = 'fancy'; + $this->allow_read_only = false; + + $this->default_settings = [ + 'name' => '', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Extend from `parent::field_option()` to add `name` option. + * + * @since 1.9.4 + * + * @param string $option Field option to render. + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $do_echo Print or return the value. Print by default. + * + * @return string|null + * @noinspection PhpMissingReturnTypeInspection + * @noinspection ReturnTypeCanBeDeclaredInspection + */ + public function field_option( $option, $field, $args = [], $do_echo = true ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.echoFound + + if ( $option !== 'name' ) { + return parent::field_option( $option, $field, $args, $do_echo ); + } + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'name', + 'value' => esc_html__( 'Label', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for the form field label. It will help identify your HTML blocks inside the form builder, but will not be displayed in the form.', 'wpforms-lite' ), + ], + false + ); + $output .= $this->field_element( + 'text', + $field, + [ + 'slug' => 'name', + 'value' => ! empty( $field['name'] ) ? esc_attr( $field['name'] ) : '', + ], + false + ); + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'name', + 'content' => $output, + ], + false + ); + + if ( $do_echo ) { + echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + return null; + } + + return $output; + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Name (Label). + $this->field_option( 'name', $field ); + + // Code. + $this->field_option( 'code', $field ); + + // Set the label to disable. + $args = [ + 'type' => 'hidden', + 'slug' => 'label_disable', + 'value' => '1', + ]; + + $this->field_element( 'text', $field, $args ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + $label = ! empty( $field['name'] ) ? $field['name'] : ''; + + $label_badge = empty( $label ) ? '' : $this->get_field_preview_badge(); + $code_badge = empty( $label ) ? $this->get_field_preview_badge() : ''; + + ?> + +
              + '#72b239', + 'modern' => '#066aab', + ]; + + /** + * Pages information. + * + * @since 1.9.4 + * + * @var array|bool + */ + protected $pagebreak; + + /** + * Primary class constructor. + * + * @since 1.9.4 + */ + public function init() { + + // Define field type information. + $this->name = esc_html__( 'Page Break', 'wpforms-lite' ); + $this->keywords = esc_html__( 'progress bar, multi step, multi part', 'wpforms-lite' ); + $this->type = 'pagebreak'; + $this->icon = 'fa-files-o'; + $this->order = 160; + $this->group = 'fancy'; + $this->allow_read_only = false; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + + add_filter( 'wpforms_field_preview_class', [ $this, 'preview_field_class' ], 10, 2 ); + add_filter( 'wpforms_field_preview_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + add_filter( 'wpforms_field_new_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + + $position = ! empty( $field['position'] ) ? esc_attr( $field['position'] ) : ''; + $position_class = ! empty( $field['position'] ) ? 'wpforms-pagebreak-' . $position : ''; + + $this->field_options_basic( $field, $position, $position_class ); + $this->field_options_advanced( $field, $position, $position_class ); + } + + /** + * Advanced field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + * @param string $position Position. + * @param string $position_class Position CSS class. + */ + private function field_options_basic( array $field, string $position, string $position_class ): void { + + // Hidden field indicating the position. + $this->field_element( + 'text', + $field, + [ + 'type' => 'hidden', + 'slug' => 'position', + 'value' => $position, + 'class' => 'position', + ] + ); + + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'class' => $position_class, + 'after_title' => $this->get_field_options_notice(), + ] + ); + + $this->field_options_basic_top( $field, $position ); + + // Page Title, don't display for bottom page breaks. + if ( $position !== 'bottom' ) { + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'title', + 'value' => esc_html__( 'Page Title', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for the page title.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'title', + 'value' => ! empty( $field['title'] ) ? esc_attr( $field['title'] ) : '', + ], + false + ); + + $indicator = ! empty( $field['indicator'] ) ? esc_attr( $field['indicator'] ) : 'progress'; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'title', + 'content' => $lbl . $fld, + 'class' => $indicator === 'none' ? 'wpforms-hidden' : '', + ] + ); + } + + // Next label. + if ( empty( $position ) ) { + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'next', + 'value' => esc_html__( 'Next Label', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for Next page navigation button.', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'next', + 'value' => ! empty( $field['next'] ) ? esc_attr( $field['next'] ) : esc_html__( 'Next', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'next', + 'content' => $lbl . $fld, + ] + ); + } + + // Options are not available to top page breaks. + if ( $position !== 'top' ) { + + // Previous button toggle. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'prev_toggle', + // Backward compatibility for forms that were created before the toggle was added. + 'value' => ! empty( $field['prev_toggle'] ) || ! empty( $field['prev'] ), + 'desc' => esc_html__( 'Display Previous', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Toggle displaying the Previous page navigation button.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'prev_toggle', + 'content' => $fld, + ] + ); + + // Previous button label. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'prev', + 'value' => esc_html__( 'Previous Label', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for Previous page navigation button.', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'prev', + 'value' => ! empty( $field['prev'] ) ? esc_attr( $field['prev'] ) : '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'prev', + 'content' => $lbl . $fld, + 'class' => empty( $field['prev_toggle'] ) ? 'wpforms-hidden' : '', + ] + ); + } + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Generate the field UI for progress text configuration within a form. + * + * @since 1.9.7 + * + * @param array $field The field data used to generate the progress text UI elements. + */ + private function field_progress_text( array $field ): void { + + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'progress_text', + 'value' => esc_html__( 'Progress Text', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for the progress indicator.', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'progress_text', + 'value' => ! empty( $field['progress_text'] ) ? esc_html( $field['progress_text'] ) : 'Step {current_page} of {last_page}', + 'after' => esc_html__( 'Enter text to show the user\'s progress. You can use {current_page} and {last_page} to indicate the current and last steps.', 'wpforms-lite' ), + ], + false + ); + + $indicator = ! empty( $field['indicator'] ) ? esc_attr( $field['indicator'] ) : 'progress'; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'progress_text', + 'content' => $lbl . $fld, + 'class' => $indicator !== 'progress' ? 'wpforms-hidden' : '', // Hide if the indicator is not set to progress. + ] + ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + * @param string $position Position. + */ + private function field_options_basic_top( array $field, string $position ): void { + + // Options specific to the top pagebreak. + if ( $position !== 'top' ) { + return; + } + + // Indicator themes. + $themes = [ + 'progress' => esc_html__( 'Progress Bar', 'wpforms-lite' ), + 'circles' => esc_html__( 'Circles', 'wpforms-lite' ), + 'connector' => esc_html__( 'Connector', 'wpforms-lite' ), + 'none' => esc_html__( 'None', 'wpforms-lite' ), + ]; + + /** + * Filter the available Pagebreak Indicator themes. + * + * @since 1.6.6 + * + * @param array $themes Available themes. + */ + $themes = apply_filters( 'wpforms_pagebreak_indicator_themes', $themes ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'indicator', + 'value' => esc_html__( 'Progress Indicator', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select theme for Page Indicator which is displayed at the top of the form.', 'wpforms-lite' ), + ], + false + ); + + $indicator = ! empty( $field['indicator'] ) ? esc_attr( $field['indicator'] ) : 'progress'; + + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'indicator', + 'value' => $indicator, + 'options' => $themes, + 'class' => 'wpforms-pagebreak-progress-indicator', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'indicator', + 'content' => $lbl . $fld, + ] + ); + + // Indicator color picker. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'indicator_color', + 'value' => esc_html__( 'Page Indicator Color', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the primary color for the Page Indicator theme.', 'wpforms-lite' ), + ], + false + ); + + $indicator_color = isset( $field['indicator_color'] ) ? wpforms_sanitize_hex_color( $field['indicator_color'] ) : self::get_default_indicator_color(); + + $fld = $this->field_element( + 'color', + $field, + [ + 'slug' => 'indicator_color', + 'value' => $indicator_color, + 'data' => [ + 'fallback-color' => $indicator_color, + ], + ], + false + ); + + $indicator_color_classes = [ 'color-picker-row' ]; + + if ( $indicator === 'none' ) { + $indicator_color_classes[] = 'wpforms-hidden'; + } + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'indicator_color', + 'content' => $lbl . $fld, + 'class' => $indicator_color_classes, + ] + ); + + $this->field_progress_text( $field ); + } + + /** + * Advanced field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + * @param string $position Position. + * @param string $position_class Position CSS class. + */ + private function field_options_advanced( array $field, string $position, string $position_class ): void { + + if ( $position === 'bottom' ) { + return; + } + + /** + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + 'class' => $position_class, + ] + ); + + // Navigation alignment, only available to the top. + if ( $position === 'top' ) { + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'nav_align', + 'value' => esc_html__( 'Page Navigation Alignment', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the alignment for the Next/Previous page navigation buttons', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'nav_align', + 'value' => ! empty( $field['nav_align'] ) ? esc_attr( $field['nav_align'] ) : '', + 'options' => [ + 'left' => esc_html__( 'Left', 'wpforms-lite' ), + 'right' => esc_html__( 'Right', 'wpforms-lite' ), + '' => esc_html__( 'Center', 'wpforms-lite' ), + 'split' => esc_html__( 'Split', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'nav_align', + 'content' => $lbl . $fld, + ] + ); + + // Scroll animation toggle. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'scroll_disabled', + 'value' => ! empty( $field['scroll_disabled'] ), + 'desc' => esc_html__( 'Disable Scroll Animation', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'By default, a user\'s view is pulled to the top of each form page. Set to ON to disable this animation.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'scroll_disabled', + 'content' => $fld, + ] + ); + } + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $nav_align = 'wpforms-pagebreak-buttons-left'; + $prev = ! empty( $field['prev'] ) ? $field['prev'] : esc_html__( 'Previous', 'wpforms-lite' ); + $prev_class = empty( $field['prev'] ) && empty( $field['prev_toggle'] ) ? 'wpforms-hidden' : ''; + $next = ! empty( $field['next'] ) ? $field['next'] : esc_html__( 'Next', 'wpforms-lite' ); + $next_class = empty( $next ) ? 'wpforms-hidden' : ''; + $position = ! empty( $field['position'] ) ? $field['position'] : 'normal'; + $title = ! empty( $field['title'] ) ? $field['title'] : ''; + $label = $position === 'top' ? esc_html__( 'First Page / Progress Indicator', 'wpforms-lite' ) : ''; + $label = $position === 'normal' && empty( $label ) ? esc_html__( 'Page Break', 'wpforms-lite' ) : $label; + + /** + * Fires before the page break is displayed on the preview. + * + * @since 1.7.9 + * + * @param array $form_data Form data and settings. + * @param array $field Field data. + */ + do_action( 'wpforms_field_page_break_field_preview_before', $this->form_data, $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( $position !== 'top' ) { + if ( empty( $this->form_data ) ) { + $this->form_data = wpforms()->obj( 'form' )->get( $this->form_id, [ 'content_only' => true ] ); + } + + if ( empty( $this->pagebreak ) ) { + $this->pagebreak = wpforms_get_pagebreak_details( $this->form_data ); + } + + if ( ! empty( $this->pagebreak['top']['nav_align'] ) ) { + $nav_align = 'wpforms-pagebreak-buttons-' . $this->pagebreak['top']['nav_align']; + } + + echo '
              '; + printf( + '', + sanitize_html_class( $prev_class ), + esc_html( $prev ) + ); + + if ( $position !== 'bottom' ) { + printf( + '', + sanitize_html_class( $next_class ), + esc_html( $next ) + ); + + if ( $next_class !== 'wpforms-hidden' ) { + + /** This action is documented in includes/class-frontend.php. */ + do_action( 'wpforms_display_submit_after', $this->form_data, 'next' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + } + echo '
              '; + } + + // Visual divider. + echo '
              '; + if ( $position !== 'bottom' ) { + printf( + '%1$s %2$s%3$s', + esc_html( $label ), + esc_html( $title ), + $this->get_field_preview_badge() // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + echo ''; + echo '
              '; + + /** + * Fires after a page break is displayed on the preview. + * + * @since 1.7.9 + * + * @param array $form_data Form data and settings. + * @param array $field Field data. + */ + do_action( 'wpforms_field_page_break_field_preview_after', $this->form_data, $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Add a class to the builder field preview. + * + * @since 1.9.4 + * + * @param string|mixed $css CSS classes. + * @param array $field Field data and settings. + * + * @return string + */ + public function preview_field_class( $css, $field ): string { + + $css = (string) $css; + + if ( $field['type'] !== 'pagebreak' ) { + return $css; + } + + if ( ! empty( $field['position'] ) && $field['position'] === 'top' ) { + $css .= ' wpforms-field-stick wpforms-pagebreak-top'; + } elseif ( ! empty( $field['position'] ) && $field['position'] === 'bottom' ) { + $css .= ' wpforms-field-stick wpforms-pagebreak-bottom'; + } else { + $css .= ' wpforms-pagebreak-normal'; + } + + return $css; + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Field attributes. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } + + /** + * Get the default indicator color. + * + * @since 1.9.4 + * + * @return string + */ + public static function get_default_indicator_color(): string { + + $render_engine = wpforms_get_render_engine(); + + return array_key_exists( $render_engine, self::DEFAULT_INDICATOR_COLOR ) ? self::DEFAULT_INDICATOR_COLOR[ $render_engine ] : self::DEFAULT_INDICATOR_COLOR['modern']; + } + + /** + * Disallow the field preview "Duplicate" button. + * + * @since 1.9.9 + * + * @param bool|mixed $display Display switch. + * @param array $field Field settings. + * + * @return bool + */ + public function field_display_duplicate_button( $display, array $field ): bool { + + $type = $field['type'] ?? ''; + + if ( $type === $this->type ) { + // Pagebreak fields cannot be duplicated. + return false; + } + + return (bool) $display; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Password/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Password/Field.php new file mode 100644 index 0000000..a1b0ff4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Password/Field.php @@ -0,0 +1,345 @@ +name = esc_html__( 'Password', 'wpforms-lite' ); + $this->keywords = esc_html__( 'user', 'wpforms-lite' ); + $this->type = 'password'; + $this->icon = 'fa-lock'; + $this->order = 95; + $this->group = 'fancy'; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + * + * @noinspection PackedHashtableOptimizationInspection + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Confirmation toggle. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'confirmation', + 'value' => isset( $field['confirmation'] ) ? '1' : '0', + 'desc' => esc_html__( 'Enable Password Confirmation', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to ask users to provide their password twice.', 'wpforms-lite' ), + ], + false + ); + $args = [ + 'slug' => 'confirmation', + 'content' => $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Password strength. + $meter = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'password-strength', + 'value' => isset( $field['password-strength'] ) ? '1' : '0', + 'desc' => esc_html__( 'Enable Password Strength', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to set minimum password strength.', 'wpforms-lite' ), + ], + false + ); + $args = [ + 'slug' => 'password-strength', + 'content' => $meter, + ]; + + $this->field_element( 'row', $field, $args ); + + $strength_label = $this->field_element( + 'label', + $field, + [ + 'value' => esc_html__( 'Minimum Strength', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select minimum password strength level.', 'wpforms-lite' ), + ], + false + ); + + $strength = $this->field_element( + 'select', + $field, + [ + 'slug' => 'password-strength-level', + 'options' => [ + '2' => esc_html__( 'Weak', 'wpforms-lite' ), + '3' => esc_html__( 'Medium', 'wpforms-lite' ), + '4' => esc_html__( 'Strong', 'wpforms-lite' ), + ], + 'value' => $field['password-strength-level'] ?? '3', + + ], + false + ); + $args = [ + 'slug' => 'password-strength-level', + 'class' => ! isset( $field['password-strength'] ) ? 'wpforms-hidden' : '', + 'content' => $strength_label . $strength, + ]; + + $this->field_element( 'row', $field, $args ); + + $visibility = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'password-visibility', + 'value' => isset( $field['password-visibility'] ) ? '1' : '0', + 'desc' => esc_html__( 'Enable Password Visibility', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to add a toggle for showing and hiding the password.', 'wpforms-lite' ), + ], + false + ); + $args = [ + 'slug' => 'password-visibility', + 'content' => $visibility, + ]; + + $this->field_element( 'row', $field, $args ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Confirmation Placeholder. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'confirmation_placeholder', + 'value' => esc_html__( 'Confirmation Placeholder Text', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter text for the confirmation field placeholder.', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'text', + $field, + [ + 'slug' => 'confirmation_placeholder', + 'value' => ! empty( $field['confirmation_placeholder'] ) ? esc_attr( $field['confirmation_placeholder'] ) : '', + ], + false + ); + $args = [ + 'slug' => 'confirmation_placeholder', + 'content' => $lbl . $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabels. + $this->field_option( 'sublabel_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Current field specific data. + * + * @noinspection HtmlUnknownAttribute + */ + public function field_preview( $field ) { + + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $confirm_placeholder = ! empty( $field['confirmation_placeholder'] ) ? $field['confirmation_placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + $confirm = ! empty( $field['confirmation'] ) ? 'enabled' : 'disabled'; + $field_classes = [ + 'wpforms-confirm', + 'wpforms-confirm-' . $confirm, + ]; + + if ( ! empty( $field['password-visibility'] ) ) { + $field_classes[] = 'wpforms-field-password-visibility-enabled'; + } + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + $icons = wpforms()->is_pro() + ? ' +
              + + +
              ' + : ''; + + $field_markup = ' +
              + + %2$s +
              '; + + ?> +
              +
              + 'readonly', + 'placeholder' => $placeholder, + 'value' => $default_value, + ] + ), + $icons // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + ?> + +
              + +
              + 'readonly', + 'placeholder' => $confirm_placeholder, + ] + ), + $icons // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + ?> + +
              +
              + field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentCheckbox/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentCheckbox/Field.php new file mode 100644 index 0000000..0897518 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentCheckbox/Field.php @@ -0,0 +1,594 @@ +name = esc_html__( 'Checkbox Items', 'wpforms-lite' ); + $this->keywords = esc_html__( 'product, store, ecommerce, pay, payment', 'wpforms-lite' ); + $this->type = 'payment-checkbox'; + $this->icon = 'fa-check-square-o'; + $this->order = 50; + $this->group = 'payment'; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'First Item', 'wpforms-lite' ), + 'value' => '10', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + 2 => [ + 'label' => esc_html__( 'Second Item', 'wpforms-lite' ), + 'value' => '25', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + 3 => [ + 'label' => esc_html__( 'Third Item', 'wpforms-lite' ), + 'value' => '50', + 'image' => '', + 'icon' => '', + 'icon_style' => '', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + // Customize HTML field values. + add_filter( 'wpforms_html_field_value', [ $this, 'field_html_value' ], 10, 4 ); + add_filter( "wpforms_{$this->type}_field_html_value_images", [ $this, 'field_html_value_images' ], 10, 3 ); + + // Define additional field properties. + add_filter( "wpforms_field_properties_{$this->type}", [ $this, 'field_properties' ], 5, 3 ); + + // This field requires fieldset+legend instead of the field label. + add_filter( "wpforms_frontend_modern_is_field_requires_fieldset_{$this->type}", '__return_true', PHP_INT_MAX, 2 ); + } + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + $choices = $field['choices']; + + // Remove primary input, unset for attribute for label. + unset( $properties['inputs']['primary'], $properties['label']['attr']['for'] ); + + // Set input container (ul) properties. + $properties['input_container'] = [ + 'class' => [], + 'data' => [], + 'attr' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + ]; + + $is_choice_limit_set = ! empty( $field['choice_limit'] ) && (int) $field['choice_limit'] > 0; + + if ( $is_choice_limit_set ) { + $properties['input_container']['data']['choice-limit'] = $field['choice_limit']; + } + + // Set input properties. + foreach ( $choices as $key => $choice ) { + + // Choice labels should not be left blank, but if they are, we provide a basic value. + $label = $choice['label']; + + if ( $label === '' ) { + if ( 1 === count( $choices ) ) { + $label = esc_html__( 'Checked', 'wpforms-lite' ); + } else { + /* translators: %s - item number. */ + $label = sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $key ); + } + } + + $properties['inputs'][ $key ] = [ + 'container' => [ + 'attr' => [], + 'class' => [ "choice-{$key}" ], + 'data' => [], + 'id' => '', + ], + 'label' => [ + 'attr' => [ + 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + ], + 'class' => [ 'wpforms-field-label-inline' ], + 'data' => [], + 'id' => '', + 'text' => $label, + ], + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][]", + 'value' => $key, + ], + 'class' => [ 'wpforms-payment-price' ], + 'data' => [ + 'amount' => wpforms_format_amount( wpforms_sanitize_amount( $choice['value'] ) ), + ], + 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + 'icon' => $choice['icon'] ?? '', + 'icon_style' => $choice['icon_style'] ?? '', + 'image' => $choice['image'] ?? '', + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'default' => isset( $choice['default'] ), + ]; + + // Rule for validator only if needed. + if ( $is_choice_limit_set ) { + $properties['inputs'][ $key ]['data']['rule-check-limit'] = 'true'; + } + } + + // Required class for pagebreak validation. + if ( ! empty( $field['required'] ) ) { + $properties['input_container']['class'][] = 'wpforms-field-required'; + } + + // Custom properties if image choices are enabled. + if ( ! empty( $field['choices_images'] ) ) { + + $properties['input_container']['class'][] = 'wpforms-image-choices'; + $properties['input_container']['class'][] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] ); + + foreach ( $properties['inputs'] as $key => $inputs ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-image-choices-item'; + + if ( in_array( $field['choices_images_style'], [ 'modern', 'classic' ], true ) ) { + $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element'; + } + } + } elseif ( ! empty( $field['choices_icons'] ) ) { + $properties = wpforms()->obj( 'icon_choices' )->field_properties( $properties, $field ); + } + + // Add selected class for choices with defaults. + foreach ( $properties['inputs'] as $key => $inputs ) { + if ( ! empty( $inputs['default'] ) ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-selected'; + } + } + + return $properties; + } + + /** + * Get field populated single property value. + * + * @since 1.8.2 + * + * @param string $raw_value Value from a GET param, always a string. + * @param string $input Represent a subfield inside the field. May be empty. + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function get_field_populated_single_property_value( $raw_value, $input, $properties, $field ) { + /* + * When the form is submitted, we get only choice values from the Fallback. + * As payment-checkbox (checkboxes) field doesn't support 'show_values' option - + * we should transform that into label to check against using general logic in parent method. + */ + + if ( + ! is_string( $raw_value ) || + empty( $field['choices'] ) || + ! is_array( $field['choices'] ) + ) { + return $properties; + } + + // The form submits only the sum, so shortcut for Dynamic. + if ( ! is_numeric( $raw_value ) ) { + return parent::get_field_populated_single_property_value( $raw_value, $input, $properties, $field ); + } + + $get_value = wpforms_format_amount( wpforms_sanitize_amount( $raw_value ) ); + + foreach ( $field['choices'] as $choice ) { + if ( + isset( $choice['label'], $choice['value'] ) && + wpforms_format_amount( wpforms_sanitize_amount( $choice['value'] ) ) === $get_value + ) { + $trans_value = $choice['label']; + // Stop iterating over choices. + break; + } + } + + if ( empty( $trans_value ) ) { + return $properties; + } + + return parent::get_field_populated_single_property_value( $trans_value, $input, $properties, $field ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Choices option. + $this->field_option( 'choices_payments', $field ); + + // Show price after item labels. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'show_price_after_labels', + 'value' => isset( $field['show_price_after_labels'] ) ? '1' : '0', + 'desc' => esc_html__( 'Show Price After Item Labels', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to show price of the item after the label.', 'wpforms-lite' ), + ], + false + ); + $args = [ + 'slug' => 'show_price_after_labels', + 'content' => $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Choices Images. + $this->field_option( 'choices_images', $field ); + + // Hide Choices Images. + $this->field_option( 'choices_images_hide', $field ); + + // Choice Images Style (theme). + $this->field_option( 'choices_images_style', $field ); + + // Choices Icons. + $this->field_option( 'choices_icons', $field ); + + // Choices Icons Color. + $this->field_option( 'choices_icons_color', $field ); + + // Choices Icons Size. + $this->field_option( 'choices_icons_size', $field ); + + // Choices Icons Style. + $this->field_option( 'choices_icons_style', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Input columns. + $this->field_option( 'input_columns', $field ); + + // Choice Limit. + $this->field_option( 'choice_limit', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Choices. + $this->field_preview_option( 'choices', $field ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.8.2 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + * @noinspection HtmlUnknownTarget + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $container = $field['properties']['input_container']; + $choices = $field['properties']['inputs']; + + printf( + '
                ', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + foreach ( $choices as $key => $choice ) { + + $label = $choice['label']['text'] ?? ''; + + /* translators: %s - item number. */ + $label = $label !== '' ? $label : sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $key ); + + $label .= ! empty( $field['show_price_after_labels'] ) && isset( $choice['data']['amount'] ) ? $this->get_price_after_label( $choice['data']['amount'] ) : ''; + + printf( + '
              • ', + wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + if ( empty( $field['dynamic_choices'] ) && ! empty( $field['choices_images'] ) ) { + + // Image choices. + printf( + ''; + + } elseif ( empty( $field['dynamic_choices'] ) && ! empty( $field['choices_icons'] ) ) { + // Icon Choices. + wpforms()->obj( 'icon_choices' )->field_display( $field, $choice, 'checkbox', $label ); + + } else { + + // Normal display. + printf( + '', + wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $choice['required'] ), + checked( '1', $choice['default'], false ) + ); + + printf( + '', + wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + wp_kses_post( $label ) + ); + } + + echo '
              • '; + } + + echo '
              '; + } + + /** + * Validate field on submitting the form. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $field_id = (int) $field_id; + $error = ''; + + // Basic required check - If field is marked as required, check for entry data. + if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) ) { + $error = wpforms_get_required_label(); + } + + if ( ! empty( $field_submit ) ) { + foreach ( (array) $field_submit as $checked_choice ) { + // Validate that the option selected is real. + if ( empty( $form_data['fields'][ $field_id ]['choices'][ (int) $checked_choice ] ) ) { + $error = esc_html__( 'Invalid payment option.', 'wpforms-lite' ); + + break; + } + } + } + + $field_submit = (array) $field_submit; + + $this->validate_field_choice_limit( $field_id, $field_submit, $form_data ); + + if ( ! empty( $error ) ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = $error; + } + } + + /** + * Format and sanitize field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param array $field_submit Array of selected choice IDs. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, Generic.Metrics.NestingLevel.MaxExceeded + + $field_submit = array_values( (array) $field_submit ); + $field = $form_data['fields'][ $field_id ]; + $name = sanitize_text_field( $field['label'] ); + $amount = 0; + $images = []; + $choice_values = []; + $choice_labels = []; + $choice_keys = []; + + if ( ! empty( $field_submit ) ) { + foreach ( $field_submit as $choice_checked ) { + foreach ( $field['choices'] as $choice_id => $choice ) { + // Exit early. + if ( (int) $choice_checked !== (int) $choice_id ) { + continue; + } + + $value = (float) wpforms_sanitize_amount( $choice['value'] ); + + // Increase the total amount. + $amount += $value; + + $value = wpforms_format_amount( $value, true ); + $choice_label = ''; + + if ( ! empty( $choice['label'] ) ) { + $choice_label = sanitize_text_field( $choice['label'] ); + $value = $choice_label . ' - ' . $value; + } + + $choice_labels[] = $choice_label; + $choice_values[] = $value; + $choice_keys[] = $choice_id; + } + } + + if ( ! empty( $choice_keys ) && ! empty( $field['choices_images'] ) ) { + foreach ( $choice_keys as $choice_key ) { + $images[] = ! empty( $field['choices'][ $choice_key ]['image'] ) ? esc_url_raw( $field['choices'][ $choice_key ]['image'] ) : ''; + } + } + } + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $name, + 'value' => implode( "\r\n", $choice_values ), + 'value_choice' => implode( "\r\n", $choice_labels ), + 'value_raw' => implode( ',', array_map( 'absint', $field_submit ) ), + 'amount' => wpforms_format_amount( $amount ), + 'amount_raw' => $amount, + 'currency' => wpforms_get_currency(), + 'images' => $images, + 'id' => absint( $field_id ), + 'type' => sanitize_key( $this->type ), + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentMultiple/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentMultiple/Field.php new file mode 100644 index 0000000..1b53c44 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentMultiple/Field.php @@ -0,0 +1,536 @@ +name = esc_html__( 'Multiple Items', 'wpforms-lite' ); + $this->keywords = esc_html__( 'product, store, ecommerce, pay, payment', 'wpforms-lite' ); + $this->type = 'payment-multiple'; + $this->icon = 'fa-list-ul'; + $this->order = 50; + $this->group = 'payment'; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'First Item', 'wpforms-lite' ), + 'value' => '10', + 'icon' => '', + 'icon_style' => '', + 'image' => '', + 'default' => '', + ], + 2 => [ + 'label' => esc_html__( 'Second Item', 'wpforms-lite' ), + 'value' => '25', + 'icon' => '', + 'icon_style' => '', + 'image' => '', + 'default' => '', + ], + 3 => [ + 'label' => esc_html__( 'Third Item', 'wpforms-lite' ), + 'value' => '50', + 'icon' => '', + 'icon_style' => '', + 'image' => '', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + // Customize HTML field values. + add_filter( 'wpforms_html_field_value', [ $this, 'field_html_value' ], 10, 4 ); + add_filter( "wpforms_{$this->type}_field_html_value_images", [ $this, 'field_html_value_images' ], 10, 3 ); + + // Define additional field properties. + add_filter( "wpforms_field_properties_{$this->type}", [ $this, 'field_properties' ], 5, 3 ); + + // This field requires fieldset+legend instead of the field label. + add_filter( "wpforms_frontend_modern_is_field_requires_fieldset_{$this->type}", '__return_true', PHP_INT_MAX, 2 ); + } + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + $choices = $field['choices']; + + // Remove primary input, unset for attribute for label. + unset( $properties['inputs']['primary'], $properties['label']['attr']['for'] ); + + // Set input container (ul) properties. + $properties['input_container'] = [ + 'class' => [], + 'data' => [], + 'attr' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + ]; + + // Set input properties. + foreach ( $choices as $key => $choice ) { + + $properties['inputs'][ $key ] = [ + 'container' => [ + 'attr' => [], + 'class' => [ "choice-{$key}" ], + 'data' => [], + 'id' => '', + ], + 'label' => [ + 'attr' => [ + 'for' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + ], + 'class' => [ 'wpforms-field-label-inline' ], + 'data' => [], + 'id' => '', + 'text' => $choice['label'], + ], + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}]", + 'value' => $key, + ], + 'class' => [ 'wpforms-payment-price' ], + 'data' => [ + 'amount' => wpforms_format_amount( wpforms_sanitize_amount( $choice['value'] ) ), + ], + 'id' => "wpforms-{$form_id}-field_{$field_id}_{$key}", + 'icon' => $choice['icon'] ?? '', + 'icon_style' => $choice['icon_style'] ?? '', + 'image' => $choice['image'] ?? '', + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'default' => isset( $choice['default'] ), + ]; + } + + // Required class for pagebreak validation. + if ( ! empty( $field['required'] ) ) { + $properties['input_container']['class'][] = 'wpforms-field-required'; + } + + // Custom properties if image choices are enabled. + if ( ! empty( $field['choices_images'] ) ) { + + $properties['input_container']['class'][] = 'wpforms-image-choices'; + $properties['input_container']['class'][] = 'wpforms-image-choices-' . sanitize_html_class( $field['choices_images_style'] ); + + foreach ( $properties['inputs'] as $key => $inputs ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-image-choices-item'; + + if ( in_array( $field['choices_images_style'], [ 'modern', 'classic' ], true ) ) { + $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element'; + } + } + } elseif ( ! empty( $field['choices_icons'] ) ) { + $properties = wpforms()->obj( 'icon_choices' )->field_properties( $properties, $field ); + } + + // Add selected class for choices with defaults. + foreach ( $properties['inputs'] as $key => $inputs ) { + if ( ! empty( $inputs['default'] ) ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-selected'; + } + } + + return $properties; + } + + /** + * Get field populated single property value. + * + * @since 1.8.2 + * + * @param string $raw_value Value from a GET param, always a string. + * @param string $input Represent a subfield inside the field. May be empty. + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return array Modified field properties. + */ + protected function get_field_populated_single_property_value( $raw_value, $input, $properties, $field ) { + /* + * When the form is submitted, we get only values (prices) from the Fallback. + * As payment-multiple (radio) field doesn't support 'show_values' option - + * we should transform value into label to check against using general logic in parent method. + */ + + if ( + ! is_string( $raw_value ) || + empty( $field['choices'] ) || + ! is_array( $field['choices'] ) + ) { + return $properties; + } + + // The form submits only the sum, so shortcut for Dynamic. + if ( ! is_numeric( $raw_value ) ) { + return parent::get_field_populated_single_property_value( $raw_value, $input, $properties, $field ); + } + + $get_value = wpforms_format_amount( wpforms_sanitize_amount( $raw_value ) ); + + foreach ( $field['choices'] as $choice ) { + if ( + isset( $choice['label'], $choice['value'] ) && + wpforms_format_amount( wpforms_sanitize_amount( $choice['value'] ) ) === $get_value + ) { + $trans_value = $choice['label']; + // Stop iterating over choices. + break; + } + } + + if ( empty( $trans_value ) ) { + return $properties; + } + + return parent::get_field_populated_single_property_value( $trans_value, $input, $properties, $field ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Choices option. + $this->field_option( 'choices_payments', $field ); + + // Show price after item labels. + $fld = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'show_price_after_labels', + 'value' => isset( $field['show_price_after_labels'] ) ? '1' : '0', + 'desc' => esc_html__( 'Show Price After Item Labels', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to show price of the item after the label.', 'wpforms-lite' ), + ], + false + ); + $args = [ + 'slug' => 'show_price_after_labels', + 'content' => $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Choices Images. + $this->field_option( 'choices_images', $field ); + + // Hide Choices Images. + $this->field_option( 'choices_images_hide', $field ); + + // Choice Images Style (theme). + $this->field_option( 'choices_images_style', $field ); + + // Choices Icons. + $this->field_option( 'choices_icons', $field ); + + // Choices Icons Color. + $this->field_option( 'choices_icons_color', $field ); + + // Choices Icons Size. + $this->field_option( 'choices_icons_size', $field ); + + // Choices Icons Style. + $this->field_option( 'choices_icons_style', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Input columns. + $this->field_option( 'input_columns', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Choices. + $this->field_preview_option( 'choices', $field ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.8.2 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated array. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + * @noinspection HtmlUnknownTarget + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Define data. + $container = $field['properties']['input_container']; + $choices = $field['properties']['inputs']; + + printf( + '
                ', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + foreach ( $choices as $key => $choice ) { + + $label = $choice['label']['text'] ?? ''; + + /* translators: %s - item number. */ + $label = $label !== '' ? $label : sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $key ); + + $label .= ! empty( $field['show_price_after_labels'] ) && isset( $choice['data']['amount'] ) ? $this->get_price_after_label( $choice['data']['amount'] ) : ''; + + printf( + '
              • ', + wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + if ( empty( $field['dynamic_choices'] ) && ! empty( $field['choices_images'] ) ) { + + // Image choices. + printf( + ''; + + } elseif ( empty( $field['dynamic_choices'] ) && ! empty( $field['choices_icons'] ) ) { + // Icon Choices. + wpforms()->obj( 'icon_choices' )->field_display( $field, $choice, 'radio', $label ); + + } else { + + // Normal display. + printf( + '', + wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $choice['required'] ), + checked( '1', $choice['default'], false ) + ); + + printf( + '', + wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + wp_kses_post( $label ) + ); + } + + echo '
              • '; + } + + echo '
              '; + } + + /** + * Validate field on submitting the form. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + // Basic required check - If field is marked as required, check for entry data. + if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) ) { + + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = wpforms_get_required_label(); + } + + // Validate that the option selected is real. + if ( + is_string( $field_submit ) && + ! empty( $field_submit ) + && empty( $form_data['fields'][ $field_id ]['choices'][ $field_submit ] ) + ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = + esc_html__( 'Invalid payment option.', 'wpforms-lite' ); + } + } + + /** + * Format and sanitize field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Submitted form data. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + $name = sanitize_text_field( $field['label'] ); + $value = ''; + $amount = 0; + $choice_label = ''; + $image = ''; + + if ( ! empty( $field_submit ) && ! empty( $field['choices'][ $field_submit ] ) ) { + + $amount = wpforms_sanitize_amount( $field['choices'][ $field_submit ]['value'] ); + $value = wpforms_format_amount( $amount, true ); + + if ( ! empty( $field['choices'][ $field_submit ]['label'] ) ) { + $choice_label = sanitize_text_field( $field['choices'][ $field_submit ]['label'] ); + $value = $choice_label . ' - ' . $value; + } + + if ( ! empty( $field['choices_images'] ) ) { + $image = ! empty( $field['choices'][ $field_submit ]['image'] ) ? esc_url_raw( $field['choices'][ $field_submit ]['image'] ) : ''; + } + } + + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => $name, + 'value' => $value, + 'value_choice' => $choice_label, + 'value_raw' => sanitize_text_field( $field_submit ), + 'amount' => wpforms_format_amount( $amount ), + 'amount_raw' => $amount, + 'currency' => wpforms_get_currency(), + 'image' => $image, + 'id' => absint( $field_id ), + 'type' => sanitize_key( $this->type ), + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSelect/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSelect/Field.php new file mode 100644 index 0000000..45ab00f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSelect/Field.php @@ -0,0 +1,644 @@ +name = esc_html__( 'Dropdown Items', 'wpforms-lite' ); + $this->keywords = esc_html__( 'product, store, ecommerce, pay, payment', 'wpforms-lite' ); + $this->type = 'payment-select'; + $this->icon = 'fa-caret-square-o-down'; + $this->order = 70; + $this->group = 'payment'; + $this->defaults = [ + 1 => [ + 'label' => esc_html__( 'First Item', 'wpforms-lite' ), + 'value' => '10', + 'default' => '', + ], + 2 => [ + 'label' => esc_html__( 'Second Item', 'wpforms-lite' ), + 'value' => '25', + 'default' => '', + ], + 3 => [ + 'label' => esc_html__( 'Third Item', 'wpforms-lite' ), + 'value' => '50', + 'default' => '', + ], + ]; + + $this->default_settings = [ + 'choices' => $this->defaults, + ]; + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + // Define additional field properties. + add_filter( "wpforms_field_properties_{$this->type}", [ $this, 'field_properties' ], 5, 3 ); + + // Form frontend CSS enqueues. + add_action( 'wpforms_frontend_css', [ $this, 'enqueue_frontend_css' ] ); + + // Form frontend JS enqueues. + add_action( 'wpforms_frontend_js', [ $this, 'enqueue_frontend_js' ] ); + + // Customize HTML field value. + add_filter( 'wpforms_html_field_value', [ $this, 'field_html_value' ], 10, 4 ); + } + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Remove primary input. + unset( $properties['inputs']['primary'] ); + + // Define data. + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + $choices = $field['choices']; + + // Set options container (', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + + // Optional placeholder. + if ( ! empty( $field_placeholder ) || $is_modern ) { + printf( + '', + selected( false, $has_default, false ), + esc_html( $field_placeholder ) + ); + } + + // Format string for option. + if ( $is_modern ) { + // The `data-custom-properties` is a Choices.js attribute, and it stores a copy of `data-amount` attribute. + $option_format = ''; + } else { + $option_format = ''; + } + + // Build the select options. + foreach ( $choices as $key => $choice ) { + $amount = wpforms_format_amount( wpforms_sanitize_amount( $choice['attr']['value'] ) ); + $label = $choice['label']['text'] ?? ''; + + /* translators: %s - item number. */ + $label = $label !== '' ? $label : sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $key ); + + $label .= ! empty( $field['show_price_after_labels'] ) && isset( $choice['attr']['value'] ) ? ' - ' . wpforms_format_amount( wpforms_sanitize_amount( $choice['attr']['value'] ), true ) : ''; + + printf( + $option_format, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_attr( $key ), + esc_attr( $amount ), + selected( true, ! empty( $choice['default'] ), false ), + esc_html( $label ) + ); + } + + echo ''; + + $this->display_quantity_dropdown( $field ); + } + + /** + * Validate field on submitting the form. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + // Basic required check - If field is marked as required, check for entry data. + if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) ) { + + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = wpforms_get_required_label(); + } + + // Validate that the option selected is real. + if ( ! empty( $field_submit ) && empty( $form_data['fields'][ $field_id ]['choices'][ $field_submit ] ) ) { + + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Invalid payment option', 'wpforms-lite' ); + } + } + + /** + * Format and sanitize field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Submitted field value (selected option). + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $choice_label = ''; + $field = $form_data['fields'][ $field_id ]; + $name = ! empty( $field['label'] ) ? sanitize_text_field( $field['label'] ) : ''; + + // Fetch the amount. + if ( ! empty( $field['choices'][ $field_submit ]['value'] ) ) { + $amount = wpforms_sanitize_amount( $field['choices'][ $field_submit ]['value'] ); + } else { + $amount = 0; + } + + $value = wpforms_format_amount( $amount, true ); + + if ( empty( $field_submit ) ) { + $value = ''; + } elseif ( ! empty( $field['choices'][ $field_submit ]['label'] ) ) { + $choice_label = sanitize_text_field( $field['choices'][ $field_submit ]['label'] ); + $value = $choice_label . ' - ' . $value; + } + + $field_data = [ + 'name' => $name, + 'value' => $value, + 'value_choice' => $choice_label, + 'value_raw' => sanitize_text_field( $field_submit ), + 'amount' => wpforms_format_amount( $amount ), + 'amount_raw' => $amount, + 'currency' => wpforms_get_currency(), + 'id' => absint( $field_id ), + 'type' => sanitize_key( $this->type ), + ]; + + if ( $this->is_payment_quantities_enabled( $field ) ) { + $field_data['quantity'] = $this->get_submitted_field_quantity( $field, $form_data ); + } + + wpforms()->obj( 'process' )->fields[ $field_id ] = $field_data; + } + + /** + * Form frontend CSS enqueues. + * + * @since 1.8.2 + * + * @param array $forms Forms on the current page. + */ + public function enqueue_frontend_css( $forms ) { + + $has_modern_select = false; + + foreach ( $forms as $form ) { + if ( $this->is_field_style( $form, self::STYLE_MODERN ) ) { + $has_modern_select = true; + + break; + } + } + + if ( $has_modern_select || wpforms()->obj( 'frontend' )->assets_global() ) { + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-choicesjs', + WPFORMS_PLUGIN_URL . "assets/css/choices{$min}.css", + [], + '10.2.0' + ); + } + } + + /** + * Form frontend JS enqueues. + * + * @since 1.8.2 + * + * @param array $forms Forms on the current page. + */ + public function enqueue_frontend_js( $forms ) { + + $has_modern_select = false; + + foreach ( $forms as $form ) { + if ( $this->is_field_style( $form, self::STYLE_MODERN ) ) { + $has_modern_select = true; + + break; + } + } + + if ( $has_modern_select || wpforms()->obj( 'frontend' )->assets_global() ) { + $this->enqueue_choicesjs_once( $forms ); + } + } + + /** + * Whether the provided form has a dropdown field with a specified style. + * + * @since 1.8.2 + * + * @param array $form Form data. + * @param string $style Desired field style. + * + * @return bool + */ + protected function is_field_style( $form, $style ) { + + $is_field_style = false; + + if ( empty( $form['fields'] ) ) { + return false; + } + + foreach ( (array) $form['fields'] as $field ) { + if ( + ! empty( $field['type'] ) && + $field['type'] === $this->type && + ! empty( $field['style'] ) && + sanitize_key( $style ) === $field['style'] + ) { + $is_field_style = true; + + break; + } + } + + return $is_field_style; + } + + /** + * Get field name for an ajax error message. + * + * @since 1.8.2 + * + * @param string|mixed $name Field name for error triggered. + * @param array $field Field settings. + * @param array $props List of properties. + * @param string|string[] $error Error message. + * + * @return string + * @noinspection PhpMissingReturnTypeInspection + * @noinspection ReturnTypeCanBeDeclaredInspection + */ + public function ajax_error_field_name( $name, $field, $props, $error ) { + + $name = (string) $name; + + if ( ! isset( $field['type'] ) || $field['type'] !== $this->type ) { + return $name; + } + + return $props['input_container']['attr']['name'] ?? ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSingle/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSingle/Field.php new file mode 100644 index 0000000..5e307ab --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentSingle/Field.php @@ -0,0 +1,848 @@ +name = esc_html__( 'Single Item', 'wpforms-lite' ); + $this->keywords = esc_html__( 'product, store, ecommerce, pay, payment', 'wpforms-lite' ); + $this->type = 'payment-single'; + $this->icon = 'fa-file-o'; + $this->order = 30; + $this->group = 'payment'; + + $this->hooks(); + } + + /** + * Define additional field hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + // Define additional field properties. + add_filter( "wpforms_field_properties_{$this->type}", [ $this, 'field_properties' ], 5, 3 ); + + add_action( 'wpforms_display_field_after', [ $this, 'field_minimum_price_description' ], 10, 2 ); + add_filter( 'wpforms_field_preview_class', [ $this, 'preview_field_class' ], 10, 2 ); + + // Customize HTML field value. + add_filter( 'wpforms_html_field_value', [ $this, 'field_html_value' ], 10, 4 ); + } + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + // Basic IDs. + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + + // Set options container (', + esc_attr( $placeholder ), + esc_attr( $value ) + ); + + $hidden = $this->is_min_price_passed( $field ) ? 'wpforms-hidden' : ''; + + echo ''; + + echo ''; + + $this->field_preview_option( 'description', $field ); + + $hidden = ! isset( $field['min_price'] ) || empty( (float) wpforms_sanitize_amount( $field['min_price'] ) ) ? 'wpforms-hidden' : ''; + + echo '
              '; + printf( + wp_kses( /* translators: %1$s - Minimum Price value. */ + __( 'Minimum Price: %1$s', 'wpforms-lite' ), + [ + 'span' => [ + 'class' => [], + ], + ] + ), + esc_html( $min_price ) + ); + echo '
              '; + + echo '

              '; + esc_html_e( 'Note: Item type is set to hidden and will not be visible when viewing the form.', 'wpforms-lite' ); + echo '

              '; + + echo ''; + } + + /** + * Field display on the form front-end. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + // Shortcut for easier access. + $primary = $field['properties']['inputs']['primary']; + $field_format = ! empty( $field['format'] ) ? $field['format'] : self::FORMAT_SINGLE; + + // Placeholder attribute is only applicable to password, search, tel, text and url inputs, not hidden. + // aria-errormessage attribute is not allowed for hidden inputs. + if ( ! $this->is_user_defined( $field ) ) { + unset( $primary['attr']['placeholder'], $primary['attr']['aria-errormessage'] ); + } + + switch ( $field_format ) { + case self::FORMAT_SINGLE: + case self::FORMAT_HIDDEN: + if ( $field_format === self::FORMAT_SINGLE ) { + $price = ! empty( $field['price'] ) ? $field['price'] : 0; + $field_label = str_replace( '{price}', '' . esc_html( wpforms_format_amount( wpforms_sanitize_amount( $price ), true ) ) . '', $this->get_single_item_price_label( $field ) ); + + echo '
              '; + echo '
              '; + echo wp_kses( + $field_label, + [ + 'span' => [ + 'class' => [], + ], + ] + ); + echo '
              '; + + $this->display_quantity_dropdown( $field ); + + echo '
              '; + } + + // Primary price field. + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + + case self::FORMAT_USER: + printf( + '', + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $primary['attr'] ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + + default: + break; + } + } + + /** + * Validate field on form submit. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + $is_required = ! empty( $form_data['fields'][ $field_id ]['required'] ); + + // If field is required, check for data. + if ( + empty( $field_submit ) && + $is_required + ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = wpforms_get_required_label(); + + return; + } + + /** + * Whether to validate amount or not of the Payment Single item field. + * + * @since 1.8.4 + * + * @param bool $validate Whether to validate amount or not. Default true. + * @param int $field_id Field ID. + * @param string $field_submit Field data submitted by a user. + * @param array $form_data Form data and settings. + */ + $validate_amount = apply_filters( 'wpforms_forms_fields_payment_single_field_validate_amount', true, $field_id, $field_submit, $form_data ); + + // If field format is not user provided, validate the amount posted. + if ( + ! empty( $field_submit ) && + $validate_amount && + ! $this->is_user_defined( $form_data['fields'][ $field_id ] ) + ) { + + $price = wpforms_sanitize_amount( $form_data['fields'][ $field_id ]['price'] ); + $submit = wpforms_sanitize_amount( $field_submit ); + + if ( $price !== $submit ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Amount mismatch', 'wpforms-lite' ); + } + } + + // If field format is provided by user, additionally compare the amount with a minimum price. + if ( + ! empty( $field_submit ) && + $validate_amount && + $this->is_user_defined( $form_data['fields'][ $field_id ] ) + ) { + $submit = wpforms_sanitize_amount( $field_submit ); + + if ( $submit < 0 ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Amount can\'t be negative' , 'wpforms-lite' ); + } + + if ( empty( $form_data['fields'][ $field_id ]['min_price'] ) && ! $is_required ) { + return; + } + + $min_price = wpforms_sanitize_amount( $form_data['fields'][ $field_id ]['min_price'] ); + + if ( $submit < $min_price ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Amount can\'t be less than the required minimum.' , 'wpforms-lite' ); + } + } + } + + /** + * Format and sanitize field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Field data submitted by a user. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + $field = $form_data['fields'][ $field_id ]; + $name = ! empty( $field['label'] ) ? sanitize_text_field( $field['label'] ) : ''; + + // Only trust the value if the field has the user defined format OR it is the entry preview. + if ( $this->is_user_defined( $field ) || wpforms_is_ajax( 'wpforms_get_entry_preview' ) ) { + $amount = wpforms_sanitize_amount( $field_submit ); + } else { + $amount = wpforms_sanitize_amount( $field['price'] ); + } + + $field_data = [ + 'name' => $name, + 'value' => wpforms_format_amount( $amount, true ), + 'amount' => wpforms_format_amount( $amount ), + 'amount_raw' => $amount, + 'currency' => wpforms_get_currency(), + 'id' => absint( $field_id ), + 'type' => sanitize_key( $this->type ), + ]; + + if ( $this->is_payment_quantities_enabled( $field ) ) { + $field_data['quantity'] = $this->get_submitted_field_quantity( $field, $form_data ); + } + + wpforms()->obj( 'process' )->fields[ $field_id ] = $field_data; + } + + /** + * Display the minimum price description for the field. + * + * @since 1.8.6 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + */ + public function field_minimum_price_description( $field, $form_data ) { + + if ( ! $this->is_user_defined( $field ) || ! isset( $field['min_price'] ) || empty( (float) wpforms_sanitize_amount( $field['min_price'] ) ) ) { + return; + } + + $description = sprintf( /* translators: %1$s - Minimum Price value. */ + __( 'Minimum Price: %1$s', 'wpforms-lite' ), + wpforms_format_amount( wpforms_sanitize_amount( $field['min_price'] ), true ) + ); + + printf( + '
              %s
              ', + esc_html( $description ) + ); + } + + /** + * Add class to the builder field preview. + * + * @since 1.8.6 + * + * @param string $css Class names. + * @param array $field Field properties. + * + * @return string + */ + public function preview_field_class( $css, $field ) { + + $css = parent::preview_field_class( $css, $field ); + + if ( $field['type'] !== $this->type ) { + return $css; + } + + if ( ! $this->is_user_defined( $field ) ) { + return $css; + } + + if ( $this->is_min_price_passed( $field ) ) { + return $css; + } + + $css .= ' min-price-warning'; + + return $css; + } + + /** + * Define if format of field is User Defined. + * + * @since 1.8.6 + * + * @param array $field Field data. + * + * @return bool + */ + private function is_user_defined( $field ) { + + return ! empty( $field['format'] ) && $field['format'] === self::FORMAT_USER; + } + + /** + * Define if format of field is Single Item. + * + * @since 1.8.7 + * + * @param array $field Field data. + * + * @return bool + */ + private function is_single_item( $field ) { + + return empty( $field['format'] ) || $field['format'] === self::FORMAT_SINGLE; + } + + /** + * Define if format of field is Hidden. + * + * @since 1.8.8 + * + * @param array $field Field data. + * + * @return bool + */ + private function is_hidden( $field ) { + + return empty( $field['format'] ) || $field['format'] === self::FORMAT_HIDDEN; + } + + /** + * Define if minimum price is equal or more than default one. + * + * @since 1.8.6 + * + * @param array $field Field data. + * + * @return bool + */ + private function is_min_price_passed( $field ) { + + return isset( $field['min_price'] ) && (float) wpforms_sanitize_amount( $field['min_price'] ) >= (float) self::MIN_PRICE_DEFAULT; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentTotal/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentTotal/Field.php new file mode 100644 index 0000000..eaf6d92 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/PaymentTotal/Field.php @@ -0,0 +1,897 @@ +name = esc_html__( 'Total', 'wpforms-lite' ); + $this->keywords = esc_html__( 'store, ecommerce, pay, payment, sum', 'wpforms-lite' ); + $this->type = 'payment-total'; + $this->icon = 'fa-money'; + $this->order = 110; + $this->group = 'payment'; + $this->allow_read_only = false; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.2 + */ + private function hooks(): void { + + // Define additional field properties. + add_filter( "wpforms_field_properties_{$this->type}", [ $this, 'field_properties' ], 5, 3 ); + + // Recalculate total for a form. + add_filter( 'wpforms_process_filter', [ $this, 'calculate_total' ], 10, 3 ); + + // Add classes to the builder field preview. + add_filter( 'wpforms_field_preview_class', [ $this, 'preview_field_class' ], 10, 2 ); + + // Add a new option on the confirmation page. + add_action( 'wpforms_form_settings_confirmations_single_after', [ $this, 'add_confirmation_setting' ], 10, 2 ); + add_action( 'wpforms_lite_form_settings_confirmations_single_after', [ $this, 'add_confirmation_setting' ], 10, 2 ); + add_action( 'wpforms_frontend_confirmation_message_after', [ $this, 'order_summary_confirmation' ], 10, 4 ); + } + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function field_properties( $properties, $field, $form_data ) { + + // Input Primary: initial total is always zero. + $properties['inputs']['primary']['attr']['value'] = '0'; + + // Input Primary: add class for targeting calculations. + $properties['inputs']['primary']['class'][] = 'wpforms-payment-total'; + + // Input Primary: add a data attribute if total is required. + if ( ! empty( $field['required'] ) ) { + $properties['inputs']['primary']['data']['rule-required-payment'] = true; + } + + // Check size. + if ( ! empty( $field['size'] ) ) { + $properties['container']['class'][] = 'wpforms-field-' . esc_attr( $field['size'] ); + } + + // Input Primary: add class for targeting summary. + if ( $this->is_summary_enabled( $field ) ) { + $properties['container']['class'][] = 'wpforms-summary-enabled'; + } + + // Unset for attribute for label. + unset( $properties['label']['attr']['for'] ); + + return $properties; + } + + /** + * Whether the current field can be populated dynamically. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_dynamic_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Whether the current field can be populated dynamically. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_fallback_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Do not trust the posted total since that relies on JavaScript. + * + * Instead, we re-calculate on the server side. + * + * @since 1.8.2 + * + * @param array $fields List of fields with their data. + * @param array $entry Submitted form data. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function calculate_total( $fields, $entry, $form_data ) { + + return self::calculate_total_static( $fields, $entry, $form_data ); + } + + /** + * Static version of calculate_total(). + * + * @since 1.8.4 + * + * @param array $fields List of fields with their data. + * @param array $entry Submitted form data. + * @param array $form_data Form data and settings. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public static function calculate_total_static( $fields, $entry, $form_data ) { + + if ( ! is_array( $fields ) ) { + return $fields; + } + + // At this point we have passed processing and validation, so we know + // the amounts in $fields are safe to use. + $total = wpforms_get_total_payment( $fields ); + $amount = wpforms_sanitize_amount( $total ); + + foreach ( $fields as $id => $field ) { + if ( ! empty( $field['type'] ) && $field['type'] === 'payment-total' ) { + $fields[ $id ]['value'] = wpforms_format_amount( $amount, true ); + $fields[ $id ]['amount'] = wpforms_format_amount( $amount ); + $fields[ $id ]['amount_raw'] = $amount; + } + } + + return $fields; + } + + /** + * Field options panel inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Enable Summary. + $this->summary_option( $field ); + + // Summary Notice. + $this->summary_option_notice( $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( + 'size', + $field, + [ + 'exclude' => [ 'small' ], // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + [ $items, $foot, $total_width ] = $this->prepare_builder_preview_data(); + + // Summary preview. + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'fields/total/summary-preview', + [ + 'items' => $items, + 'foot' => $foot, + 'total_width' => $total_width, + ], + true + ); + + // Primary field. + echo '
              ' . esc_html( wpforms_format_amount( 0, true ) ) . '
              '; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated, not used parameter. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlWrongAttributeValue + * @noinspection HtmlUnknownAttribute + */ + public function field_display( $field, $deprecated, $form_data ) { + + $primary = $field['properties']['inputs']['primary']; + $type = ! empty( $field['required'] ) ? 'text' : 'hidden'; + $attrs = $primary['attr']; + + if ( ! empty( $field['required'] ) ) { + $attrs['style'] = 'position:absolute!important;clip:rect(0,0,0,0)!important;height:1px!important;width:1px!important;border:0!important;overflow:hidden!important;padding:0!important;margin:0!important;'; + $attrs['readonly'] = 'readonly'; + } + + // aria-errormessage attribute is not allowed for hidden inputs. + unset( $attrs['aria-errormessage'] ); + + $is_summary_enabled = $this->is_summary_enabled( $field ); + + // Prepare data for the order summary preview if summary is enabled, or we are on the editor page. + if ( $is_summary_enabled || wpforms_is_editor_page() ) { + [ $items, $foot, $total_width ] = $this->prepare_payment_fields_data( $form_data ); + } + + if ( $is_summary_enabled ) { + /** + * Allow filtering form data before displaying the order summary table. + * + * @since 1.9.3 + * + * @param array $form_data Form data. + * + * @return array + */ + $form_data = apply_filters( 'wpforms_forms_fields_payment_total_field_display_form_data', $form_data ); + + // Summary preview. + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'fields/total/summary-preview', + [ + 'items' => $items, + 'foot' => $foot, + 'total_width' => $total_width, + ], + true + ); + } + + $amount = wpforms_format_amount( 0, true ); + + // If we are on the editor page, we need to get the total amount from the last item in the foot. + if ( ! empty( $foot ) && wpforms_is_editor_page() ) { + $foot_item = end( $foot ); + $amount = $foot_item['amount'] ?? 0; + } + + // Always print total to cover a case when a field is embedded into a Layout column with 25% width. + $hidden_style = $is_summary_enabled ? 'display:none' : ''; + + // This displays the total the user sees. + printf( + '
              %2$s
              ', + esc_attr( $hidden_style ), + esc_html( $amount ) + ); + + // Hidden input for processing. + printf( + '', + esc_attr( $type ), + wpforms_html_attributes( $primary['id'], $primary['class'], $primary['data'], $attrs ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Validate field on form submitting. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) { + + // Basic required check - If a field is marked as required, check for entry data. + if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && ( empty( $field_submit ) || wpforms_sanitize_amount( $field_submit ) <= 0 ) ) { + wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Payment is required.', 'wpforms-lite' ); + } + } + + /** + * Format and sanitize field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param string $field_submit Field value submitted by a user. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + // Define data. + $name = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + $amount = wpforms_sanitize_amount( $field_submit ); + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $name ), + 'value' => wpforms_format_amount( $amount, true ), + 'amount' => wpforms_format_amount( $amount ), + 'amount_raw' => $amount, + 'id' => absint( $field_id ), + 'type' => sanitize_key( $this->type ), + ]; + } + + /** + * Summary option. + * + * @since 1.8.7 + * + * @param array $field Field data and settings. + */ + private function summary_option( array $field ): void { + + $is_allowed = RequirementsAlerts::is_order_summary_allowed(); + + $toggle_data = [ + 'slug' => 'summary', + 'value' => $this->is_summary_enabled( $field ), + 'desc' => esc_html__( 'Enable Summary', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enable order summary for this field.', 'wpforms-lite' ), + ]; + + if ( ! $is_allowed ) { + $toggle_data['attrs'] = [ 'disabled' => 'disabled' ]; + $toggle_data['control-class'] = 'wpforms-toggle-control-disabled'; + } + + $output = $this->field_element( + 'toggle', + $field, + $toggle_data, + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'summary', + 'content' => $output, + ] + ); + + if ( ! $is_allowed ) { + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'summary_alert', + 'content' => RequirementsAlerts::get_order_summary_alert(), + ] + ); + } + } + + /** + * Summary notice on the options' tab. + * + * @since 1.8.7 + * + * @param array $field Field data and settings. + */ + private function summary_option_notice( array $field ): void { + + $notice = __( 'Example data is shown in the form editor. Actual products and totals will be displayed when you preview or embed your form.', 'wpforms-lite' ); + $is_notice_hidden = ! $this->is_summary_enabled( $field ) ? 'wpforms-hidden' : ''; + + printf( + '
              +

              %2$s

              +
              ', + esc_attr( $is_notice_hidden ), + esc_html( $notice ) + ); + } + + /** + * Determine if a summary option is enabled. + * + * @since 1.8.7 + * + * @param array $field Field data and settings. + */ + private function is_summary_enabled( array $field ) { + + return ! empty( $field['summary'] ); + } + + /** + * Prepare fake fields data for builder preview. + * + * @since 1.8.7 + * + * @return array + */ + private function prepare_builder_preview_data(): array { + + $items = [ + [ + 'label' => __( 'Example Product 1', 'wpforms-lite' ), + 'quantity' => 3, + 'amount' => wpforms_format_amount( 30, true ), + 'is_hidden' => false, + ], + [ + 'label' => __( 'Example Product 2', 'wpforms-lite' ), + 'quantity' => 2, + 'amount' => wpforms_format_amount( 20, true ), + 'is_hidden' => false, + ], + [ + 'label' => __( 'Example Product 3', 'wpforms-lite' ), + 'quantity' => 1, + 'amount' => wpforms_format_amount( 10, true ), + 'is_hidden' => false, + ], + ]; + + $total = 60; + + /** + * Allow filtering items in the footer on the order summary table (builder screen). + * + * @since 1.8.7 + * + * @param array $fields Order summary footer. + * @param int $total Fields total. + */ + $foot = (array) apply_filters( 'wpforms_forms_fields_payment_total_field_builder_order_summary_preview_foot', [], $total ); + + /** + * Allow filtering builder order summary fields total. + * + * @since 1.8.7 + * + * @param string $total Fields total. + */ + $total = apply_filters( 'wpforms_forms_fields_payment_total_field_builder_order_summary_preview_total', $total ); + + $total = wpforms_format_amount( $total, true ); + + $foot[] = [ + 'label' => __( 'Total', 'wpforms-lite' ), + 'quantity' => '', + 'amount' => $total, + 'class' => 'wpforms-order-summary-preview-total', + ]; + + $total_width = strlen( html_entity_decode( $total, ENT_COMPAT, 'UTF-8' ) ) + 4; + + /** + * Allow filtering builder order summary total column width. + * + * @since 1.8.7 + * + * @param int $total_width Total column width. + */ + $total_width = (int) apply_filters( 'wpforms_forms_fields_payment_total_field_builder_order_summary_preview_total_width', $total_width ); + + return [ $items, $foot, $total_width ]; + } + + /** + * Prepare payment fields data for summary preview. + * + * @since 1.8.7 + * + * @param array $form_data Form data. + * + * @return array + */ + private function prepare_payment_fields_data( array $form_data ): array { + + $payment_fields = wpforms_payment_fields(); + $fields = []; + $foot = []; + $total = 0; + + foreach ( $form_data['fields'] as $field ) { + + if ( + ( ! isset( $field['price'] ) && empty( $field['choices'] ) ) || + ! in_array( $field['type'], $payment_fields, true ) + ) { + continue; + } + + $this->prepare_payment_field_choices( $field, $fields, $total ); + $this->prepare_payment_field_single( $field, $fields, $total ); + } + + /** + * Allow filtering items in the order summary footer. + * + * @since 1.8.7 + * + * @param array $fields Fields. + */ + $foot = (array) apply_filters( 'wpforms_forms_fields_payment_total_field_order_summary_preview_foot', $foot ); + + $total = wpforms_format_amount( $total, true ); + + $foot[] = [ + 'label' => __( 'Total', 'wpforms-lite' ), + 'quantity' => '', + 'amount' => $total, + 'class' => 'wpforms-order-summary-preview-total', + ]; + + return [ $fields, $foot, strlen( html_entity_decode( $total, ENT_COMPAT, 'UTF-8' ) ) + 3 ]; + } + + /** + * Prepare payment single data for summary preview. + * + * @since 1.8.7 + * + * @param array $field Field data. + * @param array $fields Fields data. + * @param float $total Fields total. + */ + private function prepare_payment_field_single( array $field, array &$fields, float &$total ): void { + + if ( ! empty( $field['choices'] ) ) { + return; + } + + $quantity = $this->get_payment_field_min_quantity( $field ); + $field_amount = $this->get_payment_field_single_amount( $field, $quantity ); + $classes = [ 'wpforms-order-summary-field' ]; + $format = $field['format'] ?? ''; + $is_conditionally_hidden = $this->is_conditionally_hidden( $field ); + + if ( $format === 'hidden' ) { + $classes[] = 'wpforms-hidden'; + } + + $fields[] = [ + 'label' => ! empty( $field['label_hide'] ) ? '' : $field['label'], + 'quantity' => $quantity, + 'amount' => wpforms_format_amount( $field_amount, true ), + 'is_hidden' => ! $quantity || $is_conditionally_hidden, + 'class' => $classes, + 'data' => [ + 'field' => $field['id'], + ], + ]; + + if ( ! $is_conditionally_hidden ) { + $total += $field_amount; + } + } + + /** + * Prepare payment field choices data for summary preview. + * + * @since 1.8.7 + * + * @param array $field Field data. + * @param array $fields Fields data. + * @param float $total Fields total. + */ + private function prepare_payment_field_choices( array $field, array &$fields, float &$total ): void { + + if ( empty( $field['choices'] ) ) { + return; + } + + $quantity = $this->get_payment_field_min_quantity( $field ); + $default_choice_key = $this->get_classic_dropdown_default_choice_key( $field ); + $is_conditionally_hidden = $this->is_conditionally_hidden( $field ); + + foreach ( $field['choices'] as $key => $choice ) { + + $choice_amount = ! empty( $choice['value'] ) ? wpforms_sanitize_amount( $choice['value'] ) * $quantity : 0; + $is_default = ! empty( $choice['default'] ) || ( isset( $default_choice_key ) && (int) $key === $default_choice_key ); + /* translators: %s - item number. */ + $choice_label = ! empty( $choice['label'] ) ? $choice['label'] : sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $key ); + + $fields[] = [ + 'label' => ! empty( $field['label_hide'] ) ? $choice_label : $field['label'] . ' - ' . $choice_label, + 'quantity' => $quantity, + 'amount' => wpforms_format_amount( $choice_amount, true ), + 'is_hidden' => ! $is_default || ! $quantity || $is_conditionally_hidden, + 'class' => 'wpforms-order-summary-field', + 'data' => [ + 'field' => $field['id'], + 'choice' => $key, + ], + ]; + + if ( $is_default && ! $is_conditionally_hidden ) { + $total += $choice_amount; + } + } + } + + /** + * The `array_key_first` polyfill. + * + * @since 1.9.3 + * + * @param array|mixed $arr Input array. + * + * @return int|string|null + */ + private function array_key_first( $arr ) { + + $array = (array) $arr; + + return empty( $array ) ? null : array_keys( $array )[0]; + } + + /** + * Get the classic dropdown default choice key. + * + * @since 1.8.7 + * + * @param array $field Field Settings. + * + * @return int|null + */ + private function get_classic_dropdown_default_choice_key( array $field ) { + + if ( $field['type'] !== 'payment-select' || $field['style'] !== 'classic' || ! empty( $field['placeholder'] ) ) { + return null; + } + + foreach ( $field['choices'] as $key => $choice ) { + if ( ! isset( $choice['default'] ) ) { + continue; + } + + return (int) $key; + } + + return $this->array_key_first( $field['choices'] ); + } + + /** + * Get payment field minimum quantity. + * + * @since 1.8.7 + * + * @param array $field Field data. + * + * @return int + */ + private function get_payment_field_min_quantity( array $field ): int { + + if ( ! wpforms_payment_has_quantity( $field, $this->form_data ) || ! isset( $field['min_quantity'] ) ) { + return 1; + } + + // Ensure non-negative quantity. + return max( 0, (int) $field['min_quantity'] ); + } + + /** + * Add a class to the builder field preview. + * + * @since 1.8.7 + * + * @param string $css Class names. + * @param array $field Field properties. + * + * @return string + */ + public function preview_field_class( $css, $field ) { + + if ( $field['type'] !== $this->type ) { + return $css; + } + + if ( $this->is_summary_enabled( $field ) ) { + $css .= ' wpforms-summary-enabled'; + } + + return $css; + } + + /** + * Add an order summary to the confirmation settings. + * + * @since 1.8.7 + * + * @param WPForms_Builder_Panel_Settings $settings Settings. + * @param int $field_id Field ID. + */ + public function add_confirmation_setting( $settings, int $field_id ): void { + + wpforms_panel_field( + 'toggle', + 'confirmations', + 'message_order_summary', + $settings->form_data, + esc_html__( 'Show order summary after confirmation message', 'wpforms-lite' ), + [ + 'input_id' => 'wpforms-panel-field-confirmations-message_order_summary-' . $field_id, + 'input_class' => 'wpforms-panel-field-confirmations-message_order_summary', + 'parent' => 'settings', + 'subsection' => $field_id, + ] + ); + } + + /** + * Show the order summary on the confirmation page. + * + * @since 1.8.7 + * + * @param array $confirmation Current confirmation data. + * @param array $form_data Form data and settings. + * @param array $fields Sanitized field data. + * @param int $entry_id Entry id. + */ + public function order_summary_confirmation( array $confirmation, array $form_data, array $fields, int $entry_id ): void { + + if ( empty( $confirmation['message_order_summary'] ) ) { + return; + } + + $total_exists = false; + + foreach ( $fields as $field ) { + if ( $field['type'] !== $this->type ) { + continue; + } + + $total_exists = true; + + break; + } + + // Check if the total field exists on the form. + if ( ! $total_exists ) { + return; + } + + echo '
              '; + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_process_smart_tags( '{order_summary}', $form_data, $fields, $entry_id, 'payment-total-order-summary-confirmation' ); + echo '
              '; + } + + /** + * Calculates the total amount for a single payment field based on its price and quantity. + * + * @since 1.9.5 + * + * @param array $field The payment field data containing the price. + * @param int $quantity The quantity of the field specified. + * + * @return float|int The calculated total amount for the payment field. + */ + private function get_payment_field_single_amount( array $field, int $quantity ) { + + if ( empty( $field['price'] ) ) { + return 0; + } + + return wpforms_sanitize_amount( $field['price'] ) * $quantity; + } + + /** + * Determines if a field is conditionally hidden based on its settings and conditions. + * + * Note: This is a simplified implementation that assumes fields with 'show' conditional + * logic are hidden by default, without evaluating the actual conditions. This approach + * was chosen to avoid complex condition evaluation during form rendering. + * + * @since 1.9.5 + * + * @param array $field Field data, including conditional logic settings. + * + * @return bool True if the field is conditionally hidden, false otherwise. + */ + private function is_conditionally_hidden( array $field ): bool { + + return wpforms()->is_pro() && + wpforms_conditional_logic_fields()->field_is_conditional( $field ) && + ( $field['conditional_type'] ?? '' ) === 'show'; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Phone/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Phone/Field.php new file mode 100644 index 0000000..190826b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Phone/Field.php @@ -0,0 +1,235 @@ +name = esc_html__( 'Phone', 'wpforms-lite' ); + $this->keywords = esc_html__( 'telephone, mobile, cell', 'wpforms-lite' ); + $this->type = 'phone'; + $this->icon = 'fa-phone'; + $this->order = 50; + $this->group = 'fancy'; + + $this->default_settings = [ + 'format' => 'smart', + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + + /** + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Format. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'format', + 'value' => esc_html__( 'Format', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select format for the phone form field', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'format', + 'value' => ! empty( $field['format'] ) ? esc_attr( $field['format'] ) : 'smart', + 'options' => [ + 'smart' => esc_html__( 'Smart', 'wpforms-lite' ), + 'us' => esc_html__( 'US', 'wpforms-lite' ), + 'international' => esc_html__( 'International', 'wpforms-lite' ), + ], + ], + false + ); + + $args = [ + 'slug' => 'format', + 'content' => $lbl . $fld, + ]; + + $this->field_element( 'row', $field, $args ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Define data. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + $format = ! empty( $field['format'] ) ? $field['format'] : 'smart'; + $size = ! empty( $field['size'] ) ? $field['size'] : 'medium'; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Primary input inside container for Smart format preview. + printf( + '
              + +
              +
              +
              +
              +
              ', + esc_attr( $format ), + esc_attr( $placeholder ), + esc_attr( $default_value ), + esc_attr( $size ) + ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Get a preview option. + * + * @since 1.9.4 + * + * @param string $option Option name. + * @param array $field Field data. + * @param array $args Additional arguments. + * @param bool $do_echo Echo or return. + */ + public function field_preview_option( $option, $field, $args = [], $do_echo = true ) { // phpcs:ignore Universal.NamingConventions.NoReservedKeywordParameterNames.echoFound + + // Skip preview option for the editor. + if ( wpforms_is_editor_page() ) { + return; + } + + parent::field_preview_option( $option, $field, $args, $do_echo ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Rating/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Rating/Field.php new file mode 100644 index 0000000..a72e4e3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Rating/Field.php @@ -0,0 +1,608 @@ + '#e27730', + 'modern' => '#066aab', + ]; + + /** + * Primary class constructor. + * + * @since 1.9.4 + */ + public function init() { + + // Define field type information. + $this->name = esc_html__( 'Rating', 'wpforms-lite' ); + $this->keywords = esc_html__( 'review, emoji, star', 'wpforms-lite' ); + $this->type = 'rating'; + $this->icon = 'fa-star'; + $this->order = 310; + $this->group = 'fancy'; + + $this->default_settings = [ + 'icon_color' => $this->get_default_icon_color(), + ]; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks(): void { + + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_enqueues' ] ); + } + + /** + * Builder enqueues. + * + * @since 1.9.8 + */ + public function builder_enqueues(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-rating-field', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/fields/rating{$min}.js", + [ 'wpforms-builder', 'wpforms-utils' ], + WPFORMS_VERSION, + false + ); + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * + * @noinspection PackedHashtableOptimizationInspection + */ + public function field_options( $field ) { + + /** + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Scale. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'scale', + 'value' => esc_html__( 'Scale', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select rating scale', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'scale', + 'value' => ! empty( $field['scale'] ) ? esc_attr( $field['scale'] ) : '5', + 'options' => [ + '2' => '2', + '3' => '3', + '4' => '4', + '5' => '5', + '6' => '6', + '7' => '7', + '8' => '8', + '9' => '9', + '10' => '10', + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'scale', + 'content' => $lbl . $fld, + ] + ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'close', + ] + ); + + /* + * Advanced field options. + */ + + // Options open markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'open', + ] + ); + + // Icon. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'icon', + 'value' => esc_html__( 'Icon', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select icon to display', 'wpforms-lite' ), + ], + false + ); + + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'icon', + 'value' => ! empty( $field['icon'] ) ? esc_attr( $field['icon'] ) : 'star', + 'options' => [ + 'star' => esc_html__( 'Star', 'wpforms-lite' ), + 'heart' => esc_html__( 'Heart', 'wpforms-lite' ), + 'thumb' => esc_html__( 'Thumb', 'wpforms-lite' ), + 'smiley' => esc_html__( 'Smiley Face', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'icon', + 'content' => $lbl . $fld, + ] + ); + + // Icon size. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'icon_size', + 'value' => esc_html__( 'Icon Size', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the size of the rating icon', 'wpforms-lite' ), + ], + false + ); + $fld = $this->field_element( + 'select', + $field, + [ + 'slug' => 'icon_size', + 'value' => ! empty( $field['icon_size'] ) ? esc_attr( $field['icon_size'] ) : 'medium', + 'options' => [ + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'icon_size', + 'content' => $lbl . $fld, + ] + ); + + $this->score_labels( $field ); + + // Icon color picker. + $lbl = $this->field_element( + 'label', + $field, + [ + 'slug' => 'icon_color', + 'value' => esc_html__( 'Icon Color', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the color for the rating icon', 'wpforms-lite' ), + ], + false + ); + + $icon_color = isset( $field['icon_color'] ) ? wpforms_sanitize_hex_color( $field['icon_color'] ) : ''; + $icon_color = empty( $icon_color ) ? $this->get_default_icon_color() : $icon_color; + + $fld = $this->field_element( + 'color', + $field, + [ + 'slug' => 'icon_color', + 'value' => $icon_color, + 'data' => [ + 'fallback-color' => $icon_color, + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'icon_color', + 'content' => $lbl . $fld, + 'class' => 'color-picker-row', + ] + ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $this->field_option( + 'advanced-options', + $field, + [ + 'markup' => 'close', + ] + ); + } + + /** + * Score labels. + * + * @since 1.9.8 + * + * @param array $field Field settings. + */ + private function score_labels( array $field ): void { + + // Lowest score label. + $lowest_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'lowest_label', + 'value' => esc_html__( 'Lowest Score Label', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'This label indicates the lowest score on the scale.', 'wpforms-lite' ), + ], + false + ); + + $lowest_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'lowest_label', + 'value' => $field['lowest_label'] ?? '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'lowest_label', + 'content' => $lowest_label . $lowest_field, + ] + ); + + // Highest score label. + $highest_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'highest_label', + 'value' => esc_html__( 'Highest Score Label', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'This label indicates the highest score on the scale.', 'wpforms-lite' ), + ], + false + ); + + $highest_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'highest_label', + 'value' => $field['highest_label'] ?? '', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'highest_label', + 'content' => $highest_label . $highest_field, + ] + ); + + // Label position. + $label_position = $this->field_element( + 'label', + $field, + [ + 'slug' => 'label_position', + 'value' => esc_html__( 'Label Position', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the position of the label', 'wpforms-lite' ), + ], + false + ); + + $select_position = $this->field_element( + 'select', + $field, + [ + 'slug' => 'label_position', + 'value' => ! empty( $field['label_position'] ) ? esc_attr( $field['label_position'] ) : 'below', + 'options' => [ + 'above' => esc_html__( 'Above', 'wpforms-lite' ), + 'below' => esc_html__( 'Below', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'label_position', + 'content' => $label_position . $select_position, + ] + ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field settings. + */ + public function field_preview( $field ): void { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + echo '
              '; + + $this->get_field_preview_icons( $field ); + + $this->get_field_preview_labels( $field ); + + echo '
              '; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Get field preview icons. + * + * @since 1.9.8 + * + * @param array $field Field settings. + */ + private function get_field_preview_icons( array $field ): void { + + // Define data. + $scale = ! empty( $field['scale'] ) ? esc_attr( $field['scale'] ) : 5; + $icon = ! empty( $field['icon'] ) ? esc_attr( $field['icon'] ) : 'star'; + $icon_size = ! empty( $field['icon_size'] ) ? esc_attr( $field['icon_size'] ) : 'medium'; + $icon_color = ! empty( $field['icon_color'] ) ? esc_attr( $field['icon_color'] ) : $this->get_default_icon_color(); + $icon_class = $this->get_preview_icon_class( $icon ); + + // Set icon size. + $icon_size_css = $this->get_icon_size_css( $icon_size ); + + echo '
              '; + + // Primary input. + for ( $i = 1; $i <= 10; $i++ ) { + printf( + '', + esc_attr( $icon_class ), + esc_attr( $icon_size ), + esc_attr( $icon_color ), + $i <= $scale ? 'inline-block' : 'none', + esc_attr( $icon_size_css ) + ); + } + + echo '
              '; + } + + /** + * Get preview icon class based on the selected icon. + * + * @since 1.9.8 + * + * @param string $icon Selected icon. + * + * @return string Icon class. + */ + private function get_preview_icon_class( string $icon ): string { + + $icon_class = ''; + + // Set icon class. + switch ( $icon ) { + case 'star': + $icon_class = 'fa-star'; + break; + + case 'heart': + $icon_class = 'fa-heart'; + break; + + case 'thumb': + $icon_class = 'fa-thumbs-up'; + break; + + case 'smiley': + $icon_class = 'fa-smile-o'; + break; + } + + return $icon_class; + } + + /** + * Get field preview labels. + * + * @since 1.9.8 + * + * @param array $field Field settings. + */ + private function get_field_preview_labels( array $field ): void { + + // Lowest score label. + $lowest_label = ! empty( $field['lowest_label'] ) ? esc_html( $field['lowest_label'] ) : ''; + + // Highest score label. + $highest_label = ! empty( $field['highest_label'] ) ? esc_html( $field['highest_label'] ) : ''; + + $class = [ 'wpforms-rating-field-labels' ]; + + if ( ! empty( $field['label_position'] ) && $field['label_position'] === 'above' ) { + $class[] = 'wpforms-rating-field-labels-position-above'; + } + + if ( empty( $lowest_label ) && empty( $highest_label ) ) { + $class[] = 'wpforms-hidden'; + } + + echo '
              '; + + printf( + '%s', + esc_html( $lowest_label ) + ); + + printf( + '%s', + esc_html( $highest_label ) + ); + + echo '
              '; + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field settings. + * @param array $deprecated Deprecated, don't use. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } + + /** + * Get icon size CSS value in pixels. + * + * @since 1.9.4 + * + * @param string $icon_size Icon size value. + */ + protected function get_icon_size_css( $icon_size ): string { + + $render_engine = wpforms_get_render_engine(); + + $icon_sizes = [ + 'classic' => [ + 'small' => '18', + 'medium' => '28', + 'large' => '38', + ], + 'modern' => [ + 'small' => '16', + 'medium' => '24', + 'large' => '38', + ], + ]; + + $default = $render_engine === 'modern' ? '24' : '28'; + + return ! empty( $icon_sizes[ $render_engine ][ $icon_size ] ) + ? $icon_sizes[ $render_engine ][ $icon_size ] + : $default; + } + + /** + * Get default icon color. + * + * @since 1.9.4 + * + * @return string + */ + public function get_default_icon_color(): string { + + $render_engine = wpforms_get_render_engine(); + + return array_key_exists( $render_engine, self::DEFAULT_ICON_COLOR ) ? self::DEFAULT_ICON_COLOR[ $render_engine ] : self::DEFAULT_ICON_COLOR['modern']; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Richtext/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Richtext/Field.php new file mode 100644 index 0000000..6dbbd48 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Richtext/Field.php @@ -0,0 +1,204 @@ +name = esc_html__( 'Rich Text', 'wpforms-lite' ); + $this->keywords = esc_html__( 'image, text, table, list, heading, wysiwyg, visual', 'wpforms-lite' ); + $this->type = 'richtext'; + $this->icon = 'fa-pencil-square-o'; + $this->order = 170; + $this->group = 'fancy'; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + public function field_options( $field ) { + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + $this->field_option( 'label', $field ); + $this->field_option( 'description', $field ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'media_enabled', + 'content' => $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'media_enabled', + 'value' => isset( $field['media_enabled'] ) ? '1' : '0', + 'desc' => esc_html__( 'Allow Media Uploads', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to allow uploading and embedding files.', 'wpforms-lite' ), + ], + false + ), + ] + ); + + $media_library = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'media_library', + 'value' => isset( $field['media_library'] ) ? '1' : '0', + 'desc' => esc_html__( 'Store files in WordPress Media Library', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to store files in the WordPress Media Library.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'media_controls', + 'class' => ! isset( $field['media_enabled'] ) ? 'wpforms-hide' : '', + 'content' => $media_library, + ] + ); + + $this->field_option( 'required', $field ); + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + $output_style = $this->field_element( + 'label', + $field, + [ + 'slug' => 'style', + 'value' => esc_html__( 'Field Style', 'wpforms-lite' ), + ], + false + ); + + $output_style .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'style', + 'value' => ! empty( $field['style'] ) ? esc_attr( $field['style'] ) : 'full', + 'options' => [ + 'full' => esc_html__( 'Full', 'wpforms-lite' ), + 'basic' => esc_html__( 'Basic', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'style', + 'content' => $output_style, + ] + ); + + $this->field_option( 'size', $field ); + $this->field_option( 'css', $field ); + $this->field_option( 'label_hide', $field ); + $this->field_option( 'advanced-options', $field, [ 'markup' => 'close' ] ); + } + + /** + * The field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + $style = ! empty( $field['style'] ) && $field['style'] === 'basic' ? 'wpforms-field-richtext-toolbar-basic' : ''; + $media_enabled = ! empty( $field['media_enabled'] ) ? 'wpforms-field-richtext-media-enabled' : ''; + ?> + +
              +
              + + +
              +
              +
              +
              +
              + +
              + +
              +
              +
              + + field_preview_option( 'description', $field ); + } + + /** + * The field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Field attributes. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/AccessRestrictionsTrait.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/AccessRestrictionsTrait.php new file mode 100644 index 0000000..ccaa3f8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/AccessRestrictionsTrait.php @@ -0,0 +1,613 @@ +field_element( + 'toggle', + $field, + [ + 'slug' => 'is_restricted', + 'value' => ! empty( $field['is_restricted'] ) ? 1 : '', + 'desc' => esc_html__( 'Enable File Access Restrictions', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Choose who can access the uploaded files.', 'wpforms-lite' ), + 'class' => $this->get_access_restrictions_toggle_class(), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'access_restrictions', + 'attrs' => $this->get_access_restrictions_options_attrs(), + 'content' => $access_restrictions, + ] + ); + + // User Restriction. + $this->user_restriction_options( $field ); + + // Password Protection. + $this->password_protection_options( $field ); + } + + /** + * Get access restrictions toggle class. + * + * @since 1.9.8 + * + * @return string + */ + protected function get_access_restrictions_toggle_class(): string { + + return 'wpforms-file-upload-access-restrictions'; + } + + /** + * Get access restrictions options attributes. + * + * @since 1.9.8 + * + * @return array + */ + protected function get_access_restrictions_options_attrs(): array { + + return []; + } + + /** + * Add user restrictions options to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function user_restriction_options( array $field ) { + + $user_restrictions_value = $this->get_user_restrictions_value( $field ); + + $this->add_user_restrictions_select( $field, $user_restrictions_value ); + + $hide_user_restrictions = $this->should_hide_user_restrictions( $user_restrictions_value, $field ); + + $this->add_user_roles_restrictions( $field, $hide_user_restrictions ); + $this->add_user_names_restrictions( $field, $hide_user_restrictions ); + } + + /** + * Get user restrictions value. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * + * @return string + */ + private function get_user_restrictions_value( array $field ): string { + + return ! empty( $field['user_restrictions'] ) ? $field['user_restrictions'] : 'none'; + } + + /** + * Add user restrictions select to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * @param string $user_restrictions_value User restrictions value. + */ + private function add_user_restrictions_select( array $field, string $user_restrictions_value ) { + + $label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'user_restrictions', + 'value' => esc_html__( 'User Restriction', 'wpforms-lite' ), + ], + false + ); + + $select = $this->field_element( + 'select', + $field, + [ + 'slug' => 'user_restrictions', + 'value' => $user_restrictions_value, + 'options' => [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'logged' => esc_html__( 'Logged-in Users', 'wpforms-lite' ), + ], + 'class' => 'wpforms-file-upload-user-restrictions', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'user_restrictions', + 'content' => $label . $select, + 'class' => $this->is_restricted( $field ) ? '' : 'wpforms-hidden', + ] + ); + } + + /** + * Check if user restrictions should be hidden. + * + * @since 1.9.8 + * + * @param string $user_restrictions_value User restrictions value. + * @param array $field Field data and settings. + * + * @return bool + */ + private function should_hide_user_restrictions( string $user_restrictions_value, array $field ): bool { + + return $user_restrictions_value === 'none' || ! $this->is_restricted( $field ); + } + + /** + * Add user roles restrictions to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * @param bool $hide_user_restrictions Should user restrictions be hidden. + */ + private function add_user_roles_restrictions( array $field, bool $hide_user_restrictions ) { + + $label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'user_roles_restrictions', + 'value' => esc_html__( 'User Roles', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the user roles that can access the uploaded files.', 'wpforms-lite' ), + ], + false + ); + + $select = $this->field_element( + 'select-multiple', + $field, + [ + 'slug' => 'user_roles_restrictions', + 'value' => $this->get_selected_roles( $field ), + 'desc' => esc_html__( 'All users with selected roles will be able to access the uploaded files.', 'wpforms-lite' ), + 'options' => $this->get_user_roles(), + 'choicesjs' => false, + 'class' => 'wpforms-file-upload-user-roles-select', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'user_roles_restrictions', + 'content' => $label . $select, + 'class' => $hide_user_restrictions ? 'wpforms-hidden' : '', + ] + ); + } + + /** + * Get selected roles. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * + * @return array + */ + private function get_selected_roles( array $field ): array { + + $selected_roles = ! empty( $field['user_roles_restrictions'] ) ? json_decode( $field['user_roles_restrictions'], true ) : []; + + array_unshift( $selected_roles, 'administrator' ); + + return array_unique( $selected_roles ); + } + + /** + * Get user roles. + * + * @since 1.9.8 + * + * @return array + */ + private function get_user_roles(): array { + + if ( empty( $this->user_roles ) ) { + $roles = get_editable_roles(); + + $this->user_roles = array_map( + static function ( $item ) { + + return $item['name']; + }, + $roles + ); + } + + return $this->user_roles; + } + + /** + * Add user names restrictions to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * @param bool $hide_user_restrictions Should user restrictions be hidden. + */ + private function add_user_names_restrictions( array $field, bool $hide_user_restrictions ) { + + $label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'user_names_restrictions', + 'value' => esc_html__( 'Users', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the users that can access the uploaded files.', 'wpforms-lite' ), + ], + false + ); + + $select = $this->field_element( + 'select-multiple', + $field, + [ + 'slug' => 'user_names_restrictions', + 'value' => array_map( 'intval', $this->get_user_ids( $field ) ), + 'options' => $this->get_user_list( $field ), + 'choicesjs' => false, + 'class' => 'wpforms-file-upload-user-names-select', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'user_names_restrictions', + 'content' => $label . $select, + 'class' => $hide_user_restrictions ? 'wpforms-hidden' : '', + ] + ); + } + + /** + * Get user ids. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * + * @return array + */ + private function get_user_ids( array $field ): array { + + return ! empty( $field['user_names_restrictions'] ) ? json_decode( $field['user_names_restrictions'], true ) : []; + } + + /** + * Get user list. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * + * @return array + */ + private function get_user_list( array $field ): array { + + $user_ids = $this->get_user_ids( $field ); + + return $this->get_selected_users( $user_ids ); + } + + /** + * Get selected users. + * + * @since 1.9.8 + * + * @param array $user_ids User IDs. + * + * @return array + */ + private function get_selected_users( array $user_ids ): array { + + $selected_users = []; + + if ( ! empty( $user_ids ) ) { + $users = get_users( + [ + 'include' => $user_ids, + 'fields' => [ 'ID', 'display_name' ], + 'orderby' => 'include', + ] + ); + + $selected_users = wp_list_pluck( $users, 'display_name', 'ID' ); + } + + return $selected_users; + } + + /** + * Add password protection options to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function password_protection_options( array $field ) { + + $this->add_password_toggle( $field ); + $this->add_password_label( $field ); + $this->add_password_fields( $field ); + } + + /** + * Add password toggle to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_password_toggle( array $field ) { + + $password = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'is_protected', + 'value' => ! empty( $field['is_protected'] ) ? 1 : '', + 'desc' => esc_html__( 'Password Protection', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to password protect the uploaded files.', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-password-restrictions', + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'password_restrictions', + 'content' => $password, + 'class' => $this->is_restricted( $field ) ? '' : 'wpforms-hidden', + ] + ); + } + + /** + * Add password label to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_password_label( array $field ) { + + $password_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'protection_password_label', + 'value' => esc_html__( 'Password', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Set a password to protect the uploaded files.', 'wpforms-lite' ), + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'protection_password_label', + 'content' => $password_label, + 'class' => $this->is_protected( $field ) ? '' : 'wpforms-hidden', + ] + ); + } + + /** + * Add password fields to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_password_fields( array $field ) { + + $password_field_row = $this->get_password_field( $field ); + $password_confirm_field_row = $this->get_password_confirm_field( $field ); + + $password_columns = $this->field_element( + 'row', + $field, + [ + 'content' => $password_field_row . $password_confirm_field_row, + 'class' => [ + 'wpforms-field-options-columns', + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'protection_password_columns', + 'content' => $password_columns, + 'class' => $this->is_protected( $field ) ? '' : 'wpforms-hidden', + ] + ); + } + + /** + * Add password field to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function get_password_field( array $field ): string { + + $clean_button = $this->field_element( + 'button', + $field, + [ + 'slug' => 'password_restrictions_clean_button', + 'value' => '', + 'class' => [ + 'wpforms-file-upload-password-clean', + 'wpforms-hidden', + ], + 'data' => [ + 'field-id' => $field['id'], + ], + 'attrs' => [ + 'tabindex' => '-1', + ], + ], + false + ); + + $password_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'protection_password', + 'value' => ! empty( $field['protection_password'] ) ? $field['protection_password'] : '', + 'after' => esc_html__( 'Enter Password', 'wpforms-lite' ), + 'type' => 'password', + 'class' => 'wpforms-file-upload-password', + 'attrs' => [ + 'autocomplete' => 'new-password', + ], + ], + false + ); + + return $this->field_element( + 'row', + $field, + [ + 'slug' => 'protection_password', + 'content' => $password_field . $clean_button, + ], + false + ); + } + + /** + * Add password confirm field to the field. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function get_password_confirm_field( array $field ): string { + + $password_confirm_field = $this->field_element( + 'text', + $field, + [ + 'slug' => 'protection_password_confirm', + 'value' => ! empty( $field['protection_password_confirm'] ) ? $field['protection_password_confirm'] : '', + 'after' => esc_html__( 'Confirm Password', 'wpforms-lite' ), + 'type' => 'password', + 'class' => 'wpforms-file-upload-password-confirm', + ], + false + ); + + $password_confirm_field_error = $this->field_element( + 'row', + $field, + [ + 'slug' => 'protection_password_confirm_error', + 'content' => esc_html__( 'Passwords do not match', 'wpforms-lite' ), + 'class' => [ + 'wpforms-hidden', + 'wpforms-error', + 'wpforms-error-message', + ], + ], + false + ); + + return $this->field_element( + 'row', + $field, + [ + 'slug' => 'protection_password_confirm', + 'content' => $password_confirm_field . $password_confirm_field_error, + ], + false + ); + } + + /** + * Check if the field has access restrictions enabled. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * + * @return bool True if the field has access restrictions enabled, false otherwise. + */ + private function is_restricted( array $field ): bool { + + return ! empty( $field['is_restricted'] ); + } + + /** + * Check if the field has password protection enabled. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + * + * @return bool True if the field has password protection enabled, false otherwise. + */ + private function is_protected( array $field ): bool { + + return ! empty( $field['is_protected'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/CameraTrait.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/CameraTrait.php new file mode 100644 index 0000000..f4ec106 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/CameraTrait.php @@ -0,0 +1,384 @@ +add_camera_enabled_toggle( $field ); + $this->add_camera_format_options( $field ); + $this->add_camera_aspect_ratio_options( $field ); + $this->add_camera_custom_ratio_options( $field ); + $this->add_camera_time_limit_options( $field ); + } + + /** + * Add camera-enabled toggle. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_camera_enabled_toggle( array $field ): void { + + // Check if this is a Camera field (not FileUpload with camera options). + $is_camera_field = $this->type === 'camera'; + + $camera_enabled = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'camera_enabled', + 'value' => $this->is_camera_enabled_for_field( $field ) ? 1 : '', + 'desc' => esc_html__( 'Enable Camera', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Check this option to enable the camera field.', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-enabled-toggle', + ], + false + ); + + // Hide the toggle for the Camera field, show for FileUpload field. + $row_class = [ 'wpforms-file-upload-camera-enabled-row' ]; + + if ( $is_camera_field ) { + $row_class[] = 'wpforms-hidden'; + } + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'camera', + 'content' => $camera_enabled, + 'class' => $row_class, + ] + ); + } + + /** + * Add camera format options. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_camera_format_options( array $field ): void { + + $format_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'camera_format', + 'value' => esc_html__( 'Format', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the camera format.', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-format-label', + ], + false + ); + + $format_select = $this->field_element( + 'select', + $field, + [ + 'slug' => 'camera_format', + 'value' => ! empty( $field['camera_format'] ) ? $field['camera_format'] : 'photo', + 'options' => [ + 'photo' => esc_html__( 'Photo', 'wpforms-lite' ), + 'video' => esc_html__( 'Video', 'wpforms-lite' ), + ], + 'class' => 'wpforms-file-upload-camera-format-select', + ], + false + ); + + // Check if the camera is enabled to determine visibility. + $hidden_class = $this->is_camera_enabled_for_field( $field ) ? [] : [ 'wpforms-hidden' ]; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'camera_format', + 'content' => $format_label . $format_select, + 'class' => array_merge( [ 'wpforms-file-upload-camera-format' ], $hidden_class ), + ] + ); + } + + /** + * Add camera aspect ratio options. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_camera_aspect_ratio_options( array $field ): void { + + $aspect_ratio_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'camera_aspect_ratio', + 'value' => esc_html__( 'Aspect Ratio', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the camera aspect ratio.', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-aspect-ratio-label', + ], + false + ); + + // Build aspect ratio options - always include freeform. + $aspect_ratio_options = [ + 'original' => esc_html__( 'Original', 'wpforms-lite' ), + 'custom' => esc_html__( 'Custom', 'wpforms-lite' ), + 'freeform' => esc_html__( 'Freeform', 'wpforms-lite' ), + 'landscape' => [ + 'optgroup' => esc_html__( 'Landscape orientation', 'wpforms-lite' ), + '16:9' => esc_html__( '16:9', 'wpforms-lite' ), + '5:4' => esc_html__( '5:4', 'wpforms-lite' ), + '3:2' => esc_html__( '3:2', 'wpforms-lite' ), + ], + 'portrait' => [ + 'optgroup' => esc_html__( 'Portrait orientation', 'wpforms-lite' ), + '9:16' => esc_html__( '9:16', 'wpforms-lite' ), + '4:5' => esc_html__( '4:5', 'wpforms-lite' ), + '2:3' => esc_html__( '2:3', 'wpforms-lite' ), + ], + ]; + + // Add class to hide freeform if a format is not a photo. + $camera_format = ! empty( $field['camera_format'] ) ? $field['camera_format'] : 'photo'; + $aspect_ratio_class = [ 'wpforms-file-upload-camera-aspect-ratio-select' ]; + + if ( $camera_format !== 'photo' ) { + $aspect_ratio_class[] = 'wpforms-file-upload-camera-aspect-ratio-no-freeform'; + } + + $aspect_ratio_select = $this->field_element( + 'select', + $field, + [ + 'slug' => 'camera_aspect_ratio', + 'value' => ! empty( $field['camera_aspect_ratio'] ) ? $field['camera_aspect_ratio'] : 'original', + 'options' => $aspect_ratio_options, + 'class' => $aspect_ratio_class, + ], + false + ); + + // Check if the camera is enabled to determine visibility. + $hidden_class = $this->is_camera_enabled_for_field( $field ) ? [] : [ 'wpforms-hidden' ]; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'camera_aspect_ratio', + 'content' => $aspect_ratio_label . $aspect_ratio_select, + 'class' => array_merge( [ 'wpforms-file-upload-camera-aspect-ratio' ], $hidden_class ), + ] + ); + } + + /** + * Add camera custom ratio options. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_camera_custom_ratio_options( array $field ): void { + + // Check if an aspect ratio is custom to determine visibility. + $camera_aspect_ratio = ! empty( $field['camera_aspect_ratio'] ) ? $field['camera_aspect_ratio'] : 'original'; + $custom_ratio_hidden_class = ( $this->is_camera_enabled_for_field( $field ) && $camera_aspect_ratio === 'custom' ) ? [] : [ 'wpforms-hidden' ]; + + // Ratio Width field. + $ratio_width_field = '
              ' . $this->field_element( + 'text', + $field, + [ + 'slug' => 'camera_ratio_width', + 'type' => 'number', + 'value' => ! empty( $field['camera_ratio_width'] ) && $field['camera_ratio_width'] >= 1 ? $field['camera_ratio_width'] : '4', + 'attrs' => [ + 'min' => 1, + 'step' => 1, + ], + 'after' => esc_html__( 'Ratio Width', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-ratio-width-input', + ], + false + ) . '
              '; + + // Ratio Height field. + $ratio_height_field = '
              ' . $this->field_element( + 'text', + $field, + [ + 'slug' => 'camera_ratio_height', + 'type' => 'number', + 'value' => ! empty( $field['camera_ratio_height'] ) && $field['camera_ratio_height'] >= 1 ? $field['camera_ratio_height'] : '3', + 'attrs' => [ + 'min' => 1, + 'step' => 1, + ], + 'after' => esc_html__( 'Ratio Height', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-ratio-height-input', + ], + false + ) . '
              '; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'camera_custom_ratio', + 'content' => '
              ' . $ratio_width_field . $ratio_height_field . '
              ', + 'class' => array_merge( [ 'wpforms-file-upload-camera-custom-ratio' ], $custom_ratio_hidden_class ), + ] + ); + } + + /** + * Add camera time limit options. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function add_camera_time_limit_options( array $field ): void { + + $time_limit_label = $this->field_element( + 'label', + $field, + [ + 'slug' => 'camera_time_limit', + 'value' => esc_html__( 'Time Limit', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Set the time limit for camera recording.', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-time-limit-label', + ], + false + ); + + // Minutes field. + $minutes_field = '
              ' . $this->field_element( + 'text', + $field, + [ + 'slug' => 'camera_time_limit_minutes', + 'type' => 'number', + 'value' => ! empty( $field['camera_time_limit_minutes'] ) && $field['camera_time_limit_minutes'] >= 0 ? $field['camera_time_limit_minutes'] : '1', + 'attrs' => [ + 'min' => 0, + 'step' => 1, + ], + 'after' => esc_html__( 'Minutes', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-time-limit-minutes-input', + ], + false + ) . '
              '; + + // Seconds field. + $seconds_field = '
              ' . $this->field_element( + 'text', + $field, + [ + 'slug' => 'camera_time_limit_seconds', + 'type' => 'number', + 'value' => ! empty( $field['camera_time_limit_seconds'] ) && $field['camera_time_limit_seconds'] >= 0 && $field['camera_time_limit_seconds'] <= 59 ? $field['camera_time_limit_seconds'] : '30', + 'attrs' => [ + 'min' => 0, + 'max' => 59, + 'step' => 1, + ], + 'after' => esc_html__( 'Seconds', 'wpforms-lite' ), + 'class' => 'wpforms-file-upload-camera-time-limit-seconds-input', + ], + false + ) . '
              '; + + // Check if a format is video to determine time limit visibility. + $camera_format = ! empty( $field['camera_format'] ) ? $field['camera_format'] : 'photo'; + $time_limit_hidden_class = ( $this->is_camera_enabled_for_field( $field ) && $camera_format === 'video' ) ? [] : [ 'wpforms-hidden' ]; + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'camera_time_limit', + 'content' => $time_limit_label . '
              ' . $minutes_field . $seconds_field . '
              ', + 'class' => array_merge( [ 'wpforms-file-upload-camera-time-limit' ], $time_limit_hidden_class ), + ] + ); + } + + /** + * Whether the provided form has a camera field. + * + * @since 1.9.8 + * + * @param array|mixed $form Form data. + */ + protected function is_camera_enabled( $form ): bool { + + if ( empty( $form['fields'] ) ) { + return false; + } + + foreach ( $form['fields'] as $field ) { + if ( ! empty( $field['camera_enabled'] ) ) { + return true; + } + } + + return false; + } + + /** + * Whether the field is a camera field or has camera enabled. + * + * @since 1.9.8 + * + * @param array $field Field data and settings. + */ + private function is_camera_enabled_for_field( array $field ): bool { + + return $this->type === 'camera' || ! empty( $field['camera_enabled'] ); + } + + /** + * Get the camera time limit in seconds. + * + * @since 1.9.8 + * + * @param array $field Field data. + * + * @return int Camera time limit in seconds. + */ + public function get_camera_time_limit( array $field ): int { + + $field = wp_parse_args( + $field, + [ + 'camera_enabled' => false, + 'camera_format' => '', + 'camera_time_limit_minutes' => 0, + 'camera_time_limit_seconds' => 0, + ] + ); + + if ( empty( $field['camera_enabled'] ) || $field['camera_format'] !== 'video' ) { + return 0; + } + + return absint( $field['camera_time_limit_minutes'] ) * 60 + absint( $field['camera_time_limit_seconds'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ContentInput.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ContentInput.php new file mode 100644 index 0000000..aaefe1d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ContentInput.php @@ -0,0 +1,590 @@ +content_input_hooks(); + parent::__construct( $init ); + } + + /** + * Register hooks. + * + * @since 1.9.4 + */ + private function content_input_hooks(): void { + + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_enqueues' ] ); + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'content_editor_tools_template' ] ); + add_filter( 'wpforms_builder_field_option_class', [ $this, 'builder_field_option_class' ], 10, 2 ); + add_filter( 'wpforms_builder_strings', [ $this, 'content_builder_strings' ], 10, 2 ); + add_filter( 'editor_stylesheets', [ $this, 'editor_stylesheets' ] ); + add_filter( 'media_view_strings', [ $this, 'edit_media_view_strings' ], 10, 2 ); + add_filter( 'teeny_mce_buttons', [ $this, 'teeny_mce_buttons' ], 10, 2 ); + } + + /** + * Content field option. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + */ + private function field_option_content( array $field ): void { + + $value = ( isset( $field['content'] ) && ! wpforms_is_empty_string( $field['content'] ) ) ? wp_kses( $field['content'], $this->get_allowed_html_tags() ) : ''; + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => 'content', + 'content' => $this->get_content_editor( $value, $field ), + ], + false + ); + $output .= wpforms_render( + 'fields/content/action-buttons', + [ + 'id' => $field['id'], + 'preview' => $this->get_input_string( 'preview' ), + 'expand' => $this->get_input_string( 'expand' ), + ], + true + ); + + printf( '
              %s
              ', $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + + /** + * Add class name to the field option top element. + * + * @since 1.9.4 + * + * @param string|mixed $css_class CSS classes. + * @param array $field Field data. + * + * @return string + */ + public function builder_field_option_class( $css_class, $field ): string { + + $css_class = (string) $css_class; + + return $this->type === $field['type'] ? $css_class . ' wpforms-field-has-tinymce' : $css_class; + } + + /** + * Localized strings for `content-field` JS script. + * + * @since 1.9.4 + * + * @param array|mixed $strings Localized strings. + * @param array $form The form element. + * + * @return array + * @noinspection PhpUnusedParameterInspection + */ + public function content_builder_strings( $strings, $form ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $strings = (array) $strings; + + $strings['content_field'] = [ + 'collapse' => wp_strip_all_tags( $this->get_input_string( 'collapse' ) ), + 'expand' => wp_strip_all_tags( $this->get_input_string( 'expand' ) ), + 'editor_default_value' => wp_kses( $this->get_input_string( 'editor_default_value' ), $this->get_allowed_html_tags() ), + 'content_editor_plugins' => $this->content_editor_plugins(), + 'content_editor_toolbar' => $this->content_editor_toolbar(), + 'content_editor_css_url' => $this->content_css_url(), + 'editor_height' => $this->get_editor_height(), + 'allowed_html' => array_keys( $this->get_allowed_html_tags() ), + 'invalid_elements' => $this->get_invalid_elements(), + 'quicktags_buttons' => $this->get_quicktags_buttons(), + 'body_class' => $this->get_editor_body_class(), + ]; + + return $this->add_supported_field_type( $strings, $this->type ); + } + + /** + * Add editor stylesheet. + * + * @since 1.9.4 + * + * @param array|mixed $stylesheets Editor stylesheets. + * + * @return array + */ + public function editor_stylesheets( $stylesheets ): array { + + $stylesheets = (array) $stylesheets; + + if ( wpforms_is_admin_page( 'builder' ) ) { + $stylesheets[] = $this->content_css_url(); + } + + return $stylesheets; + } + + /** + * Edit some media view strings to reference a form instead of a page/post. + * + * @since 1.9.4 + * + * @param array|mixed $strings List of media view strings. + * @param WP_Post $post Post object. + * + * @return array Modified media view strings. + * @noinspection SqlResolve + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function edit_media_view_strings( $strings, $post ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $strings = (array) $strings; + + if ( wpforms_is_admin_page( 'builder' ) ) { + $strings['insertIntoPost'] = esc_html__( /** @lang text */ 'Insert into form', 'wpforms-lite' ); + $strings['uploadedToThisPost'] = esc_html__( 'Uploaded to this form', 'wpforms-lite' ); + } + + return $strings; + } + + /** + * Remove fullscreen button if this is other tinymce editor instance than content field editor. + * + * @since 1.9.4 + * + * @param array|mixed $buttons Array of editor buttons. + * @param string $editor_id Editor textarea ID. + * + * @return array + */ + public function teeny_mce_buttons( $buttons, $editor_id ): array { + + $buttons = (array) $buttons; + + $is_other_editor = strpos( $editor_id, 'wpforms_panel_' ) === 0 || $editor_id === 'entry_note'; + $key = array_search( 'fullscreen', $buttons, true ); + + if ( $is_other_editor && $key !== false ) { + unset( $buttons[ $key ] ); + } + + return $buttons; + } + + /** + * Get default content editor plugins. + * + * @since 1.9.4 + * + * @return array Plugins array. + */ + private function content_editor_plugins(): array { + + $plugins = [ + 'charmap', + 'colorpicker', + 'hr', + 'link', + 'image', + 'lists', + 'paste', + 'tabfocus', + 'textcolor', + 'wordpress', + 'wpemoji', + 'wptextpattern', + 'wpeditimage', + ]; + + /** + * Get content editor plugins filter. + * + * @since 1.7.8 + * + * @param array $plugins Plugins array. + */ + return (array) apply_filters( 'wpforms_builder_content_input_get_content_editor_plugins', $plugins ); + } + + /** + * Get default content editor toolbar. + * + * @since 1.9.4 + * + * @return array Toolbar buttons array. + */ + private function content_editor_toolbar(): array { + + $toolbar = [ + 'formatselect', + 'bold', + 'italic', + 'underline', + 'strikethrough', + 'forecolor', + 'link', + 'bullist', + 'numlist', + 'blockquote', + 'alignleft', + 'aligncenter', + 'alignright', + ]; + + /** + * Get content editor toolbar buttons filter. + * + * @since 1.7.8 + * + * @param array $toolbar Toolbar buttons array. + */ + return (array) apply_filters( 'wpforms_builder_content_input_get_content_editor_toolbar', $toolbar ); + } + + /** + * Enqueue wpforms-content-field script. + * + * @since 1.9.4 + * + * @param string $view Current view. + * + * @noinspection PhpUnusedParameterInspection + */ + public function builder_enqueues( $view ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $wp_min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; + + // Enqueue editor styles explicitly. Hack for broken styles when the Content field is deleted and Settings > Confirmation editor get broken. + // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion + wp_enqueue_style( + 'wpforms-editor-styles', + includes_url( "css/editor$wp_min.css" ) + ); + } + + /** + * Content editor tools template. + * + * @since 1.9.4 + */ + public function content_editor_tools_template(): void { + + ?> + + array_merge( $other_supported_field_types, [ $type ] ), + ]; + + return $strings; + } + + /** + * Get translatable string. + * + * @since 1.9.4 + * + * @param string $key String key. + * + * @return string + */ + private function get_input_string( $key ): string { + + if ( ! self::$translatable_strings ) { + self::$translatable_strings = [ + 'editor_default_value' => __( '

              Add Text and Images to Your Form With Ease

              To get started, replace this text with your own.

              ', 'wpforms-lite' ), + 'expand' => __( 'Expand Editor', 'wpforms-lite' ), + 'collapse' => __( 'Collapse Editor', 'wpforms-lite' ), + 'preview' => __( 'Update Preview', 'wpforms-lite' ), + ]; + } + + return self::$translatable_strings[ $key ] ?? ''; + } + + /** + * Show field preview in the right builder panel. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + private function content_input_preview( $field ): void { + + $content = $field['content'] ?? $this->get_input_string( 'editor_default_value' ); + ?> +
              + do_caption_shortcode( wpautop( $content ) ), $this->get_allowed_html_tags() ); ?> +
              +
              + true, + 'drag_drop_upload' => true, + 'textarea_name' => "fields[{$field['id']}][content]", + 'editor_height' => $this->get_editor_height(), + 'editor_class' => ! empty( $field['required'] ) ? 'wpforms-field-required' : '', + 'tinymce' => [ + 'init_instance_callback' => $this->is_disabled_field ? '' : 'wpformsContentFieldTinyMCECallback', + 'plugins' => implode( ',', $this->content_editor_plugins() ), + 'toolbar1' => implode( ',', $this->content_editor_toolbar() ), + 'invalid_elements' => $this->get_invalid_elements(), + 'relative_urls' => false, + 'remove_script_host' => false, + 'object_resizing' => false, + 'body_class' => $this->get_editor_body_class(), + ], + 'quicktags' => [ + 'buttons' => $this->get_quicktags_buttons(), + ], + ]; + + ob_start(); + wp_editor( $value, 'wpforms-field-option-' . $field['id'] . '-content', $settings ); + + return ob_get_clean(); + } + + /** + * Get invalid HTML in content editor. + * + * @since 1.9.4 + * + * @return string Invalid HTML elements. + */ + private function get_invalid_elements(): string { + + return 'form,input,textarea,select,option,script,embed,iframe'; + } + + /** + * Get the list of the `quicktags` buttons. + * + * @since 1.9.4 + * + * @return string Quicktags buttons. + */ + private function get_quicktags_buttons(): string { + + $quicktag_buttons = [ + 'strong', + 'em', + 'block', + 'del', + 'ins', + 'img', + 'ul', + 'ol', + 'li', + 'code', + 'link', + 'close', + ]; + + /** + * Get the list of the `quicktags` buttons filter. + * + * @since 1.7.8 + * + * @param string $quicktags_buttons Comma separated list of quicktags buttons. + */ + return implode( ',', apply_filters( 'wpforms_builder_content_input_get_quicktags_buttons', $quicktag_buttons ) ); + } + + /** + * Get content CSS url. + * + * @since 1.9.4 + * + * @return string + */ + private function content_css_url(): string { + + $min = wpforms_get_min_suffix(); + + return WPFORMS_PLUGIN_URL . "assets/css/builder/content-editor{$min}.css"; + } + + /** + * Get content editor height. + * + * @since 1.9.4 + * + * @retun int Editor textarea height. + */ + private function get_editor_height(): int { + + /** + * Get content editor height filter. + * + * @since 1.7.8 + * + * @param int $height Editor textarea height. + */ + return (int) apply_filters( 'wpforms_builder_content_input_get_editor_height', 204 ); + } + + /** + * Get allowed HTML tags for Content Input Field. + * + * @since 1.9.4 + * + * @return array + */ + protected function get_allowed_html_tags(): array { + + /** + * Filter allowed HTML tags in the content field input. + * + * @since 1.7.8 + * + * @param array $allowed_tags Allowed tags. + */ + return (array) apply_filters( 'wpforms_builder_content_input_get_allowed_html_tags', wpforms_get_allowed_html_tags_for_richtext_field() ); + } + + /** + * Get editor body class. + * + * @since 1.9.4 + * + * @return string + */ + private function get_editor_body_class(): string { + + return 'wpforms-content-field-editor-body'; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileDisplayTrait.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileDisplayTrait.php new file mode 100644 index 0000000..e0128f7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileDisplayTrait.php @@ -0,0 +1,356 @@ +type ) { + return $val; + } + + $field = $this->entry_preview_prepare_field_value( $field, $form_data, $context ); + + // Return early if there is no value at all. + if ( empty( $field['value'] ) && empty( $field['value_raw'] ) ) { + return $val; + } + + // Process modern uploader. + if ( ! empty( $field['value_raw'] ) ) { + return $this->process_modern_uploader( $field, $context ); + } + + // Process classic uploader. + if ( $this->is_entry_preview( $context ) ) { + return $this->entry_preview_file_link_html( $field, $this->get_file_url( $field ) ); + } + + return $this->get_file_link_html( $field, $context ); + } + + /** + * Get file link HTML. + * + * @since 1.9.8 + * + * @param array $file File data. + * @param string $context Value display context. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + private function get_file_link_html( array $file, string $context ): string { + + $html = in_array( $context, [ 'email-html', 'entry-single' ], true ) ? $this->file_icon_html( $file ) : ''; + + $html .= sprintf( + '%s', + esc_url( $this->get_file_url( $file ) ), + $context === 'email-html' ? 'padding-left:10px;' : '', + esc_html( $this->get_file_name( $file ) ) + ); + + return $html; + } + + /** + * Get the URL of a file. + * + * @since 1.9.8 + * + * @param array $file File data. + * @param array $args Additional query arguments. + * + * @return string + */ + public function get_file_url( array $file, array $args = [] ): string { + + $file_url = $file['value'] ?? ''; + + if ( ! empty( $file['protection_hash'] ) ) { + $args = wp_parse_args( + $args, + [ + 'wpforms_uploaded_file' => $file['protection_hash'], + ] + ); + + $file_url = add_query_arg( $args, home_url() ); + } + + /** + * Allow modifying the URL of a file. + * + * @since 1.9.8 + * + * @param string $file_url File URL. + * @param array $file File data. + */ + return (string) apply_filters( 'wpforms_pro_fields_file_upload_get_file_url', $file_url, $file ); + } + + /** + * Get the name of a file. + * + * @since 1.9.8 + * + * @param array $file File data. + * + * @return string + */ + public function get_file_name( array $file ): string { + + if ( ! $this->is_file_protected( $file ) ) { + return $file['file_original']; + } + + $ext = $file['ext'] ?? ''; + + return sprintf( '%s.%s', hash( 'crc32b', $file['file_original'] ), $ext ); + } + + /** + * Check if the file is protected. + * + * @since 1.9.8 + * + * @param array $file_data File data. + * + * @return bool True if the file is protected, false otherwise. + */ + private function is_file_protected( array $file_data ): bool { + + return ! empty( $file_data['protection_hash'] ); + } + + /** + * Get file icon HTML. + * + * @since 1.9.8 + * + * @param array $file_data File data. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + public function file_icon_html( array $file_data ): string { + + $src = esc_url( $file_data['value'] ); + $ext_types = wp_get_ext_types(); + + if ( $this->is_file_protected( $file_data ) || ! in_array( $file_data['ext'], $ext_types['image'], true ) ) { + $src = wp_mime_type_icon( wp_ext2type( $file_data['ext'] ) ?? '' ); + } elseif ( ! empty( $file_data['attachment_id'] ) ) { + $image = wp_get_attachment_image_src( $file_data['attachment_id'], [ 16, 16 ], true ); + $src = $image ? $image[0] : $src; + } + + return sprintf( '', esc_url( $src ) ); + } + + /** + * Prepare field value for entry preview. + * + * @since 1.9.9 + * + * @param array $field Field data. + * @param array $form_data Form data. + * @param string $context Display context. + * + * @return array + */ + private function entry_preview_prepare_field_value( array $field, array $form_data, string $context ): array { + + if ( ! empty( $field['value'] ) || ! empty( $field['value_raw'] ) || ! $this->is_entry_preview( $context ) ) { + return $field; + } + + $this->form_id = absint( $form_data['id'] ); + $this->field_id = absint( $field['id'] ); + $input_name = $this->get_input_name(); + + // Modern uploader: data (JSON) in $_POST. + $raw_json = isset( $_POST[ $input_name ] ) ? sanitize_text_field( wp_unslash( $_POST[ $input_name ] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing + + if ( $raw_json !== '' && wpforms_is_json( $raw_json ) ) { + $files = json_decode( $raw_json, true ); + + if ( ! empty( $files ) ) { + $field['value_raw'] = array_map( + static function ( $file ) { + $name = $file['name'] ?? ''; + + return [ + 'value' => $file['url'] ?? '', + 'file_original' => $name, + 'ext' => strtolower( pathinfo( $name, PATHINFO_EXTENSION ) ), + ]; + }, + $files + ); + } + + return $field; + } + + // Classic uploader: data in $_FILES. + $files = $_FILES[ $input_name ]['name'] ?? []; // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $files = is_array( $files ) ? $files : [ $files ]; + $files = array_filter( array_map( 'sanitize_file_name', $files ) ); + + if ( ! empty( $files ) ) { + $field['value_raw'] = array_map( + static function ( $file ) { + + return [ + 'value' => '', // No public URL available. + 'file_original' => $file, + 'ext' => strtolower( pathinfo( $file, PATHINFO_EXTENSION ) ), + ]; + }, + $files + ); + } + + return $field; + } + + /** + * Process modern uploader. + * + * @since 1.9.9 + * + * @param array $field Field data. + * @param string $context Value display context. + * + * @return string + */ + private function process_modern_uploader( array $field, string $context ): string { + + $values = $context === 'entry-table' ? array_slice( $field['value_raw'], 0, 3, true ) : $field['value_raw']; + $html = ''; + $submitted_fields = ! empty( $_POST['wpforms'] ) ? stripslashes_deep( $_POST['wpforms'] ) : []; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing + $is_entry_preview = $this->is_entry_preview( $context ); + + foreach ( $values as $key => $file ) { + + $src = $this->get_file_url( $file ); + + // If the temp file doesn't exist, fallback to submitted field data if set. + if ( $is_entry_preview && ! file_exists( $src ) && isset( $submitted_fields['complete'][ $field['id'] ]['value_raw'][ $key ] ) ) { + $file = $submitted_fields['complete'][ $field['id'] ]['value_raw'][ $key ]; + $src = $this->get_file_url( $file ); + } + + // Normalize structure ( pre-submit uses url/name; post-submit uses value/file_original ). + if ( empty( $file['value'] ) && ! empty( $file['url'] ) ) { + $file['value'] = $file['url']; + } + + if ( empty( $file['file_original'] ) && ! empty( $file['name'] ) ) { + $file['file_original'] = $file['name']; + } + + if ( empty( $file['ext'] ) ) { + $source = $file['file_original'] ?? ( $file['name'] ?? '' ); + $file['ext'] = strtolower( pathinfo( $source, PATHINFO_EXTENSION ) ); + } + + if ( empty( $file['file_original'] ) ) { + continue; + } + + if ( $is_entry_preview ) { + $html .= $this->entry_preview_file_link_html( $file, $src ); + + continue; + } + + $html .= $this->get_file_link_html( $file, $context ) . '
              '; + } + + if ( count( $values ) < count( $field['value_raw'] ) ) { + $html .= '…'; + } + + return $html; + } + + /** + * Get file link HTML for entry preview. + * Show image previews, non-images as plain text. + * + * @since 1.9.9 + * + * @param array $file File data. + * @param string $src File source. + * + * @return string + */ + private function entry_preview_file_link_html( array $file, string $src ): string { + + $filename = esc_html( $this->get_file_name( $file ) ); + $is_image = in_array( $file['ext'] ?? '', wp_get_ext_types()['image'], true ); + + // If we have a URL, display an inline thumbnail preview. + if ( $is_image && ! empty( $src ) ) { + return sprintf( + '%2$s%2$s', + esc_url( $src ), + esc_html( $filename ) + ); + } + + // Show the file name otherwise. + return sprintf( '%1$s', $filename ); + } + + /** + * Check if the context is an entry preview. + * + * @since 1.9.9 + * + * @param string $context Value display context. + * + * @return bool True if the context is entry preview, false otherwise. + */ + private function is_entry_preview( string $context ): bool { + + return $context === 'entry-preview'; + } + + /** + * Get the input name for the field. + * + * @since 1.9.9 + * + * @return string + */ + public function get_input_name(): string { + + return sprintf( 'wpforms_%d_%d', $this->form_id, $this->field_id ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileEntriesEditTrait.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileEntriesEditTrait.php new file mode 100644 index 0000000..9d572d7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileEntriesEditTrait.php @@ -0,0 +1,193 @@ +field_object, 'is_modern_upload' ) && + $this->field_object::is_modern_upload( $entry_field ) + ) { + // Check if there are any files in value_raw. + if ( ! empty( $entry_field['value_raw'] ) && is_array( $entry_field['value_raw'] ) ) { + foreach ( $entry_field['value_raw'] as $key => $field_data ) { + $html .= $this->get_file_item_html( $field_data, $is_media_file, $key ); + } + } + } else { + $html .= $this->get_file_item_html( $entry_field, $is_media_file ); + } + + echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + + /** + * Get HTML for the file item. + * + * @since 1.9.8 + * + * @param array $field_data Field data. + * @param bool $is_media_file Is WP media. + * @param int|string $key Key for multiple items. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + private function get_file_item_html( array $field_data, bool $is_media_file, $key = 0 ): string { + + $html = '
              '; + + $html .= $this->field_object->file_icon_html( $field_data ); + + $html .= sprintf( + '%s', + esc_url( $this->field_object->get_file_url( $field_data ) ), + esc_html( $this->field_object->get_file_name( $field_data ) ) + ); + + $html .= sprintf( + '', + esc_attr( $field_data['id'] ), + esc_attr( $key ) + ); + + if ( $is_media_file ) { + $title = sprintf( + wp_kses( /* translators: %s - link to the Media Library. */ + __( 'Please use the default WordPress Media interface to remove this file.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + ], + ] + ), + esc_url( admin_url( 'upload.php' ) ) + ); + + $html .= sprintf( '', esc_html( $title ) ); + } else { + $html .= $this->remove_button_html(); + } + + $html .= '
              '; + + return $html; + } + + /** + * Get the remove button HTML. + * + * @since 1.9.8 + * + * @return string + */ + private function remove_button_html(): string { + + return ''; + } + + /** + * Format and sanitize a field while processing entry editing. + * + * @since 1.9.8 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param mixed $field_data Existing field data. + * @param array $form_data Form data and settings. + * + * @noinspection ReturnTypeCanBeDeclaredInspection*/ + public function format( $field_id, $field_submit, $field_data, $form_data ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + if ( + method_exists( $this->field_object, 'is_modern_upload' ) && + ! $this->field_object::is_modern_upload( $field_data ) + ) { + if ( ! is_array( $field_submit ) ) { + $field_data['value'] = ''; + $field_data['file_original'] = ''; + $field_data['ext'] = ''; + } + + wpforms()->obj( 'process' )->fields[ $field_id ] = $field_data; + + return; + } + + if ( ! isset( $field_data['value_raw'] ) || ! is_array( $field_submit ) ) { + $field_data['value_raw'] = ''; + $field_data['value'] = ''; + + wpforms()->obj( 'process' )->fields[ $field_id ] = $field_data; + + return; + } + + $field_data['value_raw'] = array_intersect_key( $field_data['value_raw'], array_combine( $field_submit, $field_submit ) ); + + $field_data['value'] = implode( "\n", array_column( $field_data['value_raw'], 'value' ) ); + + wpforms()->obj( 'process' )->fields[ $field_id ] = $field_data; + } + + /** + * Skip validation. + * + * @since 1.9.8 + * + * @param int $field_id Field ID. + * @param mixed $field_submit Field value that was submitted. + * @param mixed $field_data Existing field data. + * @param array $form_data Form data and settings. + * + * @noinspection ReturnTypeCanBeDeclaredInspection*/ + public function validate( $field_id, $field_submit, $field_data, $form_data ) { } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileMethodsTrait.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileMethodsTrait.php new file mode 100644 index 0000000..0b824cc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/FileMethodsTrait.php @@ -0,0 +1,161 @@ +get_default_extensions(); + + // Allowed file extensions. + $extensions = ! empty( $this->field_data['extensions'] ) ? explode( ',', $this->field_data['extensions'] ) : $default_extensions; + + return wpforms_chain( $extensions ) + ->map( + static function ( $ext ) { + + return strtolower( preg_replace( '/[^A-Za-z0-9_-]/', '', $ext ) ); + } + ) + ->array_filter() + ->array_intersect( $default_extensions ) + ->value(); + } + + /** + * Determine the max-allowed file size in bytes as per field options. + * + * @since 1.9.8 + * + * @return int Number of bytes allowed. + */ + public function max_file_size(): int { + + if ( ! empty( $this->field_data['max_size'] ) ) { + + // Strip any suffix provided (e.g., M, MB, etc.), which leaves us with the raw MB value. + $max_size = preg_replace( '/[^0-9.]/', '', $this->field_data['max_size'] ); + + return wpforms_size_to_bytes( $max_size . 'M' ); + } + + return (int) wpforms_max_upload( true ); + } + + /** + * Get default extensions supported by WordPress + * without those that we manually denylist. + * + * @since 1.9.8 + * + * @return array + */ + protected function get_default_extensions(): array { + + return wpforms_chain( get_allowed_mime_types() ) + ->array_keys() + ->implode( '|' ) + ->explode( '|' ) + ->array_diff( $this->denylist ) + ->value(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/MultiFieldMenu.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/MultiFieldMenu.php new file mode 100644 index 0000000..947a3c9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/MultiFieldMenu.php @@ -0,0 +1,61 @@ + [ + 'icon' => 'fa-files-o', + 'label' => __( 'Duplicate Fields', 'wpforms-lite' ), + ], + 'delete-multi' => [ + 'icon' => 'fa-trash-o', + 'label' => __( 'Delete Fields', 'wpforms-lite' ), + 'last' => true, + ], + ]; + + $divider = '
            • '; + + $html = '
              '; + $html .= '
                '; + + foreach ( $items as $action => $item ) { + $html .= sprintf( + '
              • + + + + %3$s +
              • + %4$s', + esc_attr( $action ), + esc_attr( $item['icon'] ), + esc_html( $item['label'] ), + empty( $item['last'] ) ? $divider : '' + ); + } + + $html .= '
              '; + $html .= '
              '; + + return $html; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/NumberField.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/NumberField.php new file mode 100644 index 0000000..84f8f1c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/NumberField.php @@ -0,0 +1,300 @@ + 0 ) + ) + ) { + $attrs['step'] = (string) $args['step']; + } + + $number_label_markup = $this->field_element( + 'label', + $field, + [ + 'slug' => $slug, + 'value' => $label, + 'tooltip' => $args['tooltip'] ?? '', + ], + false + ); + + $number_input_markup = $this->field_element( + 'text', + $field, + [ + 'type' => 'number', + 'slug' => $slug, + 'value' => is_numeric( $value ) ? (float) $value : '', + 'attrs' => $attrs, + 'class' => $args['class'] ?? '', + ], + false + ); + + $output = $this->field_element( + 'row', + $field, + [ + 'slug' => $slug, + 'content' => $number_label_markup . $number_input_markup, + ], + false + ); + + if ( ! $output ) { + return ''; + } + + if ( $echo_output ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $output; + } + + return $output; + } + + /** + * Helper function to create `min_max` field option markup. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $echo_output Print or return the value. Print by default. + * + * @return string + */ + private function field_number_option_min_max( $field, $args, $echo_output = true ) { + + $class = $args['class'] ?? 'number_min_max'; + $range_label_markup = $this->field_element( + 'label', + $field, + [ + 'slug' => 'min', + 'value' => $args['label'] ?? esc_html__( 'Range', 'wpforms-lite' ), + 'tooltip' => $args['tooltip'] ?? esc_html__( 'Define the minimum and the maximum values for the field.', 'wpforms-lite' ), + ], + false + ); + + $min_value = $field['min'] ?? null; + $input_min_args = [ + 'type' => 'number', + 'slug' => 'min', + 'value' => is_numeric( $min_value ) ? (float) $min_value : '', + 'class' => $class . '-min', + 'attrs' => [ + 'step' => 'any', + ], + ]; + + $range_input_min_markup = $this->field_element( + 'text', + $field, + $input_min_args, + false + ); + + $max_value = $field['max'] ?? null; + $input_max_args = [ + 'type' => 'number', + 'slug' => 'max', + 'value' => is_numeric( $max_value ) ? (float) $max_value : '', + 'class' => $class . '-max', + 'attrs' => [ + 'step' => 'any', + ], + ]; + + $range_input_max_markup = $this->field_element( + 'text', + $field, + $input_max_args, + false + ); + + return $this->field_element( + 'row', + $field, + [ + 'slug' => 'min_max', + 'content' => $range_label_markup . sprintf( + '
              +
              %s
              +
              %s
              +
              ', + $range_input_min_markup, + (int) $field['id'], + esc_html__( 'Minimum', 'wpforms-lite' ), + $range_input_max_markup, + (int) $field['id'], + esc_html__( 'Maximum', 'wpforms-lite' ) + ), + ], + $echo_output + ); + } + + /** + * Helper function to create `default_value` field option markup. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $echo_output Print or return the value. Print by default. + * + * @return string + */ + private function field_number_option_default_value( $field, $args, $echo_output = true ) { + + $default_value_args = [ + 'slug' => 'default_value', + 'label' => esc_html__( 'Default Value', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Enter a default value for this field.', 'wpforms-lite' ), + 'class' => $args['class'] ?? '', + 'value' => $args['value'] ?? '', + 'min' => $field['min'] ?? '', + 'max' => $field['max'] ?? '', + 'step' => $field['step'] ?? '', + ]; + + return $this->field_number_element( + $field, + $default_value_args, + $echo_output + ); + } + + /** + * Helper function to create `step` field option markup. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $args Field preview arguments. + * @param bool $echo_output Print or return the value. Print by default. + * + * @return string + */ + private function field_number_option_step( $field, $args, $echo_output = true ) { + + $step_args = [ + 'slug' => 'step', + 'label' => esc_html__( 'Increment', 'wpforms-lite' ), + 'tooltip' => $args['tooltip'] ?? esc_html__( 'Determines the increment between selectable values on the field.', 'wpforms-lite' ), + 'class' => $args['class'] ?? '', + 'min' => 0, + 'step' => 'any', + 'value' => 1, + ]; + + $min = is_numeric( $field['min'] ?? null ) ? (float) $field['min'] : null; + $max = is_numeric( $field['max'] ?? null ) ? (float) $field['max'] : null; + + if ( ! is_null( $min ) && ! is_null( $max ) ) { + $step_args['max'] = $max - $min; + } + + return $this->field_number_element( + $field, + $step_args, + $echo_output + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ProField.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ProField.php new file mode 100644 index 0000000..473a3c9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ProField.php @@ -0,0 +1,619 @@ +is_pro = wpforms()->is_pro(); + $this->is_addon_initialized = ! empty( $this->addon_slug ) && wpforms_is_addon_initialized( $this->addon_slug ); + $this->is_disabled_field = $this->is_disabled_field(); + + // Add hooks. + add_filter( 'admin_init', [ $this, 'admin_init_pro_field' ] ); + add_filter( 'wpforms_builder_field_option_class', [ $this, 'filter_field_option_class' ], 10, 2 ); + add_filter( "wpforms_admin_builder_ajax_save_form_field_$this->type", [ $this, 'filter_save_form_field_data' ], 10, 3 ); + add_filter( 'wpforms_field_data', [ $this, 'filter_frontend_field_data' ], PHP_INT_MAX, 2 ); + add_filter( 'wpforms_helpers_form_pro_fields', [ $this, 'filter_form_pro_fields' ], PHP_INT_MAX, 2 ); + add_filter( 'wpforms_helpers_form_addons_edu_data', [ $this, 'filter_form_addons_edu_data' ], PHP_INT_MAX, 2 ); + add_filter( 'wpforms_field_preview_display_duplicate_button', [ $this, 'filter_field_preview_display_duplicate_button' ], 10, 2 ); + add_filter( 'wpforms_field_preview_class', [ $this, 'filter_field_preview_class' ], 10, 2 ); + add_filter( 'wpforms_entry_save_data', [ $this, 'filter_entry_save_data' ], 10, 3 ); + add_filter( 'wpforms_pro_admin_entries_table_facades_columns_get_field_columns_forbidden_fields', [ $this, 'filter_field_columns_forbidden_fields' ], 10, 2 ); + add_filter( 'wpforms_pro_admin_entries_export_configuration', [ $this, 'filter_entries_export_configuration' ], 10, 1 ); + add_filter( "wpforms_pro_admin_entries_edit_is_field_displayable_$this->type", [ $this, 'filter_is_field_displayable' ], 10, 3 ); + } + + /** + * Init Pro field on `admin_init` hook. + * + * @since 1.9.4 + */ + public function admin_init_pro_field(): void { + + $this->addon_edu_data = $this->get_field_addon_edu_data(); + } + + /** + * Get the Pro field options tab CSS class. + * + * @since 1.9.4 + * + * @param string|mixed $css_class CSS class. + * @param array $field Field data. + * + * @return string + * @noinspection PhpMissingParamTypeInspection + */ + public function filter_field_option_class( $css_class, $field ): string { + + $css_class = (string) $css_class; + + if ( $field['type'] !== $this->type ) { + return $css_class; + } + + $css_class .= empty( $this->is_disabled_field ) ? '' : ' wpforms-field-is-pro'; + + return trim( $css_class ); + } + + /** + * Filter field data before saving the form. + * + * @since 1.9.4 + * + * @param array $field_data Field data. + * @param array $form_data Forms data. + * @param array $saved_form_data Saved form data. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function filter_save_form_field_data( $field_data, $form_data, $saved_form_data ) { + + if ( empty( $this->is_disabled_field ) ) { + return $field_data; + } + + $field_id = $field_data['id'] ?? ''; + + // Prevent changes in the field data if it's a Pro field in Lite. + // The settings are disabled in the Form Builder, but users can still hijack the data. + // Therefore, return the saved field data if it exists. + return $saved_form_data['fields'][ $field_id ] ?? $field_data; + } + + /** + * Filter form pro fields array. + * + * @since 1.9.4 + * + * @param array|mixed $pro_fields Pro fields array. + * @param array $field Field data. + */ + public function filter_form_pro_fields( $pro_fields, array $field ): array { + + $pro_fields = is_array( $pro_fields ) ? $pro_fields : []; + + if ( isset( $field['type'] ) && $field['type'] === $this->type ) { + $pro_fields[] = $field; + } + + return $pro_fields; + } + + /** + * Filter the form addons educational data array. + * + * @since 1.9.4 + * + * @param array|mixed $addons_edu_data Addons educational data. + * @param array $field Field data. + */ + public function filter_form_addons_edu_data( $addons_edu_data, array $field ): array { + + $addons_edu_data = is_array( $addons_edu_data ) ? $addons_edu_data : []; + + if ( ! isset( $field['type'] ) || $field['type'] !== $this->type || empty( $this->addon_edu_data ) ) { + return $addons_edu_data; + } + + $addon = $this->addon_edu_data['slug'] ?? ''; + $addons_edu_data[ $addon ] = $this->addon_edu_data; + + return $addons_edu_data; + } + + /** + * Get the Pro field options notice. + * + * @since 1.9.4 + * + * @noinspection HtmlUnknownAttribute + */ + private function get_field_options_notice(): string { + + if ( empty( $this->is_disabled_field ) ) { + return ''; + } + + [ $name, $title, $content, $button_label, $button_utm ] = $this->get_field_options_notice_texts(); + + $action = $this->addon_edu_data['action'] ?? 'upgrade'; + $button_class = 'education-action-button'; + $button_attr = ''; + + if ( $action !== 'upgrade' ) { + $button_class = 'education-modal'; + $button_attr = sprintf( + 'data-nonce="%1$s" data-path="%2$s" data-url="%3$s" data-message="%4$s" data-field-type="%5$s" data-name="%6$s"', + esc_attr( wp_create_nonce( 'wpforms-admin' ) ), + $this->addon_edu_data['path'] ?? '', + $this->addon_edu_data['url'] ?? '', + $action === 'incompatible' ? $this->addon_edu_data['message'] : '', + esc_attr( $this->type ), + esc_attr( $name ) + ); + } + + return sprintf( + '
              +
              +

              %1$s

              +

              %2$s

              + +
              +
              ', + $title, + esc_html( $content ), + esc_attr( $button_class ), + esc_attr( $action ), + esc_html( $button_label ), + $button_attr, + esc_attr( $this->addon_edu_data['license_level'] ?? 'pro' ), + esc_attr( $button_utm ) + ); + } + + /** + * Get the Pro field options notice texts. + * + * @since 1.9.4 + */ + private function get_field_options_notice_texts(): array { + + $action = $this->addon_edu_data['action'] ?? 'upgrade'; + $addon_name = $this->addon_edu_data['title'] ?? ''; + $name = $this->name; + + $titles = [ + 'upgrade' => sprintf( /* translators: %1$s - Field name. */ + esc_html__( '%1$s is a Pro Feature', 'wpforms-lite' ), + $name + ), + 'incompatible' => esc_html__( 'Incompatible Addon', 'wpforms-lite' ), + ]; + + $contents = [ + 'upgrade' => sprintf( /* translators: %1$s - Field name. */ + esc_html__( 'Upgrade to gain access to the %1$s field and dozens of other powerful features to help you build smarter forms and grow your business.', 'wpforms-lite' ), + $name + ), + 'install' => sprintf( /* translators: %1$s - Addon name. */ + esc_html__( 'You have access to the %1$s, but it\'s not currently installed.', 'wpforms-lite' ), + $addon_name + ), + 'activate' => sprintf( /* translators: %1$s - Addon name. */ + esc_html__( 'You have access to the %1$s, but it\'s not currently activated.', 'wpforms-lite' ), + $addon_name + ), + 'incompatible' => sprintf( /* translators: %1$s - Addon name. */ + esc_html__( 'The %1$s is not compatible with this version of WPForms and requires an update.', 'wpforms-lite' ), + $addon_name + ), + ]; + + $button_labels = [ + 'upgrade' => esc_html__( 'Upgrade to Pro', 'wpforms-lite' ), + 'install' => esc_html__( 'Install Addon', 'wpforms-lite' ), + 'activate' => esc_html__( 'Activate Addon', 'wpforms-lite' ), + 'incompatible' => esc_html__( 'Update Addon', 'wpforms-lite' ), + ]; + + // If it's not an upgrade action, use the addon data. + if ( $action !== 'upgrade' ) { + $name = $addon_name; + $utm_name = $this->addon_edu_data['utm_content']; + } else { + $edu_fields = wpforms()->obj( 'education_fields' ); + $edu_field = $edu_fields ? $edu_fields->get_field( $this->type ) : null; + $utm_name = $edu_field['name_en'] ?? $this->type; // Fallback to the field type. + } + + $button_utm = sprintf( + 'AI Form - %1$s notice', + esc_html( $utm_name ) + ); + + return [ + $name, + $titles[ $action ] ?? $titles['upgrade'], + $contents[ $action ] ?? $contents['upgrade'], + $button_labels[ $action ] ?? $button_labels['upgrade'], + $button_utm, + ]; + } + + /** + * Determine if the field is disabled. + * + * @since 1.9.4 + */ + private function is_disabled_field(): bool { + + // It is a Pro field in Lite OR the addon is not initialized. + return ! ( $this->is_pro && ( empty( $this->addon_slug ) || $this->is_addon_initialized ) ); + } + + /** + * Get a preview option. + * + * @since 1.9.4 + * + * @param string $option Option name. + * @param array $field Field data. + * @param array $args Additional arguments. + * @param bool $do_echo Echo or return. + * + * @noinspection ReturnTypeCanBeDeclaredInspection + * @noinspection PhpMultipleClassDeclarationsInspection + */ + public function field_preview_option( $option, $field, $args = [], $do_echo = true ) { + + // Hide remaining elements, prevent incompatible addon field elements from being displayed. + if ( $option === 'hide-remaining' && ! empty( $this->is_disabled_field ) ) { + echo '
              '; + + return; + } + + parent::field_preview_option( $option, $field, $args, $do_echo ); + } + + /** + * Get the Pro field preview badge. + * + * @since 1.9.4 + */ + private function get_field_preview_badge(): string { + + if ( empty( $this->is_disabled_field ) ) { + return ''; + } + + $action = $this->addon_edu_data['action'] ?? ''; + + if ( $action === 'incompatible' ) { + return Helpers::get_badge( esc_html__( 'Update required', 'wpforms-lite' ) , 'lg', 'inline', 'red' ); + } + + // If it's an addon field in Pro AND the addon is not initialized, show the ADDON badge. + if ( in_array( $action, [ 'install' ,'activate' ], true ) ) { + return Helpers::get_badge( 'Addon', 'lg', 'inline', 'orange' ); + } + + return Helpers::get_badge( 'Pro', 'lg', 'inline', 'green' ); + } + + /** + * Get the addon educational data of the field. + * + * @since 1.9.4 + * + * @return array + */ + private function get_field_addon_edu_data(): array { + + if ( empty( $this->addon_slug ) || ! empty( $this->is_addon_initialized ) || ! is_admin() ) { + return []; + } + + $addons = Helpers::get_edu_addons(); + + return $addons[ 'wpforms-' . $this->addon_slug ] ?? []; + } + + /** + * Filter frontend field data to prevent rendering Pro fields in Lite. + * + * @since 1.9.4 + * + * @param array|mixed $field Field data. + * @param array $form_data Form data. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function filter_frontend_field_data( $field, $form_data ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $field = (array) $field; + $type = $field['type'] ?? ''; + + // If it's not a Pro field or the field type doesn't match, return the field data as is. + if ( empty( $this->is_pro_field ) || $type !== $this->type ) { + return $field; + } + + // If it's a Pro field in Lite OR the addon is not initialized, + // return an empty array to prevent rendering. + if ( ! empty( $this->is_disabled_field ) ) { + return []; + } + + return $field; + } + + /** + * Disallow field preview "Duplicate" button. + * + * @since 1.9.4 + * + * @param bool|mixed $display Display switch. + * @param array $field Field settings. + * + * @return bool + * @noinspection PhpMissingParamTypeInspection + */ + public function filter_field_preview_display_duplicate_button( $display, $field ): bool { + + if ( $field['type'] !== $this->type || empty( $this->is_disabled_field ) ) { + return (bool) $display; + } + + return false; + } + + /** + * Add a class to the field preview container. + * + * @since 1.9.4 + * + * @param string|mixed $css_class CSS class. + * @param array $field Field settings. + * + * @return string + * @noinspection PhpMissingParamTypeInspection + */ + public function filter_field_preview_class( $css_class, $field ): string { + + $css_class = (string) $css_class; + + if ( $field['type'] !== $this->type || empty( $this->is_disabled_field ) ) { + return $css_class; + } + + return trim( $css_class . ' wpforms-field-is-pro' ); + } + + /** + * Filter entry save data. + * + * @since 1.9.5 + * + * @param array|mixed $fields Entry fields data. + * @param array $entry Entry data. + * @param array $form_data Form data. + * + * @return array + * @noinspection PhpUnusedParameterInspection + */ + public function filter_entry_save_data( $fields, array $entry, array $form_data ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $fields = (array) $fields; + + // If it's not a disabled Pro field, return the fields as is. + if ( empty( $this->is_disabled_field ) ) { + return $fields; + } + + // Remove disabled Pro fields from the entry fields. + foreach ( $fields as $field_id => $field ) { + if ( isset( $field['type'] ) && $field['type'] === $this->type ) { + unset( $fields[ $field_id ] ); + } + } + + return $fields; + } + + /** + * Filter forbidden columns on the Form Entries page. + * + * @since 1.9.5 + * + * @param array|mixed $forbidden_fields Entry fields data. + * @param int|string $form_id Form ID. + * + * @return array + * @noinspection PhpUnusedParameterInspection + * @noinspection PhpUnusedLocalVariableInspection + */ + public function filter_field_columns_forbidden_fields( $forbidden_fields, $form_id ): array { + + $forbidden_fields = (array) $forbidden_fields; + + if ( empty( $this->is_disabled_field ) ) { + return $forbidden_fields; + } + + $form_data = $this->get_form_data( (int) $form_id ); + + if ( ! $form_data ) { + return $forbidden_fields; + } + + $fields = $form_data['fields'] ?? []; + + foreach ( $fields as $field_id => $field ) { + if ( isset( $field['type'] ) && $field['type'] === $this->type ) { + $forbidden_fields[] = $field['type']; + } + } + + return $forbidden_fields; + } + + /** + * Get form data by form ID and cache it. + * + * @since 1.9.5 + * + * @param int $form_id Form ID. + * + * @return array + */ + private function get_form_data( int $form_id ): array { + + $form_obj = wpforms()->obj( 'form' ); + + if ( ! $form_obj ) { + return []; + } + + // Cache the form data into static variable. + static $cached_form_data = []; + + if ( isset( $cached_form_data[ $form_id ] ) ) { + return $cached_form_data[ $form_id ]; + } + + $cached_form_data[ $form_id ] = (array) $form_obj->get( $form_id, [ 'content_only' => true ] ); + + return $cached_form_data[ $form_id ]; + } + + /** + * Filter entries export configuration. + * + * @since 1.9.5 + * + * @param array $config Export configuration. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + */ + public function filter_entries_export_configuration( $config ): array { + + $config = (array) $config; + + // If it's not a disabled Pro field, return the config as is. + if ( empty( $this->is_disabled_field ) ) { + return $config; + } + + if ( empty( $this->type ) ) { + return $config; + } + + $config['disallowed_fields'] = ! empty( $config['disallowed_fields'] ) ? (array) $config['disallowed_fields'] : []; + + // Add the disabled Pro field type to `disallowed_fields` if not already there. + if ( ! in_array( $this->type, $config['disallowed_fields'], true ) ) { + $config['disallowed_fields'][] = $this->type; + } + + return $config; + } + + /** + * Filter if field is displayable in the Entry Edit page. + * + * @since 1.9.5 + * + * @param bool|mixed $displayable Whether the field is displayable. + * @param array $field Field data. + * @param array $form_data Form data. + * + * @return bool + * @noinspection PhpUnusedParameterInspection + */ + public function filter_is_field_displayable( $displayable, array $field, array $form_data ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + if ( ! $this->is_disabled_field ) { + return (bool) $displayable; + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ReadOnlyField.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ReadOnlyField.php new file mode 100644 index 0000000..9acd12a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Traits/ReadOnlyField.php @@ -0,0 +1,148 @@ +type}", [ $this, 'read_only_save_form_field' ], 100, 3 ); + add_filter( 'wpforms_frontend_strings', [ $this, 'read_only_frontend_strings' ] ); + } + + /** + * Display the Read-Only toggle on the Advanced Options tab. + * + * @since 1.9.8 + * + * @param array $field Field data. + * + * @return void + */ + public function field_option_read_only_toggle( array $field ): void { + + if ( $field['type'] !== $this->type || ! $this->allow_read_only ) { + return; + } + + $value = $field['read_only'] ?? '0'; + $tooltip = esc_html__( 'Check this option to show the field’s value without allowing changes. It will still be submitted.', 'wpforms-lite' ); + + $output = $this->field_element( + 'toggle', + $field, + [ + 'slug' => 'read_only', + 'value' => $value, + 'desc' => esc_html__( 'Read-Only', 'wpforms-lite' ), + 'tooltip' => $tooltip, + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'read_only', + 'content' => $output, + ] + ); + } + + /** + * Add a Read-Only field CSS class. + * + * @since 1.9.8 + * + * @param array|mixed $properties Field properties. + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @return array + * @noinspection PhpUnusedParameterInspection + */ + public function read_only_field_properties( $properties, array $field, array $form_data ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $properties = (array) $properties; + + if ( $field['type'] !== $this->type || ! $this->allow_read_only || empty( $field['read_only'] ) ) { + return $properties; + } + + $properties['container']['class'][] = 'wpforms-field-readonly'; + + return $properties; + } + + /** + * Filter field data before saving the form. + * + * @since 1.9.8 + * + * @param array $field_data Field data. + * @param array $form_data Forms data. + * @param array $saved_form_data Saved form data. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function read_only_save_form_field( $field_data, array $form_data, array $saved_form_data ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $field_data = (array) $field_data; + + // Unset the `required` field option if the field is Read-Only. + if ( ! empty( $field_data['read_only'] ) ) { + unset( $field_data['required'] ); + } + + return $field_data; + } + + /** + * Add read-only related strings to the frontend. + * + * @since 1.9.8 + * + * @param array|mixed $strings Frontend strings. + * + * @return array Frontend strings. + */ + public function read_only_frontend_strings( $strings ): array { + + $strings = (array) $strings; + $strings['readOnlyDisallowedFields'] = $strings['readOnlyDisallowedFields'] ?? []; + + if ( $this->allow_read_only ) { + return $strings; + } + + $strings['readOnlyDisallowedFields'][] = $this->type; + + return $strings; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Fields/Url/Field.php b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Url/Field.php new file mode 100644 index 0000000..d892ed8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Fields/Url/Field.php @@ -0,0 +1,157 @@ +name = esc_html__( 'Website / URL', 'wpforms-lite' ); + $this->keywords = esc_html__( 'uri, link, hyperlink', 'wpforms-lite' ); + $this->type = 'url'; + $this->icon = 'fa-link'; + $this->order = 90; + $this->group = 'fancy'; + + $this->init_pro_field(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.4 + */ + protected function hooks() { + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_options( $field ) { + + /** + * Basic field options. + */ + + // Options open markup. + $this->field_option( + 'basic-options', + $field, + [ + 'markup' => 'open', + 'after_title' => $this->get_field_options_notice(), + ] + ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Placeholder. + $this->field_option( 'placeholder', $field ); + + // Default value. + $this->field_option( 'default_value', $field ); + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide label. + $this->field_option( 'label_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.4 + * + * @param array $field Field data. + */ + public function field_preview( $field ) { + + // Define data. + $placeholder = ! empty( $field['placeholder'] ) ? $field['placeholder'] : ''; + $default_value = ! empty( $field['default_value'] ) ? $field['default_value'] : ''; + + // Label. + $this->field_preview_option( + 'label', + $field, + [ + 'label_badge' => $this->get_field_preview_badge(), + ] + ); + + // Primary input. + echo ''; + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.4 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Honeypot.php b/wp-content/plugins/wpforms-lite/src/Forms/Honeypot.php new file mode 100644 index 0000000..81da337 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Honeypot.php @@ -0,0 +1,84 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.6.2 + */ + public function hooks() { + + add_action( 'wpforms_frontend_output', [ $this, 'render' ], 15, 5 ); + } + + /** + * Return function to render the honeypot. + * + * @since 1.6.2 + * + * @param array $form_data Form data and settings. + */ + public function render( $form_data ) { + + if ( + empty( $form_data['settings']['honeypot'] ) || + '1' !== $form_data['settings']['honeypot'] + ) { + return; + } + + $names = [ 'Name', 'Phone', 'Comment', 'Message', 'Email', 'Website' ]; + + echo '
              '; + + echo ''; // phpcs:ignore + + echo ''; // phpcs:ignore + + echo '
              '; + } + + /** + * Validate honeypot. + * + * @since 1.6.2 + * + * @param array $form_data Form data. + * @param array $fields Fields. + * @param array $entry Form entry. + * + * @return bool|string False or an string with the error. + */ + public function validate( array $form_data, array $fields, array $entry ) { + + $honeypot = false; + + if ( + ! empty( $form_data['settings']['honeypot'] ) && + '1' === $form_data['settings']['honeypot'] && + ! empty( $entry['hp'] ) + ) { + $honeypot = esc_html__( 'WPForms honeypot field triggered.', 'wpforms-lite' ); + } + + return apply_filters( 'wpforms_process_honeypot', $honeypot, $fields, $entry, $form_data ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/IconChoices.php b/wp-content/plugins/wpforms-lite/src/Forms/IconChoices.php new file mode 100644 index 0000000..11c4d3a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/IconChoices.php @@ -0,0 +1,624 @@ + '#0399ed', + 'modern' => '#066aab', + ]; + + /** + * How many icons to display initially and paginate in the Icon Picker. + * + * @since 1.7.9 + * + * @var int + */ + const DEFAULT_ICONS_PER_PAGE = 50; + + /** + * Absolute path to the cache directory. + * + * @since 1.7.9 + * + * @var string + */ + private $cache_base_path; + + /** + * Cache directory URL. + * + * @since 1.7.9 + * + * @var string + */ + private $cache_base_url; + + /** + * Absolute path to the icons data file. + * + * @since 1.7.9 + * + * @var string + */ + private $icons_data_file; + + /** + * Whether icon library is already installed. + * + * @since 1.7.9 + * + * @var bool + */ + private $is_installed; + + /** + * Default list of icon sizes. + * + * @since 1.7.9 + * + * @var array + */ + private $default_icon_sizes; + + /** + * Initialize class. + * + * @since 1.7.9 + */ + public function init() { + + $upload_dir = wpforms_upload_dir(); + + $this->cache_base_url = $upload_dir['url'] . '/icon-choices'; + $this->cache_base_path = $upload_dir['path'] . '/icon-choices'; + $this->icons_data_file = $this->cache_base_path . '/icons.json'; + + $this->default_icon_sizes = [ + 'large' => [ + 'label' => __( 'Large', 'wpforms-lite' ), + 'size' => 64, + ], + 'medium' => [ + 'label' => __( 'Medium', 'wpforms-lite' ), + 'size' => 48, + ], + 'small' => [ + 'label' => __( 'Small', 'wpforms-lite' ), + 'size' => 32, + ], + ]; + + $this->hooks(); + } + + /** + * Hook into WordPress lifecycle. + * + * @since 1.7.9 + */ + private function hooks() { + + // Add inline CSS with custom properties on the frontend. + add_action( 'wpforms_frontend_css', [ $this, 'css_custom_properties' ] ); + + // Add inline CSS with custom properties in the form builder. + if ( wpforms_is_admin_page( 'builder' ) ) { + add_action( 'admin_head', [ $this, 'css_custom_properties' ] ); + } + + // Load Font Awesome assets. + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + + // Send data to the frontend. + add_filter( 'wpforms_builder_strings', [ $this, 'get_strings' ], 10, 2 ); + + // Download and extract Font Awesome package. + add_action( 'wp_ajax_wpforms_icon_choices_install', [ $this, 'install' ] ); + } + + /** + * Get Font Awesome library data file. + * + * @since 1.8.3 + * + * @return string + */ + public function get_icons_data_file() { + + return $this->icons_data_file; + } + + /** + * Whether Font Awesome library is already installed or not. + * + * @since 1.7.9 + * + * @return bool + */ + private function is_installed() { + + if ( $this->is_installed !== null ) { + return $this->is_installed; + } + + $this->is_installed = file_exists( $this->icons_data_file ); + + return $this->is_installed; + } + + /** + * Whether Icon Choices mode is active on any of the fields in current form. + * + * @since 1.7.9 + * + * @return bool + */ + private function is_active() { + + $form_data = WPForms_Builder::instance()->form_data; + + return wpforms_has_field_setting( 'choices_icons', $form_data, false ); + } + + /** + * Install Font Awesome library via Ajax. + * + * @since 1.7.9 + */ + public function install() { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error(); + } + + $this->run_install( $this->cache_base_path ); + $this->is_installed = true; + + wp_send_json_success(); + } + + /** + * Run Install Font Awesome library from our server. + * + * @since 1.8.3 + * + * @param string $destination Destination path. + */ + public function run_install( $destination ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // WordPress assumes it's a plugin/theme and tries to get translations. We don't need that, and it breaks JS output. + remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 ); + + if ( ! function_exists( 'request_filesystem_credentials' ) ) { + require_once ABSPATH . 'wp-admin/includes/file.php'; + } + + // Create the Upgrader with our custom skin that reports errors as WP JSON. + $installer = new PluginSilentUpgrader( new WP_Ajax_Upgrader_Skin() ); + + // The installer skin reports any errors via wp_send_json_error() with generic error messages. + $installer->init(); + $installer->run( + [ + 'package' => self::FONT_AWESOME_URL, + 'destination' => $destination, + ] + ); + } + + /** + * Load all necessary Font Awesome assets. + * + * @since 1.7.9 + * + * @param string $view Current Form Builder view (panel). + */ + public function enqueues( $view ) { + + if ( ! $this->is_installed() ) { + return; + } + + wp_enqueue_style( + 'wpforms-icon-choices-font-awesome', + $this->cache_base_url . '/css/fontawesome.min.css', + [], + self::FONT_AWESOME_VERSION + ); + + wp_enqueue_style( + 'wpforms-icon-choices-font-awesome-brands', + $this->cache_base_url . '/css/brands.min.css', + [], + self::FONT_AWESOME_VERSION + ); + + wp_enqueue_style( + 'wpforms-icon-choices-font-awesome-regular', + $this->cache_base_url . '/css/regular.min.css', + [], + self::FONT_AWESOME_VERSION + ); + + wp_enqueue_style( + 'wpforms-icon-choices-font-awesome-solid', + $this->cache_base_url . '/css/solid.min.css', + [], + self::FONT_AWESOME_VERSION + ); + } + + /** + * Define additional field properties specific to Icon Choices feature. + * + * @since 1.7.9 + * + * @see WPForms_Field_Checkbox::field_properties() + * @see WPForms_Field_Radio::field_properties() + * @see WPForms_Field_Payment_Checkbox::field_properties() + * @see WPForms_Field_Payment_Multiple::field_properties() + * + * @param array $properties Field properties. + * @param array $field Field settings. + * + * @return array + */ + public function field_properties( $properties, $field ) { + + $properties['input_container']['class'][] = 'wpforms-icon-choices'; + $properties['input_container']['class'][] = sanitize_html_class( 'wpforms-icon-choices-' . $field['choices_icons_style'] ); + $properties['input_container']['class'][] = sanitize_html_class( 'wpforms-icon-choices-' . $field['choices_icons_size'] ); + + $icon_color = isset( $field['choices_icons_color'] ) ? wpforms_sanitize_hex_color( $field['choices_icons_color'] ) : ''; + $icon_color = empty( $icon_color ) ? self::get_default_color() : $icon_color; + + $properties['input_container']['attr']['style'] = "--wpforms-icon-choices-color: {$icon_color};"; + + foreach ( $properties['inputs'] as $key => $inputs ) { + $properties['inputs'][ $key ]['container']['class'][] = 'wpforms-icon-choices-item'; + + if ( in_array( $field['choices_icons_style'], [ 'default', 'modern', 'classic' ], true ) ) { + $properties['inputs'][ $key ]['class'][] = 'wpforms-screen-reader-element'; + } + } + + return $properties; + } + + /** + * Display a single choice on the form front-end. + * + * @since 1.7.9 + * + * @see WPForms_Field_Checkbox::field_display() + * @see WPForms_Field_Radio::field_display() + * @see WPForms_Field_Payment_Checkbox::field_display() + * @see WPForms_Field_Payment_Multiple::field_display() + * + * @param array $field Field settings. + * @param array $choice Single choice item settings. + * @param string $type Field input type. + * @param string|null $label Custom label, used by Payment fields. + */ + public function field_display( $field, $choice, $type, $label = null ) { + + // Only Payment fields supply a custom label. + if ( ! $label ) { + $label = $choice['label']['text']; + } + + if ( is_array( $choice['label']['class'] ) && wpforms_is_empty_string( $label ) ) { + $choice['label']['class'][] = 'wpforms-field-label-inline-empty'; + } + + printf( + '', + wpforms_html_attributes( $choice['label']['id'], $choice['label']['class'], $choice['label']['data'], $choice['label']['attr'] ), + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $this->get_icon( $choice['icon'], $choice['icon_style'], $field['choices_icons_size'] ), + esc_attr( $type ), + wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ), + esc_attr( $choice['required'] ), + checked( '1', $choice['default'], false ), + wp_kses_post( $label ) + ); + } + + /** + * Output inline CSS custom properties (vars). + * + * @since 1.7.9 + * + * @param null|array $forms Frontend forms, if available. + * + * @return void + */ + public function css_custom_properties( $forms = null ) { + + $hook = current_action(); + + // On the frontend, we need these properties only if Icon Choices is in use. + if ( $hook === 'wpforms_frontend_css' && ! wpforms_has_field_setting( 'choices_icons', $forms, true ) ) { + return; + } + + $selectors = [ + 'wpforms_frontend_css' => '.wpforms-container', + 'admin_head' => '#wpforms-builder, .wpforms-icon-picker-container', + ]; + + /** + * Add CSS custom properties. + * + * @since 1.7.9 + * + * @param array $properties CSS custom properties using CSS syntax. + */ + $custom_properties = (array) apply_filters( 'wpforms_forms_icon_choices_css_custom_properties', [] ); + + $icon_sizes = $this->get_icon_sizes(); + + foreach ( $icon_sizes as $slug => $data ) { + $custom_properties[ "wpforms-icon-choices-size-{$slug}" ] = $data['size'] . 'px'; + } + + $custom_properties_css = ''; + + foreach ( $custom_properties as $property => $value ) { + $custom_properties_css .= "--{$property}: {$value};"; + } + + printf( + '', + esc_attr( $selectors[ $hook ] ), + esc_html( $custom_properties_css ) + ); + } + + /** + * Get available icon sizes. + * + * @since 1.7.9 + * + * @return array A list of all icon sizes. + */ + public function get_icon_sizes() { + + /** + * Allow modifying the icon sizes. + * + * @since 1.7.9 + * + * @param array $icon_sizes { + * Default icon sizes. + * + * @type string $key The icon slug. + * @type array $value { + * Individual icon size data. + * + * @type string $label Translatable label. + * @type int $size The size value. + * } + * } + * @param array $default_icon_sizes Default icon sizes for reference. + */ + $sizes = (array) apply_filters( 'wpforms_forms_icon_choices_get_icon_sizes', [], $this->default_icon_sizes ); + + return array_merge( $this->default_icon_sizes, $sizes ); + } + + /** + * Read icons metadata from disk. + * + * @since 1.7.9 + * + * @param array $strings Strings and values sent to the frontend. + * @param array $form Current form. + * + * @return array + */ + public function get_strings( $strings, $form ) { + + $strings['continue'] = esc_html__( 'Continue', 'wpforms-lite' ); + $strings['done'] = esc_html__( 'Done!', 'wpforms-lite' ); + $strings['uh_oh'] = esc_html__( 'Uh oh!', 'wpforms-lite' ); + + $strings['icon_choices'] = [ + 'is_installed' => false, + 'is_active' => $this->is_active(), + 'default_icon' => self::DEFAULT_ICON, + 'default_icon_style' => self::DEFAULT_ICON_STYLE, + 'default_color' => self::get_default_color(), + 'icons' => [], + 'icons_per_page' => self::DEFAULT_ICONS_PER_PAGE, + 'strings' => [ + 'install_prompt_content' => esc_html__( 'In order to use the Icon Choices feature, an icon library must be downloaded and installed. It\'s quick and easy, and you\'ll only have to do this once.', 'wpforms-lite' ), + 'install_title' => esc_html__( 'Installing Icon Library', 'wpforms-lite' ), + 'install_content' => esc_html__( 'This should only take a minute. Please don’t close or reload your browser window.', 'wpforms-lite' ), + 'install_success_content' => esc_html__( 'The icon library has been installed successfully. We will now save your form and reload the form builder.', 'wpforms-lite' ), + 'install_error_content' => wp_kses( + sprintf( /* translators: %s - WPForms Support URL. */ + __( 'There was an error installing the icon library. Please try again later or contact support if the issue persists.', 'wpforms-lite' ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/account/support/', + 'builder-modal', + 'Icon Library Install Failure' + ) + ) + ), + [ + 'a' => [ + 'href' => true, + 'target' => true, + 'rel' => true, + ], + ] + ), + 'reinstall_prompt_content' => esc_html__( 'The icon library appears to be missing or damaged. It will now be reinstalled.', 'wpforms-lite' ), + 'icon_picker_title' => esc_html__( 'Icon Picker', 'wpforms-lite' ), + 'icon_picker_description' => esc_html__( 'Browse or search for the perfect icon.', 'wpforms-lite' ), + 'icon_picker_search_placeholder' => esc_html__( 'Search 2000+ icons...', 'wpforms-lite' ), + 'icon_picker_not_found' => esc_html__( 'Sorry, we didn\'t find any matching icons.', 'wpforms-lite' ), + ], + ]; + + if ( ! $this->is_installed() ) { + return $strings; + } + + $strings['icon_choices']['is_installed'] = true; + $strings['icon_choices']['icons'] = $this->get_icons(); + + return $strings; + } + + /** + * Get an SVG icon code from a file for inline output in HTML. + * + * Note: the output does not need to escape. + * + * @since 1.7.9 + * + * @param string $icon Font Awesome icon name. + * @param string $style Font Awesome style (solid, brands). + * @param string|int $size Icon display size. + * + * @return string + */ + private function get_icon( string $icon, string $style, $size ): string { + + // Sanitize inputs. + $icon = sanitize_key( $icon ); + $style = sanitize_key( $style ); + $size = sanitize_key( (string) $size ); + + $icon_sizes = $this->get_icon_sizes(); + $filename = wp_normalize_path( (string) realpath( "{$this->cache_base_path}/svgs/{$style}/{$icon}.svg" ) ); + $allowed_dir = wp_normalize_path( (string) realpath( $this->cache_base_path . '/svgs' ) ); + + // Verify the file is within the allowed directory. + if ( strpos( $filename, $allowed_dir ) !== 0 ) { + return ''; + } + + if ( ! is_file( $filename ) || ! is_readable( $filename ) ) { + return ''; + } + + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents + $svg = (string) file_get_contents( $filename ); + + if ( strpos( $svg, 'home_url = home_url(); + $this->scan_status = (string) get_option( FormsLocatorScanTask::SCAN_STATUS ); + + $this->wpforms_widget_title = __( 'WPForms Widget', 'wpforms-lite' ); + $this->text_widget_title = __( 'Text Widget', 'wpforms-lite' ); + $this->block_widget_title = __( 'Block Widget', 'wpforms-lite' ); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + // View hooks. + add_filter( 'wpforms_admin_forms_table_facades_columns_data', [ $this, 'add_column_data' ] ); + add_filter( 'wpforms_overview_table_column_value', [ $this, 'column_value' ], 10, 3 ); + add_filter( 'wpforms_overview_row_actions', [ $this, 'row_actions_all' ], 10, 2 ); + add_action( 'wpforms_overview_enqueue', [ $this, 'localize_overview_script' ] ); + + // Monitoring hooks. + add_action( 'save_post', [ $this, 'save_post' ], 10, 3 ); + add_action( 'post_updated', [ $this, 'post_updated' ], 10, 3 ); + add_action( 'wp_trash_post', [ $this, 'trash_post' ] ); + add_action( 'untrash_post', [ $this, 'untrash_post' ] ); + add_action( 'delete_post', [ $this, 'trash_post' ] ); + add_action( 'permalink_structure_changed', [ $this, 'permalink_structure_changed' ], 10, 2 ); + + $wpforms_widget_option = self::WPFORMS_WIDGET_OPTION; + $text_widget_option = self::TEXT_WIDGET_OPTION; + $block_widget_option = self::BLOCK_WIDGET_OPTION; + + add_action( "update_option_{$wpforms_widget_option}" , [ $this, 'update_option' ], 10, 3 ); + add_action( "update_option_{$text_widget_option}" , [ $this, 'update_option' ], 10, 3 ); + add_action( "update_option_{$block_widget_option}", [ $this, 'update_option' ], 10, 3 ); + } + + /** + * Add locations' column to the table columns data. + * + * @since 1.8.6 + * + * @param array|mixed $columns Columns data. + * + * @return array + */ + public function add_column_data( $columns ): array { + + $columns = (array) $columns; + $columns[ self::COLUMN_NAME ] = [ + 'label' => esc_html__( 'Locations', 'wpforms-lite' ), + 'label_html' => sprintf( + '%1$s' . + '', + esc_html__( 'Locations', 'wpforms-lite' ), + esc_html__( 'Form locations', 'wpforms-lite' ) + ), + ]; + + return $columns; + } + + /** + * Display column value. + * + * @since 1.7.4 + * + * @param mixed $value Column value. + * @param WP_Post $form Form. + * @param string $column_name Column name. + * + * @return mixed + */ + public function column_value( $value, $form, $column_name ) { + + if ( $column_name !== self::COLUMN_NAME ) { + return $value; + } + + $form_locations = get_post_meta( $form->ID, self::LOCATIONS_META, true ); + + if ( $form_locations === '' ) { + $empty_values = [ + '' => '—', + FormsLocatorScanTask::SCAN_STATUS_IN_PROGRESS => '...', + FormsLocatorScanTask::SCAN_STATUS_COMPLETED => '0', + ]; + + return $empty_values[ $this->scan_status ]; + } + + $values = $this->get_location_rows( $form_locations ); + + if ( ! $values ) { + return '0'; + } + + $column_value = sprintf( + '%d', + esc_attr__( 'View form locations', 'wpforms-lite' ), + count( $values ) + ); + + $column_value .= '

              ' . implode( '', $values ) . '

              '; + + return $column_value; + } + + /** + * Row actions for view "All". + * + * @since 1.7.4 + * + * @param array $row_actions Row actions. + * @param WP_Post $form Form object. + * + * @return array + */ + public function row_actions_all( $row_actions, $form ) { + + $form_locations = get_post_meta( $form->ID, self::LOCATIONS_META, true ); + + if ( ! $form_locations ) { + return $row_actions; + } + + $locations = [ + 'locations' => sprintf( + '%s', + esc_attr__( 'View form locations', 'wpforms-lite' ), + esc_html__( 'Locations', 'wpforms-lite' ) + ), + ]; + + // Insert Locations action before the first available position in the positions' list or at the end of $row_actions. + $positions = [ + 'preview_', + 'duplicate', + 'trash', + ]; + + $keys = array_keys( $row_actions ); + + foreach ( $positions as $position ) { + $pos = array_search( $position, $keys, true ); + + if ( $pos !== false ) { + break; + } + } + + $pos = $pos === false ? count( $row_actions ) : $pos; + + return array_slice( $row_actions, 0, $pos ) + $locations + array_slice( $row_actions, $pos ); + } + + /** + * Localize the overview script to pass translation strings. + * + * @since 1.7.4 + */ + public function localize_overview_script() { + + wp_localize_script( + 'wpforms-admin-forms-overview', + 'wpforms_forms_locator', + [ + 'paneTitle' => __( 'Form Locations', 'wpforms-lite' ), + 'close' => __( 'Close', 'wpforms-lite' ), + ] + ); + } + + /** + * Get id of the sidebar where the widget is positioned. + * + * @since 1.7.4 + * + * @param string $widget_id Widget id. + * + * @return string + */ + private function get_widget_sidebar_id( $widget_id ) { + + $sidebars_widgets = wp_get_sidebars_widgets(); + + foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widgets ) { + foreach ( $sidebar_widgets as $sidebar_widget ) { + if ( $widget_id === $sidebar_widget ) { + return (string) $sidebar_id; + } + } + } + + return ''; + } + + /** + * Get the name of the sidebar where the widget is positioned. + * + * @since 1.7.4 + * + * @param string $widget_id Widget id. + * + * @return string + */ + private function get_widget_sidebar_name( $widget_id ) { + + $sidebar_id = $this->get_widget_sidebar_id( $widget_id ); + + if ( ! $sidebar_id ) { + return ''; + } + + $sidebar = $this->get_sidebar( $sidebar_id ); + + return isset( $sidebar['name'] ) ? (string) $sidebar['name'] : ''; + } + + /** + * Retrieves the registered sidebar with the given ID. + * + * @since 1.7.4 + * + * @global array $wp_registered_sidebars The registered sidebars. + * + * @param string $id The sidebar ID. + * + * @return array|null The discovered sidebar, or null if it is not registered. + */ + private function get_sidebar( $id ) { + + if ( function_exists( 'wp_get_sidebar' ) ) { + return wp_get_sidebar( $id ); + } + + global $wp_registered_sidebars; + + if ( ! $wp_registered_sidebars ) { + return null; + } + + foreach ( $wp_registered_sidebars as $sidebar ) { + if ( $sidebar['id'] === $id ) { + return $sidebar; + } + } + + if ( $id === 'wp_inactive_widgets' ) { + return [ + 'id' => 'wp_inactive_widgets', + 'name' => __( 'Inactive widgets', 'wpforms-lite' ), + ]; + } + + return null; + } + + /** + * Get post location title. + * + * @since 1.7.4 + * + * @param array $form_location Form location. + * + * @return string + */ + private function get_post_location_title( $form_location ) { + + $title = $form_location['title']; + + if ( $this->is_wp_template( $form_location['type'] ) ) { + return __( 'Site editor template', 'wpforms-lite' ) . ': ' . $title; + } + + return $title; + } + + /** + * Whether locations' type is WP Template. + * + * @since 1.7.4.1 + * + * @param string $location_type Location type. + * + * @return bool + */ + private function is_wp_template( $location_type ) { + + return in_array( $location_type, [ self::WP_TEMPLATE, self::WP_TEMPLATE_PART ], true ); + } + + /** + * Whether a location type is standalone. + * + * @since 1.8.7 + * + * @param string $location_type Location type. + * + * @return bool + */ + private function is_standalone( string $location_type ): bool { + + return in_array( $location_type, self::STANDALONE_LOCATION_TYPES, true ); + } + + /** + * Get location title. + * + * @since 1.7.4 + * + * @param array $form_location Form location. + * + * @return string + */ + private function get_location_title( $form_location ) { + + if ( $form_location['type'] !== self::WIDGET ) { + return $this->get_post_location_title( $form_location ); + } + + $sidebar_name = $this->get_widget_sidebar_name( $form_location['id'] ); + + if ( ! $sidebar_name ) { + // The widget is not found. + return ''; + } + + $title = $form_location['title']; + + if ( ! $title ) { + if ( strpos( $form_location['id'], self::WPFORMS_WIDGET_PREFIX ) === 0 ) { + $title = $this->wpforms_widget_title; + } + + if ( strpos( $form_location['id'], 'text-' ) === 0 ) { + $title = $this->text_widget_title; + } + } + + return $sidebar_name . ': ' . $title; + } + + /** + * Get location url. + * + * @since 1.7.4 + * + * @param array $form_location Form location. + * + * @return string + */ + private function get_location_url( $form_location ) { + + // Get widget or wp_template url. + if ( $form_location['type'] === self::WIDGET || $this->is_wp_template( $form_location['type'] ) ) { + return ''; + } + + // Get standalone url. + if ( $this->is_standalone( $form_location['type'] ) ) { + return $form_location['url']; + } + + // Get post url. + if ( ! $this->is_post_visible( $form_location ) ) { + return ''; + } + + return $form_location['url']; + } + + /** + * Get location edit url. + * + * @since 1.7.4 + * + * @param array $form_location Form location. + * + * @return string + */ + private function get_location_edit_url( array $form_location ): string { + + // Get widget url. + if ( $form_location['type'] === self::WIDGET ) { + return current_user_can( 'edit_theme_options' ) ? admin_url( 'widgets.php' ) : ''; + } + + // Get standalone url. + if ( $this->is_standalone( $form_location['type'] ) ) { + return add_query_arg( + [ + 'page' => 'wpforms-builder', + 'view' => 'settings', + 'form_id' => $form_location['form_id'], + ], + admin_url( 'admin.php' ) + ); + } + + // Get post url. + if ( ! $this->is_post_visible( $form_location ) ) { + return ''; + } + + if ( $this->is_wp_template( $form_location['type'] ) ) { + return add_query_arg( + [ + 'postType' => $form_location['type'], + 'postId' => get_stylesheet() . '//' . str_replace( '/', '', $form_location['url'] ), + ], + admin_url( 'site-editor.php' ) + ); + } + + return (string) get_edit_post_link( $form_location['id'], '' ); + } + + + /** + * Get location information to output as a row in the location pane. + * + * @since 1.7.4 + * + * @param array $form_location Form location. + * + * @return string + * @noinspection PhpTernaryExpressionCanBeReducedToShortVersionInspection + * @noinspection ElvisOperatorCanBeUsedInspection + */ + private function get_location_row( $form_location ) { + + $title = $this->get_location_title( $form_location ); + + $title = $title ? $title : __( '(no title)', 'wpforms-lite' ); + + $location_url = $this->get_location_url( $form_location ); + $location_link = ''; + + if ( $location_url ) { + $location_full_url = $this->home_url . $location_url; + + // phpcs:ignore Generic.Commenting.DocComment.MissingShort + /** @noinspection HtmlUnknownTarget */ + $location_link = sprintf( + ' %2$s ', + esc_url( $location_full_url ), + esc_url( $location_url ) + ); + } + + $location_edit_url = $this->get_location_edit_url( $form_location ); + $location_edit_url = $location_edit_url ? $location_edit_url : '#'; + + // phpcs:ignore Generic.Commenting.DocComment.MissingShort + /** @noinspection HtmlUnknownTarget */ + $location_edit_link = sprintf( + '%2$s', + esc_url( $location_edit_url ), + esc_html( $title ) + ); + + // Escaped above. + return sprintf( + '%s', + $location_edit_link . wp_kses_post( urldecode( $location_link ) ) + ); + } + + /** + * Get location information to output as rows in the location pane. + * + * @since 1.7.4 + * + * @param array $form_locations Form locations. + * + * @return array + */ + private function get_location_rows( $form_locations ) { + + $rows = []; + + foreach ( $form_locations as $form_location ) { + $rows[] = $this->get_location_row( $form_location ); + } + + $rows = array_unique( array_filter( $rows ) ); + + uasort( + $rows, + static function ( $a, $b ) { + $pattern = '/href=".+widgets.php">(.+?)post_type, $this->get_post_types(), true ) || + ! in_array( $post->post_status, $this->get_post_statuses(), true ) + ) { + return; + } + + $form_ids = $this->get_form_ids( $post->post_content ); + + $this->update_form_locations_metas( null, $post, [], $form_ids ); + } + + /** + * Update form location on post_updated action. + * + * @since 1.7.4 + * + * @param int $post_id Post id. + * @param WP_Post $post_after Post after the update. + * @param WP_Post $post_before Post before the update. + * + * @noinspection PhpUnusedParameterInspection + */ + public function post_updated( $post_id, $post_after, $post_before ) { + + if ( + ! in_array( $post_after->post_type, $this->get_post_types(), true ) || + ! in_array( $post_after->post_status, $this->get_post_statuses(), true ) + ) { + return; + } + + $form_ids_before = $this->get_form_ids( $post_before->post_content ); + $form_ids_after = $this->get_form_ids( $post_after->post_content ); + + $this->update_form_locations_metas( $post_before, $post_after, $form_ids_before, $form_ids_after ); + } + + /** + * Update form locations on trash_post action. + * + * @since 1.7.4 + * + * @param int $post_id Post id. + */ + public function trash_post( $post_id ) { + + $post = get_post( $post_id ); + $form_ids_before = $this->get_form_ids( $post->post_content ); + $form_ids_after = []; + + $this->update_form_locations_metas( null, $post, $form_ids_before, $form_ids_after ); + } + + /** + * Update form locations on untrash_post action. + * + * @since 1.7.4 + * + * @param int $post_id Post id. + */ + public function untrash_post( $post_id ) { + + $post = get_post( $post_id ); + $form_ids_before = []; + $form_ids_after = $this->get_form_ids( $post->post_content ); + + $this->update_form_locations_metas( null, $post, $form_ids_before, $form_ids_after ); + } + + /** + * Prepare widgets for further search. + * + * @since 1.7.4 + * + * @param array|null $widgets Widgets. + * @param string $type Widget type. + * + * @return array + */ + private function prepare_widgets( $widgets, $type ) { + + $params = [ + 'wpforms' => [ + 'option' => self::WPFORMS_WIDGET_OPTION, + 'content' => 'form_id', + ], + 'text' => [ + 'option' => self::TEXT_WIDGET_OPTION, + 'content' => 'text', + ], + 'block' => [ + 'option' => self::BLOCK_WIDGET_OPTION, + 'content' => 'content', + ], + ]; + + if ( ! array_key_exists( $type, $params ) ) { + return []; + } + + $option = $params[ $type ]['option']; + $content = $params[ $type ]['content']; + + $widgets = $widgets ?? (array) get_option( $option, [] ); + + return array_filter( + $widgets, + static function ( $widget ) use ( $content ) { + + return isset( $widget[ $content ] ); + } + ); + } + + /** + * Search forms in WPForms widgets. + * + * @since 1.7.4 + * + * @param array $widgets Widgets. + * + * @return array + */ + private function search_in_wpforms_widgets( $widgets = null ) { + + $widgets = $this->prepare_widgets( $widgets, 'wpforms' ); + + $locations = []; + + foreach ( $widgets as $id => $widget ) { + $locations[] = [ + 'type' => self::WIDGET, + 'title' => $widget['title'], + 'form_id' => $widget['form_id'], + 'id' => self::WPFORMS_WIDGET_PREFIX . $id, + ]; + } + + return $locations; + } + + /** + * Search forms in text widgets. + * + * @since 1.7.4 + * + * @param array $widgets Widgets. + * + * @return array + */ + private function search_in_text_widgets( $widgets = null ) { + + $widgets = $this->prepare_widgets( $widgets, 'text' ); + + $locations = []; + + foreach ( $widgets as $id => $widget ) { + $form_ids = $this->get_form_ids( $widget['text'] ); + + foreach ( $form_ids as $form_id ) { + $locations[] = [ + 'type' => self::WIDGET, + 'title' => $widget['title'], + 'form_id' => $form_id, + 'id' => self::TEXT_WIDGET_PREFIX . $id, + ]; + } + } + + return $locations; + } + + /** + * Search forms in block widgets. + * + * @since 1.7.4 + * + * @param array $widgets Widgets. + * + * @return array + */ + private function search_in_block_widgets( $widgets = null ) { + + $widgets = $this->prepare_widgets( $widgets, 'block' ); + + $locations = []; + + foreach ( $widgets as $id => $widget ) { + $form_ids = $this->get_form_ids( $widget['content'] ); + + foreach ( $form_ids as $form_id ) { + $locations[] = [ + 'type' => self::WIDGET, + 'title' => $this->block_widget_title, + 'form_id' => $form_id, + 'id' => self::BLOCK_WIDGET_PREFIX . $id, + ]; + } + } + + return $locations; + } + + /** + * Search forms in widgets. + * + * @since 1.7.4 + * + * @return array + */ + public function search_in_widgets() { + + return array_merge( + $this->search_in_wpforms_widgets(), + $this->search_in_text_widgets(), + $this->search_in_block_widgets() + ); + } + + /** + * Get the difference of two arrays containing locations. + * + * @since 1.7.4 + * + * @param array $locations1 Locations to subtract from. + * @param array $locations2 Locations to subtract. + * + * @return array + */ + private function array_udiff( $locations1, $locations2 ) { + + return array_udiff( + $locations1, + $locations2, + static function ( $a, $b ) { + + return ( $a === $b ) ? 0 : - 1; + } + ); + } + + /** + * Remove locations from metas. + * + * @since 1.7.4 + * + * @param array $locations_to_remove Locations to remove. + * + * @return void + */ + private function remove_locations( $locations_to_remove ) { + + foreach ( $locations_to_remove as $location_to_remove ) { + $locations = get_post_meta( $location_to_remove['form_id'], self::LOCATIONS_META, true ); + + if ( ! $locations ) { + continue; + } + + foreach ( $locations as $key => $location ) { + if ( $location['id'] === $location_to_remove['id'] ) { + unset( $locations[ $key ] ); + } + } + + update_post_meta( $location_to_remove['form_id'], self::LOCATIONS_META, $locations ); + } + } + + /** + * Add locations to metas. + * + * @since 1.7.4 + * + * @param array $locations_to_add Locations to add. + * + * @return void + */ + private function add_locations( $locations_to_add ) { + + foreach ( $locations_to_add as $location_to_add ) { + $locations = get_post_meta( $location_to_add['form_id'], self::LOCATIONS_META, true ); + + if ( ! $locations ) { + $locations = []; + } + + $locations[] = $location_to_add; + + update_post_meta( $location_to_add['form_id'], self::LOCATIONS_META, $locations ); + } + } + + /** + * Update form locations on widget update. + * + * @since 1.7.4 + * + * @param mixed $old_value The old option value. + * @param mixed $value The new option value. + * @param string $option Option name. + */ + public function update_option( $old_value, $value, $option ) { + + switch ( $option ) { + case self::WPFORMS_WIDGET_OPTION: + $old_locations = $this->search_in_wpforms_widgets( $old_value ); + $new_locations = $this->search_in_wpforms_widgets( $value ); + break; + + case self::TEXT_WIDGET_OPTION: + $old_locations = $this->search_in_text_widgets( $old_value ); + $new_locations = $this->search_in_text_widgets( $value ); + break; + + case self::BLOCK_WIDGET_OPTION: + $old_locations = $this->search_in_block_widgets( $old_value ); + $new_locations = $this->search_in_block_widgets( $value ); + break; + + default: + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.AddEmptyLineBeforeReturnStatement + return; + } + + $this->remove_locations( $this->array_udiff( $old_locations, $new_locations ) ); + $this->add_locations( $this->array_udiff( $new_locations, $old_locations ) ); + } + + /** + * Delete locations and schedule new rescan on change of permalink structure. + * + * @since 1.7.4 + * + * @param string $old_permalink_structure The previous permalink structure. + * @param string $permalink_structure The new permalink structure. + * + * @noinspection PhpUnusedParameterInspection + */ + public function permalink_structure_changed( $old_permalink_structure, $permalink_structure ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + /** + * Run Forms Locator delete action. + * + * @since 1.7.4 + */ + do_action( FormsLocatorScanTask::DELETE_ACTION ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound + + /** + * Run Forms Locator scan action. + * + * @since 1.7.4 + */ + do_action( FormsLocatorScanTask::RESCAN_ACTION ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName, WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound + } + + /** + * Update form locations metas. + * + * @since 1.7.4 + * @since 1.8.2.3 Added `$post_before` parameter. + * + * @param WP_Post|null $post_before The post before the update. + * @param WP_Post $post_after The post after the update. + * @param array $form_ids_before Form IDs before the update. + * @param array $form_ids_after Form IDs after the update. + */ + private function update_form_locations_metas( $post_before, $post_after, $form_ids_before, $form_ids_after ) { + + // Determine which locations to remove and which to add. + $form_ids_to_remove = array_diff( $form_ids_before, $form_ids_after ); + $form_ids_to_add = array_diff( $form_ids_after, $form_ids_before ); + + // Loop through each form ID to remove the locations' meta. + foreach ( $form_ids_to_remove as $form_id ) { + update_post_meta( + $form_id, + self::LOCATIONS_META, + $this->get_locations_without_current_post( $form_id, $post_after->ID ) + ); + } + + // Determine the titles and slugs. + $old_title = $post_before->post_title ?? ''; + $old_slug = $post_before->post_name ?? ''; + $new_title = $post_after->post_title; + $new_slug = $post_after->post_name; + + // If the title and slug are the same and there are no form IDs to add, bail. + if ( empty( $form_ids_to_add ) && $old_title === $new_title && $old_slug === $new_slug ) { + return; + } + + // Merge the form IDs and remove duplicates. + $form_ids = array_unique( array_merge( $form_ids_to_add, $form_ids_after ) ); + + $this->save_location_meta( $form_ids, $post_after->ID, $post_after ); + } + + /** + * Save the location meta. + * + * @since 1.8.2.3 + * + * @param array $form_ids Form IDs. + * @param int $post_id Post ID. + * @param WP_Post $post_after Post after the update. + */ + private function save_location_meta( $form_ids, $post_id, $post_after ) { + + // Build the URL. + $url = get_permalink( $post_id ); + $url = ( $url === false || is_wp_error( $url ) ) ? '' : $url; + $url = str_replace( $this->home_url, '', $url ); + + // Loop through each Form ID and save the location meta. + foreach ( $form_ids as $form_id ) { + + $locations = $this->get_locations_without_current_post( $form_id, $post_id ); + + $locations[] = [ + 'type' => $post_after->post_type, + 'title' => $post_after->post_title, + 'form_id' => $form_id, + 'id' => $post_id, + 'status' => $post_after->post_status, + 'url' => $url, + ]; + + update_post_meta( $form_id, self::LOCATIONS_META, $locations ); + } + } + + /** + * Get post types for search in. + * + * @since 1.7.4 + * + * @return string[] + */ + public function get_post_types() { + + $args = [ + 'public' => true, + 'publicly_queryable' => true, + ]; + $post_types = get_post_types( $args, 'names', 'or' ); + + unset( $post_types['attachment'] ); + + $post_types[] = self::WP_TEMPLATE; + $post_types[] = self::WP_TEMPLATE_PART; + + return $post_types; + } + + /** + * Get post statuses for search in. + * + * @since 1.7.4 + * + * @return string[] + */ + public function get_post_statuses() { + + return [ 'publish', 'pending', 'draft', 'future', 'private' ]; + } + + /** + * Get form ids from the content. + * + * @since 1.7.4 + * + * @param string $content Content. + * + * @return int[] + */ + public function get_form_ids( $content ) { + + $form_ids = []; + + if ( + preg_match_all( + /** + * Extract id from conventional wpforms shortcode or wpforms block. + * Examples: + * [wpforms id="32" title="true" description="true"] + * + * In both, we should find 32. + */ + '#\[\s*wpforms.+id\s*=\s*"(\d+?)".*]|#', + $content, + $matches + ) + ) { + array_shift( $matches ); + $form_ids = array_map( + 'intval', + array_unique( array_filter( array_merge( ...$matches ) ) ) + ); + } + + return $form_ids; + } + + /** + * Get form locations without a current post. + * + * @since 1.7.4 + * + * @param int $form_id Form id. + * @param int $post_id Post id. + * + * @return array + */ + private function get_locations_without_current_post( $form_id, $post_id ) { + + $locations = get_post_meta( $form_id, self::LOCATIONS_META, true ); + + if ( ! is_array( $locations ) ) { + $locations = []; + } + + return array_filter( + $locations, + static function ( $location ) use ( $post_id ) { + + return $location['id'] !== $post_id; + } + ); + } + + /** + * Determine whether a post is visible. + * + * @since 1.7.4 + * + * @param array $location Post location. + * + * @return bool + */ + private function is_post_visible( $location ) { + + $edit_cap = 'edit_post'; + $read_cap = 'read_post'; + $post_id = $location['id']; + + if ( ! get_post_type_object( $location['type'] ) ) { + // Post type is not registered. + return false; + } + + $post_status_obj = get_post_status_object( $location['status'] ); + + if ( ! $post_status_obj ) { + // Post status is not registered, assume it's not public. + return current_user_can( $edit_cap, $post_id ); + } + + if ( $post_status_obj->public ) { + return true; + } + + if ( ! is_user_logged_in() ) { + // User must be logged in to view unpublished posts. + return false; + } + + if ( $post_status_obj->protected ) { + // User must have edit permissions on the draft to preview. + return current_user_can( $edit_cap, $post_id ); + } + + if ( $post_status_obj->private ) { + return current_user_can( $read_cap, $post_id ); + } + + return false; + } + + /** + * Build a standalone location. + * + * @since 1.8.7 + * + * @param int $form_id The form ID. + * @param array $form_data Form data. + * @param string $status Form status. + * + * @return array Location. + */ + public function build_standalone_location( int $form_id, array $form_data, string $status = 'publish' ): array { + + if ( empty( $form_id ) || empty( $form_data ) ) { + return []; + } + + // Form templates should not have any locations. + if ( get_post_type( $form_id ) === 'wpforms-template' ) { + return []; + } + + foreach ( self::STANDALONE_LOCATION_TYPES as $location_type ) { + if ( empty( $form_data['settings'][ "{$location_type}_enable" ] ) ) { + continue; + } + + return $this->build_standalone_location_type( $location_type, $form_id, $form_data, $status ); + } + + return []; + } + + /** + * Build a standalone location. + * + * @since 1.8.8 + * + * @param string $location_type Standalone location type. + * @param int $form_id The form ID. + * @param array $form_data Form data. + * @param string $status Form status. + * + * @return array Location. + */ + private function build_standalone_location_type( string $location_type, int $form_id, array $form_data, string $status ): array { + + $title_key = "{$location_type}_title"; + $slug_key = "{$location_type}_page_slug"; + $title = $form_data['settings'][ $title_key ] ?? ''; + $slug = $form_data['settings'][ $slug_key ] ?? ''; + + // Return the location array. + return [ + 'type' => $location_type, + 'title' => $title, + 'form_id' => (int) $form_data['id'], + 'id' => $form_id, + 'status' => $status, + 'url' => '/' . $slug . '/', + ]; + } + + /** + * Add standalone form locations to post meta. + * + * Post meta is used to store all forms' locations, + * which is displayed on the WPForms Overview page. + * + * @since 1.8.7 + * + * @param int $form_id Form ID. + * @param array $data Form data. + */ + public function add_standalone_location_to_locations_meta( int $form_id, array $data ) { + + // Build standalone location. + $location = $this->build_standalone_location( $form_id, $data ); + + // No location? Bail. + if ( empty( $location ) ) { + return; + } + + // Setup data. + $new_location[] = $location; + $post_meta = get_post_meta( $form_id, self::LOCATIONS_META, true ); + + // If there is post meta, merge it with the new location. + if ( ! empty( $post_meta ) ) { + + // Remove any previously set standalone locations. + $post_meta = $this->remove_standalone_location_from_array( $form_id, $post_meta ); + + // Merge locations and remove duplicates. + $new_location = array_unique( array_merge( $post_meta, $new_location ), SORT_REGULAR ); + } + + // Update post meta. + update_post_meta( $form_id, self::LOCATIONS_META, $new_location ); + } + + /** + * Remove a form page from an array. + * + * @since 1.8.7 + * + * @param int $form_id The form ID. + * @param array $post_meta The post meta. + * + * @return array $post_meta Filtered post meta. + */ + private function remove_standalone_location_from_array( int $form_id, array $post_meta ): array { + + // No form ID or post meta? Bail. + if ( empty( $form_id ) || empty( $post_meta ) ) { + return []; + } + + // Loop over all locations. + foreach ( $post_meta as $key => $location ) { + + // Verify the location keys exist. + if ( ! isset( $location['form_id'], $location['type'] ) ) { + continue; + } + + // If the form ID and location type match. + if ( $location['form_id'] === $form_id && $this->is_standalone( $location['type'] ) ) { + + // Unset the form page location. + unset( $post_meta[ $key ] ); + } + } + + return $post_meta; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Preview.php b/wp-content/plugins/wpforms-lite/src/Forms/Preview.php new file mode 100644 index 0000000..526c783 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Preview.php @@ -0,0 +1,394 @@ +is_preview_page() ) { + return; + } + + $this->hooks(); + } + + /** + * Check if current page request meets requirements for form preview page. + * + * @since 1.5.1 + * + * @return bool + */ + public function is_preview_page(): bool { + + // Only proceed for the form preview page. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( empty( $_GET['wpforms_form_preview'] ) ) { + return false; + } + + // Only logged-in users can access the preview page. + if ( ! is_user_logged_in() ) { + return false; + } + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $form_id = absint( $_GET['wpforms_form_preview'] ); + + // Make sure the user is allowed to preview the form. + if ( ! wpforms_current_user_can( 'view_form_single', $form_id ) ) { + return false; + } + + // Fetch form details. + $this->form_data = wpforms()->obj( 'form' )->get( $form_id, [ 'content_only' => true ] ); + + // Get the post type for preview item. + $this->post_type = get_post_type( $form_id ); + + // Check if this is a form template. + $this->is_form_template = $this->post_type === 'wpforms-template'; + + // Check valid form was found. + if ( empty( $this->form_data ) || empty( $this->form_data['id'] ) ) { + return false; + } + + return true; + } + + /** + * Hooks. + * + * @since 1.5.1 + */ + public function hooks() { + + add_filter( 'wpforms_frontend_assets_header_force_load', '__return_true' ); + add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_assets' ] ); + add_action( 'pre_get_posts', [ $this, 'pre_get_posts' ] ); + add_filter( 'the_title', [ $this, 'the_title' ], 100, 1 ); + add_filter( 'the_content', [ $this, 'the_content' ], 999 ); + add_filter( 'get_the_excerpt', [ $this, 'the_content' ], 999 ); + add_filter( 'home_template_hierarchy', [ $this, 'force_page_template_hierarchy' ] ); + add_filter( 'frontpage_template_hierarchy', [ $this, 'force_page_template_hierarchy' ] ); + add_filter( 'wpforms_smarttags_process_page_title_value', [ $this, 'smart_tags_process_page_title_value' ], 10, 5 ); + add_filter( 'post_thumbnail_html', '__return_empty_string' ); + } + + /** + * Enqueue additional form preview styles. + * + * @since 1.8.8 + */ + public function enqueue_assets() { + + $min = wpforms_get_min_suffix(); + + // Enqueue the form preview styles. + wp_enqueue_style( + 'wpforms-preview', + WPFORMS_PLUGIN_URL . "assets/css/frontend/wpforms-form-preview{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Modify query, limit to one post. + * + * @since 1.5.1 + * @since 1.7.0 Added `page_id`, `post_type` and `post__in` query variables. + * + * @param \WP_Query $query The WP_Query instance. + */ + public function pre_get_posts( $query ) { + + if ( is_admin() || ! $query->is_main_query() ) { + return; + } + + $query->set( 'page_id', '' ); + $query->set( 'post_type', $this->post_type ?? 'wpforms' ); + $query->set( 'post__in', empty( $this->form_data['id'] ) ? [] : [ (int) $this->form_data['id'] ] ); + $query->set( 'posts_per_page', 1 ); + + // The preview page reads as the home page and as an non-singular posts page, neither of which are actually the case. + // So we hardcode the correct values for those properties in the query. + $query->is_home = false; + $query->is_singular = true; + $query->is_single = true; + } + + /** + * Customize form preview page title. + * + * @since 1.5.1 + * + * @param string $title Page title. + * + * @return string + */ + public function the_title( $title ) { + + if ( ! in_the_loop() ) { + return $title; + } + + if ( $this->is_form_template ) { + return sprintf( /* translators: %s - form name. */ + esc_html__( '%s Template Preview', 'wpforms-lite' ), + ! empty( $this->form_data['settings']['form_title'] ) ? sanitize_text_field( $this->form_data['settings']['form_title'] ) : esc_html__( 'Form Template', 'wpforms-lite' ) + ); + } + + return sprintf( /* translators: %s - form name. */ + esc_html__( '%s Preview', 'wpforms-lite' ), + ! empty( $this->form_data['settings']['form_title'] ) ? sanitize_text_field( $this->form_data['settings']['form_title'] ) : esc_html__( 'Form', 'wpforms-lite' ) + ); + } + + /** + * Customize form preview page content. + * + * @since 1.5.1 + * + * @return string + */ + public function the_content() { + + if ( ! isset( $this->form_data['id'] ) ) { + return ''; + } + + if ( ! wpforms_current_user_can( 'view_form_single', $this->form_data['id'] ) ) { + return ''; + } + + $admin_url = admin_url( 'admin.php' ); + + $links = []; + + if ( wpforms_current_user_can( 'edit_form_single', $this->form_data['id'] ) ) { + $links[] = [ + 'url' => esc_url( + add_query_arg( + [ + 'page' => 'wpforms-builder', + 'view' => 'fields', + 'form_id' => absint( $this->form_data['id'] ), + ], + $admin_url + ) + ), + 'text' => $this->is_form_template ? esc_html__( 'Edit Form Template', 'wpforms-lite' ) : esc_html__( 'Edit Form', 'wpforms-lite' ), + ]; + } + + if ( wpforms()->is_pro() && wpforms_current_user_can( 'view_entries_form_single', $this->form_data['id'] ) ) { + $links[] = [ + 'url' => esc_url( + add_query_arg( + [ + 'page' => 'wpforms-entries', + 'view' => 'list', + 'form_id' => absint( $this->form_data['id'] ), + ], + $admin_url + ) + ), + 'text' => esc_html__( 'View Entries', 'wpforms-lite' ), + ]; + } + + if ( + ! $this->is_form_template && + wpforms_current_user_can( wpforms_get_capability_manage_options(), $this->form_data['id'] ) && + wpforms()->obj( 'payment' )->get_by( 'form_id', $this->form_data['id'] ) + ) { + $links[] = [ + 'url' => esc_url( + add_query_arg( + [ + 'page' => 'wpforms-payments', + 'form_id' => absint( $this->form_data['id'] ), + ], + $admin_url + ) + ), + 'text' => esc_html__( 'View Payments', 'wpforms-lite' ), + ]; + } + + if ( ! empty( $_GET['new_window'] ) ) { // phpcs:ignore + $links[] = [ + 'url' => 'javascript:window.close();', + 'text' => esc_html__( 'Close this window', 'wpforms-lite' ), + ]; + } + + $content = ''; + + $content .= $this->add_preview_notice(); + + $content .= '

              '; + $content .= $this->is_form_template ? + esc_html__( 'This is a preview of the latest saved revision of your form template. If this preview does not match your template, save your changes and then refresh this page. This template preview is not publicly accessible.', 'wpforms-lite' ) : + esc_html__( 'This is a preview of the latest saved revision of your form. If this preview does not match your form, save your changes and then refresh this page. This form preview is not publicly accessible.', 'wpforms-lite' ); + + if ( ! empty( $links ) ) { + $content .= '
              '; + $content .= ''; + + foreach ( $links as $key => $link ) { + $content .= '' . $link['text'] . ''; + $l = array_keys( $links ); + + if ( end( $l ) !== $key ) { + $content .= ' | '; + } + } + + $content .= ''; + } + $content .= '

              '; + + $content .= '

              '; + $content .= sprintf( + wp_kses( + /* translators: %s - WPForms doc link. */ + __( 'For form testing tips, check out our complete guide!', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/how-to-properly-test-your-wordpress-forms-before-launching-checklist/', + $this->is_form_template ? 'Form Template Preview' : 'Form Preview', + 'Form Testing Tips Documentation' + ) + ) + ); + $content .= '

              '; + + $content .= do_shortcode( '[wpforms id="' . absint( $this->form_data['id'] ) . '"]' ); + + return $content; + } + + /** + * Add preview notice. + * + * @since 1.8.8 + * + * @return string HTML content. + */ + private function add_preview_notice(): string { + + if ( ! $this->is_form_template ) { + return ''; + } + + $content = '
              '; + $content .= sprintf( + '%s %s', + esc_html__( 'Heads up!', 'wpforms-lite' ), + esc_html__( 'You\'re viewing a preview of a form template.', 'wpforms-lite' ) + ); + + if ( wpforms()->is_pro() ) { + /** This filter is documented in wpforms/src/Pro/Tasks/Actions/PurgeTemplateEntryTask.php */ + $delay = (int) apply_filters( 'wpforms_pro_tasks_actions_purge_template_entry_task_delay', DAY_IN_SECONDS ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $message = sprintf( /* translators: %s - time period, e.g. 24 hours. */ + __( 'Entries are automatically deleted after %s.', 'wpforms-lite' ), + // The `- 1` hack is to avoid the "1 day" message in favor of "24 hours". + human_time_diff( time(), time() + $delay - 1 ) + ); + + $content .= sprintf( '

              %s

              ', esc_html( $message ) ); + } + + $content .= '
              '; + + return wp_kses_post( $content ); + } + + /** + * Force page template types. + * + * @since 1.7.2 + * + * @param array $templates A list of template candidates, in descending order of priority. + * + * @return array + */ + public function force_page_template_hierarchy( $templates ) { + + return [ 'page.php', 'single.php', 'index.php' ]; + } + + /** + * Adjust value of the {page_title} smart tag. + * + * @since 1.7.7 + * + * @param string $content Content. + * @param array $form_data Form data. + * @param array $fields List of fields. + * @param string $entry_id Entry ID. + * @param object $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered. + * + * @return string + */ + public function smart_tags_process_page_title_value( $content, $form_data, $fields, $entry_id, $smart_tag_object ) { + + return sprintf( /* translators: %s - form name. */ + esc_html__( '%s Preview', 'wpforms-lite' ), + ! empty( $form_data['settings']['form_title'] ) ? sanitize_text_field( $form_data['settings']['form_title'] ) : esc_html__( 'Form', 'wpforms-lite' ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Submission.php b/wp-content/plugins/wpforms-lite/src/Forms/Submission.php new file mode 100644 index 0000000..f4fdf89 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Submission.php @@ -0,0 +1,280 @@ +fields = $fields; + $this->entry = $entry; + $this->form_id = $form_id; + $this->form_data = $form_data; + $this->date = gmdate( 'Y-m-d H:i:s' ); + + return $this; + } + + /** + * Prepare the submission data. + * + * @since 1.7.4 + * + * @return array|void + */ + public function prepare_entry_data() { + + /** + * Provide the opportunity to disable entry saving. + * + * @since 1.0.0 + * + * @param bool $entry_save Entry save flag. Defaults to true. + * @param array $fields Fields data. + * @param array $entry Entry data. + * @param array $form_data Form data. + */ + if ( ! apply_filters( 'wpforms_entry_save', true, $this->fields, $this->entry, $this->form_data ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return; + } + + $submitted_fields = $this->get_fields(); + $user_info = $this->get_user_info( $submitted_fields ); + + /** + * Information about the entry, that is ready to be saved into the main entries table, + * which is used for displaying a list of entries and partially for search. + * + * @since 1.5.9 + * + * @param array $entry_data Information about the entry, that will be saved into the DB. + * @param array $form_data Form data. + */ + return (array) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_entry_save_args', + [ + 'form_id' => absint( $this->form_id ), + 'user_id' => absint( $user_info['user_id'] ), + 'fields' => wp_json_encode( $submitted_fields ), + 'ip_address' => sanitize_text_field( $user_info['user_ip'] ), + 'user_agent' => sanitize_text_field( $user_info['user_agent'] ), + 'date' => $this->date, + 'user_uuid' => sanitize_text_field( $user_info['user_uuid'] ), + ], + $this->form_data + ); + } + + /** + * Prepare the payment submission data. + * + * @since 1.8.2 + * + * @return array + */ + public function prepare_payment_data() { + + $submitted_fields = $this->get_fields(); + $total_amount = wpforms_get_total_payment( $submitted_fields ); + + /** + * Information about the payment, that is ready to be saved into the main payments table, + * which is used for displaying a list of payments and partially for search. + * + * @since 1.8.2 + * + * @param array $payment_data Information about the payment, that will be saved into the DB. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + */ + $payment_data = (array) apply_filters( + 'wpforms_forms_submission_prepare_payment_data', + [ + 'form_id' => absint( $this->form_id ), + 'subtotal_amount' => $total_amount, + 'total_amount' => $total_amount, + 'currency' => wpforms_get_currency(), + 'entry_id' => absint( $this->entry['entry_id'] ), + 'date_created_gmt' => $this->date, + 'date_updated_gmt' => $this->date, + ], + $submitted_fields, + $this->form_data + ); + + if ( empty( $payment_data['type'] ) ) { + $payment_data['type'] = ! empty( $payment_data['subscription_id'] ) ? 'subscription' : 'one-time'; + } + + return $payment_data; + } + + /** + * Prepare the payment meta data for each payment. + * + * @since 1.8.2 + * + * @return array + */ + public function prepare_payment_meta() { + + $submitted_fields = $this->get_fields(); + $user_info = $this->get_user_info( $submitted_fields ); + + /** + * Payment meta that is ready to be saved into the payments_meta table. + * + * @since 1.8.2 + * + * @param array $payment_meta Payment meta that will be saved into the DB. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + */ + return (array) apply_filters( + 'wpforms_forms_submission_prepare_payment_meta', + [ + 'fields' => ! $this->entry['entry_id'] ? wp_json_encode( $submitted_fields ) : '', + 'user_id' => absint( $user_info['user_id'] ), + 'user_agent' => sanitize_text_field( $user_info['user_agent'] ), + 'user_uuid' => sanitize_text_field( $user_info['user_uuid'] ), + 'ip_address' => sanitize_text_field( $user_info['user_ip'] ), + ], + $submitted_fields, + $this->form_data + ); + } + + /** + * Get entry fields. + * + * @since 1.8.2 + * + * @return array + */ + private function get_fields() { + + /** + * Filter the entry data before saving. + * + * @since 1.0.0 + * + * @param array $fields Fields data. + * @param array $entry Entry data. + * @param array $form_data Form data. + */ + return (array) apply_filters( 'wpforms_entry_save_data', $this->fields, $this->entry, $this->form_data ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Get user info. + * + * @since 1.8.2 + * + * @param array $fields Fields data. + * + * @return array + */ + private function get_user_info( $fields ) { + + $user_info = [ + 'user_ip' => '', + 'user_agent' => '', + 'user_id' => is_user_logged_in() ? get_current_user_id() : 0, + 'user_uuid' => wpforms_is_collecting_cookies_allowed() && ! empty( $_COOKIE['_wpfuuid'] ) ? sanitize_key( $_COOKIE['_wpfuuid'] ) : '', + ]; + + /** + * Allow developers disable saving user IP and User Agent within the entry. + * + * @since 1.5.1 + * + * @param bool $disable True if you need to disable storing IP and UA within the entry. Defaults to false. + * @param array $fields Fields data. + * @param array $form_data Form data. + */ + // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + $is_ip_disabled = apply_filters( 'wpforms_disable_entry_user_ip', '__return_false', $fields, $this->form_data ); + + // If GDPR enhancements are enabled and user details are disabled + // globally or in the form settings, discard the IP and UA. + if ( + ! $is_ip_disabled || + ! wpforms_is_collecting_ip_allowed( $this->form_data ) + ) { + return $user_info; + } + + $user_info['user_ip'] = wpforms_get_ip(); + + if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) { + return $user_info; + } + + $user_info['user_agent'] = substr( sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ), 0, 256 ); + + return $user_info; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Forms/Token.php b/wp-content/plugins/wpforms-lite/src/Forms/Token.php new file mode 100644 index 0000000..000314d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Forms/Token.php @@ -0,0 +1,381 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.6.2 + */ + public function hooks() { + + add_filter( 'wpforms_frontend_form_atts', [ $this, 'add_token_to_form_atts' ], 10, 2 ); + add_filter( 'wpforms_frontend_strings', [ $this, 'add_frontend_strings' ] ); + add_action( 'wp_ajax_nopriv_wpforms_get_token', [ $this, 'ajax_get_token' ] ); + add_action( 'wp_ajax_wpforms_get_token', [ $this, 'ajax_get_token' ] ); + } + + /** + * Return a valid token. + * + * @since 1.6.2 + * @since 1.7.1 Added the $form_data argument. + * + * @param mixed $current True to use current time, otherwise a timestamp string. + * @param array $form_data Form data and settings. + * + * @return string Token. + */ + public function get( $current = true, $form_data = [] ) { + + // If $current was not passed, or it is true, we use the current timestamp. + // If $current was passed in as a string, we'll use that passed in timestamp. + if ( $current !== true ) { + $time = $current; + } else { + $time = time(); + } + + // Format the timestamp to be less exact, as we want to deal in days. + // June 19th, 2020 would get formatted as: 1906202017125. + // Day of the month, month number, year, day number of the year, week number of the year. + $token_data = gmdate( 'dmYzW', $time ); + + if ( ! empty( $form_data['id'] ) ) { + $token_data .= "::{$form_data['id']}"; + } + + // Combine our token date and our token salt, and md5 it. + return md5( $token_data . \WPForms\Helpers\Crypto::get_secret_key() ); + } + + /** + * Generate the array of valid tokens to check for. These include two days + * before the current date to account for long cache times. + * + * These two filters are available if a user wants to extend the times. + * 'wpforms_form_token_check_before_today' + * 'wpforms_form_token_check_after_today' + * + * @since 1.6.2 + * @since 1.7.1 Added the $form_data argument. + * + * @param array $form_data Form data and settings. + * + * @return array Array of all valid tokens to check against. + */ + public function get_valid_tokens( $form_data = [] ) { + + $current_date = time(); + + $valid_token_times_before = []; + + $days_in_5_years = 5 * 365; + + // Create an array of 5 years worth of days. + for ( $i = 1; $i <= $days_in_5_years; $i++ ) { + $valid_token_times_before[] = $i * DAY_IN_SECONDS; + } + + // Create our array of times to check before today. A user with a longer + // cache time can extend this. A user with a shorter cache time can remove times. + $valid_token_times_before = apply_filters( + 'wpforms_form_token_check_before_today', + $valid_token_times_before + ); + + // Mostly to catch edge cases like the form page loading and submitting on two different days. + // This probably won't be filtered by users too much, but they could extend it. + $valid_token_times_after = apply_filters( + 'wpforms_form_token_check_after_today', + [ + ( 45 * MINUTE_IN_SECONDS ), // Add in 45 minutes past today to catch some midnight edge cases. + ] + ); + + // Built up our valid tokens. + $valid_tokens = []; + + // Add in all the previous times we check. + foreach ( $valid_token_times_before as $time ) { + $valid_tokens[] = $this->get( $current_date - $time, $form_data ); + } + + // Add in our current date. + $valid_tokens[] = $this->get( $current_date, $form_data ); + + // Add in the times after our check. + foreach ( $valid_token_times_after as $time ) { + $valid_tokens[] = $this->get( $current_date + $time, $form_data ); + } + + return $valid_tokens; + } + + /** + * Check if the given token is valid or not. + * + * Tokens are valid for some period of time (see wpforms_token_validity_in_hours + * and wpforms_token_validity_in_days to extend the validation period). + * By default tokens are valid for day. + * + * @since 1.6.2 + * @since 1.7.1 Added the $form_data argument. + * + * @param string $token Token to validate. + * @param array $form_data Form data and settings. + * + * @return bool Whether the token is valid or not. + */ + public function verify( string $token, array $form_data = [] ): bool { + + // Check to see if our token is inside the valid tokens. + return in_array( $token, $this->get_valid_tokens( $form_data ), true ); + } + + /** + * Add the token to the form attributes. + * + * @since 1.6.2 + * @since 1.7.1 Added the $form_data argument. + * + * @param array $attrs Form attributes. + * @param array $form_data Form data and settings. + * + * @return array Form attributes. + */ + public function add_token_to_form_atts( array $attrs, array $form_data ) { + + $attrs['atts']['data-token'] = $this->get( true, $form_data ); + $attrs['atts']['data-token-time'] = time(); + + return $attrs; + } + + /** + * Validate Anti-spam if enabled. + * + * @since 1.6.2 + * + * @param array $form_data Form data. + * @param array $fields Fields. + * @param array $entry Form entry. + * + * @return bool|string True or a string with the error. + */ + public function validate( array $form_data, array $fields, array $entry ) { + + // Bail out if we don't have the antispam setting. + if ( empty( $form_data['settings']['antispam'] ) ) { + return true; + } + + // Bail out if the antispam setting isn't enabled. + if ( $form_data['settings']['antispam'] !== '1' ) { + return true; + } + + $is_valid_token = isset( $entry['token'] ) && $this->verify( (string) $entry['token'], $form_data ); + + if ( $this->process_antispam_filter_wrapper( $is_valid_token, $fields, $entry, $form_data ) ) { + return true; + } + + // Prepare the log data. + $form_title = $form_data['settings']['form_title'] ?? ''; + $form_id = $form_data['id'] ?? 'unknown'; + + if ( $is_valid_token ) { + // Token is OK, but antispam filter is not passed. + $log_message = 'Filter is not passed'; + $error_message = $this->get_antispam_filter_message(); + } else { + // Invalid token. + $log_message = 'Token is invalid'; + $error_message = $this->get_invalid_token_message(); + } + + wpforms_log( + 'Antispam: ' . $log_message, + [ + 'message' => $error_message, + 'referer' => esc_url_raw( (string) wp_get_referer() ), + 'form' => ! empty( $form_title ) ? $form_title . ' (ID: ' . $form_id . ')' : 'ID: ' . $form_id, + 'token' => $entry['token'] ?? '', + 'user_ip' => wpforms_get_ip(), + 'entry_data' => ! wpforms_setting( 'gdpr' ) ? $entry : 'Not logged', + ], + [ + 'type' => [ 'spam', 'error' ], + 'form_id' => $form_data['id'], + 'force' => true, + ] + ); + + return $error_message; + } + + /** + * Helper to run our filter on all the responses for the antispam checks. + * + * @since 1.6.2 + * + * @param bool $is_valid_not_spam Is valid entry or not. + * @param array $fields Form Fields. + * @param array $entry Form entry. + * @param array $form_data Form Data. + * + * @return bool Is valid or not. + */ + public function process_antispam_filter_wrapper( bool $is_valid_not_spam, array $fields, array $entry, array $form_data ): bool { + + /** + * Allows developers to filter the antispam check result. + * + * @since 1.6.2 + * + * @param bool $is_valid_not_spam True if entry valid, false otherwise. + * @param array $fields Fields data. + * @param array $entry Entry data. + * @param array $form_data Form data. + */ + return (bool) apply_filters( 'wpforms_process_antispam', $is_valid_not_spam, $fields, $entry, $form_data ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Helper to get the invalid token message. + * + * @since 1.6.2.1 + * + * @return string Invalid token message. + */ + private function get_invalid_token_message(): string { + + return $this->get_error_message( esc_html__( 'Antispam token is invalid.', 'wpforms-lite' ) ); + } + + /** + * Helper to get the antispam filter error message. + * + * @since 1.8.9 + * + * @return string Missing token message. + */ + private function get_antispam_filter_message(): string { + + return $this->get_error_message( esc_html__( 'Antispam filter did not allow your data to pass through.', 'wpforms-lite' ) ); + } + + /** + * Get error message depends on user. + * + * @since 1.6.4.1 + * + * @param string $text Message text. + * + * @return string + */ + private function get_error_message( string $text ): string { + + $text .= ' ' . esc_html__( 'Please reload the page and try submitting the form again.', 'wpforms-lite' ); + + return wpforms_current_user_can() ? $text . $this->maybe_get_support_text() : $text; + } + + /** + * If a user is a super admin, add a support link to the message. + * + * @since 1.6.2.1 + * + * @return string Support text if super admin, empty string if not. + */ + private function maybe_get_support_text(): string { + + // If a user isn't a super admin, don't return any text. + if ( ! is_super_admin() ) { + return ''; + } + + // If the user is an admin, return text with a link to support. + // We add a space here to separate the sentences, but outside the localized text to avoid it being removed. + return ' ' . sprintf( + /* translators: placeholders are links. */ + esc_html__( 'Please check out our %1$stroubleshooting guide%2$s for details on resolving this issue.', 'wpforms-lite' ), + '', + '' + ); + } + + /** + * Add token related strings to the frontend. + * + * @since 1.8.8 + * + * @param array|mixed $strings Frontend strings. + * + * @return array Frontend strings. + */ + public function add_frontend_strings( $strings ): array { + + $strings = (array) $strings; + + $strings['error_updating_token'] = esc_html__( + 'Error updating token. Please try again or contact support if the issue persists.', + 'wpforms-lite' + ); + $strings['network_error'] = esc_html__( + 'Network error or server is unreachable. Check your connection or try again later.', + 'wpforms-lite' + ); + + // Default token lifetime is 24 hours in seconds. + $token_lifetime = DAY_IN_SECONDS; + + /** + * Filter token cache lifetime in seconds. + * + * @since 1.8.8 + * + * @param integer $token_lifetime Token lifetime in seconds. + */ + $strings['token_cache_lifetime'] = apply_filters( 'wpforms_forms_token_cache_lifetime', $token_lifetime ); + + return $strings; + } + + /** + * Update token via ajax handler. + * + * @since 1.8.8 + */ + public function ajax_get_token() { + + $form_data = []; + $form_data['id'] = filter_input( INPUT_POST, 'formId', FILTER_VALIDATE_INT ); + + $response = [ + 'token' => $this->get( true, $form_data ), + ]; + + wp_send_json_success( $response ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Frontend/Amp.php b/wp-content/plugins/wpforms-lite/src/Frontend/Amp.php new file mode 100644 index 0000000..d7388a2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Frontend/Amp.php @@ -0,0 +1,386 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + add_filter( 'amp_skip_post', [ $this, 'skip_post' ] ); + add_filter( 'wpforms_frontend_form_atts', [ $this, 'form_atts' ], -PHP_INT_MAX, 2 ); + add_action( 'wpforms_frontend_output', [ $this, 'output_state' ], -PHP_INT_MAX, 5 ); + } + + /** + * Check whether the current page is in AMP mode or not. + * + * @since 1.8.1 + * + * @return bool True if the current page is in AMP mode. + */ + public function is_amp(): bool { + + if ( is_null( $this->is_amp_mode ) ) { + $this->is_amp_mode = wpforms_is_amp(); + } + + return $this->is_amp_mode; + } + + /** + * Stop AMP output. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * + * @return bool True if we need to stop the output. + */ + public function stop_output( $form_data ): bool { + + // We need to stop output processing in case we are on AMP page. + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + if ( ! $this->should_stop_output() ) { + return false; + } + + $form_id = ! empty( $form_data['id'] ) ? (int) $form_data['id'] : 0; + $full_page_url = home_url( add_query_arg( 'nonamp', '1' ) . '#wpforms-' . $form_id ); + + /** + * Allow modifying the text or url for the full page on the AMP pages. + * + * @since 1.4.1.1 + * @since 1.7.1 Added $form_id, $full_page_url, and $form_data arguments. + * + * @param string $text Text. + * @param int $form_id Form id. + * @param string $full_page_url Full page url. + * @param array $form_data Form data and settings. + * + * @return string + */ + $text = (string) apply_filters( + 'wpforms_frontend_shortcode_amp_text', + sprintf( /* translators: %s - URL to a non-amp version of a page with the form. */ + __( 'Go to the full page to view and submit the form.', 'wpforms-lite' ), + esc_url( $full_page_url ) + ), + $form_id, + $full_page_url, + $form_data + ); + + printf( + '

              %s

              ', + wp_kses_post( $text ) + ); + + return true; + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Whether output should be stopped. + * + * @since 1.9.0 + * + * @return bool + */ + private function should_stop_output(): bool { + + if ( ! $this->is_amp() ) { + return false; + } + + /** + * Filters PRO status of the plugin. + * Returning `true` means that AMP stop loading. + * + * @since 1.5.4.2 + * + * @param bool $pro Pro status. + */ + if ( apply_filters( 'wpforms_amp_pro', wpforms()->is_pro() ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return true; + } + + return ( + ! defined( 'AMP__VERSION' ) || + version_compare( AMP__VERSION, '1.2', '<' ) || + ! is_ssl() + ); + } + + /** + * Disable AMP if query param is detected. + * + * This allows the full form to be accessible for Pro users or sites + * that do not have SSL. + * + * @since 1.8.1 + * + * @param bool $skip Skip AMP mode, display full post. + * + * @return bool + */ + public function skip_post( $skip ) { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return isset( $_GET['nonamp'] ) ? true : $skip; + } + + /** + * Form attributes filter. + * + * @since 1.8.1 + * + * @param array $form_atts Form attributes. + * @param array $form_data Form data. + * + * @return array + */ + public function form_atts( $form_atts, $form_data ) { + + if ( ! $this->is_amp() ) { + return $form_atts; + } + + // Set submitting state. + if ( ! isset( $form_atts['atts']['on'] ) ) { + $form_atts['atts']['on'] = ''; + } else { + $form_atts['atts']['on'] .= ';'; + } + + $form_id = ! empty( $form_data['id'] ) ? (int) $form_data['id'] : 0; + + $form_atts['atts']['on'] .= sprintf( + 'submit:AMP.setState( %1$s ); submit-success:AMP.setState( %2$s ); submit-error:AMP.setState( %2$s );', + wp_json_encode( + [ + $this->get_form_amp_state_id( $form_id ) => [ 'submitting' => true ], + ] + ), + wp_json_encode( + [ + $this->get_form_amp_state_id( $form_id ) => [ 'submitting' => false ], + ] + ) + ); + + // Upgrade the form to be an amp-form to avoid sanitizer conversion. + if ( isset( $form_atts['atts']['action'] ) ) { + $form_atts['atts']['action-xhr'] = $form_atts['atts']['action']; + $form_atts['atts']['verify-xhr'] = $form_atts['atts']['action-xhr']; + + unset( $form_atts['atts']['action'] ); + } + + return $form_atts; + } + + /** + * Get the amp-state ID for a given form. + * + * @since 1.8.1 + * + * @param int $form_id Form ID. + * + * @return string State ID. + */ + private function get_form_amp_state_id( $form_id ) { + + return sprintf( 'wpforms_form_state_%d', $form_id ); + } + + /** + * Output AMP state. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * @param null $deprecated Deprecated. + * @param string $title Form title. + * @param string $description Form description. + * @param array $errors Errors. + * + * @noinspection PhpUnusedParameterInspection + */ + public function output_state( $form_data, $deprecated, $title, $description, $errors ) { + + if ( ! $this->is_amp() ) { + return; + } + + $state = [ 'submitting' => false ]; + + $form_id = ! empty( $form_data['id'] ) ? (int) $form_data['id'] : 0; + + printf( + '', + $this->get_form_amp_state_id( $form_id ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + wp_json_encode( $state ) + ); + } + + /** + * Output submit success template. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * + * @return bool True if the template was printed. + */ + public function output_success_template( $form_data ) { + + if ( ! $this->is_amp() ) { + return false; + } + + $frontend = wpforms()->obj( 'frontend' ); + + if ( ! $frontend ) { + return false; + } + + $frontend->assets_confirmation( $form_data ); + + $class = (int) wpforms_setting( 'disable-css', '1' ) === 1 ? + 'wpforms-confirmation-container-full' : + 'wpforms-confirmation-container'; + + printf( + '
              ', + esc_attr( $class ) + ); + + return true; + } + + /** + * Output submit error template. + * + * @since 1.8.1 + * + * @return bool True if the template was printed. + */ + public function output_error_template() { + + if ( ! $this->is_amp() ) { + return false; + } + + echo '
              '; + + return true; + } + + /** + * Get text attribute. + * + * @since 1.8.1 + * + * @param int $form_id Form ID. + * @param array $settings Form settings. + * @param string $submit Submit button text. + * + * @return string + */ + public function get_text_attr( $form_id, $settings, $submit ) { + + return sprintf( + '%s.submitting ? %s : %s', + $this->get_form_amp_state_id( $form_id ), + wp_json_encode( $settings['submit_text_processing'], JSON_UNESCAPED_UNICODE ), + wp_json_encode( $submit, JSON_UNESCAPED_UNICODE ) + ); + } + + /** + * Output captcha. + * + * @since 1.8.1 + * + * @param bool $is_recaptcha_v3 Whether we use v3. + * @param array $captcha_settings Captcha settings. + * @param array $form_data Form data. + * + * @return bool + */ + public function output_captcha( $is_recaptcha_v3, $captcha_settings, $form_data ) { + + if ( ! $this->is_amp() ) { + return false; + } + + if ( $is_recaptcha_v3 ) { + + printf( + '', + esc_attr( $captcha_settings['site_key'] ), + esc_attr( 'wpforms_' . $form_data['id'] ) + ); + + return true; + } + + if ( is_super_admin() ) { + + $captcha_provider = $captcha_settings['provider'] === 'hcaptcha' ? esc_html__( 'hCaptcha', 'wpforms-lite' ) : esc_html__( 'Google reCAPTCHA v2', 'wpforms-lite' ); + + echo '
              '; + printf( + wp_kses( /* translators: %1$s - CAPTCHA provider name, %2$s - URL to reCAPTCHA documentation. */ + __( '%1$s is not supported by AMP and is currently disabled.
              Upgrade to reCAPTCHA v3 for full AMP support.
              Please note: this message is only displayed to site administrators.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + 'br' => [], + 'em' => [], + ] + ), + $captcha_provider, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'https://wpforms.com/docs/setup-captcha-wpforms/' + ); + echo '
              '; + + return true; + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Frontend/CSSVars.php b/wp-content/plugins/wpforms-lite/src/Frontend/CSSVars.php new file mode 100644 index 0000000..752db63 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Frontend/CSSVars.php @@ -0,0 +1,825 @@ + '3px', + 'field-border-style' => 'solid', + 'field-border-size' => '1px', + 'field-background-color' => self::WHITE, + 'field-border-color' => 'rgba( 0, 0, 0, 0.25 )', + 'field-text-color' => 'rgba( 0, 0, 0, 0.7 )', + 'field-menu-color' => self::WHITE, + + 'label-color' => 'rgba( 0, 0, 0, 0.85 )', + 'label-sublabel-color' => 'rgba( 0, 0, 0, 0.55 )', + 'label-error-color' => '#d63637', + + 'button-border-radius' => '3px', + 'button-border-style' => 'none', + 'button-border-size' => '1px', + 'button-background-color' => '#066aab', + 'button-border-color' => '#066aab', + 'button-text-color' => self::WHITE, + + 'page-break-color' => '#066aab', + + 'background-image' => 'none', + 'background-position' => 'center center', + 'background-repeat' => 'no-repeat', + 'background-size' => 'cover', + 'background-width' => '100px', + 'background-height' => '100px', + 'background-color' => 'rgba( 0, 0, 0, 0 )', + 'background-url' => 'url()', + + 'container-padding' => '0px', + 'container-border-style' => 'none', + 'container-border-width' => '1px', + 'container-border-color' => '#000000', + 'container-border-radius' => '3px', + ]; + + /** + * Container shadow vars and values. + * + * @since 1.8.8 + * + * @var array + */ + public const CONTAINER_SHADOW_SIZE = [ + 'none' => [ + 'box-shadow' => 'none', + ], + 'small' => [ + 'box-shadow' => '0px 3px 5px 0px rgba(0, 0, 0, 0.1)', + ], + 'medium' => [ + 'box-shadow' => '0px 10px 20px 0px rgba(0, 0, 0, 0.1)', + ], + 'large' => [ + 'box-shadow' => '0px 30px 50px -10px rgba(0, 0, 0, 0.15)', + ], + ]; + + /** + * Field Size vars and values. + * + * @since 1.8.1 + * + * @var array + */ + public const FIELD_SIZE = [ + 'small' => [ + 'input-height' => '31px', + 'input-spacing' => '10px', + 'font-size' => '14px', + 'line-height' => '17px', + 'padding-h' => '9px', + 'checkbox-size' => '14px', + 'sublabel-spacing' => '5px', + 'icon-size' => '0.75', + ], + 'medium' => [ + 'input-height' => '43px', + 'input-spacing' => '15px', + 'font-size' => '16px', + 'line-height' => '19px', + 'padding-h' => '14px', + 'checkbox-size' => '16px', + 'sublabel-spacing' => '5px', + 'icon-size' => '1', + ], + 'large' => [ + 'input-height' => '50px', + 'input-spacing' => '20px', + 'font-size' => '18px', + 'line-height' => '21px', + 'padding-h' => '14px', + 'checkbox-size' => '18px', + 'sublabel-spacing' => '10px', + 'icon-size' => '1.25', + ], + ]; + + /** + * Label Size vars and values. + * + * @since 1.8.1 + * + * @var array + */ + public const LABEL_SIZE = [ + 'small' => [ + 'font-size' => '14px', + 'line-height' => '17px', + 'sublabel-font-size' => '13px', + 'sublabel-line-height' => '16px', + ], + 'medium' => [ + 'font-size' => '16px', + 'line-height' => '19px', + 'sublabel-font-size' => '14px', + 'sublabel-line-height' => '17px', + ], + 'large' => [ + 'font-size' => '18px', + 'line-height' => '21px', + 'sublabel-font-size' => '16px', + 'sublabel-line-height' => '19px', + ], + ]; + + /** + * Button Size vars and values. + * + * @since 1.8.1 + * + * @var array + */ + public const BUTTON_SIZE = [ + 'small' => [ + 'font-size' => '14px', + 'height' => '37px', + 'padding-h' => '15px', + 'margin-top' => '5px', + ], + 'medium' => [ + 'font-size' => '17px', + 'height' => '41px', + 'padding-h' => '15px', + 'margin-top' => '10px', + ], + 'large' => [ + 'font-size' => '20px', + 'height' => '48px', + 'padding-h' => '20px', + 'margin-top' => '15px', + ], + ]; + + /** + * Spare variables. + * + * @since 1.8.8 + * + * @var array + */ + private const SPARE_VARS = [ 'field-border-color' ]; + + /** + * White color. + * + * @since 1.8.8 + * + * @var string + */ + private const WHITE = '#ffffff'; + + /** + * Render engine. + * + * @since 1.8.1 + * + * @var string + */ + private $render_engine; + + /** + * CSS variables. + * + * @since 1.8.1 + * + * @var array + */ + private $css_vars; + + /** + * Flag to check if root CSS vars were output. + * + * @since 1.8.1 + * + * @var bool + */ + private $is_root_vars_displayed; + + /** + * Initialize class. + * + * @since 1.8.1 + */ + public function init(): void { + + $this->init_vars(); + } + + /** + * CSS variables data. + * + * @since 1.8.1 + */ + private function init_vars(): void { + + $vars = []; + + $vars[':root'] = array_merge( + self::ROOT_VARS, + $this->get_complex_vars( 'field-size', self::FIELD_SIZE['medium'] ), + $this->get_complex_vars( 'label-size', self::LABEL_SIZE['medium'] ), + $this->get_complex_vars( 'button-size', self::BUTTON_SIZE['medium'] ), + $this->get_complex_vars( 'container-shadow-size', self::CONTAINER_SHADOW_SIZE['none'] ) + ); + + /** + * Allows developers to modify default CSS variables which output on the frontend. + * + * @since 1.8.1 + * + * @param array $vars CSS variables two-dimensional array. + * The first level keys is the CSS selector. + * Second level keys is the variable name without the `--wpforms-` prefix. + */ + $this->css_vars = apply_filters( 'wpforms_frontend_css_vars_init_vars', $vars ); + } + + /** + * Get complex CSS variables data. + * + * @since 1.8.1 + * + * @param string $prefix CSS variable prefix. + * @param array $values Values. + */ + public function get_complex_vars( string $prefix, array $values ): array { + + $vars = []; + + foreach ( $values as $key => $value ) { + $vars[ "{$prefix}-{$key}" ] = $value; + } + + return $vars; + } + + /** + * Get CSS variables data by selector. + * + * @since 1.8.1 + * + * @param string $selector Selector. + * + * @return array + */ + public function get_vars( string $selector = ':root' ): array { + + if ( empty( $this->css_vars[ $selector ] ) ) { + return []; + } + + return $this->css_vars[ $selector ]; + } + + /** + * Output root CSS variables. + * + * @since 1.8.1 + * @since 1.8.1.2 Added $force argument. + * @deprecated 1.9.3 + * + * @param bool $force Force output root variables. + * + * @noinspection PhpMissingParamTypeInspection + */ + public function output_root( $force = false ): void { + + _deprecated_function( __METHOD__, '1.9.3 of the WPForms plugin' ); + + if ( ! empty( $this->is_root_vars_displayed ) && empty( $force ) ) { + return; + } + + $this->output_selector_vars( ':root', $this->css_vars[':root'] ); + + $this->is_root_vars_displayed = true; + } + + /** + * Get root variables CSS. + * + * @since 1.9.3 + * + * @return string + */ + public function get_root_vars_css(): string { + + return $this->get_selector_vars_css( ':root', $this->css_vars[':root'] ); + } + + /** + * Output selector's CSS variables. + * + * @since 1.8.1 + * + * @param string $selector Selector. + * @param array $vars Variables data. + * @param string $style_id Style tag ID attribute. Optional. Default is an empty string. + * @param string|int $form_id Form ID. Optional. Default is an empty string. + */ + public function output_selector_vars( string $selector, array $vars, string $style_id = '', $form_id = '' ): void { + + if ( empty( $this->render_engine ) ) { + $this->render_engine = wpforms_get_render_engine(); + } + + if ( $this->render_engine === 'classic' ) { + return; + } + + // If this is not full "Base and Form Theme Styling", skip. + if ( (int) wpforms_setting( 'disable-css', '1' ) !== 1 ) { + return; + } + + $style_id = empty( $style_id ) ? 'wpforms-css-vars-' . $selector : $style_id; + + printf( + '', + sanitize_key( $style_id ), + $this->get_selector_vars_css( $selector, $vars, $form_id ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Output CSS vars for the form added as a shortcode. + * + * @since 1.9.7 + * + * @param array $atts Shortcode attributes. + */ + public function output_css_vars_for_shortcode( array $atts ): void { + + if ( empty( $atts['id'] ) ) { + return; + } + + $form_handler = wpforms()->obj( 'form' ); + + if ( ! $form_handler ) { + return; + } + + $form_id = (int) $atts['id']; + $form_data = $form_handler->get( $form_id, [ 'content_only' => true ] ); + + if ( empty( $form_data ) ) { + return; + } + + $attr = isset( $form_data['settings']['themes'] ) ? (array) $form_data['settings']['themes'] : []; + $attr = $this->maybe_override_attributes( $attr ); + + $css_vars = $this->get_customized_css_vars( $attr ); + $css_vars = $this->add_css_vars_units( $css_vars ); + + $selector = "#wpforms-{$form_id}"; + $style_id = "wpforms-css-vars-{$form_id}"; + + $this->output_selector_vars( $selector, $css_vars, $style_id, $form_id ); + $this->output_custom_css( $attr, $selector, $style_id ); + } + + /** + * Output custom CSS. + * + * @since 1.9.7 + * + * @param array $attr Attributes. + * @param string $selector Selector. + * @param string $style_id Style ID. + * + * @noinspection PhpMissingParamTypeInspection + */ + private function output_custom_css( array $attr, string $selector, string $style_id ): void { + + if ( wpforms_get_render_engine() === 'classic' ) { + return; + } + + $custom_css = trim( $attr['customCss'] ?? '' ); + + if ( empty( $custom_css ) ) { + return; + } + + printf( + '', + sanitize_key( $style_id ), + $selector, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + wp_strip_all_tags( $custom_css ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Maybe override attributes with themes.json settings. + * + * @since 1.9.7 + * + * @param array $attr Attributes. + * + * @return array + */ + private function maybe_override_attributes( array $attr ): array { + + $theme_slug = (string) ( $attr['wpformsTheme'] ?? '' ); + + if ( empty( $theme_slug ) ) { + return $attr; + } + + $attr = $this->normalize_background_url( $attr ); + + $theme_data = $this->get_themes_data_object()->get_theme( $theme_slug ); + $settings = $theme_data['settings'] ?? []; + + return array_merge( $attr, $settings ); + } + + /** + * Normalize background URL. + * + * Check if the background URL is not wrapped in url() and add it if needed. + * + * @since 1.9.7 + * + * @param array $attr Attributes. + */ + private function normalize_background_url( array $attr ): array { + + if ( ! isset( $attr['backgroundUrl'] ) ) { + return $attr; + } + + if ( strpos( $attr['backgroundUrl'], 'url(' ) === 0 ) { + return $attr; + } + + $attr['backgroundUrl'] = 'url(' . $attr['backgroundUrl'] . ')'; + + return $attr; + } + + /** + * Get themes data object. + * + * @since 1.9.7 + * + * @return ThemesData + */ + private function get_themes_data_object(): ThemesData { + + if ( wpforms()->is_pro() ) { + return new ProThemesData( new StockPhotos() ); + } + + return new LiteThemesData(); + } + + /** + * Add CSS vars units. + * + * Form builder saves values without pixels, we need to add them before outputting as CSS vars. + * + * @since 1.9.7 + * + * @param array $css_vars CSS vars. + * + * @return array + */ + private function add_css_vars_units( array $css_vars ): array { + + $has_pixels = [ + 'field-border-size', + 'field-border-radius', + 'button-border-size', + 'button-border-radius', + 'container-padding', + 'container-border-width', + 'container-border-radius', + ]; + + foreach ( $has_pixels as $key ) { + if ( isset( $css_vars[ $key ] ) && is_numeric( $css_vars[ $key ] ) && $css_vars[ $key ] > 0 ) { + $css_vars[ $key ] .= 'px'; + } + } + + return $css_vars; + } + + /** + * Get selector variables CSS. + * + * @since 1.9.3 + * + * @param string $selector Selector. + * @param array $vars Variables data. + * @param string|int $form_id Form ID. Optional. Default is an empty string. + * + * @return string + */ + private function get_selector_vars_css( string $selector, array $vars, $form_id = '' ): string { + + return sprintf( + '%1$s { + %2$s + }', + $selector, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + wp_strip_all_tags( $this->get_vars_css( $vars, $form_id ) ) + ); + } + + /** + * Pre print vars filter. + * + * @since 1.8.8 + * + * @param array $vars Variables data. + * @param string|int $form_id Form ID. Optional. Default is an empty string. + * + * @return array + */ + private function get_pre_print_vars( array $vars, $form_id = '' ): array { + + // Normalize the `background-url` variable. + if ( isset( $vars['background-url'] ) ) { + $vars['background-url'] = $vars['background-url'] === 'url()' ? 'none' : $vars['background-url']; + } + + /** + * Filter CSS variables right before printing the CSS. + * + * @since 1.8.8 + * + * @param array $vars CSS variables. + * @param int $form_id Form ID. Optional. Default is an empty string. + */ + return (array) apply_filters( 'wpforms_frontend_css_vars_pre_print_filter', $vars, $form_id ); + } + + /** + * Generate CSS code from given vars data. + * + * @since 1.8.1 + * + * @param array $vars Variables data. + * @param string|int $form_id Form ID. Optional. Default is an empty string. + */ + private function get_vars_css( array $vars, $form_id = '' ): string { + + $vars = $this->get_pre_print_vars( $vars, $form_id ); + $result = ''; + + foreach ( $vars as $name => $value ) { + if ( ! is_string( $value ) ) { + continue; + } + + if ( $value === '0' ) { + $value = '0px'; + } + + $result .= "--wpforms-{$name}: {$value};\n"; + + if ( in_array( $name, self::SPARE_VARS, true ) ) { + $result .= "--wpforms-{$name}-spare: {$value};\n"; + } + } + + return $result; + } + + /** + * Get customized CSS vars. + * + * @since 1.8.3 + * + * @param array $attr Attributes passed by integration. + * + * @return array + */ + public function get_customized_css_vars( array $attr ): array { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $root_css_vars = $this->get_vars(); + $css_vars = []; + + foreach ( $attr as $key => $value ) { + + $var_name = strtolower( preg_replace( '/[A-Z]/', '-$0', $key ) ); + + // Skip an attribute that is not the CSS var or has the default value. + if ( empty( $root_css_vars[ $var_name ] ) || $root_css_vars[ $var_name ] === $value ) { + continue; + } + + $css_vars[ $var_name ] = $value; + } + + // Reset border size in case of border style is `none`. + $css_vars = $this->maybe_reset_border( $css_vars, 'field-border' ); + $css_vars = $this->maybe_reset_border( $css_vars, 'button-border' ); + + // Set the button alternative background color and use border color for accent in case of transparent color. + $button_bg_color = $css_vars['button-background-color'] ?? $root_css_vars['button-background-color']; + + if ( $this->is_transparent_color( $button_bg_color ) ) { + $css_vars['button-background-color-alt'] = $button_bg_color; + + $border_color = $css_vars['button-border-color'] ?? $root_css_vars['button-border-color']; + + $css_vars['button-background-color'] = $this->is_transparent_color( $border_color ) ? $root_css_vars['button-background-color'] : $border_color; + $button_bg_color = $css_vars['button-background-color']; + } + + $button_bg_color = strtolower( $button_bg_color ); + + // Set the button alternative text color in case if the background and text color are identical. + $button_text_color = strtolower( $css_vars['button-text-color'] ?? $root_css_vars['button-text-color'] ); + + if ( $button_bg_color === $button_text_color || $this->is_transparent_color( $button_text_color ) ) { + $css_vars['button-text-color-alt'] = $this->get_contrast_color( $button_bg_color ); + } + + $size_css_vars = $this->get_size_css_vars( $attr ); + + return array_merge( $css_vars, $size_css_vars ); + } + + /** + * Reset border size in case of border style is `none`. + * + * @since 1.9.7 + * + * @param array $css_vars CSS vars. + * @param string $key Key. + * + * @return array + */ + private function maybe_reset_border( array $css_vars, string $key ): array { + + $style_key = $key . '-style'; + $size_key = $key . '-size'; + + if ( isset( $css_vars[ $style_key ] ) && $css_vars[ $style_key ] === 'none' ) { + $css_vars[ $size_key ] = '0px'; + } + + return $css_vars; + } + + /** + * Checks if the provided color has transparency. + * + * @since 1.8.8 + * + * @param string $color The color to check. + * + * @return bool + */ + private function is_transparent_color( string $color ): bool { + + $rgba = $this->get_color_as_rgb_array( $color ); + + $opacity_threshold = 0.33; + $opacity = $rgba[3] ?? 1; + + return $opacity < $opacity_threshold; + } + + /** + * Get contrast color relative to a given color. + * + * @since 1.8.8 + * + * @param string|array $color The color. + * + * @return string + */ + private function get_contrast_color( $color ): string { + + $rgba = is_array( $color ) ? $color : $this->get_color_as_rgb_array( $color ); + $avg = (int) ( ( ( array_sum( $rgba ) ) / 3 ) * ( $rgba[3] ?? 1 ) ); + + return $avg < 128 ? '#ffffff' : '#000000'; + } + + /** + * Get size CSS vars. + * + * @since 1.8.3 + * @since 1.8.8 Removed $css_vars argument. + * + * @param array $attr Attributes passed by integration. + * + * @return array + */ + private function get_size_css_vars( array $attr ): array { + + $size_items = [ 'field', 'label', 'button', 'container-shadow' ]; + $size_css_vars = []; + + foreach ( $size_items as $item ) { + + $item_attr = preg_replace_callback( + '/-(\w)/', + static function ( $matches ) { + + return strtoupper( $matches[1] ); + }, + $item + ); + + $item_attr .= 'Size'; + + $item_key = $item . '-size'; + $item_constant = 'self::' . str_replace( '-', '_', strtoupper( $item ) ) . '_SIZE'; + + if ( empty( $attr[ $item_attr ] ) ) { + continue; + } + + $size_css_vars[] = $this->get_complex_vars( $item_key, constant( $item_constant )[ $attr[ $item_attr ] ] ); + } + + return empty( $size_css_vars ) ? [] : array_merge( ...$size_css_vars ); + } + + /** + * Get color as an array of RGB(A) values. + * + * @since 1.8.8 + * + * @param string $color Color. + * + * @return array|bool Color as an array of RGBA values. False on error. + */ + private function get_color_as_rgb_array( string $color ) { + + // Remove # from the beginning of the string and remove whitespaces. + $color = preg_replace( '/^#/', '', strtolower( trim( $color ) ) ); + $color = str_replace( ' ', '', (string) $color ); + + if ( $color === 'transparent' ) { + $color = 'rgba(0,0,0,0)'; + } + + $rgba = $color; + $rgb_array = []; + + // Check if color is in HEX(A) format. + $is_hex = preg_match( '/[0-9a-f]{6,8}$/', $rgba ); + + if ( $is_hex ) { + // Search and split HEX(A) color into an array of char couples. + preg_match_all( '/\w\w/', $rgba, $rgb_array ); + + $rgb_array = array_map( + static function ( $value ) { + + return hexdec( '0x' . $value ); + }, + $rgb_array[0] ?? [] + ); + $rgb_array[3] = ( $rgb_array[3] ?? 255 ) / 255; + } else { + $rgba = preg_replace( '/[^\d,.]/', '', $rgba ); + $rgb_array = explode( ',', $rgba ); + } + + return $rgb_array; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Frontend/Captcha.php b/wp-content/plugins/wpforms-lite/src/Frontend/Captcha.php new file mode 100644 index 0000000..8da4bde --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Frontend/Captcha.php @@ -0,0 +1,670 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.1 + */ + private function hooks() { + + // Filters. + add_filter( 'script_loader_tag', [ $this, 'set_defer_attribute' ], 10, 3 ); + + // Actions. + add_action( 'send_headers', [ $this, 'send_headers' ] ); + add_action( 'wpforms_frontend_output', [ $this, 'recaptcha' ], 20, 5 ); + add_action( 'wp_enqueue_scripts', [ $this, 'recaptcha_noconflict' ], 9999 ); + add_action( 'wp_footer', [ $this, 'recaptcha_noconflict' ], 19 ); + add_action( 'wpforms_wp_footer', [ $this, 'assets_recaptcha' ] ); + } + + /** + * Send HTTP headers to prevent warning in the browser console. + * + * @since 1.9.8.3 + */ + public function send_headers(): void { + + if ( headers_sent() ) { + return; + } + + $urls = '"https://www.google.com" "https://www.gstatic.com" "https://recaptcha.net" "https://challenges.cloudflare.com" "https://hcaptcha.com"'; + + header( + 'Permissions-Policy: ' . + "private-state-token-redemption=(self $urls), " . + "private-state-token-issuance=(self $urls)", + false + ); + } + + /** + * CAPTCHA output if configured. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * @param null $deprecated Deprecated in v1.3.7, previously was $form object. + * @param bool $title Whether to display form title. + * @param bool $description Whether to display form description. + * @param array $errors List of all errors filled in WPForms_Process::process(). + * + * @noinspection HtmlUnknownAttribute + * @noinspection PhpUnusedParameterInspection + */ + public function recaptcha( $form_data, $deprecated, $title, $description, $errors ) { + + // Check that CAPTCHA is configured in the settings. + $captcha_settings = $this->get_form_captcha_settings( $form_data ); + + if ( ! $captcha_settings ) { + return; + } + + $frontend = wpforms()->obj( 'frontend' ); + + $container_classes = [ 'wpforms-recaptcha-container', 'wpforms-is-' . $captcha_settings['provider'] ]; + + if ( $captcha_settings['provider'] === 'recaptcha' ) { + $container_classes[] = 'wpforms-is-recaptcha-type-' . $captcha_settings['recaptcha_type']; + } + + printf( + '
              ', + wpforms_sanitize_classes( $container_classes, true ), + $frontend->pages ? 'style="display:none;"' : '' + ); + + $this->print_recaptcha_fields( $captcha_settings, $form_data ); + + if ( ! empty( $errors['recaptcha'] ) ) { + $frontend->form_error( 'recaptcha', $errors['recaptcha'] ); + } + + echo '
              '; + } + + /** + * Get a provider-specific captcha class. + * + * @since 1.9.8.3 + * + * @param string $provider Captcha provider. + * + * @return string + */ + private function get_captcha_class( string $provider ): string { + + $classes = [ + 'recaptcha' => 'g-recaptcha', + 'hcaptcha' => 'h-captcha', + 'turnstile' => 'cf-turnstile', + ]; + + return $classes[ $provider ] ?? 'g-recaptcha'; + } + + /** + * Get recaptcha data. + * + * @since 1.8.6 + * + * @param array $captcha_settings Captcha settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + private function get_recaptcha_data( array $captcha_settings, array $form_data ): array { + + /** + * Filters captcha sitekey. + * + * @since 1.7.1 + * + * @param array $sitekey Sitekey. + * @param array $form_data Form data and settings. + */ + $data = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_frontend_recaptcha', + [ 'sitekey' => $captcha_settings['site_key'] ], + $form_data + ); + + $is_recaptcha = $captcha_settings['provider'] === 'recaptcha'; + $is_turnstile = $captcha_settings['provider'] === 'turnstile'; + + if ( $is_recaptcha && $captcha_settings['recaptcha_type'] === 'invisible' ) { + $data['size'] = 'invisible'; + } + + if ( ! $is_turnstile ) { + return $data; + } + + /** + * Filter Turnstile action value. + * + * @since 1.8.1 + * + * @param string $action Action value. Can only contain up to 32 alphanumeric characters including _ and -. + * @param array $form_data Form data and settings. + */ + $data['action'] = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_frontend_recaptcha_turnstile_action', + sprintf( + 'FormID-%d', + $form_data['id'] + ), + $form_data + ); + + return $data; + } + + /** + * Print recaptcha fields. + * + * @since 1.8.6 + * + * @param array $captcha_settings Captcha settings. + * @param array $form_data Form data and settings. + */ + private function print_recaptcha_fields( array $captcha_settings, array $form_data ) { + + $data = $this->get_recaptcha_data( $captcha_settings, $form_data ); + $is_recaptcha = $captcha_settings['provider'] === 'recaptcha'; + $is_recaptcha_v3 = $is_recaptcha && $captcha_settings['recaptcha_type'] === 'v3'; + + if ( $is_recaptcha_v3 ) { + // The value adds via JS code. + echo ''; + + return; + } + + $captcha_class = $this->get_captcha_class( $captcha_settings['provider'] ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + + if ( $is_recaptcha && $captcha_settings['recaptcha_type'] === 'invisible' ) { + return; + } + + printf( + '', + esc_attr( $captcha_settings['provider'] ) + ); + } + + /** + * Get captcha settings for form output. + * Return null if captcha is disabled. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * + * @return array|null + * @noinspection NullPointerExceptionInspection + */ + private function get_form_captcha_settings( $form_data ) { + + $captcha_settings = wpforms_get_captcha_settings(); + + if ( + empty( $captcha_settings['provider'] ) || + $captcha_settings['provider'] === 'none' || + empty( $captcha_settings['site_key'] ) || + empty( $captcha_settings['secret_key'] ) + ) { + return null; + } + + // Check that the CAPTCHA is configured for the specific form. + if ( + ! isset( $form_data['settings']['recaptcha'] ) || + $form_data['settings']['recaptcha'] !== '1' + ) { + return null; + } + + $is_recaptcha_v3 = $captcha_settings['provider'] === 'recaptcha' && $captcha_settings['recaptcha_type'] === 'v3'; + + if ( wpforms()->obj( 'amp' )->output_captcha( $is_recaptcha_v3, $captcha_settings, $form_data ) ) { + return null; + } + + return $captcha_settings; + } + + /** + * Google reCAPTCHA no-conflict mode. + * + * When enabled in the WPForms settings, forcefully remove all other + * reCAPTCHA enqueues to prevent conflicts. Filter can be used to target + * specific pages, etc. + * + * @since 1.4.5 + * @since 1.6.4 Added hCaptcha support. + */ + public function recaptcha_noconflict() { + + $captcha_settings = wpforms_get_captcha_settings(); + + if ( + empty( $captcha_settings['provider'] ) || + $captcha_settings['provider'] === 'none' || + empty( wpforms_setting( 'recaptcha-noconflict' ) ) || + /** + * Filters recaptcha no conflict flag. + * + * @since 1.6.4 + * + * @param bool $recaptcha_no_conflict No conflict flag. + */ + ! apply_filters( 'wpforms_frontend_recaptcha_noconflict', true ) // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ) { + return; + } + + $scripts = wp_scripts(); + $urls = [ 'google.com/recaptcha', 'gstatic.com/recaptcha', 'hcaptcha.com/1' ]; + + foreach ( $scripts->queue as $handle ) { + + // Skip the WPForms javascript-assets. + if ( + ! isset( $scripts->registered[ $handle ] ) || + false !== strpos( $scripts->registered[ $handle ]->handle, 'wpforms' ) + ) { + return; + } + + foreach ( $urls as $url ) { + if ( false !== strpos( $scripts->registered[ $handle ]->src, $url ) ) { + wp_dequeue_script( $handle ); + wp_deregister_script( $handle ); + break; + } + } + } + } + + /** + * Load the assets needed for the CAPTCHA. + * + * @since 1.6.2 + * @since 1.6.4 Added hCaptcha support. + * + * @param array $forms Forms being displayed. + */ + public function assets_recaptcha( $forms ) { + + $captcha_settings = $this->get_assets_captcha_settings( $forms ); + + if ( ! $captcha_settings ) { + return; + } + + $is_recaptcha_v3 = $captcha_settings['provider'] === 'recaptcha' && $captcha_settings['recaptcha_type'] === 'v3'; + $recaptcha_url = $is_recaptcha_v3 ? + 'https://www.google.com/recaptcha/api.js?render=' . $captcha_settings['site_key'] : + /** + * For backward compatibility reason we have to filter only the v2 reCAPTCHA. + * + * @since 1.4.0 + * + * @param string $url The reCaptcha v2 URL. + */ + apply_filters( 'wpforms_frontend_recaptcha_url', 'https://www.google.com/recaptcha/api.js?onload=wpformsRecaptchaLoad&render=explicit' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $captcha_api_array = [ + 'hcaptcha' => 'https://hcaptcha.com/1/api.js?onload=wpformsRecaptchaLoad&render=explicit&recaptchacompat=off', + 'recaptcha' => $recaptcha_url, + 'turnstile' => 'https://challenges.cloudflare.com/turnstile/v0/api.js?onload=wpformsRecaptchaLoad&render=explicit', + ]; + /** + * Filter the CAPTCHA API URL. + * + * @since 1.6.4 + * + * @param string $captcha_api The CAPTCHA API URL. + */ + $captcha_api = apply_filters( 'wpforms_frontend_captcha_api', $captcha_api_array[ $captcha_settings['provider'] ] ); + $in_footer = ! wpforms_is_frontend_js_header_force_load(); + + wp_enqueue_script( + 'wpforms-recaptcha', + $captcha_api, + $is_recaptcha_v3 ? [] : [ 'jquery' ], + null, // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion + $in_footer + ); + + /** + * Filter the string containing the CAPTCHA JavaScript to be added. + * + * @since 1.6.4 + * + * @param string $captcha_inline The CAPTCHA JavaScript. + */ + $captcha_inline = apply_filters( + 'wpforms_frontend_captcha_inline_script', + $this->get_captcha_inline_script( $captcha_settings ) + ); + + wp_add_inline_script( 'wpforms-recaptcha', $captcha_inline ); + } + + /** + * Get captcha settings for assets output. + * Return null if captcha is disabled. + * + * @since 1.8.1 + * + * @param array $forms Forms being displayed. + * + * @return array|null + * @noinspection NullPointerExceptionInspection + */ + private function get_assets_captcha_settings( $forms ) { + + /** + * Filters disable captcha switch. + * + * @since 1.6.2 + * + * @param bool $is_captcha_disabled Whether captcha is disabled. + */ + if ( apply_filters( 'wpforms_frontend_recaptcha_disable', false ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return null; + } + + // Load CAPTCHA support if form supports it. + $captcha_settings = wpforms_get_captcha_settings(); + + if ( + empty( $captcha_settings['provider'] ) || + $captcha_settings['provider'] === 'none' || + empty( $captcha_settings['site_key'] ) || + empty( $captcha_settings['secret_key'] ) + ) { + return null; + } + + // Whether at least 1 form on a page has CAPTCHA enabled. + $captcha = false; + + foreach ( $forms as $form ) { + if ( ! empty( $form['settings']['recaptcha'] ) ) { + $captcha = true; + + break; + } + } + + // Return early. + if ( ! $captcha && ! wpforms()->obj( 'frontend' )->assets_global() ) { + return null; + } + + return $captcha_settings; + } + + /** + * Retrieve the string containing the CAPTCHA inline javascript. + * + * @since 1.6.4 + * + * @param array $captcha_settings The CAPTCHA settings. + * + * @return string + * @noinspection JSUnusedLocalSymbols + * @noinspection UnnecessaryLocalVariableJS + * @noinspection JSUnresolvedVariable + * @noinspection JSDeprecatedSymbols + * @noinspection JSUnresolvedFunction + */ + protected function get_captcha_inline_script( $captcha_settings ) { + + // IE11 polyfills for native `matches()` and `closest()` methods. + $polyfills = /** @lang JavaScript */ + 'if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + } + if (!Element.prototype.closest) { + Element.prototype.closest = function (s) { + var el = this; + do { + if (Element.prototype.matches.call(el, s)) { return el; } + el = el.parentElement || el.parentNode; + } while (el !== null && el.nodeType === 1); + return null; + }; + } + '; + + // Native equivalent for jQuery's `trigger()` method. + $dispatch = /** @lang JavaScript */ + 'var wpformsDispatchEvent = function (el, ev, custom) { + var e = document.createEvent(custom ? "CustomEvent" : "HTMLEvents"); + custom ? e.initCustomEvent(ev, true, true, false) : e.initEvent(ev, true, true); + el.dispatchEvent(e); + }; + '; + + // Update container class after changing Turnstile type. + $turnstile_update_class = /** @lang JavaScript */ + 'var turnstileUpdateContainer = function (el) { + + let form = el.closest( "form" ), + iframeWrapperHeight = el.offsetHeight; + + parseInt(iframeWrapperHeight) === 0 ? + form.querySelector(".wpforms-is-turnstile").classList.add( "wpforms-is-turnstile-invisible" ) : + form.querySelector(".wpforms-is-turnstile").classList.remove( "wpforms-is-turnstile-invisible" ); + }; + '; + + // Captcha callback, used by hCaptcha and checkbox reCaptcha v2. + $callback = /** @lang JavaScript */ + 'var wpformsRecaptchaCallback = function (el) { + var hdn = el.parentNode.querySelector(".wpforms-recaptcha-hidden"); + var err = el.parentNode.querySelector("#g-recaptcha-hidden-error"); + hdn.value = "1"; + wpformsDispatchEvent(hdn, "change", false); + hdn.classList.remove("wpforms-error"); + err && hdn.parentNode.removeChild(err); + }; + '; + + $sync = /** @lang JavaScript */ + 'const wpformsRecaptchaSync = ( func ) => { + return function() { + const context = this; + const args = arguments; + + // Sync with jQuery ready event. + jQuery( document ).ready( function() { + func.apply( context, args ); + } ); + } + }; + '; + + if ( $captcha_settings['provider'] === 'hcaptcha' ) { + $data = $dispatch; + $data .= $callback; + + $data .= /** @lang JavaScript */ + 'var wpformsRecaptchaLoad = function () { + Array.prototype.forEach.call(document.querySelectorAll(".h-captcha"), function (el) { + var captchaID = hcaptcha.render(el, { + callback: function () { + wpformsRecaptchaCallback(el); + } + }); + el.setAttribute("data-recaptcha-id", captchaID); + }); + wpformsDispatchEvent(document, "wpformsRecaptchaLoaded", true); + }; + '; + + return $data; + } + + if ( $captcha_settings['provider'] === 'turnstile' ) { + $data = $dispatch; + $data .= $callback; + $data .= $turnstile_update_class; + + $data .= /** @lang JavaScript */ + 'var wpformsRecaptchaLoad = function () { + Array.prototype.forEach.call(document.querySelectorAll(".cf-turnstile"), function (el) { + let form = el.closest( "form" ), + formId = form.dataset.formid, + captchaID = turnstile.render(el, { + theme: "' . $captcha_settings['theme'] . '", + callback: function () { + turnstileUpdateContainer(el); + wpformsRecaptchaCallback(el); + }, + "timeout-callback": function() { + turnstileUpdateContainer(el); + } + }); + el.setAttribute("data-recaptcha-id", captchaID); + }); + + wpformsDispatchEvent( document, "wpformsRecaptchaLoaded", true ); + }; + '; + + return $data; + } + + if ( $captcha_settings['recaptcha_type'] === 'v3' ) { + $data = $dispatch; + + $data .= /** @lang JavaScript */ + 'var wpformsRecaptchaV3Execute = function ( callback ) { + grecaptcha.execute( "' . $captcha_settings['site_key'] . '", { action: "wpforms" } ).then( function ( token ) { + Array.prototype.forEach.call( document.getElementsByName( "wpforms[recaptcha]" ), function ( el ) { + el.value = token; + } ); + if ( typeof callback === "function" ) { + return callback(); + } + } ); + } + grecaptcha.ready( function () { + wpformsDispatchEvent( document, "wpformsRecaptchaLoaded", true ); + } ); + '; + } elseif ( $captcha_settings['recaptcha_type'] === 'invisible' ) { + $data = $polyfills; + $data .= $dispatch; + $data .= $sync; + + $data .= /** @lang JavaScript */ + 'var wpformsRecaptchaLoad = wpformsRecaptchaSync( function () { + Array.prototype.forEach.call(document.querySelectorAll(".g-recaptcha"), function (el) { + try { + var recaptchaID = grecaptcha.render(el, { + "callback": function () { + wpformsRecaptchaCallback(el); + }, + "error-callback": function () { + wpformsRecaptchaErrorCallback(el); + } + }, true); + el.closest("form").querySelector("button[type=submit]").recaptchaID = recaptchaID; + } catch (error) {} + }); + wpformsDispatchEvent(document, "wpformsRecaptchaLoaded", true); + } ); + var wpformsRecaptchaCallback = function (el) { + var $form = el.closest("form"); + if (typeof wpforms.formSubmit === "function") { + wpforms.formSubmit($form); + } else { + $form.querySelector("button[type=submit]").recaptchaID = false; + $form.submit(); + } + }; + var wpformsRecaptchaErrorCallback = function (el) { + var $form = el.closest("form"); + $form.querySelector("button[type=submit]").dataset.captchaInvalid = true; + }; + '; + } else { + $data = $dispatch; + $data .= $callback; + + $data .= /** @lang JavaScript */ + 'var wpformsRecaptchaLoad = function () { + Array.prototype.forEach.call(document.querySelectorAll(".g-recaptcha"), function (el) { + try { + var recaptchaID = grecaptcha.render(el, { + callback: function () { + wpformsRecaptchaCallback(el); + } + }); + el.setAttribute("data-recaptcha-id", recaptchaID); + } catch (error) {} + }); + wpformsDispatchEvent(document, "wpformsRecaptchaLoaded", true); + }; + '; + } + + return $data; + } + + /** + * Cloudflare Turnstile captcha requires defer attribute. + * + * @since 1.8.1 + * + * @param string $tag HTML for the script tag. + * @param string $handle Handle of script. + * @param string $src Src of script. + * + * @return string + */ + public function set_defer_attribute( $tag, $handle, $src ) { + + $captcha_settings = wpforms_get_captcha_settings(); + + if ( $captcha_settings['provider'] !== 'turnstile' ) { + return $tag; + } + + if ( $handle !== 'wpforms-recaptcha' ) { + return $tag; + } + + return str_replace( ' src', ' defer src', $tag ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Frontend/Classic.php b/wp-content/plugins/wpforms-lite/src/Frontend/Classic.php new file mode 100644 index 0000000..aab9518 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Frontend/Classic.php @@ -0,0 +1,406 @@ +', + wpforms_sanitize_classes( $classes, true ), + absint( $form_data['id'] ) + ); + } + + /** + * Close form container. + * + * @since 1.8.1 + */ + public function form_container_close() { + + echo ' '; + } + + /** + * The form has no fields. + * + * @since 1.8.1 + */ + public function form_is_empty() { + + echo ''; + } + + /** + * Noscript message. + * + * @since 1.8.1 + * + * @param string $msg Noscript message. + */ + public function noscript( $msg ) { + + printf( + '', + esc_html( $msg ) + ); + } + + + /** + * Display form error. + * + * @since 1.8.1 + * + * @param string $type Error type. + * @param string $error Error text. + */ + public function form_error( $type, $error ) { + + switch ( $type ) { + case 'header': + case 'footer': + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              ' . wpautop( wpforms_sanitize_error( $error ) ) . '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + break; + + case 'header_styled': + case 'footer_styled': + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              ' . wpautop( wpforms_sanitize_error( $error ) ) . '
              '; + // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped + break; + + case 'recaptcha': + echo ''; + break; + } + } + + /** + * Open fields area container. + * + * @since 1.8.1 + */ + public function fields_area_open() { + + echo '
              '; + } + + /** + * Close fields area container. + * + * @since 1.8.1 + */ + public function fields_area_close() { + + echo '
              '; + } + + /** + * Open container for each field. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + * @noinspection PhpUnusedParameterInspection + */ + public function field_container_open( $field, $form_data ) { + + $container = $field['properties']['container']; + $container['data']['field-id'] = wpforms_validate_field_id( $field['id'] ); + + printf( + '
              ', + wpforms_html_attributes( $container['id'], $container['class'], $container['data'], $container['attr'] ) + ); + } + + /** + * Close container markup for each field. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function field_container_close( $field, $form_data ) { + + echo '
              '; + } + + /** + * Open fieldset. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function field_fieldset_open( $field, $form_data ) { + } + + /** + * Close fieldset. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function field_fieldset_close( $field, $form_data ) { + } + + /** + * Field label. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + * @noinspection PhpUnusedParameterInspection + */ + public function field_label( $field, $form_data ) { + + if ( empty( $field['properties']['label'] ) ) { + return; + } + + $label = $field['properties']['label']; + $required = $label['required'] ? wpforms_get_field_required_label() : ''; + + printf( + '', + wpforms_html_attributes( $label['id'], $label['class'], $label['data'], $label['attr'] ), + esc_html( $label['value'] ), + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $required + ); + } + + /** + * Field error. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + * @noinspection PhpUnusedParameterInspection + */ + public function field_error( $field, $form_data ) { + + if ( empty( $field['properties']['error'] ) ) { + return; + } + + $error = $field['properties']['error']; + + printf( + '', + wpforms_html_attributes( $error['id'], $error['class'], $error['data'], $error['attr'] ), + esc_html( $error['value'] ) + ); + } + + /** + * Field description. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + * @noinspection PhpUnusedParameterInspection + */ + public function field_description( $field, $form_data ) { + + if ( empty( $field['properties']['description'] ) ) { + return; + } + + $description = $field['properties']['description']; + + printf( + '
              %s
              ', + wpforms_html_attributes( $description['id'], $description['class'], $description['data'], $description['attr'] ), + do_shortcode( $description['value'] ) + ); + } + + /** + * Confirmation. + * + * @since 1.8.1 + * + * @param string $confirmation_message Confirmation message. + * @param string $class CSS class. + * @param array $form_data Form data and settings. + */ + public function confirmation( $confirmation_message, $class, $form_data ) { + + $form_id = isset( $form_data['id'] ) ? $form_data['id'] : 0; + + printf( + '
              %s
              ', + wpforms_sanitize_classes( $class ), + absint( $form_id ), + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $confirmation_message + ); + } + + /** + * Form head container. Form title and description. + * + * @since 1.8.1 + * + * @param bool $title Whether to display form title. + * @param bool $description Whether to display form description. + * @param array $form_data Form data. + */ + public function form_head_container( $title, $description, $form_data ) { + + $settings = $form_data['settings']; + + echo '
              '; + + if ( $title === true && ! empty( $settings['form_title'] ) ) { + echo '
              ' . esc_html( $settings['form_title'] ) . '
              '; + } + + if ( $description === true && ! empty( $settings['form_desc'] ) ) { + echo '
              '; + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_process_smart_tags( $settings['form_desc'], $form_data, [], '', 'form-description' ); + echo '
              '; + } + + echo '
              '; + } + + /** + * Open submit container. + * + * @since 1.8.1 + * + * @param int $pages Information for multi-page forms. + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + * @noinspection HtmlUnknownAttribute + */ + public function submit_container_open( $pages, $form_data ) { + + printf( '
              ', $pages ? 'style="display:none;"' : '' ); + } + + /** + * Submit button. + * + * @since 1.8.1 + * + * @param int $form_id Form ID. + * @param string $submit Submit text. + * @param array $classes CSS classes. + * @param array $data_attrs Data attributes. + * @param array $attrs Other attributes. + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function submit_button( $form_id, $submit, $classes, $data_attrs, $attrs, $form_data ) { + + printf( + '', + wpforms_html_attributes( + sprintf( 'wpforms-submit-%d', absint( $form_id ) ), + $classes, + $data_attrs, + $attrs + ), + esc_html( $submit ) + ); + } + + /** + * Submit button. + * + * @since 1.8.1 + * + * @param string $src Spinner image src attribute. + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function submit_spinner( $src, $form_data ) { + + printf( + '', + esc_url( $src ), + esc_attr__( 'Loading', 'wpforms-lite' ) + ); + } + + /** + * Open submit container. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * + * @noinspection PhpUnusedParameterInspection + */ + public function submit_container_close( $form_data ) { + + echo '
              '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Frontend/Frontend.php b/wp-content/plugins/wpforms-lite/src/Frontend/Frontend.php new file mode 100644 index 0000000..b16d4f4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Frontend/Frontend.php @@ -0,0 +1,2290 @@ +forms = []; + $this->amp_obj = wpforms()->obj( 'amp' ); + $this->css_vars_obj = wpforms()->obj( 'css_vars' ); + + $this->init_render_engine( wpforms_get_render_engine() ); + $this->hooks(); + + // Register shortcode. + add_shortcode( 'wpforms', [ $this, 'shortcode' ] ); + } + + /** + * Register hooks. + * + * @since 1.8.1 + */ + private function hooks(): void { + + // Actions. + add_action( 'init', [ $this, 'init_style_settings' ] ); + add_action( 'wpforms_frontend_output_success', [ $this, 'confirmation' ], 10, 3 ); + add_action( 'wpforms_frontend_output', [ $this, 'head' ], 5, 5 ); + add_action( 'wpforms_frontend_output', [ $this, 'fields' ], 10, 5 ); + add_action( 'wpforms_display_field_before', [ $this, 'field_container_open' ], 5, 2 ); + add_action( 'wpforms_display_field_before', [ $this, 'field_fieldset_open' ], 10, 2 ); + add_action( 'wpforms_display_field_before', [ $this, 'field_label' ], 15, 2 ); + add_action( 'wpforms_display_field_before', [ $this, 'field_description' ], 20, 2 ); + add_action( 'wpforms_display_field_after', [ $this, 'field_error' ], 3, 2 ); + add_action( 'wpforms_display_field_after', [ $this, 'field_description' ], 5, 2 ); + add_action( 'wpforms_display_field_after', [ $this, 'field_fieldset_close' ], 10, 2 ); + add_action( 'wpforms_display_field_after', [ $this, 'field_container_close' ], 15, 2 ); + add_action( 'wpforms_frontend_output', [ $this, 'foot' ], 25, 5 ); + add_action( 'wp_enqueue_scripts', [ $this, 'assets_header' ] ); + add_action( 'wp_footer', [ $this, 'assets_footer' ], 15 ); + add_action( 'wp_footer', [ $this, 'missing_assets_error_js' ], 20 ); + add_action( 'wp_footer', [ $this, 'footer_end' ], 99 ); + } + + /** + * Initialize render engine. + * + * @since 1.8.1 + * + * @param string $engine Render engine slug, `classic` or `modern`. + */ + public function init_render_engine( string $engine ): void { + + $this->render_engine = $engine; + $this->render_obj = wpforms()->obj( "frontend_{$this->render_engine}" ); + + $this->render_obj->hooks(); + } + + /** + * Initialize form styling settings. + * + * @since 1.8.1 + */ + public function init_style_settings(): void { + + // Skip if modern markup settings are already set. + $modern_markup_is_set = wpforms_setting( 'modern-markup-is-set' ); + + if ( $modern_markup_is_set ) { + return; + } + + $settings = (array) get_option( 'wpforms_settings', [] ); + $count_posts = wp_count_posts( 'wpforms' ); + + // Set the Modern markup checkbox to the checked state for all new users. + $settings['modern-markup'] = ( $count_posts->publish + $count_posts->trash ) === 0 ? '1' : '0'; + $settings['modern-markup-is-set'] = true; + + // Hide the Modern markup checkbox for all new users. + if ( $settings['modern-markup'] ) { + $settings['modern-markup-hide-setting'] = true; + } + + update_option( 'wpforms_settings', $settings ); + } + + /** + * Primary function to render a form on the frontend. + * + * @since 1.8.1 + * + * @param int $id Form ID. + * @param bool $title Whether to display form title. + * @param bool $description Whether to display form description. + */ + public function output( $id, $title = false, $description = false ): void { + + if ( empty( $id ) ) { + return; + } + + // Grab the form data, if not found, then we bail. + $form = $this->get_form( $id ); + + if ( $form === null || empty( $form->post_content ) ) { + return; + } + + // We should display only the published form. + if ( ! empty( $form->post_status ) && $form->post_status !== 'publish' ) { + return; + } + + // Decode the form data. + $form_data = wpforms_decode( $form->post_content ); + + // Skip if the form data is empty. + if ( empty( $form_data ) ) { + return; + } + + // Basic information. + /** + * Filter frontend form data. + * + * @since 1.4.3 + * + * @param array $form_data Form data. + */ + $form_data = (array) apply_filters( 'wpforms_frontend_form_data', $form_data ); + $form_id = absint( $form->ID ); + $this->action = esc_url_raw( remove_query_arg( 'wpforms' ) ); + $errors = empty( wpforms()->obj( 'process' )->errors[ $form_id ] ) ? [] : wpforms()->obj( 'process' )->errors[ $form_id ]; + $title = filter_var( $title, FILTER_VALIDATE_BOOLEAN ); + $description = filter_var( $description, FILTER_VALIDATE_BOOLEAN ); + + // Pass the current form data to the render object. + $this->render_obj->form_data = $form_data; + + if ( $this->stop_output( $form, $form_data ) ) { + return; + } + + // All checks have passed, so calculate multipage details for the form. + $this->pages = $this->get_pages( $form_data ); + + /** + * Allow modifying a form action attribute. + * + * @since 1.1.2 + * + * @param string $action Action attribute. + * @param array $form_data Form data and settings. + * @param null $deprecated A deprecated argument. + */ + $this->action = apply_filters( 'wpforms_frontend_form_action', $this->action, $form_data, null ); + + $form_classes = [ 'wpforms-validate', 'wpforms-form' ]; + + if ( ! empty( $form_data['settings']['ajax_submit'] ) && ! $this->amp_obj->is_amp() ) { + $form_classes[] = 'wpforms-ajax-form'; + } + + $form_atts = [ + 'id' => sprintf( 'wpforms-form-%d', absint( $form_id ) ), + 'class' => $form_classes, + 'data' => [ + 'formid' => absint( $form_id ), + ], + 'atts' => [ + 'method' => 'post', + 'enctype' => 'multipart/form-data', + 'action' => esc_url( $this->action ), + ], + ]; + + /** + * Allow modifying form attributes. + * + * @since 1.4.5 + * + * @param array $form_atts Form attributes. + * @param array $form_data Form data and settings. + */ + $form_atts = apply_filters( 'wpforms_frontend_form_atts', $form_atts, $form_data ); + + $this->form_container_open( $form_data, $form ); + + // Reset rendered fields array. + $this->rendered_fields = []; + + /** + * Fires before form output. + * + * @since 1.5.4.2 + * + * @param array $form_data Form data. + * @param WP_Post $form Form. + */ + do_action( 'wpforms_frontend_output_form_before', $form_data, $form ); + + echo '
              '; + + /** + * Fires before closing the form. + * + * @since 1.0.0 + * + * @param array $form_data Form data. + * @param null $deprecated Null. + * @param bool $title Whether to display form title. + * @param bool $description Whether to display form description. + * @param array $errors Form processing errors. + */ + do_action( 'wpforms_frontend_output', $form_data, null, $title, $description, $errors ); + + echo '
              '; + + /** + * Allow adding content after a form. + * + * @since 1.5.4.2 + * + * @param array $form_data Form data and settings. + * @param WP_Post $form Form post type. + */ + do_action( 'wpforms_frontend_output_form_after', $form_data, $form ); + + $this->form_container_close( $form_data, $form ); + + // Add a form to class property that tracks all forms in a page. + $this->forms[ $form_id ] = $form_data; + + // Optional debug information if WPFORMS_DEBUG is defined. + wpforms_debug_data( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing + + /** + * Fires after frontend output. + * + * @since 1.0.0 + * + * @param array $form_data Form data and settings. + * @param WP_Post $form Form post type. + */ + do_action( 'wpforms_frontend_output_after', $form_data, $form ); + } + + /** + * Get form. + * + * @since 1.8.1 + * + * @param int|string|false $id Form id. + * + * @return array|WP_Post|null + * @noinspection NullPointerExceptionInspection + */ + private function get_form( $id ) { + + if ( empty( $id ) ) { + return null; + } + + // Grab the form data, if not found, then we bail. + $form = wpforms()->obj( 'form' )->get( (int) $id ); + + if ( empty( $form ) ) { + return null; + } + + // We should display only the published form. + if ( ! empty( $form->post_status ) && $form->post_status !== 'publish' ) { + return null; + } + + return $form; + } + + /** + * Check whether we should stop the output. + * + * @since 1.8.1 + * + * @param WP_Post $form Form. + * @param array $form_data Form data. + * + * @return bool + */ + private function stop_output( WP_Post $form, array $form_data ): bool { + + $form_id = absint( $form->ID ); + + /** + * Is the form empty? + * Check before output the form on the frontend. + * + * @since 1.7.7 + * + * @param bool $form_is_empty Is the form empty? + * @param array $form_data Form data. + */ + $form_is_empty = apply_filters( 'wpforms_frontend_output_form_is_empty', empty( $form_data['fields'] ), $form_data ); + + // If the form does not contain any fields - do not proceed. + if ( $form_is_empty ) { + $this->render_obj->form_is_empty(); + + return true; + } + + // We need to stop output processing in case we are on the AMP page. + if ( $this->amp_obj->stop_output( $form_data ) ) { + return true; + } + + // Add url query var wpforms_form_id to track post_max_size overflows. + if ( in_array( 'file-upload', wp_list_pluck( $form_data['fields'], 'type' ), true ) ) { + $this->action = add_query_arg( 'wpforms_form_id', $form_id, $this->action ); + } + + /** + * Fires before form data output. + * + * @since 1.0.0 + * + * @param array $form_data Form data. + * @param WP_Post $form Form. + */ + do_action( 'wpforms_frontend_output_before', $form_data, $form ); + + if ( $this->output_success( $form ) ) { + return true; + } + + /** + * Allow filter to return early if some condition is not met. + * + * @since 1.0.0 + * + * @param bool $load Load frontend flag. + * @param array $form_data Form data. + * @param null $deprecated Deprecated. + */ + if ( ! apply_filters( 'wpforms_frontend_load', true, $form_data, null ) ) { + + $this->form_container_open( $form_data, $form ); + + /** + * Fires when the frontend is not loaded. + * + * @since 1.4.8 + * + * @param array $form_data Form data. + * @param WP_Post $form Form. + */ + do_action( 'wpforms_frontend_not_loaded', $form_data, $form ); + + $this->form_container_close( $form_data, $form ); + + return true; + } + + return false; + } + + /** + * Get pages. + * + * @since 1.8.1 + * + * @param array $form_data Form data. + * + * @return array|false + * @noinspection PhpTernaryExpressionCanBeReducedToShortVersionInspection + * @noinspection ElvisOperatorCanBeUsedInspection + */ + private function get_pages( array $form_data ) { + + $pages = wpforms_get_pagebreak_details( $form_data ); + + return $pages ? $pages : false; + } + + /** + * Check whether the output was successful. + * + * @since 1.8.1 + * + * @param WP_Post $form Form. + * + * @return bool + */ + private function output_success( WP_Post $form ): bool { + + $form_id = absint( $form->ID ); + $process = wpforms()->obj( 'process' ); + + if ( ! $process ) { + return false; + } + + $form_data = $process->form_data; + $errors = empty( $process->errors[ $form_id ] ) ? [] : $process->errors[ $form_id ]; + + // Check for return hash. + if ( + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + ! empty( $_GET['wpforms_return'] ) && + $process->valid_hash && + (int) $form_data['id'] === $form_id + ) { + $this->form_container_open( $form_data, $form ); + + /** + * Fires at successful output. + * + * @since 1.4.5 + * + * @param array $form_data Form data. + * @param array $fields Form fields. + * @param int $entry_id Form ID. + */ + do_action( 'wpforms_frontend_output_success', $form_data, $process->fields, $process->entry_id ); + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + wpforms_debug_data( $_POST ); + + $this->form_container_close( $form_data, $form ); + + return true; + } + + // Check for the error-free completed form. + if ( + // phpcs:disable WordPress.Security.NonceVerification.Missing + empty( $errors ) && + ! empty( $form_data ) && + ! empty( $_POST['wpforms']['id'] ) && + (int) $_POST['wpforms']['id'] === $form_id + // phpcs:enable WordPress.Security.NonceVerification.Missing + ) { + // There is no need for a container wrapper when a form is submitted through AJAX. + $this->form_container_open( $form_data, $form ); + + /** This action is documented in the same method, several lines above. */ + do_action( 'wpforms_frontend_output_success', $form_data, $process->fields, $process->entry_id ); + + $this->form_container_close( $form_data, $form ); + + // phpcs:ignore WordPress.Security.NonceVerification.Missing + wpforms_debug_data( $_POST ); + + return true; + } + + return false; + } + + /** + * Display a form confirmation message. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * @param array $fields Sanitized field data. + * @param int $entry_id Entry id. + */ + public function confirmation( $form_data, $fields = [], $entry_id = 0 ): void { + + $form_data = (array) $form_data; + + // In AMP, just print template. + if ( $this->amp_obj->output_success_template( $form_data ) ) { + return; + } + + [ $fields, $entry_id ] = $this->prepare_confirmation_args( $fields, $entry_id ); + + $process = wpforms()->obj( 'process' ); + + if ( ! $process ) { + return; + } + + $confirmation = $process->get_current_confirmation(); + $confirmation_message = $process->get_confirmation_message( $form_data, $fields, $entry_id ); + + // Only display if a confirmation message has been configured. + if ( empty( $confirmation ) || empty( $confirmation_message ) ) { + return; + } + + // Load confirmation-specific assets. + $this->assets_confirmation( $form_data ); + + /** + * Fires once before the confirmation message. + * + * @since 1.6.9 + * + * @param array $confirmation Current confirmation data. + * @param array $form_data Form data and settings. + * @param array $fields Sanitized field data. + * @param int $entry_id Entry id. + */ + do_action( 'wpforms_frontend_confirmation_message_before', $confirmation, $form_data, $fields, $entry_id ); + + $class = (int) wpforms_setting( 'disable-css', '1' ) === 1 ? + 'wpforms-confirmation-container-full' : + 'wpforms-confirmation-container'; + + $class .= $this->confirmation_message_scroll ? ' wpforms-confirmation-scroll' : ''; + + $this->render_obj->confirmation( $confirmation_message, $class, $form_data ); + + /** + * Fires once after the confirmation message. + * + * @since 1.6.9 + * + * @param array $confirmation Current confirmation data. + * @param array $form_data Form data and settings. + * @param array $fields Sanitized field data. + * @param int $entry_id Entry id. + */ + do_action( 'wpforms_frontend_confirmation_message_after', $confirmation, $form_data, $fields, $entry_id ); + } + + /** + * Prepare confirmation arguments. + * + * @since 1.8.1 + * + * @param array $fields Sanitized field data. + * @param int $entry_id Entry id. + * + * @return array + */ + private function prepare_confirmation_args( $fields = [], $entry_id = 0 ): array { + + // phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash + + if ( empty( $fields ) ) { + $fields = ! empty( $_POST['wpforms']['complete'] ) ? $_POST['wpforms']['complete'] : []; + } + + if ( empty( $entry_id ) ) { + $entry_id = ! empty( $_POST['wpforms']['entry_id'] ) ? $_POST['wpforms']['entry_id'] : 0; + } + + // phpcs:enable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash + + return [ $fields, $entry_id ]; + } + + /** + * Form container classes. + * + * @since 1.7.9 + * + * @param array $form_data Form data and settings. + * + * @return array + */ + private function get_container_classes( $form_data ): array { + + $classes = (int) wpforms_setting( 'disable-css', '1' ) === 1 ? [ 'wpforms-container-full' ] : []; + + /** + * Allow form container classes to be filtered and user-defined classes. + * + * @since 1.0.0 + * + * @param array $classes Classes. + * @param array $form_data Form data and settings. + */ + $classes = (array) apply_filters( 'wpforms_frontend_container_class', $classes, $form_data ); + + if ( ! empty( $form_data['settings']['form_class'] ) ) { + $classes = array_merge( $classes, explode( ' ', $form_data['settings']['form_class'] ) ); + } + + return $classes; + } + + /** + * Display the opening container markup for a form. + * + * @since 1.7.9 + * + * @param array $form_data Form data and settings. + * @param WP_Post $form Form post type. + */ + private function form_container_open( $form_data, $form ): void { + + /** + * Fires before container open tag. + * + * @since 1.5.4.2 + * + * @param array $form_data Form data and settings. + * @param WP_Post $form Form post type. + */ + do_action( 'wpforms_frontend_output_container_before', $form_data, $form ); + + $classes = $this->get_container_classes( $form_data ); + + $this->render_obj->form_container_open( $classes, $form_data ); + } + + /** + * Display the closing container markup for a form. + * + * @since 1.7.9 + * + * @param array $form_data Form data and settings. + * @param WP_Post $form Form post type. + */ + private function form_container_close( $form_data, $form ): void { + + $this->render_obj->form_container_close(); + + /** + * Fires after container close tag. + * + * @since 1.5.4.2 + * + * @param array $form_data Form data and settings. + * @param WP_Post $form Form post type. + */ + do_action( 'wpforms_frontend_output_container_after', $form_data, $form ); + } + + /** + * Form head area, for displaying form title and description if enabled. + * + * @since 1.8.1 + * + * @param array $form_data Form data and settings. + * @param null $deprecated Deprecated in v1.3.7, previously was $form object. + * @param bool $title Whether to display form title. + * @param bool $description Whether to display form description. + * @param array $errors List of all errors filled in WPForms_Process::process(). + * + * @noinspection PhpUnusedParameterInspection + */ + public function head( array $form_data, $deprecated, bool $title, bool $description, $errors ): void { + + // Output title and/or description. + if ( $title === true || $description === true ) { + $this->render_obj->form_head_container( $title, $description, $form_data ); + } + + /** + * Filters ', + esc_html( $msg ) + ); + } + + /** + * Display form error. + * + * @since 1.8.1 + * + * @param string $type Error type. + * @param string $error Error text. + */ + public function form_error( $type, $error ) { + + switch ( $type ) { + case 'header': + case 'footer': + printf( + '', + esc_attr( $this->form_data['id'] ?? 0 ), + esc_attr( $type ), + esc_html__( 'Form error message', 'wpforms-lite' ), + wpautop( wpforms_sanitize_error( $error ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + + case 'header_styled': + case 'footer_styled': + printf( + '', + esc_attr( $this->form_data['id'] ), + esc_attr( $type ), + esc_html__( 'Form error message', 'wpforms-lite' ), + wpautop( wpforms_sanitize_error( $error ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + + case 'header_styled': + case 'footer_styled': + printf( + '', + esc_attr( $this->form_data['id'] ), + esc_attr( $type ), + esc_html__( 'Form error message', 'wpforms-lite' ), + wpautop( wpforms_sanitize_error( $error ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + + case 'header_styled': + case 'footer_styled': + printf( + '', + esc_attr( $this->form_data['id'] ), + esc_attr( $type ), + esc_html__( 'Form error message', 'wpforms-lite' ), + wpautop( wpforms_sanitize_error( $error ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + + case 'recaptcha': + printf( + ' + %1$s%2$s + ', + esc_attr__( 'Recaptcha error message', 'wpforms-lite' ), + wpforms_sanitize_error( $error ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + break; + } + } + + /** + * Field label markup. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + */ + public function field_label( $field, $form_data ) { + + // Do not need to output label if the field requires fieldset. + if ( $this->is_field_requires_fieldset( $field ) ) { + return; + } + + if ( ! empty( $field['label_hide'] ) ) { + $field['properties']['label']['attr']['aria-hidden'] = 'false'; + } + + parent::field_label( $field, $form_data ); + } + + /** + * Open fieldset markup. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + */ + public function field_fieldset_open( $field, $form_data ) { + + if ( ! $this->is_field_requires_fieldset( $field ) ) { + return; + } + + if ( ! empty( $field['label_hide'] ) ) { + $field['properties']['label']['attr']['aria-hidden'] = 'false'; + } + + $label = $field['properties']['label']; + $required = $label['required'] ? wpforms_get_field_required_label() : ''; + + unset( $label['attr']['for'] ); + + printf( + '
              %s%s', + wpforms_html_attributes( $label['id'], $label['class'], $label['data'], $label['attr'] ), + esc_html( $label['value'] ), + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + $required + ); + } + + /** + * Close fieldset markup. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + */ + public function field_fieldset_close( $field, $form_data ) { + + if ( ! $this->is_field_requires_fieldset( $field ) ) { + return; + } + + echo '
              '; + } + + /** + * Whether the field requires fieldset markup. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + */ + private function is_field_requires_fieldset( $field ) { + + if ( empty( $field['type'] ) ) { + return false; + } + + /** + * Determine whether the field is requires fieldset+legend markup on the frontend. + * + * @since 1.8.1 + * + * @param bool $requires_fieldset True if requires. Defaults to false. + * @param array $field Field data. + */ + return (bool) apply_filters( "wpforms_frontend_modern_is_field_requires_fieldset_{$field['type']}", false, $field ); + } + + /** + * Field error. + * + * @since 1.8.1 + * + * @param array $field Field data and settings. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + */ + public function field_error( $field, $form_data ) { + + if ( empty( $field['properties']['error'] ) ) { + return; + } + + $error = $field['properties']['error']; + + printf( + '%2$s', + wpforms_html_attributes( $error['id'], $error['class'], $error['data'], $error['attr'] ), + esc_html( $error['value'] ) + ); + } + + /** + * Define additional field properties. + * + * @since 1.8.1 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + $field_id = "wpforms-{$form_data['id']}-field_{$field['id']}"; + $desc_id = "{$field_id}-description"; + + // Add `id` to field description. + $properties['description']['id'] = $desc_id; + + // Add attributes to error message. + $properties['error']['attr']['role'] = 'alert'; + $properties['error']['attr']['aria-label'] = esc_html__( 'Error message', 'wpforms-lite' ); + $properties['error']['attr']['id'] = $properties['error']['attr']['for'] . '-error'; + $properties['error']['attr']['for'] = ''; + + foreach ( $properties['inputs'] as $input => $input_data ) { + + // Add `aria-errormessage` to inputs (except hidden according to W3C requirements). + if ( ! empty( $input_data['id'] ) && $field['type'] !== 'hidden' ) { + $properties['inputs'][ $input ]['attr']['aria-errormessage'] = "{$input_data['id']}-error"; + } + + // Add `aria-describedby` to inputs. + if ( ! empty( $field['description'] ) ) { + $properties['inputs'][ $input ]['attr']['aria-describedby'] = $desc_id; + } + } + + return $properties; + } + + /** + * Required label (asterisk) markup. + * + * @since 1.8.1 + * + * @param string $label_html Required label markup. + * + * @return string + */ + public function get_field_required_label( $label_html ) { + + return ' '; + } + + /** + * Modify javascript `wpforms_settings` properties on the front end. + * + * @since 1.8.1 + * + * @param array $strings Array `wpforms_settings` properties. + * + * @return array + */ + public function frontend_strings( $strings ) { + + $strings['isModernMarkupEnabled'] = wpforms_get_render_engine() === 'modern'; + $strings['formErrorMessagePrefix'] = esc_html__( 'Form error message', 'wpforms-lite' ); + $strings['errorMessagePrefix'] = esc_html__( 'Error message', 'wpforms-lite' ); + $strings['submitBtnDisabled'] = esc_html__( 'Submit button is disabled during form submission.', 'wpforms-lite' ); + + return $strings; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/CacheBase.php b/wp-content/plugins/wpforms-lite/src/Helpers/CacheBase.php new file mode 100644 index 0000000..9df4210 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/CacheBase.php @@ -0,0 +1,569 @@ +update_settings(); + + $this->cache_key = $this->settings['cache_file']; + $this->cache_dir = $this->get_cache_dir(); // See comment in the method. + $this->cache_file = $this->cache_dir . $this->settings['cache_file']; + + // Do not update caches on heartbeat events. + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $action = isset( $_POST['action'] ) ? sanitize_text_field( wp_unslash( $_POST['action'] ) ) : ''; + + if ( $action === 'heartbeat' ) { + return; + } + + if ( ! $this->allow_load() ) { + return; + } + + // Quit if settings weren't provided. + if ( + empty( $this->settings['remote_source'] ) || + empty( $this->settings['cache_file'] ) + ) { + return; + } + + $this->hooks(); + } + + /** + * Base hooks. + * + * @since 1.6.8 + */ + private function hooks(): void { + + add_action( 'shutdown', [ $this, 'cache_dir_complete' ] ); + + if ( empty( $this->settings['update_action'] ) ) { + return; + } + + // Schedule recurring updates. + add_action( 'admin_init', [ $this, 'schedule_update_cache' ] ); + add_action( $this->settings['update_action'], [ $this, 'update' ] ); + + // Sync cache updates. + add_action( 'wpforms_helpers_cache_base_sync_updates', [ $this, 'sync_updates' ] ); + } + + /** + * Sync cache updates. + * + * If one update has been done, run the update for other caches. + * + * @since 1.8.9 + * + * @noinspection PhpCastIsUnnecessaryInspection + * @noinspection UnnecessaryCastingInspection + */ + public function sync_updates(): void { + + // Prevent infinite loop. + if ( $this->syncing_updates ) { + foreach ( (array) static::SYNC_WITH as $classname ) { + $cache = wpforms()->obj( $classname ); + + if ( ! $cache instanceof self ) { + continue; + } + + $cache->update( true ); + } + } + } + + /** + * Set up settings. + * + * @since 1.6.8 + */ + private function update_settings(): void { + + $default_settings = [ + + // Remote source URL. + // For instance: 'https://wpformsapi.com/feeds/v1/addons/'. + 'remote_source' => '', + + // Request timeout in seconds. + 'timeout' => 10, + + // Cache file. + // Just file name. For instance: 'addons.json'. + 'cache_file' => '', + + // Cache time to live in seconds. + 'cache_ttl' => WEEK_IN_SECONDS, + + // Scheduled update action. + // For instance: 'wpforms_admin_addons_cache_update'. + 'update_action' => '', + // Additional query args for the remote source URL. + 'query_args' => [], + ]; + + $this->settings = wp_parse_args( $this->setup(), $default_settings ); + } + + /** + * Provide settings. + * + * @since 1.6.8 + * + * @return array Settings array. + */ + abstract protected function setup(); + + /** + * Get a cache directory path. + * + * @since 1.6.8 + * + * @return string + */ + protected function get_cache_dir() { + + return File::get_cache_dir(); + } + + /** + * Get data from cache or from API call. + * + * @since 1.8.2 + * + * @return array + */ + public function get() { + + $cache = $this->get_from_cache(); + + if ( ! empty( $cache ) && ! $this->is_expired_cache() ) { + return $cache; + } + + $this->update(); + + return $this->get_from_cache(); + } + + /** + * Determine if the cache is expired. + * + * @since 1.8.2 + * + * @return bool + */ + private function is_expired_cache(): bool { + + return $this->cache_time() + $this->settings['cache_ttl'] < time(); + } + + /** + * Get cache creation time. + * + * @since 1.8.2 + * + * @return int + */ + private function cache_time(): int { + + return (int) Transient::get( $this->cache_key ); + } + + /** + * Determine if the cache file exists. + * + * @since 1.8.2 + * + * @return bool + */ + private function exists(): bool { + + return is_file( $this->cache_file ) && is_readable( $this->cache_file ); + } + + /** + * Get cache from a cache file. + * + * @since 1.8.2 + * + * @return array + */ + private function get_from_cache(): array { + + if ( ! $this->exists() ) { + return []; + } + + $content = File::get_contents( $this->cache_file ); + + // Do not decrypt non-encrypted legacy files, they will be encrypted on the scheduled update. + if ( static::ENCRYPT && ! wpforms_is_json( $content ) ) { + $content = Crypto::decrypt( $content ); + } + + return (array) json_decode( $content, true ); + } + + /** + * Update cache. + * + * @since 1.8.2 + * + * @param bool $force Force update. + * + * @return bool + */ + public function update( bool $force = false ): bool { + + if ( + ! $force && + time() < $this->cache_time() + self::REQUEST_LOCK_TIME * MINUTE_IN_SECONDS + ) { + return false; + } + + Transient::set( $this->cache_key, time(), $this->settings['cache_ttl'] ); + + if ( ! wp_mkdir_p( $this->cache_dir ) ) { + return false; + } + + $data = $this->perform_remote_request(); + $content = wp_json_encode( $data ); + + $this->maybe_update_transient( $data ); + + if ( static::ENCRYPT ) { + $content = Crypto::encrypt( $content ); + } + + if ( ! File::put_contents( $this->cache_file, $content ) ) { + return false; + } + + if ( ! $this->syncing_updates ) { + $this->syncing_updates = true; + + /** + * Action hook after the cache has been updated. + * + * @since 1.8.9 + */ + do_action( 'wpforms_helpers_cache_base_sync_updates' ); + } + + $this->updated = true; + + return true; + } + + /** + * Get data from API. + * + * @since 1.8.2 + * + * @return array + */ + protected function perform_remote_request(): array { + + $query_args = $this->settings['query_args'] ?? []; + + $request_url = add_query_arg( $query_args, $this->settings['remote_source'] ); + $user_agent = wpforms_get_default_user_agent(); + $request = wp_remote_get( + $request_url, + [ + 'timeout' => $this->settings['timeout'], + 'user-agent' => $user_agent, + ] + ); + + $request_url_log = remove_query_arg( [ 'tgm-updater-key' ], $request_url ); + + // Log if the request failed. + if ( is_wp_error( $request ) ) { + $this->add_log( + 'Cached data: HTTP request error', + [ + 'class' => static::class, + 'request_url' => $request_url_log, + 'error' => $request->get_error_message(), + 'error_data' => $request->get_error_data(), + ], + 'error' + ); + + return []; + } + + $response_code = wp_remote_retrieve_response_code( $request ); + $raw_headers = wp_remote_retrieve_headers( $request ); + $response_headers = is_object( $raw_headers ) ? $raw_headers->getAll() : (array) $raw_headers; + $response_body = wp_remote_retrieve_body( $request ); + $response_body_len = strlen( $response_body ); + $response_body_log = $response_body_len > 1024 ? "(First 1 kB):\n" . substr( trim( $response_body ), 0, 1024 ) . '...' : trim( $response_body ); + $response_body_log = esc_html( $response_body_log ); + + $log_data = [ + 'class' => static::class, + 'request_url' => $request_url_log, + 'code' => $response_code, + 'headers' => $response_headers, + 'content_length' => $response_body_len, + 'body' => $response_body_log, + ]; + + // Log the response details in debug mode. + if ( wpforms_debug() ) { + $this->add_log( 'Cached data: Response details', $log_data ); + } + + // Log the error if the response code is not 2xx or 3xx. + if ( $response_code > 399 ) { + $this->add_log( 'Cached data: HTTP request error', $log_data, 'error' ); + + return []; + } + + $json = trim( $response_body ); + $data = json_decode( $json, true ); + + if ( empty( $data ) ) { + $message = $data === null ? 'Invalid JSON' : 'Empty JSON'; + + $log_data = array_merge( + $log_data, + [ + 'json_result' => $message, + 'cache_file' => $this->settings['cache_file'], + 'remote_source' => $this->settings['remote_source'], + ] + ); + + $this->add_log( 'Cached data: ' . $message, $log_data, 'error' ); + + return []; + } + + return $this->prepare_cache_data( $data ); + } + + /** + * Add log. + * + * @since 1.8.9 + * + * @param string $title Log title. + * @param array $data Log data. + * @param string $type Log type. + */ + protected function add_log( string $title, array $data, string $type = 'log' ): void { + + wpforms_log( + $title, + $data, + [ + 'type' => [ $type ], + ] + ); + } + + /** + * Schedule updates. + * + * @since 1.6.8 + */ + public function schedule_update_cache(): void { + + // Just skip if not need to register a scheduled action. + if ( empty( $this->settings['update_action'] ) ) { + return; + } + + $tasks = wpforms()->obj( 'tasks' ); + + if ( + ! $tasks instanceof Tasks || + $tasks->is_scheduled( $this->settings['update_action'] ) !== false + ) { + return; + } + + $tasks->create( $this->settings['update_action'] ) + ->recurring( time() + $this->settings['cache_ttl'], $this->settings['cache_ttl'] ) + ->params() + ->register(); + } + + /** + * Complete the cache directory. + * + * @since 1.6.8 + */ + public function cache_dir_complete(): void { + + if ( ! $this->updated ) { + return; + } + + wpforms_create_upload_dir_htaccess_file(); + wpforms_create_cache_dir_htaccess_file(); + wpforms_create_index_html_file( $this->cache_dir ); + wpforms_create_index_php_file( $this->cache_dir ); + } + + /** + * Invalidate cache. + * + * @since 1.8.7 + */ + public function invalidate_cache(): void { + + Transient::delete( $this->cache_key ); + } + + /** + * Prepare data to store in a local cache. + * + * @since 1.6.8 + * + * @param array|mixed $data Raw data received by the remote request. + * + * @return array Prepared data for caching. + */ + protected function prepare_cache_data( $data ): array { + + if ( empty( $data ) || ! is_array( $data ) ) { + return []; + } + + return $data; + } + + /** + * Maybe update transient duration time. + * + * Allows updating transient duration time if it's less than expiration time. + * To do this, overwrite this method in child classes. + * + * @since 1.8.7 + * + * @param array $data Data received by the remote request. + * + * @return bool|array + */ + protected function maybe_update_transient( array $data ) { + + return $data; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/Chain.php b/wp-content/plugins/wpforms-lite/src/Helpers/Chain.php new file mode 100644 index 0000000..00e6528 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/Chain.php @@ -0,0 +1,416 @@ +value = $value; + } + + /** + * Bind some function to value. + * + * @since 1.5.6 + * + * @param mixed $fn Some function. + * + * @return Chain + */ + public function bind( $fn ) { + + $this->value = $fn( $this->value ); + + return $this; + } + + /** + * Get value. + * + * @since 1.5.6 + * + * @return mixed + */ + public function value() { + + return $this->value; + } + + /** + * Magic call. + * + * @since 1.5.6 + * + * @param string $name Method name. + * @param array $params Parameters. + * + * @throws BadFunctionCallException Invalid function is called. + * + * @return Chain + */ + public function __call( $name, $params ) { + + if ( in_array( $name, $this->allowed_methods(), true ) ) { + + $params = $params === null ? [] : $params; + + array_unshift( $params, $this->value ); + + $this->value = call_user_func_array( $name, array_values( $params ) ); + + return $this; + } + + throw new BadFunctionCallException( esc_html( "Provided function { $name } is not allowed. See Chain::allowed_methods()." ) ); + } + + /** + * Join array elements with a string. + * + * @since 1.5.6 + * + * @param string $glue Defaults to an empty string. + * + * @return Chain + */ + public function implode( $glue = '' ) { + + $this->value = implode( $glue, $this->value ); + + return $this; + } + + /** + * Split a string by a string. + * + * @since 1.5.6 + * + * @param string $delimiter The boundary string. + * + * @return Chain + */ + public function explode( $delimiter ) { + + $this->value = explode( $delimiter, $this->value ); + + return $this; + } + + /** + * Apply the callback to the elements of the given arrays. + * + * @since 1.5.6 + * + * @param callable $cb Callback. + * + * @return Chain + */ + public function map( $cb ) { + + $this->value = array_map( $cb, $this->value ); + + return $this; + } + + /** + * Pop array. + * + * @since 1.5.6 + * + * @return Chain + */ + public function pop() { + + $this->value = array_pop( $this->value ); + + return $this; + } + + /** + * Run first or second callback based on a condition. + * + * @since 1.5.6 + * + * @param callable $condition Condition function. + * @param callable $true_result If condition will return true we run this function. + * @param callable $false_result If condition will return false we run this function. + * + * @return Chain + */ + public function iif( $condition, $true_result, $false_result = null ) { + + if ( ! is_callable( $false_result ) ) { + $false_result = function() { + return ''; + }; + } + $this->value = array_map( + function( $el ) use ( $condition, $true_result, $false_result ) { + if ( call_user_func( $condition, $el ) ) { + return call_user_func( $true_result, $el ); + } + return call_user_func( $false_result, $el ); + }, + $this->value + ); + + return $this; + } + + /** + * All allowed methods to work with data. + * + * @since 1.5.6 + * + * @return array + */ + public function allowed_methods() { + + return [ + 'array_change_key_case', + 'array_chunk', + 'array_column', + 'array_combine', + 'array_count_values', + 'array_diff_assoc', + 'array_diff_key', + 'array_diff_uassoc', + 'array_diff_ukey', + 'array_diff', + 'array_fill_keys', + 'array_fill', + 'array_filter', + 'array_flip', + 'array_intersect_assoc', + 'array_intersect_key', + 'array_intersect_uassoc', + 'array_intersect_ukey', + 'array_intersect', + 'array_key_first', + 'array_key_last', + 'array_keys', + 'array_map', + 'array_merge_recursive', + 'array_merge', + 'array_pad', + 'array_pop', + 'array_product', + 'array_rand', + 'array_reduce', + 'array_replace_recursive', + 'array_replace', + 'array_reverse', + 'array_shift', + 'array_slice', + 'array_splice', + 'array_sum', + 'array_udiff_assoc', + 'array_udiff_uassoc', + 'array_udiff', + 'array_uintersect_assoc', + 'array_uintersect_uassoc', + 'array_uintersect', + 'array_unique', + 'array_values', + 'count', + 'current', + 'end', + 'key', + 'next', + 'prev', + 'range', + 'reset', + 'implode', + 'ltrim', + 'rtrim', + 'md5', + 'str_getcsv', + 'str_ireplace', + 'str_pad', + 'str_repeat', + 'str_rot13', + 'str_shuffle', + 'str_split', + 'str_word_count', + 'strcasecmp', + 'strchr', + 'strcmp', + 'strcoll', + 'strcspn', + 'strip_tags', + 'stripcslashes', + 'stripos', + 'stripslashes', + 'stristr', + 'strlen', + 'strnatcasecmp', + 'strnatcmp', + 'strncasecmp', + 'strncmp', + 'strpbrk', + 'strpos', + 'strrchr', + 'strrev', + 'strripos', + 'strrpos', + 'strspn', + 'strstr', + 'strtok', + 'strtolower', + 'strtoupper', + 'strtr', + 'substr_compare', + 'substr_count', + 'substr_replace', + 'substr', + 'trim', + 'ucfirst', + 'ucwords', + 'vfprintf', + 'vprintf', + 'vsprintf', + 'wordwrap', + ]; + } + + /** + * Create myself. + * + * @since 1.5.6 + * + * @param mixed $value Current. + * + * @return Chain + */ + public static function of( $value = null ) { + + return new self( $value ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/Crypto.php b/wp-content/plugins/wpforms-lite/src/Helpers/Crypto.php new file mode 100644 index 0000000..c79d18a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/Crypto.php @@ -0,0 +1,130 @@ +get_results( + $wpdb->prepare( 'SHOW TABLES LIKE %s', $table_name ), + 'ARRAY_N' + ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + + $tables = ! empty( $tables ) ? wp_list_pluck( $tables, 0 ) : []; + + self::set_existing_tables_cache( $tables, $table_name ); + + return self::$existing_tables[ $table_name ] ?? []; + } + + /** + * Get the list of all existing custom tables starting with `wpforms_*` and cache the result. + * + * @since 1.8.7 + * + * @return array List of table names. + */ + public static function get_existing_custom_tables(): array { + + global $wpdb; + + return self::get_existing_tables( "{$wpdb->prefix}wpforms_%" ); + } + + /** + * Check if the database table exists and cache the result. + * + * @since 1.8.7 + * + * @param string $table_name Table name. Can have SQL wildcard. + * + * @return bool + */ + public static function table_exists( string $table_name ): bool { + + /** + * Filters existence of a table before a request to the database is executed. + * + * @since 1.8.7 + * + * @param integer $exists Table exists. + * @param string $table_name Table name. + */ + if ( apply_filters( 'wpforms_helpers_db_pre_table_exists', false, $table_name ) ) { + return true; + } + + foreach ( self::get_existing_tables( $table_name ) as $existing_table ) { + if ( self::wildcard_match( $table_name, $existing_table ) ) { + return true; + } + } + + return false; + } + + /** + * Get the list of existing tables from cache. + * + * @since 1.8.7 + * + * @param string $table_name Table name. Can have SQL wildcard. + * + * @return array List of table names. + */ + private static function get_existing_tables_cache( string $table_name ): array { + + $tables = Transient::get( self::EXISTING_TABLES_TRANSIENT_NAME ); + self::$existing_tables = $tables ? $tables : []; + + return self::$existing_tables[ $table_name ] ?? []; + } + + /** + * Set existing tables cache. + * + * @since 1.8.7 + * + * @param array $tables Existing tables with given table name. + * @param string $table_name Table name. + * + * @return void + */ + private static function set_existing_tables_cache( array $tables, string $table_name ) { + + if ( empty( $tables ) ) { + return; + } + + self::$existing_tables[ $table_name ] = $tables; + + /** + * Filters existing tables transient expiration time. + * + * @since 1.8.7 + * + * @param integer $expiration Expiration time. + */ + $expiration = apply_filters( 'wpforms_helpers_db_existing_tables_transient_expiration', self::EXISTING_TABLES_TRANSIENT_EXPIRATION ); + + Transient::set( self::EXISTING_TABLES_TRANSIENT_NAME, self::$existing_tables, $expiration ); + } + + /** + * Flush existing tables cache. + * + * @since 1.9.0 + * + * @return void + */ + public static function flush_existing_tables_cache() { + + self::$existing_tables = []; + + Transient::delete( self::EXISTING_TABLES_TRANSIENT_NAME ); + } + + /** + * Wildcard match. + * Works as MySQL LIKE match. + * + * @since 1.8.7 + * + * @param string $pattern Pattern. + * @param string $subject String to search into. + * + * @return false|int + */ + private static function wildcard_match( string $pattern, string $subject ) { + + $regex = str_replace( + [ '%', '_' ], // MySQL wildcard chars. + [ '.*', '.' ], // Regexp chars. + preg_quote( $pattern, '/' ) + ); + + return preg_match( '/^' . $regex . '$/is', $subject ); + } + + /** + * Check if all custom tables exist. + * + * @since 1.9.0 + * + * @return bool True if all custom tables exist. False if any is missing. + */ + public static function custom_tables_exist(): bool { + + global $wpdb; + + $existing_tables = self::get_existing_custom_tables(); + $custom_tables = wpforms()->is_pro() ? WPForms_Pro::CUSTOM_TABLES : WPForms_Lite::CUSTOM_TABLES; + + foreach ( $custom_tables as $table_name => $handler_class ) { + if ( ! in_array( $wpdb->prefix . $table_name, $existing_tables, true ) ) { + return false; + } + } + + return true; + } + + /** + * Create all custom DB tables. + * + * @since 1.9.0 + * + * @param bool $flush_cache Clear existing custom tables cache. + * + * @noinspection PhpPossiblePolymorphicInvocationInspection + */ + public static function create_custom_tables( bool $flush_cache = false ) { + + global $wpdb; + + if ( $flush_cache ) { + self::flush_existing_tables_cache(); + } + + $existing_tables = self::get_existing_custom_tables(); + $custom_tables = wpforms()->is_pro() ? WPForms_Pro::CUSTOM_TABLES : WPForms_Lite::CUSTOM_TABLES; + $created = false; + + foreach ( $custom_tables as $table_name => $handler_class ) { + if ( in_array( $wpdb->prefix . $table_name, $existing_tables, true ) ) { + continue; + } + + /** + * Child class of WPForms_DB. + * + * @var $handler WPForms_DB + */ + $handler = new $handler_class(); + + // Create a table. + $handler->create_table(); + + $created = true; + } + + if ( $created ) { + Transient::delete( self::EXISTING_TABLES_TRANSIENT_NAME ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/File.php b/wp-content/plugins/wpforms-lite/src/Helpers/File.php new file mode 100644 index 0000000..541aa9c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/File.php @@ -0,0 +1,409 @@ + [ 'error' ] ] + ); + + return null; + } + + $is_filesystem_setup = true; + + return $wp_filesystem; + } + + /** + * Get file contents. + * + * @since 1.8.6 + * + * @param string $file File path. + * + * @return string|false + */ + public static function get_contents( $file ) { + + $filesystem = self::get_filesystem(); + + if ( + ! $filesystem + || ! $filesystem->is_readable( $file ) + || $filesystem->is_dir( $file ) + ) { + return false; + } + + return $filesystem->size( $file ) > 0 ? $filesystem->get_contents( $file ) : ''; + } + + /** + * Save file contents. + * + * @since 1.8.6 + * + * @param string $file File path. + * @param string $content File content. + * + * @return bool + */ + public static function put_contents( $file, $content ): bool { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem ) { + return false; + } + + return $filesystem->put_contents( $file, $content ); + } + + /** + * Determine whether a file or directory exists. + * + * @since 1.9.1 + * + * @param string $path Path to a file or directory. + * + * @return bool Whether $path exists or not. + */ + public static function exists( string $path ): bool { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem ) { + return false; + } + + return $filesystem->exists( $path ); + } + + /** + * Copies a file. + * + * @since 1.9.1 + * + * @param string $source Path to the source file. + * @param string $destination Path to the destination file. + * @param bool $overwrite Optional. Whether to overwrite the destination file if it exists. + * Default false. + * + * @return bool True on success, false on failure. + */ + public static function copy( string $source, string $destination, bool $overwrite = false ): bool { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem ) { + return false; + } + + return $filesystem->copy( $source, $destination, $overwrite ); + } + + /** + * Move a file or files from source to destination. + * + * @since 1.8.8 + * + * @param string $source Source file or glob pattern. + * @param string $destination Destination file or directory. + * + * @return bool + */ + public static function move( string $source, string $destination ): bool { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem ) { + return false; + } + + foreach ( glob( $source ) as $filename ) { + $move = $filesystem->move( $filename, $destination . basename( $filename ), true ); + + if ( ! $move ) { + return false; + } + } + + return true; + } + + /** + * Delete a file or directory. + * + * @since 1.8.8 + * + * @param string $file Path to the file or directory. + * + * @return bool + */ + public static function delete( string $file ): bool { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem ) { + return false; + } + + return $filesystem->delete( $file, true ); + } + + /** + * Create a directory. + * + * @since 1.8.8 + * + * @param string $dir Path directory. + * + * @return bool True on success, false on failure. If the directory already exists, this method will return true. + */ + public static function mkdir( string $dir ): bool { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem ) { + return false; + } + + if ( $filesystem->is_dir( $dir ) ) { + return true; + } + + return $filesystem->mkdir( $dir ); + } + + /** + * Gets details for files in a directory or a specific file. + * + * @since 1.8.8 + * + * @param string $dir Path directory. + * + * @return array|bool + */ + public static function dirlist( string $dir ) { + + $filesystem = self::get_filesystem(); + + if ( ! $filesystem || ! $filesystem->is_dir( $dir ) ) { + return false; + } + + return $filesystem->dirlist( $dir, false ); + } + + /** + * Get the upload directory path. + * + * @since 1.8.7 + * + * @return string + */ + public static function get_upload_dir(): string { + + static $upload_dir; + + if ( $upload_dir ) { + /** + * Since wpforms_upload_dir() relies on hooks, and hooks can be added unpredictably, + * we need to cache the result of this method. + * Otherwise, it is a risk to save a cache file to one dir and try to get from another. + */ + return $upload_dir; + } + + $wpforms_upload_dir = wpforms_upload_dir(); + $wpforms_upload_path = ! empty( $wpforms_upload_dir['path'] ) + ? $wpforms_upload_dir['path'] + : WP_CONTENT_DIR . '/uploads/wpforms'; + $upload_dir = trailingslashit( wp_normalize_path( $wpforms_upload_path ) ); + + return $upload_dir; + } + + /** + * Get the upload directory URL. + * + * @since 1.9.7.3 + * + * @return string + */ + public static function get_upload_url(): string { + + static $upload_url; + + if ( $upload_url ) { + /** + * Since wpforms_upload_dir() relies on hooks, and hooks can be added unpredictably, + * we need to cache the result of this method. + * Otherwise, it is a risk to save a cache file to one dir and try to get from another. + */ + return $upload_url; + } + + $wpforms_upload_dir = wpforms_upload_dir(); + + return ! empty( $wpforms_upload_dir['url'] ) + ? $wpforms_upload_dir['url'] + : WP_CONTENT_URL . '/uploads/wpforms'; + } + + /** + * Get the cache directory path. + * + * @since 1.8.6 + * + * @return string + */ + public static function get_cache_dir(): string { + + static $cache_dir; + + if ( $cache_dir ) { + /** + * Since wpforms_upload_dir() relies on hooks, and hooks can be added unpredictably, + * we need to cache the result of this method. + * Otherwise, it is a risk to save a cache file to one dir and try to get from another. + */ + return $cache_dir; + } + + $cache_dir = self::get_upload_dir() . 'cache/'; + + return $cache_dir; + } + + /** + * Check whether the file is already updated. + * + * @since 1.8.7 + * + * @param string $filename Filename. + * @param string $cache_key Cache key. + * + * @return bool + */ + public static function is_file_updated( string $filename, string $cache_key = '' ): bool { + + $filename = wp_normalize_path( $filename ); + $cache_key = $cache_key ? $cache_key : 'wpforms_' . $filename . '_file'; + + if ( ! is_file( $filename ) ) { + return false; + } + + $cached_stat = Transient::get( $cache_key ); + $stat = array_intersect_key( + stat( $filename ), + [ + 'size' => 0, + 'mtime' => 0, + 'ctime' => 0, + ] + ); + + if ( $cached_stat === $stat ) { + return true; + } + + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, WordPress.WP.AlternativeFunctions.unlink_unlink + @unlink( $filename ); + + return false; + } + + /** + * Save file updated stat. + * + * @since 1.8.7 + * + * @param string $filename Filename. + * @param string $cache_key Cache key. + * + * @return void + */ + public static function save_file_updated_stat( string $filename, string $cache_key = '' ): void { + + $filename = wp_normalize_path( $filename ); + $cache_key = $cache_key ? $cache_key : 'wpforms_' . $filename . '_file'; + + clearstatcache( true, $filename ); + + $stat = array_intersect_key( + stat( $filename ), + [ + 'size' => 0, + 'mtime' => 0, + 'ctime' => 0, + ] + ); + + Transient::set( $cache_key, $stat ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/Form.php b/wp-content/plugins/wpforms-lite/src/Helpers/Form.php new file mode 100644 index 0000000..03b5ffc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/Form.php @@ -0,0 +1,70 @@ + '', // Please always pass this. + 'destination' => '', // And this + 'clear_destination' => false, + 'abort_if_destination_exists' => true, // Abort if the Destination directory exists, Pass clear_destination as false please + 'clear_working' => true, + 'is_multi' => false, + 'hook_extra' => [], // Pass any extra $hook_extra args here, this will be passed to any hooked filters. + ]; + + $options = wp_parse_args( $options, $defaults ); + + /** + * Filter the package options before running an update. + * + * See also {@see 'upgrader_process_complete'}. + * + * @since 4.3.0 + * + * @param array $options { + * Options used by the upgrader. + * + * @type string $package Package for update. + * @type string $destination Update location. + * @type bool $clear_destination Clear the destination resource. + * @type bool $clear_working Clear the working resource. + * @type bool $abort_if_destination_exists Abort if the Destination directory exists. + * @type bool $is_multi Whether the upgrader is running multiple times. + * @type array $hook_extra { + * Extra hook arguments. + * + * @type string $action Type of action. Default 'update'. + * @type string $type Type of update process. Accepts 'plugin', 'theme', or 'core'. + * @type bool $bulk Whether the update process is a bulk update. Default true. + * @type string $plugin Path to the plugin file relative to the plugins directory. + * @type string $theme The stylesheet or template name of the theme. + * @type string $language_update_type The language pack update type. Accepts 'plugin', 'theme', + * or 'core'. + * @type object $language_update The language pack update offer. + * } + * } + */ + $options = apply_filters( 'upgrader_package_options', $options ); + + if ( ! $options['is_multi'] ) { // call $this->header separately if running multiple times + $this->skin->header(); + } + + // Connect to the Filesystem first. + $res = $this->fs_connect( [ WP_CONTENT_DIR, $options['destination'] ] ); + // Mainly for non-connected filesystem. + if ( ! $res ) { + if ( ! $options['is_multi'] ) { + $this->skin->footer(); + } + return false; + } + + $this->skin->before(); + + if ( is_wp_error( $res ) ) { + $this->skin->error( $res ); + $this->skin->after(); + if ( ! $options['is_multi'] ) { + $this->skin->footer(); + } + return $res; + } + + /* + * Download the package (Note, This just returns the filename + * of the file if the package is a local file) + */ + $download = $this->download_package( $options['package'], true ); + + // Allow for signature soft-fail. + // WARNING: This may be removed in the future. + if ( is_wp_error( $download ) && $download->get_error_data( 'softfail-filename' ) ) { + + // Don't output the 'no signature could be found' failure message for now. + if ( (string) $download->get_error_code() !== 'signature_verification_no_signature' || WP_DEBUG ) { + // Outout the failure error as a normal feedback, and not as an error: + //$this->skin->feedback( $download->get_error_message() ); + + // Report this failure back to WordPress.org for debugging purposes. + wp_version_check( + [ + 'signature_failure_code' => $download->get_error_code(), + 'signature_failure_data' => $download->get_error_data(), + ] + ); + } + + // Pretend this error didn't happen. + $download = $download->get_error_data( 'softfail-filename' ); + } + + if ( is_wp_error( $download ) ) { + $this->skin->error( $download ); + $this->skin->after(); + if ( ! $options['is_multi'] ) { + $this->skin->footer(); + } + return $download; + } + + $delete_package = ( (string) $download !== (string) $options['package'] ); // Do not delete a "local" file. + + // Unzips the file into a temporary directory. + $working_dir = $this->unpack_package( $download, $delete_package ); + if ( is_wp_error( $working_dir ) ) { + $this->skin->error( $working_dir ); + $this->skin->after(); + if ( ! $options['is_multi'] ) { + $this->skin->footer(); + } + return $working_dir; + } + + // With the given options, this installs it to the destination directory. + $result = $this->install_package( + [ + 'source' => $working_dir, + 'destination' => $options['destination'], + 'clear_destination' => $options['clear_destination'], + 'abort_if_destination_exists' => $options['abort_if_destination_exists'], + 'clear_working' => $options['clear_working'], + 'hook_extra' => $options['hook_extra'], + ] + ); + + $this->skin->set_result( $result ); + if ( is_wp_error( $result ) ) { + $this->skin->error( $result ); + //$this->skin->feedback( 'process_failed' ); + } else { + // Installation succeeded. + //$this->skin->feedback( 'process_success' ); + } + + $this->skin->after(); + + if ( ! $options['is_multi'] ) { + + /** + * Fire when the upgrader process is complete. + * + * See also {@see 'upgrader_package_options'}. + * + * @since 3.6.0 + * @since 3.7.0 Added to WP_Upgrader::run(). + * @since 4.6.0 `$translations` was added as a possible argument to `$hook_extra`. + * + * @param WP_Upgrader $this WP_Upgrader instance. In other contexts, $this, might be a + * Theme_Upgrader, Plugin_Upgrader, Core_Upgrade, or + * Language_Pack_Upgrader instance. + * @param array $hook_extra { + * Array of bulk item update data. + * + * @type string $action Type of action. Default 'update'. + * @type string $type Type of update process. Accepts 'plugin', 'theme', 'translation', or 'core'. + * @type bool $bulk Whether the update process is a bulk update. Default true. + * @type array $plugins Array of the basename paths of the plugins' main files. + * @type array $themes The theme slugs. + * @type array $translations { + * Array of translations update data. + * + * @type string $language The locale the translation is for. + * @type string $type Type of translation. Accepts 'plugin', 'theme', or 'core'. + * @type string $slug Text domain the translation is for. The slug of a theme/plugin or + * 'default' for core translations. + * @type string $version The version of a theme, plugin, or core. + * } + * } + */ + do_action( 'upgrader_process_complete', $this, $options['hook_extra'] ); + + $this->skin->footer(); + } + + return $result; + } + + /** + * Toggle maintenance mode for the site. + * + * Create/delete the maintenance file to enable/disable maintenance mode. + * + * @since 2.8.0 + * + * @global WP_Filesystem_Base $wp_filesystem Subclass + * + * @param bool $enable True to enable maintenance mode, false to disable. + */ + public function maintenance_mode( $enable = false ) { + global $wp_filesystem; + $file = $wp_filesystem->abspath() . '.maintenance'; + if ( $enable ) { + //$this->skin->feedback( 'maintenance_start' ); + // Create maintenance file to signal that we are upgrading + $maintenance_string = ''; + $wp_filesystem->delete( $file ); + $wp_filesystem->put_contents( $file, $maintenance_string, FS_CHMOD_FILE ); + } elseif ( ! $enable && $wp_filesystem->exists( $file ) ) { + //$this->skin->feedback( 'maintenance_end' ); + $wp_filesystem->delete( $file ); + } + } + + /** + * Download a package. + * + * @since 2.8.0 + * @since 5.5.0 Added the `$hook_extra` parameter. + * + * @param string $package The URI of the package. If this is the full path to an + * existing local file, it will be returned untouched. + * @param bool $check_signatures Whether to validate file signatures. Default false. + * @param array $hook_extra Extra arguments to pass to the filter hooks. Default empty array. + * @return string|WP_Error The full path to the downloaded package file, or a WP_Error object. + */ + public function download_package( $package, $check_signatures = false, $hook_extra = [] ) { + + /** + * Filters whether to return the package. + * + * @since 3.7.0 + * @since 5.5.0 Added the `$hook_extra` parameter. + * + * @param bool $reply Whether to bail without returning the package. + * Default false. + * @param string $package The package file name. + * @param WP_Upgrader $this The WP_Upgrader instance. + * @param array $hook_extra Extra arguments passed to hooked filters. + */ + $reply = apply_filters( 'upgrader_pre_download', false, $package, $this, $hook_extra ); + if ( false !== $reply ) { + return $reply; + } + + if ( ! preg_match( '!^(http|https|ftp)://!i', $package ) && file_exists( $package ) ) { // Local file or remote? + return $package; // Must be a local file. + } + + if ( empty( $package ) ) { + return new WP_Error( 'no_package', $this->strings['no_package'] ); + } + + //$this->skin->feedback( 'downloading_package', $package ); + + $download_file = download_url( $package, 300, $check_signatures ); + + if ( is_wp_error( $download_file ) && ! $download_file->get_error_data( 'softfail-filename' ) ) { + return new WP_Error( 'download_failed', $this->strings['download_failed'], $download_file->get_error_message() ); + } + + return $download_file; + } + + /** + * Unpack a compressed package file. + * + * @since 2.8.0 + * + * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. + * + * @param string $package Full path to the package file. + * @param bool $delete_package Optional. Whether to delete the package file after attempting + * to unpack it. Default true. + * @return string|WP_Error The path to the unpacked contents, or a WP_Error on failure. + */ + public function unpack_package( $package, $delete_package = true ) { + global $wp_filesystem; + + //$this->skin->feedback( 'unpack_package' ); + + $upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/'; + + //Clean up contents of upgrade directory beforehand. + $upgrade_files = $wp_filesystem->dirlist( $upgrade_folder ); + if ( ! empty( $upgrade_files ) ) { + foreach ( $upgrade_files as $file ) { + $wp_filesystem->delete( $upgrade_folder . $file['name'], true ); + } + } + + // We need a working directory - Strip off any .tmp or .zip suffixes + $working_dir = $upgrade_folder . basename( basename( $package, '.tmp' ), '.zip' ); + + // Clean up working directory + if ( $wp_filesystem->is_dir( $working_dir ) ) { + $wp_filesystem->delete( $working_dir, true ); + } + + // Unzip package to working directory + $result = unzip_file( $package, $working_dir ); + + // Once extracted, delete the package if required. + if ( $delete_package ) { + // phpcs:ignore WordPress.WP.AlternativeFunctions.unlink_unlink + unlink( $package ); + } + + if ( is_wp_error( $result ) ) { + $wp_filesystem->delete( $working_dir, true ); + if ( $result->get_error_code() === 'incompatible_archive' ) { + return new WP_Error( 'incompatible_archive', $this->strings['incompatible_archive'], $result->get_error_data() ); + } + + return $result; + } + + return $working_dir; + } + + /** + * Install a package. + * + * Copies the contents of a package form a source directory, and installs them in + * a destination directory. Optionally removes the source. It can also optionally + * clear out the destination folder if it already exists. + * + * @since 2.8.0 + * + * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. + * @global array $wp_theme_directories + * + * @param array|string $args { + * Optional. Array or string of arguments for installing a package. Default empty array. + * + * @type string $source Required path to the package source. Default empty. + * @type string $destination Required path to a folder to install the package in. + * Default empty. + * @type bool $clear_destination Whether to delete any files already in the destination + * folder. Default false. + * @type bool $clear_working Whether to delete the files form the working directory + * after copying to the destination. Default false. + * @type bool $abort_if_destination_exists Whether to abort the installation if + * the destination folder already exists. Default true. + * @type array $hook_extra Extra arguments to pass to the filter hooks called by + * WP_Upgrader::install_package(). Default empty array. + * } + * + * @return array|WP_Error The result (also stored in `WP_Upgrader::$result`), or a WP_Error on failure. + */ + public function install_package( $args = [] ) { + + global $wp_filesystem, $wp_theme_directories; + + $defaults = [ + 'source' => '', // Please always pass this + 'destination' => '', // and this + 'clear_destination' => false, + 'clear_working' => false, + 'abort_if_destination_exists' => true, + 'hook_extra' => [], + ]; + + $args = wp_parse_args( $args, $defaults ); + + // These were previously extract()'d. + $source = $args['source']; + $destination = $args['destination']; + $clear_destination = $args['clear_destination']; + + wpforms_set_time_limit( 300 ); + + if ( empty( $source ) || empty( $destination ) ) { + return new WP_Error( 'bad_request', $this->strings['bad_request'] ); + } + //$this->skin->feedback( 'installing_package' ); + + /** + * Filter the install response before the installation has started. + * + * Returning a truthy value, or one that could be evaluated as a WP_Error + * will effectively short-circuit the installation, returning that value + * instead. + * + * @since 2.8.0 + * + * @param bool|WP_Error $response Response. + * @param array $hook_extra Extra arguments passed to hooked filters. + */ + $res = apply_filters( 'upgrader_pre_install', true, $args['hook_extra'] ); + + if ( is_wp_error( $res ) ) { + return $res; + } + + // Retain the Original source and destinations. + $remote_source = $args['source']; + $local_destination = $destination; + + $source_files = array_keys( $wp_filesystem->dirlist( $remote_source ) ); + $remote_destination = $wp_filesystem->find_folder( $local_destination ); + $count_source_files = count( $source_files ); + + // Locate which directory to copy to the new folder, This is based on the actual folder holding the files. + if ( $count_source_files === 1 && $wp_filesystem->is_dir( trailingslashit( $args['source'] ) . $source_files[0] . '/' ) ) { // Only one folder? Then we want its contents. + $source = trailingslashit( $args['source'] ) . trailingslashit( $source_files[0] ); + } elseif ( $count_source_files === 0 ) { + return new WP_Error( 'incompatible_archive_empty', $this->strings['incompatible_archive'], $this->strings['no_files'] ); // There are no files? + } else { // It's only a single file, the upgrader will use the folder name of this file as the destination folder. Folder name is based on zip filename. + $source = trailingslashit( $args['source'] ); + } + + /** + * Filter the source file location for the upgrade package. + * + * @since 2.8.0 + * @since 4.4.0 The $hook_extra parameter became available. + * + * @param string $source File source location. + * @param string $remote_source Remote file source location. + * @param WP_Upgrader $this WP_Upgrader instance. + * @param array $hook_extra Extra arguments passed to hooked filters. + */ + $source = apply_filters( 'upgrader_source_selection', $source, $remote_source, $this, $args['hook_extra'] ); + + if ( is_wp_error( $source ) ) { + return $source; + } + + // Has the source location changed? If so, we need a new source_files list. + if ( $source !== $remote_source ) { + $source_files = array_keys( $wp_filesystem->dirlist( $source ) ); + } + + /* + * Protection against deleting files in any important base directories. + * Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the + * destination directory (WP_PLUGIN_DIR / wp-content/themes) intending + * to copy the directory into the directory, whilst they pass the source + * as the actual files to copy. + */ + $protected_directories = [ ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' ]; + + if ( is_array( $wp_theme_directories ) ) { + $protected_directories = array_merge( $protected_directories, $wp_theme_directories ); + } + + if ( in_array( $destination, $protected_directories ) ) { + $remote_destination = trailingslashit( $remote_destination ) . trailingslashit( basename( $source ) ); + $destination = trailingslashit( $destination ) . trailingslashit( basename( $source ) ); + } + + if ( $clear_destination ) { + // We're going to clear the destination if there's something there. + $removed = $this->clear_destination( $remote_destination ); + + /** + * Filter whether the upgrader cleared the destination. + * + * @since 2.8.0 + * + * @param mixed $removed Whether the destination was cleared. true on success, WP_Error on failure. + * @param string $local_destination The local package destination. + * @param string $remote_destination The remote package destination. + * @param array $hook_extra Extra arguments passed to hooked filters. + */ + $removed = apply_filters( 'upgrader_clear_destination', $removed, $local_destination, $remote_destination, $args['hook_extra'] ); + + if ( is_wp_error( $removed ) ) { + return $removed; + } + } elseif ( $args['abort_if_destination_exists'] && $wp_filesystem->exists( $remote_destination ) ) { + // If we're not clearing the destination folder and something exists there already, Bail. + // But first check to see if there are actually any files in the folder. + $_files = $wp_filesystem->dirlist( $remote_destination ); + + if ( ! empty( $_files ) ) { + $wp_filesystem->delete( $remote_source, true ); // Clear out the source files. + + return new WP_Error( 'folder_exists', $this->strings['folder_exists'], $remote_destination ); + } + } + + // Create destination if needed. + if ( ! $wp_filesystem->exists( $remote_destination ) ) { + if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) ) { + return new WP_Error( 'mkdir_failed_destination', $this->strings['mkdir_failed'], $remote_destination ); + } + } + + // Copy new version of item into place. + $result = copy_dir( $source, $remote_destination ); + + if ( is_wp_error( $result ) ) { + if ( $args['clear_working'] ) { + $wp_filesystem->delete( $remote_source, true ); + } + + return $result; + } + + // Clear the Working folder? + if ( $args['clear_working'] ) { + $wp_filesystem->delete( $remote_source, true ); + } + + $destination_name = basename( str_replace( $local_destination, '', $destination ) ); + + if ( $destination_name === '.' ) { + $destination_name = ''; + } + + $this->result = compact( 'source', 'source_files', 'destination', 'destination_name', 'local_destination', 'remote_destination', 'clear_destination' ); + + /** + * Filter the installation response after the installation has finished. + * + * @since 2.8.0 + * + * @param bool $response Installation response. + * @param array $hook_extra Extra arguments passed to hooked filters. + * @param array $result Installation result data. + */ + $res = apply_filters( 'upgrader_post_install', true, $args['hook_extra'], $this->result ); + + if ( is_wp_error( $res ) ) { + $this->result = $res; + + return $res; + } + + // Bombard the calling function will all the info which we've just used. + return $this->result; + } + + /** + * Install a plugin package. + * + * @since 1.6.3 + * + * @param string $package The full local path or URI of the package. + * @param array $args Optional. Other arguments for installing a plugin package. Default empty array. + * + * @return bool|\WP_Error True if the installation was successful, false or a WP_Error otherwise. + */ + public function install( $package, $args = [] ) { + + $result = parent::install( $package, $args ); + if ( true === $result ) { + do_action( 'wpforms_plugin_installed', $package ); + } + + return $result; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/Templates.php b/wp-content/plugins/wpforms-lite/src/Helpers/Templates.php new file mode 100644 index 0000000..38b934d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/Templates.php @@ -0,0 +1,225 @@ + trailingslashit( get_stylesheet_directory() ) . $template_dir, + 10 => trailingslashit( get_template_directory() ) . $template_dir, + 200 => trailingslashit( WPFORMS_PLUGIN_DIR ) . 'templates', + ]; + + $file_paths = \apply_filters( 'wpforms_helpers_templates_get_theme_template_paths', $file_paths ); + + // Sort the file paths based on priority. + \ksort( $file_paths, SORT_NUMERIC ); + + return \array_map( 'trailingslashit', $file_paths ); + } + + /** + * Locate a template and return the path for inclusion. + * + * @since 1.5.4 + * + * @param string $template_name Template name. + * + * @return string + */ + public static function locate( $template_name ) { + + // Trim off any slashes from the template name. + $template_name = \ltrim( $template_name, '/' ); + + if ( empty( $template_name ) ) { + return \apply_filters( 'wpforms_helpers_templates_locate', '', $template_name ); + } + + $located = ''; + + // Try locating this template file by looping through the template paths. + foreach ( self::get_theme_template_paths() as $template_path ) { + if ( \file_exists( $template_path . $template_name ) ) { + $located = $template_path . $template_name; + break; + } + } + + return \apply_filters( 'wpforms_helpers_templates_locate', $located, $template_name ); + } + + /** + * Include a template. + * Use 'require' if $args are passed or 'load_template' if not. + * + * @since 1.5.4 + * + * @param string $template_name Template name. + * @param array $args Arguments. + * @param bool $extract Extract arguments. + * + * @throws \RuntimeException If extract() tries to modify the scope. + */ + public static function include_html( $template_name, $args = [], $extract = false ) { + + $template_name .= '.php'; + + // Allow 3rd party plugins to filter template file from their plugin. + $located = \apply_filters( 'wpforms_helpers_templates_include_html_located', self::locate( $template_name ), $template_name, $args, $extract ); + $args = \apply_filters( 'wpforms_helpers_templates_include_html_args', $args, $template_name, $extract ); + + if ( empty( $located ) || ! \is_readable( $located ) ) { + return; + } + + // Load template WP way if no arguments were passed. + if ( empty( $args ) ) { + \load_template( $located, false ); + return; + } + + $extract = \apply_filters( 'wpforms_helpers_templates_include_html_extract_args', $extract, $template_name, $args ); + + if ( $extract && \is_array( $args ) ) { + + $created_vars_count = extract( $args, EXTR_SKIP ); // phpcs:ignore WordPress.PHP.DontExtract + + // Protecting existing scope from modification. + if ( count( $args ) !== $created_vars_count ) { + throw new \RuntimeException( 'Extraction failed: variable names are clashing with the existing ones.' ); + } + } + + require $located; + } + + /** + * Like self::include_html, but returns the HTML instead of including. + * + * @since 1.5.4 + * + * @param string $template_name Template name. + * @param array $args Arguments. + * @param bool $extract Extract arguments. + * + * @return string + */ + public static function get_html( $template_name, $args = [], $extract = false ) { + + \ob_start(); + self::include_html( $template_name, $args, $extract ); + return \ob_get_clean(); + } + + /** + * Validate that a file path is safe and within the expected path(s). + * + * Author Scott Kingsley Clark, Pods Framework. + * Refactored to reduce cyclomatic complexity. + * + * @since 1.7.5.5 + * + * @link https://github.com/pods-framework/pods/commit/ea53471e58e638dec06957edc38f9fa86607652c + * + * @param string $path The file path. + * @param null|array|string $paths_to_check The list of path types to check, defaults to just checking 'wpforms'. + * Available: 'wpforms', 'plugins', 'theme', + * or 'all' to check all supported paths. + * + * @return false|string False if the path was not allowed or did not exist, otherwise it returns the normalized path. + */ + public static function validate_safe_path( $path, $paths_to_check = null ) { + + static $available_checks; + + if ( ! $available_checks ) { + $available_checks = [ + 'wpforms' => realpath( WPFORMS_PLUGIN_DIR ), + 'plugins' => [ + realpath( WP_PLUGIN_DIR ), + realpath( WPMU_PLUGIN_DIR ), + ], + 'theme' => [ + realpath( get_stylesheet_directory() ), + realpath( get_template_directory() ), + ], + ]; + + $available_checks['plugins'] = array_unique( array_filter( $available_checks['plugins'] ) ); + $available_checks['theme'] = array_unique( array_filter( $available_checks['theme'] ) ); + $available_checks = array_filter( $available_checks ); + } + + $paths_to_check = $paths_to_check === null ? [ 'wpforms' ] : $paths_to_check; + $paths_to_check = $paths_to_check === 'all' ? array_keys( $available_checks ) : $paths_to_check; + $paths_to_check = (array) $paths_to_check; + + if ( empty( $paths_to_check ) ) { + return false; + } + + $path = wp_normalize_path( trim( (string) $path ) ); + + $match_count = 1; + + // Replace the ../ usage as many times as it may need to be replaced. + while ( $match_count ) { + $path = str_replace( '../', '', $path, $match_count ); + } + + $path = realpath( $path ); + + foreach ( $paths_to_check as $check_type ) { + if ( self::has_match( $path, $available_checks, $check_type ) ) { + return $path; + } + } + + return false; + } + + /** + * Whether path matches. + * + * @since 1.7.5.5 + * + * @param string|bool $path Path. + * @param array $available_checks Available checks. + * @param string $check_type Check type. + * + * @return bool + */ + private static function has_match( $path, $available_checks, $check_type ) { + + if ( ! $path || ! isset( $available_checks[ $check_type ] ) ) { + return false; + } + + $check_type_paths = (array) $available_checks[ $check_type ]; + + foreach ( $check_type_paths as $path_to_check ) { + if ( 0 === strpos( $path, $path_to_check ) && file_exists( $path ) ) { + return true; + } + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Helpers/Transient.php b/wp-content/plugins/wpforms-lite/src/Helpers/Transient.php new file mode 100644 index 0000000..6163896 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Helpers/Transient.php @@ -0,0 +1,279 @@ +query( + $wpdb->prepare( + "DELETE FROM $wpdb->options + WHERE option_name LIKE %s", + $wpdb->esc_like( self::OPTION_PREFIX ) . '%' + ) + ); + } + + /** + * Delete all expired WPForms transients. + * + * The multi-table delete syntax is used to delete the transient record + * from table 'a', and the corresponding transient_timeout record from table 'b'. + * + * @since 1.6.3.1 + * + * @return int|false Number of rows affected/selected or false on error + */ + public static function delete_all_expired() { + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + return $wpdb->query( + $wpdb->prepare( + "DELETE a, b FROM $wpdb->options a, $wpdb->options b + WHERE a.option_name LIKE %s + AND a.option_name NOT LIKE %s + AND b.option_name = CONCAT( %s, SUBSTRING( a.option_name, %d ) ) + AND b.option_value < %d", + $wpdb->esc_like( self::OPTION_PREFIX ) . '%', + $wpdb->esc_like( self::TIMEOUT_PREFIX ) . '%', + self::TIMEOUT_PREFIX, + strlen( self::OPTION_PREFIX ) + 1, + time() + ) + ); + } + + /** + * Check if transient is expired. + * + * @since 1.6.3.1 + * + * @param string $transient Transient name. Expected to not be SQL-escaped. + * + * @return bool true if expired, false otherwise + */ + public static function is_expired( $transient ) { + + $timeout = self::get_timeout( $transient ); + + // If there's no timeout data found, the transient is considered to be valid. + if ( $timeout === false ) { + return false; + } + + if ( $timeout >= time() ) { + return false; + } + + return true; + } + + /** + * Get a transient option value. + * + * @since 1.6.3.1 + * + * @param string $transient Transient name. Expected to not be SQL-escaped. + * + * @return mixed Value set for the option. + */ + private static function get_option( $transient ) { + + return get_option( self::OPTION_PREFIX . $transient ); + } + + /** + * Get a transient timeout option value. + * + * @since 1.6.3.1 + * + * @param string $transient Transient name. Expected to not be SQL-escaped. + * + * @return mixed Value set for the option. + */ + private static function get_timeout( $transient ) { + + return get_option( self::TIMEOUT_PREFIX . $transient ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/AI.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/AI.php new file mode 100644 index 0000000..e8997b5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/AI.php @@ -0,0 +1,75 @@ +init(); + } + + return ! Helpers::is_disabled(); + } + + /** + * Load the integration classes. + * + * @since 1.9.1 + */ + public function load() { + + if ( wpforms_is_admin_page( 'builder' ) ) { + ( new Enqueues() )->init(); + ( new FieldOption() )->init(); + ( new FormsEnqueues() )->init(); + } + + if ( wpforms_is_admin_page( 'templates' ) ) { + ( new TemplatesPage() )->init(); + } + + if ( wpforms_is_admin_ajax() ) { + $this->load_ajax_classes(); + } + } + + /** + * Load AJAX classes. + * + * @since 1.9.1 + */ + protected function load_ajax_classes() { + + ( new FieldOption() )->init(); + ( new ChoicesAjax() )->init(); + ( new FormsAjax() )->init(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/API.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/API.php new file mode 100644 index 0000000..886e408 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/API.php @@ -0,0 +1,124 @@ +request = new Request(); + } + + /** + * Rate the response. + * + * @since 1.9.1 + * + * @param bool $helpful Whether the response was helpful. + * @param string $response_id Response ID to rate. + * + * @return array + */ + public function rate( bool $helpful, string $response_id ): array { + + $args = [ + 'helpful' => $helpful, + 'responseId' => $response_id, + ]; + + $endpoint = '/rate-response'; + + $response = $this->request->post( $endpoint, $args ); + + if ( $response->has_errors() ) { + $error_data = $response->get_error_data(); + + Helpers::log_error( $response->get_log_message( $error_data ), $endpoint, $args ); + + return $error_data; + } + + return $response->get_body(); + } + + /** + * Get the limit for the API request. + * Returns limit set by the filter or the default limit. + * The limit is capped at LIMIT_MAX. + * + * @since 1.9.1 + * + * @return int + */ + protected function get_limit(): int { + + return min( + /** + * Filter the limit for the API request. + * + * @since 1.9.1 + * + * @param int $limit Limit for the API request. + */ + (int) apply_filters( 'wpforms_integrations_ai_api_get_limit', self::LIMIT ), // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + self::LIMIT_MAX + ); + } + + /** + * Prepare the prompt. + * + * @since 1.9.1 + * + * @param string $prompt Prompt text. + * + * @return string + */ + protected function prepare_prompt( string $prompt ): string { + + // Remove any HTML tags. + $prompt = wp_strip_all_tags( $prompt ); + + // Remove any extra spaces. + $prompt = preg_replace( '/\s+/', ' ', $prompt ); + + // Remove any extra characters. + return trim( $prompt, ' .,!?;:' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Choices.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Choices.php new file mode 100644 index 0000000..a8c3206 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Choices.php @@ -0,0 +1,66 @@ + $this->prepare_prompt( $prompt ), + 'limit' => $this->get_limit(), + ]; + + if ( ! empty( $session_id ) ) { + $args['sessionId'] = $session_id; + } + + $endpoint = '/ai-choices'; + + $response = $this->request->post( $endpoint, $args ); + + if ( $response->has_errors() ) { + $error_data = $response->get_error_data(); + + Helpers::log_error( $response->get_log_message( $error_data ), $endpoint, $args ); + + return $error_data; + } + + $result = $response->get_body(); + + // Limit the number of choices. + // In some cases, the API may return more choices than requested. + $choices = array_slice( $result['choices'], 0, $this->get_limit() ); + + // Remove numeration from choices. + $choices = array_map( + static function ( $choice ) { + + return preg_replace( '/^\d+\.\s+/', '', $choice ); + }, + $choices + ); + + $result['choices'] = $choices; + + return $result; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Forms.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Forms.php new file mode 100644 index 0000000..08eb8db --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Forms.php @@ -0,0 +1,411 @@ + $this->prepare_prompt( $prompt ), + 'limit' => $this->get_limit(), + ]; + + if ( ! empty( $session_id ) ) { + $args['sessionId'] = $session_id; + } + + // Flag requests from Lite plugin. + $args['lite'] = ! wpforms()->is_pro(); + + // Add available addons to the request arguments. + $args['addons'] = $this->get_available_addons(); + + // Add GDPR setting to the request arguments. + $args['gdpr'] = wpforms_setting( 'gdpr' ); + + // Add a Page break field support. + $args['pagebreak'] = true; + + // Add prompt debug info support. + $args['debug'] = defined( 'WPFORMS_AI_DEBUG' ) && WPFORMS_AI_DEBUG; + + $response = $this->request->post( self::ENDPOINT, $args ); + + if ( $response->has_errors() ) { + $error_data = $response->get_error_data(); + + Helpers::log_error( $response->get_log_message( $error_data ), self::ENDPOINT, $args ); + + return $error_data; + } + + return $this->normalize_form_data( $response->get_body() ); + } + + /** + * Get available addons. + * + * @since 1.9.2 + * + * @return array + */ + private function get_available_addons(): array { + + // Since starting from 1.9.4, we display unavailable addon fields in Lite and all Pro licenses, + // we need to return all required addons to let AI generate addon fields. + return FormsAjax::FORM_GENERATOR_REQUIRED_ADDONS; + } + + /** + * Normalize form data. + * + * @since 1.9.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function normalize_form_data( array $form_data ): array { + + // Recursively normalize form data. + $form_data = $this->normalize_form_data_recursive( $form_data ); + + // Fix fields data. + $form_data = $this->fix_fields_data( $form_data ); + + // Notifications and confirmations arrays should be indexed from 1. + if ( ! empty( $form_data['settings']['notifications'] ) ) { + $form_data['settings']['notifications'] = array_combine( + range( 1, count( $form_data['settings']['notifications'] ) ), + array_values( $form_data['settings']['notifications'] ) + ); + } + + if ( ! empty( $form_data['settings']['confirmations'] ) ) { + $form_data['settings']['confirmations'] = array_combine( + range( 1, count( $form_data['settings']['confirmations'] ) ), + array_values( $form_data['settings']['confirmations'] ) + ); + } + + $form_data['form_title'] = empty( $form_data['form_title'] ) ? esc_html__( 'Untitled Form', 'wpforms-lite' ) : $form_data['form_title']; + $form_data['settings']['form_title'] = $form_data['form_title']; + + return $form_data; + } + + /** + * Normalize form data recursive. + * + * @since 1.9.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function normalize_form_data_recursive( array $form_data ): array { + + foreach ( $form_data as $key => $value ) { + if ( is_array( $value ) ) { + $form_data[ $key ] = $this->normalize_form_data_recursive( $value ); + } + + // Convert `false` and `true` values to '0' and '1'. + $form_data[ $key ] = $form_data[ $key ] === false ? '0' : $form_data[ $key ]; + $form_data[ $key ] = $form_data[ $key ] === true ? '1' : $form_data[ $key ]; + + // Remove null values. + if ( $form_data[ $key ] === null ) { + unset( $form_data[ $key ] ); + } + } + + return $form_data; + } + + /** + * Fix fields' data. + * + * @since 1.9.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function fix_fields_data( array $form_data ): array { + + $updated_fields_data = []; + $page_breaks = []; + + // Fix array keys. The key should be identical to `id`. + foreach ( $form_data['fields'] as $field_data ) { + $updated_fields_data[ (string) $field_data['id'] ] = $field_data; + } + + $form_data['fields'] = $updated_fields_data; + + // Fix choice values and choices array indexes. + foreach ( $form_data['fields'] as $id => $field_data ) { + $field_data = $this->fix_field_defaults( $field_data ); + $form_data['fields'][ $id ] = $this->fix_choices( $field_data ); + } + + // Fix conditional logic rules and detect page breaks. + foreach ( $form_data['fields'] as $id => $field_data ) { + $form_data['fields'][ $id ] = $this->fix_field_cl( $field_data, $form_data ); + + if ( $field_data['type'] === 'pagebreak' ) { + $page_breaks[] = $id; + } + } + + // Fix page breaks. + if ( ! empty( $page_breaks ) ) { + $form_data = $this->fix_page_breaks( $form_data, $page_breaks ); + } + + return $form_data; + } + + /** + * Fix field's conditional logic rules. + * + * @since 1.9.2 + * + * @param array $field Field data. + * @param array $form_data Form data. + * + * @return array + */ + private function fix_field_cl( array $field, array $form_data ): array { + + if ( empty( $field['conditionals'] ) || empty( $field['conditional_logic'] ) ) { + return $field; + } + + // Loop groups. + foreach ( $field['conditionals'] as $group_key => $group ) { + + // Loop rules. + foreach ( $group as $rule_key => $rule ) { + $choices = $form_data['fields'][ $rule['field'] ]['choices'] ?? []; + + // We only need to update rules for choice-based fields. + if ( empty( $choices ) ) { + continue; + } + + // AI uses choice value, but we should use the index of the choice in the `choices` array. + $field['conditionals'][ $group_key ][ $rule_key ]['value'] = $this->get_choice_index( $choices, $rule['value'] ); + + // Continue if the operator is supported by the choice-based field. + if ( in_array( $rule['operator'], [ '==', '!=', 'e', '!e' ], true ) ) { + continue; + } + + // Fix `operator` value for choice-based fields. + $rule['operator'] = in_array( $rule['operator'], [ 'c', '^', '>', '<' ], true ) ? '==' : $rule['operator']; + $rule['operator'] = in_array( $rule['operator'], [ '!c', '~' ], true ) ? '!=' : $rule['operator']; + + $field['conditionals'][ $group_key ][ $rule_key ]['operator'] = $rule['operator']; + } + } + + return $field; + } + + /** + * Find choice index in the `choices` array. + * + * @since 1.9.2 + * + * @param array $choices Choices data. + * @param string $value Value to find in choices. + * + * @return string|null + */ + private function get_choice_index( array $choices, string $value ) { + + $index = array_search( $value, array_column( $choices, 'value' ), true ); + + if ( $index === false ) { + $index = array_search( $value, array_column( $choices, 'label' ), true ); + } + + $choices_keys = array_keys( $choices ); + + return $index === false ? null : $choices_keys[ $index ]; + } + + /** + * Add missing default attributes to the field. + * + * @since 1.9.4 + * + * @param array $field Field data. + * + * @return array + */ + private function fix_field_defaults( array $field ): array { + + /** + * Allow the default field settings to be filtered. + * + * @since 1.0.8 + * + * @param array $field Default field settings. + */ + $field = (array) apply_filters( 'wpforms_field_new_default', $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + // Set the defaults for certain fields. + if ( $field['type'] === 'content' ) { + $field['label'] = empty( $field['label'] ) ? esc_html__( 'Content', 'wpforms-lite' ) : $field['label']; + } + + if ( $field['type'] === 'richtext' ) { + $field['default_value'] = ''; + } + + return $field; + } + + /** + * Fix choices. + * + * Remove unnecessary values from choices. + * + * @since 1.9.2 + * + * @param array $field Field data. + * + * @return array + */ + private function fix_choices( array $field ): array { + + if ( empty( $field['choices'] ) ) { + return $field; + } + + // Remove values from choices for non-payment fields. + if ( ! in_array( $field['type'], [ 'payment-multiple', 'payment-checkbox', 'payment-select' ], true ) ) { + // Remove values from choices. + foreach ( $field['choices'] as $i => $choice ) { + $field['choices'][ $i ]['value'] = ''; + } + } + + $updated_choices = []; + + // Update array keys to start from 1. + foreach ( $field['choices'] as $i => $choice ) { + $updated_choices[ $i + 1 ] = $choice; + } + + $field['choices'] = $updated_choices; + + return $field; + } + + /** + * Fix page breaks. + * + * Add top and bottom page breaks to the form, set `nav_align` for all page breaks. + * + * @since 1.9.3 + * + * @param array $form_data Form data. + * @param array $page_breaks Page break IDs. + * + * @return array + */ + private function fix_page_breaks( array $form_data, array $page_breaks ): array { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + reset( $form_data['fields'] ); + + $max_field_id = max( array_keys( $form_data['fields'] ) ); + + // Update or add the top page break. + $first_field_id = key( $form_data['fields'] ); + + // If the first field is a page break, use its ID, otherwise create a new one. + if ( $form_data['fields'][ $first_field_id ]['type'] === 'pagebreak_top' ) { + $top_id = $first_field_id; + } else { + $top_id = '0'; + $form_data['fields'] = [ $top_id => [] ] + $form_data['fields']; + } + + $form_data['fields'][ $top_id ] = [ + 'type' => 'pagebreak', + 'id' => $top_id, + 'position' => 'top', + 'indicator' => 'progress', + 'indicator_color' => PagebreakField::get_default_indicator_color(), + 'title' => $form_data['fields'][ $top_id ]['title'] ?? '', + 'nav_align' => $form_data['fields'][ $top_id ]['nav_align'] ?? 'left', + ]; + + // Remove the Previous button from the first normal pagebreak. + $form_data['fields'][ $page_breaks[0] ]['prev'] = ''; + $form_data['fields'][ $page_breaks[0] ]['prev_toggle'] = ''; + + end( $form_data['fields'] ); + + // Update or add the bottom page break. + // If the last field is a page break, use its ID, otherwise create a new one. + $last_field_id = key( $form_data['fields'] ); + $last_field = $form_data['fields'][ key( $form_data['fields'] ) ]; + $bottom_id = $last_field['type'] === 'pagebreak_bottom' ? $last_field_id : (string) ++$max_field_id; + $form_data['fields'][ $bottom_id ] = [ + 'type' => 'pagebreak', + 'id' => $bottom_id, + 'position' => 'bottom', + 'title' => '', + 'prev' => $form_data['fields'][ $bottom_id ]['prev'] ?? '', + 'prev_toggle' => $form_data['fields'][ $bottom_id ]['prev_toggle'] ?? '', + ]; + + // Remove the Previous button from the bottom pagebreak. + if ( empty( $form_data['fields'][ $bottom_id ]['prev_toggle'] ) ) { + unset( $form_data['fields'][ $bottom_id ]['prev'], $form_data['fields'][ $bottom_id ]['prev_toggle'] ); + } + + // Prevent wrong pagebreaks. + foreach ( $form_data['fields'] as $d => $field ) { + $field['type'] = $field['type'] === 'pagebreak_top' ? 'pagebreak' : $field['type']; + $field['type'] = $field['type'] === 'pagebreak_bottom' ? 'pagebreak' : $field['type']; + + $form_data['fields'][ $d ] = $field; + } + + return $form_data; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Request.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Request.php new file mode 100644 index 0000000..a8655c0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Request.php @@ -0,0 +1,161 @@ +request( 'POST', $endpoint, $args ); + } + + /** + * Make a request to the API. + * + * @since 1.9.1 + * + * @param string $method Request method. + * @param string $endpoint Endpoint to request. + * @param array $args Arguments to send. + * + * @return Response Response from the API. + * @noinspection PhpSameParameterValueInspection + */ + private function request( string $method, string $endpoint, array $args ): Response { + + // Once mark AI features as used when making a first request. + Helpers::set_ai_used(); + + // Add domain to the request. + $args['domain'] = preg_replace( '/(https?:\/\/)?(www\.)?(.*)\/?/', '$3', home_url() ); + + $args = $this->maybe_add_lite_connect_credentials( $args ); + + $options = [ + 'method' => $method, + 'headers' => $this->get_headers(), + 'timeout' => $this->get_timeout(), + 'body' => wp_json_encode( $args ), + ]; + + $url = $this->get_request_url( $endpoint ); + + return new Response( wp_safe_remote_request( $url, $options ) ); + } + + /** + * Get AI API request URL. + * + * @since 1.9.3 + * + * @param string $endpoint Endpoint to request. + * + * @return string + */ + private function get_request_url( string $endpoint ): string { + + /** + * Filter AI API request URL. + * + * @since 1.9.3 + * + * @param string $url API request URL. + * @param string $endpoint Endpoint to request. + */ + return (string) apply_filters( 'wpforms_integrations_aiapi_http_request_url', self::URL . $endpoint, $endpoint ); + } + + /** + * Maybe add Lite Connect credentials to the request. + * + * @since 1.9.1 + * + * @param array $args Arguments to send. + * + * @return array + */ + private function maybe_add_lite_connect_credentials( array $args ): array { + + if ( wpforms()->is_pro() ) { + return $args; + } + + if ( ! LiteConnect::is_allowed() || ! LiteConnect::is_enabled() ) { + return $args; + } + + return array_merge( $args, Integration::get_site_credentials() ); + } + + /** + * Retrieve request headers. + * + * @since 1.9.1 + * + * @return array + */ + private function get_headers(): array { + + $headers = [ + 'Content-Type' => 'application/json', + ]; + + if ( wpforms()->is_pro() ) { + $headers['x-wpforms-licensekey'] = wpforms_get_license_key(); + } + + return $headers; + } + + /** + * Retrieve request timeout. + * + * @since 1.9.1 + * + * @return int + */ + private function get_timeout(): int { + + /** + * Filter the API request timeout. + * + * @since 1.9.1 + * + * @param int $timeout Request timeout. + */ + return (int) apply_filters( 'wpforms_integrations_ai_api_http_request_timeout', self::TIMEOUT ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Response.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Response.php new file mode 100644 index 0000000..e9dc5f4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/API/Http/Response.php @@ -0,0 +1,136 @@ +response = $response; + } + + /** + * Retrieve only the body from the raw response. + * + * @since 1.9.1 + * + * @return array The body of the response. + */ + public function get_body(): array { + + $body = wp_remote_retrieve_body( $this->response ); + + if ( empty( $body ) ) { + return []; + } + + return json_decode( $body, true ) ?? []; + } + + /** + * Get error data. + * + * @since 1.9.1 + * + * @return array + */ + public function get_error_data(): array { + + $code = $this->get_response_code(); + + return [ + 'error' => $this->get_response_message(), + 'code' => empty( $code ) ? 'wp_error' : $code, + ]; + } + + /** + * Retrieve only the response message from the raw response. + * + * @since 1.9.1 + * + * @return string The response error. + */ + public function get_response_message(): string { + + if ( is_wp_error( $this->response ) ) { + if ( $this->response->get_error_code() === 'http_request_failed' ) { + return __( 'There appears to be a network error.', 'wpforms-lite' ); + } + + return $this->response->get_error_message(); + } + + $body = $this->get_body(); + + return $body['error_message'] ?? wp_remote_retrieve_response_message( $this->response ); + } + + /** + * Get the error log message. + * + * @since 1.9.2 + * + * @param array $error_data Error data. + * + * @return string The error log message. + */ + public function get_log_message( array $error_data ): string { + + return sprintf( /* translators: %1$s - error code, %2$s - error message. */ + __( 'API response: %1$s %2$s', 'wpforms-lite' ), + $error_data['code'], + $error_data['error'] + ); + } + + /** + * Retrieve only the response code from the raw response. + * + * @since 1.9.1 + * + * @return int The response code as an integer. + */ + private function get_response_code(): int { + + return absint( wp_remote_retrieve_response_code( $this->response ) ); + } + + /** + * Whether we received errors in the response. + * + * @since 1.9.1 + * + * @return bool True if response has errors. + */ + public function has_errors(): bool { + + $code = $this->get_response_code(); + + return $code < 200 || $code > 299; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Base.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Base.php new file mode 100644 index 0000000..f6942cb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Base.php @@ -0,0 +1,135 @@ +api = new API(); + + $this->api->init(); + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.1 + */ + private function hooks(): void { + + add_action( 'wp_ajax_wpforms_rate_ai_response', [ $this, 'rate_response' ] ); + } + + /** + * Rate choices response. + * + * @since 1.9.1 + */ + public function rate_response(): void { + + if ( ! $this->validate_nonce() ) { + wp_send_json_error(); + } + + $helpful = $this->get_post_data( 'helpful', 'bool' ); + $response_id = $this->get_post_data( 'response_id' ); + + $response = $this->api->rate( $helpful, $response_id ); + + wp_send_json_success( $response ); + } + + /** + * Validate nonce. + * + * @since 1.9.1 + * + * @return bool|int + */ + protected function validate_nonce() { + + return check_ajax_referer( 'wpforms-ai-nonce', 'nonce', false ); + } + + /** + * Get the post's data by key. + * + * @since 1.9.1 + * + * @param string $key Key to get data for. + * @param string $type Type of data to get. + * + * @return mixed + */ + protected function get_post_data( string $key, string $type = 'text' ) { + + switch ( $type ) { + case 'int': + $value = filter_input( INPUT_POST, $key, FILTER_SANITIZE_NUMBER_INT ) ?? 0; + break; + + case 'array': + $value = filter_input( INPUT_POST, $key, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_REQUIRE_ARRAY ) ?? []; + break; + + case 'bool': + $value = filter_input( INPUT_POST, $key, FILTER_VALIDATE_BOOLEAN ) ?? false; + break; + + case 'json': + $value = json_decode( filter_input( INPUT_POST, $key ), true ); + break; + + default: + // We should use this alternative to FILTER_SANITIZE_FULL_SPECIAL_CHARS filter, + // because htmlspecialchars() function does double encoding of special characters, + // which is necessary to properly handle the encoded HTML in chat questions. + $value = htmlspecialchars( filter_input( INPUT_POST, $key ) ?? '' ); + break; + } + + return $value; + } + + /** + * Determine whether a given prompt is empty. + * + * It must contain a minimum of one character. + * + * @since 1.9.1 + * + * @param string $prompt The prompt to check. + * + * @return bool True if the prompt is empty. + */ + protected function is_empty_prompt( string $prompt ): bool { + + $special_chars = [ '@', '!', '#', '$', '%', '^', '&', '*', '(', ')', '-', '+', '=', '{', '}', '[', ']', '|', '\\', ':', ';', '"', "'", '<', '>', ',', '.', '?', '/' ]; + $prompt = str_replace( $special_chars, '', $prompt ); + + return empty( $prompt ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Choices.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Choices.php new file mode 100644 index 0000000..273912e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Choices.php @@ -0,0 +1,73 @@ +api_choices = new ChoicesAPI(); + + $this->api_choices->init(); + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.1 + */ + private function hooks() { + + add_action( 'wp_ajax_wpforms_get_ai_choices', [ $this, 'get_choices' ] ); + } + + /** + * Get choices. + * + * @since 1.9.1 + */ + public function get_choices() { + + if ( ! $this->validate_nonce() ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ] + ); + } + + $prompt = $this->get_post_data( 'prompt' ); + + if ( $this->is_empty_prompt( $prompt ) ) { + wp_send_json_success( [ 'choices' => [] ] ); + } + + $session_id = $this->get_post_data( 'session_id' ); + + $choices = $this->api_choices->choices( $prompt, $session_id ); + + wp_send_json_success( $choices ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Forms.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Forms.php new file mode 100644 index 0000000..5e8cb1f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Ajax/Forms.php @@ -0,0 +1,493 @@ + 'surveys-polls', + 'net_promoter_score' => 'surveys-polls', + 'signature' => 'signatures', + 'payment-coupon' => 'coupons', + ]; + + /** + * Forms API instance. + * + * @since 1.9.2 + * + * @var FormsAPI + */ + private $forms_api; + + /** + * Initialize. + * + * @since 1.9.2 + */ + public function init() { + + parent::init(); + + $this->forms_api = new FormsAPI(); + + $this->forms_api->init(); + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.2 + */ + private function hooks(): void { + + add_action( 'wp_ajax_wpforms_get_ai_form', [ $this, 'get_form' ] ); + add_action( 'wp_ajax_wpforms_get_ai_form_field_preview', [ $this, 'get_field_preview' ] ); + add_action( 'wp_ajax_wpforms_use_ai_form', [ $this, 'use_form' ] ); + add_action( 'wp_ajax_wpforms_dismiss_ai_form', [ $this, 'dismiss' ] ); + } + + /** + * "Get form" AJAX callback. + * + * @since 1.9.2 + */ + public function get_form(): void { + + if ( ! $this->validate_nonce() ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ] + ); + } + + $prompt = $this->get_post_data( 'prompt' ); + + if ( empty( $prompt ) && $prompt !== '0' ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Empty prompt.', 'wpforms-lite' ) ] + ); + } + + $session_id = $this->get_post_data( 'session_id' ); + $form = $this->forms_api->form( $prompt, $session_id ); + + $form['fieldsOrder'] = array_keys( $form['fields'] ?? [] ); + + /** + * Filters the form data before outputting it. + * + * @since 1.9.7 + * + * @param array $form Form data. + * @param string $session_id Session ID. + */ + $form = apply_filters( 'wpforms_integrations_ai_admin_ajax_forms_get_form_before_send', $form, $session_id ); + + wp_send_json_success( $form ); + } + + /** + * Get form field preview. + * + * @since 1.9.2 + */ + public function get_field_preview(): void { + + if ( ! $this->validate_nonce() ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ] + ); + } + + $field = $this->prepare_field_data( + $this->get_post_data( 'field', 'array' ) + ); + + if ( empty( $field ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Empty field data.', 'wpforms-lite' ) ] + ); + } + + $field_type = $field['type'] ?? ''; + + // Check if the field type is available. + if ( has_action( "wpforms_display_field_{$field_type}" ) ) { + + ob_start(); + + // Generate field preview. + /** This action is documented in includes/admin/builder/panels/class-fields.php. */ + do_action( "wpforms_builder_fields_previews_{$field_type}", $field ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $preview = ob_get_clean(); + } + + wp_send_json_success( $preview ?? '' ); + } + + /** + * Prepare the form fields data. + * + * @since 1.9.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function prepare_fields_data( array $form_data ): array { + + $fields_data = $form_data['fields'] ?? []; + $fields_order = $form_data['fieldsOrder'] ?? []; + $fields = []; + + foreach ( $fields_order as $id ) { + $fields[ $id ] = $this->prepare_field_data( $fields_data[ $id ] ); + } + + return $fields; + } + + /** + * Prepare the field data. + * + * @since 1.9.2 + * + * @param array $field_data Field data. + * + * @return array + */ + private function prepare_field_data( array $field_data ): array { + + $field_type = $field_data['type'] ?? ''; + + if ( $field_type === 'content' ) { + $field_data['content'] = htmlspecialchars_decode( $field_data['content'] ?? '' ); + } + + if ( $field_type === 'html' ) { + $field_data['code'] = htmlspecialchars_decode( $field_data['code'] ?? '' ); + } + + $field_data['description'] = htmlspecialchars_decode( $field_data['description'] ?? '' ); + + if ( ! empty( $field_data['conditionals'] ) ) { + $field_data['conditionals'] = $this->prepare_field_cl( $field_data ); + } + + return $field_data; + } + + /** + * Prepare the form settings. + * + * @since 1.9.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function prepare_form_settings( array $form_data ): array { + + // Prepare the notifications. + if ( isset( $form_data['settings']['notifications']['1'] ) ) { + $form_data['settings']['notifications']['1']['subject'] = sprintf( /* translators: %s - form name. */ + esc_html__( 'New Entry: %s', 'wpforms-lite' ), + esc_html( $form_data['form_title'] ) + ); + } + + // Quiz settings. + $form_data = $this->prepare_quiz_settings( $form_data ); + + return $form_data['settings']; + } + + /** + * Prepare the field conditional logic. + * + * @since 1.9.2 + * + * @param array $field Field data. + * + * @return array + */ + private function prepare_field_cl( array $field ): array { + + if ( empty( $field['conditionals'] ) ) { + return []; + } + + // Loop groups. + foreach ( $field['conditionals'] as $group_key => $group ) { + + // Loop rules. + foreach ( $group as $rule_key => $rule ) { + // Fix `operator` value for choice-based fields. + $rule['operator'] = htmlspecialchars_decode( $rule['operator'] ); + $rule['value'] = htmlspecialchars_decode( $rule['value'] ); + + $field['conditionals'][ $group_key ][ $rule_key ] = $rule; + } + } + + return $field['conditionals']; + } + + /** + * Use form checks and prepare data. + * + * @since 1.9.2 + * + * @return array Form ID and the generated form data. + */ + private function use_form_check_data(): array { + + if ( ! $this->validate_nonce() ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ] + ); + } + + $form_id = $this->get_post_data( 'formId', 'int' ); + $form_data = $this->get_post_data( 'formData', 'array' ); + + if ( empty( $form_data ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Empty form data.', 'wpforms-lite' ) ] + ); + } + + if ( empty( $form_id ) && ! wpforms_current_user_can( 'create_forms' ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Sorry, you are not allowed to create new forms.', 'wpforms-lite' ) ] + ); + } + + if ( ! empty( $form_id ) && ! wpforms_current_user_can( 'edit_form_single', $form_id ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Sorry, you are not allowed to edit this form.', 'wpforms-lite' ) ] + ); + } + + $form_obj = wpforms()->obj( 'form' ); + + if ( ! $form_obj ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Form database object not found.', 'wpforms-lite' ) ] + ); + } + + $form_post = ! empty( $form_id ) ? $form_obj->get( $form_id ) : null; + + if ( + ( empty( $form_post ) && ! empty( $form_id ) ) || + ( ! empty( $form_post->post_status ) && $form_post->post_status === 'trash' ) + ) { + wp_send_json_error( + [ 'error' => esc_html__( 'It looks like the form you are trying to access is no longer available.', 'wpforms-lite' ) ] + ); + } + + $session_id = $this->get_post_data( 'sessionId' ); + $response_history = $this->get_post_data( 'responseHistory', 'array' ); + $chat_html = $this->get_post_data( 'chatHtml', 'string' ); + + return [ $form_id, $form_data, $session_id, $response_history, $chat_html, $form_obj ]; + } + + /** + * Use form. + * + * @since 1.9.2 + */ + public function use_form(): void { + + [ $form_id, $form_data, $session_id, $response_history, $chat_html, $form_obj ] = $this->use_form_check_data(); + + // Save the chat history in the user mata data. + $user_meta = [ + 'chatHtml' => $chat_html, + 'responseHistory' => $response_history, + ]; + + update_user_meta( get_current_user_id(), 'wpforms_builder_ai_form_chat_' . $session_id, $user_meta ); + + // Prepare the new form data. + $form_data['fields'] = $this->prepare_fields_data( $form_data ); + $form_data['settings'] = $this->prepare_form_settings( $form_data ); + $form_data['field_id'] = count( $form_data['fields'] ) + 1; + + $meta = []; + $meta['template'] = 'generate'; + $meta['sessionId'] = $form_data['sessionId']; + $meta['responseId'] = $form_data['responseId']; + + // Unset unrelated data. + unset( + $form_data['fieldsOrder'], + $form_data['explanation'], + $form_data['sessionId'], + $form_data['responseId'], + $form_data['processingData'] + ); + + // Add a new form if it is a new form. + if ( empty( $form_id ) ) { + $form_id = $form_obj->add( $form_data['form_title'] ); + } + + // Check if the form was created. + if ( empty( $form_id ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Form could not be created.', 'wpforms-lite' ) ] + ); + } + + // Get the blank template form data. + $blank_form_data = WPForms_Template_Blank::get_data(); + + // Merge the blank form data with the new form data. + // In this way, we can keep the default settings of the blank form. + $form_data = array_replace_recursive( $blank_form_data, $form_data ); + + // Update the form ID. + $form_data['id'] = $form_id; + + // Update the form. + $form_obj->update( $form_id, $form_data, [ 'skip_revision' => 1 ] ); + $form_obj->update_meta( $form_id, 'template', $meta['template'], [ 'skip_revision' => 1 ] ); + $form_obj->update_meta( $form_id, 'sessionId', $meta['sessionId'], [ 'skip_revision' => 1 ] ); + $form_obj->update_meta( $form_id, 'responseId', $meta['responseId'], [ 'skip_revision' => 1 ] ); + + // Result. + wp_send_json_success( + [ + 'id' => $form_id, + 'redirect' => add_query_arg( + [ + 'view' => 'fields', + 'form_id' => $form_id, + 'session' => $session_id, + ], + admin_url( 'admin.php?page=wpforms-builder' ) + ), + ] + ); + } + + /** + * Ajax handler for dismissing. + * + * @since 1.9.2 + */ + public function dismiss(): void { + + if ( ! $this->validate_nonce() ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Your session expired. Please reload the builder.', 'wpforms-lite' ) ] + ); + } + + // Identifier of the dismissible element. + $element = $this->get_post_data( 'element', 'string' ); + + // Dismiss or de-dismiss. + $dismiss = $this->get_post_data( 'dismiss', 'bool' ); + + if ( empty( $element ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Please specify an element.', 'wpforms-lite' ) ] + ); + } + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error( + [ 'error' => esc_html__( 'Sorry, you are not allowed to dismiss.', 'wpforms-lite' ) ] + ); + } + + $user_id = get_current_user_id(); + $dismissed = get_user_meta( $user_id, 'wpforms_dismissed', true ); + + if ( empty( $dismissed ) ) { + $dismissed = []; + } + + if ( $dismiss ) { + $dismissed[ 'ai-forms-' . $element ] = time(); + } else { + unset( $dismissed[ 'ai-forms-' . $element ] ); + } + + update_user_meta( $user_id, 'wpforms_dismissed', $dismissed ); + wp_send_json_success(); + } + + /** + * Prepare the quiz settings. + * + * @since 1.9.9 + * + * @param array $form_data Form data. + * + * @return array + */ + private function prepare_quiz_settings( array $form_data ): array { + + if ( empty( $form_data['settings']['quiz']['enabled'] ) ) { + return $form_data; + } + + $outcomes = (array) ( $form_data['settings']['quiz']['outcomes'] ?? [] ); + + $default_outcome = [ + 'graded_message' => '', + 'personality_message' => '', + 'weighted_message' => '', + 'conditionals' => [], + ]; + + // Decode the outcome messages. + foreach ( $outcomes as $key => $outcome ) { + $outcome = wp_parse_args( $outcome, $default_outcome ); + + $outcome['graded_message'] = htmlspecialchars_decode( $outcome['graded_message'] ); + $outcome['personality_message'] = htmlspecialchars_decode( $outcome['personality_message'] ); + $outcome['weighted_message'] = htmlspecialchars_decode( $outcome['weighted_message'] ); + $outcome['conditionals'] = $this->prepare_field_cl( $outcome ); + + $outcomes[ $key ] = $outcome; + } + + $form_data['settings']['quiz']['outcomes'] = $outcomes; + + return $form_data; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Enqueues.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Enqueues.php new file mode 100644 index 0000000..4368601 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Enqueues.php @@ -0,0 +1,276 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.1 + */ + private function hooks(): void { + + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + } + + /** + * Enqueue styles and scripts. + * + * @since 1.9.1 + * + * @param string|null $view Current view (panel). + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function enqueues( $view ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $this->enqueue_styles(); + $this->enqueue_scripts(); + } + + /** + * Enqueue styles. + * + * @since 1.9.1 + */ + private function enqueue_styles(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-ai-modal', + WPFORMS_PLUGIN_URL . "assets/css/integrations/ai/modal{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_style( + 'wpforms-ai-chat-element', + WPFORMS_PLUGIN_URL . "assets/css/integrations/ai/chat-element{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Enqueue scripts. + * + * @since 1.9.1 + */ + private function enqueue_scripts(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-ai-dock', + WPFORMS_PLUGIN_URL . "assets/js/integrations/ai/chat-element/wpforms-ai-dock{$min}.js", + [], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-ai-modal', + WPFORMS_PLUGIN_URL . "assets/js/integrations/ai/choices/wpforms-ai-modal{$min}.js", + [ 'wpforms-ai-dock' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-ai-chat-element', + WPFORMS_PLUGIN_URL . "assets/js/integrations/ai/chat-element/wpforms-ai-chat-element{$min}.js", + [], + WPFORMS_VERSION, + false + ); + + wp_localize_script( + 'wpforms-ai-chat-element', + 'wpforms_ai_chat_element', + $this->get_localize_chat_data() + ); + } + + /** + * Get chat localize data. + * + * @since 1.9.1 + * + * @return array + */ + private function get_localize_chat_data(): array { + + $min = wpforms_get_min_suffix(); + + $strings = [ + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'wpforms-ai-nonce' ), + 'min' => wpforms_get_min_suffix(), + 'dislike' => esc_html__( 'Bad response', 'wpforms-lite' ), + 'refresh' => esc_html__( 'Clear chat history', 'wpforms-lite' ), + 'btnYes' => esc_html__( 'Yes, Continue', 'wpforms-lite' ), + 'btnCancel' => esc_html__( 'Cancel', 'wpforms-lite' ), + 'confirm' => [ + 'refreshTitle' => esc_html__( 'Clear Chat History', 'wpforms-lite' ), + 'refreshMessage' => esc_html__( 'Are you sure you want to clear the AI chat history and start over?', 'wpforms-lite' ), + ], + 'errors' => [ + 'default' => esc_html__( 'An error occurred.', 'wpforms-lite' ), + 'network' => esc_html__( 'There appears to be a network error.', 'wpforms-lite' ), + 'empty' => esc_html__( 'I\'m not sure what to do with that.', 'wpforms-lite' ), + ], + 'warnings' => [ + 'prohibited_code' => esc_html__( 'Prohibited code has been removed.', 'wpforms-lite' ), + ], + 'reasons' => [ + 'default' => esc_html__( 'Please try again.', 'wpforms-lite' ), + 'empty' => esc_html__( 'Please try a different prompt. You might need to be more descriptive.', 'wpforms-lite' ), + 'prohibited_code' => esc_html__( 'Only basic styling tags are permitted. All other code deemed unsafe has been removed.', 'wpforms-lite' ), + ], + 'choices' => $this->get_choices_chat_data(), + 'actions' => [], // Additional actions for js/integrations/ai/modules/api.js. + 'pinChat' => is_rtl() ? esc_html__( 'Dock to the Left', 'wpforms-lite' ) : esc_html__( 'Dock to the Right', 'wpforms-lite' ), + 'unpinChat' => esc_html__( 'Open in Popup', 'wpforms-lite' ), + 'close' => esc_html__( 'Close', 'wpforms-lite' ), + ]; + + /** + * Allows loading additional modules from other addons. + * See wpforms-calculations/src/Admin/Builder.php as example. + * Used in js/integrations/ai/wpforms-ai-chat-element.js. + */ + $strings['modules'] = [ + [ + 'name' => 'api', + 'path' => "./modules/api{$min}.js", + ], + [ + 'name' => 'text', + 'path' => "./modules/helpers-text{$min}.js", + ], + [ + 'name' => 'choices', + 'path' => "./modules/helpers-choices{$min}.js", + ], + [ + 'name' => 'forms', + 'path' => "./modules/helpers-forms{$min}.js", + ], + ]; + + /** + * Filters the AI chat localize strings. + * + * @since 1.9.2 + * + * @param array $strings Localize strings. + */ + return apply_filters( 'wpforms_integrations_ai_admin_builder_enqueues_localize_chat_strings', $strings ); + } + + /** + * Get choices chat data. + * + * @since 1.9.1 + * + * @return array + * @noinspection HtmlUnknownTarget + * @noinspection PackedHashtableOptimizationInspection + */ + private function get_choices_chat_data(): array { + + return [ + 'title' => esc_html__( 'Generate Choices', 'wpforms-lite' ), + 'description' => esc_html__( 'Describe the choices you would like to create or use one of the examples below to get started.', 'wpforms-lite' ), + 'descrEndDot' => '.', + 'footer' => wp_kses( + __( 'What do you think of these choices? If you’re happy with them, you can insert these choices, or make changes by entering additional prompts.', 'wpforms-lite' ), // phpcs:ignore WordPress.WP.I18n.NoHtmlWrappedStrings + [ + 'strong' => [], + ] + ), + 'learnMore' => esc_html__( 'Learn More About WPForms AI', 'wpforms-lite' ), + 'warning' => esc_html__( 'It looks like you have some existing choices in this field. If you generate new choices, your existing choices will be overwritten. You can simply close this window if you’d like to keep your existing choices.', 'wpforms-lite' ), + 'placeholder' => esc_html__( 'What would you like to create?', 'wpforms-lite' ), + 'waiting' => esc_html__( 'Just a minute...', 'wpforms-lite' ), + 'insert' => esc_html__( 'Insert Choices', 'wpforms-lite' ), + 'learnMoreUrl' => wpforms_utm_link( 'https://wpforms.com/features/wpforms-ai/', 'Builder - Settings', 'Learn more - AI Choices modal' ), + 'errors' => [ + 'default' => esc_html__( 'An error occurred while generating choices.', 'wpforms-lite' ), + 'rate_limit' => esc_html__( 'Sorry, you\'ve reached your daily limit for generating choices.', 'wpforms-lite' ), + ], + 'reasons' => [ + 'rate_limit' => sprintf( + wp_kses( /* translators: %s - WPForms contact support link. */ + __( 'You may only generate choices 50 times per day. If you believe this is an error, please contact WPForms support.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + wpforms_utm_link( 'https://wpforms.com/account/support/', 'AI Feature' ) + ), + ], + 'warnings' => [ + 'prohibited_code' => esc_html__( 'Prohibited code has been removed from your choices.', 'wpforms-lite' ), + ], + 'samplePrompts' => [ + [ + 'icon' => 'wpforms-ai-chat-flag', + 'title' => esc_html__( 'american public holidays with dates in brackets', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-clover', + 'title' => esc_html__( 'provinces of canada ordered by population', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-thumbs-up', + 'title' => esc_html__( 'top 5 social networks in europe', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-globe', + 'title' => esc_html__( 'top 10 most spoken languages in the world', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-palm', + 'title' => esc_html__( 'top 20 most popular tropical travel destinations', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-shop', + 'title' => esc_html__( '30 household item categories for a marketplace', 'wpforms-lite' ), + ], + ], + 'defaults' => [ + '1' => esc_html__( 'First Choice', 'wpforms-lite' ), + '2' => esc_html__( 'Second Choice', 'wpforms-lite' ), + '3' => esc_html__( 'Third Choice', 'wpforms-lite' ), + ], + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/FieldOption.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/FieldOption.php new file mode 100644 index 0000000..23fc5d0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/FieldOption.php @@ -0,0 +1,149 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.1 + */ + private function hooks() { + + add_action( 'wpforms_field_option_ai_modal_button', [ $this, 'add_option' ], 10, 4 ); + } + + /** + * Add AI Modal button to the field options. + * + * @since 1.9.1 + * + * @param string|mixed $output HTML output. + * @param array $field Field settings. + * @param array $args Additional arguments. + * @param object $wpforms_field WPForms_Field object. + * + * @return string + * @noinspection PhpUnusedParameterInspection + */ + public function add_option( $output, array $field, array $args, $wpforms_field ): string { + + $type = $args['type'] ?? 'default'; + $data = [ + 'field-id' => $field['id'], + ]; + $classes = [ + 'wpforms-btn-purple', + 'wpforms-ai-modal-button', + 'wpforms-ai-' . $type . '-button', + empty( $field['dynamic_choices'] ) ? '' : 'wpforms-hidden', + ]; + $attrs = []; + + [ $classes, $data, $attrs ] = $this->maybe_disable_button( $classes, $data, $attrs ); + + $button = $wpforms_field->field_element( + 'button', + $field, + [ + 'slug' => 'ai_modal_button', + 'value' => $args['value'] ?? esc_html__( 'Open AI Modal', 'wpforms-lite' ), + 'class' => wpforms_sanitize_classes( $classes ), + 'data' => $data, + 'attrs' => $attrs, + ], + false + ); + + return (string) $wpforms_field->field_element( + 'row', + $field, + [ + 'slug' => 'ai_modal_button', + 'content' => $button, + ], + false + ); + } + + /** + * Maybe disable the button and show modal. + * + * @since 1.9.1 + * + * @param array $classes Classes list. + * @param array $data Data arguments list. + * @param array $attrs Attributes list. + * + * @return array + */ + private function maybe_disable_button( array $classes, array $data, array $attrs ): array { + + $is_pro = wpforms()->is_pro(); + + // Pro, license is not active. + if ( $is_pro && ! $this->is_license_active() ) { + $classes[] = 'education-modal'; + $classes[] = 'wpforms-prevent-default'; + $data['action'] = 'license'; + $data['field-name'] = 'AI Choices'; + $data['utm-content'] = 'AI Choices'; + + return [ $classes, $data, $attrs ]; + } + + // Lite, LC is not enabled. + if ( ! $is_pro && ! LiteConnect::is_enabled() && LiteConnect::is_allowed() ) { + $classes[] = 'enable-lite-connect-modal'; + $classes[] = 'wpforms-prevent-default'; + } + + // Lite, LC is not configured or not allowed. + if ( ! $is_pro && ! LiteConnect::is_allowed() ) { + $classes[] = 'wpforms-prevent-default'; + $classes[] = 'wpforms-inactive'; + $classes[] = 'wpforms-help-tooltip'; + + $attrs['title'] = esc_html__( 'WPForms AI is not available on local sites.', 'wpforms-lite' ); + + $data['tooltip-position'] = 'top'; + } + + return [ $classes, $data, $attrs ]; + } + + /** + * Determine whether a license key is active. + * + * @since 1.9.1 + * + * @return bool + */ + private function is_license_active(): bool { + + $license = (array) get_option( 'wpforms_license', [] ); + + return ! empty( wpforms_get_license_key() ) && + empty( $license['is_expired'] ) && + empty( $license['is_disabled'] ) && + empty( $license['is_invalid'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Forms.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Forms.php new file mode 100644 index 0000000..1038ce2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Builder/Forms.php @@ -0,0 +1,490 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.2 + */ + private function hooks(): void { + + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + add_filter( 'wpforms_integrations_ai_admin_builder_enqueues_localize_chat_strings', [ $this, 'add_localize_chat_data' ] ); + add_filter( 'wpforms_builder_template_active', [ $this, 'template_active' ], 10, 2 ); + } + + /** + * Enqueue styles and scripts. + * + * @since 1.9.2 + * + * @param string|null $view Current view (panel). + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function enqueues( $view ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $this->enqueue_styles(); + $this->enqueue_scripts(); + } + + /** + * Enqueue styles. + * + * @since 1.9.2 + */ + private function enqueue_styles(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-ai-forms', + WPFORMS_PLUGIN_URL . "assets/css/integrations/ai/ai-forms{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Enqueue scripts. + * + * @since 1.9.2 + */ + private function enqueue_scripts(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-ai-form-generator', + WPFORMS_PLUGIN_URL . "assets/js/integrations/ai/form-generator/form-generator{$min}.js", + [], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-ai-form-generator', + 'wpforms_ai_form_generator', + $this->get_localize_form_generator_data() + ); + } + + /** + * Set an active form template. + * + * @since 1.9.2 + * + * @param array|mixed $details Details. + * @param WP_Post|false $form Form data. + * + * @return array + */ + public function template_active( $details, $form ): array { + + $details = (array) $details; + + if ( empty( $form ) ) { + return []; + } + + $form_data = wpforms_decode( $form->post_content ); + + if ( empty( $form_data['meta']['template'] ) || $form_data['meta']['template'] !== 'generate' ) { + return $details; + } + + return [ + 'name' => esc_html__( 'Generate With AI', 'wpforms-lite' ), + 'slug' => 'generate', + 'description' => '', + 'includes' => '', + 'icon' => '', + 'modal' => '', + 'modal_display' => false, + ]; + } + + /** + * Get form generator localize data. + * + * @since 1.9.2 + * + * @return array + * @noinspection HtmlUnknownTarget + */ + private function get_localize_form_generator_data(): array { + + $min = wpforms_get_min_suffix(); + $addons_data = $this->get_required_addons_data(); + $modules_path = './modules/'; + + return [ + 'nonce' => wp_create_nonce( 'wpforms-ai-nonce' ), + 'adminNonce' => wp_create_nonce( 'wpforms-admin' ), + 'ajaxUrl' => admin_url( 'admin-ajax.php' ), + 'addonsData' => $addons_data, + 'addonsAction' => $this->get_required_addons_action( $addons_data ), + 'addonFields' => FormsAjax::FORM_GENERATOR_ADDON_FIELDS, + 'dismissed' => $this->get_dismissed_elements(), + 'isPro' => wpforms()->is_pro(), + 'isLicenseActive' => Helpers::is_license_active(), + 'licenseType' => Helpers::get_license_type(), + 'liteConnectEnabled' => LiteConnect::is_enabled(), + 'liteConnectAllowed' => LiteConnect::is_allowed(), + 'modules' => [ + 'main' => $modules_path . "main{$min}.js?ver=" . WPFORMS_VERSION, + 'preview' => $modules_path . "preview{$min}.js?ver=" . WPFORMS_VERSION, + 'modals' => $modules_path . "modals{$min}.js?ver=" . WPFORMS_VERSION, + ], + 'templateCard' => [ + 'imageSrc' => WPFORMS_PLUGIN_URL . 'assets/images/integrations/ai/ai-feature-icon.svg', + 'name' => esc_html__( 'Generate With AI', 'wpforms-lite' ), + 'desc' => esc_html__( 'Write simple prompts to create complex forms catered to your specific needs.', 'wpforms-lite' ), + 'buttonTextInit' => esc_html__( 'Generate Form', 'wpforms-lite' ), + 'buttonTextContinue' => esc_html__( 'Continue Generating', 'wpforms-lite' ), + 'new' => esc_html__( 'NEW!', 'wpforms-lite' ), + 'liteConnectNotAllowed' => esc_html__( 'WPForms AI is not available on local sites.', 'wpforms-lite' ), + ], + 'panel' => [ + 'backToTemplates' => esc_html__( 'Back to Templates', 'wpforms-lite' ), + 'emptyStateTitle' => esc_html__( 'Build Your Form Fast With the Help of AI', 'wpforms-lite' ), + 'emptyStateDesc' => esc_html__( 'Not sure where to begin? Use our Generative AI tool to get started or take your pick from our wide variety of fields and start building out your form!', 'wpforms-lite' ), + 'submitButton' => esc_html__( 'Submit', 'wpforms-lite' ), + 'tooltipTitle' => esc_html__( 'This is just a preview of your form.', 'wpforms-lite' ), + 'tooltipText' => esc_html__( 'Click "Use This Form" to start editing.', 'wpforms-lite' ), + ], + 'addons' => [ + 'installTitle' => esc_html__( 'Before We Proceed', 'wpforms-lite' ), + 'installContent' => esc_html__( 'In order to build the best forms possible, we need to install some addons. Would you like to install the recommended addons?', 'wpforms-lite' ), + 'activateContent' => esc_html__( 'In order to build the best forms possible, we need to activate some addons. Would you like to activate the recommended addons?', 'wpforms-lite' ), + 'installConfirmButton' => esc_html__( 'Yes, Install', 'wpforms-lite' ), + 'activateConfirmButton' => esc_html__( 'Yes, Activate', 'wpforms-lite' ), + 'cancelButton' => esc_html__( 'No, Thanks', 'wpforms-lite' ), + 'dontShow' => esc_html__( 'Don\'t show this again', 'wpforms-lite' ), + 'okay' => esc_html__( 'Okay', 'wpforms-lite' ), + 'installing' => esc_html__( 'Installing...', 'wpforms-lite' ), + 'activating' => esc_html__( 'Activating...', 'wpforms-lite' ), + 'addonsInstalledTitle' => esc_html__( 'Addons Installed', 'wpforms-lite' ), + 'addonsActivatedTitle' => esc_html__( 'Addons Activated', 'wpforms-lite' ), + 'addonsInstalledContent' => esc_html__( 'You’re all set. We’re going to reload the builder and you can start building your form.', 'wpforms-lite' ), + 'addonsInstallErrorTitle' => esc_html__( 'Addons Installation Error', 'wpforms-lite' ), + 'addonsActivateErrorTitle' => esc_html__( 'Addons Activation Error', 'wpforms-lite' ), + 'addonsInstallError' => esc_html__( 'Can\'t install or activate the required addons.', 'wpforms-lite' ), + 'addonsInstallErrorNetwork' => esc_html__( 'There appears to be a network error.', 'wpforms-lite' ), + 'dismissErrorTitle' => esc_html__( 'Error', 'wpforms-lite' ), + 'dismissError' => esc_html__( 'Can\'t dismiss the modal window.', 'wpforms-lite' ), + 'addon' => esc_html__( 'Addon', 'wpforms-lite' ), + 'and' => esc_html__( 'and', 'wpforms-lite' ), + 'addonInstalledTitle' => esc_html__( 'Addon Installed', 'wpforms-lite' ), + 'addonActivatedTitle' => esc_html__( 'Addon Activated', 'wpforms-lite' ), + 'addonInstalledContent' => esc_html__( 'You’re all set. We’re going to continue building your form.', 'wpforms-lite' ), + ], + 'quiz' => [ + 'modalTitle' => esc_html__( 'Quiz Detected', 'wpforms-lite' ), + 'modalContent' => sprintf( + wp_kses( /* translators: %1$s - Quiz addon doc link. */ + __( 'It looks like you\'re trying to create a quiz. Would you like to activate the Quiz Addon and easily create graded, personality, and weighted quizzes?', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + // @TODO: Confirm the URL. + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/quiz-addon/', 'builder-modal', 'Quiz Addon Documentation' ) ) + ), + ], + 'previewNotice' => [ + 'title' => esc_html__( 'This Form Would Be Even Better With Fields From', 'wpforms-lite' ), + 'msgUpgrade' => wp_kses( /* translators: %1$s - Upgrade to Pro link attributes. */ + __( 'Upgrade to Pro and gain access to all fields and create the best possible forms.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + ], + ] + ), + 'btnUpgrade' => esc_html__( 'Upgrade to Pro', 'wpforms-lite' ), + 'addons' => esc_html__( 'Addons', 'wpforms-lite' ), + 'dismiss' => esc_html__( 'Dismiss this notice', 'wpforms-lite' ), + ], + 'misc' => [ + 'warningExistingForm' => esc_html__( 'You’re about to overwrite your existing form. This will delete all fields and reset external connections. Are you sure you want to continue?', 'wpforms-lite' ), + 'frozenChallengeTooltip' => esc_html__( 'The challenge will continue once AI form generation is complete', 'wpforms-lite' ), + ], + ]; + } + + /** + * Add chat element localize data. + * + * @since 1.9.2 + * + * @param array $strings Strings. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection HtmlUnknownTarget + */ + public function add_localize_chat_data( $strings ): array { + + $for_lite = wpforms()->is_pro() ? '' : ' for Lite'; + + $strings['forms'] = [ + 'title' => esc_html__( 'Generate a Form', 'wpforms-lite' ), + 'description' => esc_html__( 'Describe the form you would like to create or use one of the example prompts below to get started.', 'wpforms-lite' ), + 'descrEndDot' => '', + 'learnMore' => esc_html__( 'Learn More About WPForms AI', 'wpforms-lite' ), + 'learnMoreUrl' => wpforms_utm_link( 'https://wpforms.com/features/wpforms-ai/', 'Builder - Settings', 'Learn more - AI Forms' . $for_lite ), + 'inactiveAnswerTitle' => esc_html__( 'Go back to this version of the form', 'wpforms-lite' ), + 'useForm' => esc_html__( 'Use This Form', 'wpforms-lite' ), + 'placeholder' => esc_html__( 'What would you like to create?', 'wpforms-lite' ), + 'waiting' => esc_html__( 'Just a minute...', 'wpforms-lite' ), + 'errors' => [ + 'default' => esc_html__( 'An error occurred while generating form.', 'wpforms-lite' ), + 'rate_limit' => esc_html__( 'Sorry, you\'ve reached your daily limit for generating forms.', 'wpforms-lite' ), + ], + 'footer' => [ + esc_html__( 'What do you think of the form I created for you? If you’re happy with it, you can use this form. Otherwise, make changes by entering additional prompts.', 'wpforms-lite' ), + esc_html__( 'How’s that? Are you ready to use this form?', 'wpforms-lite' ), + esc_html__( 'Does this look good? Are you ready to implement this form?', 'wpforms-lite' ), + esc_html__( 'Is this what you had in mind? Are you satisfied with the results?', 'wpforms-lite' ), + esc_html__( 'Happy with the form? Ready to move forward?', 'wpforms-lite' ), + esc_html__( 'Is this form a good fit for your needs? Can we proceed?', 'wpforms-lite' ), + esc_html__( 'Are you pleased with the outcome? Ready to use this form?', 'wpforms-lite' ), + esc_html__( 'Does this form meet your expectations? Can we move on to the next step?', 'wpforms-lite' ), + esc_html__( 'Is this form what you were envisioning? Are you ready to use it?', 'wpforms-lite' ), + esc_html__( 'Satisfied with the form? Let\'s use it!', 'wpforms-lite' ), + esc_html__( 'Does this form align with your goals? Are you ready to implement it?', 'wpforms-lite' ), + esc_html__( 'Happy with the results? Let\'s put this form to work!', 'wpforms-lite' ), + ], + 'reasons' => [ + 'default' => sprintf( + wp_kses( /* translators: %1$s - Reload link class. */ + __( 'Reload this window and try again.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + ], + ] + ), + 'wpforms-ai-chat-reload-link' + ), + 'rate_limit' => sprintf( + wp_kses( /* translators: %s - WPForms contact support link. */ + __( 'You may only generate forms 50 times per day. If you believe this is an error, please contact WPForms support.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + wpforms_utm_link( 'https://wpforms.com/account/support/', 'AI Feature' ) + ), + ], + 'samplePrompts' => [ + [ + 'icon' => 'wpforms-ai-chat-sample-restaurant', + 'title' => esc_html__( 'Restaurant customer satisfaction survey', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-ticket', + 'title' => esc_html__( 'Online event registration', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-design', + 'title' => esc_html__( 'Job application for a web designer', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-stop', + 'title' => esc_html__( 'Cancellation survey for a subscription', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-pizza', + 'title' => esc_html__( 'Takeout order for a pizza store', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-market', + 'title' => esc_html__( 'Market vendor application', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-quiz-capitals', + 'title' => esc_html__( 'How well do you know world capitals?', 'wpforms-lite' ), + 'prompt' => esc_html__( 'Create a graded quiz on the topic of "How well do you know world capitals?" with 10 questions and 3 answers each. Randomize the choices. Collect the user\'s name and email address. Create 4 outcomes set to Graded Quiz type with appropriate text for each grade and utilize the available smart tags. The graded outcomes should be if Quiz Grade is A, if Quiz Grade is B, if Quiz Grade is C, if Quiz Grade is D, and if Quiz Grade is F.', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-quiz-learn', + 'title' => esc_html__( 'What is your ideal learning style?', 'wpforms-lite' ), + 'prompt' => esc_html__( 'Create a personality quiz on the topic of "What is your ideal learning style?" with 10 questions and 4 answers each. The personalities are Visual, Auditory, Reading/Writing, and Kinesthetic. Collect the user\'s name and email address. Create 4 outcomes set to Personality Quiz type with neutral text and utilize the available smart tags.', 'wpforms-lite' ), + ], + [ + 'icon' => 'wpforms-ai-chat-sample-quiz-business', + 'title' => esc_html__( 'How prepared are you to start a business?', 'wpforms-lite' ), + 'prompt' => esc_html__( 'Create a weighted quiz on the topic of "How prepared are you to start a business?" with 10 questions and 3 answers each. Collect the user\'s name and email address. Create 3 outcomes set to Weighted Quiz type for greater than 74%, less than 75% and greater than 49%, and less than 50%.', 'wpforms-lite' ), + ], + ], + ]; + + $user_id = get_current_user_id(); + + // Get the chat session stored in user meta. + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['session'] ) ) { + $session_id = sanitize_text_field( wp_unslash( $_GET['session'] ) ); + $meta = get_user_meta( $user_id, 'wpforms_builder_ai_form_chat_' . $session_id, true ); + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended + + // If we have the meta-data, add it to the strings. + if ( ! empty( $meta ) ) { + // Remove user meta after using it. + delete_user_meta( $user_id, 'wpforms_builder_ai_form_chat_' . ( $session_id ?? '' ) ); + + $strings['forms']['chatHtml'] = $meta['chatHtml']; + $strings['forms']['responseHistory'] = $meta['responseHistory']; + } + + return $strings; + } + + /** + * Get required addons' data. + * + * @since 1.9.2 + * + * @return array + */ + private function get_required_addons_data(): array { + + // The addon installation procedure has floating issues in PHP < 7.4. + // It's better to skip the installation in this case to avoid addon installation errors. + if ( PHP_VERSION_ID < 70400 ) { + return []; + } + + $addons_obj = wpforms()->obj( 'addons' ); + + if ( ! $addons_obj ) { + return []; + } + + $data = []; + + // Get the URLs for the required addons. + foreach ( FormsAjax::FORM_GENERATOR_REQUIRED_ADDONS as $slug ) { + $addon = $addons_obj->get_addon( $slug ); + $data[ $slug ] = $this->get_required_addon_data( $addon ); + } + + return array_filter( $data ); + } + + /** + * Get required addon data. + * + * @since 1.9.9 + * + * @param array|mixed $addon Addon data. + * + * @return array|null + */ + private function get_required_addon_data( $addon ): ?array { + + if ( + empty( $addon ) || // Exceptional case when `addons.json` is not loaded. + + // This means that addon is already installed and active. + ( isset( $addon['status'] ) && $addon['status'] === 'active' ) || + + // This means that addon is not available in the current license. + // We should skip in this case as it is impossible to install or activate the addon. + ( isset( $addon['action'] ) && $addon['action'] === 'upgrade' ) + ) { + return null; + } + + return [ + 'url' => $addon['url'] ?? '', + 'path' => $addon['path'] ?? '', + ]; + } + + /** + * Get required addons action. + * + * @since 1.9.2 + * + * @param array $addons_data Addons data. + * + * @return string + */ + private function get_required_addons_action( array $addons_data ): string { + + if ( empty( $addons_data ) ) { + return ''; + } + + foreach ( $addons_data as $data ) { + if ( ! empty( $data['url'] ) ) { + return 'install'; + } + } + + return 'activate'; + } + + /** + * Get dismissed elements data. + * + * @since 1.9.2 + * + * @return array + */ + private function get_dismissed_elements(): array { + + $user_id = get_current_user_id(); + + // Dismissed elements. + $dismissed = get_user_meta( $user_id, 'wpforms_dismissed', true ); + + return [ + 'installAddons' => ! empty( $dismissed['edu-ai-forms-install-addons-modal'] ), + 'previewNotice' => ! empty( $dismissed['edu-ai-forms-preview-addons-notice'] ), + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Pages/Templates.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Pages/Templates.php new file mode 100644 index 0000000..a8dfb11 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Pages/Templates.php @@ -0,0 +1,105 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.2 + */ + private function hooks(): void { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + add_action( 'wpforms_admin_form_templates_list_before', [ $this, 'output_card' ] ); + } + + /** + * Enqueue styles and scripts. + * + * @since 1.9.2 + */ + public function enqueues(): void { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-ai-forms-admin', + WPFORMS_PLUGIN_URL . "assets/css/integrations/ai/form-templates-page$min.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Output Generate with AI card. + * + * @since 1.9.3 + * + * @noinspection HtmlUnknownTarget + * @noinspection HtmlUnknownAttribute + */ + public function output_card(): void { + + $button_class = 'wpforms-template-generate'; + $button_attr = ''; + + // In Lite, we should disable the button in the case Lite Connect is not allowed. + if ( ! LiteConnect::is_allowed() && ! wpforms()->is_pro() ) { + $button_class .= ' wpforms-inactive wpforms-help-tooltip'; + $button_attr = sprintf( + 'data-tooltip-position="top" title="%1$s"', + esc_html__( 'WPForms AI is not available on local sites.', 'wpforms-lite' ) + ); + } + + printf( + '
              +
              +
              + %2$s +
              +
              +
              +

              + %2$s +

              + %3$s +
              +

              + %4$s +

              + +
              ', + esc_url( WPFORMS_PLUGIN_URL ) . 'assets/images/integrations/ai/ai-feature-icon.svg', + esc_html__( 'Generate With AI', 'wpforms-lite' ), + esc_html__( 'NEW!', 'wpforms-lite' ), + esc_html__( 'Write simple prompts to create complex forms catered to your specific needs.', 'wpforms-lite' ), + esc_attr( $button_class ), + $button_attr, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + esc_html__( 'Generate Form', 'wpforms-lite' ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Settings.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Settings.php new file mode 100644 index 0000000..3c3ec9b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Admin/Settings.php @@ -0,0 +1,71 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.1 + */ + private function hooks() { + + add_filter( 'wpforms_settings_defaults', [ $this, 'register_settings' ] ); + } + + /** + * Add toggle to the Settings > Misc admin page. + * + * @since 1.9.1 + * + * @param array|mixed $settings WPForms settings. + * + * @return array + */ + public function register_settings( $settings ): array { + + $settings = (array) $settings; + + $ai_settings = [ + 'id' => Helpers::DISABLE_KEY, + 'name' => esc_html__( 'Hide AI Features', 'wpforms-lite' ), + 'desc' => esc_html__( 'Hide everything related to AI in WPForms.', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + 'value' => Helpers::is_disabled(), + 'disabled' => Helpers::is_disabled_by_rule(), + ]; + + if ( $ai_settings['disabled'] ) { + $ai_settings['disabled_desc'] = wp_kses( + __( 'AI features were hidden by filter or constant.', 'wpforms-lite' ), // phpcs:ignore WordPress.WP.I18n.NoHtmlWrappedStrings + [ + 'strong' => [], + ] + ); + } + + // Add after the "Hide Admin Bar Menu" toggle. + $settings['misc'] = wpforms_array_insert( $settings['misc'], [ Helpers::DISABLE_KEY => $ai_settings ], 'hide-admin-bar' ); + + return $settings; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/AI/Helpers.php b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Helpers.php new file mode 100644 index 0000000..8c63da3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/AI/Helpers.php @@ -0,0 +1,145 @@ + Misc admin page. + * + * @since 1.9.1 + */ + public const DISABLE_KEY = 'ai-feature-disabled'; + + /** + * Key for a state whether integration is used (or has been used). + * There is no UI/UX for it, and it's used for internal purposes. + * + * @since 1.9.1 + */ + private const USE_KEY = 'ai-feature-used'; + + /** + * Determine whether integration is disabled. + * + * @since 1.9.1 + * + * @return bool + */ + public static function is_disabled(): bool { + + return self::is_disabled_by_rule() || wpforms_setting( self::DISABLE_KEY ); + } + + /** + * Determine whether integration is used. + * + * @since 1.9.1 + * + * @return bool + */ + public static function is_used(): bool { + + return (bool) wpforms_setting( self::USE_KEY ); + } + + /** + * Mark integration as used. + * + * @since 1.9.1 + */ + public static function set_ai_used() { + + if ( self::is_used() ) { + return; + } + + $settings = (array) get_option( 'wpforms_settings', [] ); + + $settings[ self::USE_KEY ] = true; + + update_option( 'wpforms_settings', $settings ); + } + + /** + * Determine whether integration is disabled through constant or filter. + * + * @since 1.9.1 + * + * @return bool + * @noinspection PhpUndefinedConstantInspection + */ + public static function is_disabled_by_rule(): bool { + + $is_disabled = defined( 'WPFORMS_DISABLE_AI_FEATURES' ) && WPFORMS_DISABLE_AI_FEATURES; + + /** + * Allow modifying whether AI integration is disabled in WPForms. + * + * @since 1.9.1 + * + * @param bool $is_disabled True if AI integration is disabled. Default is false. + */ + return (bool) apply_filters( 'wpforms_disable_ai_features', $is_disabled ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Log an error record. + * + * @since 1.9.1 + * + * @param string $message Error message. + * @param string $endpoint Endpoint. + * @param array $args Arguments. + */ + public static function log_error( string $message, string $endpoint, array $args ) { + + wpforms_log( + 'AI Integration Error', + [ + 'error' => $message, + 'endpoint' => $endpoint, + 'args' => $args, + ], + [ + 'type' => [ 'ai', 'error' ], + ] + ); + } + + /** + * Get the license type. + * + * @since 1.9.4 + * + * @return string + */ + public static function get_license_type(): string { + + $license = (array) get_option( 'wpforms_license', [] ); + + return $license['type'] ?? ''; + } + + /** + * Determine whether a license key is active. + * + * @since 1.9.4 + * + * @return bool + */ + public static function is_license_active(): bool { + + $license = (array) get_option( 'wpforms_license', [] ); + + return ! empty( wpforms_get_license_key() ) && + empty( $license['is_expired'] ) && + empty( $license['is_disabled'] ) && + empty( $license['is_invalid'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Abilities/Abilities.php b/wp-content/plugins/wpforms-lite/src/Integrations/Abilities/Abilities.php new file mode 100644 index 0000000..d6d36c4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Abilities/Abilities.php @@ -0,0 +1,539 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.9 + */ + protected function hooks(): void { + + add_action( 'wp_abilities_api_categories_init', [ $this, 'register_category' ] ); + add_action( 'wp_abilities_api_init', [ $this, 'register_abilities' ] ); + } + + /** + * Register the WPForms ability category. + * + * @since 1.9.9 + */ + public function register_category(): void { + + wp_register_ability_category( + self::CATEGORY_SLUG, + [ + 'label' => __( 'WPForms', 'wpforms-lite' ), + 'description' => __( 'Abilities for interacting with WPForms forms and entries.', 'wpforms-lite' ), + ] + ); + } + + /** + * Register WPForms abilities. + * + * @since 1.9.9 + */ + abstract public function register_abilities(); + + /** + * Register common abilities shared between Lite and Pro. + * + * @since 1.9.9 + */ + protected function register_common_abilities(): void { + + $this->register_list_forms_ability(); + $this->register_get_form_ability(); + } + + /** + * Register the list_forms ability. + * + * @since 1.9.9 + */ + protected function register_list_forms_ability(): void { + + wp_register_ability( + self::ABILITY_NAMESPACE . '/list-forms', + [ + 'label' => __( 'List Forms', 'wpforms-lite' ), + 'description' => __( 'List all available WPForms forms with their metadata.', 'wpforms-lite' ), + 'category' => self::CATEGORY_SLUG, + 'execute_callback' => [ $this, 'ability_list_forms' ], + 'permission_callback' => [ $this, 'check_view_forms_permission' ], + 'input_schema' => [ + 'type' => 'object', + 'properties' => [ + 'status' => [ + 'description' => __( 'Filter forms by status.', 'wpforms-lite' ), + 'type' => 'string', + 'enum' => [ 'publish', 'draft', 'trash' ], + 'default' => 'publish', + ], + 'limit' => [ + 'description' => __( 'Maximum number of forms to return.', 'wpforms-lite' ), + 'type' => 'integer', + 'minimum' => 1, + 'maximum' => 100, + 'default' => 20, + ], + 'offset' => [ + 'description' => __( 'Number of forms to skip.', 'wpforms-lite' ), + 'type' => 'integer', + 'minimum' => 0, + 'default' => 0, + ], + ], + ], + 'output_schema' => [ + 'type' => 'object', + 'properties' => [ + 'forms' => [ + 'type' => 'array', + 'description' => __( 'Array of form objects.', 'wpforms-lite' ), + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'id' => [ 'type' => 'integer' ], + 'title' => [ 'type' => 'string' ], + 'status' => [ 'type' => 'string' ], + 'created' => [ 'type' => 'string' ], + 'modified' => [ 'type' => 'string' ], + ], + ], + ], + 'total' => [ + 'type' => 'integer', + 'description' => __( 'Total number of forms returned.', 'wpforms-lite' ), + ], + ], + ], + 'meta' => [ + 'annotations' => [ + 'readonly' => true, + 'destructive' => false, + 'idempotent' => true, + ], + 'show_in_rest' => true, + 'mcp' => [ + 'public' => true, + ], + ], + ] + ); + } + + /** + * Register the get_form ability. + * + * @since 1.9.9 + */ + protected function register_get_form_ability(): void { + + wp_register_ability( + self::ABILITY_NAMESPACE . '/get-form', + [ + 'label' => __( 'Get Form', 'wpforms-lite' ), + 'description' => __( 'Get detailed information about a specific WPForms form including its fields.', 'wpforms-lite' ), + 'category' => self::CATEGORY_SLUG, + 'execute_callback' => [ $this, 'ability_get_form' ], + 'permission_callback' => [ $this, 'check_view_single_form_permission' ], + 'input_schema' => [ + 'type' => 'object', + 'properties' => [ + 'form_id' => [ + 'description' => __( 'The ID of the form to retrieve.', 'wpforms-lite' ), + 'type' => 'integer', + 'minimum' => 1, + ], + 'include_fields' => [ + 'description' => __( 'Whether to include field configuration.', 'wpforms-lite' ), + 'type' => 'boolean', + 'default' => true, + ], + ], + 'required' => [ 'form_id' ], + ], + 'output_schema' => [ + 'type' => 'object', + 'properties' => [ + 'id' => [ 'type' => 'integer' ], + 'title' => [ 'type' => 'string' ], + 'status' => [ 'type' => 'string' ], + 'settings' => [ 'type' => 'object' ], + 'fields' => [ 'type' => 'array' ], + ], + ], + 'meta' => [ + 'annotations' => [ + 'readonly' => true, + 'destructive' => false, + 'idempotent' => true, + ], + 'show_in_rest' => true, + 'mcp' => [ + 'public' => true, + ], + ], + ] + ); + } + + /** + * Permission callback: Check if the user can view forms. + * + * @since 1.9.9 + * + * @return bool|WP_Error + */ + public function check_view_forms_permission() { + + if ( ! wpforms_current_user_can( 'view_forms' ) ) { + return new WP_Error( + 'wpforms_forbidden', + __( 'You do not have permission to view forms.', 'wpforms-lite' ), + [ 'status' => 403 ] + ); + } + + return true; + } + + /** + * Permission callback: Check if the user can view a specific form. + * + * @since 1.9.9 + * + * @param mixed $input Input data containing form_id. + * + * @return bool|WP_Error + */ + public function check_view_single_form_permission( $input = null ) { + + $input = $this->normalize_input( $input ); + $form_id = absint( $input['form_id'] ?? 0 ); + + if ( ! $form_id || ! wpforms_current_user_can( 'view_form_single', $form_id ) ) { + return new WP_Error( + 'wpforms_forbidden', + __( 'You do not have permission to view this form.', 'wpforms-lite' ), + [ 'status' => 403 ] + ); + } + + return true; + } + + /** + * Ability callback: List forms. + * + * @since 1.9.9 + * + * @param mixed $input Input data. + * + * @return array + */ + public function ability_list_forms( $input = null ): array { + + $args = $this->normalize_input( $input ); + + $form_handler = $this->get_form_handler(); + + if ( is_wp_error( $form_handler ) ) { + return [ + 'forms' => [], + 'total' => 0, + ]; + } + + $limit = absint( $args['limit'] ?? 20 ); + $offset = absint( $args['offset'] ?? 0 ); + $status = sanitize_text_field( $args['status'] ?? 'publish' ); + + // Get total count efficiently using the cached WordPress function. + $counts = wp_count_posts( 'wpforms' ); + $total = $counts->{$status} ?? 0; + + // Get paginated forms with proper WordPress pagination. + $query_args = [ + 'post_status' => $status, + 'posts_per_page' => $limit, + 'offset' => $offset, + 'nopaging' => false, // Override default to enable pagination. + 'order' => 'DESC', + 'orderby' => 'date', + ]; + + $forms = $form_handler->get( '', $query_args ); + + if ( empty( $forms ) ) { + return [ + 'forms' => [], + 'total' => $total, + ]; + } + + $result = []; + + foreach ( $forms as $form ) { + $result[] = $this->format_form_summary( $form ); + } + + return [ + 'forms' => $result, + 'total' => $total, + ]; + } + + /** + * Ability callback: Get single form. + * + * @since 1.9.9 + * + * @param mixed $input Input data. + * + * @return array|WP_Error + */ + public function ability_get_form( $input = null ) { + + $args = $this->normalize_input( $input ); + $form_id = absint( $args['form_id'] ?? 0 ); + + if ( empty( $form_id ) ) { + return new WP_Error( + 'wpforms_invalid_form_id', + __( 'Invalid form ID.', 'wpforms-lite' ), + [ 'status' => 400 ] + ); + } + + $form_handler = $this->get_form_handler(); + + if ( is_wp_error( $form_handler ) ) { + return $form_handler; + } + + $form = $form_handler->get( $form_id ); + + if ( empty( $form ) ) { + return new WP_Error( + 'wpforms_form_not_found', + __( 'Form not found.', 'wpforms-lite' ), + [ 'status' => 404 ] + ); + } + + $include_fields = wp_validate_boolean( $args['include_fields'] ?? true ); + + return $this->format_form_detail( $form, $include_fields ); + } + + /** + * Normalize input data to array format. + * + * @since 1.9.9 + * + * @param mixed $input Input data (can be the array, object, or null). + * + * @return array + */ + protected function normalize_input( $input ): array { + + if ( is_array( $input ) ) { + return $input; + } + + if ( is_object( $input ) ) { + return (array) $input; + } + + return []; + } + + /** + * Get the form handler and validate it. + * + * @since 1.9.9 + * + * @return object|WP_Error Form handler object or WP_Error on failure. + */ + protected function get_form_handler() { + + $form_handler = wpforms()->obj( 'form' ); + + if ( ! $form_handler ) { + return new WP_Error( + 'wpforms_form_handler_error', + __( 'Form handler not available.', 'wpforms-lite' ), + [ 'status' => 500 ] + ); + } + + return $form_handler; + } + + /** + * Format form data for summary listing. + * + * @since 1.9.9 + * + * @param WP_Post $form Form the `post` object. + * + * @return array + */ + protected function format_form_summary( WP_Post $form ): array { + + return [ + 'id' => $form->ID, + 'title' => $form->post_title, + 'status' => $form->post_status, + 'created' => $form->post_date, + 'modified' => $form->post_modified, + 'author' => absint( $form->post_author ), + ]; + } + + /** + * Format form data for the detailed view. + * + * @since 1.9.9 + * + * @param WP_Post $form Form `post` object. + * @param bool $include_fields Whether to include fields. + * + * @return array + */ + protected function format_form_detail( WP_Post $form, bool $include_fields = true ): array { + + $form_handler = $this->get_form_handler(); + $form_data = ! is_wp_error( $form_handler ) ? $form_handler->get( $form->ID, [ 'content_only' => true ] ) : []; + + // Ensure form_data is an array. + if ( ! is_array( $form_data ) ) { + $form_data = []; + } + + $result = [ + 'id' => $form->ID, + 'title' => $form->post_title, + 'status' => $form->post_status, + 'created' => $form->post_date, + 'modified' => $form->post_modified, + 'author' => absint( $form->post_author ), + 'settings' => $this->get_safe_settings( $form_data ), + ]; + + if ( $include_fields && ! empty( $form_data['fields'] ) ) { + $result['fields'] = $this->format_fields( $form_data['fields'] ); + } + + return $result; + } + + /** + * Get safe settings (without sensitive data). + * + * @since 1.9.9 + * + * @param array $form_data Form data. + * + * @return array + */ + protected function get_safe_settings( array $form_data ): array { + + $settings = $form_data['settings'] ?? []; + + // Return only safe, non-sensitive settings. + return [ + 'form_title' => $settings['form_title'] ?? '', + 'form_desc' => $settings['form_desc'] ?? '', + 'submit_text' => $settings['submit_text'] ?? __( 'Submit', 'wpforms-lite' ), + 'ajax_submit' => ! empty( $settings['ajax_submit'] ), + 'honeypot' => ! empty( $settings['honeypot'] ), + 'antispam' => ! empty( $settings['antispam'] ), + ]; + } + + /** + * Format fields for output. + * + * @since 1.9.9 + * + * @param array $fields Form fields. + * + * @return array + */ + protected function format_fields( array $fields ): array { + + $result = []; + + foreach ( $fields as $field_id => $field ) { + $result[] = [ + 'id' => absint( $field_id ), + 'type' => sanitize_text_field( $field['type'] ?? '' ), + 'label' => sanitize_text_field( $field['label'] ?? '' ), + 'description' => sanitize_text_field( $field['description'] ?? '' ), + 'required' => ! empty( $field['required'] ), + 'size' => sanitize_text_field( $field['size'] ?? 'medium' ), + ]; + } + + return $result; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Api.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Api.php new file mode 100644 index 0000000..75c1d36 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Api.php @@ -0,0 +1,445 @@ +account = $account; + + $this->refresh_access_token(); + + $this->request = new Request( $this->account['access_token'] ); + } + + /** + * Get custom fields in a specific format based on provided arguments. + * + * @since 1.9.3 + * + * @param string|null $field The field to extract from each custom field. If null, returns all custom fields. + * @param string|null $index_key The key to index the returned array by. If null, returns a numerically indexed array. + * + * @return array + */ + public function get_custom_fields( ?string $field = null, ?string $index_key = null ): array { + + $custom_fields = $this->request->get( 'v3/contact_custom_fields', [ 'limit' => 100 ] ); + $custom_fields = $custom_fields->get_body(); + + if ( empty( $custom_fields['custom_fields'] ) || ! is_array( $custom_fields['custom_fields'] ) ) { + return []; + } + + $custom_fields = $custom_fields['custom_fields']; + + if ( is_null( $field ) ) { + return $custom_fields; + } + + // Return plucked fields based on provided arguments. + + return wp_list_pluck( $custom_fields, $field, $index_key ); + } + + /** + * Register a custom field. + * + * @since 1.9.3 + * + * @param string $name Name of the custom field. + * + * @return string + */ + public function register_custom_field( string $name ): string { + + $body = [ + 'label' => $name, + 'type' => 'string', + ]; + + $response = $this->request->post( 'v3/contact_custom_fields', $body ); + + return $response->get_body()['custom_field_id'] ?? ''; + } + + /** + * Get account summary. + * + * @since 1.9.3 + * + * @return array + * + * @throws RuntimeException A request was failed. + */ + public function get_account_summary(): array { + + $response = $this->request->get( 'v3/account/summary' ); + + if ( $response->has_errors() ) { + throw new RuntimeException( esc_html( $response::get_error_message() ) ); + } + + return $response->get_body(); + } + + /** + * Search contact. + * + * @since 1.9.3 + * + * @param array $contact_data Contact data. + * + * @return array Contact data array. + * + * @throws RuntimeException A request was failed. + */ + private function search_contact( array $contact_data ): array { + + $this->validate_contact_email( $contact_data ); + + $args = [ + 'limit' => 1, + 'email' => $contact_data['email_address'], + ]; + + $response = $this->request->get( 'v3/contacts', $args ); + + $body = $response->get_body(); + + if ( empty( $body['contacts'][0] ) || ! is_array( $body['contacts'][0] ) ) { + throw new RuntimeException( 'Contact not found.' ); + } + + return $body['contacts'][0]; + } + + /** + * Create or update contact. + * + * @since 1.9.3 + * + * @param array $contact_data Contact data. + * + * @return array + * + * @throws RuntimeException A request was failed. + */ + public function subscribe_contact( array $contact_data ): array { + + $this->validate_subscribe_contact( $contact_data ); + + $response = $this->request->post( 'v3/contacts/sign_up_form', $contact_data ); + + $body = $response->get_body(); + + if ( $response->has_errors() ) { + throw new RuntimeException( esc_html( $response::get_error_message() ) ); + } + + if ( empty( $body['contact_id'] ) || empty( $body['action'] ) ) { + throw new RuntimeException( 'Account was not created.' ); + } + + return $body; + } + + /** + * Validate fields for subscribing action. + * + * @since 1.9.3 + * + * @param array $contact_data Contact data. + * + * @throws InvalidArgumentException If the email address is empty. + */ + private function validate_subscribe_contact( array $contact_data ) { + + $this->validate_contact_email( $contact_data ); + + foreach ( [ 'first_name', 'last_name', 'job_title', 'company_name', 'phone_number' ] as $key ) { + if ( isset( $contact_data[ $key ] ) && ! is_string( $contact_data[ $key ] ) ) { + throw new InvalidArgumentException( sprintf( 'The "%s" argument should be a string.', esc_html( $key ) ) ); + } + } + + if ( isset( $contact_data['street_address'] ) ) { + foreach ( (array) $contact_data['street_address'] as $key => $value ) { + if ( ! is_string( $value ) ) { + throw new InvalidArgumentException( sprintf( 'The "%s" argument should be a string.', esc_html( $key ) ) ); + } + } + } + } + + /** + * Validate contact email. + * + * @since 1.9.3 + * + * @param array $contact_data Contact data. + * + * @throws InvalidArgumentException If the email address is empty. + */ + private function validate_contact_email( array $contact_data ) { + + if ( empty( $contact_data['email_address'] ) || ! is_email( $contact_data['email_address'] ) ) { + throw new InvalidArgumentException( 'Email address is required.' ); + } + } + + /** + * Delete contact. + * + * @since 1.9.3 + * + * @param array $contact_data Contact data. + * + * @return array Array with contact ID and action, empty array if no contact was found. + * + * @throws RuntimeException A request was failed. + */ + public function delete_contact( array $contact_data ): array { + + $contact = $this->search_contact( $contact_data ); + + if ( empty( $contact['contact_id'] ) ) { + throw new RuntimeException( 'Contact not found.' ); + } + + $endpoint = 'v3/contacts/' . $contact['contact_id']; + $response = $this->request->delete( $endpoint ); + + if ( $response->has_errors() ) { + throw new RuntimeException( esc_html( $response::get_error_message() ) ); + } + + return [ + 'contact_id' => $contact['contact_id'], + 'action' => 'delete', + 'response' => $response->get_body(), + ]; + } + + /** + * Unsubscribe contact. + * + * @since 1.9.3 + * + * @param array $contact_data Contact data. + * + * @return array + * + * @throws InvalidArgumentException If some arguments are used wrong. + * @throws RuntimeException A request was failed. + */ + public function unsubscribe_contact( array $contact_data ): array { + + if ( isset( $contact_data['opt_out_reason'] ) && ! is_string( $contact_data['opt_out_reason'] ) ) { + throw new InvalidArgumentException( sprintf( 'The "%s" argument should be a string.', 'opt_out_reason' ) ); + } + + $contact = $this->search_contact( $contact_data ); + + if ( empty( $contact['contact_id'] ) ) { + throw new RuntimeException( 'Contact not found.' ); + } + + $request_data = wp_parse_args( + $contact, + [ + 'first_name' => '', + 'last_name' => '', + 'company_name' => '', + 'job_title' => '', + 'street_address' => '', + ] + ); + + $request_data['email_address'] = [ + 'address' => $contact['email_address']['address'] ?? '', + 'permission_to_send' => 'unsubscribed', + 'opt_out_reason' => $contact_data['opt_out_reason'] ?? '', + ]; + + $request_data['update_source'] = 'Contact'; + + $response = $this->request->put( "v3/contacts/{$contact['contact_id']}", $request_data ); + + if ( $response->has_errors() ) { + throw new RuntimeException( esc_html( $response::get_error_message() ) ); + } + + return [ + 'contact_id' => $contact['contact_id'], + 'action' => 'unsubscribe', + 'response' => $response->get_body(), + ]; + } + + /** + * Check if the access token is expired. + * + * @since 1.9.3 + * + * @return bool + */ + private function is_expired_token(): bool { + + $expires_in = $this->account['expires_in'] ?? 0; + + /** + * Adding one minute to cover a very rare case when a few seconds are left, + * and the site runs multiple API requests. + * The last one could be outdated. + */ + return ( time() + MINUTE_IN_SECONDS ) > $expires_in; + } + + /** + * Refresh access token. + * + * @since 1.9.3 + * + * @throws InvalidArgumentException If the token cannot be refreshed. + */ + private function refresh_access_token() { + + if ( ! $this->is_expired_token() ) { + return; + } + + $response = wp_safe_remote_get( + add_query_arg( + [ + 'api-version' => 'v3', + 'refresh_token' => $this->account['refresh_token'], + ], + ConstantContact::get_middleware_url() + ) + ); + + $response_body = json_decode( wp_remote_retrieve_body( $response ), true ); + + if ( empty( $response_body['access_token'] ) ) { + throw new InvalidArgumentException( esc_html__( 'Cannot refresh the token.', 'wpforms-lite' ) ); + } + + $this->account = array_merge( + $this->account, + [ + 'access_token' => $response_body['access_token'], + 'refresh_token' => $response_body['refresh_token'] ?? '', + 'expires_in' => time() + (int) ( $response_body['expires_in'] ?? 0 ), + ] + ); + + wpforms_update_providers_options( Core::SLUG, $this->account, $this->account['id'] ); + } + + /** + * Get a contact list. + * + * @since 1.9.3 + * + * @return array + */ + public function get_contact_list(): array { + + $response = $this->request->get( 'v3/contact_lists', [ 'limit' => 1000 ] ); + + $body = $response->get_body(); + + $lists = $body['lists'] ?? []; + + // Replace in lists key list_id with id. + return array_map( + static function ( $contact_list ) { + + return [ + 'id' => $contact_list['list_id'] ?? '', + 'label' => $contact_list['name'] ?? '', + ]; + }, + $lists + ); + } + + /** + * Get list ids in v2 to v3 format. + * + * @since 1.9.3 + * + * @param array $lists List received from Constant Contact v2. + * + * @return array + */ + public function get_contact_list_xrefs( array $lists ): array { + + $ids = implode( ',', wp_list_pluck( $lists, 'id' ) ); + $response = $this->request->get( + 'v3/contact_lists/list_id_xrefs', + [ + 'sequence_ids' => $ids, + 'limit' => 1000, + ] + ); + + $body = $response->get_body(); + + $lists = $body['xrefs'] ?? []; + + return wp_list_pluck( $lists, 'list_id', 'sequence_id' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Request.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Request.php new file mode 100644 index 0000000..db65eb7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Request.php @@ -0,0 +1,157 @@ +access_token = $access_token; + $this->base_url = ConstantContact::get_api_url(); + } + + /** + * Perform a request. + * + * @since 1.9.3 + * + * @param string $method Method. + * @param string $endpoint Endpoint to attach to the base URL. + * @param array $args Submitted arguments. + * + * @return Response + */ + private function request( string $method, string $endpoint, array $args = [] ): Response { + + $request_args = [ + 'method' => $method, + 'timeout' => 5, + 'headers' => $this->get_headers(), + ]; + + if ( $args ) { + $request_args['body'] = wp_json_encode( $args ); + } + + /** + * Allow modifying the HTTP request arguments. + * + * @since 1.9.3 + * + * @param array $args List of request arguments. + */ + $request_args = (array) apply_filters( 'wpforms_integrations_constant_contact_v3_api_http_request_args', $request_args ); + + $response = wp_remote_request( $this->base_url . $endpoint, $request_args ); + + return new Response( $response ); + } + + /** + * GET request. + * + * @since 1.9.3 + * + * @param string $endpoint Endpoint to attach to the base URL. + * @param array $args Query arguments. + * + * @return Response + */ + public function get( string $endpoint, array $args = [] ): Response { + + $endpoint = add_query_arg( $args, $endpoint ); + + return $this->request( 'GET', $endpoint ); + } + + /** + * POST request. + * + * @since 1.9.3 + * + * @param string $endpoint Endpoint to attach to the base URL. + * @param array $args Submitted arguments. + * + * @return Response + */ + public function post( string $endpoint, array $args = [] ): Response { + + return $this->request( 'POST', $endpoint, $args ); + } + + /** + * Send DELETE request. + * + * @since 1.9.3 + * + * @param string $endpoint Endpoint. + * + * @return Response + */ + public function delete( string $endpoint ): Response { + + return $this->request( 'DELETE', $endpoint ); + } + + /** + * PUT request. + * + * @since 1.9.3 + * + * @param string $endpoint Endpoint. + * @param array $args Submitted arguments. + * + * @return Response + */ + public function put( string $endpoint, array $args = [] ): Response { + + return $this->request( 'PUT', $endpoint, $args ); + } + + /** + * Get headers. + * + * @since 1.9.3 + * + * @return array + */ + private function get_headers(): array { + + return [ + 'Authorization' => 'Bearer ' . $this->access_token, + 'Content-Type' => 'application/json', + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Response.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Response.php new file mode 100644 index 0000000..a9f6f56 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Api/Http/Response.php @@ -0,0 +1,158 @@ +input = $input; + self::$error = $this->has_errors() ? $this->get_error_from_body() : ''; + } + + /** + * Get an error message. + * + * @since 1.9.3 + * + * @return string + */ + public static function get_error_message(): string { + + return self::$error; + } + + /** + * Retrieve only the response code from the raw response. + * + * @since 1.9.3 + * + * @return int The response code as an integer. + */ + public function get_response_code(): int { + + return absint( wp_remote_retrieve_response_code( $this->input ) ); + } + + /** + * Retrieve only the response message from the raw response. + * + * @since 1.9.3 + * + * @return string The response message. + */ + public function get_response_message(): string { + + if ( $this->has_errors() ) { + return 'Response error'; + } + + $body = $this->get_body(); + + if ( ! empty( $body['message'] ) ) { + return $body['message']; + } + + return wp_remote_retrieve_response_message( $this->input ); + } + + /** + * Retrieve only the body from the raw response. + * + * @since 1.9.3 + * + * @throws RuntimeException If the response has errors. + * + * @return array The body of the response. + */ + public function get_body(): array { + + if ( $this->has_errors() ) { + $error = $this->get_error_from_body(); + + throw new RuntimeException( esc_html( $error ) ); + } + + return (array) json_decode( wp_remote_retrieve_body( $this->input ), true ); + } + + /** + * Whether we received errors in the response. + * + * @since 1.9.3 + * + * @return bool True if response has errors. + */ + public function has_errors(): bool { + + $code = $this->get_response_code(); + + return $code < 200 || $code > 299; + } + + /** + * Get an error message from the body. + * + * @since 1.9.3 + * + * @return string + */ + private function get_error_from_body(): string { + + if ( ! $this->has_errors() ) { + return ''; + } + + $body = json_decode( wp_remote_retrieve_body( $this->input ), true ); + + if ( isset( $body['error_message'] ) ) { + return $body['error_message']; + } + + $messages = []; + + foreach ( $body as $id => $value ) { + $messages[] = $value['error_message'] ?? ''; + + if ( $id === 'message' ) { + $messages[] = $value; + } + } + + return implode( ', ', $messages ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Auth.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Auth.php new file mode 100644 index 0000000..5420d4c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Auth.php @@ -0,0 +1,259 @@ + self::get_auth_url(), + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'page_url' => $this->get_page_url(), + 'nonce' => wp_create_nonce( self::NONCE ), + 'strings' => [ + 'wait' => esc_html__( 'Please wait a moment...', 'wpforms-lite' ), + 'error' => esc_html__( 'There was an error while processing your request. Please try again.', 'wpforms-lite' ), + ], + ] + ); + } + + /** + * Handle Auth popup. + * + * @since 1.9.3 + */ + public function ajax_handle_auth() { + + try { + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( esc_html__( 'You do not have permission to perform this action.', 'wpforms-lite' ) ); + } + + $account = $this->create_account(); + + $this->validate_account( $account ); + + wpforms_update_providers_options( Core::SLUG, $account, $account['id'] ); + + wp_send_json_success( $account['id'] ); + } catch ( Exception $e ) { + wp_send_json_error( $e->getMessage() ); + } + } + + /** + * Receive and validate access and refresh tokens. + * + * @since 1.9.3 + * + * @return array + * + * @throws RuntimeException Invalid code. + */ + private function get_code(): array { + + check_ajax_referer( self::NONCE, 'nonce' ); + + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $response = json_decode( wp_unslash( $_POST['data'] ?? '' ), true ); + $invalid_code_message = __( 'Invalid code.', 'wpforms-lite' ); + + if ( empty( $response ) || empty( $response['code'] ) ) { + throw new RuntimeException( esc_html( $invalid_code_message ) ); + } + + $code = json_decode( $response['code'], true ); + + if ( empty( $code['access_token'] ) ) { + throw new RuntimeException( esc_html( $invalid_code_message ) ); + } + + return $code; + } + + /** + * Validate account. + * + * @since 1.9.3 + * + * @param array $account Account data. + * + * @throws RuntimeException Invalid account. + */ + private function validate_account( array $account ) { + + if ( empty( $account['email'] ) ) { + throw new RuntimeException( esc_html__( 'Invalid account.', 'wpforms-lite' ) ); + } + + $accounts = wpforms_get_providers_options( Core::SLUG ); + + if ( empty( $accounts ) ) { + return; + } + + $emails = wp_list_pluck( $accounts, 'id', 'email' ); + + if ( + isset( $emails[ $account['email'] ] ) + && $emails[ $account['email'] ] !== $account['id'] + ) { + throw new RuntimeException( esc_html__( 'This email is already connected.', 'wpforms-lite' ) ); + } + } + + /** + * Build an option array. + * + * @since 1.9.3 + * + * @return array + * @noinspection NonSecureUniqidUsageInspection + */ + private function create_account(): array { + + $code = $this->get_code(); + $time = time(); + + $account = [ + 'id' => uniqid(), + 'date' => $time, + 'access_token' => $code['access_token'], + 'refresh_token' => $code['refresh_token'] ?? '', + 'expires_in' => $time + (int) ( $code['expires_in'] ?? 0 ), + ]; + + $account_summary = ( new Api( $account ) )->get_account_summary(); + + $account['email'] = $account_summary['contact_email'] ?? ''; + $account['label'] = $this->get_label( $account_summary ); + + /** + * Filters the account data after it was created. + * + * @since 1.9.3 + * + * @param array $account Account data. + */ + return (array) apply_filters( 'wpforms_integrations_constant_contact_v3_auth_create_account_data', $account ); + } + + /** + * Get APP data needed for auth in the sing-up popup. + * + * @since 1.9.3 + * + * @return string + */ + public static function get_auth_url(): string { + + return add_query_arg( + [ + 'client_id' => ConstantContact::get_api_key(), + 'scope' => 'offline_access account_read contact_data', + 'redirect_uri' => add_query_arg( 'api-version', 'v3', ConstantContact::get_middleware_url() ), + 'state' => 'WPForms-' . wp_rand( 1000, 9999 ), + 'response_type' => 'code', + 'prompt' => 'login', + ], + ConstantContact::SIGN_UP + ); + } + + /** + * Get label. + * + * @since 1.9.3 + * + * @param array $account_summary Account summary. + * + * @return string + */ + private function get_label( array $account_summary ): string { + + $email_part = $account_summary['contact_email'] ?? ''; + $org_part = $account_summary['organization_name'] ?? ''; + + if ( empty( $email_part ) && empty( $org_part ) ) { + return ''; + } + + if ( empty( $email_part ) ) { + return $org_part; + } + + if ( empty( $org_part ) ) { + return $email_part; + } + + return "$email_part / $org_part"; + } + + /** + * Get the URL to the providers' page with the focus on the CC v3 integration. + * + * @since 1.9.3 + * + * @return string + */ + private function get_page_url(): string { + + return add_query_arg( + [ + 'page' => 'wpforms-settings', + 'view' => 'integrations', + 'wpforms-integration' => Core::SLUG, + ], + admin_url( 'admin.php' ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/ConstantContact.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/ConstantContact.php new file mode 100644 index 0000000..fb10f4a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/ConstantContact.php @@ -0,0 +1,169 @@ +init(); + ( new Auth() )->hooks(); + + if ( + self::get_current_version() !== 3 && + empty( wpforms_get_providers_options( Core::SLUG ) ) + ) { + return; + } + + Providers::get_instance()->register( + Core::get_instance() + ); + } + + /** + * Return an actual working constant contact version. + * By default, it is 2. + * + * @since 1.9.3 + * + * @return int + */ + public static function get_current_version(): int { + + $current_version = get_option( self::VERSION_OPTION, false ); + + if ( $current_version !== false ) { + return (int) $current_version; + } + + $current_version = empty( wpforms_get_providers_options( 'constant-contact' ) ) ? 3 : 2; + + update_option( self::VERSION_OPTION, $current_version ); + + return $current_version; + } + + /** + * Get the API key. + * + * @since 1.9.3 + * + * @return string + */ + public static function get_api_key(): string { + + return defined( 'WPFORMS_CONSTANT_CONTACT_API_KEY' ) + ? (string) WPFORMS_CONSTANT_CONTACT_API_KEY + : self::API_KEY; + } + + /** + * Get the API URL. + * + * @since 1.9.3 + * + * @return string + */ + public static function get_api_url(): string { + + return self::API_URL; + } + + /** + * Get the redirect URI. + * + * @since 1.9.3 + * + * @return string + */ + public static function get_middleware_url(): string { + + return defined( 'WPFORMS_CONSTANT_CONTACT_MIDDLEWARE_URL' ) && WPFORMS_CONSTANT_CONTACT_MIDDLEWARE_URL + ? WPFORMS_CONSTANT_CONTACT_MIDDLEWARE_URL + : 'https://wpforms.com/oauth/constant-contact/'; + } + + /** + * Get the list of predefined custom fields. + * + * @since 1.9.3 + * + * @return array + */ + public static function get_predefined_custom_fields(): array { + + $fields = [ + 'first_name' => __( 'First Name', 'wpforms-lite' ), + 'last_name' => __( 'Last Name', 'wpforms-lite' ), + 'phone' => __( 'Phone', 'wpforms-lite' ), + 'job_title' => __( 'Job Title', 'wpforms-lite' ), + 'company_name' => __( 'Company Name', 'wpforms-lite' ), + ]; + + if ( wpforms()->is_pro() ) { + $fields['address'] = __( 'Address', 'wpforms-lite' ); + } + + return $fields; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Core.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Core.php new file mode 100644 index 0000000..98c2489 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Core.php @@ -0,0 +1,126 @@ + self::SLUG, + 'name' => $this->get_name(), + 'icon' => WPFORMS_PLUGIN_URL . 'assets/images/icon-provider-constant-contact.png', + ] + ); + } + + /** + * Provide an instance of the object, that should process the submitted entry. + * It will use data from an already saved entry to pass it further to a Provider. + * + * @since 1.9.3 + * + * @return Process + */ + public function get_process(): Process { + + static $process; + + if ( ! $process ) { + $process = new Process( $this ); + } + + return $process; + } + + /** + * Provide an instance of the object, that should display provider settings + * on Settings > Integrations page in the admin area. + * + * @since 1.9.3 + * + * @return PageIntegrations + */ + public function get_page_integrations(): PageIntegrations { + + static $integration; + + if ( ! $integration ) { + $integration = new PageIntegrations( static::get_instance() ); + } + + return $integration; + } + + /** + * Provide an instance of the object, that should display provider settings in the Form Builder. + * + * @since 1.9.3 + * + * @return FormBuilder + */ + public function get_form_builder(): FormBuilder { + + static $builder; + + if ( ! $builder ) { + $builder = new FormBuilder( $this ); + } + + return $builder; + } + + /** + * Provider account name. + * + * Adds "(V3)" to the name if WPFORMS_DEBUG is defined. + * + * @since 1.9.3 + * + * @return string + */ + private function get_name(): string { + + $base = 'Constant Contact'; + + if ( ! defined( 'WPFORMS_DEBUG' ) || ! WPFORMS_DEBUG ) { + return $base; + } + + return $base . ' (V3)'; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Migration/Migration.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Migration/Migration.php new file mode 100644 index 0000000..ff994ee --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Migration/Migration.php @@ -0,0 +1,773 @@ + v3 format. + * + * @since 1.9.3 + * + * @var array + */ + private $lists = []; + + /** + * New account data. + * + * @since 1.9.3 + * + * @var array + */ + private $new_account; + + /** + * Form data and settings. + * + * @since 1.9.3 + * + * @var array + */ + private $form_data; + + /** + * Index of the first name custom field in the new account. + * + * @since 1.9.3 + * + * @var int|null + */ + private $first_name_index; + + /** + * Index of the last name custom field in the new account. + * + * @since 1.9.3 + * + * @var int|null + */ + private $last_name_index; + + /** + * Init. + * + * @since 1.9.3 + */ + public function init() { + + $this->force_migration(); + + if ( ConstantContact::get_current_version() >= 3 ) { + return; + } + + $this->display_prompt(); + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.3 + */ + private function hooks() { + + // Add ajax action. + add_action( 'wp_ajax_wpforms_constant_contact_migration_prompt', [ $this, 'ajax_start_migration' ] ); + add_action( 'update_option_wpforms_providers', [ $this, 'update_providers_options_after' ], 10, 2 ); + + add_filter( 'wpforms_integrations_constant_contact_v3_auth_create_account_data', [ $this, 'migrate_account_finish' ] ); + } + + /** + * Force migration. + * + * @since 1.9.3 + */ + private function force_migration() { + + if ( ! wpforms_is_admin_page( 'settings', 'integrations' ) ) { + return; + } + + if ( ! current_user_can( 'manage_options' ) ) { + return; + } + + $key = 'constant_contact-force-migration'; + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! isset( $_GET[ $key ] ) ) { + return; + } + + if ( isset( $_SERVER['REQUEST_URI'] ) ) { + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $_SERVER['REQUEST_URI'] = remove_query_arg( $key, wp_unslash( $_SERVER['REQUEST_URI'] ) ); + } + + delete_option( ConstantContact::VERSION_OPTION ); + } + + /** + * Display migration prompt. + * + * @since 1.9.3 + */ + private function display_prompt() { + + if ( ! wpforms_is_admin_page( 'settings', 'integrations' ) ) { + return; + } + + if ( $this->migrated_accounts_exist() ) { + return; + } + + $notice_obj = wpforms()->obj( 'notice' ); + + if ( ! $notice_obj ) { + return; + } + + $notice_obj::error( + wp_kses( + sprintf( + /* translators: %1$s - link to the migration page, %2$s - closing HTML tag. */ + __( 'You need to migrate your existing forms to the new version of the Constant Contact addon. Please %1$s click here%2$s to start the migration.', 'wpforms-lite' ), + '', + '' + ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'id' => [], + ], + ] + ) + ); + } + + /** + * Replace account ID if it was migrated. + * + * @since 1.9.3 + * + * @param array $new_account New account data. + * + * @return array + */ + public function migrate_account_finish( array $new_account ): array { + + $accounts = wpforms_get_providers_options( Core::SLUG ); + + foreach ( $accounts as $account_id => $account ) { + if ( + $account['email'] === $new_account['email'] + && ! empty( $account['accounts'] ) + ) { + $new_account['id'] = $account_id; + $this->new_account = $new_account; + + $this->migrate_forms( $account ); + + break; + } + } + + return $new_account; + } + + /** + * Finish migration by setting the version to 3. + * + * @since 1.9.3 + */ + public static function finish_migration() { + + update_option( ConstantContact::VERSION_OPTION, 3 ); + } + + /** + * Update providers options after migration. + * + * @since 1.9.3 + * + * @param mixed $old_value Old providers options. + * @param mixed $new_value New providers options. + * + * @noinspection PhpUnusedParameterInspection + */ + public function update_providers_options_after( $old_value, $new_value ) { + + if ( empty( wpforms_get_providers_options( 'constant-contact' ) ) ) { + self::finish_migration(); + + return; + } + + if ( ! is_array( $new_value ) || empty( $new_value[ Core::SLUG ] ) ) { + return; + } + + if ( $this->migrated_accounts_exist() ) { + return; + } + + self::finish_migration(); + } + + /** + * Check if some migrated accounts have been already created. + * + * @since 1.9.3 + * + * @return bool + */ + private function migrated_accounts_exist(): bool { + + $accounts = wpforms_get_providers_options( Core::SLUG ); + + foreach ( $accounts as $account ) { + if ( ! empty( $account['accounts'] ) ) { + return true; + } + } + + return false; + } + + /** + * Migrate all accounts. + * + * @since 1.9.3 + */ + public function ajax_start_migration() { + + check_ajax_referer( Auth::NONCE, 'nonce' ); + + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( esc_html__( 'You do not have permission to perform this action.', 'wpforms-lite' ) ); + } + + $accounts = wpforms_get_providers_options(); + + // No accounts to migrate. + if ( empty( $accounts['constant-contact'] ) ) { + self::finish_migration(); + + wp_send_json_success(); + } + + foreach ( $accounts['constant-contact'] as $account_id => $account ) { + $this->migrate_account_start( $account_id, $account, $accounts ); + } + + // If no accounts were migrated because v2 accounts were invalid, we switch to the new version. + if ( empty( $accounts[ Core::SLUG ] ) ) { + self::finish_migration(); + + wp_send_json_success(); + } + + update_option( 'wpforms_providers', $accounts ); + + wp_send_json_success(); + } + + /** + * Migrate a specific v2 account to v3. + * + * @since 1.9.3 + * + * @param string $account_id Account ID. + * @param array $account Current account data. + * @param array $accounts List of all providers' accounts. + */ + private function migrate_account_start( string $account_id, array $account, array &$accounts ) { + + static $migrated_access_tokens = []; + + // It was possible to create an account without an access token. + if ( empty( $account['access_token'] ) ) { + return; + } + + // It was possible to create a few accounts with the same access token. + // We merge them into one in the new version. + if ( isset( $migrated_access_tokens[ $account['access_token'] ] ) ) { + $created_account_id = $migrated_access_tokens[ $account['access_token'] ]; + + $accounts['constant-contact-v3'][ $created_account_id ]['accounts'][] = $account_id; + + return; + } + + $email = $this->get_account_email( $account ); + + // We skip an account if we can't receive email, in the case the access_token isn't valid. + if ( empty( $email ) ) { + return; + } + + $migrated_access_tokens[ $account['access_token'] ] = $account_id; + + $accounts['constant-contact-v3'][ $account_id ] = [ + 'id' => $account_id, + 'accounts' => [ $account_id ], + 'access_token' => $account['access_token'], + 'date' => 0, + 'label' => $account['label'] ?? $email, + 'email' => $email, + ]; + } + + /** + * Get email from an account. + * + * @since 1.9.3 + * + * @param array $account Account data. + * + * @return string + */ + private function get_account_email( array $account ): string { + + $old_provider = new WPForms_Constant_Contact(); + + $old_provider->access_token = $account['access_token']; + + $account_info = $old_provider->get_account_information(); + + if ( is_wp_error( $account_info ) ) { + return ''; + } + + return $account_info['email'] ?? ''; + } + + /** + * Migrate forms. + * + * @since 1.9.3 + * + * @param array $old_account Old account. + * + * @return void + */ + private function migrate_forms( array $old_account ) { + + if ( ! isset( $old_account['accounts'], $old_account['access_token'] ) ) { + return; + } + + $forms = $this->get_forms( (array) $old_account['accounts'] ); + + if ( empty( $forms ) ) { + return; + } + + $this->lists = $this->get_lists_xhref( $this->new_account, $old_account['access_token'] ); + + foreach ( $forms as $form ) { + $this->migrate_form( $form ); + } + } + + /** + * Get migrated forms. + * + * @since 1.9.3 + * + * @param array $old_account_ids Old v2 account ids. + * + * @return array + * @noinspection SqlResolve + */ + private function get_forms( array $old_account_ids ): array { + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $forms = $wpdb->get_col( + $wpdb->prepare( + 'SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type = "wpforms" AND post_content REGEXP %s', + implode( '|', $old_account_ids ) + ) + ); + + if ( empty( $forms ) ) { + return []; + } + + $form_ids = array_map( 'absint', $forms ); + $form_obj = wpforms()->obj( 'form' ); + + if ( ! $form_obj ) { + return []; + } + + return (array) $form_obj->get( + '', + [ + 'numberposts' => -1, + 'orderby' => 'post__in', + 'post__in' => $form_ids, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'no_found_rows' => true, + ] + ); + } + + /** + * Copy connections from v2 to v3 in proper format. + * + * @since 1.9.3 + * + * @param WP_Post $form Form object. + */ + private function migrate_form( WP_Post $form ) { + + $this->form_data = wpforms_decode( $form->post_content ); + + // Nothing to migrate. + if ( empty( $this->form_data['providers']['constant-contact'] ) ) { + return; + } + + $migrated_connections = $this->form_data['providers'][ Core::SLUG ] ?? []; + + // All connections were migrated but account migration was interrupted by timeout or an error. + if ( count( $this->form_data['providers']['constant-contact'] ) === count( $migrated_connections ) ) { + return; + } + + $this->form_data['providers'][ Core::SLUG ] = array_merge( $migrated_connections, $this->get_new_connections() ); + + $form_obj = wpforms()->obj( 'form' ); + + if ( ! $form_obj ) { + return; + } + + $form_obj->update( $this->form_data['id'], $this->form_data ); + } + + /** + * Modify v2 connections to v3. + * + * @since 1.9.3 + * + * @return array + */ + private function get_new_connections(): array { + + $old_connections = $this->form_data['providers']['constant-contact'] ?? []; + $new_connections = []; + + foreach ( $old_connections as $connection_id => $connection ) { + $new_connection_id = str_replace( 'connection_', '', $connection_id ); + $connection = wp_parse_args( + $connection, + [ + 'connection_name' => '', + 'account_id' => '', + 'list_id' => '', + 'fields' => [], + 'conditional_logic' => '', + 'conditional_type' => '', + 'conditionals' => [], + ] + ); + + // The connection is related to another account, skip it. + if ( $this->new_account['id'] !== $connection['account_id'] ) { + continue; + } + + reset( $this->lists ); + + $new_connections[ $new_connection_id ] = [ + 'id' => $new_connection_id, + 'name' => $connection['connection_name'], + 'account_id' => $connection['account_id'], + 'action' => 'subscribe', + 'list' => $this->lists[ $connection['list_id'] ] ?? key( $this->lists ), + 'email' => explode( '.', $connection['fields']['email'] ?? '' )[0], + 'fields_meta' => $this->get_connection_custom_fields( $connection['fields'] ), + 'conditional_logic' => $connection['conditional_logic'], + 'conditional_type' => $connection['conditional_type'], + 'conditionals' => $connection['conditionals'], + ]; + } + + return $new_connections; + } + + /** + * Get custom fields. + * + * @since 1.9.3 + * + * @param array $custom_fields Custom fields v2. + * + * @return array + */ + private function get_connection_custom_fields( array $custom_fields ): array { + + $fields_meta = []; + $custom_fields = $this->sort_custom_fields( $custom_fields ); + + foreach ( $custom_fields as $key => $value ) { + if ( $key === 'email' ) { + continue; + } + + $value_parts = explode( '.', $value ); + $field_id = $value_parts[0]; + + if ( wpforms_is_empty_string( $field_id ) ) { + continue; + } + + $fields_meta = $this->update_fields_meta( $fields_meta, $field_id, $key, $value_parts ); + } + + return $fields_meta; + } + + /** + * Move $custom_fields['full_name'] at the beginning of the array. + * + * Thanks to this, if first name and last name are defined, next iterations + * of this array will replace full_name - backward compatibility sustained. + * + * @since 1.9.3 + * + * @param array $custom_fields Custom fields. + * + * @return array + */ + private function sort_custom_fields( array $custom_fields ): array { + + if ( ! isset( $custom_fields['full_name'] ) || wpforms_is_empty_string( $custom_fields['full_name'] ) ) { + return $custom_fields; + } + + $full_name = $custom_fields['full_name']; + + unset( $custom_fields['full_name'] ); + + return [ 'full_name' => $full_name ] + $custom_fields; + } + + /** + * Update fields meta. + * + * @since 1.9.3 + * + * @param array $fields_meta Fields meta. + * @param string $field_id Field ID. + * @param string $key Key. + * @param array $value_parts Value parts. + * + * @return array + */ + private function update_fields_meta( array $fields_meta, string $field_id, string $key, array $value_parts ): array { + + if ( $this->form_data['fields'][ $field_id ]['type'] === 'name' ) { + $name_field = $this->handle_name_field( $fields_meta, $field_id, $key, $value_parts ); + + if ( is_array( $name_field ) ) { + return $name_field; + } + + $field_id = $name_field; + } + + $keys_to_rename = [ + 'work_phone' => 'phone', + 'url' => $this->get_url_field_id(), + ]; + + $new_key = $keys_to_rename[ $key ] ?? $key; + + $fields_meta[ $this->get_meta_next_index( $fields_meta, $new_key ) ] = [ + 'name' => $new_key, + 'field_id' => $field_id, + ]; + + return $fields_meta; + } + + /** + * Handle name field. + * + * @since 1.9.3 + * + * @param array $fields_meta Fields meta. + * @param string $field_id Field ID. + * @param string $key Key. + * @param array $value_parts Value parts. + * + * @return string|array + */ + private function handle_name_field( array $fields_meta, string $field_id, string $key, array $value_parts ) { + + if ( $value_parts[1] === 'value' ) { + $value_parts[1] = 'full'; + } + + if ( $key === 'full_name' ) { + return $this->update_full_name( $fields_meta, $field_id, $value_parts ); + } + + $field_id .= '.' . $value_parts[1]; + + return $field_id; + } + + /** + * Update full name meta. + * + * @since 1.9.3 + * + * @param array $fields_meta Fields meta. + * @param string $field_id Field ID. + * @param array $value_parts Value parts. + * + * @return array + */ + private function update_full_name( array $fields_meta, string $field_id, array $value_parts ): array { + + $field = $this->form_data['fields'][ $field_id ] ?? []; + + $is_simple = ! isset( $field['format'] ) || $field['format'] === 'simple'; + + $first_name_field_id = $is_simple ? $field_id . '.' . $value_parts[1] : $field_id . '.first'; + + $fields_meta[] = [ + 'name' => 'first_name', + 'field_id' => $first_name_field_id, + ]; + + $this->first_name_index = count( $fields_meta ) - 1; + + if ( $is_simple ) { + return $fields_meta; + } + + $last_name_field_id = $field_id . '.last'; + + $fields_meta[] = [ + 'name' => 'last_name', + 'field_id' => $last_name_field_id, + ]; + + $this->last_name_index = count( $fields_meta ) - 1; + + return $fields_meta; + } + + /** + * Get next index for a custom field. + * + * @since 1.9.3 + * + * @param array $fields_meta Fields meta. + * @param string $key Key. + */ + private function get_meta_next_index( array $fields_meta, string $key ): int { + + if ( $key === 'first_name' ) { + return $this->first_name_index ?? count( $fields_meta ); + } + + if ( $key === 'last_name' ) { + return $this->last_name_index ?? count( $fields_meta ); + } + + return count( $fields_meta ); + } + + /** + * Get URL custom field ID from the new account. + * + * Returns the id in the new format. + * + * @since 1.9.3 + * + * @return string + */ + private function get_url_field_id(): string { + + static $field_id; + + if ( $field_id ) { + return $field_id; + } + + $custom_fields = ( new Api( $this->new_account ) )->get_custom_fields( 'custom_field_id', 'name' ); + + $field_id = $custom_fields['custom_field_1'] ?? $this->register_url_field(); + + return $field_id; + } + + /** + * Get an array of list v2 ids to v3 ids. + * + * @since 1.9.3 + * + * @param array $new_account New account data. + * @param string $access_token_v2 Access token for v2. + * + * @return array + * + * @throws RuntimeException Can't receive v2 lists and finish migration. + */ + private function get_lists_xhref( array $new_account, string $access_token_v2 ): array { + + $old_provider = new WPForms_Constant_Contact(); + $old_provider->access_token = $access_token_v2; + + $old_lists = $old_provider->api_lists(); + + if ( is_wp_error( $old_lists ) ) { + throw new RuntimeException( esc_html__( 'Can\'t receive v2 lists and finish migration.', 'wpforms-lite' ) ); + } + + return ( new Api( $new_account ) )->get_contact_list_xrefs( (array) $old_lists ); + } + + /** + * Register URL custom field. + * + * @since 1.9.3 + * + * @return string + */ + private function register_url_field(): string { + + return ( new Api( $this->new_account ) )->register_custom_field( 'Website / URL' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Process.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Process.php new file mode 100644 index 0000000..18a1983 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Process.php @@ -0,0 +1,303 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.3 + */ + public function hooks() { + + add_action( self::TASK_NAME, [ $this, 'task_async_action_trigger' ] ); + } + + /** + * Process the form. + * + * @since 1.9.3 + * + * @param array $fields Submitted fields. + * @param array $entry Saved entry data. + * @param array $form_data Form data and settings. + * @param int $entry_id Saved entry ID. + */ + public function process( $fields, $entry, $form_data, $entry_id ) { + + if ( empty( $form_data['providers'][ $this->core->slug ] ) ) { + return; + } + + $this->fields = $fields; + $this->entry = $entry; + $this->form_data = $form_data; + $this->entry_id = $entry_id; + + foreach ( $this->form_data['providers'][ $this->core->slug ] as $connection ) { + $this->connection = $connection; + + if ( ! $this->process_conditionals( $this->fields, $this->form_data, $connection ) ) { + $this->log_errors( + sprintf( + 'The Constant Contact connection %s was not processed due to conditional logic.', + $connection['name'] ?? '' + ) + ); + + continue; + } + + if ( empty( $this->connection['action'] ) ) { + continue; + } + + $this->create_connection_async_task(); + } + } + + /** + * Create an async task for a specific connection. + * + * @since 1.9.3 + */ + private function create_connection_async_task() { + + $tasks = wpforms()->obj( 'tasks' ); + + if ( ! $tasks ) { + return; + } + + $tasks + ->create( self::TASK_NAME )->async() + ->params( $this->connection, $this->fields, $this->form_data, $this->entry_id ) + ->register(); + } + + /** + * Process the addon async tasks. + * + * @since 1.9.3 + * + * @param int|mixed $meta_id Task meta ID. + */ + public function task_async_action_trigger( $meta_id ) { + + $meta = $this->get_task_meta( (int) $meta_id ); + + // We expect a certain type and number of params. + if ( count( $meta ) !== 4 ) { + return; + } + + // We expect a certain metadata structure for this task. + list( $this->connection, $this->fields, $this->form_data, $this->entry_id ) = $meta; + + try { + $this->process_action(); + } catch ( Exception $e ) { + $this->log_errors( $e->getMessage() ); + } + } + + /** + * Processes single action. + * + * @since 1.9.3 + * + * @throws Exception If something went wrong. + * + * @uses Api::unsubscribe_contact() + * @uses Api::delete_contact() + * @uses Api::subscribe_contact() + */ + private function process_action() { + + $this->api = $this->get_api_client(); + $contact_data = $this->prepare_contact_data(); + $api_method = $this->connection['action'] . '_contact'; + + if ( ! method_exists( $this->api, $api_method ) ) { + return; + } + + $response = $this->api->$api_method( $contact_data ); + + /** + * Fire when request was sent successfully or not. + * + * @since 1.9.3 + * + * @param array $response Response data. + * @param array $connection Connection data. + * @param array $args Additional arguments. + */ + do_action( + 'wpforms_integrations_constant_contact_v3_process_completed', + $response, + $this->connection, + [ + 'form_data' => $this->form_data, + 'fields' => $this->fields, + 'entry' => $this->entry, + ] + ); + } + + /** + * Prepare contact data. + * + * @since 1.9.3 + * + * @return array + */ + private function prepare_contact_data(): array { + + $field_mapping = new FieldMapping( $this->connection, $this->fields ); + + if ( $this->connection['action'] === 'subscribe' ) { + return array_filter( + [ + 'email_address' => $field_mapping->get_field( 'email' ), + 'first_name' => $field_mapping->get_meta_field( 'first_name' ), + 'last_name' => $field_mapping->get_meta_field( 'last_name' ), + 'job_title' => $field_mapping->get_meta_field( 'job_title' ), + 'company_name' => $field_mapping->get_meta_field( 'company_name' ), + 'phone_number' => $field_mapping->get_meta_field( 'phone' ), + 'street_address' => $field_mapping->get_street_address(), + 'list_memberships' => [ $field_mapping->get_list_id() ], + 'custom_fields' => $field_mapping->get_custom_fields( $this->api->get_custom_fields( 'type', 'custom_field_id' ) ), + ] + ); + } + + if ( $this->connection['action'] === 'unsubscribe' ) { + return [ + 'email_address' => $field_mapping->get_field( 'email' ), + 'opt_out_reason' => $field_mapping->get_field( 'opt_out_reason' ), + ]; + } + + return [ + 'email_address' => $field_mapping->get_field( 'email' ), + ]; + } + + /** + * Get task meta data. + * + * @since 1.9.3 + * + * @param int $meta_id Task meta ID. + * + * @return array + */ + private function get_task_meta( int $meta_id ): array { + + $task_meta = new Meta(); + $meta = $task_meta->get( $meta_id ); + + // We should actually receive something. + if ( empty( $meta ) || empty( $meta->data ) ) { + return []; + } + + return (array) $meta->data; + } + + /** + * Get the API client based on connection and provider options. + * + * @since 1.9.3 + * + * @return Api + * + * @throws RuntimeException If account ID is missing or account doesn't exist. + */ + private function get_api_client(): Api { + + if ( empty( $this->connection['account_id'] ) ) { + throw new RuntimeException( 'Account ID is missing in connection.' ); + } + + $provider_settings = wpforms_get_providers_options( $this->core->slug ); + + return new Api( $provider_settings[ $this->connection['account_id'] ] ?? [] ); + } + + /** + * Log an API-related error with all the data. + * + * @since 1.9.3 + * + * @param string $error_message Error message. + */ + private function log_errors( string $error_message ) { + + wpforms_log( + 'Submission Constant Contact failed (#' . $this->entry_id . ')', + [ + 'message' => $error_message, + 'connection' => $this->connection, + ], + [ + 'type' => [ 'provider', 'error' ], + 'parent' => $this->entry_id, + 'form_id' => $this->form_data['id'], + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FieldMapping.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FieldMapping.php new file mode 100644 index 0000000..43148ca --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FieldMapping.php @@ -0,0 +1,346 @@ +connection = $connection; + $this->fields = $fields; + } + + /** + * Get a list ID. + * + * @since 1.9.3 + * + * @return string + */ + public function get_list_id(): string { + + return $this->connection['list'] ?? ''; + } + + /** + * Get field value. + * + * @since 1.9.3 + * + * @param string $connection_key Connection key. + */ + public function get_field( string $connection_key ): string { + + if ( ! isset( $this->connection[ $connection_key ], $this->fields[ $this->connection[ $connection_key ] ]['value'] ) ) { + return ''; + } + + $limit = $connection_key === 'opt_out_reason' ? 255 : 50; + + return $this->trim_value( (string) $this->fields[ $this->connection[ $connection_key ] ]['value'], $limit ); + } + + /** + * Get field value from connection custom fields. + * + * @since 1.9.3 + * + * @param string $connection_key Connection key. + * + * @return string + */ + public function get_meta_field( string $connection_key ): string { + + $field_id_full = $this->get_field_meta_id( $connection_key ); + $limit = $connection_key === 'phone' ? 25 : 50; + + return $this->trim_value( $this->get_field_value( $field_id_full ), $limit ); + } + + /** + * Get field value by ID. + * + * @since 1.9.3 + * + * @param string $field_id Field ID. Can be integer or string in the {field_id}.{subfield} format. + * + * @return string + */ + private function get_field_value( string $field_id ): string { + + $field_parts = explode( '.', $field_id ); + $field_id = $field_parts[0]; + $field_key = $field_parts[1] ?? 'value'; + + if ( $field_key === 'full' ) { + $field_key = 'value'; + } + + return $this->fields[ $field_id ][ $field_key ] ?? ''; + } + + /** + * Get connection custom fields. + * + * @since 1.9.3 + * + * @return array + */ + private function get_connection_custom_fields(): array { + + if ( empty( $this->connection['fields_meta'] ) ) { + return []; + } + + $predefined_custom_fields = ConstantContact::get_predefined_custom_fields(); + + $fields_meta = []; + + foreach ( $this->connection['fields_meta'] as $field ) { + if ( ! isset( $field['name'], $field['field_id'] ) ) { + continue; + } + + if ( in_array( $field['name'], $predefined_custom_fields, true ) ) { + continue; + } + + $fields_meta[ $field['name'] ] = $field['field_id']; + } + + return $fields_meta; + } + + /** + * Get a list of CC custom fields. + * + * @since 1.9.3 + * + * @param array $custom_fields_formats Constant Contact custom fields formats. + * + * @return array + */ + public function get_custom_fields( array $custom_fields_formats ): array { + + $fields_meta = $this->get_connection_custom_fields(); + $custom_fields = []; + + foreach ( $fields_meta as $custom_field_id => $field_id ) { + $field_format = $custom_fields_formats[ $custom_field_id ] ?? 'string'; + $value = $this->get_custom_field_value( (string) $field_id, $field_format ); + + if ( wpforms_is_empty_string( $value ) ) { + continue; + } + + $custom_fields[] = [ + 'custom_field_id' => $custom_field_id, + 'value' => $this->trim_value( $value, 255 ), + ]; + } + + return $custom_fields; + } + + /** + * Get a custom field value. + * + * @since 1.9.3 + * + * @param string $field_id Field ID. + * @param string $field_format Constant Contact custom field format. + * + * @return string + */ + private function get_custom_field_value( string $field_id, string $field_format ): string { + + if ( $field_format !== 'date' ) { + return $this->trim_value( $this->get_field_value( $field_id ), 255 ); + } + + $field = $this->fields[ $field_id ] ?? []; + + // Only Date / Time field is allowed to be sent as a date custom field format. + if ( empty( $field['unix'] ) ) { + return ''; + } + + return (string) gmdate( 'm/d/Y', $field['unix'] ); + } + + /** + * Get street address from connection data. + * + * @since 1.9.3 + * + * @return array + */ + public function get_street_address(): array { + + $field_id = $this->get_field_meta_id( 'address' ); + + if ( empty( $field_id ) || empty( $this->fields[ $field_id ] ) ) { + return []; + } + + $address_fields = $this->build_address_fields( $this->fields[ $field_id ] ); + + return $this->is_valid_address( $address_fields ) ? $address_fields : []; + } + + /** + * Get meta field ID. + * + * @since 1.9.3 + * + * @param string $connection_key Connection key. + * + * @return string + */ + private function get_field_meta_id( string $connection_key ): string { + + $fields = wp_list_pluck( $this->connection['fields_meta'], 'field_id', 'name' ); + + return $fields[ $connection_key ] ?? ''; + } + + /** + * Get address kind. + * + * @since 1.9.3 + * + * @param array $address Address data. + * + * @return string + */ + private function get_address_kind( array $address ): string { + + $default_kind = 'other'; + + /** + * Kind of address to be saved in the Constant Contact account. + * + * Possible values are 'other', 'home', 'work'. + * + * @since 1.9.3 + * + * @param array $default_kind Default kind of address, possible values are 'other', 'home', 'work'. + * @param array $address Address data. + * @param FieldMapping $field_mapping Instance of the FieldMapping class. + * + * @return string Default value is 'other'. + */ + $kind = apply_filters( 'wpforms_integrations_constant_contact_v3_settings_field_mapping_get_address_kind', $default_kind, $address, $this ); + + if ( in_array( $kind, [ $default_kind, 'home', 'work' ], true ) ) { + return $kind; + } + + return $default_kind; + } + + /** + * Get address street. + * + * @since 1.9.3 + * + * @param array $address Address data. + * + * @return string + */ + private function get_address_street( array $address ): string { + + $street = $address['address1'] ?? ''; + + return ! empty( $address['address2'] ) + ? $street . ' ' . $address['address2'] + : $street; + } + + /** + * Build address fields. + * + * @since 1.9.3 + * + * @param array $address Address data. + * + * @return array + */ + private function build_address_fields( array $address ): array { + + return [ + 'kind' => $this->get_address_kind( $address ), + 'street' => $this->trim_value( $this->get_address_street( $address ), 255 ), + 'city' => $this->trim_value( $address['city'] ?? '' ), + 'state' => $this->trim_value( $address['state'] ?? '' ), + 'postal_code' => $this->trim_value( $address['postal'] ?? '' ), + 'country' => $this->trim_value( $address['country'] ?? '' ), + ]; + } + + /** + * Check if the address is valid. + * + * @since 1.9.3 + * + * @param array $address_fields Address fields. + * + * @return bool + */ + private function is_valid_address( array $address_fields ): bool { + + $filtered = array_filter( $address_fields ); + + return count( $filtered ) > 1; + } + + /** + * Trim value to the specified length. + * + * @see https://v3.developer.constantcontact.com/api_reference/index.html#!/Contacts/createOrUpdateContact + * + * @since 1.9.3 + * + * @param string $value Value to trim. + * @param int $length Length to trim to. + * + * @return string + */ + private function trim_value( string $value, int $length = 50 ): string { + + return wp_html_excerpt( $value, $length ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FormBuilder.php b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FormBuilder.php new file mode 100644 index 0000000..365d0d8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/ConstantContact/V3/Settings/FormBuilder.php @@ -0,0 +1,391 @@ +core->slug, + [ $this, 'ajax_connections_get' ] + ); + + if ( is_admin() ) { + add_filter( + "wpforms_providers_provider_settings_formbuilder_display_content_default_screen_{$this->core->slug}", + [ $this, 'builder_settings_default_content' ] + ); + } + + add_filter( 'wpforms_save_form_args', [ $this, 'save_form' ], 11, 3 ); + } + + /** + * Display content inside the panel sidebar area. + * + * @since 1.9.3 + */ + public function display_sidebar() { + + if ( ConstantContact::get_current_version() !== 3 ) { + return; + } + + parent::display_sidebar(); + } + + /** + * Enqueue JavaScript and CSS files if needed. + * When extending - include the `parent::enqueue_assets();` not to break things! + * + * @since 1.9.3 + */ + public function enqueue_assets() { + + parent::enqueue_assets(); + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-constant-contact-v3-builder', + WPFORMS_PLUGIN_URL . "assets/js/integrations/constant-contact-v3/builder{$min}.js", + [ 'underscore', 'wpforms-admin-builder-providers', 'wpforms-constant-contact-v3-auth' ], + WPFORMS_VERSION, + true + ); + } + + + /** + * Pre-process provider data before saving it in form_data when editing a form. + * + * @since 1.9.3 + * + * @param array|mixed $form Form array which is usable with `wp_update_post()`. + * @param array $data Data retrieved from $_POST and processed. + * @param array $args Empty by default. May have custom data not intended to be saved, but used for processing. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function save_form( $form, $data, $args ): array { + + $form = (array) $form; + + // Get a filtered (or modified by another addon) form content. + $form_data = json_decode( stripslashes( $form['post_content'] ), true ); + + // Provider exists. + if ( ! empty( $form_data['providers'][ $this->core->slug ] ) ) { + $modified_post_content = $this->modify_form_data( $form_data ); + + if ( ! empty( $modified_post_content ) ) { + $form['post_content'] = wpforms_encode( $modified_post_content ); + + return $form; + } + } + + /* + * This part works when modification is locked or current filter was called on NOT a Providers panel. + * Then we need to restore provider connections from the previous form content. + */ + + // Get a "previous" form content (current content is still not saved). + $prev_form = ! empty( $data['id'] ) + ? wpforms()->obj( 'form' )->get( $data['id'], [ 'content_only' => true ] ) + : []; + + if ( ! empty( $prev_form['providers'][ $this->core->slug ] ) ) { + $provider = $prev_form['providers'][ $this->core->slug ]; + + if ( ! isset( $form_data['providers'] ) ) { + $form_data = array_merge( $form_data, [ 'providers' => [] ] ); + } + + $form_data['providers'] = array_merge( (array) $form_data['providers'], [ $this->core->slug => $provider ] ); + $form['post_content'] = wpforms_encode( $form_data ); + } + + return $form; + } + + /** + * Prepare modifications for form content if it's not locked. + * + * @since 1.9.3 + * + * @param array $form_data Form content. + * + * @return array|null + */ + protected function modify_form_data( array $form_data ) { + + /** + * The connection is locked. + * Why? User clicked the "Save" button when one of the AJAX requests + * for data retrieval from API was in progress or failed. + */ + if ( + isset( $form_data['providers'][ $this->core->slug ]['__lock__'] ) && + absint( $form_data['providers'][ $this->core->slug ]['__lock__'] ) === 1 + ) { + return null; + } + + // Modify content as we need, done by reference. + foreach ( $form_data['providers'][ $this->core->slug ] as $connection_id => $connection ) { + if ( $connection_id === '__lock__' ) { + unset( $form_data['providers'][ $this->core->slug ]['__lock__'] ); + } + } + + return $form_data; + } + + /** + * Rewrite the Add New Account button to trigger Auth popup instead of default authorization flow. + * + * @since 1.9.3 + */ + protected function display_content_header() { + + if ( ! empty( wpforms_get_providers_options( $this->core->slug ) ) ) { + parent::display_content_header(); + + return; + } + + ?> + +
              + core->name ); ?> + + +
              + [ + 'subscribe' => __( 'Subscribe', 'wpforms-lite' ), + 'unsubscribe' => __( 'Unsubscribe', 'wpforms-lite' ), + 'delete' => __( 'Delete subscriber', 'wpforms-lite' ), + ], + 'actions_fields' => [ + 'subscribe' => [ + 'email' => [ + 'label' => __( 'Email', 'wpforms-lite' ), + 'type' => 'select', + 'map' => 'email', + 'required' => true, + ], + 'list' => [ + 'label' => __( 'Select List', 'wpforms-lite' ), + 'type' => 'select', + 'required' => true, + 'placeholder' => __( '--- Select Mailing List ---', 'wpforms-lite' ), + ], + 'custom_fields' => [ + 'label' => __( 'Custom Fields', 'wpforms-lite' ), + 'type' => 'custom-fields', + 'required' => false, + ], + ], + 'unsubscribe' => [ + 'email' => [ + 'label' => __( 'Email', 'wpforms-lite' ), + 'type' => 'select', + 'map' => 'email', + 'required' => true, + 'placeholder' => __( '--- Select Form Field ---', 'wpforms-lite' ), + ], + 'opt_out_reason' => [ + 'label' => __( 'Reason', 'wpforms-lite' ), + 'type' => 'select', + 'required' => false, + 'placeholder' => __( '--- Select Form Field ---', 'wpforms-lite' ), + ], + ], + 'delete' => [ + 'email' => [ + 'label' => __( 'Email', 'wpforms-lite' ), + 'type' => 'select', + 'map' => 'email', + 'required' => true, + ], + ], + ], + 'connections' => isset( $this->form_data['providers'][ $this->core->slug ] ) + ? array_reverse( $this->form_data['providers'][ $this->core->slug ], true ) + : [], + 'conditionals' => [], + ]; + + foreach ( $data['connections'] as $connection ) { + + if ( empty( $connection['id'] ) ) { + continue; + } + + // This will either return an empty placeholder or complete set of rules, as a DOM. + $data['conditionals'][ $connection['id'] ] = wpforms()->is_pro() + ? wpforms_conditional_logic()->builder_block( + [ + 'form' => $this->form_data, + 'type' => 'panel', + 'parent' => 'providers', + 'panel' => $this->core->slug, + 'subsection' => $connection['id'], + ], + false + ) + : ''; + } + + return array_merge( $data, $this->get_accounts_data() ); + } + + /** + * Get accounts data. + * + * @since 1.9.3 + * + * @return array + */ + private function get_accounts_data(): array { + + $accounts = wpforms_get_providers_options( $this->core->slug ); + + $data = [ + 'accounts' => $accounts, + 'custom_fields' => [], + 'lists' => [], + ]; + + if ( empty( $accounts ) ) { + return $data; + } + + $predefined_custom_fields = ConstantContact::get_predefined_custom_fields(); + + foreach ( $accounts as $account_id => $account ) { + try { + $api = new Api( $account ); + + $data['lists'][ $account_id ] = $api->get_contact_list(); + $data['custom_fields'][ $account_id ] = array_merge( $predefined_custom_fields, $api->get_custom_fields( 'label', 'custom_field_id' ) ); + } catch ( Exception $e ) { + continue; + } + } + + return $data; + } + + /** + * Builder custom templates. + * + * @since 1.9.3 + */ + public function builder_custom_templates() { + + $templates = [ + 'connection', + 'error', + 'select-field', + ]; + + foreach ( $templates as $template ) { + $template_name = ucwords( str_replace( '-', ' ', $template ) ); + $script_id = 'tmpl-wpforms-' . esc_attr( $this->core->slug ) . '-builder-content-connection'; + + if ( $template !== 'connection' ) { + $script_id .= '-' . $template; + } + ?> + + + +

              + +

              +

              + %2$s', + esc_url( admin_url( 'admin.php?page=wpforms-page&view=constant-contact' ) ), + esc_html__( 'Learn more about the power of email marketing.', 'wpforms-lite' ) + ); + ?> +

              + hooks(); + } + + /** + * Hooks. + * + * @since 1.9.3 + */ + private function hooks() { + + add_action( 'wpforms_providers_provider_settings_page_integrations_display_connected_account_item_before', [ $this, 'display_re_auth' ], 10, 2 ); + } + + /** + * Display reauthorization notice. + * + * @since 1.9.3 + * + * @param string $account_id Account ID. + * @param array $account Account data. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function display_re_auth( $account_id, $account ) { + + if ( empty( $account['accounts'] ) || empty( $account['email'] ) ) { + return; + } + + ?> +
              +
              +

              + +

              +
              + +
              + + + +
              +
              + +

              + + + +

              +

              + %2$s', + // @todo: confirm the link. + // @see: https://github.com/awesomemotive/wpforms-plugin/issues/12504 + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-connect-constant-contact-with-wpforms/', 'Settings - Integration', 'ConstantContact V3 Documentation' ) ), + esc_html__( 'Click here for documentation on connecting WPForms with Constant Contact.', 'wpforms-lite' ) + ); + ?> +

              + \n

              %s

              \n", + wp_kses( + sprintf( /* translators: %s - forms overview page URL. */ + _x( 'Create your contact form with WPForms in minutes.', 'Theme starter content', 'wpforms-lite' ), + esc_url( admin_url( 'admin.php?page=wpforms-overview' ) ) + ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ) + ); + + return $content; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/DefaultThemes/DefaultThemes.php b/wp-content/plugins/wpforms-lite/src/Integrations/DefaultThemes/DefaultThemes.php new file mode 100644 index 0000000..7557c70 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/DefaultThemes/DefaultThemes.php @@ -0,0 +1,311 @@ +current_theme = $this->get_current_default_theme(); + + return ! empty( $this->current_theme ); + } + + /** + * Load an integration. + * + * @since 1.6.6 + */ + public function load() { + + if ( $this->current_theme === self::TT ) { + $this->tt_hooks(); + + return; + } + + if ( $this->current_theme === self::TT1 ) { + $this->tt1_hooks(); + + return; + } + + if ( $this->current_theme === self::OCEANWP ) { + $this->ocean_hooks(); + } + } + + /** + * Hooks for the Twenty Twenty theme. + * + * @since 1.6.6 + */ + private function tt_hooks() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + add_action( 'wp_enqueue_scripts', [ $this, 'tt_iframe_fix' ], 11 ); + + add_action( 'wpforms_frontend_css', [ $this, 'tt_dropdown_fix' ] ); + } + + /** + * Hooks for the Twenty Twenty-One theme. + * + * @since 1.6.6 + */ + private function tt1_hooks() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( wpforms_get_render_engine() === 'modern' ) { + return; + } + + $form_styling = wpforms_setting( 'disable-css', '1' ); + + if ( $form_styling === '1' ) { + add_action( 'wp_enqueue_scripts', [ $this, 'tt1_multiple_fields_fix' ], 11 ); + add_action( 'wp_enqueue_scripts', [ $this, 'tt1_dropdown_fix' ], 11 ); + } + + if ( $form_styling === '2' ) { + add_action( 'wp_enqueue_scripts', [ $this, 'tt1_base_style_fix' ], 11 ); + } + } + + /** + * Hooks for the OceanWP theme. + * + * @since 1.9.1 + */ + private function ocean_hooks() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + add_action( 'wp_enqueue_scripts', [ $this, 'ocean_button_hover' ], 100 ); + } + + /** + * Apply button hover fix for OceanWP theme. + * + * @since 1.9.1 + */ + public function ocean_button_hover() { + + // Only full styles are supported. + if ( (int) wpforms_setting( 'disable-css', 1 ) !== 1 ) { + return; + } + + $styles = wpforms_get_render_engine() === 'modern' ? + /** @lang CSS */ + 'body div.wpforms-container-full .wpforms-form input[type=submit]:hover, + body div.wpforms-container-full .wpforms-form input[type=submit]:active, + body div.wpforms-container-full .wpforms-form button[type=submit]:hover, + body div.wpforms-container-full .wpforms-form button[type=submit]:active, + body div.wpforms-container-full .wpforms-form .wpforms-page-button:hover, + body div.wpforms-container-full .wpforms-form .wpforms-page-button:active, + body .wp-core-ui div.wpforms-container-full .wpforms-form input[type=submit]:hover, + body .wp-core-ui div.wpforms-container-full .wpforms-form input[type=submit]:active, + body .wp-core-ui div.wpforms-container-full .wpforms-form button[type=submit]:hover, + body .wp-core-ui div.wpforms-container-full .wpforms-form button[type=submit]:active, + body .wp-core-ui div.wpforms-container-full .wpforms-form .wpforms-page-button:hover, + body .wp-core-ui div.wpforms-container-full .wpforms-form .wpforms-page-button:active { + background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), var(--wpforms-button-background-color-alt, var(--wpforms-button-background-color)) !important; + }' : + /** @lang CSS */ + 'div.wpforms-container-full .wpforms-form input[type=submit]:hover, + div.wpforms-container-full .wpforms-form input[type=submit]:focus, + div.wpforms-container-full .wpforms-form input[type=submit]:active, + div.wpforms-container-full .wpforms-form button[type=submit]:hover, + div.wpforms-container-full .wpforms-form button[type=submit]:focus, + div.wpforms-container-full .wpforms-form button[type=submit]:active, + div.wpforms-container-full .wpforms-form .wpforms-page-button:hover, + div.wpforms-container-full .wpforms-form .wpforms-page-button:active, + div.wpforms-container-full .wpforms-form .wpforms-page-button:focus { + border: none; + }'; + + wp_add_inline_style( 'oceanwp-style', $styles ); + } + + /** + * Apply fix for Checkboxes and Radio fields in the Twenty Twenty-One theme. + * + * @since 1.6.6 + */ + public function tt1_multiple_fields_fix() { + + wp_add_inline_style( + 'twenty-twenty-one-style', + /** @lang CSS */ + '@supports (-webkit-appearance: none) or (-moz-appearance: none) { + div.wpforms-container-full .wpforms-form input[type=checkbox] { + -webkit-appearance: checkbox; + -moz-appearance: checkbox; + } + div.wpforms-container-full .wpforms-form input[type=radio] { + -webkit-appearance: radio; + -moz-appearance: radio; + } + div.wpforms-container-full .wpforms-form input[type=checkbox]:after, + div.wpforms-container-full .wpforms-form input[type=radio]:after { + content: none; + } + }' + ); + } + + /** + * Apply fix for Dropdown field arrow, when it disappeared from select in the Twenty Twenty-One theme. + * + * @since 1.6.8 + */ + public function tt1_dropdown_fix() { + + wp_add_inline_style( + 'twenty-twenty-one-style', + /** @lang CSS */ + 'div.wpforms-container-full form.wpforms-form select { + background-image: url("data:image/svg+xml;utf8,"); + background-repeat: no-repeat; + background-position: right var(--form--spacing-unit) top 60%; + padding-right: calc(var(--form--spacing-unit) * 2.5); + }' + ); + } + + /** + * Apply fix for Checkboxes and Radio fields width in the Twenty Twenty-One theme, when the user uses only base styles. + * + * @since 1.6.8 + */ + public function tt1_base_style_fix() { + + wp_add_inline_style( + 'twenty-twenty-one-style', + /** @lang CSS */ + '.wpforms-container .wpforms-field input[type=checkbox], + .wpforms-container .wpforms-field input[type=radio] { + width: 25px; + height: 25px; + } + .wpforms-container .wpforms-field input[type=checkbox] + label, + .wpforms-container .wpforms-field input[type=radio] + label { + vertical-align: top; + }' + ); + } + + /** + * Apply resize fix for iframe HTML element, when the next page was clicked in the Twenty Twenty theme. + * + * @since 1.6.6 + */ + public function tt_iframe_fix() { + + wp_add_inline_script( + 'twentytwenty-js', + /** @lang JavaScript */ + 'window.addEventListener( "load", function() { + + if ( typeof jQuery === "undefined" ) { + return; + } + + jQuery( document ).on( "wpformsPageChange wpformsShowConditionalsField", function() { + + if ( typeof twentytwenty === "undefined" || typeof twentytwenty.intrinsicRatioVideos === "undefined" || typeof twentytwenty.intrinsicRatioVideos.makeFit === "undefined" ) { + return; + } + + twentytwenty.intrinsicRatioVideos.makeFit(); + } ); + + jQuery( document ).on( "wpformsRichTextEditorInit", function( e, editor ) { + + jQuery( editor.container ).find( "iframe" ).addClass( "intrinsic-ignore" ); + } ); + } );' + ); + } + + /** + * Apply fix for the dropdown list in Twenty Twenty theme. + * + * @since 1.7.3 + */ + public function tt_dropdown_fix() { + + static $fixed = false; + + if ( $fixed ) { + return; + } + + ?> + + hooks(); + } + + /** + * Hooks. + * + * @since 1.6.3 + */ + public function hooks(): void { + + add_action( 'et_builder_ready', [ $this, 'register_module' ] ); + add_action( 'wp_enqueue_scripts', [ $this, 'frontend_styles' ], 12 ); + + // Register module. + add_action( 'divi_module_library_modules_dependency_tree', [ $this, 'register_modern_selector' ] ); + + if ( wp_doing_ajax() ) { + add_action( 'wp_ajax_wpforms_divi_preview', [ $this, 'preview' ] ); + } + + if ( $this->is_divi_builder() ) { + add_action( 'wp_enqueue_scripts', [ $this, 'builder_styles' ], 12 ); + add_action( 'wp_enqueue_scripts', [ $this, 'builder_scripts' ] ); + + add_filter( 'wpforms_global_assets', '__return_true' ); + add_filter( 'wpforms_frontend_missing_assets_error_js_disable', '__return_true', PHP_INT_MAX ); + + // Hide CAPTCHA badge in Divi Builder. + add_filter( 'wpforms_frontend_recaptcha_disable', '__return_true' ); + } + } + + /** + * Register modern selector dependency. + * + * @since 1.9.9 + * + * @param object $dependency_tree Dependency tree object. + */ + public function register_modern_selector( object $dependency_tree ): void { + + if ( ! $this->is_divi_5_or_higher() ) { + return; + } + + $this->modern_module = new WPFormsSelectorModern(); + + if ( $this->is_divi_builder() ) { + $this->insert( $this->modern_module ); + } + + $dependency_tree->add_dependency( $this->modern_module ); + } + + /** + * Check if Divi 5 or higher is active. + * + * @since 1.9.9 + * + * @return bool + * @noinspection PhpUndefinedConstantInspection + */ + protected function is_divi_5_or_higher(): bool { + + if ( ! defined( 'ET_BUILDER_VERSION' ) ) { + return false; + } + + return version_compare( ET_BUILDER_VERSION, '5.0.0', '>=' ); + } + + /** + * Determine if a current page is opened in the Divi Builder. + * + * @since 1.6.3 + * + * @return bool + */ + private function is_divi_builder(): bool { + + return ! empty( $_GET['et_fb'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended + } + + /** + * Get the current style name. + * + * Overwrite styles for the Divi Builder. + * + * @since 1.6.3 + * + * @return string + */ + public function get_current_styles_name(): string { + + $disable_css = absint( wpforms_setting( 'disable-css', 1 ) ); + + if ( $disable_css === 3 ) { + return ''; + } + + $styles_name = wpforms_get_render_engine() . '-'; + + $styles_name .= $disable_css === 1 ? 'full' : 'base'; + + return $styles_name; + } + + /** + * Determine if the Divi Builder plugin is loaded. + * + * @since 1.6.3 + * + * @return bool + */ + protected function is_divi_plugin_loaded(): bool { + + return self::is_divi_loaded(); + } + + /** + * Helper method to check if the Divi plugin is loaded. + * + * @since 1.8.5 + * + * @return bool + */ + public static function is_divi_loaded(): bool { + + if ( ! is_singular() ) { + return false; + } + + return defined( 'ET_BUILDER_PLUGIN_ACTIVE' ) || defined( 'ET_BUILDER_THEME' ); + } + + /** + * WPForms frontend styles special for Divi. + * + * @since 1.8.1 + */ + protected function divi_frontend_styles() { + + $min = wpforms_get_min_suffix(); + + $styles_name = $this->get_current_styles_name(); + + wp_enqueue_style( + 'wpforms-choicesjs', + WPFORMS_PLUGIN_URL . "assets/css/integrations/divi/choices{$min}.css", + [], + WPForms_Field_Select::CHOICES_VERSION + ); + + if ( empty( $styles_name ) ) { + return; + } + + // Load CSS per global setting. + wp_register_style( + "wpforms-divi-{$styles_name}", + WPFORMS_PLUGIN_URL . "assets/css/integrations/divi/wpforms-{$styles_name}{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Register frontend styles. + * Required for the plugin version of builder only. + * + * @since 1.6.3 + */ + public function frontend_styles() { + + if ( ! $this->is_divi_plugin_loaded() ) { + return; + } + + if ( $this->allow_frontend_styles() ) { + $this->divi_frontend_styles(); + } + } + + /** + * Load styles. + * + * @since 1.6.3 + */ + public function builder_styles() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-integrations', + WPFORMS_PLUGIN_URL . "assets/css/admin-integrations{$min}.css", + null, + WPFORMS_VERSION + ); + + $this->divi_frontend_styles(); + } + + /** + * Load scripts. + * + * @since 1.6.3 + */ + public function builder_scripts(): void { + + if ( ! $this->legacy_module ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-divi', + WPFORMS_PLUGIN_URL . "assets/js/integrations/divi/formselector.es5{$min}.js", + [ 'react', 'react-dom' ], + WPFORMS_VERSION, + true + ); + + $this->insert( $this->legacy_module ); + + wp_localize_script( + 'wpforms-divi', + 'wpforms_divi_builder', + $this->legacy_module->get_localized_data() + ); + } + + /** + * Injects localized data into the provided form selector to be used in the frontend. + * + * @since 1.9.9 + * + * @param LocalizedDataInterface $form_selector Interface instance to set localized data for forms. + */ + private function insert( LocalizedDataInterface $form_selector ): void { + + $form_selector->set_localized_data( + [ + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'wpforms_divi_builder' ), + 'placeholder' => WPFORMS_PLUGIN_URL . 'assets/images/wpforms-logo.svg', + 'block_empty_url' => WPFORMS_PLUGIN_URL . 'assets/images/empty-states/no-forms.svg', + 'block_empty_text' => wp_kses( + __( 'You can use WPForms to build contact forms, surveys, payment forms, and more with just a few clicks.', 'wpforms-lite' ), + [ + 'b' => [], + ] + ), + 'get_started_url' => esc_url( admin_url( 'admin.php?page=wpforms-builder' ) ), + 'get_started_text' => esc_html__( 'Get Started', 'wpforms-lite' ), + 'guide_url' => esc_url( wpforms_utm_link( 'https://wpforms.com/docs/creating-first-form/', 'Divi', 'Create Your First Form Documentation' ) ), + 'guide_text' => esc_html__( 'comprehensive guide', 'wpforms-lite' ), + 'help_text' => esc_html__( 'Need some help? Check out our', 'wpforms-lite' ), + ] + ); + } + + /** + * Register module. + * + * @since 1.6.3 + */ + public function register_module(): void { + + if ( ! class_exists( 'ET_Builder_Module' ) || + ( $this->is_divi_5_or_higher() && $this->is_divi_builder() ) + ) { + return; + } + + $this->legacy_module = new WPFormsSelector(); + } + + /** + * Ajax handler for the form preview. + * + * @since 1.6.3 + */ + public function preview(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + check_ajax_referer( 'wpforms_divi_builder', 'nonce' ); + + $form_id = absint( filter_input( INPUT_POST, 'form_id', FILTER_SANITIZE_NUMBER_INT ) ); + + if ( $form_id ) { + $form_obj = wpforms()->obj( 'form' ); + $form = $form_obj ? $form_obj->get( $form_id ) : null; + $author = $form ? (int) $form->post_author : 0; + $cap = $author === get_current_user_id() ? 'wpforms_view_own_forms' : 'wpforms_view_others_forms'; + + $has_permission = wpforms_current_user_can( $cap, $form_id ); + } else { + $has_permission = wpforms_current_user_can( [ 'wpforms_view_own_forms', 'wpforms_view_others_forms' ] ); + } + + if ( ! $has_permission ) { + wp_send_json_error( + esc_html__( 'You do not have permission to preview form.', 'wpforms-lite' ) + ); + } + + // Disable Anti Spam v3 honeypot. + add_filter( 'wpforms_forms_anti_spam_v3_is_honeypot_enabled', '__return_false' ); + + add_filter( + 'wpforms_frontend_container_class', + static function ( $classes ) { + + $classes[] = 'wpforms-gutenberg-form-selector'; + $classes[] = 'wpforms-container-full'; + + return $classes; + } + ); + + add_action( + 'wpforms_frontend_output', + static function () { + + echo '
              '; + }, + 3 + ); + + add_action( + 'wpforms_frontend_output', + static function () { + + echo '
              '; + + // This empty image is needed to execute JS code that triggers the custom event. + // Unfortunately, the < script > tag doesn't work in the Divi Builder. + echo 'Empty'; + }, + 30 + ); + + /** + * Allows showing/hiding form title and description. + * + * @since 1.6.3.1 + * + * @param bool $show_title Show form title. + * @param int $form_id Form ID. + */ + $show_title = (bool) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_divi_builder_form_title', + 'on' === filter_input( INPUT_POST, 'show_title', FILTER_SANITIZE_FULL_SPECIAL_CHARS ), + $form_id + ); + + /** + * Allows showing/hiding form description. + * + * @since 1.6.3.1 + * + * @param bool $show_desc Show form description. + * @param int $form_id Form ID. + */ + $show_desc = (bool) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_divi_builder_form_desc', + 'on' === filter_input( INPUT_POST, 'show_desc', FILTER_SANITIZE_FULL_SPECIAL_CHARS ), + $form_id + ); + + wp_send_json_success( + do_shortcode( + sprintf( + '[wpforms id="%1$d" title="%2$s" description="%3$s"]', + $form_id, + $show_title, + $show_desc + ) + ) + ); + } + + /** + * Allow frontend styles. + * + * @since 1.9.8.6 + * + * @return bool + */ + protected function allow_frontend_styles(): bool { + + $frontend_obj = wpforms()->obj( 'frontend' ); + + if ( ! $frontend_obj ) { + return false; + } + + global $post; + + $content = $post->post_content ?? ''; + + return ( + $frontend_obj->assets_global() || + has_shortcode( $content, 'wpforms' ) || + has_shortcode( $content, 'wpforms_selector' ) || + ( function_exists( 'has_block' ) && has_block( 'wpforms/form-selector' ) ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Divi/Interfaces/FormsResolverInterface.php b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/Interfaces/FormsResolverInterface.php new file mode 100644 index 0000000..1d7ed9c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/Interfaces/FormsResolverInterface.php @@ -0,0 +1,47 @@ +obj( 'form' ) ? wpforms()->obj( 'form' )->get( '', [ 'order' => 'DESC' ] ) : []; + + // If $forms is false, return an empty array. + return $forms ? (array) $forms : []; + } + + /** + * Get form options for all available forms. + * + * Retrieves all forms and formats them as an option array by iterating + * through each form and adding it to the options using add_form_in_options(). + * + * @since 1.9.9 + * + * @return array Array of form options. + */ + public function get_form_options(): array { + + $forms = $this->get_forms(); + $options = []; + + foreach ( $forms as $form ) { + $options = $this->add_form_in_options( $options, $form ); + } + + return $options; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Divi/Traits/LocalizedDataTrait.php b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/Traits/LocalizedDataTrait.php new file mode 100644 index 0000000..6b315d8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/Traits/LocalizedDataTrait.php @@ -0,0 +1,48 @@ +localized_data; + } + + /** + * Set the localized data. + * + * @since 1.9.9 + * + * @param array $script_data Localized data to set. + * + * @return self Returns the instance for method chaining. + */ + public function set_localized_data( array $script_data ): object { + + $this->localized_data = $script_data; + + return $this; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelector.php b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelector.php new file mode 100644 index 0000000..f143449 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelector.php @@ -0,0 +1,198 @@ +name = esc_html__( 'WPForms', 'wpforms-lite' ); + } + + /** + * Adds a form to the option array, using the form's ID as the key and a decoded title as the value. + * + * @since 1.9.9 + * + * @param array $options The option array to be updated. + * @param WP_Post $form The form object containing the ID and title to be added. + * + * @return array Updated options array with the form added. + */ + public function add_form_in_options( array $options, WP_Post $form ): array { + + $options[ $form->ID ] = htmlspecialchars_decode( $form->post_title, ENT_QUOTES ); + + return $options; + } + + /** + * Get a list of settings. + * + * @since 1.6.3 + * + * @return array + */ + public function get_fields(): array { + + $forms = $this->get_form_options(); + $default_value = ''; + + if ( ! empty( $forms ) ) { + $forms[0] = esc_html__( 'Select form', 'wpforms-lite' ); + $default_value = 0; + } + + return [ + 'form_id' => [ + 'label' => esc_html__( 'Form', 'wpforms-lite' ), + 'type' => 'select', + 'option_category' => 'basic_option', + 'toggle_slug' => 'main_content', + 'options' => $forms, + 'default' => $default_value, + ], + 'show_title' => [ + 'label' => esc_html__( 'Show Title', 'wpforms-lite' ), + 'type' => 'yes_no_button', + 'option_category' => 'basic_option', + 'toggle_slug' => 'main_content', + 'options' => [ + 'off' => esc_html__( 'Off', 'wpforms-lite' ), + 'on' => esc_html__( 'On', 'wpforms-lite' ), + ], + ], + 'show_desc' => [ + 'label' => esc_html__( 'Show Description', 'wpforms-lite' ), + 'option_category' => 'basic_option', + 'type' => 'yes_no_button', + 'toggle_slug' => 'main_content', + 'options' => [ + 'off' => esc_html__( 'Off', 'wpforms-lite' ), + 'on' => esc_html__( 'On', 'wpforms-lite' ), + ], + ], + ]; + } + + + /** + * Disable advanced fields configuration. + * + * @since 1.6.3 + * + * @return array + */ + public function get_advanced_fields_config(): array { + + return [ + 'link_options' => false, + 'text' => false, + 'background' => false, + 'borders' => false, + 'box_shadow' => false, + 'button' => false, + 'filters' => false, + 'fonts' => false, + ]; + } + + /** + * Render module on the frontend. + * + * @since 1.6.3 + * + * @param array $attrs List of unprocessed attributes. + * @param string $content Content being processed. + * @param string $render_slug Slug of module that is used for rendering output. + * + * @return string + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function render( $attrs, $content = null, $render_slug = '' ): string { + + if ( empty( $this->props['form_id'] ) ) { + return ''; + } + + $form_id = absint( $this->props['form_id'] ); + $show_title = ( $this->props['show_title'] ?? '' ) === 'on'; + $show_desc = ( $this->props['show_desc'] ?? '' ) === 'on'; + + return do_shortcode( + sprintf( + '[wpforms id="%1$s" title="%2$s" description="%3$s"]', + $form_id, + /** + * Filters form title display flag. + * + * @since 1.6.3 + * + * @param bool $show_title Show form title. + * @param int $form_id Form ID. + */ + (bool) apply_filters( 'wpforms_divi_builder_form_title', $show_title, $form_id ), // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + /** + * Filters form description display flag. + * + * @since 1.6.3 + * + * @param bool $show_desc Show form description. + * @param int $form_id Form ID. + */ + (bool) apply_filters( 'wpforms_divi_builder_form_desc', $show_desc, $form_id ) // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelectorModern.php b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelectorModern.php new file mode 100644 index 0000000..77d3736 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/WPFormsSelectorModern.php @@ -0,0 +1,366 @@ +hooks(); + } + + /** + * Registers a hook to enqueue visual builder assets before the Divi visual builder loads scripts. + * + * @since 1.9.9 + */ + private function hooks(): void { + + add_action( 'init', [ $this, 'register_module' ] ); + add_action( 'divi_visual_builder_assets_before_enqueue_scripts', [ $this, 'enqueue_visual_builder_assets' ] ); + } + + /** + * Register module. + * + * @since 1.9.9 + */ + public static function register_module(): void { + // Path to module metadata that is shared between Frontend and Visual Builder. + $module_json_folder_path = __DIR__; + + ModuleRegistration::register_module( + $module_json_folder_path, + [ + 'render_callback' => [ __CLASS__, 'render_callback' ], + ] + ); + } + + /** + * Adds a form into the provided options array with its ID as the key and label derived from the form's title. + * + * @since 1.9.9 + * + * @param array $options The option array to be updated. + * @param WP_Post $form The form post object containing the ID and title. + * + * @return array The updated options array including the new form entry. + */ + public function add_form_in_options( array $options, WP_Post $form ): array { + + $options[ $form->ID ] = [ + 'label' => htmlspecialchars_decode( $form->post_title, ENT_QUOTES ), + ]; + + return $options; + } + + /** + * Render callback for the module. + * + * @since 1.9.9 + * + * @param array $attrs Module attributes. + * @param string $content Module content. + * @param object $block Block object. + * @param object $elements Elements helper object. + * + * @return string Rendered module HTML. + * @noinspection PhpUnusedParameterInspection + */ + public static function render_callback( array $attrs, string $content, object $block, object $elements ): string { + + $new_attrs = $block->parsed_block['attrs']; + + // Get attribute values through $attrs (proper way). + $form_id = absint( $new_attrs['formId']['desktop']['value'] ?? 0 ); + $show_title = isset( $new_attrs['showTitle']['desktop']['value'] ) && $new_attrs['showTitle']['desktop']['value'] === 'on'; + $show_desc = isset( $new_attrs['showDescription']['desktop']['value'] ) && $new_attrs['showDescription']['desktop']['value'] === 'on'; + + /** + * Filter whether to display the form title for the Divi module. + * + * @since 1.6.3 + * + * @param bool $show_title Whether to show the form title. + * @param int $form_id Form ID. + */ + $show_title = (bool) apply_filters( 'wpforms_divi_builder_form_title', $show_title, $form_id ); // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Filter whether to display the form description for the Divi module. + * + * @since 1.6.3 + * + * @param bool $show_desc Whether to show the form description. + * @param int $form_id Form ID. + */ + $show_desc = (bool) apply_filters( 'wpforms_divi_builder_form_desc', $show_desc, $form_id ); // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + // If no form selected, return the empty string. + if ( empty( $form_id ) ) { + return ''; + } + + // Generate the form shortcode output. + $form_output = do_shortcode( + sprintf( + '[wpforms id="%1$s" title="%2$s" description="%3$s"]', + $form_id, + $show_title, + $show_desc + ) + ); + + // Wrap content in module_inner. + $module_inner = HTMLUtility::render( + [ + 'tag' => 'div', + 'attributes' => [ + 'class' => 'et_pb_module_inner', + ], + 'childrenSanitizer' => 'et_core_esc_previously', + 'children' => $form_output, + ] + ); + + // Get style components. TODO: check if this is needed. + $module_elements = $elements->style_components( + [ + 'attrName' => 'module', + ] + ); + + // Combine all components. + $module_container_children = $module_elements . $module_inner; + + // Render the final module through Module::render(). + return Module::render( + [ + 'orderIndex' => $block->parsed_block['orderIndex'], + 'storeInstance' => $block->parsed_block['storeInstance'], + 'attrs' => $new_attrs, + 'elements' => $elements, + 'id' => $block->parsed_block['id'], + 'moduleClassName' => 'wpforms_divi_form_selector', + 'name' => $block->block_type->name, + 'classnamesFunction' => [ __CLASS__, 'module_classnames' ], + 'moduleCategory' => $block->block_type->category, + 'stylesComponent' => [ __CLASS__, 'module_styles' ], + 'scriptDataComponent' => [ __CLASS__, 'module_script_data' ], // TODO: check if this is needed. + 'children' => $module_container_children, + ] + ); + } + + /** + * Module classnames function. + * + * @since 1.9.9 + * + * @param array $args Arguments for generating classnames. + * + * @return array CSS classes. + * @noinspection PhpUnusedParameterInspection + */ + public static function module_classnames( array $args ): array { + + return []; + } + + /** + * Module styles function. + * + * @since 1.9.9 + * + * @param array $args Arguments for generating styles. + */ + public static function module_styles( array $args ): void { + + $attrs = $args['attrs'] ?? []; + $elements = $args['elements']; + $settings = $args['settings'] ?? []; + + $default_printed_style_attrs = $args['defaultPrintedStyleAttrs'] ?? []; + + Style::add( + [ + 'id' => $args['id'], + 'name' => $args['name'], + 'orderIndex' => $args['orderIndex'], + 'storeInstance' => $args['storeInstance'], + 'styles' => [ + $elements->style( + [ + 'attrName' => 'module', + 'styleProps' => [ + 'defaultPrintedStyleAttrs' => $default_printed_style_attrs['module']['decoration'] ?? [], + 'disabledOn' => [ + 'disabledModuleVisibility' => $settings['disabledModuleVisibility'] ?? null, + ], + ], + ] + ), + + CssStyle::style( + [ + 'selector' => $args['orderClass'], + 'attr' => $attrs['css'] ?? [], + 'cssFields' => self::get_custom_css(), + ] + ), + ], + ] + ); + } + + /** + * Retrieves the custom CSS associated with the registered block type. + * + * @since 1.9.9 + * + * @return array Custom CSS fields. + */ + private static function get_custom_css(): array { + + $instance = WP_Block_Type_Registry::get_instance(); + + if ( ! $instance ) { + return []; + } + + $block_type = $instance->get_registered( self::MODULE_TYPE ); + + // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + if ( ! $block_type || ! isset( $block_type->customCssFields ) ) { + return []; + } + + return $block_type->customCssFields; + // phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + } + + /** + * Module script data function. + * + * @since 1.9.9 + * + * @param array $args Arguments for generating script data. + * + * @return array Script data. + * @noinspection PhpUnusedParameterInspection + */ + public static function module_script_data( array $args ): array { + + return [ + 'data' => [], + ]; + } + + /** + * Retrieves and merges localized data with additional configuration options. + * + * @since 1.9.9 + * + * @return array Merged an array of localized data and additional configurations. + */ + public function get_localized_data(): array { + + return array_merge( + $this->localized_data, + [ + 'forms' => $this->get_form_options(), + 'settingsGroup' => [ + 'label' => esc_html__( 'Form Settings', 'wpforms-lite' ), + ], + 'formId' => [ + 'placeholder' => esc_html__( 'Select form', 'wpforms-lite' ), + 'label' => esc_html__( 'Form', 'wpforms-lite' ), + ], + 'showTitle' => [ + 'label' => esc_html__( 'Show Title', 'wpforms-lite' ), + ], + 'showDesc' => [ + 'label' => esc_html__( 'Show Description', 'wpforms-lite' ), + ], + ] + ); + } + + /** + * Enqueues the Visual Builder assets for the D5 Tutorial Simple Quick Module + * if the Front Builder and D5 Builder are enabled. + * + * @since 1.9.9 + * + * @noinspection PhpUndefinedFunctionInspection + */ + public function enqueue_visual_builder_assets(): void { + + if ( ! et_core_is_fb_enabled() || ! et_builder_d5_enabled() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + PackageBuildManager::register_package_build( + [ + 'name' => 'wpforms-divi', + 'version' => WPFORMS_VERSION, + 'script' => [ + 'src' => WPFORMS_PLUGIN_URL . "assets/js/integrations/divi/modern/formselector.es5{$min}.js", + 'deps' => [ + 'react', + 'jquery', + 'divi-module-library', + 'wp-hooks', + 'divi-rest', + ], + 'enqueue_top_window' => false, + 'enqueue_app_window' => true, + 'data_app_window' => $this->get_localized_data(), + ], + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Divi/conversion-outline.json b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/conversion-outline.json new file mode 100644 index 0000000..7bc219c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/conversion-outline.json @@ -0,0 +1,31 @@ +{ + "advanced": { + "animation": "animation", + "disabled_on": "disabledOn", + "module": "module", + "overflow": "overflow", + "position_fields": "position", + "scroll": "scroll", + "sticky": "sticky", + "text_shadow": { + "default": "text.textShadow" + }, + "transform": "transform", + "transition": "transition", + "z_index": "zIndex", + "max_width": "sizing", + "height": "sizing", + "margin_padding": "spacing" + }, + "css": { + "before": "css.*.before", + "main_element": "css.*.mainElement", + "after": "css.*.after", + "free_form": "css.*.freeForm" + }, + "module": { + "form_id": "formId.*", + "show_title": "showTitle.*", + "show_desc": "showDescription.*" + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Divi/module.json b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/module.json new file mode 100644 index 0000000..c59deee --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Divi/module.json @@ -0,0 +1,49 @@ +{ + "name": "wpforms/divi-form-selector", + "d4Shortcode": "wpforms_selector", + "title": "WPForms", + "titles": "Forms", + "moduleIcon": "wpforms/divi-form-selector", + "category": "module", + "attributes": { + "module": { + "type": "object", + "selector": "{{selector}}", + "default": {}, + "defaultPrintedStyle": {}, + "settings": { + "advanced": { + "htmlAttributes": {} + }, + "decoration": { + "animation": {}, + "sizing": {}, + "spacing": {}, + "transform": {}, + "conditions": {}, + "disabledOn": {}, + "position": {}, + "scroll": {}, + "transition": {} + } + } + }, + "formId": { + "type": "string", + "default": "0" + }, + "showTitle": { + "type": "string", + "default": "off" + }, + "showDescription": { + "type": "string", + "default": "off" + } + }, + "customCssFields": {}, + "settings": { + "design": "auto", + "advanced": "auto" + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Controls/WPFormsThemes.php b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Controls/WPFormsThemes.php new file mode 100644 index 0000000..321346d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Controls/WPFormsThemes.php @@ -0,0 +1,59 @@ + true, + ]; + } + + /** + * Render control output in the editor. + * + * @since 1.9.6 + */ + public function content_template() { + ?> +
              +
              +
              +
              +
              + themes_data_obj = new ThemesData(); + + $this->hooks(); + } + + /** + * Integration hooks. + * + * @since 1.6.0 + * + * @noinspection PhpUndefinedConstantInspection + */ + protected function hooks() { + + // Skip if Elementor is not available. + if ( ! class_exists( '\Elementor\Plugin' ) ) { + return; + } + + add_action( 'elementor/preview/init', [ $this, 'init' ] ); + add_action( 'elementor/frontend/after_enqueue_scripts', [ $this, 'preview_assets' ] ); + add_action( 'elementor/frontend/after_enqueue_scripts', [ $this, 'frontend_assets' ] ); + add_action( 'elementor/editor/after_enqueue_styles', [ $this, 'editor_assets' ] ); + add_action( 'elementor/controls/register', [ $this, 'register_controls' ] ); + + version_compare( ELEMENTOR_VERSION, '3.5.0', '>=' ) + ? add_action( 'elementor/widgets/register', [ $this, 'register_widget' ] ) + : add_action( 'elementor/widgets/widgets_registered', [ $this, 'register_widget' ] ); + + add_action( 'wp_ajax_wpforms_admin_get_form_selector_options', [ $this, 'ajax_get_form_selector_options' ] ); + add_filter( 'wpforms_integrations_gutenberg_form_selector_allow_render', [ $this, 'disable_gutenberg_block_render' ] ); + add_filter( 'wpforms_forms_anti_spam_v3_is_honeypot_enabled', [ $this, 'filter_is_honeypot_enabled' ] ); + + add_action( 'rest_api_init', [ $this, 'init_rest' ] ); + } + + /** + * Initialize rest API. + * + * @since 1.9.6 + */ + public function init_rest(): void { + + if ( ! $this->rest_api_obj ) { + $this->rest_api_obj = new RestApi( $this, $this->themes_data_obj ); + } + } + + /** + * Register Elementor controls. + * + * @since 1.9.6 + * + * @param Controls_Manager $controls_manager Elementor controls manager. + */ + public function register_controls( Controls_Manager $controls_manager ): void { + + require_once WPFORMS_PLUGIN_DIR . 'src/Integrations/Elementor/Controls/WPFormsThemes.php'; + + $controls_manager->register( new Controls\WPFormsThemes() ); + } + + /** + * Init the main logic. + * + * @since 1.6.0 + */ + public function init(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + /** + * Allow developers to determine whether the compatibility layer should be applied. + * We do this check here because we want this filter to be available for theme developers too. + * + * @since 1.6.0 + * + * @param bool $use_compat Use compatibility. + */ + $use_compat = (bool) apply_filters( 'wpforms_apply_elementor_preview_compat', true ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( $use_compat !== true ) { + return; + } + + // Load WPForms assets globally on the Elementor Preview panel only. + add_filter( 'wpforms_global_assets', '__return_true' ); + + // Hide CAPTCHA badge on Elementor Preview panel. + add_filter( 'wpforms_frontend_recaptcha_disable', '__return_true' ); + } + + /** + * Load assets in the preview panel. + * + * @since 1.6.2 + */ + public function preview_assets() { + + if ( ! ElementorPlugin::$instance->preview->is_preview_mode() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + // jQuery.Confirm Reloaded. + wp_enqueue_style( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.css', + null, + '1.0.0' + ); + + wp_enqueue_script( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.js', + [ 'jquery' ], + '1.0.0', + false + ); + + wp_enqueue_style( + 'wpforms-font-awesome', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/all.min.css', + null, + '7.0.1' + ); + + // FontAwesome v4 compatibility shims. + wp_enqueue_style( + 'wpforms-font-awesome-v4-shim', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/v4-shims.min.css', + null, + '4.7.0' + ); + + wp_enqueue_style( + 'wpforms-integrations', + WPFORMS_PLUGIN_URL . "assets/css/admin-integrations{$min}.css", + null, + WPFORMS_VERSION + ); + + wp_enqueue_script( + 'wpforms-elementor', + WPFORMS_PLUGIN_URL . "assets/js/integrations/elementor/editor{$min}.js", + [ 'elementor-frontend', 'jquery', 'wp-util', 'wpforms', 'jquery-confirm', 'wp-api-fetch' ], + WPFORMS_VERSION, + true + ); + + if ( $this->is_modern_widget() ) { + + wp_enqueue_script( + 'wpforms-generic-utils', + WPFORMS_PLUGIN_URL . "assets/js/share/utils{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-elementor-modern', + WPFORMS_PLUGIN_URL . "assets/js/integrations/elementor/editor-modern{$min}.js", + [ 'wpforms-elementor', 'wpforms-generic-utils' ], + WPFORMS_VERSION, + true + ); + } + + wp_enqueue_script( + 'wpforms-elementor-themes', + WPFORMS_PLUGIN_URL . "assets/js/integrations/elementor/themes{$min}.js", + [ 'wpforms-elementor-modern' ], + WPFORMS_VERSION, + true + ); + + // Define strings for JS. + $strings = [ + 'heads_up' => esc_html__( 'Heads up!', 'wpforms-lite' ), + 'cancel' => esc_html__( 'Cancel', 'wpforms-lite' ), + 'copy_paste_error' => esc_html__( 'There was an error parsing your JSON code. Please check your code and try again.', 'wpforms-lite' ), + 'button_background' => esc_html__( 'Button Background', 'wpforms-lite' ), + 'button_text' => esc_html__( 'Button Text', 'wpforms-lite' ), + 'field_label' => esc_html__( 'Field Label', 'wpforms-lite' ), + 'field_sublabel' => esc_html__( 'Field Sublabel', 'wpforms-lite' ), + 'field_border' => esc_html__( 'Field Border', 'wpforms-lite' ), + 'theme_delete_title' => esc_html__( 'Delete Form Theme', 'wpforms-lite' ), + // Translators: %1$s: Theme name. + 'theme_delete_confirm' => esc_html__( 'Are you sure you want to delete the %1$s theme?', 'wpforms-lite' ), + 'theme_delete_cant_undone' => esc_html__( 'This cannot be undone.', 'wpforms-lite' ), + 'theme_delete_yes' => esc_html__( 'Yes, Delete', 'wpforms-lite' ), + 'theme_copy' => esc_html__( 'Copy', 'wpforms-lite' ), + 'theme_custom' => esc_html__( 'Custom Theme', 'wpforms-lite' ), + 'theme_noname' => esc_html__( 'Noname Theme', 'wpforms-lite' ), + 'form_themes' => esc_html__( 'Themes', 'wpforms-lite' ), + 'themes_error' => esc_html__( 'Error loading themes. Please try again later.', 'wpforms-lite' ), + 'upgrade_button' => esc_html__( 'Upgrade to Pro', 'wpforms-lite' ), + 'license_message' => esc_html__( 'To access the %name%, please enter and activate your WPForms license key in the plugin settings.', 'wpforms-lite' ), + 'license_button' => esc_html__( 'Enter License Key', 'wpforms-lite' ), + 'license_url' => esc_url( admin_url( 'admin.php?page=wpforms-settings' ) ), + 'pro_sections' => [ + 'background' => esc_html__( 'Background Styles', 'wpforms-lite' ), + 'container' => esc_html__( 'Container Styles', 'wpforms-lite' ), + ], + ]; + + /** + * Filter the strings passed to the Elementor editor script. + * + * @since 1.9.6 + * + * @param array $strings Array of strings to be filtered. + */ + $strings = apply_filters( 'wpforms_integrations_elementor_editor_strings', $strings ); + + /** + * Filter the variables passed to an Elementor editor script. + * + * @since 1.9.6 + * + * @param array $vars Array of variables to be filtered. + */ + $vars = apply_filters( + 'wpforms_integrations_elementor_editor_vars', + [ + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'wpforms-elementor-integration' ), + 'edit_form_url' => admin_url( 'admin.php?page=wpforms-builder&view=fields&form_id=' ), + 'add_form_url' => admin_url( 'admin.php?page=wpforms-builder&view=setup' ), + 'css_url' => WPFORMS_PLUGIN_URL . "assets/css/admin-integrations{$min}.css", + 'debug' => wpforms_debug(), + 'isPro' => wpforms()->is_pro(), + 'isAdmin' => current_user_can( 'manage_options' ), + 'is_modern_markup' => wpforms_get_render_engine() === 'modern', + 'is_full_styling' => (int) wpforms_setting( 'disable-css', '1' ) === 1, + 'route_namespace' => RestApi::ROUTE_NAMESPACE, + 'strings' => $strings, + 'sizes' => [ + 'field-size' => CSSVars::FIELD_SIZE, + 'label-size' => CSSVars::LABEL_SIZE, + 'button-size' => CSSVars::BUTTON_SIZE, + 'container-shadow-size' => CSSVars::CONTAINER_SHADOW_SIZE, + ], + ] + ); + + wp_localize_script( + 'wpforms-elementor', + 'wpformsElementorVars', + $vars + ); + } + + /** + * Load an integration assets on the frontend. + * + * @since 1.6.2 + */ + public function frontend_assets(): void { + + if ( ElementorPlugin::$instance->preview->is_preview_mode() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_register_script( + 'wpforms-elementor', + WPFORMS_PLUGIN_URL . "assets/js/integrations/elementor/frontend{$min}.js", + [ 'elementor-frontend', 'jquery', 'wp-util', 'wpforms' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-elementor', + 'wpformsElementorVars', + [ + 'captcha_provider' => wpforms_setting( 'captcha-provider', 'recaptcha' ), + 'recaptcha_type' => wpforms_setting( 'recaptcha-type', 'v2' ), + ] + ); + } + + /** + * Load assets in the elementor document. + * + * @since 1.6.2 + */ + public function editor_assets() { + + if ( empty( $_GET['action'] ) || $_GET['action'] !== 'elementor' ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-integrations', + WPFORMS_PLUGIN_URL . "assets/css/admin-integrations{$min}.css", + null, + WPFORMS_VERSION + ); + + // Choices.js. + wp_enqueue_script( + 'choicesjs', + WPFORMS_PLUGIN_URL . 'assets/lib/choices.min.js', + [], + '10.2.0', + false + ); + + wp_enqueue_script( + 'wpforms-admin-education-core', + WPFORMS_PLUGIN_URL . "assets/js/admin/education/core{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-elementor-modern', + WPFORMS_PLUGIN_URL . "assets/js/integrations/elementor/editor-context{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-admin-education-core', + 'wpforms_education', + $this->get_js_strings() + ); + } + + /** + * Register WPForms Widget. + * + * @since 1.6.2 + * @since 1.7.6 Added support for the new registration method since 3.5.0. + * @since 1.8.3 Added a condition for selecting the required widget instance. + * + * @noinspection PhpUndefinedConstantInspection + */ + public function register_widget(): void { + + $widget_instance = $this->is_modern_widget() ? new WidgetModern() : new Widget(); + + version_compare( ELEMENTOR_VERSION, '3.5.0', '>=' ) + ? ElementorPlugin::instance()->widgets_manager->register( $widget_instance ) + : ElementorPlugin::instance()->widgets_manager->register_widget_type( $widget_instance ); + } + + /** + * Get form selector options. + * + * @since 1.6.2 + */ + public function ajax_get_form_selector_options(): void { + + check_ajax_referer( 'wpforms-elementor-integration', 'nonce' ); + + wp_send_json_success( ( new Widget() )->get_form_selector_options() ); + } + + /** + * Detect modern Widget. + * + * @since 1.8.3 + */ + protected function is_modern_widget(): bool { + + return wpforms_get_render_engine() === 'modern' && (int) wpforms_setting( 'disable-css', '1' ) === 1; + } + + /** + * Disable the block render for pages built in Elementor. + * + * @since 1.8.8 + * + * @param bool|mixed $allow_render Whether to allow the block render. + * + * @return bool Whether to disable the block render. + */ + public function disable_gutenberg_block_render( $allow_render ): bool { + + $allow_render = (bool) $allow_render; + + $document = ElementorPlugin::$instance->documents->get( get_the_ID() ); + + if ( $document && $document->is_built_with_elementor() ) { + return false; + } + + return $allow_render; + } + + /** + * Disable honeypot on the preview panel. + * + * @since 1.9.0 + * + * @param bool|mixed $is_enabled True if the honeypot is enabled, false otherwise. + * + * @return bool Whether to disable the honeypot. + */ + public function filter_is_honeypot_enabled( $is_enabled ): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $action = sanitize_key( $_REQUEST['action'] ?? '' ); + + if ( + in_array( $action, [ 'elementor', 'elementor_ajax' ], true ) || + ElementorPlugin::$instance->preview->is_preview_mode() + ) { + return false; + } + + return (bool) $is_enabled; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/RestApi.php b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/RestApi.php new file mode 100644 index 0000000..1b725b0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/RestApi.php @@ -0,0 +1,210 @@ +widget_obj = $widget_obj; + $this->themes_data = $themes_data; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.6 + */ + private function hooks(): void { + + add_action( 'rest_api_init', [ $this, 'register_api_routes' ], 20 ); + } + + /** + * Register API routes for Elementor Modern widget. + * + * @since 1.9.6 + */ + public function register_api_routes() { + + /** + * Register routes with WordPress. + * + * @see https://developer.wordpress.org/reference/functions/register_rest_route/ + */ + register_rest_route( + self::ROUTE_NAMESPACE, + '/elementor/forms/', + [ + 'methods' => 'GET', + 'callback' => [ $this, 'get_forms' ], + 'permission_callback' => [ $this, 'permissions_check' ], + ] + ); + + register_rest_route( + self::ROUTE_NAMESPACE, + '/elementor/themes/', + [ + 'methods' => 'GET', + 'callback' => [ $this, 'get_themes' ], + 'permission_callback' => [ $this, 'permissions_check' ], + ] + ); + + register_rest_route( + self::ROUTE_NAMESPACE, + '/elementor/themes/custom/', + [ + 'methods' => 'POST', + 'callback' => [ $this, 'save_themes' ], + 'permission_callback' => [ $this, 'admin_permissions_check' ], + ] + ); + } + + /** + * Check if a user has permission to access private data. + * + * @since 1.9.6 + * + * @return true|WP_Error True if a user has permission. + */ + public function permissions_check() { + + // Restrict endpoint to only users who have the edit_posts capability. + if ( ! current_user_can( 'edit_posts' ) ) { + return new WP_Error( 'rest_forbidden', esc_html__( 'This route is private.', 'wpforms-lite' ), [ 'status' => 401 ] ); + } + + return true; + } + + /** + * Check if a user has admin permissions. + * + * @since 1.9.6 + * + * @return true|WP_Error True if a user has permission. + */ + public function admin_permissions_check() { + + // Restrict endpoint to only users who have the manage_options capability. + if ( ! current_user_can( 'manage_options' ) ) { + return new WP_Error( 'rest_forbidden', esc_html__( 'This route is accessible only to administrators.', 'wpforms-lite' ), [ 'status' => 401 ] ); + } + + return true; + } + + /** + * Return form list protected WP_REST_Response object. + * + * @since 1.9.6 + * + * @return WP_Error|WP_REST_Response + */ + public function get_forms() { + + return rest_ensure_response( $this->widget_obj->get_forms() ); + } + + /** + * Return themes as a protected WP_REST_Response object. + * + * @since 1.9.6 + * + * @return WP_Error|WP_REST_Response + */ + public function get_themes() { + + $custom_themes = $this->themes_data->get_custom_themes(); + $wpforms_themes = $this->themes_data->get_wpforms_themes(); + + return rest_ensure_response( + [ + 'custom' => ! empty( $custom_themes ) ? $custom_themes : null, + 'wpforms' => ! empty( $wpforms_themes ) ? $wpforms_themes : null, + ] + ); + } + + /** + * Save custom themes. + * + * @since 1.9.6 + * + * @param WP_REST_Request $request Request object. + * + * @return WP_Error|WP_REST_Response + */ + public function save_themes( WP_REST_Request $request ) { + + $custom_themes = (array) ( $request->get_param( 'customThemes' ) ?? [] ); + + // Save custom themes data and return REST response. + $result = $this->themes_data->update_custom_themes_file( $custom_themes ); + + if ( ! $result ) { + return rest_ensure_response( + [ + 'result' => false, + 'error' => esc_html__( 'Can\'t save theme data.', 'wpforms-lite' ), + ] + ); + } + + return rest_ensure_response( [ 'result' => true ] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/ThemesData.php b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/ThemesData.php new file mode 100644 index 0000000..e14e7d2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/ThemesData.php @@ -0,0 +1,219 @@ +wpforms_themes !== null ) { + return $this->wpforms_themes; + } + + $themes_json = File::get_contents( WPFORMS_PLUGIN_DIR . static::THEMES_WPFORMS_JSON_PATH ) ?? '{}'; + $themes = json_decode( $themes_json, true ); + + $this->wpforms_themes = ! empty( $themes ) ? $themes : []; + + return $this->wpforms_themes; + } + + /** + * Return custom themes. + * + * @since 1.9.6 + * + * @return array + */ + public function get_custom_themes(): array { + + if ( $this->custom_themes !== null ) { + return $this->custom_themes; + } + + $themes_json = File::get_contents( $this->get_custom_themes_file_path() ) ?? '{}'; + $themes = json_decode( $themes_json, true ); + + $this->custom_themes = ! empty( $themes ) ? $themes : []; + + return $this->custom_themes; + } + + /** + * Return theme data. + * + * @since 1.9.6 + * + * @param string $slug Theme slug. + * + * @return array|null + */ + public function get_theme( string $slug ): ?array { + + $wpforms = $this->get_wpforms_themes(); + + if ( ! empty( $wpforms[ $slug ] ) ) { + return $wpforms[ $slug ]; + } + + $custom = $this->get_custom_themes(); + + if ( ! empty( $custom[ $slug ] ) ) { + return $custom[ $slug ]; + } + + return null; + } + + /** + * Get custom themes JSON file path. + * + * @since 1.9.6 + * + * @return string|bool File path OR false in the case of permissions error. + */ + public function get_custom_themes_file_path() { + + // Caching the file path in the class property. + if ( $this->custom_themes_file_path !== null ) { + return $this->custom_themes_file_path; + } + + // Determine a custom themes file path. + $upload_dir = wpforms_upload_dir(); + $upload_path = ! empty( $upload_dir['path'] ) ? $upload_dir['path'] : WP_CONTENT_DIR . 'uploads/wpforms/'; + $upload_path = trailingslashit( wp_normalize_path( $upload_path ) ); + $file_path = $upload_path . self::THEMES_CUSTOM_JSON_PATH; + $dirname = dirname( $file_path ); + + // If the directory doesn't exist, create it. Also, check for permissions. + if ( ! wp_mkdir_p( $dirname ) ) { + $file_path = false; + } + + $this->custom_themes_file_path = $file_path; + + return $file_path; + } + + /** + * Sanitize custom themes data. + * + * @since 1.9.6 + * + * @param array $custom_themes Custom themes data. + * + * @return array + */ + private function sanitize_custom_themes_data( array $custom_themes ): array { + + $wpforms = $this->get_wpforms_themes(); + $sanitized_themes = []; + + // Get the default theme settings. + // If there are no default settings, use an empty array. This should never happen, but just in case. + $default_theme = $wpforms['default'] ?? []; + $default_theme['settings'] = $default_theme['settings'] ?? []; + + foreach ( $custom_themes as $slug => $theme ) { + $slug = sanitize_key( $slug ); + $sanitized_themes[ $slug ]['name'] = sanitize_text_field( $theme['name'] ?? 'Copy of ' . $default_theme['name'] ); + + // Fill in missed settings keys with default values. + $settings = wp_parse_args( $theme['settings'] ?? [], $default_theme['settings'] ); + + // Make sure we will save only settings that are present in the default theme. + $settings = array_intersect_key( $settings, $default_theme['settings'] ); + + // Sanitize settings. + $sanitized_themes[ $slug ]['settings'] = array_map( 'sanitize_text_field', $settings ); + } + + return $sanitized_themes; + } + + /** + * Update custom themes data. + * + * @since 1.9.6 + * + * @param array $custom_themes Custom themes data. + * + * @return bool + */ + public function update_custom_themes_file( array $custom_themes ): bool { + + // Sanitize custom themes data to be saved. + $sanitized_themes = $this->sanitize_custom_themes_data( $custom_themes ); + + // Determine a custom themes file path. + $themes_file = $this->get_custom_themes_file_path(); + $json_data = ! empty( $sanitized_themes ) ? wp_json_encode( $sanitized_themes ) : '{}'; + + // Save custom themes data and return the result. + return File::put_contents( $themes_file, $json_data ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Widget.php b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Widget.php new file mode 100644 index 0000000..5735a89 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/Widget.php @@ -0,0 +1,458 @@ +content_controls(); + } + + /** + * Register content tab controls. + * + * @since 1.6.2 + * + * @noinspection PhpUndefinedMethodInspection + * @noinspection HtmlUnknownTarget + */ + protected function content_controls() { + + $this->start_controls_section( + 'section_form', + [ + 'label' => esc_html__( 'Form', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + + $forms = $this->get_forms(); + + if ( empty( $forms ) ) { + $this->add_control( + 'add_form_notice', + [ + 'show_label' => false, + 'type' => Controls_Manager::RAW_HTML, + 'raw' => wp_kses( + __( 'You haven\'t created a form yet.
              What are you waiting for?', 'wpforms-lite' ), + [ + 'b' => [], + 'br' => [], + ] + ), + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info wpforms-elementor-no-forms-notice', + ] + ); + } + + $this->add_control( + 'form_id', + [ + 'label' => esc_html__( 'Form', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'label_block' => true, + 'options' => $forms, + 'default' => '0', + ] + ); + + $this->add_control( + 'edit_form', + [ + 'show_label' => false, + 'type' => Controls_Manager::RAW_HTML, + 'raw' => wp_kses( /* translators: %s - WPForms documentation link. */ + __( 'Need to make changes? Edit the selected form.', 'wpforms-lite' ), + [ 'a' => [] ] + ), + 'condition' => [ + 'form_id!' => '0', + ], + ] + ); + + $this->add_control( + 'test_form_notice', + [ + 'show_label' => false, + 'type' => Controls_Manager::RAW_HTML, + 'raw' => sprintf( + wp_kses( /* translators: %s - WPForms documentation link. */ + __( 'Heads up! Don\'t forget to test your form. Check out our complete guide!', 'wpforms-lite' ), + [ + 'b' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + 'https://wpforms.com/docs/how-to-properly-test-your-wordpress-forms-before-launching-checklist/' + ), + 'condition' => [ + 'form_id!' => '0', + ], + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info', + ] + ); + + $this->add_control( + 'add_form_btn', + [ + 'show_label' => false, + 'label_block' => false, + 'type' => Controls_Manager::BUTTON, + 'button_type' => 'default', + 'separator' => 'before', + 'text' => '+' . esc_html__( 'New form', 'wpforms-lite' ), + 'event' => 'elementorWPFormsAddFormBtnClick', + ] + ); + + $this->add_legacy_styles_notice(); + + $this->end_controls_section(); + + $this->start_controls_section( + 'section_display', + [ + 'label' => esc_html__( 'Display Options', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_CONTENT, + 'condition' => [ + 'form_id!' => '0', + ], + ] + ); + + $this->add_control( + 'display_form_name', + [ + 'label' => esc_html__( 'Form Name', 'wpforms-lite' ), + 'type' => Controls_Manager::SWITCHER, + 'label_on' => esc_html__( 'Show', 'wpforms-lite' ), + 'label_off' => esc_html__( 'Hide', 'wpforms-lite' ), + 'return_value' => 'yes', + 'condition' => [ + 'form_id!' => '0', + ], + ] + ); + + $this->add_control( + 'display_form_description', + [ + 'label' => esc_html__( 'Form Description', 'wpforms-lite' ), + 'type' => Controls_Manager::SWITCHER, + 'label_on' => esc_html__( 'Show', 'wpforms-lite' ), + 'label_off' => esc_html__( 'Hide', 'wpforms-lite' ), + 'separator' => 'after', + 'return_value' => 'yes', + 'condition' => [ + 'form_id!' => '0', + ], + ] + ); + + $this->end_controls_section(); + } + + /** + * Add legacy styles notice. + * + * @since 1.9.6 + * + * @noinspection PhpUndefinedMethodInspection + * @noinspection HtmlUnknownTarget + */ + private function add_legacy_styles_notice() { + + $is_modern = wpforms_get_render_engine() === 'modern'; + $is_full_styles = (int) wpforms_setting( 'disable-css', '1' ) === 1; + + if ( ! $is_modern || ! $is_full_styles ) { + $notice_text = ! $is_modern + ? __( 'Upgrade your forms to use our modern markup and unlock extensive style controls.', 'wpforms-lite' ) + : __( 'Update your forms to use base and form theme styling and unlock extensive style controls.', 'wpforms-lite' ); + + $this->add_control( + 'legacy_styling_notice', + [ + 'show_label' => false, + 'type' => Controls_Manager::RAW_HTML, + 'raw' => sprintf( + wp_kses( /* translators: %s - WPForms documentation link. */ + __( 'Want to customize your form styles without editing CSS?

              %1$s

              Learn more', 'wpforms-lite' ), + [ + 'b' => [], + 'p' => [], + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + $notice_text, + wpforms_utm_link( 'https://wpforms.com/docs/styling-your-forms/', 'Elementor Widget Settings', 'Form Styles Documentation' ) + ), + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning wpforms-legacy-styles-notice', + ] + ); + } + } + + /** + * Render widget output. + * + * @since 1.6.2 + */ + protected function render() { + + if ( Plugin::$instance->editor->is_edit_mode() ) { + $this->render_edit_mode(); + } else { + $this->render_frontend(); + } + } + + /** + * Render widget output in edit mode. + * + * @since 1.6.3.1 + * + * @noinspection PhpPossiblePolymorphicInvocationInspection + */ + protected function render_edit_mode() { + + $form_id = $this->get_settings_for_display( 'form_id' ); + + // Popup markup template. + echo wpforms_render( 'integrations/elementor/popup' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + if ( count( $this->get_forms() ) < 2 ) { + + // No forms block. + echo wpforms_render( 'integrations/elementor/no-forms' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + return; + } + + if ( empty( $form_id ) ) { + + // Render form selector. + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'integrations/elementor/form-selector', + [ + 'forms' => $this->get_form_selector_options(), + ], + true + ); + + return; + } + + // Finally, render selected form. + $this->render_frontend(); + } + + /** + * Render widget output on the frontend. + * + * @since 1.6.3.1 + */ + protected function render_frontend() { + + // Render selected form. + $this->render_form(); + } + + /** + * Render widget as plain content. + * + * @since 1.6.2 + */ + public function render_plain_content() { + + $this->render_form(); + } + + /** + * Render a form. + * + * @since 1.8.3 + * + * @noinspection PhpPossiblePolymorphicInvocationInspection + */ + public function render_form() { + + wpforms_display( + $this->get_settings_for_display( 'form_id' ), + $this->get_settings_for_display( 'display_form_name' ) === 'yes', + $this->get_settings_for_display( 'display_form_description' ) === 'yes' + ); + } + + /** + * Get form list. + * + * @since 1.6.2 + * + * @returns array Array of forms. + */ + public function get_forms() { + + static $forms_list = []; + + if ( empty( $forms_list ) ) { + $forms_obj = wpforms()->obj( 'form' ); + $forms = $forms_obj ? $forms_obj->get() : null; + + if ( ! empty( $forms ) ) { + $forms_list[0] = esc_html__( 'Select a form', 'wpforms-lite' ); + + foreach ( $forms as $form ) { + $forms_list[ $form->ID ] = mb_strlen( $form->post_title ) > 100 ? mb_substr( $form->post_title, 0, 97 ) . '...' : $form->post_title; + } + } + } + + return $forms_list; + } + + /** + * Get form selector options. + * + * @since 1.6.2 + * + * @returns string Rendered options for the select tag. + */ + public function get_form_selector_options() { + + $forms = $this->get_forms(); + $options = ''; + + foreach ( $forms as $form_id => $form ) { + $options .= sprintf( + '', + (int) $form_id, + esc_html( $form ) + ); + } + + return $options; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/WidgetModern.php b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/WidgetModern.php new file mode 100644 index 0000000..88b833c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Elementor/WidgetModern.php @@ -0,0 +1,1010 @@ +load(); + } + + /** + * Load widget. + * + * @since 1.8.3 + */ + private function load(): void { + + $this->size_options = [ + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ]; + + $this->border_options = [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'solid' => esc_html__( 'Solid', 'wpforms-lite' ), + 'dashed' => esc_html__( 'Dashed', 'wpforms-lite' ), + 'dotted' => esc_html__( 'Dotted', 'wpforms-lite' ), + ]; + + $this->css_vars_obj = wpforms()->obj( 'css_vars' ); + } + + /** + * Register widget controls. + * + * Adds different input fields to allow the user to change and customize the widget settings. + * + * @since 1.8.3 + */ + protected function register_controls() { + + $this->content_controls(); + $this->style_controls(); + } + + /** + * Register widget controls for the Style section. + * + * Adds different input fields into the "Style" section to allow the user to change and customize the widget style + * settings. + * + * @since 1.8.3 + */ + private function style_controls(): void { + + $this->add_theme_style_controls(); + + if ( $this->is_admin() ) { + $this->add_field_style_controls(); + $this->add_label_style_controls(); + $this->add_button_style_controls(); + $this->add_container_style_controls(); + $this->add_background_style_controls(); + $this->add_other_style_controls(); + } + + $this->add_advanced_style_controls(); + } + + /** + * Register widget controls for the Theme Style section. + * + * @since 1.9.6 + */ + private function add_theme_style_controls(): void { + + $this->start_controls_section( + 'themes', + [ + 'label' => esc_html__( 'Themes', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'lead_forms_notice', + [ + 'show_label' => false, + 'type' => Controls_Manager::RAW_HTML, + 'raw' => sprintf( + '%s%s', + esc_html__( 'Form Styles are disabled because Lead Form Mode is turned on.', 'wpforms-lite' ), + esc_html__( 'To change the styling for this form, open it in the form builder and edit the options in the Lead Forms settings.', 'wpforms-lite' ) + ), + 'classes' => 'wpforms-elementor-lead-forms-notice', + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning', + ] + ); + + $this->add_control( + 'wpformsTheme', + [ + 'type' => 'wpforms_themes', + 'default' => 'default', + ] + ); + + if ( $this->is_admin() ) { + $this->add_control( + 'isCustomTheme', + [ + 'type' => Controls_Manager::HIDDEN, + ] + ); + + $this->add_control( + 'isMigrated', + [ + 'type' => Controls_Manager::HIDDEN, + 'default' => 'false', + ] + ); + + $this->add_control( + 'customThemeName', + [ + 'type' => Controls_Manager::TEXT, + 'label' => esc_html__( 'Theme Name', 'wpforms-lite' ), + 'ai' => [ + 'active' => false, + ], + 'condition' => [ + 'isCustomTheme!' => '', + ], + ] + ); + + $this->add_control( + 'deleteThemeButton', + [ + 'type' => Controls_Manager::BUTTON, + 'event' => 'WPFormsDeleteThemeButtonClick', + 'button_type' => 'danger', + 'text' => esc_html__( 'DELETE THEME', 'wpforms-lite' ), + 'condition' => [ + 'isCustomTheme!' => '', + ], + ] + ); + } + + $this->end_controls_section(); + } + + /** + * Register widget controls for the Field Style section. + * + * Adds controls to the "Field Styles" section of the Widget Style settings. + * + * @since 1.8.3 + */ + protected function add_field_style_controls(): void { + + $this->start_controls_section( + 'field_styles', + [ + 'label' => esc_html__( 'Field Styles', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'fieldSize', + [ + 'label' => esc_html__( 'Size', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => $this->size_options, + 'default' => 'medium', + ] + ); + + $this->add_control( + 'fieldBorderStyle', + [ + 'label' => esc_html__( 'Border', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => $this->border_options, + 'default' => 'solid', + ] + ); + + $this->add_control( + 'fieldBorderSize', + [ + 'label' => esc_html__( 'Border Size (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'default' => '1', + 'min' => '0', + 'condition' => [ + 'fieldBorderStyle!' => 'none', + ], + ] + ); + + $this->add_control( + 'fieldBorderRadius', + [ + 'label' => esc_html__( 'Border Radius (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'min' => '0', + 'default' => '3', + ] + ); + + $this->add_control( + 'fieldBackgroundColor', + [ + 'label' => esc_html__( 'Background', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['field-background-color'], + ] + ); + + $this->add_control( + 'fieldBorderColor', + [ + 'label' => esc_html__( 'Border', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'alpha' => true, + 'default' => CSSVars::ROOT_VARS['field-border-color'], + ] + ); + + $this->add_control( + 'fieldTextColor', + [ + 'label' => esc_html__( 'Text', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'alpha' => true, + 'default' => CSSVars::ROOT_VARS['field-text-color'], + ] + ); + + $this->add_control( + 'fieldMenuColor', + [ + 'type' => Controls_Manager::HIDDEN, + 'default' => CSSVars::ROOT_VARS['field-menu-color'], + ] + ); + + $this->end_controls_section(); + } + + /** + * Register widget controls for the Label Style section. + * + * Adds controls to the "Label Styles" section of the Widget Style settings. + * + * @since 1.8.3 + */ + private function add_label_style_controls(): void { + + $this->start_controls_section( + 'label_styles', + [ + 'label' => esc_html__( 'Label Styles', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'labelSize', + [ + 'label' => esc_html__( 'Size', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => $this->size_options, + 'default' => 'medium', + ] + ); + + $this->add_control( + 'labelColor', + [ + 'label' => esc_html__( 'Label', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'alpha' => true, + 'default' => CSSVars::ROOT_VARS['label-color'], + ] + ); + + $this->add_control( + 'labelSublabelColor', + [ + 'label' => esc_html__( 'Sublabel & Hint', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'alpha' => true, + 'default' => CSSVars::ROOT_VARS['label-sublabel-color'], + ] + ); + + $this->add_control( + 'labelErrorColor', + [ + 'label' => esc_html__( 'Error', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['label-error-color'], + ] + ); + + $this->end_controls_section(); + } + + /** + * Register widget controls for the "Button Style" section. + * + * Adds controls to the "Button Styles" section of the Widget Style settings. + * + * @since 1.8.3 + */ + private function add_button_style_controls(): void { + + $this->start_controls_section( + 'button_styles', + [ + 'label' => esc_html__( 'Button Styles', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'buttonSize', + [ + 'label' => esc_html__( 'Size', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => $this->size_options, + 'default' => 'medium', + ] + ); + + $this->add_control( + 'buttonBorderStyle', + [ + 'label' => esc_html__( 'Border', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => $this->border_options, + 'default' => CSSVars::ROOT_VARS['button-border-style'], + ] + ); + + $this->add_control( + 'buttonBorderSize', + [ + 'label' => esc_html__( 'Border Size (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'default' => CSSVars::ROOT_VARS['button-border-size'], + 'min' => '0', + 'condition' => [ + 'buttonBorderStyle!' => 'none', + ], + ] + ); + + $this->add_control( + 'buttonBorderRadius', + [ + 'label' => esc_html__( 'Border Radius (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'min' => '0', + 'default' => '3', + ] + ); + + $this->add_control( + 'buttonBackgroundColor', + [ + 'label' => esc_html__( 'Background', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['button-background-color'], + ] + ); + + $this->add_control( + 'buttonBorderColor', + [ + 'label' => esc_html__( 'Border', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['button-border-color'], + 'condition' => [ + 'buttonBorderStyle!' => 'none', + ], + ] + ); + + $this->add_control( + 'buttonTextColor', + [ + 'label' => esc_html__( 'Text', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['button-text-color'], + ] + ); + + $this->end_controls_section(); + } + + /** + * Register widget controls for the "Container Style" section. + * + * @since 1.9.6 + */ + private function add_container_style_controls(): void { + + $this->start_controls_section( + 'container_styles', + [ + 'label' => esc_html__( 'Container Styles', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'containerPadding', + [ + 'label' => esc_html__( 'Padding (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'default' => CSSVars::ROOT_VARS['container-padding'], + 'min' => '0', + ] + ); + + $this->add_control( + 'containerBorderStyle', + [ + 'label' => esc_html__( 'Border', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => $this->border_options, + 'default' => CSSVars::ROOT_VARS['container-border-style'], + ] + ); + + $this->add_control( + 'containerBorderWidth', + [ + 'label' => esc_html__( 'Border Size (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'default' => CSSVars::ROOT_VARS['container-border-width'], + 'min' => '0', + 'condition' => [ + 'containerBorderStyle!' => 'none', + ], + ] + ); + + $this->add_control( + 'containerBorderRadius', + [ + 'label' => esc_html__( 'Border Radius (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'min' => '0', + 'default' => '3', + ] + ); + + $this->add_control( + 'containerShadowSize', + [ + 'label' => esc_html__( 'Shadow', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + ], + 'default' => CSSVars::CONTAINER_SHADOW_SIZE['none']['box-shadow'], + ] + ); + + $this->add_control( + 'containerBorderColor', + [ + 'label' => esc_html__( 'Border', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['container-border-color'], + 'condition' => [ + 'containerBorderStyle!' => 'none', + ], + ] + ); + + $this->end_controls_section(); + } + + /** + * Register widget controls for the "Background Style" section. + * + * @since 1.9.6 + */ + private function add_background_style_controls(): void { + + $this->start_controls_section( + 'background_styles', + [ + 'label' => esc_html__( 'Background Styles', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'backgroundImage', + [ + 'label' => esc_html__( 'Image', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'library' => esc_html__( 'Media Library', 'wpforms-lite' ), + 'stock' => esc_html__( 'Stock Photo', 'wpforms-lite' ), + ], + 'default' => 'none', + ] + ); + + $this->add_control( + 'backgroundPosition', + [ + 'label' => esc_html__( 'Position', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'top left' => esc_html__( 'Top Left', 'wpforms-lite' ), + 'top center' => esc_html__( 'Top Center', 'wpforms-lite' ), + 'top right' => esc_html__( 'Top Right', 'wpforms-lite' ), + 'center left' => esc_html__( 'Center Left', 'wpforms-lite' ), + 'center center' => esc_html__( 'Center Center', 'wpforms-lite' ), + 'center right' => esc_html__( 'Center Right', 'wpforms-lite' ), + 'bottom left' => esc_html__( 'Bottom Left', 'wpforms-lite' ), + 'bottom center' => esc_html__( 'Bottom Center', 'wpforms-lite' ), + 'bottom right' => esc_html__( 'Bottom Right', 'wpforms-lite' ), + ], + 'default' => CSSVars::ROOT_VARS['background-position'], + 'condition' => [ + 'backgroundImage!' => 'none', + ], + ] + ); + + $this->add_control( + 'backgroundRepeat', + [ + 'label' => esc_html__( 'Repeat', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'no-repeat' => esc_html__( 'No Repeat', 'wpforms-lite' ), + 'repeat' => esc_html__( 'Tile', 'wpforms-lite' ), + 'repeat-x' => esc_html__( 'Repeat X', 'wpforms-lite' ), + 'repeat-y' => esc_html__( 'Repeat Y', 'wpforms-lite' ), + ], + 'default' => CSSVars::ROOT_VARS['background-repeat'], + 'condition' => [ + 'backgroundImage!' => 'none', + ], + ] + ); + + $this->add_control( + 'backgroundSize', + [ + 'label' => esc_html__( 'Size', 'wpforms-lite' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'dimensions' => esc_html__( 'Dimensions', 'wpforms-lite' ), + 'cover' => esc_html__( 'Cover', 'wpforms-lite' ), + ], + 'default' => CSSVars::ROOT_VARS['background-size'], + 'condition' => [ + 'backgroundImage!' => 'none', + ], + ] + ); + + $this->add_control( + 'backgroundSizeMode', + [ + 'type' => Controls_Manager::HIDDEN, + 'default' => CSSVars::ROOT_VARS['background-size'], + ] + ); + + $this->add_control( + 'backgroundWidth', + [ + 'label' => esc_html__( 'Width (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'default' => '100', + 'min' => '0', + 'condition' => [ + 'backgroundImage!' => 'none', + 'backgroundSize' => 'dimensions', + ], + ] + ); + + $this->add_control( + 'backgroundHeight', + [ + 'label' => esc_html__( 'Height (px)', 'wpforms-lite' ), + 'type' => Controls_Manager::NUMBER, + 'default' => '100', + 'min' => '0', + 'condition' => [ + 'backgroundImage!' => 'none', + 'backgroundSize' => 'dimensions', + ], + ] + ); + + $this->add_control( + 'backgroundUrl', + [ + 'label' => esc_html__( 'Choose Image', 'wpforms-lite' ), + 'type' => Controls_Manager::MEDIA, + 'default' => [ + 'url' => CSSVars::ROOT_VARS['background-url'], + ], + 'ai' => [ + 'active' => false, + ], + 'separator' => 'after', + 'condition' => [ + 'backgroundImage!' => 'none', + ], + ] + ); + + $this->add_control( + 'backgroundColor', + [ + 'label' => esc_html__( 'Background', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['background-color'], + ] + ); + + $this->end_controls_section(); + } + + /** + * Register widget controls for the "Other Styles" section. + * + * @since 1.9.6 + */ + private function add_other_style_controls(): void { + + $this->start_controls_section( + 'other_styles', + [ + 'label' => esc_html__( 'Other Styles', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'pageBreakColor', + [ + 'label' => esc_html__( 'Page Break', 'wpforms-lite' ), + 'type' => Controls_Manager::COLOR, + 'default' => CSSVars::ROOT_VARS['page-break-color'], + ] + ); + + $this->end_controls_section(); + } + + /** + * Register widget controls for the "Advanced" section. + * + * Adds controls to the "Button Styles" section of the Widget Style settings. + * + * @since 1.8.3 + */ + private function add_advanced_style_controls(): void { + + $this->start_controls_section( + 'advanced', + [ + 'label' => esc_html__( 'Advanced', 'wpforms-lite' ), + 'tab' => Controls_Manager::TAB_STYLE, + ] + ); + + $this->add_control( + 'className', + [ + 'label' => esc_html__( 'Additional Classes', 'wpforms-lite' ), + 'type' => Controls_Manager::TEXT, + 'description' => esc_html__( 'Separate multiple classes with spaces.', 'wpforms-lite' ), + 'ai' => [ + 'active' => false, + ], + 'prefix_class' => '', // Prevents re-rendering of the widget. + ] + ); + if ( $this->is_admin() ) { + $this->add_control( + 'ACDivider', + [ + 'type' => Controls_Manager::DIVIDER, + ] + ); + + $this->add_control( + 'copyPasteJsonValue', + [ + 'label' => esc_html__( 'Copy / Paste Style Settings', 'wpforms-lite' ), + 'type' => Controls_Manager::TEXTAREA, + 'description' => esc_html__( 'If you\'ve copied style settings from another form, you can paste them here to add the same styling to this form. Any current style settings will be overwritten.', 'wpforms-lite' ), + 'ai' => [ + 'active' => false, + ], + ] + ); + + $this->add_control( + 'CPDivider', + [ + 'type' => Controls_Manager::DIVIDER, + ] + ); + } + + $this->end_controls_section(); + } + + /** + * Render widget output on the frontend. + * + * @since 1.8.3 + */ + protected function render_frontend() { + + if ( empty( $this->css_vars_obj ) ) { + return; + } + + $widget_id = $this->get_id(); + $attr = $this->get_settings_for_display(); + $css_vars = $this->css_vars_obj->get_customized_css_vars( $attr ); + $custom_classes = ! empty( $attr['className'] ) ? trim( $attr['className'] ) : ''; + + if ( ! empty( $css_vars ) ) { + + $style_id = 'wpforms-css-vars-elementor-widget-' . $widget_id; + + /** + * Filter the CSS selector for output CSS variables for styling the form in Elementor widget. + * + * @since 1.8.3 + * + * @param string $selector The CSS selector for output CSS variables for styling the Elementor Widget. + * @param array $attr Attributes passed by Elementor Widget. + * @param array $css_vars CSS variables data. + */ + $vars_selector = apply_filters( + 'wpforms_integrations_elementor_widget_modern_output_css_vars_selector', + ".elementor-widget-wpforms.elementor-element-{$widget_id}", + $attr, + $css_vars + ); + + $this->css_vars_obj->output_selector_vars( $vars_selector, $css_vars, $style_id ); + } + + // Add custom classes. + if ( $custom_classes ) { + $this->add_render_attribute( + '_wrapper', + [ + 'class' => [ + $custom_classes, + ], + ] + ); + } + + // Render selected form. + $this->render_form(); + } + + /** + * Get settings for display. + * + * @since 1.8.3 + * + * @param string|null $setting_key Optional. The key of the requested setting. Default is null. + * + * @return mixed The settings. + */ + public function get_settings_for_display( $setting_key = null ) { + + $settings = parent::get_settings_for_display( $setting_key ); + + if ( ! empty( $setting_key ) ) { + return $settings; + } + + $settings = $this->remove_empty_settings( $settings ); + $settings = $this->apply_dimension_settings( $settings ); + $settings = $this->apply_complex_settings( $settings ); + + if ( isset( $settings['__globals__'] ) ) { + $settings = $this->check_global_styles( $settings ); + } + + return $settings; + } + + /** + * Remove empty settings. + * + * @since 1.9.6 + * + * @param mixed $settings Widget settings. + * + * @return mixed Updated settings. + */ + private function remove_empty_settings( $settings ) { + + if ( ! is_array( $settings ) ) { + return $settings; + } + + return array_filter( + $settings, + static function ( $value ) { + + return ! empty( $value ); + } + ); + } + + /** + * Apply complex settings values. + * + * @since 1.9.6 + * + * @param mixed $settings Widget settings. + * + * @return mixed Updated settings. + */ + private function apply_complex_settings( $settings ) { + + if ( isset( $settings['backgroundUrl'] ) && is_array( $settings['backgroundUrl'] ) ) { + $image_url = $settings['backgroundUrl']['url'] ?? ''; + $settings['backgroundUrl'] = 'url( ' . $image_url . ' )'; + } + + if ( isset( $settings['backgroundSize'] ) && $settings['backgroundSize'] === 'dimensions' ) { + $bg_width = $settings['backgroundWidth'] ?? CSSVars::ROOT_VARS['background-width']; + $bg_height = $settings['backgroundHeight'] ?? CSSVars::ROOT_VARS['background-height']; + + $settings['backgroundSize'] = "{$bg_width} {$bg_height}"; + } + + return $settings; + } + + /** + * Apply dimension settings with pixel units. + * + * @since 1.9.6 + * + * @param mixed $settings Widget settings. + * + * @return mixed Updated settings with dimension values. + */ + private function apply_dimension_settings( $settings ) { + + $dimension_properties = [ + 'fieldBorderRadius' => 'field-border-radius', + 'fieldBorderSize' => 'field-border-size', + 'buttonBorderRadius' => 'button-border-radius', + 'buttonBorderSize' => 'button-border-size', + 'containerPadding' => 'container-padding', + 'containerBorderWidth' => 'container-border-width', + 'containerBorderRadius' => 'container-border-radius', + 'backgroundWidth' => 'background-width', + 'backgroundHeight' => 'background-height', + ]; + + foreach ( $dimension_properties as $property => $root_var ) { + if ( ! isset( $settings[ $property ] ) ) { + $settings[ $property ] = CSSVars::ROOT_VARS[ $root_var ]; + + continue; + } + + $value = (string) $settings[ $property ]; + + if ( $value !== '' && substr( $value, -2 ) !== 'px' ) { + $settings[ $property ] = $value . 'px'; + } + } + + return $settings; + } + + /** + * Check if global styles are used in colors controls and update its values with the real ones. + * + * @since 1.8.3 + * + * @param mixed $settings Widget settings. + * + * @return mixed Updated settings. + */ + private function check_global_styles( $settings ) { + + $global_settings = $settings['__globals__'] ?? []; + $kit = Plugin::$instance->kits_manager->get_active_kit_for_frontend(); + $system_colors = $kit->get_settings_for_display( 'system_colors' ); + $custom_colors = $kit->get_settings_for_display( 'custom_colors' ); + $global_colors = array_merge( $system_colors, $custom_colors ); + + foreach ( $global_settings as $key => $value ) { + if ( empty( $value ) ) { + continue; + } + + $color_id = str_replace( 'globals/colors?id=', '', $value ); + + foreach ( $global_colors as $color ) { + if ( $color['_id'] === $color_id ) { + $settings[ $key ] = $color['color']; + } + } + } + + return $settings; + } + + /** + * Check if the user is an admin. + * + * @since 1.9.6 + * + * @return bool True if the user is an admin, false otherwise. + */ + private function is_admin(): bool { + + return current_user_can( 'manage_options' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/FormSelector.php b/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/FormSelector.php new file mode 100644 index 0000000..121d91c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/FormSelector.php @@ -0,0 +1,1062 @@ + '', + 'displayTitle' => false, + 'displayDesc' => false, + 'theme' => '', + 'themeName' => '', + 'fieldSize' => 'medium', + 'backgroundImage' => CSSVars::ROOT_VARS['background-image'], + 'backgroundPosition' => CSSVars::ROOT_VARS['background-position'], + 'backgroundRepeat' => CSSVars::ROOT_VARS['background-repeat'], + 'backgroundSizeMode' => CSSVars::ROOT_VARS['background-size'], + 'backgroundSize' => CSSVars::ROOT_VARS['background-size'], + 'backgroundWidth' => CSSVars::ROOT_VARS['background-width'], + 'backgroundHeight' => CSSVars::ROOT_VARS['background-height'], + 'backgroundUrl' => CSSVars::ROOT_VARS['background-url'], + 'backgroundColor' => CSSVars::ROOT_VARS['background-color'], + 'fieldBorderRadius' => CSSVars::ROOT_VARS['field-border-radius'], + 'fieldBorderStyle' => CSSVars::ROOT_VARS['field-border-style'], + 'fieldBorderSize' => CSSVars::ROOT_VARS['field-border-size'], + 'fieldBackgroundColor' => CSSVars::ROOT_VARS['field-background-color'], + 'fieldBorderColor' => CSSVars::ROOT_VARS['field-border-color'], + 'fieldTextColor' => CSSVars::ROOT_VARS['field-text-color'], + 'fieldMenuColor' => CSSVars::ROOT_VARS['field-menu-color'], + 'labelSize' => 'medium', + 'labelColor' => CSSVars::ROOT_VARS['label-color'], + 'labelSublabelColor' => CSSVars::ROOT_VARS['label-sublabel-color'], + 'labelErrorColor' => CSSVars::ROOT_VARS['label-error-color'], + 'buttonSize' => 'medium', + 'buttonBorderStyle' => CSSVars::ROOT_VARS['button-border-style'], + 'buttonBorderSize' => CSSVars::ROOT_VARS['button-border-size'], + 'buttonBorderRadius' => CSSVars::ROOT_VARS['button-border-radius'], + 'buttonBackgroundColor' => CSSVars::ROOT_VARS['button-background-color'], + 'buttonTextColor' => CSSVars::ROOT_VARS['button-text-color'], + 'buttonBorderColor' => CSSVars::ROOT_VARS['button-border-color'], + 'pageBreakColor' => CSSVars::ROOT_VARS['page-break-color'], + 'containerPadding' => CSSVars::ROOT_VARS['container-padding'], + 'containerBorderStyle' => CSSVars::ROOT_VARS['container-border-style'], + 'containerBorderWidth' => CSSVars::ROOT_VARS['container-border-width'], + 'containerBorderColor' => CSSVars::ROOT_VARS['container-border-color'], + 'containerBorderRadius' => CSSVars::ROOT_VARS['container-border-radius'], + 'containerShadowSize' => CSSVars::CONTAINER_SHADOW_SIZE['none']['box-shadow'], + 'customCss' => '', + 'copyPasteJsonValue' => '', + ]; + + /** + * Rest API class instance. + * + * @since 1.8.8 + * + * @var RestApi + */ + protected $rest_api_obj; + + /** + * Rest API class instance. + * + * @since 1.8.8 + * + * @var ThemesData + */ + protected $themes_data_obj; + + /** + * Render engine. + * + * @since 1.8.1 + * + * @var string + */ + protected $render_engine; + + /** + * Disabled CSS setting. + * + * @since 1.8.1 + * + * @var integer + */ + protected $disable_css_setting; + + /** + * Instance of CSSVars class. + * + * @since 1.8.1 + * + * @var CSSVars + */ + private $css_vars_obj; + + /** + * Callbacks registered for wpforms_frontend_container_class filter. + * + * @since 1.7.5 + * + * @var array + */ + private $callbacks = []; + + /** + * Currently displayed form ID. + * + * @since 1.8.8 + * + * @var string|int + */ + private $current_form_id = 0; + + /** + * Indicate if the current integration is allowed to load. + * + * @since 1.4.8 + * + * @return bool + */ + public function allow_load(): bool { + + return function_exists( 'register_block_type' ); + } + + /** + * Load an integration. + * + * @since 1.4.8 + */ + public function load() { + + $this->render_engine = wpforms_get_render_engine(); + $this->disable_css_setting = (int) wpforms_setting( 'disable-css', '1' ); + $this->css_vars_obj = wpforms()->obj( 'css_vars' ); + + wpforms()->register_instance( 'formselector_themes_data', $this->themes_data_obj ); + + $this->hooks(); + } + + /** + * Integration hooks. + * + * @since 1.4.8 + */ + protected function hooks() { + + add_action( 'init', [ $this, 'register_block' ] ); + add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_block_editor_assets' ] ); + add_action( 'wpforms_frontend_output_container_after', [ $this, 'replace_wpforms_frontend_container_class_filter' ] ); + add_filter( 'wpforms_frontend_form_action', [ $this, 'form_action_filter' ], 10, 2 ); + add_filter( 'wpforms_forms_anti_spam_v3_is_honeypot_enabled', [ $this, 'filter_is_honeypot_enabled' ] ); + add_filter( 'wpforms_field_richtext_display_editor_is_media_enabled', [ $this, 'disable_richtext_media' ], 10, 2 ); + } + + /** + * Disable honeypot in Gutenberg/Block editor. + * + * @since 1.9.0 + * + * @param bool|mixed $is_enabled True if the honeypot is enabled, false otherwise. + * + * @return bool Whether to disable the honeypot. + */ + public function filter_is_honeypot_enabled( $is_enabled ): bool { + + if ( wpforms_is_wpforms_rest() ) { + return false; + } + + return (bool) $is_enabled; + } + + /** + * Replace the filter registered for wpforms_frontend_container_class. + * + * @since 1.7.5 + * + * @param array $form_data Form data. + * + * @return void + */ + public function replace_wpforms_frontend_container_class_filter( array $form_data ): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( empty( $this->callbacks[ $form_data['id'] ] ) ) { + return; + } + + $callback = array_shift( $this->callbacks[ $form_data['id'] ] ); + + remove_filter( 'wpforms_frontend_container_class', $callback ); + + if ( ! empty( $this->callbacks[ $form_data['id'] ] ) ) { + add_filter( 'wpforms_frontend_container_class', reset( $this->callbacks[ $form_data['id'] ] ), 10, 2 ); + } + } + + /** + * Register WPForms Gutenberg block on the backend. + * + * @since 1.4.8 + */ + public function register_block(): void { + + $type_string = [ 'type' => 'string' ]; + $type_boolean = [ 'type' => 'boolean' ]; + + $attributes = [ + 'clientId' => $type_string, + 'formId' => $type_string, + 'displayTitle' => $type_boolean, + 'displayDesc' => $type_boolean, + 'className' => $type_string, + 'theme' => $type_string, + 'themeName' => $type_string, + 'fieldSize' => $type_string, + 'fieldBorderRadius' => $type_string, + 'fieldBorderStyle' => $type_string, + 'fieldBorderSize' => $type_string, + 'fieldBackgroundColor' => $type_string, + 'fieldBorderColor' => $type_string, + 'fieldTextColor' => $type_string, + 'fieldMenuColor' => $type_string, + 'labelSize' => $type_string, + 'labelColor' => $type_string, + 'labelSublabelColor' => $type_string, + 'labelErrorColor' => $type_string, + 'buttonSize' => $type_string, + 'buttonBorderStyle' => $type_string, + 'buttonBorderSize' => $type_string, + 'buttonBorderRadius' => $type_string, + 'buttonBackgroundColor' => $type_string, + 'buttonBorderColor' => $type_string, + 'buttonTextColor' => $type_string, + 'pageBreakColor' => $type_string, + 'backgroundImage' => $type_string, + 'backgroundPosition' => $type_string, + 'backgroundRepeat' => $type_string, + 'backgroundSizeMode' => $type_string, + 'backgroundSize' => $type_string, + 'backgroundWidth' => $type_string, + 'backgroundHeight' => $type_string, + 'backgroundUrl' => $type_string, + 'backgroundColor' => $type_string, + 'containerPadding' => $type_string, + 'containerBorderStyle' => $type_string, + 'containerBorderWidth' => $type_string, + 'containerBorderColor' => $type_string, + 'containerBorderRadius' => $type_string, + 'containerShadowSize' => $type_string, + 'customCss' => $type_string, + 'copyPasteJsonValue' => $type_string, + ]; + + $this->register_styles(); + + /** + * Modify WPForms block attributes. + * + * @since 1.5.8.2 + * + * @param array $attributes Attributes. + */ + $attributes = apply_filters( 'wpforms_gutenberg_form_selector_attributes', $attributes ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + register_block_type( + 'wpforms/form-selector', + [ + 'api_version' => $this->get_block_api_version(), + 'attributes' => $attributes, + 'style' => 'wpforms-gutenberg-form-selector', + 'editor_style' => 'wpforms-integrations', + 'render_callback' => [ $this, 'get_form_html' ], + ] + ); + } + + /** + * Register WPForms Gutenberg block styles. + * + * @since 1.7.4.2 + */ + protected function register_styles() { + + if ( ! is_admin() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_register_style( + 'wpforms-integrations', + WPFORMS_PLUGIN_URL . "assets/css/admin-integrations{$min}.css", + [ 'dashicons' ], + WPFORMS_VERSION + ); + + if ( $this->disable_css_setting === 3 ) { + return; + } + + $css_file = $this->disable_css_setting === 2 ? 'base' : 'full'; + $handle = 'wpforms-gutenberg-form-selector'; + + wp_register_style( + $handle, + WPFORMS_PLUGIN_URL . "assets/css/frontend/{$this->render_engine}/wpforms-{$css_file}{$min}.css", + [ 'wp-edit-blocks', 'wpforms-integrations' ], + WPFORMS_VERSION + ); + + // Add root CSS variables for the Modern Markup mode for full styles. + if ( empty( $this->css_vars_obj ) || $this->render_engine !== 'modern' || $css_file !== 'full' ) { + return; + } + + wp_add_inline_style( $handle, $this->css_vars_obj->get_root_vars_css() ); + } + + /** + * Load WPForms Gutenberg block scripts. + * + * @since 1.4.8 + */ + public function enqueue_block_editor_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( 'wpforms-integrations' ); + + wp_set_script_translations( 'wpforms-gutenberg-form-selector', 'wpforms-lite' ); + + // jQuery.Confirm Reloaded. + wp_enqueue_style( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.css', + null, + '1.0.0' + ); + + wp_enqueue_script( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.js', + [ 'jquery' ], + '1.0.0', + false + ); + + // Support for the legacy form selector. + // It is located in the common namespace. + if ( $this->is_legacy_block() ) { + wp_enqueue_script( + 'wpforms-gutenberg-form-selector', + WPFORMS_PLUGIN_URL . "assets/js/integrations/gutenberg/formselector-legacy.es5{$min}.js", + [ 'wp-blocks', 'wp-i18n', 'wp-element', 'jquery' ], + WPFORMS_VERSION, + true + ); + + return; + } + + if ( $this->render_engine === 'modern' ) { + wp_enqueue_script( + 'wpforms-modern', + WPFORMS_PLUGIN_URL . "assets/js/frontend/wpforms-modern{$min}.js", + [ 'wpforms-gutenberg-form-selector' ], + WPFORMS_VERSION, + true + ); + } + + wp_enqueue_script( + 'wpforms-admin-education-core', + WPFORMS_PLUGIN_URL . "assets/js/admin/education/core{$min}.js", + [ 'jquery', 'jquery-confirm' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-admin-education-core', + 'wpforms_education', + $this->get_js_strings() + ); + } + + /** + * Whether the block is legacy. + * + * @since 1.8.8 + */ + protected function is_legacy_block() { + + return version_compare( $GLOBALS['wp_version'], '6.0', '<' ); + } + + /** + * Get localize data. + * + * @since 1.8.1 + * + * @return array + */ + public function get_localize_data(): array { + + $strings = [ + 'title' => esc_html__( 'WPForms', 'wpforms-lite' ), + 'description' => esc_html__( 'Select and display one of your forms.', 'wpforms-lite' ), + 'form_keywords' => [ + esc_html__( 'form', 'wpforms-lite' ), + esc_html__( 'contact', 'wpforms-lite' ), + esc_html__( 'survey', 'wpforms-lite' ), + ], + 'form_select' => esc_html__( 'Select a Form', 'wpforms-lite' ), + 'form_settings' => esc_html__( 'Form Settings', 'wpforms-lite' ), + 'form_edit' => esc_html__( 'Edit Form', 'wpforms-lite' ), + 'form_entries' => esc_html__( 'View Entries', 'wpforms-lite' ), + 'themes' => esc_html__( 'Themes', 'wpforms-lite' ), + 'theme_name' => esc_html__( 'Theme Name', 'wpforms-lite' ), + 'theme_delete' => esc_html__( 'Delete Theme', 'wpforms-lite' ), + 'theme_delete_title' => esc_html__( 'Delete Form Theme', 'wpforms-lite' ), + // Translators: %1$s: Theme name. + 'theme_delete_confirm' => esc_html__( 'Are you sure you want to delete the %1$s theme?', 'wpforms-lite' ), + 'theme_delete_cant_undone' => esc_html__( 'This cannot be undone.', 'wpforms-lite' ), + 'theme_delete_yes' => esc_html__( 'Yes, Delete', 'wpforms-lite' ), + 'theme_copy' => esc_html__( 'Copy', 'wpforms-lite' ), + 'theme_custom' => esc_html__( 'Custom Theme', 'wpforms-lite' ), + 'theme_noname' => esc_html__( 'Noname Theme', 'wpforms-lite' ), + 'field_styles' => esc_html__( 'Field Styles', 'wpforms-lite' ), + 'field_label' => esc_html__( 'Field Label', 'wpforms-lite' ), + 'field_sublabel' => esc_html__( 'Field Sublabel', 'wpforms-lite' ), + 'field_border' => esc_html__( 'Field Border', 'wpforms-lite' ), + 'label_styles' => esc_html__( 'Label Styles', 'wpforms-lite' ), + 'button_background' => esc_html__( 'Button Background', 'wpforms-lite' ), + 'button_text' => esc_html__( 'Button Text', 'wpforms-lite' ), + 'button_styles' => esc_html__( 'Button Styles', 'wpforms-lite' ), + 'container_styles' => esc_html__( 'Container Styles', 'wpforms-lite' ), + 'background_styles' => esc_html__( 'Background Styles', 'wpforms-lite' ), + 'remove_image' => esc_html__( 'Remove Image', 'wpforms-lite' ), + 'position' => esc_html__( 'Position', 'wpforms-lite' ), + 'top_left' => esc_html__( 'Top Left', 'wpforms-lite' ), + 'top_center' => esc_html__( 'Top Center', 'wpforms-lite' ), + 'top_right' => esc_html__( 'Top Right', 'wpforms-lite' ), + 'center_left' => esc_html__( 'Center Left', 'wpforms-lite' ), + 'center_center' => esc_html__( 'Center Center', 'wpforms-lite' ), + 'center_right' => esc_html__( 'Center Right', 'wpforms-lite' ), + 'bottom_left' => esc_html__( 'Bottom Left', 'wpforms-lite' ), + 'bottom_center' => esc_html__( 'Bottom Center', 'wpforms-lite' ), + 'bottom_right' => esc_html__( 'Bottom Right', 'wpforms-lite' ), + 'repeat' => esc_html__( 'Repeat', 'wpforms-lite' ), + 'no_repeat' => esc_html__( 'No Repeat', 'wpforms-lite' ), + 'repeat_x' => esc_html__( 'Repeat Horizontal', 'wpforms-lite' ), + 'repeat_y' => esc_html__( 'Repeat Vertical', 'wpforms-lite' ), + 'tile' => esc_html__( 'Tile', 'wpforms-lite' ), + 'cover' => esc_html__( 'Cover', 'wpforms-lite' ), + 'dimensions' => esc_html__( 'Dimensions', 'wpforms-lite' ), + 'width' => esc_html__( 'Width', 'wpforms-lite' ), + 'height' => esc_html__( 'Height', 'wpforms-lite' ), + 'button_color_notice' => esc_html__( 'Also used for other fields like Multiple Choice, Checkboxes, Rating, and NPS Survey.', 'wpforms-lite' ), + 'advanced' => esc_html__( 'Advanced', 'wpforms-lite' ), + 'additional_css_classes' => esc_html__( 'Additional CSS Classes', 'wpforms-lite' ), + 'form_selected' => esc_html__( 'Form', 'wpforms-lite' ), + 'show_title' => esc_html__( 'Show Title', 'wpforms-lite' ), + 'show_description' => esc_html__( 'Show Description', 'wpforms-lite' ), + 'panel_notice_head' => esc_html__( 'Heads up!', 'wpforms-lite' ), + 'panel_notice_text' => esc_html__( 'Do not forget to test your form.', 'wpforms-lite' ), + 'panel_notice_link' => esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-properly-test-your-wordpress-forms-before-launching-checklist/', 'gutenberg' ) ), + 'panel_notice_link_text' => esc_html__( 'Check out our complete guide!', 'wpforms-lite' ), + 'update_wp_notice_head' => esc_html__( 'Want to customize your form styles without editing CSS?', 'wpforms-lite' ), + 'update_wp_notice_text' => esc_html__( 'Update WordPress to the latest version to use our modern markup and unlock the controls below.', 'wpforms-lite' ), + 'update_wp_notice_link' => esc_url( wpforms_utm_link( 'https://wpforms.com/docs/styling-your-forms/', 'Block Settings', 'Form Styles Documentation' ) ), + 'learn_more' => esc_html__( 'Learn more', 'wpforms-lite' ), + 'use_modern_notice_head' => esc_html__( 'Want to customize your form styles without editing CSS?', 'wpforms-lite' ), + 'use_modern_notice_text' => esc_html__( 'Enable modern markup in your WPForms settings to unlock the controls below.', 'wpforms-lite' ), + 'use_modern_notice_link' => esc_url( wpforms_utm_link( 'https://wpforms.com/docs/styling-your-forms/', 'Block Settings', 'Form Styles Documentation' ) ), + 'lead_forms_panel_notice_head' => esc_html__( 'Form Styles are disabled because Lead Form Mode is turned on.', 'wpforms-lite' ), + 'lead_forms_panel_notice_text' => esc_html__( 'To change the styling for this form, open it in the form builder and edit the options in the Lead Forms settings.', 'wpforms-lite' ), + 'size' => esc_html__( 'Size', 'wpforms-lite' ), + 'padding' => esc_html__( 'Padding', 'wpforms-lite' ), + 'background' => esc_html__( 'Background', 'wpforms-lite' ), + 'border' => esc_html__( 'Border', 'wpforms-lite' ), + 'text' => esc_html__( 'Text', 'wpforms-lite' ), + 'menu' => esc_html__( 'Menu', 'wpforms-lite' ), + 'image' => esc_html__( 'Image', 'wpforms-lite' ), + 'media_library' => esc_html__( 'Media Library', 'wpforms-lite' ), + 'choose_image' => esc_html__( 'Choose Image', 'wpforms-lite' ), + 'stock_photo' => esc_html__( 'Stock Photo', 'wpforms-lite' ), + 'border_radius' => esc_html__( 'Border Radius', 'wpforms-lite' ), + 'border_size' => esc_html__( 'Border Size', 'wpforms-lite' ), + 'border_style' => esc_html__( 'Border Style', 'wpforms-lite' ), + 'none' => esc_html__( 'None', 'wpforms-lite' ), + 'solid' => esc_html__( 'Solid', 'wpforms-lite' ), + 'dashed' => esc_html__( 'Dashed', 'wpforms-lite' ), + 'dotted' => esc_html__( 'Dotted', 'wpforms-lite' ), + 'double' => esc_html__( 'Double', 'wpforms-lite' ), + 'shadow_size' => esc_html__( 'Shadow', 'wpforms-lite' ), + 'border_width' => esc_html__( 'Border Size', 'wpforms-lite' ), + 'border_color' => esc_html__( 'Border', 'wpforms-lite' ), + 'colors' => esc_html__( 'Colors', 'wpforms-lite' ), + 'label' => esc_html__( 'Label', 'wpforms-lite' ), + 'sublabel_hints' => esc_html__( 'Sublabel & Hint', 'wpforms-lite' ), + 'error_message' => esc_html__( 'Error Message', 'wpforms-lite' ), + 'small' => esc_html__( 'Small', 'wpforms-lite' ), + 'medium' => esc_html__( 'Medium', 'wpforms-lite' ), + 'large' => esc_html__( 'Large', 'wpforms-lite' ), + 'btn_yes' => esc_html__( 'Yes', 'wpforms-lite' ), + 'btn_no' => esc_html__( 'No', 'wpforms-lite' ), + 'copy_paste_settings' => esc_html__( 'Copy / Paste Style Settings', 'wpforms-lite' ), + 'copy_paste_error' => esc_html__( 'There was an error parsing your JSON code. Please check your code and try again.', 'wpforms-lite' ), + 'copy_paste_notice' => esc_html__( 'If you\'ve copied style settings from another form, you can paste them here to add the same styling to this form. Any current style settings will be overwritten.', 'wpforms-lite' ), + 'custom_css' => esc_html__( 'Custom CSS', 'wpforms-lite' ), + 'custom_css_notice' => esc_html__( 'Further customize the look of this form without having to edit theme files.', 'wpforms-lite' ), + // Translators: %1$s: Opening strong tag, %2$s: Closing strong tag. + 'wpforms_empty_info' => sprintf( esc_html__( 'You can use %1$sWPForms%2$s to build contact forms, surveys, payment forms, and more with just a few clicks.', 'wpforms-lite' ), '','' ), + // Translators: %1$s: Opening anchor tag, %2$s: Closing anchor tag. + 'wpforms_empty_help' => sprintf( esc_html__( 'Need some help? Check out our %1$scomprehensive guide.%2$s', 'wpforms-lite' ), '','' ), + 'other_styles' => esc_html__( 'Other Styles', 'wpforms-lite' ), + 'page_break' => esc_html__( 'Page Break', 'wpforms-lite' ), + 'rating' => esc_html__( 'Rating', 'wpforms-lite' ), + 'heads_up' => esc_html__( 'Heads Up!', 'wpforms-lite' ), + 'form_not_available_message' => esc_html__( 'It looks like the form you had selected is in the Trash or has been permanently deleted.', 'wpforms-lite' ), + ]; + + return [ + 'logo_url' => WPFORMS_PLUGIN_URL . 'assets/images/wpforms-logo.svg', + 'block_preview_url' => WPFORMS_PLUGIN_URL . 'assets/images/integrations/gutenberg/block-preview.png', + 'block_empty_url' => WPFORMS_PLUGIN_URL . 'assets/images/empty-states/no-forms.svg', + 'route_namespace' => RestApi::ROUTE_NAMESPACE, + 'wpnonce' => wp_create_nonce( 'wpforms-gutenberg-form-selector' ), + 'urls' => [ + 'form_url' => admin_url( 'admin.php?page=wpforms-builder&view=fields&form_id={ID}' ), + 'entries_url' => admin_url( 'admin.php?view=list&page=wpforms-entries&form_id={ID}' ), + ], + 'forms' => $this->get_form_list(), + 'strings' => $strings, + 'isAdmin' => current_user_can( 'manage_options' ), + 'isPro' => wpforms()->is_pro(), + 'defaults' => self::DEFAULT_ATTRIBUTES, + 'is_modern_markup' => $this->render_engine === 'modern', + 'is_full_styling' => $this->disable_css_setting === 1, + 'wpforms_guide' => esc_url( wpforms_utm_link( 'https://wpforms.com/docs/creating-first-form/', 'gutenberg', 'Create Your First Form Documentation' ) ), + 'get_started_url' => esc_url( admin_url( 'admin.php?page=wpforms-builder' ) ), + 'sizes' => [ + 'field-size' => CSSVars::FIELD_SIZE, + 'label-size' => CSSVars::LABEL_SIZE, + 'button-size' => CSSVars::BUTTON_SIZE, + 'container-shadow-size' => CSSVars::CONTAINER_SHADOW_SIZE, + ], + ]; + } + + /** + * Get the form list. + * + * @since 1.8.8 + * + * @return array + * @noinspection NullPointerExceptionInspection + */ + public function get_form_list(): array { + + $forms = wpforms()->obj( 'form' )->get( '', [ 'order' => 'DESC' ] ); + + if ( empty( $forms ) ) { + return []; + } + + return array_map( + static function ( $form ) { + $form->post_title = htmlspecialchars_decode( $form->post_title, ENT_QUOTES ); + $max_length = 47; + $form->post_title = trim( mb_substr( trim( $form->post_title ), 0, $max_length ) ); + $form->post_title = mb_strlen( $form->post_title ) === $max_length ? $form->post_title . '…' : $form->post_title; + + return $form; + }, + $forms + ); + } + + /** + * Filter form action. + * + * @since 1.8.8 + * + * @param string|mixed $action Form action. + * @param array|mixed $form_data Form data. + * + * @return string + * @noinspection PhpUnusedParameterInspection + */ + public function form_action_filter( $action, $form_data ): string { + + if ( $this->is_gb_editor() ) { + + // Remove inappropriate form action URL that contains all the block attributes. + $action = ''; + } + + return (string) $action; + } + + /** + * Get form HTML to display in a WPForms Gutenberg block. + * + * @since 1.4.8 + * + * @param array|mixed $attr Attributes passed by WPForms Gutenberg block. + * + * @return string + */ + public function get_form_html( $attr ): string { + + $attr = (array) $attr; + + $id = ! empty( $attr['formId'] ) ? absint( $attr['formId'] ) : 0; + + $this->current_form_id = $id; + + if ( empty( $id ) ) { + return ''; + } + + if ( $this->is_gb_editor() ) { + $this->disable_fields_in_gb_editor(); + } + + $title = ! empty( $attr['displayTitle'] ); + $desc = ! empty( $attr['displayDesc'] ); + + $this->add_class_callback( $id, $attr ); + + // Maybe override block attributes with the theme settings. + $attr = $this->maybe_override_block_attributes( $attr ); + + // Get block content. + $content = $this->get_content( $id, $title, $desc, $attr ); + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Filter Gutenberg block content. + * + * @since 1.5.8.2 + * + * @param string $content Block content. + * @param int $id Form id. + */ + return (string) apply_filters( 'wpforms_gutenberg_block_form_content', $content, $id ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Maybe override block attributes. + * + * This method is used to override block attributes with the theme settings. + * + * @since 1.8.8 + * + * @param array $attr Attributes passed by WPForms Gutenberg block. + * + * @return array + */ + private function maybe_override_block_attributes( array $attr ): array { + + $theme_slug = (string) ( $attr['theme'] ?? '' ); + + // Previously added blocks (FS 1.0) don't have the themeName attribute. + // To preserve existing styling of such old blocks, we shouldn't override attributes. + if ( ! isset( $attr['themeName'] ) || ( empty( $attr['themeName'] ) && $theme_slug === 'default' ) ) { + return $attr; + } + + if ( $theme_slug === '' ) { + $theme_slug = $this->get_theme_slug( $attr ); + } + + $theme_data = $this->themes_data_obj->get_theme( $theme_slug ); + + // Theme doesn't exist, let's return. + if ( ! $theme_data ) { + return $attr; + } + + // Override block attributes with the theme settings. + return array_merge( $attr, $theme_data['settings'] ); + } + + /** + * Get the theme slug. + * + * @since 1.9.7 + * + * @param array $attr Attributes passed by WPForms Gutenberg block. + * + * @return string + */ + private function get_theme_slug( array $attr ): string { + + $form_handler = wpforms()->obj( 'form' ); + + if ( ! $form_handler ) { + return 'default'; + } + + $form_id = (int) $attr['formId']; + $form_data = $form_handler->get( $form_id, [ 'content_only' => true ] ); + + if ( empty( $form_data['settings']['themes']['wpformsTheme'] ) ) { + return 'default'; + } + + return $form_data['settings']['themes']['wpformsTheme']; + } + + /** + * Add class callback. + * + * @since 1.8.1 + * + * @param int $id Form id. + * @param array $attr Form attributes. + * + * @return void + */ + private function add_class_callback( int $id, array $attr ): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + $class_callback = static function ( $classes, $form_data ) use ( $id, $attr ) { + + if ( (int) $form_data['id'] !== $id ) { + return $classes; + } + + $cls = []; + + // Add custom class to form container. + if ( ! empty( $attr['className'] ) ) { + $cls = array_map( 'esc_attr', explode( ' ', $attr['className'] ) ); + } + + // Add classes to identify that the form displays inside the block. + $cls[] = 'wpforms-block'; + + if ( ! empty( $attr['clientId'] ) ) { + $cls[] = 'wpforms-block-' . $attr['clientId']; + } + + return array_unique( array_merge( $classes, $cls ) ); + }; + + if ( empty( $this->callbacks[ $id ] ) ) { + add_filter( 'wpforms_frontend_container_class', $class_callback, 10, 2 ); + } + + $this->callbacks[ $id ][] = $class_callback; + } + + /** + * Get content. + * + * @since 1.8.1 + * + * @param int $id Form id. + * @param bool $title Form title is not empty. + * @param bool $desc Form desc is not empty. + * @param array $attr Form attributes. + * + * @return string + * @noinspection JSUnresolvedReference + */ + private function get_content( int $id, bool $title, bool $desc, array $attr ): string { + + /** + * Filter allow render block content flag. + * + * @since 1.8.8 + * + * @param bool $allow_render Allow render flag. Defaults to `true`. + */ + $allow_render = (bool) apply_filters( 'wpforms_integrations_gutenberg_form_selector_allow_render', true ); + + if ( ! $allow_render ) { + return ''; + } + + ob_start(); + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + + /** + * Fires before Gutenberg block output. + * + * @since 1.5.8.2 + */ + do_action( 'wpforms_gutenberg_block_before' ); + + /** + * Filter block title display flag. + * + * @since 1.5.8.2 + * + * @param bool $title Title display flag. + * @param int $id Form id. + */ + $title = (bool) apply_filters( 'wpforms_gutenberg_block_form_title', $title, $id ); + + /** + * Filter block description display flag. + * + * @since 1.5.8.2 + * + * @param bool $desc Description display flag. + * @param int $id Form id. + */ + $desc = (bool) apply_filters( 'wpforms_gutenberg_block_form_desc', $desc, $id ); + + $this->output_css_vars( $attr ); + $this->output_custom_css( $attr ); + + wpforms_display( $id, $title, $desc ); + + /** + * Fires after Gutenberg block output. + * + * @since 1.5.8.2 + */ + do_action( 'wpforms_gutenberg_block_after' ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $content = (string) ob_get_clean(); + + if ( ! $this->is_gb_editor() ) { + return $content; + } + + if ( empty( $content ) ) { + return '
              ' . + '
              ' . + esc_html__( 'The form cannot be displayed.', 'wpforms-lite' ) . + '
              '; + } + + /** + * Unfortunately, the inline 'script' tag cannot be executed in the GB editor. + * This is the hacky way to trigger custom event on form loaded in the Block Editor / GB / FSE. + */ + + // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_var_export + $content .= sprintf( + // language=JavaScript + '', + absint( $id ), + var_export( $title, true ), + var_export( $desc, true ) + ); + + // phpcs:enable WordPress.PHP.DevelopmentFunctions.error_log_var_export + + return $content; + } + + /** + * Checking if is Gutenberg REST API call. + * + * @since 1.5.7 + * + * @return bool True if is Gutenberg REST API call. + */ + public function is_gb_editor(): bool { + + // TODO: Find a better way to check if is GB editor API call. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && $_REQUEST['context'] === 'edit'; + } + + /** + * Disable form fields if called from the Gutenberg editor. + * + * @since 1.7.5 + * + * @return void + */ + private function disable_fields_in_gb_editor(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + add_filter( + 'wpforms_frontend_container_class', + static function ( $classes ) { + + $classes[] = 'wpforms-gutenberg-form-selector'; + + return $classes; + } + ); + add_action( + 'wpforms_frontend_output', + static function () { + + echo '
              '; + }, + 3 + ); + add_action( + 'wpforms_frontend_output', + static function () { + + echo '
              '; + }, + 30 + ); + } + + /** + * Output CSS variables for the particular form. + * + * @since 1.8.1 + * + * @param array $attr Attributes passed by WPForms Gutenberg block. + */ + private function output_css_vars( array $attr ): void { + + if ( empty( $this->css_vars_obj ) || ! method_exists( $this->css_vars_obj, 'get_vars' ) ) { + return; + } + + if ( $this->render_engine === 'classic' || $this->disable_css_setting !== 1 ) { + return; + } + + $css_vars = $this->css_vars_obj->get_customized_css_vars( $attr ); + + if ( empty( $css_vars ) ) { + return; + } + + $style_id = "#wpforms-css-vars-{$attr['formId']}-block-{$attr['clientId']}"; + + /** + * Filter the CSS selector for output CSS variables for styling the GB block form. + * + * @since 1.8.1 + * + * @param string $selector The CSS selector for output CSS variables for styling the GB block form. + * @param array $attr Attributes passed by WPForms Gutenberg block. + * @param array $css_vars CSS variables data. + */ + $vars_selector = apply_filters( + 'wpforms_integrations_gutenberg_form_selector_output_css_vars_selector', + "#wpforms-{$attr['formId']}.wpforms-block-{$attr['clientId']}", + $attr, + $css_vars + ); + + $style_id = rtrim( $style_id, '-' ); + $vars_selector = rtrim( $vars_selector, '-' ); + + $this->css_vars_obj->output_selector_vars( $vars_selector, $css_vars, $style_id, $this->current_form_id ); + } + + /** + * Output custom CSS styles. + * + * @since 1.8.8 + * + * @param array $attr Attributes passed by WPForms Gutenberg block. + */ + private function output_custom_css( array $attr ): void { + + if ( wpforms_get_render_engine() === 'classic' ) { + return; + } + + $custom_css = trim( $attr['customCss'] ?? '' ); + + if ( empty( $custom_css ) ) { + return; + } + + $style_id = "#wpforms-custom-css-{$attr['formId']}-block-{$attr['clientId']}"; + + printf( + '', + sanitize_key( $style_id ), + wp_strip_all_tags( $custom_css ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + ); + } + + /** + * Disable loading media for the richtext editor for edit action to prevent script conflicts. + * + * @since 1.9.1 + * + * @param bool|mixed $media_enabled Whether to enable media. + * @param array $field Field data. + * + * @return bool + * @noinspection PhpUnusedParameterInspection + */ + public function disable_richtext_media( $media_enabled, array $field ): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] === 'edit' && is_admin() ) { + return false; + } + + return (bool) $media_enabled; + } + + /** + * Get block API version based on WP core version. + * + * @since 1.9.3 + * + * @return int Block API version. + */ + private function get_block_api_version(): int { + + if ( $this->is_legacy_block() ) { + return 1; + } + + return version_compare( $GLOBALS['wp_version'], '6.3', '<' ) ? 2 : 3; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/RestApi.php b/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/RestApi.php new file mode 100644 index 0000000..349aac6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/RestApi.php @@ -0,0 +1,224 @@ +form_selector_obj = $form_selector_obj; + $this->themes_data_obj = $themes_data_obj; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.8 + */ + private function hooks() { + + add_action( 'rest_api_init', [ $this, 'register_api_routes' ], 20 ); + } + + /** + * Register API routes for Gutenberg block. + * + * @since 1.8.8 + */ + public function register_api_routes() { + + /** + * Register routes with WordPress. + * + * @see https://developer.wordpress.org/reference/functions/register_rest_route/ + */ + register_rest_route( + self::ROUTE_NAMESPACE, + '/forms/', + [ + 'methods' => 'GET', + 'callback' => [ $this, 'get_forms' ], + 'permission_callback' => [ $this, 'permissions_check' ], + ] + ); + + register_rest_route( + self::ROUTE_NAMESPACE, + '/themes/', + [ + 'methods' => 'GET', + 'callback' => [ $this, 'get_themes' ], + 'permission_callback' => [ $this, 'permissions_check' ], + ] + ); + + register_rest_route( + self::ROUTE_NAMESPACE, + '/themes/custom/', + [ + 'methods' => 'POST', + 'callback' => [ $this, 'save_themes' ], + 'permission_callback' => [ $this, 'admin_permissions_check' ], + ] + ); + } + + /** + * Check if a user has permission to access private data. + * + * @since 1.8.8 + * + * @see https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/#permissions-callback + * + * @return true|WP_Error True if a user has permission. + */ + public function permissions_check() { + + // Restrict endpoint to only users who have the edit_posts capability. + if ( ! current_user_can( 'edit_posts' ) ) { + return new WP_Error( 'rest_forbidden', esc_html__( 'This route is private.', 'wpforms-lite' ), [ 'status' => 401 ] ); + } + + return true; + } + + /** + * Check if a user has admin permissions. + * + * @since 1.9.2.3 + * + * @return true|WP_Error True if a user has permission. + */ + public function admin_permissions_check() { + + // Restrict endpoint to only users who have the manage_options capability. + if ( ! current_user_can( 'manage_options' ) ) { + return new WP_Error( 'rest_forbidden', esc_html__( 'This route is accessible only to administrators.', 'wpforms-lite' ), [ 'status' => 401 ] ); + } + + return true; + } + + /** + * Return form list protected WP_REST_Response object. + * + * @since 1.8.8 + * + * @return WP_Error|WP_REST_Response + */ + public function get_forms() { + + return rest_ensure_response( $this->form_selector_obj->get_form_list() ); + } + + /** + * Return themes as protected WP_REST_Response object. + * + * @since 1.8.8 + * + * @return WP_Error|WP_REST_Response + */ + public function get_themes() { + + $custom_themes = $this->themes_data_obj->get_custom_themes(); + $wpforms_themes = $this->themes_data_obj->get_wpforms_themes(); + + return rest_ensure_response( + [ + 'custom' => ! empty( $custom_themes ) ? $custom_themes : null, + 'wpforms' => ! empty( $wpforms_themes ) ? $wpforms_themes : null, + ] + ); + } + + /** + * Save custom themes. + * + * @since 1.8.8 + * + * @param WP_REST_Request $request Request object. + * + * @return WP_Error|WP_REST_Response + */ + public function save_themes( WP_REST_Request $request ) { + + // Determine custom themes file path. + $themes_file = $this->themes_data_obj->get_custom_themes_file_path(); + + // In the case of error. + if ( ! $themes_file ) { + return rest_ensure_response( + [ + 'result' => false, + 'error' => esc_html__( 'Can\'t create themes storage file.', 'wpforms-lite' ), + ] + ); + } + + $custom_themes = (array) ( $request->get_param( 'customThemes' ) ?? [] ); + + // Save custom themes data and return REST response. + $result = $this->themes_data_obj->update_custom_themes_file( $custom_themes ); + + if ( ! $result ) { + return rest_ensure_response( + [ + 'result' => false, + 'error' => esc_html__( 'Can\'t save theme data.', 'wpforms-lite' ), + ] + ); + } + + return rest_ensure_response( [ 'result' => true ] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/ThemesData.php b/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/ThemesData.php new file mode 100644 index 0000000..f032ba4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Gutenberg/ThemesData.php @@ -0,0 +1,219 @@ +wpforms_themes !== null ) { + return $this->wpforms_themes; + } + + $themes_json = File::get_contents( WPFORMS_PLUGIN_DIR . static::THEMES_WPFORMS_JSON_PATH ) ?? '{}'; + $themes = json_decode( $themes_json, true ); + + $this->wpforms_themes = ! empty( $themes ) ? $themes : []; + + return $this->wpforms_themes; + } + + /** + * Return custom themes. + * + * @since 1.8.8 + * + * @return array + */ + public function get_custom_themes(): array { + + if ( $this->custom_themes !== null ) { + return $this->custom_themes; + } + + $themes_json = File::get_contents( $this->get_custom_themes_file_path() ) ?? '{}'; + $themes = json_decode( $themes_json, true ); + + $this->custom_themes = ! empty( $themes ) ? $themes : []; + + return $this->custom_themes; + } + + /** + * Return theme data. + * + * @since 1.8.8 + * + * @param string $slug Theme slug. + * + * @return array|null + */ + public function get_theme( string $slug ) { + + $wpforms = $this->get_wpforms_themes(); + + if ( ! empty( $wpforms[ $slug ] ) ) { + return $wpforms[ $slug ]; + } + + $custom = $this->get_custom_themes(); + + if ( ! empty( $custom[ $slug ] ) ) { + return $custom[ $slug ]; + } + + return null; + } + + /** + * Get custom themes json file path. + * + * @since 1.8.8 + * + * @return string|bool File path OR false in the case of permissions error. + */ + public function get_custom_themes_file_path() { + + // Caching the file path in the class property. + if ( $this->custom_themes_file_path !== null ) { + return $this->custom_themes_file_path; + } + + // Determine custom themes file path. + $upload_dir = wpforms_upload_dir(); + $upload_path = ! empty( $upload_dir['path'] ) ? $upload_dir['path'] : WP_CONTENT_DIR . 'uploads/wpforms/'; + $upload_path = trailingslashit( wp_normalize_path( $upload_path ) ); + $file_path = $upload_path . self::THEMES_CUSTOM_JSON_PATH; + $dirname = dirname( $file_path ); + + // If the directory doesn't exist, create it. Also, check for permissions. + if ( ! wp_mkdir_p( $dirname ) ) { + $file_path = false; + } + + $this->custom_themes_file_path = $file_path; + + return $file_path; + } + + /** + * Sanitize custom themes data. + * + * @since 1.8.8 + * + * @param array $custom_themes Custom themes data. + * + * @return array + */ + private function sanitize_custom_themes_data( array $custom_themes ): array { + + $wpforms = $this->get_wpforms_themes(); + $sanitized_themes = []; + + // Get the default theme settings. + // If there are no default settings, use an empty array. This should never happen, but just in case. + $default_theme = $wpforms['default'] ?? []; + $default_theme['settings'] = $default_theme['settings'] ?? []; + + foreach ( $custom_themes as $slug => $theme ) { + $slug = sanitize_key( $slug ); + $sanitized_themes[ $slug ]['name'] = sanitize_text_field( $theme['name'] ?? 'Copy of ' . $default_theme['name'] ); + + // Fill in missed settings keys with default values. + $settings = wp_parse_args( $theme['settings'] ?? [], $default_theme['settings'] ); + + // Make sure we will save only settings that are present in the default theme. + $settings = array_intersect_key( $settings, $default_theme['settings'] ); + + // Sanitize settings. + $sanitized_themes[ $slug ]['settings'] = array_map( 'sanitize_text_field', $settings ); + } + + return $sanitized_themes; + } + + /** + * Update custom themes data. + * + * @since 1.8.8 + * + * @param array $custom_themes Custom themes data. + * + * @return bool + */ + public function update_custom_themes_file( array $custom_themes ): bool { + + // Sanitize custom themes data to be saved. + $sanitized_themes = $this->sanitize_custom_themes_data( $custom_themes ); + + // Determine custom themes file path. + $themes_file = $this->get_custom_themes_file_path(); + $json_data = ! empty( $sanitized_themes ) ? wp_json_encode( $sanitized_themes ) : '{}'; + + // Save custom themes data and return the result. + return File::put_contents( $themes_file, $json_data ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/IntegrationInterface.php b/wp-content/plugins/wpforms-lite/src/Integrations/IntegrationInterface.php new file mode 100644 index 0000000..24c5d92 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/IntegrationInterface.php @@ -0,0 +1,27 @@ +domain = preg_replace( '/(https?:\/\/)?(www\.)?(.*)\/?/', '$3', home_url() ); + + $this->api_url = self::API_URL; + + if ( defined( 'WPFORMS_LITE_CONNECT_STAGING' ) && WPFORMS_LITE_CONNECT_STAGING ) { + $this->api_url = self::STAGING_API_URL; + } + + $this->set_site_id(); + } + + /** + * Generate the site key. + * + * @since 1.7.4 + * + * @return false + */ + protected function generate_site_key() { + + if ( $this->is_max_generate_key_attempts_reached() ) { + return false; + } + + if ( Transient::get( self::LITE_CONNECT_SITE_KEY_LOCK ) ) { + return false; + } + + Transient::set( self::LITE_CONNECT_SITE_KEY_LOCK, true, MINUTE_IN_SECONDS ); + + $admin_email = Integration::get_enabled_email(); + $user = get_user_by( 'email', $admin_email ); + $data = [ + 'domain' => $this->domain, + 'admin_email' => $admin_email, + 'first_name' => ! empty( $user->first_name ) ? $user->first_name : '', + 'last_name' => ! empty( $user->last_name ) ? $user->last_name : '', + 'nonce' => $this->create_not_logged_in_nonce(), + 'callback' => add_query_arg( [ LiteConnect::AUTH_KEY_ARG => '' ], trailingslashit( home_url() ) ), + ]; + + $response = $this->request( + '/auth/key', + $data + ); + + if ( $response !== false ) { + Transient::delete( self::LITE_CONNECT_SITE_KEY_LOCK ); + } + + $this->update_generate_key_attempts_count(); + + // At this point, we do not have the site key. + // It will be sent to us in the 'wpforms/auth/key/nonce' callback. + return false; + } + + /** + * Generate the access token. + * + * @since 1.7.4 + * + * @param string $site_key The site key. + * + * @return false|string + */ + protected function generate_access_token( $site_key ) { + + // Verify if an access token is already being generated. + if ( Transient::get( self::LITE_CONNECT_ACCESS_TOKEN_LOCK ) ) { + return false; + } + + // Set a lock to avoid multiple requests to generate the access token. + Transient::set( self::LITE_CONNECT_ACCESS_TOKEN_LOCK, true, MINUTE_IN_SECONDS ); + + $response = $this->request( + '/auth/access_token', + [ + 'domain' => $this->domain, + 'site_id' => $this->site_id, + 'wp_version' => get_bloginfo( 'version' ), + ], + [ + 'X-WPForms-Lite-Connect-Site-Key' => $site_key, + ] + ); + + if ( $response && strpos( $response, '{"error":' ) === false ) { + // Delete lock. + Transient::delete( self::LITE_CONNECT_ACCESS_TOKEN_LOCK ); + } + + return $response; + } + + /** + * Add an entry to the Lite Connect API. + * + * @since 1.7.4 + * + * @param string $access_token The access token. + * @param int $form_id The form ID. + * @param string $entry_data The entry data. + * + * @return false|string + */ + public function add_form_entry( $access_token, $form_id, $entry_data ) { + + return $this->request( + '/storage/entries', + [ + 'site_id' => $this->site_id, + 'form_id' => $form_id, + 'data' => $entry_data, + ], + [ + 'X-WPForms-Lite-Connect-Access-Token' => $access_token, + ] + ); + } + + /** + * Send a request to the Lite Connect API. + * + * @since 1.7.4 + * + * @param string $uri The request's URI. + * @param array $body The request's body. + * @param array $headers The HTTP headers. + * + * @return false|string + */ + protected function request( $uri, $body, $headers = [] ) { + + $url = $this->api_url . $uri; + $user_agent = 'WPForms/' . WPFORMS_VERSION . '; ' . home_url(); + + /** + * Allow to filter Lite Connect request timeout. + * + * @since 1.8.8 + * + * @param int $timeout Timeout value in seconds. + */ + $timeout = (int) apply_filters( 'wpforms_integrations_lite_connect_api_request_timeout', 60 ); + + $response = wp_remote_post( + $url, + [ + 'method' => 'POST', + 'timeout' => $timeout, + 'headers' => $headers, + 'body' => $body, + 'user-agent' => $user_agent, + ] + ); + + if ( + is_wp_error( $response ) || + ( + isset( $response['response']['code'] ) && + (int) $response['response']['code'] !== 200 + ) + ) { + if ( ! is_wp_error( $response ) ) { + unset( $response['headers'], $response['http_response'], $response['cookies'], $response['filename'] ); + } + + $args = [ + 'type' => [ 'error' ], + ]; + + if ( isset( $body['form_id'] ) ) { + $args['form_id'] = $body['form_id']; + } + + wpforms_log( + 'Lite Connect: remote API request error', + [ + 'response' => $response, + 'request' => [ + 'url' => $url, + 'body' => $this->prepare_log_data( $body ), + 'headers' => $this->prepare_log_data( $headers ), + 'user-agent' => $user_agent, + ], + ], + $args + ); + } + + if ( is_wp_error( $response ) ) { + return false; + } + + return wp_remote_retrieve_body( $response ); + } + + /** + * Prepare data for logging. + * + * @since 1.7.4 + * + * @param mixed $data Data to log. + * + * @return mixed + */ + private function prepare_log_data( $data ) { + + $asterisks = '***'; + + if ( ! empty( $data['X-WPForms-Lite-Connect-Access-Token'] ) ) { + $data['X-WPForms-Lite-Connect-Access-Token'] = $asterisks; + } + + if ( ! empty( $data['X-WPForms-Lite-Connect-Site-Key'] ) ) { + $data['X-WPForms-Lite-Connect-Site-Key'] = $asterisks; + } + + if ( ! empty( $data['nonce'] ) ) { + $data['nonce'] = $asterisks; + } + + return $data; + } + + /** + * Get debug setting. + * + * @since 1.7.4 + * + * @param string $name Setting name. + * + * @return false|mixed + */ + protected function get_debug_setting( $name ) { + + // To be defined in wp-config.php. + if ( ! defined( 'WPFORMS_DEBUG_LITE_CONNECT' ) || ! is_array( WPFORMS_DEBUG_LITE_CONNECT ) ) { + return false; + } + + return ! empty( WPFORMS_DEBUG_LITE_CONNECT[ $name ] ) ? WPFORMS_DEBUG_LITE_CONNECT[ $name ] : false; + } + + /** + * Create not logged in nonce. + * We need it, because callback from the server to the wpforms/auth/key/nonce will be processed as not logged in. + * + * @since 1.7.4 + * + * @return string + */ + private function create_not_logged_in_nonce() { + + $user = wp_get_current_user(); + $user_id = $user ? $user->ID : 0; + + wp_set_current_user( 0 ); + + $saved_cookie = $_COOKIE; + $_COOKIE = []; + $nonce = wp_create_nonce( self::KEY_NONCE_ACTION ); + $_COOKIE = $saved_cookie; + + wp_set_current_user( $user_id ); + + return $nonce; + } + + /** + * Set site ID. + * + * @since 1.7.4 + * + * @return void + */ + private function set_site_id() { + + // At first, try to use the site ID from the wp-config.php file. + $debug_site_id = $this->get_debug_setting( 'id' ); + + if ( $debug_site_id !== false ) { + $this->site_id = $debug_site_id; + + return; + } + + // Otherwise, use the site ID generated and saved as setting. + $site = wpforms_setting( 'site', false, Integration::get_option_name() ); + + if ( ! isset( $site['id'] ) ) { + return; + } + + $this->site_id = $site['id']; + } + + /** + * Check that we have not reached the max number of attempts to get keys from API using generate_keys(). + * + * @since 1.7.5 + * + * @return bool + */ + private function is_max_generate_key_attempts_reached() { + + $attempts_count = get_option( self::GENERATE_KEY_ATTEMPT_COUNTER_OPTION, 0 ); + + return $attempts_count >= self::MAX_GENERATE_KEY_ATTEMPTS; + } + + /** + * Update count of the attempts to get keys from API using generate_keys(). + * It allows us to prevent sending requests to the API server infinitely. + * + * @since 1.7.5 + */ + private function update_generate_key_attempts_count() { + + global $wpdb; + + $counter = get_option( self::GENERATE_KEY_ATTEMPT_COUNTER_OPTION, 0 ); + + if ( $counter >= self::MAX_GENERATE_KEY_ATTEMPTS - 1 ) { + // Disable Lite Connect. + $wpforms_settings = get_option( 'wpforms_settings', [] ); + $wpforms_settings[ LiteConnect::SETTINGS_SLUG ] = 0; + + update_option( 'wpforms_settings', $wpforms_settings ); + } + + // Store actual attempt counter value to the option. + // We need here an atomic operation to avoid race conditions with getting site key via callback. + // phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( + $wpdb->prepare( + "INSERT INTO $wpdb->options + (option_name, option_value, autoload) + VALUES ( %s, 1, 'no' ) + ON DUPLICATE KEY UPDATE + option_value = option_value + 1", + self::GENERATE_KEY_ATTEMPT_COUNTER_OPTION + ) + ); + // phpcs:enable WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize + + wp_cache_delete( self::GENERATE_KEY_ATTEMPT_COUNTER_OPTION, 'options' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/Integration.php b/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/Integration.php new file mode 100644 index 0000000..69e157d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/Integration.php @@ -0,0 +1,462 @@ +hooks(); + + // Update the site key and access token. + if ( + ! $updated && + ( is_admin() && ! wp_doing_ajax() ) && + ( ( wpforms()->is_pro() && self::get_enabled_since() ) || LiteConnect::is_enabled() ) + ) { + $this->maybe_update_access_token(); + $this->update_keys(); + $updated = true; + } + } + + /** + * Hooks. + * + * @since 1.7.5 + */ + private function hooks() { + + add_action( 'admin_init', [ $this, 'max_attempts_notice' ], 10 ); + } + + /** + * Update the site key and access token if they do not exist. + * + * @since 1.7.4 + */ + public function update_keys() { + + if ( isset( $this->auth['site_key'], $this->auth['access_token'] ) ) { + return; + } + + $site_key = $this->get_site_key(); + + $this->auth = [ + 'site_key' => $site_key, + 'access_token' => $this->get_access_token( $site_key ), + ]; + } + + /** + * Get the site key. + * + * @since 1.7.4 + * + * @return string|false|array The site key, or false on error. + */ + protected function get_site_key() { + + // At first, try to get the site key from the wp-config.php file. + $debug_site_key = $this->get_debug_setting( 'key' ); + + if ( $debug_site_key !== false ) { + return $debug_site_key; + } + + // If site key already exists, then we won't need to regenerate it. + $curr_key = wpforms_setting( 'site', false, self::get_option_name() ); + + if ( ! empty( $curr_key['key'] ) ) { + return $curr_key['key']; + } + + // Generate the site key. + return $this->generate_site_key(); + } + + /** + * Get the access token. + * + * @since 1.7.4 + * + * @param string|array $site_key The site key. + * @param bool $force True to force generate a new access token. + * + * @return string|false|void The access token, or false on error. + */ + protected function get_access_token( $site_key, $force = false ) { + + if ( ! $site_key ) { + return false; + } + + $curr_token = wpforms_setting( 'access_token', false, self::get_option_name() ); + + // It won't regenerate the access token if $force is false, and the current token is not expired. + if ( $force === false && isset( $curr_token['expires_at'] ) && (int) $curr_token['expires_at'] - time() > 0 ) { + return $curr_token['access_token']; + } + + // Generate the access token. + $response = $this->generate_access_token( $site_key ); + + if ( $response ) { + $response = json_decode( $response, true ); + + if ( isset( $response['access_token'] ) ) { + $settings = get_option( self::get_option_name(), [] ); + $settings['access_token'] = $response; + + update_option( self::get_option_name(), $settings ); + + // Create task to refresh access token in 6 days. + $this->refresh_access_token_task(); + + return $response['access_token']; + } + + wpforms_log( + 'Lite Connect: unable to generate access token', + [ + 'response' => $response, + 'request' => [ + 'domain' => $this->domain, + 'site_id' => $this->site_id, + 'wp_version' => get_bloginfo( 'version' ), + ], + ], + [ 'type' => [ 'error' ] ] + ); + } + + return false; + } + + /** + * Create a task to refresh the access token. + * + * @since 1.7.4 + */ + private function refresh_access_token_task() { + + $tasks = wpforms()->obj( 'tasks' ); + + if ( $tasks instanceof Tasks && ! $tasks->is_scheduled( RefreshAccessTokenTask::LITE_CONNECT_TASK ) ) { + ( new RefreshAccessTokenTask() )->create(); + } + } + + /** + * Get the name for the Lite Connect's option. + * + * @since 1.7.4 + * + * @return string + */ + public static function get_option_name() { + + if ( self::is_staging() ) { + return API::STAGING_LITE_CONNECT_OPTION; + } + + return API::LITE_CONNECT_OPTION; + } + + /** + * Get the Lite Connect entries count. + * + * @since 1.7.4 + * + * @return int The entries count. + */ + public static function get_entries_count() { + + return (int) get_option( self::LITE_CONNECT_ENTRIES_COUNT_OPTION, 0 ); + } + + /** + * Get the Lite Connect form entries count. + * + * @since 1.7.9 + * + * @param int $form_id The form ID. + * + * @return int The form entries count. + */ + public static function get_form_entries_count( $form_id ) { + + return (int) get_post_meta( $form_id, self::LITE_CONNECT_FORM_ENTRIES_COUNT_META, true ); + } + + /** + * Get the Lite Connect new entries count (since previous import). + * + * @since 1.7.4 + * + * @return int The new entries count. + */ + public static function get_new_entries_count() { + + // Get current total entries count. + $count = self::get_entries_count(); + + // Reduces the entries that were already imported previously from the count. + $import = wpforms_setting( 'import', false, self::get_option_name() ); + $prev_count = 0; + + if ( isset( $import['previous_import_count'] ) ) { + $prev_count = (int) $import['previous_import_count']; + } + + if ( isset( $import['previous_failed_count'] ) ) { + $prev_count += (int) $import['previous_failed_count']; + } + + return $count < $prev_count ? 0 : $count - $prev_count; + } + + /** + * Maybe restart the import flag (for when the user re-upgrades to pro). + * + * @since 1.7.4 + */ + public static function maybe_restart_import_flag() { + + $settings = get_option( self::get_option_name(), [] ); + + if ( empty( $settings ) ) { + return; + } + + $status = isset( $settings['import']['status'] ) ? $settings['import']['status'] : false; + + if ( $status === 'done' ) { + $previous_imported_entries = Transient::get( 'lite_connect_imported_entries' ); + $settings['import']['previous_import_count'] = is_array( $previous_imported_entries ) ? count( $previous_imported_entries ) : 0; + + $previous_failed_entries = Transient::get( 'lite_connect_failed_entries' ); + $settings['import']['previous_failed_count'] = is_array( $previous_failed_entries ) ? count( $previous_failed_entries ) : 0; + } + + self::maybe_set_entries_count(); + + // Reset import status to be able to restart import process. + unset( + $settings['import']['status'], + $settings['import']['user_notified'] + ); + + update_option( self::get_option_name(), $settings ); + + if ( Transient::get( 'lite_connect_error' ) !== false ) { + Transient::delete( 'lite_connect_error' ); + } + } + + /** + * Get the Lite Connect enabled since timestamp. + * + * @since 1.7.4 + * + * @return bool|int + */ + public static function get_enabled_since() { + + return wpforms_setting( LiteConnect::SETTINGS_SLUG . '-since' ); + } + + /** + * Get the Email of the user who enabled Lite Connect. + * + * @since 1.7.4 + * + * @return bool|string + */ + public static function get_enabled_email() { + + return wpforms_setting( LiteConnect::SETTINGS_SLUG . '-email' ); + } + + /** + * Normalize Lite Connect entries counter when their value is wrong. + * + * @since 1.7.4 + */ + public static function maybe_set_entries_count() { + + $settings = get_option( self::get_option_name(), [] ); + + if ( empty( $settings ) ) { + return; + } + + $previous_import_count = isset( $settings['import']['previous_import_count'] ) ? (int) $settings['import']['previous_import_count'] : 0; + $previous_failed_count = isset( $settings['import']['previous_failed_count'] ) ? (int) $settings['import']['previous_failed_count'] : 0; + $previous_import_count += $previous_failed_count; + + // When the entries counter was manually deleted from options OR it was modified by another process, + // we are setting the counter to the value of the previous imported entries. + // In this way, the next form submission will increase counter properly, and user will see value of the backed up entries. + // Obviously, this solution is not perfect, but we don't have another source of the total entries count. + if ( $previous_import_count > self::get_entries_count() ) { + update_option( self::LITE_CONNECT_ENTRIES_COUNT_OPTION, $previous_import_count ); + } + } + + /** + * Show the Lite Connect notice about the max attempts to generate the API key. + * + * @since 1.7.5 + */ + public function max_attempts_notice() { + + $attempts_count = get_option( self::GENERATE_KEY_ATTEMPT_COUNTER_OPTION, 0 ); + + $notice_text = sprintf( + wp_kses( /* translators: %s - WPForms documentation link. */ + __( 'Your form entries can’t be backed up because WPForms can’t connect to the backup server. If you’d like to back up your entries, find out how to fix entry backup issues.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + wpforms_utm_link( 'https://wpforms.com/docs/how-to-use-lite-connect-for-wpforms/#backup-issues', 'Admin Notice' ) + ); + + if ( $attempts_count >= self::MAX_GENERATE_KEY_ATTEMPTS ) { + Notice::warning( + $notice_text, + [ + 'dismiss' => Notice::DISMISS_GLOBAL, + 'slug' => 'max_attempts', + ] + ); + } + } + + /** + * Maybe update access token. + * + * @since 1.7.6 + */ + public function maybe_update_access_token() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $action = isset( $_GET['wpforms_lite_connect_action'] ) ? sanitize_key( $_GET['wpforms_lite_connect_action'] ) : ''; + + if ( + ! isset( $_GET['_wpnonce'] ) || + $action !== 'update-access-token' || + ! current_user_can( 'manage_options' ) || + ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'wpforms_lite_connect_action' ) + ) { + return; + } + + $this->get_access_token( $this->get_site_key(), true ); + } + + /** + * Determine if Lite Connect staging is used. + * + * @since 1.9.1 + * + * @return bool + */ + private static function is_staging(): bool { + + return defined( 'WPFORMS_LITE_CONNECT_STAGING' ) && WPFORMS_LITE_CONNECT_STAGING; + } + + /** + * Get the site credentials. + * + * @since 1.9.1 + * + * @return array + */ + public static function get_site_credentials(): array { + + $settings = (array) get_option( self::get_option_name(), [] ); + + if ( ! empty( $settings['site']['id'] ) && ! empty( $settings['access_token']['access_token'] ) ) { + return [ + 'site_id' => $settings['site']['id'], + 'access_token' => $settings['access_token']['access_token'], + ]; + } + + $instance = ( new self() ); + + // Try to get the site id from the wp-config.php file. + $debug_site_id = $instance->get_debug_setting( 'id' ); + + if ( empty( $debug_site_id ) ) { + return []; + } + + $access_token = $instance->get_access_token( $instance->get_site_key() ); + + if ( ! $access_token ) { + return []; + } + + return [ + 'site_id' => $debug_site_id, + 'access_token' => $access_token, + 'is_production' => ! self::is_staging(), + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/LiteConnect.php b/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/LiteConnect.php new file mode 100644 index 0000000..dc07bdc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/LiteConnect.php @@ -0,0 +1,272 @@ + Settings admin page. + * + * @since 1.7.4 + * + * @param bool $is_enabled Is LiteConnect enabled on WPForms > Settings page? + */ + return (bool) apply_filters( 'wpforms_integrations_lite_connect_is_enabled', wpforms_setting( self::SETTINGS_SLUG ) ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Load an integration. + * + * @since 1.7.4 + */ + public function load() { + + $this->endpoints(); + } + + /** + * Whether Lite Connect is running locally and not in the debug mode. + * + * @since 1.7.4 + * + * @return bool + */ + private static function is_local_not_debug() { + + return ! defined( 'WPFORMS_DEBUG_LITE_CONNECT' ) && self::is_localhost(); + } + + /** + * Whether Lite Connect is running locally. + * + * @since 1.7.4 + * + * @return bool + */ + private static function is_localhost() { + + // Check for local TLDs. + if ( ! empty( $_SERVER['HTTP_HOST'] ) ) { + $host = sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ); + + $local_tlds = [ + '.local', + '.invalid', + '.example', + '.test', + ]; + + foreach ( $local_tlds as $tld ) { + if ( preg_match( '/' . $tld . '$/', $host ) ) { + return true; + } + } + } + + // Return false if IP and TLD are not local. + return false; + } + + /** + * Whether Lite Connect is running on production website. + * + * @since 1.7.6 + * + * @return bool + */ + private static function is_production() { + + return wp_get_environment_type() === 'production'; + } + + /** + * Provide responses to endpoint requests. + * + * @since 1.7.4 + */ + private function endpoints() { + + // We check nonce in the endpoint_key(). + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! isset( $_GET[ self::AUTH_KEY_ARG ] ) ) { + return; + } + + $this->endpoint_key(); + } + + /** + * Process endpoint for callback on generate_site_key(). + * + * @since 1.7.4 + */ + private function endpoint_key() { + + $json = file_get_contents( 'php://input' ); + $response = json_decode( $json, true ); + + if ( ! $response ) { + $this->endpoint_die( 'Lite Connect: No response' ); + } + + if ( isset( $response['error'] ) ) { + $this->endpoint_die( + 'Lite Connect: unable to add the site to system', + $response + ); + } + + if ( ! isset( $response['key'], $response['id'], $response['nonce'] ) ) { + $this->endpoint_die( + 'Lite Connect: unknown communication error', + $response + ); + } + + if ( ! wp_verify_nonce( $response['nonce'], API::KEY_NONCE_ACTION ) ) { + $this->endpoint_die( + 'Lite Connect: nonce verification failed', + $response + ); + } + + unset( $response['nonce'] ); + + $settings = get_option( Integration::get_option_name(), [] ); + $settings['site'] = $response; + + update_option( API::GENERATE_KEY_ATTEMPT_COUNTER_OPTION, 0 ); + update_option( Integration::get_option_name(), $settings ); + + exit(); + } + + /** + * Finish the endpoint execution with wp_die(). + * + * @since 1.7.4 + * + * @param string $title Log message title. + * @param array $response Response. + * + * @noinspection ForgottenDebugOutputInspection + */ + private function endpoint_die( $title = '', $response = [] ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + $this->log( $title, $response ); + + // We call wp_die too early, before the query is run. + // So, we should remove some filters to avoid having PHP notices in error log. + remove_filter( 'wp_robots', 'wp_robots_noindex_embeds' ); + remove_filter( 'wp_robots', 'wp_robots_noindex_search' ); + + wp_die( + esc_html__( 'This is the Lite Connect endpoint page.', 'wpforms-lite' ), + 'Lite Connect endpoint', + 400 + ); + } + + /** + * Log message. + * + * @since 1.7.4 + * + * @param string $title Log message title. + * @param array $response Response. + */ + private function log( $title = '', $response = [] ) { + + if ( ! $title ) { + return; + } + + wpforms_log( + $title, + [ + 'response' => $response, + 'request' => [ + 'domain' => isset( $response['domain'] ) ? $response['domain'] : '', + 'admin_email' => Integration::get_enabled_email(), + ], + ], + [ 'type' => [ 'error' ] ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/RefreshAccessTokenTask.php b/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/RefreshAccessTokenTask.php new file mode 100644 index 0000000..d3b3c61 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/LiteConnect/RefreshAccessTokenTask.php @@ -0,0 +1,76 @@ +hooks(); + } + + /** + * Initialize the hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + // Process the tasks as needed. + add_action( self::LITE_CONNECT_TASK, [ $this, 'process' ] ); + } + + /** + * Creates a task to refresh the Lite Connect access token via Action Scheduler. + * + * @since 1.7.4 + */ + public function create() { + + $action_id = wpforms()->obj( 'tasks' ) + ->create( self::LITE_CONNECT_TASK ) + ->once( time() + 6 * DAY_IN_SECONDS ) + ->register(); + + if ( $action_id === null ) { + wpforms_log( + 'Lite Connect: error creating the AS task', + [ + 'task' => self::LITE_CONNECT_TASK, + ], + [ 'type' => [ 'error' ] ] + ); + } + } + + /** + * Process the task to regenerate the access token. + * + * @since 1.7.4 + */ + public function process() { + + $this->get_access_token( $this->get_site_key(), true ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Loader.php b/wp-content/plugins/wpforms-lite/src/Integrations/Loader.php new file mode 100644 index 0000000..b88f06d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Loader.php @@ -0,0 +1,128 @@ +register_class( $class_name ); + + wpforms()->register_instance( $class_name, $integration ); + + if ( ! empty( $integration ) ) { + $this->load_integration( $integration ); + } + } + } + + /** + * Load an integration. + * + * @param IntegrationInterface $integration Instance of an integration class. + * + * @since 1.4.8 + */ + protected function load_integration( IntegrationInterface $integration ) { + + if ( $integration->allow_load() ) { + $integration->load(); + } + } + + /** + * Register a new class. + * + * @since 1.5.6 + * + * @param string $class_name Class name to register. + * + * @return IntegrationInterface Instance of class. + */ + public function register_class( $class_name ) { + + $class_name = sanitize_text_field( $class_name ); + + // Load Lite class if exists. + if ( class_exists( 'WPForms\Lite\Integrations\\' . $class_name ) && ! wpforms()->is_pro() ) { + $class_name = 'WPForms\Lite\Integrations\\' . $class_name; + + return new $class_name(); + } + + // Load Pro class if exists. + if ( class_exists( 'WPForms\Pro\Integrations\\' . $class_name ) && wpforms()->is_pro() ) { + $class_name = 'WPForms\Pro\Integrations\\' . $class_name; + + return new $class_name(); + } + + // Load general class if neither Pro nor Lite class exists. + if ( class_exists( __NAMESPACE__ . '\\' . $class_name ) ) { + $class_name = __NAMESPACE__ . '\\' . $class_name; + + return new $class_name(); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/MotoPress/MotoPress.php b/wp-content/plugins/wpforms-lite/src/Integrations/MotoPress/MotoPress.php new file mode 100644 index 0000000..f54e4ee --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/MotoPress/MotoPress.php @@ -0,0 +1,70 @@ +is_motopress_active() && $this->is_motopress_editor(); + } + + /** + * Load an integration. + * + * @since 1.9.9 + */ + public function load() { + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.9.9 + */ + private function hooks(): void { + + // Disable Anti Spam v3 honeypot. + add_filter( 'wpforms_forms_anti_spam_v3_is_honeypot_enabled', '__return_false' ); + } + + /** + * Determine if a current page is opened in the MotorPress editor. + * + * @since 1.9.9 + * + * @return bool + */ + private function is_motopress_editor(): bool { + + return ! empty( $_GET['motopress-ce'] ) || ! empty( $_GET['mpce-edit'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended + } + + /** + * Determine if the MotoPress plugin is active. + * + * @since 1.9.9 + * + * @return bool + */ + private function is_motopress_active(): bool { + + return function_exists( 'mpceSettings' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/SMTP/Notifications.php b/wp-content/plugins/wpforms-lite/src/Integrations/SMTP/Notifications.php new file mode 100644 index 0000000..9005d51 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/SMTP/Notifications.php @@ -0,0 +1,321 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.7.6 + */ + private function hooks() { + + add_filter( 'wpforms_builder_notifications_sender_address_settings', [ $this, 'change_from_email_settings' ], PHP_INT_MIN, 3 ); + add_filter( 'wpforms_builder_notifications_sender_name_settings', [ $this, 'change_from_name_settings' ], PHP_INT_MIN, 3 ); + add_action( 'wp_ajax_wpforms_builder_notification_from_email_validate', [ $this, 'notification_from_email_validate' ] ); + add_filter( 'wpforms_builder_strings', [ $this, 'form_builder_strings' ], 10, 2 ); + } + + /** + * Validate email. + * + * @since 1.8.1 + */ + public function notification_from_email_validate() { + + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Before checking if $_POST['email'] is valid email, we need to check if smart tag is used and return its value. + $email = ! empty( $_POST['email'] ) ? sanitize_text_field( wp_unslash( $_POST['email'] ) ) : ''; + $email = $email ? sanitize_email( wpforms_process_smart_tags( $email, [], [], '', 'smtp-notification-validation' ) ) : ''; + + if ( ! is_email( $email ) ) { + wp_send_json_error( + sprintf( + '
              %s
              ', + __( 'Please enter a valid email address. Your notifications won\'t be sent if the field is not filled in correctly.', 'wpforms-lite' ) + ) + ); + } + + if ( ! $this->email_domain_matches_site_domain( $email ) ) { + wp_send_json_error( $this->get_warning_message() ); + } + + wp_send_json_success(); + } + + /** + * Append additional strings for form builder. + * + * @since 1.8.1 + * + * @param array $strings List of strings. + * @param object $form Current form object. + * + * @return array + */ + public function form_builder_strings( $strings, $form ) { + + $strings['empty_email_address'] = esc_html__( 'Please enter a valid email address. Your notifications won\'t be sent if the field is not filled in correctly.', 'wpforms-lite' ); + $strings['allow_only_one_email'] = esc_html__( 'Notifications can only use 1 From Email. Please do not enter multiple addresses.', 'wpforms-lite' ); + $strings['allow_only_email_fields'] = esc_html__( 'This smart tag does not point to an Email field in your form.', 'wpforms-lite' ); + + return $strings; + } + + /** + * Add warning message when email doesn't match site domain. + * + * @since 1.7.6 + * + * @param array $args Field settings. + * @param array $form_data Form data. + * @param int $id Notification ID. + * + * @return array + */ + public function change_from_email_settings( $args, $form_data, $id ) { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** This filter is documented in lite/wpforms-lite.php */ + $from_email_after = apply_filters( 'wpforms_builder_notifications_from_email_after', '', $form_data, $id ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! empty( $from_email_after ) ) { + $default = [ + 'readonly' => true, + 'after' => '
              ' . $from_email_after . '
              ', + 'input_class' => 'wpforms-disabled', + 'class' => 'from-email wpforms-panel-field-warning', + ]; + } else { + $default = [ + 'class' => 'from-email js-wpforms-from-email-validation', + 'tooltip' => esc_html__( 'Notifications can only use 1 From Email. Please do not enter multiple addresses.', 'wpforms-lite' ), + ]; + } + + $args = wp_parse_args( $args, $default ); + + return $args; + } + + /** + * Add warning message when name empty. + * + * @since 1.8.4 + * + * @param array $args Field settings. + * @param array $form_data Form data. + * @param int $id Notification ID. + * + * @return array + */ + public function change_from_name_settings( $args, $form_data, $id ) { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** This filter is documented in lite/wpforms-lite.php */ + $from_name_after = apply_filters( 'wpforms_builder_notifications_from_name_after', '', $form_data, $id ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! empty( $from_name_after ) ) { + $default = [ + 'readonly' => true, + 'after' => '
              ' . $from_name_after . '
              ', + 'input_class' => 'wpforms-disabled', + 'class' => 'from-name wpforms-panel-field-warning', + ]; + } else { + $default = [ + 'class' => 'from-name', + ]; + } + + return wp_parse_args( $args, $default ); + } + + /** + * Get warning message. + * + * @since 1.8.1 + * + * @return string + */ + private function get_warning_message() { + + $site_domain = wp_parse_url( get_bloginfo( 'wpurl' ) )['host']; + + $email_does_not_match_text = sprintf( /* translators: %1$s - WordPress site domain. */ + __( 'The current \'From Email\' address does not match your website domain name (%1$s). This can cause your notification emails to be blocked or marked as spam.', 'wpforms-lite' ), + esc_html( $site_domain ) + ); + + $install_wp_mail_smtp_text = ''; + + // If WP Mail SMTP is not active, show a message to install it. + if ( + ! is_plugin_active( 'wp-mail-smtp-pro/wp_mail_smtp.php' ) && + ! is_plugin_active( 'wp-mail-smtp/wp_mail_smtp.php' ) + ) { + $install_wp_mail_smtp_text .= sprintf( + wp_kses( /* translators: %1$s - WP Mail SMTP install page URL. */ + __( + 'We strongly recommend that you install the free WP Mail SMTP plugin! The Setup Wizard makes it easy to fix your emails.', + 'wpforms-lite' + ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( admin_url( 'admin.php?page=wpforms-smtp' ) ) + ); + } + + $address_match_text = sprintf( /* translators: %1$s - WordPress site domain. */ + __( 'Alternately, try using a From Address that matches your website domain (admin@%1$s).', 'wpforms-lite' ), + esc_html( $site_domain ) + ); + + $fix_email_delivery_text = sprintf( + wp_kses( /* translators: %1$s - fixing email delivery issues doc URL. */ + __( + 'Please check out our doc on fixing email delivery issues for more details.', + 'wpforms-lite' + ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-fix-wordpress-contact-form-not-sending-email-with-smtp/', 'Builder Notifications', 'Delivery Issues Documentation' ) ) + ); + + return sprintf( + '

              %1$s

              %2$s

              %3$s

              %4$s

              ', + $email_does_not_match_text, + $install_wp_mail_smtp_text, + $address_match_text, + $fix_email_delivery_text + ); + } + + /** + * Check if the domain name in an email address matches the WordPress site domain. + * + * @since 1.7.6 + * + * @param string $email The email address to check against the WordPress site domain. + * + * @return bool + */ + private function email_domain_matches_site_domain( $email ) { + + // Process smart tags if they are used as a value. + $email = wpforms_process_smart_tags( $email, [], [], '', 'smtp-notification-validation' ); + + // Skip processing when email is empty or does not set. + // e.g. {field_id="3"} which we don't have at the moment. + if ( empty( $email ) ) { + return true; + } + + $email_domain = substr( strrchr( $email, '@' ), 1 ); + $site_domain = wp_parse_url( get_bloginfo( 'wpurl' ) )['host']; + + // Check if From email domain ends with site domain. + return ! empty( $email_domain ) && preg_match( "/\b{$email_domain}$/", $site_domain ) === 1; + } + + /** + * Check if the site has any active SMTP plugins. + * + * @since 1.7.6 + * + * @return bool + */ + private function has_active_smtp_plugin() { + + // List of plugins from \WPMailSMTP\Conflicts. + $smtp_plugin_list = [ + 'branda-white-labeling/ultimate-branding.php', + 'bws-smtp/bws-smtp.php', + 'cimy-swift-smtp/cimy_swift_smtp.php', + 'disable-emails/disable-emails.php', + 'easy-wp-smtp/easy-wp-smtp.php', + 'fluent-smtp/fluent-smtp.php', + 'gmail-smtp/main.php', + 'mailgun/mailgun.php', + 'my-smtp-wp/my-smtp-wp.php', + 'post-smtp/postman-smtp.php', + 'postman-smtp/postman-smtp.php', + 'postmark-approved-wordpress-plugin/postmark.php', + 'sar-friendly-smtp/sar-friendly-smtp.php', + 'sendgrid-email-delivery-simplified/wpsendgrid.php', + 'smtp-mail/index.php', + 'smtp-mailer/main.php', + 'sparkpost/wordpress-sparkpost.php', + 'turbosmtp/turbo-smtp-plugin.php', + 'woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php', + 'wp-amazon-ses-smtp/wp-amazon-ses.php', + 'wp-easy-smtp/wp-easy-smtp.php', + 'wp-gmail-smtp/wp-gmail-smtp.php', + 'wp-html-mail/wp-html-mail.php', + 'wp-mail-bank/wp-mail-bank.php', + 'wp-mail-booster/wp-mail-booster.php', + 'wp-mail-smtp-mailer/wp-mail-smtp-mailer.php', + 'wp-mail-smtp-pro/wp_mail_smtp.php', + 'wp-mail-smtp/wp_mail_smtp.php', + 'wp-mailgun-smtp/wp-mailgun-smtp.php', + 'wp-offload-ses/wp-offload-ses.php', + 'wp-sendgrid-smtp/wp-sendgrid-smtp.php', + 'wp-ses/wp-ses.php', + 'wp-smtp/wp-smtp.php', + 'wp-yahoo-smtp/wp-yahoo-smtp.php', + ]; + + foreach ( $smtp_plugin_list as $smtp_plugin ) { + if ( is_plugin_active( $smtp_plugin ) ) { + return true; + } + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/SolidCentral/SolidCentral.php b/wp-content/plugins/wpforms-lite/src/Integrations/SolidCentral/SolidCentral.php new file mode 100644 index 0000000..67ae07e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/SolidCentral/SolidCentral.php @@ -0,0 +1,34 @@ +=' ); + } + + /** + * Display wp-admin notification saying user first have to update addon to the latest version. + * + * @since 1.9.5 + */ + public function display_legacy_addon_notice() { + + echo '

              '; + esc_html_e( 'The WPForms Square addon is out of date. To avoid payment processing issues, please upgrade the Square addon to the latest version.', 'wpforms-lite' ); + echo '

              '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Enqueues.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Enqueues.php new file mode 100644 index 0000000..f817910 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Enqueues.php @@ -0,0 +1,118 @@ +hooks(); + } + + /** + * Builder hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + add_filter( 'wpforms_builder_strings', [ $this, 'javascript_strings' ] ); + } + + /** + * Enqueue assets for the builder. + * + * @since 1.9.5 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-builder-square', + WPFORMS_PLUGIN_URL . "assets/js/integrations/square/admin/builder-square{$min}.js", + [ 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_style( + 'wpforms-square-placeholder', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square-card-placeholder{$min}.css", + [], + WPFORMS_VERSION + ); + + /** + * Currently, we would like to limit number of the Square Credit Card fields + * and allows only one field per form cause there is technical issue with the Web Payments SDK. + */ + wp_add_inline_style( 'wpforms-builder', '.wpforms-add-fields-group .wpforms-add-fields-button-disabled:hover { background-color: #036aab; cursor: no-drop; }' ); + } + + /** + * Add localized strings to be available in the form builder. + * + * @since 1.9.5 + * + * @param array $strings Form builder JS strings. + * + * @return array + */ + public function javascript_strings( $strings ): array { + + $strings = (array) $strings; + + $strings['square_connection_required'] = wp_kses( + __( '

              Square account connection is required when using the Square field.

              To proceed, please go to WPForms Settings » Payments » Square and press Connect with Square button.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'strong' => [], + ] + ); + + $strings['square_payments_enabled_required'] = wp_kses( + __( '

              Square Payments must be enabled when using the Square field.

              To proceed, please go to Payments » Square and check Enable Square Payments.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'strong' => [], + ] + ); + + $strings['square_ajax_required'] = wp_kses( + __( '

              AJAX form submissions are required when using the Square field.

              To proceed, please go to Settings » General » Advanced and check Enable AJAX form submission.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'strong' => [], + ] + ); + + $strings['square_recurring_payments_fields_heading'] = esc_html__( 'Missing Required Fields', 'wpforms-lite' ); + $strings['square_recurring_payments_fields_required'] = esc_html__( 'When recurring subscription payments are enabled, the Customer Email and Customer Name are required.', 'wpforms-lite' ); + $strings['square_recurring_payments_fields_settings'] = wp_kses( + __( 'Please go to the Square payment settings and select a Customer Email and Customer Name.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + ], + ] + ); + $strings['square_is_pro'] = Helpers::is_pro(); + + return $strings; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Notifications.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Notifications.php new file mode 100644 index 0000000..bc46c28 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Notifications.php @@ -0,0 +1,132 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + $hook_name = wpforms()->is_pro() ? 'wpforms_form_settings_notifications_single_after' : 'wpforms_lite_form_settings_notifications_block_content_after'; + + add_action( $hook_name, [ $this, 'notification_settings' ], 5, 2 ); + } + + /** + * Add checkbox to form notification settings. + * + * @since 1.9.5 + * + * @param object|mixed $settings Current confirmation settings. + * @param int $id Subsection ID. + */ + public function notification_settings( $settings, int $id ) { + + if ( empty( $settings->form_data ) ) { + return; + } + + wpforms_panel_field( + 'toggle', + 'notifications', + 'square', + $settings->form_data, + esc_html__( 'Enable for Square completed payments', 'wpforms-lite' ), + $this->get_notification_settings_data( $settings->form_data, $id ) + ); + } + + /** + * Get notification settings data based on the license type. + * + * @since 1.9.5 + * + * @param array $form_data Form settings data. + * @param int $id Subsection ID. + * + * @return array + */ + private function get_notification_settings_data( array $form_data, int $id ): array { + + return [ + 'parent' => 'settings', + 'class' => ! Helpers::is_payments_enabled( $form_data ) ? 'wpforms-hidden' : '', + 'subsection' => $id, + 'value' => 0, + 'input_class' => 'education-modal', + 'pro_badge' => ! Helpers::is_allowed_license_type(), + 'data' => $this->get_notification_section_data(), + 'attrs' => [ 'disabled' => 'disabled' ], + ]; + } + + /** + * Get notification section data. + * + * @since 1.9.5 + * + * @return array + */ + private function get_notification_section_data(): array { + + $addon = wpforms()->obj( 'addons' )->get_addon( 'square' ); + + if ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && + $addon['action'] !== 'upgrade' + ) + ) { + return []; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'install' ) { + return [ + 'action' => 'install', + 'message' => esc_html__( 'The Square Pro addon is required to enable notification for completed payments. Would you like to install and activate it?', 'wpforms-lite' ), + 'url' => $addon['url'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + 'license' => 'pro', + ]; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'activate' ) { + return [ + 'action' => 'activate', + 'message' => esc_html__( 'The Square Pro addon is required to enable notification for completed payments. Would you like to activate it?', 'wpforms-lite' ), + 'path' => $addon['path'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + ]; + } + + return [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Notification for Square Completed Payments', 'wpforms-lite' ), + 'utm-content' => 'Builder Square Completed Payments', + 'license' => 'pro', + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Settings.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Settings.php new file mode 100644 index 0000000..8c9d05d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Settings.php @@ -0,0 +1,297 @@ +form_data = $this->get_form_data(); + + $this->hooks(); + } + + /** + * Builder hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_filter( 'wpforms_payments_available', [ $this, 'register_payment' ] ); + add_action( 'wpforms_payments_panel_content', [ $this, 'builder_output' ], 1 ); + add_action( 'wpforms_payments_panel_sidebar', [ $this, 'builder_sidebar' ], 1 ); + add_filter( 'wpforms_admin_education_addons_item_base_display_single_addon_hide', [ $this, 'should_hide_educational_menu_item' ], 10, 2 ); + } + + /** + * Register the payment gateway. + * + * @since 1.9.5 + * + * @param array $payments_available List of available payment gateways. + * + * @return array + */ + public function register_payment( $payments_available ): array { + + $payments_available = (array) $payments_available; + + $payments_available[ $this->slug ] = $this->name; + + return $payments_available; + } + + /** + * Output the gateway menu item. + * + * @since 1.9.5 + */ + public function builder_sidebar() { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/payment/sidebar', + [ + 'configured' => $this->is_payments_enabled() ? 'configured' : '', + 'slug' => $this->slug, + 'icon' => $this->icon, + 'name' => $this->name, + 'recommended' => true, + ], + true + ); + } + + /** + * Output the gateway settings. + * + * @since 1.9.5 + */ + public function builder_output() { + ?> +
              + +
              + name ); ?> +
              + +
              + builder_content(); ?> +
              +
              + slug === $addon['clear_slug'] ? true : (bool) $hide; + } + + + /** + * Get form data. + * + * @since 1.9.5 + * + * @return array + */ + private function get_form_data(): array { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : 0; + + if ( ! $form_id ) { + return []; + } + + $form_data = wpforms()->obj( 'form' )->get( + $form_id, + [ + 'content_only' => true, + ] + ); + + return is_array( $form_data ) ? $form_data : []; + } + + /** + * Check if payments enabled. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_payments_enabled(): bool { + + return ! empty( $this->form_data['payments'][ $this->slug ]['enable'] ) || ! empty( $this->form_data['payments'][ $this->slug ]['enable_one_time'] ); + } + + /** + * Get single payments conditional logic for the Square settings panel. + * + * @since 1.9.5 + * + * @return string + */ + private function single_payments_conditional_logic_section(): string { + + return $this->get_conditional_logic_toggle(); + } + + /** + * Get education toggle for the conditional logic. + * + * @since 1.9.5 + * + * @param bool $is_recurring Is recurring section. + * + * @return string + */ + private function get_conditional_logic_toggle( bool $is_recurring = false ): string { + + return wpforms_panel_field( + 'toggle', + $this->slug, + 'conditional_logic', + $this->form_data, + esc_html__( 'Enable Conditional Logic', 'wpforms-lite' ), + [ + 'value' => 0, + 'input_class' => 'education-modal', + 'parent' => 'payments', + 'subsection' => $is_recurring ? 'recurring' : '', + 'pro_badge' => ! Helpers::is_allowed_license_type(), + 'data' => $this->get_conditional_logic_section_data(), + 'attrs' => [ + 'disabled' => 'disabled', + ], + ], + false + ); + } + + /** + * Get conditional logic section data. + * + * @since 1.9.5 + * + * @return array + */ + private function get_conditional_logic_section_data(): array { + + $addon = wpforms()->obj( 'addons' )->get_addon( $this->slug ); + + if ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && + $addon['action'] !== 'upgrade' + ) + ) { + return []; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'install' ) { + return [ + 'action' => 'install', + 'message' => esc_html__( 'The Square Pro addon is required to enable conditional logic for payments. Would you like to install and activate it?', 'wpforms-lite' ), + 'url' => $addon['url'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + 'license' => 'pro', + ]; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'activate' ) { + return [ + 'action' => 'activate', + 'message' => esc_html__( 'The Square Pro addon is required to enable conditional logic for payments. Would you like to activate it?', 'wpforms-lite' ), + 'path' => $addon['path'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + ]; + } + + return [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Smart Conditional Logic', 'wpforms-lite' ), + 'utm-content' => 'Builder Square Conditional Logic', + 'licence' => 'pro', + ]; + } + + /** + * Get recurring payments conditional logic for the Square settings panel. + * + * @since 1.9.5 + * + * @param string $plan_id Plan ID. + * + * @return string + */ + private function recurring_payments_conditional_logic_section( string $plan_id ): string { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + return $this->get_conditional_logic_toggle( true ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Traits/Content.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Traits/Content.php new file mode 100644 index 0000000..ea09d52 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Builder/Traits/Content.php @@ -0,0 +1,565 @@ +builder_alerts() ) { + return; + } + + $hide_class = ! Helpers::has_square_field( $this->form_data ) ? 'wpforms-hidden' : ''; + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo Notices::get_fee_notice( $hide_class ); + + $this->maybe_convert_legacy_settings(); + + echo '
              '; + + if ( ! Helpers::is_pro() ) { + $this->builder_content_one_time(); + $this->builder_content_recurring(); + } else { + parent::builder_content(); + } + + echo '
              '; + } + + /** + * Convert legacy settings if they exist. + * + * @since 1.9.5 + */ + private function maybe_convert_legacy_settings() { + + if ( empty( $this->form_data['payments']['square']['enable'] ) ) { + return; + } + + // Enable one-time payments if they were active. + unset( $this->form_data['payments']['square']['enable'] ); + + $this->form_data['payments']['square']['enable_one_time'] = 1; + } + + /** + * Get content inside the one time payment area. + * + * @since 1.9.5 + * + * @return string + */ + protected function get_builder_content_one_time_content(): string { + + $content = wpforms_panel_field( + 'text', + 'square', + 'payment_description', + $this->form_data, + esc_html__( 'Payment Description', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'tooltip' => esc_html__( 'Enter your payment description. Eg: Donation for the soccer team.', 'wpforms-lite' ), + ], + false + ); + + $content .= wpforms_panel_field( + 'select', + 'square', + 'buyer_email', + $this->form_data, + esc_html__( 'Buyer Email', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'field_map' => [ 'email' ], + 'placeholder' => esc_html__( '--- Select Buyer Email ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( "Select the field that contains the buyer's email address. This field is optional.", 'wpforms-lite' ), + ], + false + ); + + $content .= wpforms_panel_field( + 'select', + 'square', + 'billing_name', + $this->form_data, + esc_html__( 'Billing Name', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'field_map' => [ 'name' ], + 'placeholder' => esc_html__( '--- Select Billing Name ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( "Select the field that contains the billing's name. This field is optional.", 'wpforms-lite' ), + ], + false + ); + + $content .= $this->get_address_panel_fields(); + $content .= $this->single_payments_conditional_logic_section(); + + return $content; + } + + /** + * Get content inside the recurring payment area. + * + * @since 1.9.5 + * + * @param string $plan_id Plan id. + * + * @return string + */ + protected function get_builder_content_recurring_payment_content( $plan_id ): string { + + $content = wpforms_panel_field( + 'text', + $this->slug, + 'name', + $this->form_data, + esc_html__( 'Plan Name', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'tooltip' => esc_html__( 'Enter the subscription name. Eg: Email Newsletter. Subscription period and price are automatically appended. If left empty the form name will be used.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-plan-name', + ], + false + ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'phase_cadence', + $this->form_data, + esc_html__( 'Phase Cadence', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'default' => 'yearly', + 'options' => wp_list_pluck( Helpers::get_subscription_cadences(), 'name', 'slug' ), + 'tooltip' => esc_html__( 'How often you would like the charge to recur.', 'wpforms-lite' ), + ], + false + ); + + $is_empty_email = isset( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['customer_email'] ) && empty( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['customer_email'] ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'customer_email', + $this->form_data, + esc_html__( 'Customer Email', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'input_class' => $is_empty_email ? 'wpforms-required-field-error' : '', + 'field_map' => [ 'email' ], + 'placeholder' => esc_html__( '--- Select Email ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( "Select the field that contains the customer's email address. This field is required.", 'wpforms-lite' ), + ], + false + ); + + $is_empty_name = isset( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['customer_name'] ) && empty( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['customer_name'] ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'customer_name', + $this->form_data, + esc_html__( 'Customer Name', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'input_class' => $is_empty_name ? 'wpforms-required-field-error' : '', + 'field_map' => [ 'name' ], + 'placeholder' => esc_html__( '--- Select Name ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( "Select the field that contains the customer's name. This field is required.", 'wpforms-lite' ), + ], + false + ); + + $content .= $this->get_address_panel_fields( $plan_id ); + $content .= $this->recurring_payments_conditional_logic_section( $plan_id ); + + return $content; + } + + /** + * Display Single payment content inside the panel content area. + * + * @since 1.9.5 + */ + private function builder_content_one_time() { + ?> + +
              +

              + +

              + slug, + 'enable_one_time', + $this->form_data, + esc_html__( 'Enable one-time payments', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'default' => '0', + 'tooltip' => esc_html__( 'Allow your customers to one-time pay via the form.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-toggle wpforms-panel-content-section-payment-toggle-one-time', + ] + ); + ?> +
              + get_builder_content_one_time_content(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
              +
              + + +
              +

              + +

              + add_plan_education(); + + wpforms_panel_field( + 'toggle', + $this->slug, + 'enable_recurring', + $this->form_data, + esc_html__( 'Enable recurring subscription payments', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'default' => '0', + 'tooltip' => esc_html__( 'Allow your customer to pay recurringly via the form.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-toggle wpforms-panel-content-section-payment-toggle-recurring', + ] + ); + ?> +
              + form_data['payments'][ $this->slug ]['recurring'] ) ) { + $this->form_data['payments'][ $this->slug ]['recurring'][] = []; + } + + foreach ( $this->form_data['payments'][ $this->slug ]['recurring'] as $plan_id => $plan_settings ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/payment/recurring/item', + [ + 'plan_id' => $plan_id, + 'content' => $this->get_builder_content_recurring_payment_content( $plan_id ), + ], + true + ); + + break; + } + ?> +
              +
              + ' . esc_html( $label ) . ''; + + return; + } + + $addon = wpforms()->obj( 'addons' )->get_addon( 'wpforms-square' ); + + if ( empty( $addon ) ) { + return; + } + + echo '' . esc_html( $label ) . ''; + } + + /** + * Get address panel fields. + * + * @since 1.9.5 + * + * @param string|null $plan_id Plan ID. + * + * @return string + */ + private function get_address_panel_fields( $plan_id = null ): string { + + $args = [ + 'parent' => 'payments', + 'field_map' => [ 'address' ], + ]; + + $is_pro = wpforms()->is_pro(); + + if ( ! $is_pro ) { + $args['pro_badge'] = true; + $args['data'] = [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Customer Address', 'wpforms-lite' ), + 'utm-content' => 'Builder Square Address Field', + 'licence' => 'pro', + ]; + $args['input_class'] = 'education-modal'; + $args['readonly'] = true; + } else { + $args['tooltip'] = esc_html__( 'Select the field that contains the customer\'s Address. This field is optional.', 'wpforms-lite' ); + } + + // Check if subscription. + if ( ! is_null( $plan_id ) ) { + $args['placeholder'] = esc_html__( '--- Select Address ---', 'wpforms-lite' ); + $args['subsection'] = 'recurring'; + $args['index'] = $plan_id; + + return wpforms_panel_field( + 'select', + $this->slug, + 'customer_address', + $this->form_data, + esc_html__( 'Customer Address', 'wpforms-lite' ), + $args, + false + ); + } + + if ( ! $is_pro ) { + $args['data']['name'] = esc_html__( 'Billing Address', 'wpforms-lite' ); + } else { + $args['tooltip'] = esc_html__( 'Select the field that contains the billing\'s address. This field is optional.', 'wpforms-lite' ); + } + + $args['placeholder'] = esc_html__( '--- Select Billing Address ---', 'wpforms-lite' ); + + return wpforms_panel_field( + 'select', + $this->slug, + 'billing_address', + $this->form_data, + esc_html__( 'Billing Address', 'wpforms-lite' ), + $args, + false + ); + } + + /** + * Check if connection exists and ready to use. + * + * @since 1.9.5 + * + * @return bool + */ + private function builder_alerts(): bool { + + $connection = Connection::get(); + + if ( ! $connection ) { + $this->alert_content( + __( 'Heads up! Square payments can\'t be enabled yet.', 'wpforms-lite' ), + sprintf( + wp_kses( /* translators: %s - Admin area Payments settings page URL. */ + __( "First, please connect to your Square account on the WPForms Settings page.", 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + ], + ] + ), + esc_url( Helpers::get_settings_page_url() . '#wpforms-setting-row-square-heading' ) + ) + ); + + return true; + } + + if ( ! $connection->is_usable() ) { + + $this->alert_content( + __( 'Square payments can\'t be processed because there\'s a problem with the account connection.', 'wpforms-lite' ), + sprintf( + wp_kses( /* translators: %s - the WPForms Payments settings page URL. */ + __( "First, please resolve the connection issue on the Payment Settings page.", 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + ], + ] + ), + Helpers::is_sandbox_mode() ? esc_html__( 'Sandbox', 'wpforms-lite' ) : esc_html__( 'Production', 'wpforms-lite' ), + esc_url( Helpers::get_settings_page_url() . '#wpforms-setting-row-square-heading' ) + ) + ); + + return true; + } + + if ( $connection->is_expired() ) { + + $this->alert_content( + __( 'Heads up! Square account connection is expired.', 'wpforms-lite' ), + sprintf( + wp_kses( /* translators: %s - the WPForms Payments settings page URL. */ + __( "Tokens must be refreshed. Please refresh them on the WPForms Settings page.", 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + ], + ] + ), + Helpers::is_sandbox_mode() ? esc_html__( 'Sandbox', 'wpforms-lite' ) : esc_html__( 'Production', 'wpforms-lite' ), + esc_url( Helpers::get_settings_page_url() . '#wpforms-setting-row-square-heading' ) + ) + ); + + return true; + } + + $this->credit_card_alert(); + + return false; + } + + /** + * Display alert content. + * + * @since 1.9.5 + * + * @param string $title Alert title. + * @param string $message Alert message. + */ + private function alert_content( string $title, string $message ) { + ?> + + alert_icon(); ?> + +
              + +

              + +

              + +

              + +

              +

              + learn_more_link(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +

              +
              + + form_data ) ? 'wpforms-hidden' : ''; + ?> + +
              + alert_content( + '', + esc_html__( 'To use Square, first add the Square payment field to your form.', 'wpforms-lite' ) + ); + ?> +
              + + ', + esc_url( $this->icon ), + esc_attr__( 'Connect WPForms to Square.', 'wpforms-lite' ) + ); + } + + /** + * Learn more link. + * + * @since 1.9.5 + * + * @return string + */ + private function learn_more_link(): string { + + return sprintf( + '%2$s', + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-square-addon-with-wpforms/', 'builder-payments', 'Square Documentation' ) ), + esc_html__( 'Learn more about our Square integration.', 'wpforms-lite' ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Connect.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Connect.php new file mode 100644 index 0000000..4a14c41 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Connect.php @@ -0,0 +1,876 @@ +webhooks_manager = new WebhooksManager(); + + $this->hooks(); + + return $this; + } + + /** + * Connect hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'admin_init', [ $this, 'handle_actions' ] ); + add_action( 'wpforms_square_refresh_connection', [ $this, 'refresh_connection_schedule' ] ); + add_action( 'wp_ajax_wpforms_square_refresh_connection', [ $this, 'refresh_connection_manual' ] ); + add_action( 'wp_ajax_wpforms_square_create_webhook', [ $this->webhooks_manager, 'connect' ] ); + } + + /** + * Handle actions. + * + * @since 1.9.5 + */ + public function handle_actions() { + + if ( ! wpforms_current_user_can() || wp_doing_ajax() ) { + return; + } + + $this->validate_scopes(); + + if ( + isset( $_GET['_wpnonce'] ) && + wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'wpforms_square_disconnect' ) + ) { + $this->handle_disconnect(); + + return; + } + + $this->schedule_refresh(); + + if ( + ! empty( $_GET['state'] ) && + isset( $_GET['square_connect'] ) && + $_GET['square_connect'] === 'complete' + ) { + $this->handle_connected(); + } + } + + /** + * Validate connection scopes. + * + * @since 1.9.5 + */ + private function validate_scopes() { + + if ( Helpers::is_license_ok() ) { + return; + } + + $connection = Connection::get(); + + if ( ! $connection || ! $connection->is_configured() ) { + return; + } + + // Bail early if currency is not supported for applying a fee. + if ( ! Helpers::is_application_fee_supported() ) { + return; + } + + if ( $connection->get_scopes_updated() ) { + return; + } + + // Revoke tokens if the license is not valid and scopes are missing. + $connection->revoke_tokens(); + } + + /** + * Handle a successful connection. + * + * @since 1.9.5 + */ + private function handle_connected() { + + $state = sanitize_text_field( wp_unslash( $_GET['state'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated + + if ( empty( $state ) ) { + return; + } + + $connection_raw = $this->fetch_new_connection( $state ); + $connection = $this->maybe_save_connection( $connection_raw ); + + if ( ! $connection ) { + return; + } + + $mode = $connection->get_mode(); + + // Sync the Square settings mode with a connection mode. + Helpers::set_mode( $mode ); + + $this->prepare_locations( $mode ); + + $redirect_url = Helpers::get_settings_page_url(); + + if ( ! $connection->is_usable() ) { + $redirect_url .= '#wpforms-setting-row-square-heading'; + } + + wp_safe_redirect( $redirect_url ); + exit; + } + + /** + * Handle disconnection. + * + * @since 1.9.5 + */ + private function handle_disconnect() { + + $live_mode = isset( $_GET['live_mode'] ) ? absint( $_GET['live_mode'] ) : 0; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $mode = $live_mode ? Environment::PRODUCTION : Environment::SANDBOX; + $connection = Connection::get( $mode ); + + if ( $connection ) { + $connection->delete(); + } + + if ( Helpers::is_production_mode() ) { + $this->unschedule_refresh(); + } + + if ( Helpers::is_webhook_enabled() ) { + Helpers::reset_webhook_configuration( true ); + } + + Helpers::set_locataion_id( '', $mode ); + Helpers::detete_transients( $mode ); + + wp_safe_redirect( Helpers::get_settings_page_url() ); + exit; + } + + /** + * Handle refresh connection triggered by AS task. + * + * @since 1.9.5 + */ + public function refresh_connection_schedule() { + + // Don't run refresh tokens for Sandbox connection. + if ( Helpers::is_sandbox_mode() ) { + return; + } + + $connection = Connection::get(); + + // Check connection and cancel AS task if connection is not exists, broken OR already invalid. + if ( ! $connection || ! $connection->is_configured() || ! $connection->is_valid() ) { + $this->unschedule_refresh(); + + return; + } + + // If connection is not expired, we'll just fetch active locations. + if ( ! $connection->is_expired() ) { + $this->prepare_locations( $connection->get_mode() ); + + return; + } + + // If connection is expired, try to refresh tokens. + $connection = $this->try_refresh_connection( $connection ); + + if ( is_wp_error( $connection ) ) { + return; + } + + // If connection is invalid, we'll cancel AS task. + if ( $connection && ! $connection->is_valid() ) { + $this->unschedule_refresh(); + + return; + } + + // Make sure and check connection tokens through fetching active locations. + $this->prepare_locations( $connection->get_mode() ); + } + + /** + * Handle refresh connection triggered manually. + * + * @since 1.9.5 + */ + public function refresh_connection_manual() { + + // Security and permissions check. + if ( + ! check_ajax_referer( 'wpforms-admin', 'nonce', false ) || + ! wpforms_current_user_can() + ) { + wp_send_json_error( esc_html__( 'You are not allowed to perform this action', 'wpforms-lite' ) ); + } + + $error_general = esc_html__( 'Something went wrong while performing a refresh tokens request', 'wpforms-lite' ); + + // Required data check. + if ( empty( $_POST['mode'] ) ) { + wp_send_json_error( $error_general ); + } + + $mode = sanitize_key( $_POST['mode'] ); + $connection = Connection::get( $mode ); + + // Connection check. + if ( ! $connection || ! $connection->is_configured() ) { + wp_send_json_error( $error_general ); + } + + // Try to refresh connection. + $connection = $this->try_refresh_connection( $connection ); + + if ( is_wp_error( $connection ) ) { + $error_specific = $connection->get_error_message(); + $error_message = empty( $error_specific ) ? $error_general : $error_general . ': ' . $error_specific; + + wp_send_json_error( $error_message ); + } + + $this->prepare_locations( $mode ); + + wp_send_json_success(); + } + + /** + * Try to refresh connection. + * + * @since 1.9.5 + * + * @param Connection $connection Connection object. + * + * @return Connection|WP_Error + */ + private function try_refresh_connection( $connection ) { + + $response = $this->fetch_refresh_connection( $connection->get_refresh_token(), $connection->get_mode() ); + + if ( is_wp_error( $response ) ) { + + if ( $response->get_error_code() === 'refresh_connection_fail' && $connection->is_valid() ) { + $connection + ->set_status( Connection::STATUS_INVALID ) + ->save(); + } + + return $response; + } + + $refreshed_connection = $this->maybe_save_connection( $response, true ); + + return $refreshed_connection ?? new WP_Error(); + } + + /** + * Schedule the connection refresh. + * + * @since 1.9.5 + */ + private function schedule_refresh() { + + /** + * Allow modifying a condition check where the AS task will be registered. + * + * @since 1.9.5 + * + * @param int $interval The refresh interval. + */ + if ( (bool) apply_filters( 'wpforms_square_admin_connect_schedule_refresh_prevent_task_registration', ! wpforms_is_admin_page() ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return; + } + + $tasks = wpforms()->obj( 'tasks' ); + + if ( is_null( $tasks ) ) { + return; + } + + if ( $tasks->is_scheduled( 'wpforms_square_refresh_connection' ) !== false ) { + return; + } + + // Register AS task only if a Production connection exists. + if ( ! Connection::get( Environment::PRODUCTION ) ) { + return; + } + + /** + * Filter the frequency with which the OAuth connection should be refreshed. + * + * @since 1.9.5 + * + * @param int $interval The refresh interval. + */ + $interval = (int) apply_filters( 'wpforms_square_admin_connect_schedule_refresh_interval', 12 * HOUR_IN_SECONDS ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $tasks->create( 'wpforms_square_refresh_connection' ) + ->recurring( time() + $interval, $interval ) + ->register(); + } + + /** + * Unschedule the connection refresh. + * + * @since 1.9.5 + */ + private function unschedule_refresh() { + + // Exit if AS function does not exist. + if ( ! function_exists( 'as_unschedule_all_actions' ) ) { + return; + } + + as_unschedule_all_actions( + 'wpforms_square_refresh_connection', + [ 'tasks_meta_id' => null ], + Tasks::GROUP + ); + } + + /** + * Check connection raw data and save it if everything is OK. + * + * @since 1.9.5 + * + * @param array $raw Connection raw data. + * @param bool $silent Optional. Whether to prevent showing admin notices. Default false. + * + * @return Connection|null + */ + private function maybe_save_connection( array $raw, bool $silent = false ) { + + $connection = new Connection( $raw, false ); + + // Bail if a connection doesn't have required data. + if ( ! $connection->is_configured() ) { + $silent ? wpforms_log( + 'Square error', + 'We could not connect to Square. No tokens were given.', + [ + 'type' => [ 'payment', 'error' ], + ] + ) : Notice::error( esc_html__( 'Square Error: We could not connect to Square. No tokens were given.', 'wpforms-lite' ) ); + + return null; + } + + // Prepare connection for save. + $connection + ->set_renew_at() + ->set_scopes_updated() + ->encrypt_tokens(); + + // Bail if a connection is not ready for save. + if ( ! $connection->is_saveable() ) { + $silent ? wpforms_log( + 'Square error', + 'We could not save an account connection safely. Please, try again later.', + [ + 'type' => [ 'payment', 'error' ], + ] + ) : Notice::error( esc_html__( 'Square Error: We could not save an account connection safely. Please, try again later.', 'wpforms-lite' ) ); + + return null; + } + + $connection->save(); + + return $connection; + } + + /** + * Prepare Square business locations. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return array + */ + private function prepare_locations( string $mode ): array { + + $locations = $this->fetch_locations( $mode ); + + if ( $locations === null ) { + $this->reset_location( $mode ); + + Transient::delete( 'wpforms_square_active_locations_' . $mode ); + + return []; + } + + $locations = $this->active_locations_filter( $locations ); + + if ( empty( $locations ) ) { + $this->reset_location( $mode ); + + Transient::set( 'wpforms_square_active_locations_' . $mode, [] ); + + return []; + } + + $this->set_location( $locations, $mode ); + + Transient::set( 'wpforms_square_active_locations_' . $mode, $locations ); + + return $locations; + } + + /** + * Fetch Square business locations. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return array|null + */ + private function fetch_locations( string $mode ) { + + $connection = Connection::get( $mode ); + + if ( ! $connection ) { + return null; + } + + $api = new Api( $connection ); + $locations = $api->get_locations(); + + if ( ! $locations ) { + $connection + ->set_status( Connection::STATUS_INVALID ) + ->save(); + + return null; + } + + return is_array( $locations ) ? $locations : [ $locations ]; + } + + /** + * Fetch Square seller account from Square. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return array|null + */ + private function fetch_account( string $mode ) { + + $connection = Connection::get( $mode ); + + if ( ! $connection ) { + return null; + } + + $api = new Api( $connection ); + + $merchant = $api->get_merchant( $connection->get_merchant_id() ); + + if ( ! $merchant ) { + return null; + } + + return $merchant->jsonSerialize(); + } + + /** + * Fetch new connection credentials. + * + * @since 1.9.5 + * + * @param string $state Unique ID to safely fetch connection data. + * + * @return array + */ + private function fetch_new_connection( string $state ): array { + + $connection = []; + $response = wp_remote_post( + $this->get_server_url() . '/oauth/square-connect', + [ + 'body' => [ + 'action' => 'credentials', + 'state' => $state, + ], + 'timeout' => 30, + ] + ); + + if ( ! is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) === 200 ) { + $body = json_decode( wp_remote_retrieve_body( $response ), true ); + $connection = is_array( $body ) ? $body : []; + } + + return $connection; + } + + /** + * Fetch refresh connection credentials. + * + * @since 1.9.5 + * + * @param string $token The refresh token. + * @param string $mode Square mode. + * + * @return array|WP_Error + */ + private function fetch_refresh_connection( string $token, string $mode ) { + + $response = wp_remote_post( + $this->get_server_url() . '/oauth/square-connect', + [ + 'body' => [ + 'action' => 'refresh', + 'live_mode' => absint( $mode === Environment::PRODUCTION ), + 'token' => $token, + ], + 'timeout' => 30, + ] + ); + + if ( wp_remote_retrieve_response_code( $response ) !== 200 ) { + return new WP_Error(); + } + + $body = json_decode( wp_remote_retrieve_body( $response ), true ); + + if ( ! is_array( $body ) ) { + return new WP_Error(); + } + + if ( ! empty( $body['success'] ) ) { + return $body; + } + + $error_message = empty( $body['message'] ) ? '' : wp_kses_post( $body['message'] ); + + return new WP_Error( 'refresh_connection_fail', $error_message ); + } + + /** + * Retrieve active business locations with processing capability. + * + * @since 1.9.5 + * + * @param array $locations Locations. + * + * @return array + */ + private function active_locations_filter( array $locations ): array { + + $active_locations = []; + + if ( empty( $locations ) ) { + return $active_locations; + } + + foreach ( $locations as $location ) { + if ( + ! $location instanceof Location || + $location->getStatus() !== LocationStatus::ACTIVE || + ! is_array( $location->getCapabilities() ) || + ! in_array( LocationCapability::CREDIT_CARD_PROCESSING, $location->getCapabilities(), true ) + ) { + continue; + } + + $location_id = $location->getId(); + + $active_locations[ $location_id ] = [ + 'id' => $location_id, + 'name' => $location->getName(), + 'currency' => $location->getCurrency(), + ]; + } + + return $active_locations; + } + + /** + * Set/update location things: ID and currency. + * + * @since 1.9.5 + * + * @param array $locations Active locations. + * @param string $mode Square mode. + */ + private function set_location( array $locations, string $mode ) { + + $connection = Connection::get( $mode ); + $stored_location_id = Helpers::get_location_id( $mode ); + + // Location ID was not set previously or saved ID is not available now. + if ( empty( $stored_location_id ) || ! isset( $locations[ $stored_location_id ] ) ) { + $stored_location_id = Helpers::array_key_first( $locations ); + + // Set a new location ID. + Helpers::set_locataion_id( $stored_location_id, $mode ); + } + + // Set location currency for connection. + // In this case, we can make sure that location currency is matched with WPForms currency. + if ( $connection !== null ) { + $connection->set_currency( $locations[ $stored_location_id ]['currency'] )->save(); + } + } + + /** + * Reset location ID and currency if no locations are received. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + */ + private function reset_location( string $mode ) { + + Helpers::set_locataion_id( '', $mode ); + + $connection = Connection::get( $mode ); + + if ( ! $connection ) { + return; + } + + $connection->set_currency( '' )->save(); + } + + /** + * Get cached business locations or fetch it from Square. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return array + */ + public function get_connected_locations( string $mode ): array { + + $mode = Helpers::validate_mode( $mode ); + $locations = Transient::get( 'wpforms_square_active_locations_' . $mode ); + + if ( empty( $locations ) ) { + $locations = $this->prepare_locations( $mode ); + } + + return $locations; + } + + /** + * Get cached Square seller account or fetch it from Square. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return array|null + */ + public function get_connected_account( string $mode ) { + + $mode = Helpers::validate_mode( $mode ); + $account = Transient::get( 'wpforms_square_account_' . $mode ); + + if ( empty( $account['id'] ) ) { + + $account_id = $this->get_connected_account_id( $mode ); + + if ( ! $account_id ) { + return null; + } + + $account = $this->fetch_account( $mode ); + + if ( empty( $account['id'] ) || $account['id'] !== $account_id ) { + return null; + } + + Transient::set( 'wpforms_square_account_' . $mode, $account ); + } + + return $account; + } + + /** + * Retrieve saved Square seller account ID from DB. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + public function get_connected_account_id( string $mode ): string { + + $connection = Connection::get( $mode ); + $account_id = $connection ? $connection->get_merchant_id() : ''; + + /** + * Filter the connected account ID. + * + * @since 1.9.5 + * + * @param string $account_id Square account ID. + * @param string $mode Square mode. + */ + return (string) apply_filters( 'wpforms_square_admin_connect_get_connected_account_id', $account_id, $mode ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Retrieve the connect URL. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + public function get_connect_url( string $mode ): string { + + $mode = Helpers::validate_mode( $mode ); + + return add_query_arg( + [ + 'action' => 'init', + 'live_mode' => absint( $mode === Environment::PRODUCTION ), + 'state' => uniqid( '', true ), + 'site_url' => rawurlencode( Helpers::get_settings_page_url() ), + 'scopes' => implode( ' ', $this->get_scopes() ), + ], + $this->get_server_url() . '/oauth/square-connect' + ); + } + + /** + * Retrieve the disconnect URL. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + public function get_disconnect_url( string $mode ): string { + + $mode = Helpers::validate_mode( $mode ); + $action = 'wpforms_square_disconnect'; + $url = add_query_arg( + [ + 'action' => $action, + 'live_mode' => absint( $mode === Environment::PRODUCTION ), + ], + Helpers::get_settings_page_url() + ); + + return wp_nonce_url( $url, $action ); + } + + /** + * Retrieve a connect server URL. + * + * @since 1.9.5 + * + * @return string + */ + public function get_server_url(): string { + + if ( defined( 'WPFORMS_SQUARE_LOCAL_CONNECT_SERVER' ) && WPFORMS_SQUARE_LOCAL_CONNECT_SERVER ) { + return home_url(); + } + + return self::WPFORMS_URL; + } + + /** + * Retrieve the connection scopes (permissions). + * + * @since 1.9.5 + * + * @return array + */ + public function get_scopes(): array { + + /** + * Filter the connection scopes. + * + * @since 1.9.5 + * + * @param array $scopes The connection scopes. + */ + return (array) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_square_admin_connect_get_scopes', + [ + 'MERCHANT_PROFILE_READ', + 'PAYMENTS_READ', + 'PAYMENTS_WRITE', + 'ORDERS_READ', + 'ORDERS_WRITE', + 'CUSTOMERS_READ', + 'CUSTOMERS_WRITE', + 'SUBSCRIPTIONS_READ', + 'SUBSCRIPTIONS_WRITE', + 'ITEMS_READ', + 'ITEMS_WRITE', + 'INVOICES_WRITE', + 'INVOICES_READ', + 'PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS', + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Entries.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Entries.php new file mode 100644 index 0000000..47d17fe --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Entries.php @@ -0,0 +1,54 @@ +hooks(); + + return $this; + } + + /** + * Entries hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_filter( 'wpforms_has_payment_gateway', [ $this, 'has_payment_gateway' ], 10, 2 ); + } + + /** + * Make Square payment gateway work on the admin entries page. + * + * @since 1.9.5 + * + * @param bool $result Initial value. + * @param array $form_data Form data and settings. + * + * @return bool + */ + public function has_payment_gateway( $result, array $form_data ): bool { + + if ( Helpers::is_payments_enabled( $form_data ) ) { + return true; + } + + return (bool) $result; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Notices.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Notices.php new file mode 100644 index 0000000..715a88a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Notices.php @@ -0,0 +1,276 @@ +hooks(); + + return $this; + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'wpforms_settings_init', [ $this, 'display_notice' ] ); + } + + /** + * Display admin error notice if something wrong with the Square settings. + * + * @since 1.9.5 + */ + public function display_notice() { + + $connection = Connection::get(); + + if ( ! $connection ) { + return; + } + + $this->maybe_display_notice( $connection ); + } + + /** + * Maybe display admin notices in the settings area. + * + * @since 1.9.5 + * + * @param Connection $connection Connection data. + */ + private function maybe_display_notice( Connection $connection ) { + + $all_notices = array_filter( + [ + $this->maybe_get_notice( $connection ), + $this->maybe_get_webhook_notice(), + ] + ); + + if ( empty( $all_notices ) ) { + return; + } + + // Notice header. + $message = sprintf( + '%s', + esc_html__( 'There Are Some Problems With Your Square Connection', 'wpforms-lite' ) + ); + + foreach ( $all_notices as $notice ) { + $message .= '
              ' . $notice; + } + + // Display the notice. + Notice::error( $message ); + } + + /** + * Maybe get admin error notice if a connection exists, but is not ready to use. + * + * @since 1.9.5 + * + * @param Connection $connection Connection object. + * + * @return string Notice. + */ + private function maybe_get_notice( Connection $connection ): string { + + if ( ! $connection->is_configured() ) { + return esc_html__( 'Square account connection is missing required data. You must reconnect your Square account.', 'wpforms-lite' ); + } + + if ( ! $connection->is_valid() ) { + return esc_html__( 'Square account connection is invalid. You must reconnect your Square account.', 'wpforms-lite' ); + } + + if ( $connection->is_expired() ) { + return esc_html__( 'Square account connection is expired. Tokens must be refreshed.', 'wpforms-lite' ); + } + + if ( empty( Helpers::get_location_id() ) ) { + return esc_html__( 'Business Location is required to process Square payments.', 'wpforms-lite' ); + } + + if ( $connection->is_currency_matched() ) { + return ''; + } + + return sprintf( /* translators: %1$s - Selected currency on the WPForms Settings admin page; %2$s - Currency of a business location. */ + esc_html__( 'The currency you have set (%1$s) does not match the currency of your Square business location (%2$s). Please choose a different business location or update your WPForms currency to %2$s.', 'wpforms-lite' ), + esc_html( wpforms_get_currency() ), + esc_html( $connection->get_currency() ) + ); + } + + /** + * Maybe get webhook notice if connection is not set. + * + * @since 1.9.5 + * + * @return string + */ + private function maybe_get_webhook_notice(): string { + + // Bail out if webhooks are not enabled. + if ( ! Helpers::is_webhook_enabled() ) { + return ''; + } + + // Bail out if webhooks are configured and active. + if ( Helpers::is_webhook_configured() ) { + return ''; + } + + // If ENDPOINT_OPTION is set, it says that webhooks were configured previously. We have another notice for this case. + if ( get_option( WebhooksHealthCheck::ENDPOINT_OPTION ) ) { + return ''; + } + + return esc_html__( 'Webhooks are enabled, but not yet connected.', 'wpforms-lite' ); + } + + /** + * Get a notice if a license is insufficient not to be charged a fee. + * + * @since 1.9.5 + * + * @param string $classes Additional notice classes. + * + * @return string + */ + public static function get_fee_notice( string $classes = '' ): string { + + if ( ! Helpers::is_application_fee_supported() ) { + return ''; + } + + $is_allowed_license = Helpers::is_allowed_license_type(); + $is_active_license = Helpers::is_license_active(); + $notice = ''; + + if ( $is_allowed_license && $is_active_license ) { + return $notice; + } + + if ( ! $is_allowed_license ) { + $notice = self::get_non_pro_license_level_notice(); + } elseif ( ! $is_active_license ) { + $notice = self::get_non_active_license_notice(); + } + + if ( wpforms_is_admin_page( 'builder' ) ) { + return sprintf( '

              %s

              ', $notice ); + } + + return sprintf( '

              %s

              ', $notice ); + } + + /** + * Get a fee notice for a non-active license. + * + * If the license is NOT set/activated, show the notice to activate it. + * Otherwise, show the notice to renew it. + * + * @since 1.9.5 + * + * @return string + */ + private static function get_non_active_license_notice(): string { + + $setting_page_url = add_query_arg( + [ + 'page' => 'wpforms-settings', + 'view' => 'general', + ], + admin_url( 'admin.php' ) + ); + + // The license is not set/activated at all. + if ( empty( wpforms_get_license_key() ) ) { + return sprintf( + wp_kses( /* translators: %s - general admin settings page URL. */ + __( 'Pay-as-you-go Pricing
              3%% fee per-transaction + Square fees. Activate your license to remove additional fees and unlock powerful features.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( $setting_page_url ) + ); + } + + return sprintf( + wp_kses( /* translators: %s - general admin settings page URL. */ + __( 'Pay-as-you-go Pricing
              3%% fee per-transaction + Square fees. Renew your license to remove additional fees and unlock powerful features.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( $setting_page_url ) + ); + } + + /** + * Get a fee notice for license levels below the `pro`. + * + * Show the notice to upgrade to Pro. + * + * @since 1.9.5 + * + * @return string + */ + private static function get_non_pro_license_level_notice(): string { + + $utm_content = 'Square Pro - Remove Fees'; + $utm_medium = wpforms_is_admin_page( 'builder' ) ? 'Payment Settings' : 'Settings - Payments'; + $upgrade_link = wpforms()->is_pro() ? wpforms_admin_upgrade_link( $utm_medium, $utm_content ) : wpforms_utm_link( 'https://wpforms.com/lite-upgrade/', $utm_medium, $utm_content ); + + return sprintf( + wp_kses( /* translators: %s - WPForms.com Upgrade page URL. */ + __( 'Pay-as-you-go Pricing
              3%% fee per-transaction + Square fees. Upgrade to Pro to remove additional fees and unlock powerful features.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( $upgrade_link ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Payments/SingleActionsHandler.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Payments/SingleActionsHandler.php new file mode 100644 index 0000000..d602f14 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Payments/SingleActionsHandler.php @@ -0,0 +1,165 @@ +api = new Api( Connection::get() ); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + if ( wpforms_is_admin_ajax() ) { + add_action( 'wp_ajax_wpforms_square_payments_refund', [ $this, 'ajax_payment_refund' ] ); + add_action( 'wp_ajax_wpforms_square_payments_cancel', [ $this, 'ajax_payments_cancel' ] ); + + return; + } + + add_filter( 'wpforms_admin_strings', [ $this, 'admin_strings' ] ); + } + + /** + * Add admin strings related to payments. + * + * @since 1.9.5 + * + * @param array $admin_strings Admin strings. + * + * @return array + */ + public function admin_strings( $admin_strings ): array { + + $admin_strings = (array) $admin_strings; + + $admin_strings['single_payment_button_handlers'][] = 'square'; + + return $admin_strings; + } + + /** + * Refund a single payment. + * + * Handler for ajax request with action "wpforms_payments_refund". + * + * @since 1.9.5 + */ + public function ajax_payment_refund() { + + $payment_db = $this->get_db_payment(); + + $amount_to_refund = $payment_db->total_amount; + + if ( $payment_db->status === 'partrefund' ) { + + $already_refunded = wpforms()->obj( 'payment_meta' )->get_single( $payment_db->id, 'refunded_amount' ); + $amount_to_refund = $payment_db->total_amount - $already_refunded; + } + + $args = [ + 'amount' => Helpers::format_amount( $amount_to_refund ), + 'currency' => $payment_db->currency, + 'reason' => 'Requested by customer', + ]; + + $refund = $this->api->refund_payment( $payment_db->transaction_id, $args ); + + if ( ! $refund ) { + wp_send_json_error( [ 'message' => esc_html__( 'Refund failed.', 'wpforms-lite' ) ] ); + } + + $log = sprintf( + 'Square payment refunded from the WPForms plugin interface. Refunded amount: %1$s.', + wpforms_format_amount( wpforms_sanitize_amount( $amount_to_refund ), true ) + ); + + if ( UpdateHelpers::refund_payment( $payment_db, $payment_db->total_amount, $log ) ) { + wp_send_json_success( [ 'message' => esc_html__( 'Refund successful.', 'wpforms-lite' ) ] ); + } + + wp_send_json_error( [ 'message' => esc_html__( 'Saving refund in the database failed.', 'wpforms-lite' ) ] ); + } + + /** + * Cancel subscription. + * + * Handler for ajax request with action "wpforms_payments_cancel_subscription". + * + * @since 1.9.5 + */ + public function ajax_payments_cancel() { + + $payment_db = $this->get_db_payment(); + + $cancel = $this->api->cancel_subscription( $payment_db->subscription_id ); + + if ( ! $cancel ) { + wp_send_json_error( [ 'message' => esc_html__( 'Subscription cancellation failed.', 'wpforms-lite' ) ] ); + } + + if ( UpdateHelpers::cancel_subscription( $payment_db->id, 'Square subscription cancelled from the WPForms plugin interface.' ) ) { + wp_send_json_success( [ 'message' => esc_html__( 'Subscription cancelled.', 'wpforms-lite' ) ] ); + } + + wp_send_json_error( [ 'message' => esc_html__( 'Updating subscription in the database failed.', 'wpforms-lite' ) ] ); + } + + /** + * Retrieve the payment from the database. + * + * @since 1.9.5 + * + * @return object|null + */ + private function get_db_payment() { + + if ( ! isset( $_POST['payment_id'] ) || ! wpforms_current_user_can( wpforms_get_capability_manage_options() ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'You are not allowed to perform this action.', 'wpforms-lite' ) ] ); + } + + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + $payment_id = (int) $_POST['payment_id']; + $payment_db = wpforms()->obj( 'payment' )->get( $payment_id ); + + if ( empty( $payment_db ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Payment not found in the database.', 'wpforms-lite' ) ] ); + } + + return $payment_db; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Settings.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Settings.php new file mode 100644 index 0000000..abd8b0a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/Settings.php @@ -0,0 +1,577 @@ +connect = ( new Connect() )->init(); + $this->webhook_settings = ( new WebhookSettings() )->init(); + + $this->hooks(); + + return $this; + } + + /** + * Settings hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'wpforms_settings_enqueue', [ $this, 'enqueue_assets' ] ); + add_filter( 'wpforms_admin_strings', [ $this, 'javascript_strings' ] ); + + add_filter( 'wpforms_settings_defaults', [ $this, 'register' ], 12 ); + add_action( 'wpforms_settings_updated', [ $this, 'reset_transients' ] ); + } + + /** + * Enqueue Settings assets. + * + * @since 1.9.5 + */ + public function enqueue_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-admin-settings-square', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/admin-settings-square{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_script( + 'wpforms-admin-settings-square', + WPFORMS_PLUGIN_URL . "assets/js/integrations/square/admin/settings-square{$min}.js", + [ 'jquery', 'wpforms-admin-utils' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Localize needed strings. + * + * @since 1.9.5 + * + * @param array $strings JS strings. + * + * @return array + */ + public function javascript_strings( $strings ): array { + + $strings = (array) $strings; + + $strings['square'] = [ + 'mode_update' => wp_kses( + __( + '

              Switching sandbox/production modes requires Square account reconnection.

              Press the "Connect with Square" button after saving the settings to reconnect.

              ', + 'wpforms-lite' + ), + [ + 'p' => [], + 'em' => [], + ] + ), + 'refresh_error' => esc_html__( 'Something went wrong while performing a refresh tokens request.', 'wpforms-lite' ), + 'webhook_create_title' => esc_html__( 'Personal Access Token', 'wpforms-lite' ), + 'webhook_create_description' => sprintf( + wp_kses( /* translators: %s - the Square developer dashboard URL. */ + __( '

              To receive events, create a webhook route by providing your Personal Access Token, which you can find after registering an app on the Square Developer Dashboard. You can also set it up manually in the Advanced section.

              See our documentation for details.

              ', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + ], + 'p' => [], + ] + ), + esc_url( WebhookSettings::SQUARE_APPS_URL ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-square-webhooks/', 'Settings - Payments', 'Square Webhooks Documentation Modal' ) ) + ), + + 'webhook_token_placeholder' => esc_html__( 'Personal Access Token', 'wpforms-lite' ), + 'token_is_required' => esc_html__( 'Personal Access Token is required to proceed.', 'wpforms-lite' ), + 'webhook_urls' => [ + 'rest' => Helpers::get_webhook_url_for_rest(), + 'curl' => Helpers::get_webhook_url_for_curl(), + ], + ]; + + return $strings; + } + + /** + * Register Settings fields. + * + * @since 1.9.5 + * + * @param array $settings Array of current form settings. + * + * @return array + */ + public function register( $settings ): array { + + $settings = (array) $settings; + + $settings['payments']['square-heading'] = [ + 'id' => 'square-heading', + 'content' => $this->get_heading_content(), + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading' ], + ]; + + foreach ( Helpers::get_available_modes() as $mode ) { + $mode = sanitize_key( $mode ); + + $settings['payments'][ 'square-connection-status-' . $mode ] = [ + 'id' => 'square-connection-status-' . $mode, + 'name' => esc_html__( 'Connection Status', 'wpforms-lite' ), + 'content' => $this->get_connection_status_content( $mode ), + 'type' => 'content', + 'is_hidden' => Helpers::get_mode() !== $mode, + ]; + + if ( $this->is_connected ) { + + $is_location_set = ! empty( Helpers::get_location_id( $mode ) ); + + $settings['payments'][ 'square-location-id-' . $mode ] = [ + 'id' => 'square-location-id-' . $mode, + 'class' => $is_location_set ? '' : 'location-error', + 'name' => esc_html__( 'Business Location', 'wpforms-lite' ), + 'desc' => esc_html__( 'Only active locations that support credit card processing in Square can be chosen.', 'wpforms-lite' ), + 'type' => 'select', + 'choicesjs' => true, + 'options' => $this->get_location_options( $mode ), + 'is_hidden' => Helpers::get_mode() !== $mode, + ]; + + $settings['payments'][ 'square-location-status-' . $mode ] = [ + 'id' => 'square-location-status-' . $mode, + 'content' => $is_location_set ? '' : $this->get_location_content_error(), + 'type' => 'content', + 'is_hidden' => Helpers::get_mode() !== $mode, + ]; + } + } + + $settings['payments']['square-sandbox-mode'] = [ + 'id' => 'square-sandbox-mode', + 'name' => esc_html__( 'Test Mode', 'wpforms-lite' ), + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Square payment with more details. */ + __( 'Prevent Square from processing live transactions. Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + 'class' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-test-square-payments-on-your-site/', 'Settings - Payments', 'Square Test Documentation' ) ) + ), + 'type' => 'toggle', + 'status' => true, + ]; + + $webhooks_settings = $this->webhook_settings->settings( $settings ); + + return array_merge( $settings, $webhooks_settings ); + } + + /** + * Reset transients on settings save. + * + * @since 1.9.5 + */ + public function reset_transients() { + + array_map( 'WPForms\Integrations\Square\Helpers::detete_transients', Helpers::get_available_modes() ); + } + + /** + * Retrieve a section header content. + * + * @since 1.9.5 + * + * @return string + */ + private function get_heading_content(): string { + + return '

              ' . esc_html__( 'Square', 'wpforms-lite' ) . '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com Square documentation article URL. */ + __( 'Easily collect credit card payments with Square. For getting started and more information, see our Square documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-square-addon-with-wpforms/', 'Settings - Payments', 'Square Documentation' ) ) + ) . + '

              ' . + Notices::get_fee_notice(); + } + + /** + * Retrieve a Connection Status setting content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_connection_status_content( string $mode ): string { + + $this->is_connected = false; + $connection = Connection::get( $mode ); + + if ( ! $connection ) { + return $this->get_disconnected_status_content( $mode ); + } + + $content = $this->get_disabled_status_content( $connection ); + + if ( ! empty( $content ) ) { + return $content; + } + + $this->is_connected = true; + + return $this->get_enabled_status_content( $connection ); + } + + /** + * Retrieve a location content error. + * + * @since 1.9.5 + * + * @return string + */ + private function get_location_content_error(): string { + + return '

              ' . $this->get_error_icon() . esc_html__( 'Business Location is required to process Square payments.', 'wpforms-lite' ) . '

              '; + } + + /** + * Retrieve setting content when a connection is disabled. + * + * @since 1.9.5 + * + * @param Connection $connection Connection data. + * + * @return string + */ + private function get_disabled_status_content( Connection $connection ): string { + + if ( ! $connection->is_configured() ) { + return $this->get_missing_status_content( $connection->get_mode() ); + } + + if ( ! $connection->is_valid() ) { + return $this->get_invalid_status_content( $connection->get_mode() ); + } + + return ''; + } + + /** + * Retrieve setting content when a connection is enabled. + * + * @since 1.9.5 + * + * @param Connection $connection Connection data. + * + * @return string + */ + private function get_enabled_status_content( Connection $connection ): string { + + if ( $connection->is_expired() ) { + return $this->get_expired_status_content( $connection->get_mode() ); + } + + if ( ! $connection->is_currency_matched() ) { + return $this->get_currency_mismatch_status_content( $connection->get_mode() ); + } + + return '
              ' . $this->get_connected_status_content( $connection->get_mode() ) . $this->get_disconnect_button( $connection->get_mode() ) . '
              '; + } + + /** + * Retrieve a Connected Status setting content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_connected_status_content( string $mode ): string { + + $account_data = $this->connect->get_connected_account( $mode ); + $account_name = empty( $account_data['business_name'] ) ? '' : $account_data['business_name']; + + if ( empty( $account_name ) ) { + return sprintf( + wp_kses( /* translators: %s - Square mode. */ + __( 'Connected to Square in %s mode.', 'wpforms-lite' ), + [ + 'strong' => [], + ] + ), + $mode === Environment::SANDBOX ? esc_html__( 'Sandbox', 'wpforms-lite' ) : esc_html__( 'Production', 'wpforms-lite' ) + ); + } + + return sprintf( + wp_kses( /* translators: %1$s - Square connected account name; %2$s - Square mode. */ + __( 'Connected to Square as %1$s in %2$s mode.', 'wpforms-lite' ), + [ + 'strong' => [], + 'em' => [], + ] + ), + esc_html( $account_name ), + $mode === Environment::SANDBOX ? esc_html__( 'Sandbox', 'wpforms-lite' ) : esc_html__( 'Production', 'wpforms-lite' ) + ); + } + + /** + * Retrieve a Disconnected Status setting content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_disconnected_status_content( string $mode ): string { + + return $this->get_connect_button( $mode, false ) . + '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com Square documentation article URL. */ + __( 'Securely connect to Square with just a few clicks to begin accepting payments! Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + 'class' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-square-addon-with-wpforms/#connect-square', 'Settings - Payments', 'Square Learn More' ) ) + ) . + '

              '; + } + + /** + * Retrieve a connection is missing status content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_missing_status_content( string $mode ): string { + + return '
              ' . $this->get_error_icon() . esc_html__( 'Your connection is missing required data. You must reconnect your Square account.', 'wpforms-lite' ) . $this->get_disconnect_button( $mode ) . '
              '; + } + + /** + * Retrieve a connection invalid status content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_invalid_status_content( string $mode ): string { + + return '
              ' . $this->get_error_icon() . $this->get_connected_status_content( $mode ) . + '

              ' . esc_html__( 'It appears your connection may be invalid. You must refresh tokens or reconnect your account.', 'wpforms-lite' ) . '

              ' . + '

              ' . $this->get_refresh_button( $mode ) . $this->get_disconnect_button( $mode, false ) . '

              '; + } + + /** + * Retrieve a connection expired status content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_expired_status_content( string $mode ): string { + + return '
              ' . $this->get_error_icon() . $this->get_connected_status_content( $mode ) . + '

              ' . esc_html__( 'Your connection is expired. You must refresh tokens or reconnect your account.', 'wpforms-lite' ) . '

              ' . + '

              ' . $this->get_refresh_button( $mode ) . $this->get_disconnect_button( $mode, false ) . '

              '; + } + + /** + * Retrieve a currency mismatch status content. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_currency_mismatch_status_content( string $mode ): string { + + return '
              ' . $this->get_error_icon() . $this->get_connected_status_content( $mode ) . + '

              ' . esc_html__( 'WPForms currency and Business Location currency are not matched.', 'wpforms-lite' ) . '

              ' . + $this->get_disconnect_button( $mode ); + } + + /** + * Retrieve the Connect button. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * @param bool $wrap Optional. Wrap a button HTML element or not. + * + * @return string + */ + private function get_connect_button( string $mode, bool $wrap = true ): string { + + $button = sprintf( + '%3$s', + esc_url( $this->connect->get_connect_url( $mode ) ), + esc_attr__( 'Connect Square account', 'wpforms-lite' ), + esc_html__( 'Connect with Square', 'wpforms-lite' ) + ); + + return $wrap ? '

              ' . $button . '

              ' : $button; + } + + /** + * Retrieve the Disconnect button. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * @param bool $wrap Optional. Wrap a button HTML element or not. + * + * @return string + */ + private function get_disconnect_button( string $mode, bool $wrap = true ): string { + + $button = sprintf( + '%3$s', + esc_url( $this->connect->get_disconnect_url( $mode ) ), + esc_attr__( 'Disconnect Square account', 'wpforms-lite' ), + esc_html__( 'Disconnect', 'wpforms-lite' ) + ); + + return $wrap ? '

              ' . $button . '

              ' : $button; + } + + /** + * Retrieve the Refresh tokens button. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return string + */ + private function get_refresh_button( string $mode ): string { + + return sprintf( + '', + esc_attr( $mode ), + esc_url( Helpers::get_settings_page_url() ), + esc_attr__( 'Refresh connection tokens', 'wpforms-lite' ), + esc_html__( 'Refresh tokens', 'wpforms-lite' ) + ); + } + + /** + * Retrieve the Error icon emoji. + * + * @since 1.9.5 + * + * @return string + */ + private function get_error_icon(): string { + + return ''; + } + + /** + * Retrieve Business Location options. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * + * @return array + */ + private function get_location_options( string $mode ): array { + + $locations = $this->connect->get_connected_locations( $mode ); + + return ! empty( $locations ) ? array_column( $locations, 'name', 'id' ) : [ '' => esc_html__( 'No locations were found', 'wpforms-lite' ) ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/WebhookSettings.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/WebhookSettings.php new file mode 100644 index 0000000..5567ab4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Admin/WebhookSettings.php @@ -0,0 +1,436 @@ +maybe_set_default_settings(); + + // Do not display it as long as a Square account is not connected. + if ( ! Helpers::is_square_configured() ) { + return $settings; + } + + $settings['payments']['square-webhooks-enabled'] = [ + 'id' => 'square-webhooks-enabled', + 'name' => esc_html__( 'Enable Webhooks', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + 'default' => true, + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Square webhooks documentation. */ + __( 'Square uses webhooks to notify WPForms when an event has occurred in your Square account. Please see our documentation on Square webhooks for full details.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-square-webhooks/', 'Settings - Payments', 'Square Webhooks Documentation' ) ) + ), + ]; + + $mode = Helpers::get_mode(); + + $settings['payments'][ 'square-webhooks-connect-status-' . $mode ] = [ + 'id' => 'square-webhooks-connect-status-' . $mode, + 'name' => '', + 'content' => $this->get_webhook_connection_notice(), + 'type' => 'content', + 'class' => Helpers::is_webhook_enabled() && ! Helpers::is_webhook_configured() ? '' : 'wpforms-hide', + ]; + + $settings['payments']['square-webhooks-connect'] = [ + 'id' => 'square-webhooks-connect', + 'name' => '', + 'content' => $this->get_connect_button(), + 'type' => 'content', + 'class' => ! Helpers::is_webhook_enabled() ? 'wpforms-hide' : '', + ]; + + // Bail out if $_GET parameter is not passed. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! isset( $_GET['webhooks_settings'] ) ) { + return $settings; + } + + $settings['payments']['square-webhooks-communication'] = [ + 'id' => 'square-webhooks-communication', + 'name' => esc_html__( 'Webhooks Method', 'wpforms-lite' ), + 'type' => 'radio', + 'default' => wpforms_setting( 'square-webhooks-communication', 'rest' ), + 'options' => [ + 'rest' => esc_html__( 'REST API (recommended)', 'wpforms-lite' ), + 'curl' => esc_html__( 'PHP listener', 'wpforms-lite' ), + ], + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Square webhooks documentation. */ + __( 'Choose the method of communication between Square and WPForms. If REST API support is disabled for WordPress, use PHP listener. Learn more.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-square-webhooks/', 'Settings - Payments', 'Square Webhooks Documentation' ) ) + ), + 'class' => $this->get_html_classes(), + ]; + + $settings['payments']['square-webhooks-communication-status'] = [ + 'id' => 'square-webhooks-communication-status', + 'name' => '', + 'content' => $this->display_webhooks_communication_notice(), + 'type' => 'content', + 'class' => 'wpforms-hide', + ]; + + $settings['payments']['square-webhooks-endpoint-set'] = [ + 'id' => 'square-webhooks-endpoint-set', + 'name' => esc_html__( 'Webhooks Endpoint', 'wpforms-lite' ), + 'url' => Helpers::get_webhook_url(), + 'type' => 'webhook_endpoint', + 'provider' => 'square', + 'desc' => sprintf( + wp_kses( /* translators: %s - Square Dashboard Webhooks Settings URL. */ + __( 'Ensure an endpoint with the above URL is present in the Square webhook settings.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( self::SQUARE_APPS_URL ) + ), + 'class' => $this->get_html_classes(), + ]; + + $settings['payments']['square-webhooks-id-sandbox'] = [ + 'id' => 'square-webhooks-id-sandbox', + 'name' => esc_html__( 'Webhooks Test ID', 'wpforms-lite' ), + 'type' => 'text', + 'desc' => $this->get_webhooks_id_desc( 'sandbox' ), + 'class' => $this->get_html_classes(), + ]; + + $settings['payments']['square-webhooks-secret-sandbox'] = [ + 'id' => 'square-webhooks-secret-sandbox', + 'name' => esc_html__( 'Webhooks Test Signature Key', 'wpforms-lite' ), + 'type' => 'password', + 'desc' => $this->get_webhooks_secret_desc( 'sandbox' ), + 'class' => $this->get_html_classes(), + ]; + + $settings['payments']['square-webhooks-id-live'] = [ + 'id' => 'square-webhooks-id-live', + 'name' => esc_html__( 'Webhooks Live ID', 'wpforms-lite' ), + 'type' => 'text', + 'desc' => $this->get_webhooks_id_desc( 'live' ), + 'class' => $this->get_html_classes(), + ]; + + $settings['payments']['square-webhooks-secret-live'] = [ + 'id' => 'square-webhooks-secret-live', + 'name' => esc_html__( 'Webhooks Live Signature Key', 'wpforms-lite' ), + 'type' => 'password', + 'desc' => $this->get_webhooks_secret_desc( 'live' ), + 'class' => $this->get_html_classes(), + ]; + + return $settings; + } + + /** + * Get the Webhook connection notice. + * + * @since 1.9.5 + * + * @return string + */ + private function get_webhook_connection_notice(): string { + + if ( ! Helpers::is_webhook_enabled() ) { + return ''; + } + + if ( Helpers::is_webhook_configured() ) { + return ''; + } + + return sprintf( + '

              %1$s

              ', + esc_html__( 'Webhooks are enabled, but not yet connected.', 'wpforms-lite' ) + ); + } + + /** + * Display the Webhooks communication notice. The notice is displayed when a user tries to change communication method manually + * and needs to be informed that the Webhook URL should be updated after that accordingly. + * + * @since 1.9.5 + * + * @return string + */ + private function display_webhooks_communication_notice(): string { + + return sprintf( + '

              %1$s

              ', + esc_html__( 'Make sure that Webhooks Endpoint is updated inside the Square app after Webhooks Method switch.', 'wpforms-lite' ) + ); + } + + /** + * Show the link to the documentation about the Webhooks ID. + * + * @since 1.9.5 + * + * @param string $mode Square mode (e.g. 'live' or 'sandbox'). + * + * @return string + */ + private function get_webhooks_id_desc( string $mode ): string { + + $modes = [ + 'live' => __( 'Live Mode Endpoint Subscription ID', 'wpforms-lite' ), + 'sandbox' => __( 'Test Mode Endpoint Subscription ID', 'wpforms-lite' ), + ]; + + return sprintf( + wp_kses( /* translators: %1$s - Live Mode Endpoint ID or Test Mode Endpoint ID. %2$s - Square Dashboard Webhooks Settings URL. */ + __( 'Retrieve your %1$s from your Square webhook settings. Select the endpoint, then click Copy button.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + $modes[ $mode ], + esc_url( self::SQUARE_APPS_URL ) + ); + } + + /** + * Show the link to the documentation about the Webhook Signature Key. + * + * @since 1.9.5 + * + * @param string $mode Square mode (e.g. 'live' or 'sandbox'). + * + * @return string + */ + private function get_webhooks_secret_desc( string $mode ): string { + + $modes = [ + 'live' => __( 'Live Mode Signature Key', 'wpforms-lite' ), + 'sandbox' => __( 'Test Mode Signature Key', 'wpforms-lite' ), + ]; + + return sprintf( + wp_kses( /* translators: %1$s - Live Mode Signing Secret or Test Mode Signing Secret. %2$s - Square Dashboard Webhooks Settings URL. */ + __( 'Retrieve your %1$s from your Square webhook settings. Select the endpoint, then click Reveal.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + $modes[ $mode ], + esc_url( self::SQUARE_APPS_URL ) + ); + } + + /** + * Get HTML classes for the Webhooks section. + * + * @since 1.9.5 + * + * @return array + */ + private function get_html_classes(): array { + + $classes = [ 'wpforms-settings-square-webhooks' ]; + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( isset( $_GET['webhooks_settings'] ) ) { + return $classes; + } + + if ( ! wpforms_setting( 'square-webhooks-enabled' ) ) { + $classes[] = 'wpforms-hide'; + } + + return $classes; + } + + /** + * Maybe set default settings. + * + * @since 1.9.5 + */ + private function maybe_set_default_settings() { + + $settings = (array) get_option( 'wpforms_settings', [] ); + $is_updated = false; + + // Enable Square webhooks by default if an account is connected. + if ( ! isset( $settings['square-webhooks-enabled'] ) && Helpers::is_square_configured() ) { + $settings['square-webhooks-enabled'] = true; + + $is_updated = true; + } + + // Set a default communication method. + if ( ! isset( $settings['square-webhooks-communication'] ) ) { + $settings['square-webhooks-communication'] = $this->is_rest_api_enabled() ? 'rest' : 'curl'; + + $is_updated = true; + } + + // Save settings only if something is changed. + if ( $is_updated ) { + update_option( 'wpforms_settings', $settings ); + } + } + + /** + * Check if REST API is enabled. + * + * Testing configured webhook endpoint with non-authorised request. + * Based on UsageTracking::is_rest_api_enabled(). + * + * @since 1.9.5 + * + * @return bool + */ + private function is_rest_api_enabled(): bool { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** This filter is documented in wp-includes/class-wp-http-streams.php */ + $sslverify = apply_filters( 'https_local_ssl_verify', false ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $url = add_query_arg( [ 'verify' => 1 ], Helpers::get_webhook_url_for_rest() ); + $response = wp_remote_get( + $url, + [ + 'timeout' => 10, + 'cookies' => [], + 'sslverify' => $sslverify, + 'headers' => [ + 'Cache-Control' => 'no-cache', + ], + ] + ); + + // When testing the REST API, an error was encountered, leave early. + if ( is_wp_error( $response ) ) { + return false; + } + + // When testing the REST API, an unexpected result was returned, leave early. + if ( wp_remote_retrieve_response_code( $response ) !== 200 ) { + return false; + } + + // The REST API did not behave correctly, leave early. + if ( ! wpforms_is_json( wp_remote_retrieve_body( $response ) ) ) { + return false; + } + + // We are all set. Confirm the connection. + return true; + } + + /** + * Get the "Connect Webhooks" button. + * + * @since 1.9.5 + * + * @return string + */ + private function get_connect_button(): string { + + $is_connected = Helpers::is_webhook_enabled() && Helpers::is_webhook_configured(); + + if ( $is_connected ) { + return sprintf( + '
              %s
              ', + esc_attr( 'wpforms-success-icon' ), + esc_html__( 'Webhooks are connected and active.', 'wpforms-lite' ) + ); + } + + $button = sprintf( + '', + esc_attr__( 'Press here to see the further instructions.', 'wpforms-lite' ), + esc_html__( 'Connect Webhooks', 'wpforms-lite' ) + ); + + $description = sprintf( + '

              %s

              ', + wp_kses( + /* translators: %s - WPForms.com URL for Square webhooks documentation. */ + __( 'To start using webhooks, please register a webhook route inside our application. You can do this by pressing the button above or setting the credentials manually. Please see our documentation on Square webhooks for full details.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ) + ); + + $description = sprintf( $description, esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-square-webhooks/', 'Settings - Payments', 'Square Webhooks Documentation' ) ) ); + + return $button . $description; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Api.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Api.php new file mode 100644 index 0000000..00f58d1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Api.php @@ -0,0 +1,1757 @@ +client = new SquareClient( + [ + 'accessToken' => $connection->get_access_token(), + 'environment' => $connection->get_mode(), + ] + ); + } + + /** + * Set tokens from a submitted form data. + * + * @since 1.9.5 + * + * @param array $entry Copy of original $_POST. + */ + public function set_payment_tokens( array $entry ) { + + if ( ! empty( $entry['square']['source_id'] ) ) { + $this->source_id = $entry['square']['source_id']; + } + } + + /** + * Check if OAuth connection is present and ready to use. + * + * @since 1.9.5 + */ + private function check_connection() { + + $connection = Connection::get(); + + if ( ! $connection || ! $connection->is_configured() ) { + $this->errors[] = esc_html__( 'Square account connection is missing.', 'wpforms-lite' ); + + return; + } + + if ( ! $connection->is_valid() ) { + $this->errors[] = esc_html__( 'Square account connection is invalid.', 'wpforms-lite' ); + + return; + } + + if ( ! $connection->is_currency_matched() ) { + $this->errors[] = esc_html__( 'The currency associated with the payment is not valid for the provided business location.', 'wpforms-lite' ); + } + } + + /** + * Check if single payment tokens are present. + * + * @since 1.9.5 + */ + private function check_payment_tokens() { + + if ( empty( $this->source_id ) ) { + $this->errors[] = esc_html__( 'Square payment stopped, missing card tokens.', 'wpforms-lite' ); + } + } + + /** + * Check if all required general arguments are present. + * + * @since 1.9.5 + * + * @param array $args Arguments to check. + */ + private function check_required_args_general( array $args ) { + + if ( empty( $args['location_id'] ) ) { + $this->errors[] = esc_html__( 'Missing location ID.', 'wpforms-lite' ); + } + + if ( empty( $args['currency'] ) ) { + $this->errors[] = esc_html__( 'Missing currency.', 'wpforms-lite' ); + } + + if ( empty( $args['amount'] ) && ! is_numeric( $args['amount'] ) ) { + $this->errors[] = esc_html__( 'Missing amount.', 'wpforms-lite' ); + } + } + + /** + * Check if all required single payment arguments are present. + * + * @since 1.9.5 + * + * @param array $args Arguments to check. + */ + private function check_required_args_single( array $args ) { + + if ( empty( $args['order_items'] ) ) { + $this->errors[] = esc_html__( 'Missing order/payment items.', 'wpforms-lite' ); + } + } + + /** + * Process single transaction. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + */ + public function process_single_transaction( array $args ) { + + $this->check_connection(); + $this->check_payment_tokens(); + $this->check_required_args_general( $args ); + $this->check_required_args_single( $args ); + + if ( $this->errors ) { + return; + } + + $result = $this->perform_single_transaction( $args ); + + /** + * Fire when a single transaction is performed. + * + * @since 1.9.5 + * + * @param array $result Single transaction result. + * @param array $args Payment arguments. + * @param Api $api Api class instance. + */ + do_action( 'wpforms_square_api_process_single_transaction_after', $result, $args, $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Process subscription transaction. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + */ + public function process_subscription_transaction( array $args ) { + + $this->check_connection(); + $this->check_payment_tokens(); + $this->check_required_args_general( $args ); + $this->check_required_args_subscription( $args ); + + if ( $this->errors ) { + return; + } + + $this->perform_subscription_transaction( $args ); + } + + /** + * Refund payment. + * + * @since 1.9.5 + * + * @param string $payment_id Payment ID. + * @param array $args Payment data. + */ + public function refund_payment( string $payment_id, array $args ): bool { + + try { + $request = new RefundPaymentRequest( $this->get_idempotency_key(), new Money() ); + + $request->setPaymentId( $payment_id ); + $request->setReason( $args['reason'] ); + $request->getAmountMoney()->setAmount( $args['amount'] ); + $request->getAmountMoney()->setCurrency( $args['currency'] ); + + $this->response = $this->client->getRefundsApi()->refundPayment( $request ); + + if ( ! $this->response->isSuccess() ) { + return false; + } + } catch ( ApiException $e ) { + $this->exception = $e; + + return false; + } + + return true; + } + + /** + * Update subscription. + * + * @since 1.9.5 + * + * @param array $args Subscription arguments. + */ + public function update_subscription( array $args ) { + + $subscription = $this->retrieve_subscription( $args['id'] ); + + if ( ! $subscription instanceof Subscription ) { + return; + } + + $request = $this->get_update_subscription_request_object( $subscription, $args ); + + $this->send_update_subscription_request( $args['id'], $request ); + } + + /** + * Cancel subscription. + * + * @since 1.9.5 + * + * @param string $subscription_id Subscription id. + * + * @return bool + */ + public function cancel_subscription( string $subscription_id ): bool { + + try { + $this->response = $this->client->getSubscriptionsApi()->cancelSubscription( $subscription_id ); + + if ( ! $this->response->isSuccess() ) { + return false; + } + } catch ( ApiException $e ) { + $this->exception = $e; + + return false; + } + + return true; + } + + /** + * Retrieve a Card object. + * + * @since 1.9.5 + * + * @param Subscription $subscription Subscription object. + * + * @return Card|null + */ + public function get_subscription_card( $subscription ) { + + if ( ! $subscription instanceof Subscription ) { + return null; + } + + $card_id = $subscription->getCardId(); + + if ( empty( $card_id ) ) { + return null; + } + + // Get a customer. + $card = $this->send_retrieve_card_request( $card_id ); + + if ( ! $card instanceof Card ) { + return null; + } + + return $card; + } + + /** + * Send a retrieve subscription request to API. + * + * @since 1.9.5 + * + * @param string $id The ID of the subscription to retrieve. + * + * @return Subscription|null + */ + public function retrieve_subscription( string $id ) { + + try { + $response = $this->client->getSubscriptionsApi()->retrieveSubscription( $id ); + + if ( ! $response->isSuccess() ) { + return null; + } + + return $response->getResult()->getSubscription(); + + } catch ( ApiException $e ) { + return null; + } + } + + /** + * Retrieve a Card object. + * + * @since 1.9.5 + * + * @param Subscription $subscription Subscription object. + * + * @return Invoice|null + */ + public function get_latest_subscription_invoice( $subscription ) { + + if ( ! $subscription instanceof Subscription ) { + return null; + } + + try { + $invoices = $subscription->getInvoiceIds(); + + if ( empty( $invoices ) ) { + return null; + } + + // Get a customer. + $response = $this->client->getInvoicesApi()->getInvoice( reset( $invoices ) ); // Get the latest invoice by using the first ID in the array as the subscription's invoice IDs are sorted by date in ascending order. + + if ( ! $response->isSuccess() ) { + return null; + } + + return $response->getResult()->getInvoice(); + } catch ( ApiException $e ) { + return null; + } + } + + /** + * Perform a single transaction. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * + * @return array + */ + private function perform_single_transaction( array $args ): array { + + $result = []; + + // Create an order. + $order_request = $this->prepare_create_order_request( $args ); + $order = $this->send_create_order_request( $order_request ); + + if ( ! $order instanceof Order ) { + return $result; + } + + $result['order'] = $order; + + // Create a payment. + $payment_request = $this->prepare_create_payment_request( $order, $args ); + $payment = $this->send_create_payment_request( $payment_request ); + + // In this case we should cancel an order. + if ( ! $payment instanceof Payment ) { + $update_order_request = $this->prepare_update_order_request( $order ); + $updated_order = $this->send_update_order_request( $order->getId(), $update_order_request ); + + return $updated_order instanceof Order ? [ 'order' => $updated_order ] : $result; + } + + $result['payment'] = $payment; + + return $result; + } + + /** + * Prepare a create order request object for sending to API. + * + * @since 1.9.5 + * + * @param array $args Single payment arguments. + * + * @return CreateOrderRequest + */ + private function prepare_create_order_request( array $args ): CreateOrderRequest { + + $request = $this->get_create_order_request_object( $args ); + $request = $this->create_order_request_set_line_items( $request, $args ); + $request = $this->create_order_request_set_discounts( $request, $args ); + + /** + * Filter a create order request object. + * + * @since 1.9.5 + * + * @param CreateOrderRequest $request Create order request object. + * @param array $args Payment arguments. + * @param Api $api Api class instance. + */ + return apply_filters( 'wpforms_square_api_prepare_create_order_request', $request, $args, $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Prepare an update order request object for sending to API. + * + * @since 1.9.5 + * + * @param Order $order Order object. + * + * @return UpdateOrderRequest + */ + private function prepare_update_order_request( $order ): UpdateOrderRequest { + + $request = $this->get_update_order_request_object( $order ); + + /** + * Filter an update order request object. + * + * @since 1.9.5 + * + * @param UpdateOrderRequest $request Update order request object. + * @param Order $order Order object. + * @param Api $api Api class instance. + */ + return apply_filters( 'wpforms_square_api_prepare_update_order_request', $request, $order, $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Prepare a create payment request object for sending to API. + * + * @since 1.9.5 + * + * @param Order $order Order object. + * @param array $args Payment arguments. + * + * @return CreatePaymentRequest + */ + private function prepare_create_payment_request( $order, array $args ): CreatePaymentRequest { + + $request = $this->get_create_payment_request_object(); + $request = $this->create_payment_request_set_order( $request, $order ); + + if ( ! empty( $args['billing'] ) ) { + $address = $this->get_address_object( $args['billing'] ); + + $request->setBillingAddress( $address ); + } + + if ( ! empty( $args['buyer_email'] ) ) { + $request->setBuyerEmailAddress( $args['buyer_email'] ); + } + + if ( ! empty( $args['note'] ) ) { + $request->setNote( $args['note'] ); + } + + /** + * Filter a create payment request object. + * + * @since 1.9.5 + * + * @param CreateOrderRequest $request Create payment request object. + * @param array $args Payment arguments. + * @param Api $api Api class instance. + */ + return apply_filters( 'wpforms_square_api_prepare_create_payment_request', $request, $args, $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Retrieve a create order request object. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * + * @return CreateOrderRequest + */ + private function get_create_order_request_object( array $args ): CreateOrderRequest { + + $request = new CreateOrderRequest(); + + $request->setIdempotencyKey( $this->get_idempotency_key() ); + + $request->setOrder( new Order( $args['location_id'] ) ); + $request->getOrder()->setSource( new OrderSource() ); + $request->getOrder()->getSource()->setName( Square::APP_NAME ); + + return $request; + } + + /** + * Retrieve an update order request object. + * + * @since 1.9.5 + * + * @param Order $order Order object. + * + * @return UpdateOrderRequest + */ + private function get_update_order_request_object( $order ): UpdateOrderRequest { + + $request = new UpdateOrderRequest(); + + $request->setIdempotencyKey( $this->get_idempotency_key() ); + $request->setOrder( $order ); + $request->getOrder()->setState( OrderState::CANCELED ); + + return $request; + } + + /** + * Retrieve a create payment request object. + * + * @since 1.9.5 + * + * @return CreatePaymentRequest + */ + private function get_create_payment_request_object(): CreatePaymentRequest { + + $request = new CreatePaymentRequest( $this->source_id, $this->get_idempotency_key() ); + + $request->setAmountMoney( new Money() ); + + return $request; + } + + /** + * Send a create order request object to API. + * + * @since 1.9.5 + * + * @param CreateOrderRequest $request Create order request object. + * + * @return Order|null + */ + private function send_create_order_request( $request ) { + + try { + $this->response = $this->client->getOrdersApi()->createOrder( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: order was not created.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getOrder(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: order was not created.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Send an update order request object to API. + * + * @since 1.9.5 + * + * @param string $order_id The ID of the order to update. + * @param UpdateOrderRequest $request Update order request object. + * + * @return Order|null + */ + private function send_update_order_request( string $order_id, $request ) { + + try { + $response = $this->client->getOrdersApi()->updateOrder( $order_id, $request ); + + if ( ! $response->isSuccess() ) { + return null; + } + + return $response->getResult()->getOrder(); + + } catch ( ApiException $e ) { + return null; + } + } + + /** + * Send a create payment request to API. + * + * @since 1.9.5 + * + * @param CreatePaymentRequest $request Create payment request object. + * + * @return Payment|null + */ + private function send_create_payment_request( $request ) { + + try { + $this->response = $this->client->getPaymentsApi()->createPayment( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: payment was not processed.', 'wpforms-lite' ); + + $this->add_response_errors_message(); + + return null; + } + + return $this->response->getResult()->getPayment(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: payment was not processed.', 'wpforms-lite' ); + + $this->add_response_errors_message( 'Exception' ); + + return null; + } + } + + /** + * Set line items to a create order request object. + * + * @since 1.9.5 + * + * @param CreateOrderRequest $request Request to create an order. + * @param array $args Payment arguments. + * + * @return CreateOrderRequest + */ + private function create_order_request_set_line_items( $request, array $args ): CreateOrderRequest { + + $line_items = []; + + foreach ( (array) $args['order_items'] as $item ) { + + // Order item without variations. + if ( empty( $item['variations'] ) ) { + $line_items[] = $this->get_order_line_item_object( $item, $args ); + + continue; + } + + // Order item with variations (e.g. Small, Medium and Large). + foreach ( (array) $item['variations'] as $variation ) { + + $order_line_item = $this->get_order_line_item_object( $variation, $args ); + + $order_line_item->setVariationName( $variation['variation_name'] ); + + $line_items[] = $order_line_item; + } + } + + $request->getOrder()->setLineItems( $line_items ); + + return $request; + } + + /** + * Set discounts to a create order request object. + * + * @since 1.9.5 + * + * @param CreateOrderRequest $request Request to create an order. + * @param array $args Payment arguments. + * + * @return CreateOrderRequest + */ + private function create_order_request_set_discounts( $request, array $args ): CreateOrderRequest { + + $discounts = []; + + if ( empty( $args['discounts'] ) ) { + return $request; + } + + foreach ( (array) $args['discounts'] as $discount ) { + + $discounts[] = $this->get_order_discount_object( $discount, $args ); + } + + if ( ! empty( $discounts ) ) { + $request->getOrder()->setDiscounts( $discounts ); + } + + return $request; + } + + /** + * Set order to a create payment request object. + * + * @since 1.9.5 + * + * @param CreatePaymentRequest $request Create payment request object. + * @param Order $order Order object. + * + * @return CreatePaymentRequest + */ + private function create_payment_request_set_order( $request, $order ): CreatePaymentRequest { + + $request->setOrderId( $order->getId() ); + $request->setLocationId( $order->getLocationId() ); + + $amount = $order->getTotalMoney()->getAmount(); + $currency = $order->getTotalMoney()->getCurrency(); + + $request->getAmountMoney()->setAmount( $amount ); + $request->getAmountMoney()->setCurrency( $currency ); + + if ( ! Helpers::is_license_ok() && Helpers::is_application_fee_supported( $currency ) ) { + $request->setAppFeeMoney( new Money() ); + $request->getAppFeeMoney()->setAmount( (int) ( round( $amount * 0.03 ) ) ); + $request->getAppFeeMoney()->setCurrency( $currency ); + } + + return $request; + } + + /** + * Retrieve a single order line item object. + * + * @since 1.9.5 + * + * @param array $item Order item data. + * @param array $args Payment arguments. + * + * @return OrderLineItem + */ + private function get_order_line_item_object( array $item, array $args ): OrderLineItem { + + $order_line_items = new OrderLineItem( $item['quantity'] ); + + $order_line_items->setName( $item['name'] ); + $order_line_items->setBasePriceMoney( new Money() ); + // Round to the nearest whole number because $item['amount'] can contain a number close to, + // but slightly under it, due to how it is stored in the memory. + $order_line_items->getBasePriceMoney()->setAmount( round( $item['amount'] ) ); + $order_line_items->getBasePriceMoney()->setCurrency( $args['currency'] ); + + return $order_line_items; + } + + /** + * Retrieve a single order discount object. + * + * @since 1.9.5 + * + * @param array $discount Discount data. + * @param array $args Payment arguments. + * + * @return OrderLineItemDiscount + */ + private function get_order_discount_object( array $discount, array $args ): OrderLineItemDiscount { + + $order_discounts = new OrderLineItemDiscount(); + + $order_discounts->setName( $discount['name'] ); + $order_discounts->setAmountMoney( new Money() ); + $order_discounts->getAmountMoney()->setAmount( $discount['amount'] ); + $order_discounts->getAmountMoney()->setCurrency( $args['currency'] ); + + return $order_discounts; + } + + /** + * Prepare and retrieve an address object. + * + * @since 1.9.5 + * + * @param array $data Address data. + * + * @return Address + */ + private function get_address_object( array $data ): Address { + + $address = new Address(); + + // The empty country value may occur API errors. + if ( ! empty( $data['address']['country'] ) ) { + $address->setAddressLine1( $data['address']['address1'] ); + $address->setAddressLine2( $data['address']['address2'] ); + $address->setLocality( $data['address']['city'] ); + $address->setAdministrativeDistrictLevel1( $data['address']['state'] ); + $address->setPostalCode( $data['address']['postal'] ); + $address->setCountry( $data['address']['country'] ); + } + + if ( ! empty( $data['first_name'] ) ) { + $address->setFirstName( $data['first_name'] ); + } + + if ( ! empty( $data['last_name'] ) ) { + $address->setLastName( $data['last_name'] ); + } + + return $address; + } + + /** + * Retrieve information of all locations of a business. + * + * @since 1.9.5 + * + * @return array|Location|null + */ + public function get_locations() { + + try { + $this->response = $this->client->getLocationsApi()->listLocations(); + + if ( ! $this->response->isSuccess() ) { + return null; + } + + return $this->response->getResult()->getLocations(); + + } catch ( ApiException $e ) { + $this->exception = $e; + + return null; + } + } + + /** + * Retrieve a Merchant object with details. + * + * @since 1.9.5 + * + * @param string $id The Merchant ID. + * + * @return Merchant|null + */ + public function get_merchant( string $id ) { + + try { + $this->response = $this->client->getMerchantsApi()->retrieveMerchant( $id ); + + if ( ! $this->response->isSuccess() ) { + return null; + } + + return $this->response->getResult()->getMerchant(); + + } catch ( ApiException $e ) { + $this->exception = $e; + + return null; + } + } + + /** + * Retrieve an idempotency key. + * + * @since 1.9.5 + * + * @link https://developer.squareup.com/docs/working-with-apis/idempotency + * + * @return string + */ + private function get_idempotency_key(): string { + + return uniqid( '', false ); + } + + /** + * Retrieve API errors. + * + * @since 1.9.5 + * + * @return array|null + */ + public function get_errors() { + + return $this->errors; + } + + /** + * Retrieve last API call errors if are exist. + * + * @since 1.9.5 + * + * @return array + */ + public function get_response_errors(): array { + + if ( $this->response instanceof ApiResponse && ! $this->response->isSuccess() ) { + $errors = []; + + foreach ( (array) $this->response->getErrors() as $error ) { + $errors[] = $error->jsonSerialize(); + } + + return $errors; + } + + if ( $this->exception instanceof ApiException ) { + return [ + 'code' => $this->exception->getCode(), + 'message' => $this->exception->getMessage(), + ]; + } + + return []; + } + + /** + * Retrieve last API call response resource. + * + * @since 1.9.5 + * + * @return array + */ + public function get_response_resource(): array { + + if ( ! $this->response instanceof ApiResponse ) { + return []; + } + + $result = $this->response->getResult(); + + if ( $result instanceof CreatePaymentResponse ) { + return [ 'payment' => $this->response->getResult()->getPayment() ]; + } + + if ( $result instanceof CreateSubscriptionResponse || $result instanceof UpdateSubscriptionResponse ) { + return [ 'subscription' => $this->response->getResult()->getSubscription() ]; + } + + return []; + } + + /** + * Retrieve last API call response and display error messages. + * + * @since 1.14.0 + * + * @param string $type Type of error message. + */ + private function add_response_errors_message( string $type = 'API' ) { + + $errors = $this->get_response_errors(); + + if ( empty( $errors ) ) { + return; + } + + $key = ( $type === 'Exception' ) ? 'message' : 'detail'; + + foreach ( $errors as $error ) { + $message = $error[ $key ] ?? ''; + + if ( empty( $error['code'] ) || empty( $message ) ) { + return; + } + + $this->errors[] = esc_html( $type ) . ': (' . esc_html( $error['code'] ) . ') ' . esc_html( $message ); + } + } + + /** + * Perform a subscription transaction. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + */ + private function perform_subscription_transaction( array $args ) { + + // Create a customer. + $customer_request = $this->prepare_create_customer_request( $args ); + $customer = $this->send_create_customer_request( $customer_request ); + + if ( ! $customer instanceof Customer ) { + return; + } + + // Create a customer card. + $card_request = $this->prepare_create_customer_card_request( $customer->getId(), $args ); + $card = $this->send_create_customer_card_request( $card_request ); + + if ( ! $card instanceof Card ) { + return; + } + + // Get a subscription plan. + $plan = $this->get_plan( $args ); + + if ( ! $plan instanceof CatalogObject ) { + return; + } + + // Get a subscription plan variation. + $plan_variation = $this->get_plan_variation( $args, $plan ); + + if ( ! $plan_variation instanceof CatalogObject ) { + return; + } + + // Create a subscription. + $subscription_request = $this->prepare_create_subscription_request( $plan_variation->getId(), $customer->getId(), $card->getId(), $args ); + + $this->send_create_subscription_request( $subscription_request ); + } + + /** + * Check if all required subscription arguments are present. + * + * @since 1.9.5 + * + * @param array $args Arguments to check. + */ + private function check_required_args_subscription( array $args ) { + + if ( empty( $args['subscription']['plan_name'] ) ) { + $this->errors[] = esc_html__( 'Missing subscription plan name.', 'wpforms-lite' ); + } + + if ( empty( $args['subscription']['plan_variation_name'] ) ) { + $this->errors[] = esc_html__( 'Missing subscription plan variation name.', 'wpforms-lite' ); + } + + if ( empty( $args['subscription']['phase_cadence'] ) ) { + $this->errors[] = esc_html__( 'Missing subscription cadence.', 'wpforms-lite' ); + } + + if ( empty( $args['subscription']['customer']['first_name'] ) && empty( $args['subscription']['customer']['last_name'] ) ) { + $this->errors[] = esc_html__( 'Missing customer name.', 'wpforms-lite' ); + } + + if ( empty( $args['subscription']['customer']['email'] ) ) { + $this->errors[] = esc_html__( 'Missing customer email.', 'wpforms-lite' ); + } + } + + /** + * Prepare a create customer request object for sending to API. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * + * @return CreateCustomerRequest + */ + private function prepare_create_customer_request( array $args ): CreateCustomerRequest { + + $request = $this->get_create_customer_request_object(); + + $request->setEmailAddress( $args['subscription']['customer']['email'] ); + + if ( ! empty( $args['subscription']['customer']['first_name'] ) ) { + $request->setGivenName( $args['subscription']['customer']['first_name'] ); + } + + if ( ! empty( $args['subscription']['customer']['last_name'] ) ) { + $request->setFamilyName( $args['subscription']['customer']['last_name'] ); + } + + if ( ! empty( $args['subscription']['customer']['address'] ) ) { + $address = $this->get_address_object( $args['subscription']['customer'] ); + + $request->setAddress( $address ); + } + + return $request; + } + + /** + * Prepare a create customer card request object for sending to API. + * + * @since 1.9.5 + * + * @param string $customer_id Customer ID. + * @param array $args Payment arguments. + * + * @return CreateCardRequest + */ + private function prepare_create_customer_card_request( string $customer_id, array $args ): CreateCardRequest { + + $request = new CreateCardRequest( $this->get_idempotency_key(), $this->source_id, new Card() ); + + $request->getCard()->setCustomerId( $customer_id ); + + if ( ! empty( $args['subscription']['customer']['address'] ) ) { + $address = $this->get_address_object( $args['subscription']['customer'] ); + + // For subscriptions: make sure that a postal code is not empty. + // Otherwise, API error "The postal code doesn't match the one used for card nonce creation" is occur here. + if ( ! empty( $address->getPostalCode() ) ) { + $request->getCard()->setBillingAddress( $address ); + } + } + + if ( ! empty( $args['subscription']['card_name'] ) ) { + $request->getCard()->setCardholderName( $args['subscription']['card_name'] ); + } + + return $request; + } + + /** + * Prepare a create subscription request object for sending to API. + * + * @since 1.9.5 + * + * @param string $plan_id Plan ID. + * @param string $customer_id Customer ID. + * @param string $card_id Customer ID. + * @param array $args Payment arguments. + * + * @return CreateSubscriptionRequest + */ + private function prepare_create_subscription_request( string $plan_id, string $customer_id, string $card_id, array $args ): CreateSubscriptionRequest { + + $request = $this->get_create_subscription_request_object( $plan_id, $customer_id, $args ); + + $request->setCardId( $card_id ); + $request->setSource( new SubscriptionSource() ); + $request->getSource()->setName( Square::APP_NAME ); + + return $request; + } + + /** + * Retrieve a create customer request object. + * + * @since 1.9.5 + * + * @return CreateCustomerRequest + */ + private function get_create_customer_request_object(): CreateCustomerRequest { + + $request = new CreateCustomerRequest(); + + $request->setIdempotencyKey( $this->get_idempotency_key() ); + + return $request; + } + + /** + * Retrieve a search catalog request object. + * + * @since 1.9.5 + * + * @param string $type Object type. + * @param string $name Object name. + * + * @return SearchCatalogObjectsRequest + */ + private function get_search_catalog_request_object( string $type, string $name ): SearchCatalogObjectsRequest { + + $request = new SearchCatalogObjectsRequest(); + + $request->setObjectTypes( [ $type ] ); + $request->setLimit( 1 ); + $request->setQuery( new CatalogQuery() ); + $request->getQuery()->setExactQuery( new CatalogQueryExact( 'name', $name ) ); + + return $request; + } + + /** + * Retrieve a create plan request object. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * + * @return UpsertCatalogObjectRequest + */ + private function get_create_plan_request_object( array $args ): UpsertCatalogObjectRequest { + + $request = new UpsertCatalogObjectRequest( $this->get_idempotency_key(), new CatalogObject( CatalogObjectType::SUBSCRIPTION_PLAN, '#plan' ) ); + + $plan_data = new CatalogSubscriptionPlan( $args['subscription']['plan_name'] ); + + $plan_data->setAllItems( true ); + + $request->getObject()->setSubscriptionPlanData( $plan_data ); + + return $request; + } + + /** + * Get subscription plan variation. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * @param CatalogObject $plan Plan object. + * + * @return CatalogObject|null + */ + private function get_plan_variation( array $args, $plan ) { + + // Search a subscription plan. + $search_plan_request = $this->get_search_catalog_request_object( CatalogObjectType::SUBSCRIPTION_PLAN_VARIATION, $args['subscription']['plan_name'] ); + $plan_variation = $this->send_search_catalog_request( $search_plan_request ); + + // Create a subscription plan if it's not exists. + if ( $plan_variation !== null ) { + return $plan_variation; + } + + $plan_variations_request = $this->get_create_plan_variations_request_object( $args, $plan ); + $plan_variation = $this->send_create_plan_variations_request( $plan_variations_request ); + + if ( ! $plan_variation instanceof CatalogObject ) { + return null; + } + + return $plan_variation; + } + + /** + * Retrieve a create plan variation request object. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * @param CatalogObject $plan Plan object. + * + * @return UpsertCatalogObjectRequest + */ + private function get_create_plan_variations_request_object( array $args, $plan ): UpsertCatalogObjectRequest { + + $request = new UpsertCatalogObjectRequest( $this->get_idempotency_key(), new CatalogObject( CatalogObjectType::SUBSCRIPTION_PLAN_VARIATION, '#plan_variation' ) ); + + $phase = new SubscriptionPhase( $args['subscription']['phase_cadence']['value'] ); + + $phase->setPricing( new SubscriptionPricing() ); + $phase->getPricing()->setType( 'STATIC' ); + $phase->getPricing()->setPriceMoney( new Money() ); + $phase->getPricing()->getPriceMoney()->setAmount( $args['amount'] ); + $phase->getPricing()->getPriceMoney()->setCurrency( $args['currency'] ); + + $request->getObject()->setSubscriptionPlanVariationData( new CatalogSubscriptionPlanVariation( $args['subscription']['plan_variation_name'], [ $phase ] ) ); + $request->getObject()->getSubscriptionPlanVariationData()->setSubscriptionPlanId( $plan->getId() ); + + return $request; + } + + /** + * Retrieve a create subscription request object. + * + * @since 1.9.5 + * + * @param string $plan_id Plan ID. + * @param string $customer_id Customer ID. + * @param array $args Payment arguments. + * + * @return CreateSubscriptionRequest + */ + private function get_create_subscription_request_object( string $plan_id, string $customer_id, array $args ): CreateSubscriptionRequest { + + $request = new CreateSubscriptionRequest( $args['location_id'], $customer_id ); + + $request->setIdempotencyKey( $this->get_idempotency_key() ); + $request->setPlanVariationId( $plan_id ); + + return $request; + } + + /** + * Send a create customer request to API. + * + * @since 1.9.5 + * + * @param CreateCustomerRequest $request Create customer request object. + * + * @return Customer|null + */ + private function send_create_customer_request( $request ) { + + try { + $this->response = $this->client->getCustomersApi()->createCustomer( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: customer was not created.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getCustomer(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: customer was not created.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Send a retrieve card request to API. + * + * @since 1.9.5 + * + * @param string $id The ID of the customer to retrieve. + * + * @return Card|null + */ + private function send_retrieve_card_request( string $id ) { + + try { + $response = $this->client->getCardsApi()->retrieveCard( $id ); + + if ( ! $response->isSuccess() ) { + return null; + } + + return $response->getResult()->getCard(); + + } catch ( ApiException $e ) { + return null; + } + } + + /** + * Send a create customer card request to API. + * + * @since 1.9.5 + * + * @param CreateCardRequest $request Create card request object. + * + * @return Card|null + */ + private function send_create_customer_card_request( $request ) { + + try { + $this->response = $this->client->getCardsApi()->createCard( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: customer card was not created.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getCard(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: customer card was not created.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Send a search catalog request to API. + * + * @since 1.9.5 + * + * @param SearchCatalogObjectsRequest $request Search subscription plan request object. + * + * @return CatalogObject|null + */ + private function send_search_catalog_request( $request ) { + + try { + $this->response = $this->client->getCatalogApi()->searchCatalogObjects( $request ); + + if ( ! $this->response->isSuccess() ) { + return null; + } + + $objects = $this->response->getResult()->getObjects(); + + if ( ! is_array( $objects ) || empty( $objects[0] ) ) { + return null; + } + + return $objects[0]; + + } catch ( ApiException $e ) { + $this->exception = $e; + + return null; + } + } + + /** + * Get subscription plan. + * + * @since 1.9.5 + * + * @param array $args Payment arguments. + * + * @return CatalogObject|null + */ + private function get_plan( array $args ) { + + // Search a subscription plan. + $search_plan_request = $this->get_search_catalog_request_object( CatalogObjectType::SUBSCRIPTION_PLAN, $args['subscription']['plan_variation_name'] ); + $plan = $this->send_search_catalog_request( $search_plan_request ); + + // Create a subscription plan if it's not exists. + if ( $plan === null ) { + $create_plan_request = $this->get_create_plan_request_object( $args ); + $plan = $this->send_create_plan_request( $create_plan_request ); + } + + if ( ! $plan instanceof CatalogObject ) { + return null; + } + + return $plan; + } + + /** + * Send a create subscription plan request to API. + * + * @since 1.9.5 + * + * @param UpsertCatalogObjectRequest $request Create subscription plan request object. + * + * @return CatalogObject|null + */ + private function send_create_plan_request( $request ) { + + try { + $this->response = $this->client->getCatalogApi()->upsertCatalogObject( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: subscription plan was not created.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getCatalogObject(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: subscription plan was not created.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Send a create subscription plan variations request to API. + * + * @since 1.9.5 + * + * @param UpsertCatalogObjectRequest $request Create subscription plan request object. + * + * @return CatalogObject|null + */ + private function send_create_plan_variations_request( $request ) { + + try { + $this->response = $this->client->getCatalogApi()->upsertCatalogObject( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: subscription plan variation was not created.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getCatalogObject(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: subscription plan variation was not created.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Send a create subscription request to API. + * + * @since 1.9.5 + * + * @param CreateSubscriptionRequest $request Create subscription request object. + * + * @return Subscription|null + */ + private function send_create_subscription_request( $request ) { + + try { + $this->response = $this->client->getSubscriptionsApi()->createSubscription( $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: something went wrong during subscription process.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getSubscription(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: something went wrong during subscription process.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Retrieve a update subscription request object. + * + * @since 1.9.5 + * + * @param Subscription $subscription Subscription object. + * @param array $args Subscription arguments. + * + * @return UpdateSubscriptionRequest|null + */ + private function get_update_subscription_request_object( $subscription, array $args ) { + + if ( ! $subscription instanceof Subscription ) { + return null; + } + + $subscription->setSource( new SubscriptionSource() ); + $subscription->getSource()->setName( Square::APP_NAME . ' Payment #' . $args['payment_id'] ); + + $request = new UpdateSubscriptionRequest(); + + $request->setSubscription( $subscription ); + + return $request; + } + + /** + * Send a create subscription request to API. + * + * @since 1.9.5 + * + * @param string $subscription_id Subscription id. + * @param UpdateSubscriptionRequest $request Update subscription request object. + * + * @return Subscription|null + */ + private function send_update_subscription_request( string $subscription_id, $request ) { + + try { + $this->response = $this->client->getSubscriptionsApi()->updateSubscription( $subscription_id, $request ); + + if ( ! $this->response->isSuccess() ) { + $this->errors[] = esc_html__( 'Square fail: something went wrong during subscription update.', 'wpforms-lite' ); + + return null; + } + + return $this->response->getResult()->getSubscription(); + + } catch ( ApiException $e ) { + $this->exception = $e; + $this->errors[] = esc_html__( 'Square fail: something went wrong during subscription update.', 'wpforms-lite' ); + + return null; + } + } + + /** + * Retrieve card details from specific transaction in object format. + * + * @since 1.9.5 + * + * @param string $transaction_id The ID of the order to retrieve card details from. + * + * @return stdClass|void + */ + public function get_card_details_from_transaction_id( string $transaction_id ) { + + $response = $this->client->getPaymentsApi()->getPayment( $transaction_id ); + + if ( ! $response->isSuccess() ) { + return; + } + + $payment = $response->getResult()->getPayment(); + $card_details = $payment->getCardDetails(); + + if ( ! $card_details ) { + return; + } + + $card = $card_details->getCard(); + + if ( ! $card ) { + return; + } + + // Create a temporary object to mimic Square's payment_method_details structure. + $details = new stdClass(); + $details->source_type = 'card'; + $details->card_details = new stdClass(); + $details->card_details->card = new stdClass(); + $details->card_details->card->last_4 = $card->getLast4(); + $details->card_details->card->card_brand = $card->getCardBrand(); + $details->card_details->card->exp_month = $card->getExpMonth(); + $details->card_details->card->exp_year = $card->getExpYear(); + + return $details; + } + + /** + * Retrieve the latest invoice transaction_id. + * + * @since 1.9.5 + * + * @param Invoice $invoice Invoice object. + * + * @return string + */ + public function get_latest_invoice_transaction_id( $invoice ): string { + + $order_id = $invoice->getOrderId(); + + if ( ! $order_id ) { + return ''; + } + + $order_response = $this->client->getOrdersApi()->retrieveOrder( $order_id ); + + if ( ! $order_response->isSuccess() ) { + return ''; + } + + $order = $order_response->getResult()->getOrder(); + $tenders = $order->getTenders(); + + if ( empty( $tenders ) ) { + return ''; + } + + // Assuming the last tender represents the final transaction. + return end( $tenders )->getPaymentId(); + } + + /** + * Retrieve the invoice by order ID. + * + * @since 1.9.5 + * + * @param string $order_id Order ID. + * + * @return Invoice|null + */ + public function get_invoice_by_order_id( string $order_id ) { + + $invoices_api = $this->client->getInvoicesApi(); + + try { + $response = $invoices_api->listInvoices( Helpers::get_location_id() ); + + if ( ! $response->isSuccess() ) { + return null; + } + + $invoices = $response->getResult()->getInvoices(); + + if ( empty( $invoices ) ) { + return null; + } + + foreach ( $invoices as $invoice ) { + if ( $invoice->getOrderId() === $order_id ) { + return $invoice; + } + } + } catch ( ApiException $e ) { + return null; + } + + return null; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookEvent.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookEvent.php new file mode 100644 index 0000000..8c4ad96 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookEvent.php @@ -0,0 +1,50 @@ +type, $event->data ) ) { + throw new RuntimeException( 'Invalid webhook payload structure.' ); + } + + return $event; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookRoute.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookRoute.php new file mode 100644 index 0000000..b07ca5e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhookRoute.php @@ -0,0 +1,364 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + if ( $this->is_rest_verification() ) { + add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] ); + + return; + } + + // Do not serve regular page when it seems Square Webhooks are still sending requests to disabled CURL endpoint. + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( + isset( $_GET[ Helpers::get_webhook_endpoint_data()['fallback'] ] ) && + ( ! Helpers::is_webhook_enabled() || Helpers::is_rest_api_set() ) + ) { + add_action( 'wp', [ $this, 'dispatch_with_error_500' ] ); + + return; + } + + // Check if Square is configured. + if ( ! Helpers::is_square_configured() ) { + return; + } + + // phpcs:enable WordPress.Security.NonceVerification.Recommended + if ( ! Helpers::is_webhook_enabled() || ! Helpers::is_webhook_configured() ) { + return; + } + + if ( Helpers::is_rest_api_set() ) { + add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] ); + + return; + } + + add_action( 'wp', [ $this, 'dispatch_with_url_param' ] ); + } + + /** + * Register webhook REST route. + * + * @since 1.9.5 + */ + public function register_rest_routes() { + + $methods = [ 'POST' ]; + + if ( $this->is_rest_verification() ) { + $methods[] = 'GET'; + } + + register_rest_route( + Helpers::get_webhook_endpoint_data()['namespace'], + '/' . Helpers::get_webhook_endpoint_data()['route'], + [ + 'methods' => $methods, + 'callback' => [ $this, 'dispatch_square_webhooks_payload' ], + 'show_in_index' => false, + 'permission_callback' => '__return_true', + ] + ); + } + + /** + * Dispatch Square webhooks payload for the url param. + * + * @since 1.9.5 + */ + public function dispatch_with_url_param() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! isset( $_GET[ Helpers::get_webhook_endpoint_data()['fallback'] ] ) ) { + return; + } + + $this->dispatch_square_webhooks_payload(); + } + + /** + * Dispatch Square webhooks payload for the url param with error 500. + * + * Runs when url param is not configured or webhooks are not enabled at all. + * + * @since 1.9.5 + */ + public function dispatch_with_error_500() { + + $this->response = esc_html__( 'It seems to be request to Square PHP Listener method handler but the site is not configured to use it.', 'wpforms-lite' ); + $this->response_code = 500; + + $this->respond(); + } + + /** + * Dispatch Square webhooks' payload. + * + * @since 1.9.5 + * + * @throws RuntimeException When Square signature is not set. + */ + public function dispatch_square_webhooks_payload() { + + if ( $this->is_rest_verification() ) { + wp_send_json_success(); + } + + try { + // Get raw payload and signature. + $this->payload = file_get_contents( 'php://input' ); + + // Construct event. + $event = WebhookEvent::construct_event( + $this->payload, + $this->get_webhook_signature(), + $this->get_webhook_signing_secret() + ); + + $event_whitelist = self::get_webhooks_events_list(); + + if ( ! in_array( $event->type, $event_whitelist, true ) ) { + throw new RuntimeException( 'Square event type is not whitelisted.' ); + } + + // Update webhook site health status. + WebhooksHealthCheck::save_status( WebhooksHealthCheck::ENDPOINT_OPTION, WebhooksHealthCheck::STATUS_OK ); + + $this->event_type = $event->type; + $this->response = 'WPForms Square: ' . $this->event_type . ' event received.'; + + $processed = $this->process_event( $event ); + + $this->response_code = $processed ? 200 : 202; + + $this->respond(); + } catch ( Exception $e ) { + + $this->response = $e->getMessage(); + $this->response_code = $e instanceof BadMethodCallException ? 501 : 500; + + $this->respond(); + } + } + + /** + * Get webhook signature. + * + * @since 1.9.5 + * + * @throws RuntimeException When Square signature is not set. + * + * @return string + */ + private function get_webhook_signature(): string { + + if ( ! isset( $_SERVER['HTTP_X_SQUARE_HMACSHA256_SIGNATURE'] ) ) { + throw new RuntimeException( 'Square signature is not set.' ); + } + + return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_SQUARE_HMACSHA256_SIGNATURE'] ) ); + } + + /** + * Get webhook signing secret. + * + * @since 1.9.5 + * + * @throws RuntimeException When webhook signing secret is not set. + * + * @return string + */ + private function get_webhook_signing_secret(): string { + + $secret = wpforms_setting( 'square-webhooks-secret-' . Helpers::get_mode() ); + + if ( empty( $secret ) ) { + throw new RuntimeException( 'Webhook signing secret is not set.' ); + } + + return $secret; + } + + /** + * Process Square event. + * + * @since 1.9.5 + * + * @param object $event Square event. + * + * @return bool True if event has handling class, false otherwise. + */ + private function process_event( $event ): bool { + + $webhooks = self::get_event_whitelist(); + + // Event can't be handled. + if ( ! isset( $webhooks[ $event->type ] ) || ! class_exists( $webhooks[ $event->type ] ) ) { + return false; + } + + $handler = new $webhooks[ $event->type ](); + + $handler->setup( $event ); + + return $handler->handle(); + } + + /** + * Get event allowlist. + * + * @since 1.9.5 + * + * @return array + */ + private static function get_event_whitelist(): array { + + return [ + 'refund.updated' => Webhooks\RefundUpdated::class, + 'payment.updated' => Webhooks\PaymentUpdated::class, + 'payment.created' => Webhooks\PaymentCreated::class, + 'subscription.created' => Webhooks\SubscriptionCreated::class, + 'subscription.updated' => Webhooks\SubscriptionUpdated::class, + ]; + } + + /** + * Check if rest verification is requested. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_rest_verification(): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return isset( $_GET['verify'] ) && $_GET['verify'] === '1'; + } + + /** + * Respond to the request. + * + * @since 1.9.5 + */ + private function respond() { + + $this->log_webhook(); + + wp_die( esc_html( $this->response ), '', (int) $this->response_code ); + } + + /** + * Log webhook request. + * + * @since 1.9.5 + */ + private function log_webhook() { + + // log only if WP_DEBUG_LOG and WPFORMS_WEBHOOKS_DEBUG are set to true. + if ( + ! defined( 'WPFORMS_WEBHOOKS_DEBUG' ) || + ! WPFORMS_WEBHOOKS_DEBUG || + ! defined( 'WP_DEBUG_LOG' ) || + ! WP_DEBUG_LOG + ) { + return; + } + + // If it is set to explicitly display logs on output, return: this would make response to Square malformed. + if ( defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY ) { + return; + } + + $webhook_log = maybe_serialize( + [ + 'event_type' => $this->event_type, + 'response_code' => $this->response_code, + 'response' => $this->response, + 'payload' => $this->payload, + ] + ); + + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log + error_log( $webhook_log ); + } + + /** + * Get a webhook events list. + * + * @since 1.9.5 + * + * @return array + */ + public static function get_webhooks_events_list(): array { + + return array_keys( self::get_event_whitelist() ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/Base.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/Base.php new file mode 100644 index 0000000..c7cf9c9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/Base.php @@ -0,0 +1,220 @@ +data = $event->data; + $this->type = $event->type; + + if ( ! Connection::get() ) { + throw new RuntimeException( 'Square connection is not available.' ); + } + + $this->api = new Api( Connection::get() ); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_filter( 'wpforms_current_user_can', '__return_true' ); + } + + /** + * Handle the Webhook's data. + * + * @since 1.9.5 + * + * return bool + */ + abstract public function handle(); + + /** + * Set payment object. + * + * Set payment object from a database. If payment is not registered yet in DB, throw exception. + * + * @since 1.9.5 + */ + protected function set_payment() { + + $transaction_id = $this->data->object->payment->id ?? ''; + + if ( $this->type === 'refund.updated' ) { + $transaction_id = $this->data->object->refund->payment_id; + } + + $this->db_payment = wpforms()->obj( 'payment' )->get_by( 'transaction_id', $transaction_id ); + } + + /** + * Update payment method details. + * + * @since 1.9.5 + * + * @param int $payment_id Payment ID. + * @param object $details Charge details. + */ + protected function update_payment_method_details( int $payment_id, $details ) { + + $meta['method_type'] = ! empty( $details->source_type ) ? sanitize_text_field( $details->source_type ) : ''; + + if ( ! empty( $details->card_details->card->last_4 ) ) { + $meta['credit_card_last4'] = $details->card_details->card->last_4; + $meta['credit_card_method'] = $details->card_details->card->card_brand; + $meta['credit_card_expires'] = $details->card_details->card->exp_month . '/' . $details->card_details->card->exp_year; + } + + $payment_meta_obj = wpforms()->obj( 'payment_meta' ); + + if ( ! $payment_meta_obj ) { + return; + } + + $payment_meta_obj->bulk_add( $payment_id, $meta ); + } + + /** + * Update total refunded amount. + * + * @since 1.9.5 + * + * @param int $payment_id Payment ID. + * @param object $refund_details Refund details. + */ + protected function update_total_refund( int $payment_id, $refund_details ) { + + $decimals_amount = wpforms_get_currency_multiplier( $refund_details->currency ); + $total_refunded_amount = ( $decimals_amount !== 0 ) ? ( $refund_details->amount / $decimals_amount ) : 0; + + if ( ! $total_refunded_amount ) { + return; + } + + wpforms()->obj( 'payment_meta' )->update_or_add( + $payment_id, + 'total_refunded_amount', + $total_refunded_amount + ); + } + + /** + * Get latest transaction ID from subscription. + * + * @since 1.9.5 + * + * @param string $subscription_id Subscription ID. + * + * @return string + */ + protected function get_latest_subscription_transaction_id( string $subscription_id ): string { + + $subscription = $this->api->retrieve_subscription( $subscription_id ); + + if ( ! $subscription ) { + return ''; + } + + $invoice = $this->api->get_latest_subscription_invoice( $subscription ); + + if ( ! $invoice ) { + return ''; + } + + $transaction_id = $this->api->get_latest_invoice_transaction_id( $invoice ); + + if ( ! $transaction_id ) { + return ''; + } + + return $transaction_id; + } + + /** + * Check if the invoice is initial for the subscription. + * + * @since 1.9.5 + * + * @param string $subscription_id Subscription ID. + * + * @return bool + */ + protected function is_initial_invoice_for_subscription( string $subscription_id ): bool { + + $subscription = $this->api->retrieve_subscription( $subscription_id ); + + if ( ! $subscription ) { + return false; + } + + $invoices = $subscription->getInvoiceIds(); + + if ( empty( $invoices ) ) { + return false; + } + + return count( $invoices ) <= 1; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentCreated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentCreated.php new file mode 100644 index 0000000..504ec1b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentCreated.php @@ -0,0 +1,224 @@ +data->object->payment->order_id ?? ''; + $this->invoice = $this->api->get_invoice_by_order_id( $order_id ); + + // Ensure the invoice was retrieved. + if ( ! $this->invoice ) { + throw new RuntimeException( 'Invoice not found for order ID: ' . esc_html( $order_id ) ); + } + + $subscription_id = $this->invoice->getSubscriptionId(); + + if ( ! $subscription_id ) { + throw new RuntimeException( 'Missing subscription ID in payment.created event.' ); + } + + $original_subscription = ( new Queries() )->get_subscription( $subscription_id ); + + if ( is_null( $original_subscription ) ) { + return false; // Original subscription not found. + } + + $payment = wpforms()->obj( 'payment' )->get_by( 'subscription_id', $subscription_id ); + + if ( ! $payment ) { + return false; + } + + $this->set_transaction_id( $payment ); + + // If this is the first invoice in the subscription, we don't want to create a renewal. + if ( $this->is_initial_invoice_for_subscription( $subscription_id ) ) { + return false; + } + + $renewal = ( new Queries() )->get_renewal_by_invoice_id( $this->invoice->getId() ); + + if ( ! is_null( $renewal ) ) { + return false; // Renewal already exists. + } + + $renewal_id = $this->insert_renewal( $original_subscription ); + + if ( ! $renewal_id ) { + throw new RuntimeException( 'Subscription renewal not saved in database' ); + } + + $this->insert_renewal_meta( $renewal_id, $original_subscription ); + + wpforms()->obj( 'payment_meta' )->add_log( + $renewal_id, + sprintf( + 'Square renewal was created (Invoice ID: %1$s).', + $this->invoice->getId() + ) + ); + + return true; + } + + /** + * Insert renewal. + * + * @since 1.9.5 + * + * @param object $original_subscription Original subscription. + * + * @return int|false + */ + private function insert_renewal( $original_subscription ) { + + // Retrieve payment requests from the invoice. + $payment_requests = $this->invoice->getPaymentRequests(); + + if ( empty( $payment_requests ) ) { + return false; + } + + // Use the first payment request. + $first_payment_request = $payment_requests[0]; + $computed_amount_money = $first_payment_request->getComputedAmountMoney(); + $currency = strtoupper( $computed_amount_money->getCurrency() ); + $amount = $computed_amount_money->getAmount() / wpforms_get_currency_multiplier( $currency ); + + return wpforms()->obj( 'payment' )->add( + [ + 'mode' => $original_subscription->mode, + 'form_id' => $original_subscription->form_id ?? 0, + 'entry_id' => $original_subscription->entry_id ?? 0, + 'status' => 'pending', + 'type' => 'renewal', + 'gateway' => 'square', + 'title' => $original_subscription->title, + 'subtotal_amount' => $amount, + 'total_amount' => $amount, + 'currency' => $currency, + 'transaction_id' => '', + 'subscription_id' => $original_subscription->subscription_id, + 'customer_id' => $original_subscription->customer_id, + 'date_created_gmt' => gmdate( 'Y-m-d H:i:s', strtotime( $this->invoice->getCreatedAt() ) ), + 'date_updated_gmt' => gmdate( 'Y-m-d H:i:s' ), + ] + ); + } + + /** + * Insert renewal meta. + * + * @since 1.9.5 + * + * @param int $renewal_id Renewal ID. + * @param object $original_subscription Original subscription. + */ + private function insert_renewal_meta( int $renewal_id, $original_subscription ) { + + $meta = $this->copy_meta_from_db( $original_subscription->id ); + + $meta['invoice_id'] = $this->invoice->getId(); + $meta['customer_email'] = $this->invoice->getPrimaryRecipient()->getEmailAddress() ?? ''; + + wpforms()->obj( 'payment_meta' )->bulk_add( $renewal_id, $meta ); + } + + /** + * Copy meta from the original subscription. + * + * @since 1.9.5 + * + * @param int $original_subscription_id Original subscription ID. + * + * @return array + */ + private function copy_meta_from_db( int $original_subscription_id ): array { + + $all_meta = wpforms()->obj( 'payment_meta' )->get_all( $original_subscription_id ); + $db_meta_keys = [ + 'fields', + 'subscription_period', + 'coupon_value', + 'coupon_info', + 'coupon_id', + ]; + $meta = []; + + foreach ( $db_meta_keys as $key ) { + if ( isset( $all_meta[ $key ]->value ) ) { + $meta[ $key ] = $all_meta[ $key ]->value; + } + } + + return $meta; + } + + /** + * Set the transaction ID for the initial payment. + * + * @since 1.9.5 + * + * @param object $payment Payment object. + * + * @return bool + * + * @throws RuntimeException If subscription ID or order ID is missing. + */ + private function set_transaction_id( $payment ): bool { + + $subscription_id = $this->invoice->getSubscriptionId(); + $transaction_id = $this->get_latest_subscription_transaction_id( $subscription_id ); + + if ( ! $transaction_id ) { + return false; + } + + wpforms()->obj( 'payment' )->update( + $payment->id, + [ + 'transaction_id' => $transaction_id, + ] + ); + + wpforms()->obj( 'payment_meta' )->add_log( + $payment->id, + sprintf( + 'Square subscription was created. (Invoice ID: %s)', + $this->invoice->getId() + ) + ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentUpdated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentUpdated.php new file mode 100644 index 0000000..b2b5173 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/PaymentUpdated.php @@ -0,0 +1,183 @@ +data->object->payment->order_id ?? ''; + $this->invoice = $this->api->get_invoice_by_order_id( $order_id ); + $subscription_id = $this->invoice ? $this->invoice->getSubscriptionId() : ''; + + // If a subscription ID exists, process the subscription-specific logic. + if ( $subscription_id ) { + $this->update_subscription_payment( $subscription_id ); + } + + $this->set_payment(); + + if ( $this->db_payment === null ) { + throw new RuntimeException( 'Payment Update Event: Payment has not been found and set.' ); + } + + // Update payment method details to keep them up to date. + if ( isset( $this->data->object->payment ) && $this->data->object->payment !== null ) { + $this->update_payment_method_details( $this->db_payment->id, $this->data->object->payment ); + } + + // Update total refunded amount if set. + if ( ! empty( $this->data->object->payment->refunded_money ) ) { + $this->update_total_refund( $this->db_payment->id, $this->data->object->payment->refunded_money ); + } + + if ( $this->db_payment->status !== 'processed' || $this->data->object->payment->status !== 'COMPLETED' ) { + return false; + } + + $currency = strtoupper( $this->data->object->payment->total_money->currency ); + $db_amount = wpforms_format_amount( $this->db_payment->total_amount ); + $amount = wpforms_format_amount( $this->data->object->payment->total_money->amount / wpforms_get_currency_multiplier( $currency ) ); + + if ( $amount !== $db_amount ) { + return false; + } + + $updated_payment = wpforms()->obj( 'payment' )->update( + $this->db_payment->id, + [ + 'status' => 'completed', + 'date_updated_gmt' => gmdate( 'Y-m-d H:i:s' ), + ] + ); + + if ( ! $updated_payment ) { + throw new RuntimeException( 'Payment not updated' ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $this->db_payment->id, + 'Square payment was completed.' + ); + + return true; + } + + /** + * Update subscription payment. + * + * @since 1.9.5 + * + * @param string $subscription_id Subscription ID. + * + * @return bool + */ + private function update_subscription_payment( string $subscription_id ): bool { + + // If this is the first invoice in the subscription, do not create a renewal. + if ( $this->is_initial_invoice_for_subscription( $subscription_id ) ) { + return false; + } + + // Retrieve the renewal record from the database. + $db_renewal = ( new Queries() )->get_renewal_by_invoice_id( $this->invoice->getId() ); + + if ( is_null( $db_renewal ) ) { + return false; // The newest renewal not found. + } + + // Check if the renewal payment is already completed. + if ( $db_renewal->status === 'completed' ) { + return true; + } + + // Retrieve the payment requests from the invoice. + $payment_requests = $this->invoice->getPaymentRequests(); + + if ( empty( $payment_requests ) ) { + return false; + } + + // Use the first payment request to get the final paid amount. + $total_completed = $payment_requests[0]->getTotalCompletedAmountMoney(); + $currency = strtoupper( $total_completed->getCurrency() ); + $amount = $total_completed->getAmount() / wpforms_get_currency_multiplier( $currency ); + + // Retrieve the transaction ID using the subscription ID. + $transaction_id = $this->get_latest_subscription_transaction_id( $subscription_id ); + + if ( empty( $transaction_id ) ) { + $transaction_id = ''; + } + + // Update the renewal payment with the final amount and transaction ID. + wpforms()->obj( 'payment' )->update( + $db_renewal->id, + [ + 'total_amount' => $amount, + 'subtotal_amount' => $amount, + 'status' => 'completed', + 'transaction_id' => $transaction_id, + ] + ); + + // Copy additional meta data from the transaction details. + $this->copy_meta_from_transaction_details( (int) $db_renewal->id, $transaction_id ); + + wpforms()->obj( 'payment_meta' )->add_log( + $db_renewal->id, + sprintf( + 'Square renewal was successfully paid. (Payment ID: %1$s)', + $transaction_id + ) + ); + + return true; + } + + /** + * Copy meta from transaction. + * + * @since 1.9.5 + * + * @param int $renewal_id Renewal ID. + * @param string $transaction_id Transaction ID. + */ + private function copy_meta_from_transaction_details( int $renewal_id, string $transaction_id ) { + + $card_details = $this->api->get_card_details_from_transaction_id( $transaction_id ); + + if ( ! $card_details ) { + return; + } + + $this->update_payment_method_details( $renewal_id, $card_details ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/RefundUpdated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/RefundUpdated.php new file mode 100644 index 0000000..24e50d5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/RefundUpdated.php @@ -0,0 +1,94 @@ +set_payment(); + + if ( $this->db_payment === null ) { + throw new RuntimeException( 'Refund Update Event: Payment has not been found and set.' ); + } + + // Perform refund only if it's allowed. + if ( ! $this->is_refund_allowed() ) { + return false; + } + + $currency = strtoupper( $this->data->object->refund->amount_money->currency ); + $decimals_amount = wpforms_get_currency_multiplier( $currency ); + + // We need to format the amount since it doesn't contain decimals, e.g., 525 instead of 5.25. + $refunded_amount = ( $decimals_amount !== 0 ) ? ( $this->data->object->refund->amount_money->amount / $decimals_amount ) : 0; + $refunded_amount_formatted = wpforms_format_amount( $refunded_amount, true, $currency ); + $log = sprintf( 'Square payment refunded from the Square dashboard. Refunded amount: %1$s.', $refunded_amount_formatted ); + $total_amount_refund = wpforms()->obj( 'payment_meta' )->get_single( $this->db_payment->id, 'total_refunded_amount' ); + + if ( empty( $total_amount_refund ) ) { + $total_amount_refund = $refunded_amount; + } + + if ( ! UpdateHelpers::refund_payment( $this->db_payment, $total_amount_refund, $log ) ) { + /* translators: %s - transaction id. */ + $log = sprintf( __( 'Payment for transaction %s was not updated.', 'wpforms-lite' ), $this->db_payment->transaction_id ); + + throw new RuntimeException( esc_html( $log ) ); + } + + return true; + } + + /** + * Check if refund is allowed. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_refund_allowed(): bool { + + if ( ! $this->db_payment ) { + return false; + } + + // Do not track uncompleted refunds. + if ( $this->data->object->refund->status !== 'COMPLETED' ) { + return false; + } + + // Do not track refunds that were not requested by the customer. + if ( ! empty( $this->data->object->refund->reason ) && $this->data->object->refund->reason !== 'Requested by customer' ) { + return false; + } + + // Square sends two webhooks for a refund with the same COMPLETED statuses, + // but the final is the one with the fee included. + if ( ! isset( $this->data->object->refund->processing_fee ) ) { + return false; + } + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionCreated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionCreated.php new file mode 100644 index 0000000..5d14853 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionCreated.php @@ -0,0 +1,42 @@ +obj( 'payment' )->get_by( 'subscription_id', $this->data->object->subscription->id ); + + if ( ! $payment ) { + return false; + } + + if ( ! wpforms()->obj( 'payment' )->update( $payment->id, [ 'subscription_status' => 'active' ] ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $payment->id, + 'Square subscription was set to active.' + ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionUpdated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionUpdated.php new file mode 100644 index 0000000..2a76e92 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/Webhooks/SubscriptionUpdated.php @@ -0,0 +1,60 @@ +obj( 'payment' )->get_by( 'subscription_id', $this->data->object->subscription->id ); + + if ( ! $payment ) { + return false; + } + + // Track canceled subscriptions. + if ( isset( $this->data->object->subscription->canceled_date ) ) { + if ( ! UpdateHelpers::cancel_subscription( $payment->id, 'Square subscription cancelled from the Square dashboard.' ) ) { + throw new RuntimeException( 'Subscription cancellation was not updated.' ); + } + + return true; + } + + $status = strtolower( $this->data->object->subscription->status ); + + // Return true if the subscription status is the same as the status in the webhook data. + if ( $payment->subscription_status === $status ) { + return true; + } + + // Update subscription status. + if ( ! wpforms()->obj( 'payment' )->update( $payment->id, [ 'subscription_status' => $status ] ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $payment->id, + sprintf( 'Square subscription was set to %1$s.', $status ) + ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhooksManager.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhooksManager.php new file mode 100644 index 0000000..7aaaf3f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Api/WebhooksManager.php @@ -0,0 +1,206 @@ + esc_html__( 'You are not allowed to perform this action', 'wpforms-lite' ) ] ); + } + + $personal_access_token = ! empty( $_POST['token'] ) ? sanitize_text_field( wp_unslash( $_POST['token'] ) ) : ''; + + if ( empty( $personal_access_token ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Personal access token is required.', 'wpforms-lite' ) ] ); + } + + $webhook = $this->create( $personal_access_token ); + + // Register AS task. + ( new WebhooksHealthCheck() )->maybe_schedule_task(); + + // Store endpoint ID and secret. + if ( ! empty( $webhook ) ) { + $this->save_settings( $webhook ); + + wp_send_json_success( [ 'message' => esc_html__( 'Webhook created successfully!', 'wpforms-lite' ) ] ); + } + + wp_send_json_error( [ 'message' => esc_html__( 'Failed to create webhook.', 'wpforms-lite' ) ] ); + } + + /** + * Create or update a webhook endpoint. + * + * @since 1.9.5 + * + * @param string $personal_access_token Personal access token. + * + * @return array Endpoint ID and secret. + */ + private function create( string $personal_access_token ): array { + + $this->client = new SquareClient( + [ + 'accessToken' => $personal_access_token, + 'environment' => Helpers::get_mode(), + ] + ); + + // Check if the webhook already exists. + $existing_webhook = $this->webhook_exists(); + + // Prepare a webhook subscription object. + $webhook_subscription = new WebhookSubscription(); + $webhook_subscription->setName( sprintf( 'WPForms endpoint (%1$s mode)', Helpers::get_mode() ) ); + $webhook_subscription->setNotificationUrl( Helpers::get_webhook_url() ); + $webhook_subscription->setEventTypes( WebhookRoute::get_webhooks_events_list() ); + + $webhooks_api = $this->client->getWebhookSubscriptionsApi(); + + if ( $existing_webhook ) { + try { + // Create an update request and set the subscription payload. + $request = new UpdateWebhookSubscriptionRequest(); + + $request->setSubscription( $webhook_subscription ); + + // Update the existing webhook subscription. + $response = $webhooks_api->updateWebhookSubscription( $existing_webhook['id'], $request ); + + if ( $response->isSuccess() ) { + $subscription = $response->getResult()->getSubscription(); + + return [ + 'id' => $subscription->getId(), + 'signature_key' => $existing_webhook['signature_key'] ?? '', // getSignatureKey() isn't available in the update response, fall back to the existing webhook's signature key. + ]; + } + // If the update fails, return the existing webhook details. + return $existing_webhook; + } catch ( Exception $e ) { + return $existing_webhook; + } + } + + // Create a new webhook subscription if none exists. + $request = new CreateWebhookSubscriptionRequest( $webhook_subscription ); + + $request->setIdempotencyKey( uniqid() ); + + try { + // Create the webhook subscription. + $response = $webhooks_api->createWebhookSubscription( $request ); + + if ( $response->isSuccess() ) { + $subscription = $response->getResult()->getSubscription(); + + return [ + 'id' => $subscription->getId(), + 'signature_key' => $subscription->getSignatureKey(), + ]; + } + + return []; + } catch ( Exception $e ) { + return []; + } + } + + /** + * Check if webhook already exists. + * + * @since 1.9.5 + * + * @return array + */ + private function webhook_exists(): array { + + try { + $response = $this->client->getWebhookSubscriptionsApi()->listWebhookSubscriptions(); + + if ( ! $response->isSuccess() || empty( $response->getResult()->getSubscriptions() ) ) { + return []; + } + + foreach ( $response->getResult()->getSubscriptions() as $subscription ) { + + if ( $subscription->getNotificationUrl() !== Helpers::get_webhook_url() ) { + continue; + } + + $signature = $this->client->getWebhookSubscriptionsApi()->retrieveWebhookSubscription( $subscription->getId() ); + + return $signature->isSuccess() ? [ + 'id' => $signature->getResult()->getSubscription()->getId(), + 'signature_key' => $signature->getResult()->getSubscription()->getSignatureKey(), + ] : []; + } + } catch ( Exception $e ) { + return []; + } + + return []; + } + + + /** + * Save webhook settings. + * + * @since 1.9.5 + * + * @param array $webhook Webhook endpoint. + */ + private function save_settings( array $webhook ) { + + $mode = Helpers::get_mode(); + $settings = (array) get_option( 'wpforms_settings', [] ); + + // Save webhooks endpoint ID and secret. + $settings[ 'square-webhooks-id-' . $mode ] = sanitize_text_field( $webhook['id'] ); + $settings[ 'square-webhooks-secret-' . $mode ] = sanitize_text_field( $webhook['signature_key'] ); + + WebhooksHealthCheck::save_status( WebhooksHealthCheck::ENDPOINT_OPTION, WebhooksHealthCheck::STATUS_OK ); + + // Enable webhooks setting shouldn't be rewritten. + if ( empty( $settings['square-webhooks-enabled'] ) ) { + $settings['square-webhooks-enabled'] = true; + } + + update_option( 'wpforms_settings', $settings ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Connection.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Connection.php new file mode 100644 index 0000000..53bf09e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Connection.php @@ -0,0 +1,561 @@ +access_token = $data['access_token']; + } + + if ( ! empty( $data['refresh_token'] ) ) { + $this->refresh_token = $data['refresh_token']; + } + + if ( ! empty( $data['client_id'] ) ) { + $this->client_id = $data['client_id']; + } + + if ( ! empty( $data['merchant_id'] ) ) { + $this->merchant_id = $data['merchant_id']; + } + + if ( ! empty( $data['scopes_updated'] ) ) { + $this->scopes_updated = $data['scopes_updated']; + } + + $this->set_status( empty( $data['status'] ) ? self::STATUS_VALID : $data['status'] ); + + $this->currency = empty( $data['currency'] ) ? '' : strtoupper( (string) $data['currency'] ); + $this->renew_at = empty( $data['renew_at'] ) ? time() : (int) $data['renew_at']; + $this->live_mode = ! empty( $data['live_mode'] ); + $this->encrypted = (bool) $encrypted; + } + + /** + * Retrieve a connection instance if it exists. + * + * @since 1.9.5 + * + * @param string $mode Square mode. + * @param bool $encrypted Optional. Default true. Use false when connection tokens were not encrypted. + * + * @return Connection|null + */ + public static function get( string $mode = '', bool $encrypted = true ) { + + $mode = Helpers::validate_mode( $mode ); + $connections = (array) get_option( 'wpforms_square_connections', [] ); + + if ( empty( $connections[ $mode ] ) ) { + return null; + } + + return new self( (array) $connections[ $mode ], $encrypted ); + } + + /** + * Save connection data into DB. + * + * @since 1.9.5 + */ + public function save() { + + $connections = (array) get_option( 'wpforms_square_connections', [] ); + + $connections[ $this->get_mode() ] = $this->get_data(); + + update_option( 'wpforms_square_connections', $connections ); + } + + /** + * Delete connection data from DB. + * + * @since 1.9.5 + */ + public function delete() { + + $connections = (array) get_option( 'wpforms_square_connections', [] ); + + unset( $connections[ $this->get_mode() ] ); + + empty( $connections ) ? delete_option( 'wpforms_square_connections' ) : update_option( 'wpforms_square_connections', $connections ); + } + + /** + * Revoke tokens from DB. + * + * @since 1.9.5 + */ + public function revoke_tokens() { + + $connections = (array) get_option( 'wpforms_square_connections', [] ); + $mode = $this->get_mode(); + + $connections[ $mode ] = $this->get_data(); + $connections[ $mode ]['access_token'] = ''; + $connections[ $mode ]['refresh_token'] = ''; + + update_option( 'wpforms_square_connections', $connections ); + } + + /** + * Retrieve true if a connection for production mode. + * + * @since 1.9.5 + * + * @return bool + */ + public function get_live_mode(): bool { + + return $this->live_mode; + } + + /** + * Retrieve a connection mode. + * + * @since 1.9.5 + * + * @return string + */ + public function get_mode(): string { + + return $this->live_mode ? Environment::PRODUCTION : Environment::SANDBOX; + } + + /** + * Retrieve an un-encrypted access token. + * + * @since 1.9.5 + * + * @return string + */ + public function get_access_token(): string { + + return $this->encrypted ? Crypto::decrypt( $this->access_token ) : $this->access_token; + } + + /** + * Retrieve an un-encrypted refresh token. + * + * @since 1.9.5 + * + * @return string + */ + public function get_refresh_token(): string { + + return $this->encrypted ? Crypto::decrypt( $this->refresh_token ) : $this->refresh_token; + } + + /** + * Retrieve a client ID. + * + * @since 1.9.5 + * + * @return string + */ + public function get_client_id(): string { + + return $this->client_id; + } + + /** + * Retrieve an ID of the authorized merchant. + * + * @since 1.9.5 + * + * @return string + */ + public function get_merchant_id(): string { + + return $this->merchant_id; + } + + /** + * Retrieve a currency code of the authorized merchant. + * + * @since 1.9.5 + * + * @return string + */ + public function get_currency(): string { + + return $this->currency; + } + + /** + * Set a currency code. + * + * @since 1.9.5 + * + * @param string $code Currency code. + * + * @return Connection + */ + public function set_currency( string $code ) { + + $this->currency = strtoupper( $code ); + + return $this; + } + + /** + * Retrieve a connection status. + * + * @since 1.9.5 + * + * @return string + */ + public function get_status(): string { + + return $this->status; + } + + /** + * Set a connection status if it valid. + * + * @since 1.9.5 + * + * @param string $status The connection status. + * + * @return Connection + */ + public function set_status( string $status ) { + + if ( in_array( $status, $this->get_statuses(), true ) ) { + $this->status = $status; + } + + return $this; + } + + /** + * Retrieve a renewal timestamp. + * + * @since 1.9.5 + * + * @return int + */ + public function get_renew_at(): int { + + return $this->renew_at; + } + + /** + * Set/update a renewal timestamp. + * + * @since 1.9.5 + * + * @return Connection + */ + public function set_renew_at() { + + // Tokens must automatically renew every 7 days or less. + $this->renew_at = time() + wp_rand( 5, 8 ) * DAY_IN_SECONDS; + + return $this; + } + + /** + * Retrieve a scopes updated timestamp. + * + * @since 1.9.5 + * + * @return int + */ + public function get_scopes_updated(): int { + + return $this->scopes_updated; + } + + /** + * Set/update a scopes updated timestamp. + * + * @since 1.9.5 + * + * @return Connection + */ + public function set_scopes_updated() { + + $this->scopes_updated = time(); + + return $this; + } + + /** + * Encrypt tokens, if it needed. + * + * @since 1.9.5 + * + * @return Connection + */ + public function encrypt_tokens() { + + // Bail if tokens have already encrypted. + if ( $this->encrypted ) { + return $this; + } + + // Bail if tokens are not passed. + if ( empty( $this->access_token ) || empty( $this->refresh_token ) ) { + return $this; + } + + // Prepare encrypted tokens. + $encrypted_access_token = Crypto::encrypt( $this->access_token ); + $encrypted_refresh_token = Crypto::encrypt( $this->refresh_token ); + + // Bail if encrypted tokens are invalid. + if ( empty( $encrypted_access_token ) || empty( $encrypted_refresh_token ) ) { + return $this; + } + + $this->encrypted = true; + $this->access_token = $encrypted_access_token; + $this->refresh_token = $encrypted_refresh_token; + + return $this; + } + + /** + * Retrieve available statuses. + * + * @since 1.9.5 + * + * @return array + */ + private function get_statuses(): array { + + return [ self::STATUS_VALID, self::STATUS_INVALID ]; + } + + /** + * Retrieve a connection in array format, simply like `toArray` method. + * + * @since 1.9.5 + * + * @return array + */ + private function get_data(): array { + + return [ + 'live_mode' => $this->live_mode, + 'access_token' => $this->access_token, + 'refresh_token' => $this->refresh_token, + 'client_id' => $this->client_id, + 'merchant_id' => $this->merchant_id, + 'currency' => $this->currency, + 'status' => $this->status, + 'renew_at' => $this->renew_at, + 'scopes_updated' => $this->scopes_updated, + ]; + } + + /** + * Determine whether connection tokens is encrypted. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_encrypted(): bool { + + return $this->encrypted; + } + + /** + * Determine whether a connection is configured fully. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_configured(): bool { + + return ! empty( $this->get_access_token() ) && ! empty( $this->get_refresh_token() ) && ! empty( $this->client_id ) && ! empty( $this->merchant_id ); + } + + /** + * Determine whether a connection is expired. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_expired(): bool { + + return ( $this->renew_at - time() ) < HOUR_IN_SECONDS; + } + + /** + * Determine whether a connection currency is matched with WPForms currency. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_currency_matched(): bool { + + return $this->currency === strtoupper( wpforms_get_currency() ); + } + + /** + * Determine whether a connection is valid. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_valid(): bool { + + return $this->get_status() === self::STATUS_VALID; + } + + /** + * Determine whether a connection is ready for save. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_saveable(): bool { + + return $this->is_configured() && ! $this->is_expired() && $this->is_encrypted(); + } + + /** + * Determine whether a connection is ready for use. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_usable(): bool { + + return $this->is_configured() && $this->is_valid() && $this->is_currency_matched(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/CurlCompatibility.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/CurlCompatibility.php new file mode 100644 index 0000000..8c7c347 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/CurlCompatibility.php @@ -0,0 +1,59 @@ +is_curl_loaded() ? $this : null; + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + public function hooks() { + + // Warn the user about the fact that cURL is not loaded. + add_action( 'admin_notices', [ $this, 'display_curl_missing_notice' ] ); + } + + /** + * Check if cURL is loaded. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_curl_loaded(): bool { + + return extension_loaded( 'curl' ); + } + + /** + * Display wp-admin notification saying user to enable cURL extension for the Square payments. + * + * @since 1.9.5 + */ + public function display_curl_missing_notice() { + + echo '

              '; + esc_html_e( 'The WPForms Square payments require cURL to be enabled to work correctly.', 'wpforms-lite' ); + echo '

              '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Fields/Square.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Fields/Square.php new file mode 100644 index 0000000..d35de3f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Fields/Square.php @@ -0,0 +1,575 @@ +name = esc_html__( 'Square', 'wpforms-lite' ); + $this->keywords = esc_html__( 'store, ecommerce, credit card, pay, payment, debit card', 'wpforms-lite' ); + $this->type = 'square'; + $this->icon = 'fa-credit-card'; + $this->order = 92; + $this->group = 'payment'; + + $this->hooks(); + } + + /** + * Field specific hooks. + * + * @since 1.14.0 + * + * @return void + */ + private function hooks() { + + add_filter( 'wpforms_field_properties_square', [ $this, 'field_properties' ], 5, 3 ); + add_filter( 'wpforms_field_new_required', [ $this, 'default_required' ], 10, 2 ); + add_filter( 'wpforms_builder_field_button_attributes', [ $this, 'field_button_atts' ], 10, 3 ); + add_filter( 'wpforms_field_new_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + add_filter( + 'wpforms_field_preview_display_duplicate_button', + [ $this, 'field_display_duplicate_button' ], + 10, + 2 + ); + add_filter( + 'wpforms_pro_fields_entry_preview_is_field_support_preview_square_field', + [ $this, 'entry_preview_availability' ], + 10, + 4 + ); + add_filter( 'wpforms_field_display_sublabel_skip_for', [ $this, 'skip_sublabel_for_attribute' ], 10, 3 ); + } + + /** + * Define additional field properties. + * + * @since 1.9.5 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, array $field, array $form_data ): array { + + $properties = (array) $properties; + + unset( $properties['label']['attr']['for'] ); + + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + $props = [ + 'inputs' => [ + 'number' => [ + 'attr' => [ + 'name' => '', + 'value' => '', + ], + 'block' => [ + 'wpforms-field-square-number', + ], + 'class' => [ + 'wpforms-field-square-cardnumber', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Card', 'wpforms-lite' ), + 'position' => 'after', + ], + ], + 'name' => [ + 'attr' => [ + 'name' => "wpforms[fields][{$field_id}][cardname]", + 'placeholder' => ! empty( $field['cardname_placeholder'] ) ? $field['cardname_placeholder'] : '', + ], + 'block' => [ + 'wpforms-field-square-name', + ], + 'class' => [ + 'wpforms-field-square-cardname', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}-cardname", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Name on Card', 'wpforms-lite' ), + 'position' => 'after', + ], + ], + ], + ]; + + $properties = array_merge_recursive( $properties, $props ); + + // If this field is required, we need to make some adjustments. + if ( ! empty( $field['required'] ) ) { + + // Add required class if needed (for multipage validation). + $properties['inputs']['number']['class'][] = 'wpforms-field-required'; + $properties['inputs']['name']['class'][] = 'wpforms-field-required'; + } + + return $properties; + } + + /** + * Default to the required. + * + * @since 1.9.5 + * + * @param bool $required Required status, true is required. + * @param array $field Field settings. + * + * @return bool + */ + public function default_required( $required, array $field ): bool { + + return $this->type === $field['type'] ? true : (bool) $required; + } + + /** + * Define additional "Add Field" button attributes. + * + * @since 1.9.5 + * + * @param array $atts Add Field button attributes. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_button_atts( $atts, array $field, array $form_data ): array { + + $atts = (array) $atts; + + if ( $field['type'] !== $this->type ) { + return $atts; + } + + if ( Helpers::has_square_field( $form_data ) ) { + $atts['atts']['disabled'] = 'true'; + $atts['class'][] = 'wpforms-add-fields-button-disabled'; + + return $atts; + } + + if ( ! Connection::get() ) { + $atts['class'][] = 'warning-modal'; + $atts['class'][] = 'square-connection-required'; + } + + return $atts; + } + + /** + * Disallow field preview "Duplicate" button. + * + * @since 1.9.5 + * + * @param bool $display Display switch. + * @param array $field Field settings. + * + * @return bool + */ + public function field_display_duplicate_button( $display, array $field ): bool { + + return $field['type'] === $this->type ? false : (bool) $display; + } + + /** + * The field value availability for the Entry Preview field. + * + * @since 1.9.5 + * + * @param bool $is_supported The field availability. + * @param string|array $value The submitted Credit Card detail. + * @param array $field Field data. + * @param array $form_data Form data. + * + * @return bool + * @noinspection PhpUnusedParameterInspection + */ + public function entry_preview_availability( $is_supported, $value, array $field, array $form_data ): bool { + + return ! empty( $value ); + } + + /** + * Disallow dynamic population. + * + * @since 1.9.5 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_dynamic_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Disallow fallback population. + * + * @since 1.9.5 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_fallback_population_allowed( $properties, $field ): bool { + + return false; + } + + /** + * Field options panel inside the builder. + * + * @since 1.9.5 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + /* + * Basic field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'basic-options', $field, $args ); + + /* + * Advanced field options. + */ + + // Options open markup. + $args = [ + 'markup' => 'open', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + + // Size. + $this->field_option( 'size', $field ); + + // Card Name. + $cardname_placeholder = ! empty( $field['cardname_placeholder'] ) ? esc_attr( $field['cardname_placeholder'] ) : ''; + $cardname_field = sprintf( '
              ', absint( $field['id'] ), esc_html( $cardname_placeholder ) ); + + printf( + '
              ', + absint( $field['id'] ) + ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'cardname_placeholder', + 'value' => esc_html__( 'Name on Card Placeholder Text', 'wpforms-lite' ), + ] + ); + echo $cardname_field; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo '
              '; + + // Custom CSS classes. + $this->field_option( 'css', $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Hide sublabels. + $this->field_option( 'sublabel_hide', $field ); + + // Options close markup. + $args = [ + 'markup' => 'close', + ]; + + $this->field_option( 'advanced-options', $field, $args ); + } + + /** + * Field preview inside the builder. + * + * @since 1.9.5 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + // Placeholder. + $this->field_preview_placeholder( $field ); + + // Description. + $this->field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.9.5 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + * + * @noinspection HtmlUnknownAttribute + */ + public function field_display( $field, $deprecated, $form_data ) { + + if ( wpforms_is_editor_page() ) { + $this->field_preview_placeholder( $field ); + + return; + } + + // Define data. + $number = ! empty( $field['properties']['inputs']['number'] ) ? $field['properties']['inputs']['number'] : []; + $name = ! empty( $field['properties']['inputs']['name'] ) ? $field['properties']['inputs']['name'] : []; + + // Display warning for non SSL pages. + if ( ! is_ssl() ) { + echo '
              '; + esc_html_e( 'This page is insecure. Credit Card field should be used for testing purposes only.', 'wpforms-lite' ); + echo '
              '; + } + + $connection = Connection::get(); + + if ( ! $connection ) { + echo '
              '; + esc_html_e( 'Credit Card field is disabled, Square account connection is missing.', 'wpforms-lite' ); + echo '
              '; + + return; + } + + if ( ! $connection->is_usable() ) { + echo '
              '; + esc_html_e( 'Credit Card field is disabled, Square account connection is invalid. Please, contact to the site administrator.', 'wpforms-lite' ); + echo '
              '; + + return; + } + + if ( ! Helpers::is_payments_enabled( $form_data ) ) { + echo '
              '; + esc_html_e( 'Credit Card field is disabled, Square payments are not enabled in the form settings.', 'wpforms-lite' ); + echo '
              '; + + return; + } + + if ( $connection->is_expired() && wpforms_current_user_can() ) { + echo '
              '; + esc_html_e( 'Heads up! Square account connection is expired. Tokens must be refreshed.', 'wpforms-lite' ); + echo '
              '; + } + + // Row wrapper. + echo '
              '; + echo '
              '; + $this->field_display_sublabel( 'number', 'before', $field ); + printf( + '
              ', + wpforms_html_attributes( $number['id'], $number['class'], $number['data'], $number['attr'] ), + esc_attr( $number['required'] ) + ); + + // Hidden input is needed for validation on the frontend and as a substitute in Block Editor previews. + printf( + '', + (int) $form_data['id'], + wpforms_is_editor_page() ? '' : 'style="display: none;" disabled' + ); + $this->field_display_sublabel( 'number', 'after', $field ); + $this->field_display_error( 'number', $field ); + echo '
              '; + echo '
              '; + + // Row wrapper. + echo '
              '; + + // Name. + echo '
              '; + $this->field_display_sublabel( 'name', 'before', $field ); + printf( + '', + wpforms_html_attributes( $name['id'], $name['class'], $name['data'], $name['attr'] ), + esc_attr( $name['required'] ) + ); + $this->field_display_sublabel( 'name', 'after', $field ); + $this->field_display_error( 'name', $field ); + echo '
              '; + echo '
              '; + } + + /** + * Currently validation happens on the front end. We do not do + * generic server-side validation because we do not allow the card + * details to POST to the server. + * + * @since 1.9.5 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value. + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ) {} + + /** + * Format field. + * + * @since 1.9.5 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ) { + + // Define data. + $field_name = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + $card_name = ! empty( $field_submit['cardname'] ) ? $field_submit['cardname'] : ''; + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $field_name ), + 'cardname' => sanitize_text_field( $card_name ), + 'value' => '', + 'id' => absint( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * Card field placeholder. + * + * @since 1.9.5 + * + * @param array $field Current field specific data. + */ + private function field_preview_placeholder( array $field ) { + + // Define data. + $name_placeholder = ! empty( $field['cardname_placeholder'] ) ? esc_attr( $field['cardname_placeholder'] ) : ''; + $size = ! empty( $field['size'] ) ? sprintf( 'wpforms-field-%s', sanitize_html_class( $field['size'] ) ) : ''; + $hide_sub_label = ! empty( $field['sublabel_hide'] ); + ?> +
              + +
              +
              +
              +
              +
              + + + + + + + + +
              + +
              +
              + + +
              +
              + +
              +
              + +
              +
              + + +
              +
              +
              + + type ) { + return $skip; + } + + if ( in_array( $key, [ 'name', 'number' ], true ) ) { + return true; + } + + return $skip; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Frontend.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Frontend.php new file mode 100644 index 0000000..49007b1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Frontend.php @@ -0,0 +1,177 @@ +hooks(); + + return $this; + } + + /** + * Frontend hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'wpforms_frontend_container_class', [ $this, 'form_container_class' ], 10, 2 ); + add_action( 'wpforms_wp_footer', [ $this, 'enqueues' ] ); + } + + /** + * Add class to form container if Square is enabled. + * + * @since 1.9.5 + * + * @param array $classes Array of form classes. + * @param array $form_data Form data of current form. + * + * @return array + */ + public function form_container_class( $classes, array $form_data ): array { + + $classes = (array) $classes; + + if ( ! Connection::get() ) { + return $classes; + } + + if ( ! Helpers::has_square_field( $form_data ) || ! Helpers::is_payments_enabled( $form_data ) ) { + return $classes; + } + + if ( Helpers::is_square_recurring_enabled( $form_data ) ) { + $classes[] = 'wpforms-square-is-recurring'; + } + + $classes[] = 'wpforms-square'; + + return $classes; + } + + /** + * Enqueue assets in the frontend if Square is in use on the page. + * + * @since 1.9.5 + * + * @param array $forms Form data of forms on current page. + */ + public function enqueues( $forms ) { + + $connection = Connection::get(); + + if ( ! $connection || ! $connection->is_usable() ) { + return; + } + + $forms = (array) $forms; + + if ( ! Helpers::has_square_field( $forms, true ) ) { + return; + } + + if ( ! Helpers::has_square_enabled( $forms ) ) { + return; + } + + $min = wpforms_get_min_suffix(); + + // Include styles if the "Include Form Styling > No Styles" is not set. + if ( wpforms_setting( 'disable-css', '1' ) !== '3' ) { + wp_enqueue_style( + 'wpforms-square', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square{$min}.css", + [], + WPFORMS_VERSION + ); + } + + // phpcs:disable WordPress.WP.EnqueuedResourceParameters.MissingVersion + wp_enqueue_script( + 'square-web-payments-sdk', + Helpers::is_sandbox_mode() ? 'https://sandbox.web.squarecdn.com/v1/square.js' : 'https://web.squarecdn.com/v1/square.js', + [], + null, + true + ); + // phpcs:enable WordPress.WP.EnqueuedResourceParameters.MissingVersion + + wp_enqueue_script( + 'wpforms-square', + WPFORMS_PLUGIN_URL . "assets/js/integrations/square/wpforms-square{$min}.js", + [ 'jquery', 'square-web-payments-sdk' ], + WPFORMS_VERSION, + true + ); + + /** + * This filter allows to set a card configuration and styles. + * + * @since 1.9.5 + * + * @link https://developer.squareup.com/reference/sdks/web/payments/card-payments#Card.configure.options + * + * @param array $card_config Configuration and style options. + * @param array $forms Form data of forms on current page. + */ + $card_config = (array) apply_filters( 'wpforms_square_frontend_enqueues_card_config', [], $forms ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + wp_localize_script( + 'wpforms-square', + 'wpforms_square', + [ + 'client_id' => $connection->get_client_id(), + 'location_id' => Helpers::get_location_id(), + 'card_config' => $card_config, + 'billing_details' => $this->get_mapped_contact_fields( $forms ), + 'i18n' => [ + 'missing_sdk_script' => esc_html__( 'Square.js failed to load properly.', 'wpforms-lite' ), + 'general_error' => esc_html__( 'An unexpected Square SDK error has occurred.', 'wpforms-lite' ), + 'missing_creds' => esc_html__( 'Client ID and/or Location ID is incorrect.', 'wpforms-lite' ), + 'card_init_error' => esc_html__( 'Initializing Card failed.', 'wpforms-lite' ), + 'token_process_fail' => esc_html__( 'Tokenization of the payment card failed.', 'wpforms-lite' ), + 'token_status_error' => esc_html__( 'Tokenization failed with status:', 'wpforms-lite' ), + 'buyer_verify_error' => esc_html__( 'The verification was not successful. An issue occurred while verifying the buyer.', 'wpforms-lite' ), + 'empty_details' => esc_html__( 'Please fill out payment details to continue.', 'wpforms-lite' ), + ], + ] + ); + } + + /** + * Map provided billing details with forms on the page. + * + * @since 1.9.5 + * + * @param array $forms Form data of forms on current page. + * + * @return array + */ + public function get_mapped_contact_fields( array $forms ): array { + + return array_map( + function ( $form_data ) { + return [ + 'buyer_email' => $form_data['payments']['square']['buyer_email'] ?? '', + 'billing_address' => $form_data['payments']['square']['billing_address'] ?? '', + 'billing_name' => $form_data['payments']['square']['billing_name'] ?? '', + ]; + }, + $forms + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Helpers.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Helpers.php new file mode 100644 index 0000000..eaabd90 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Helpers.php @@ -0,0 +1,558 @@ + Payments settings page URL. + * + * @since 1.9.5 + * + * @return string + */ + public static function get_settings_page_url(): string { + + return add_query_arg( + [ + 'page' => 'wpforms-settings', + 'view' => 'payments', + ], + admin_url( 'admin.php' ) + ); + } + + /** + * The `array_key_first` polyfill. + * + * @since 1.9.5 + * + * @param array $arr Input array. + * + * @return mixed|null + */ + public static function array_key_first( array $arr ) { + + if ( function_exists( 'array_key_first' ) ) { + return array_key_first( $arr ); + } + + foreach ( $arr as $key => $unused ) { + return $key; + } + + return null; + } + + /** + * Determine if webhook ID and secret are set in WPForms settings. + * + * @since 1.9.5 + * + * @return bool + */ + public static function is_webhook_configured(): bool { + + $mode = self::get_mode(); + + return wpforms_setting( 'square-webhooks-id-' . $mode ) && wpforms_setting( 'square-webhooks-secret-' . $mode ); + } + + /** + * Determine if Square is configured and valid. + * + * @since 1.9.5 + * + * @return bool + */ + public static function is_square_configured(): bool { + + $connection = Connection::get(); + + // Check if connection is configured and valid. + return ! ( ! $connection || ! $connection->is_configured() || ! $connection->is_valid() ); + } + + /** + * Get webhook URL for REST API. + * + * @since 1.9.5 + * + * @return string + */ + public static function get_webhook_url_for_rest(): string { + + $path = implode( + '/', + [ + self::get_webhook_endpoint_data()['namespace'], + self::get_webhook_endpoint_data()['route'], + ] + ); + + return rest_url( $path ); + } + + /** + * Reset Square webhooks settings. + * + * @since 1.9.5 + * + * @param bool $reset_enable Optional. Whether to reset the webhook enabled status. Default is false. + * + * @return bool + */ + public static function reset_webhook_configuration( bool $reset_enable = false ): bool { + + $settings = (array) get_option( 'wpforms_settings', [] ); + + $mode = self::get_mode(); + + if ( $reset_enable ) { + $settings['square-webhooks-enabled'] = false; // Switch off webhooks. + } + + $settings[ 'square-webhooks-id-' . $mode ] = ''; + $settings[ 'square-webhooks-secret-' . $mode ] = ''; + + return update_option( 'wpforms_settings', $settings ); + } + + /** + * Determine the billing cadences of a Subscription. + * + * @since 1.9.5 + * + * @return array + */ + public static function get_subscription_cadences(): array { + + /** + * Filter the available billing cadences of a Subscription. + * + * @since 1.9.5 + * + * @param array $cadences Subscription billing cadences. + */ + return (array) apply_filters( + 'wpforms_integrations_square_helpers_get_subscription_cadences', + [ + 'daily' => [ + 'slug' => 'daily', + 'name' => esc_html__( 'Daily', 'wpforms-lite' ), + 'value' => SubscriptionCadence::DAILY, + ], + 'weekly' => [ + 'slug' => 'weekly', + 'name' => esc_html__( 'Weekly', 'wpforms-lite' ), + 'value' => SubscriptionCadence::WEEKLY, + ], + 'monthly' => [ + 'slug' => 'monthly', + 'name' => esc_html__( 'Monthly', 'wpforms-lite' ), + 'value' => SubscriptionCadence::MONTHLY, + ], + 'quarterly' => [ + 'slug' => 'quarterly', + 'name' => esc_html__( 'Quarterly', 'wpforms-lite' ), + 'value' => SubscriptionCadence::QUARTERLY, + ], + 'semiyearly' => [ + 'slug' => 'semiyearly', + 'name' => esc_html__( 'Semi-Yearly', 'wpforms-lite' ), + 'value' => SubscriptionCadence::EVERY_SIX_MONTHS, + ], + 'yearly' => [ + 'slug' => 'yearly', + 'name' => esc_html__( 'Yearly', 'wpforms-lite' ), + 'value' => SubscriptionCadence::ANNUAL, + ], + ] + ); + } + + /** + * Return a formatted amount required by Square API. + * + * @since 1.9.5 + * + * @param string $amount Price amount. + * + * @return float|int + */ + public static function format_amount( string $amount ) { + + return wpforms_sanitize_amount( $amount ) * wpforms_get_currency_multiplier(); + } + + /** + * Get Square webhook endpoint data. + * + * @since 1.9.5 + * + * @return array + */ + public static function get_webhook_endpoint_data(): array { + + return [ + 'namespace' => 'wpforms', + 'route' => 'square/webhooks', + 'fallback' => 'wpforms_square_webhooks', + ]; + } + + /** + * Get Square webhook endpoint URL. + * + * If the constant WPFORMS_SQUARE_WHURL is defined, it will be used as the webhook URL. + * + * @since 1.9.5 + * + * @return string + */ + public static function get_webhook_url(): string { + + if ( defined( 'WPFORMS_SQUARE_WHURL' ) ) { + return WPFORMS_SQUARE_WHURL; + } + + if ( self::is_rest_api_set() ) { + return self::get_webhook_url_for_rest(); + } + + return self::get_webhook_url_for_curl(); + } + + /** + * Determine if the REST API is set in WPForms settings. + * + * @since 1.9.5 + * + * @return bool + */ + public static function is_rest_api_set(): bool { + + return wpforms_setting( 'square-webhooks-communication', 'rest' ) === 'rest'; + } + + /** + * Get webhook URL for cURL fallback. + * + * @since 1.9.5 + * + * @return string + */ + public static function get_webhook_url_for_curl(): string { + + return add_query_arg( self::get_webhook_endpoint_data()['fallback'], '1', site_url() ); + } + + /** + * Determine if webhooks are enabled in WPForms settings. + * + * @since 1.9.5 + * + * @return bool + */ + public static function is_webhook_enabled(): bool { + + return wpforms_setting( 'square-webhooks-enabled' ); + } + + /** + * Determine whether the application fee is supported. + * + * @since 1.9.5 + * + * @param string $currency Currency. + * + * @return bool + */ + public static function is_application_fee_supported( string $currency = '' ): bool { + + $currency = ! $currency ? wpforms_get_currency() : $currency; + + return strtoupper( $currency ) === 'USD'; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/BlockEditor.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/BlockEditor.php new file mode 100644 index 0000000..fb674d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/BlockEditor.php @@ -0,0 +1,137 @@ +enqueue_css(); + } + + /** + * Enqueue css. + * + * @since 1.9.5 + */ + private function enqueue_css() { + // Do not include styles if the "Include Form Styling > No Styles" is set. + if ( wpforms_setting( 'disable-css', '1' ) === '3' ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-square', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_style( + self::HANDLE, + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square-card-placeholder{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Set editor style for block type editor. + * + * @since 1.9.5 + * + * @param array $args Array of arguments for registering a block type. + * @param string $block_type Block type name including namespace. + * + * @return array + */ + public function block_editor_assets( $args, string $block_type ): array { + + $args = (array) $args; + + if ( $block_type !== 'wpforms/form-selector' || ! is_admin() ) { + return $args; + } + + // Do not include styles if the "Include Form Styling > No Styles" is set. + if ( wpforms_setting( 'disable-css', '1' ) === '3' ) { + return $args; + } + + $min = wpforms_get_min_suffix(); + + wp_register_style( + self::HANDLE, + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square-card-placeholder{$min}.css", + [ $args['editor_style'] ], + WPFORMS_VERSION + ); + + $args['editor_style'] = self::HANDLE; + + return $args; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Divi.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Divi.php new file mode 100644 index 0000000..0218ccd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Divi.php @@ -0,0 +1,113 @@ +is_editor_page() ) { + add_action( 'wp_enqueue_scripts', [ $this, 'editor_styles' ], 12 ); + } + } + + /** + * Determine whether editor page is loaded. + * + * @since 1.9.5 + * + * @return bool + */ + public function is_editor_page(): bool { + + return wpforms_is_divi_editor(); + } + + /** + * Load editor styles. + * + * @since 1.9.5 + */ + public function editor_styles() { + + // Do not include styles if the "Include Form Styling > No Styles" is set. + if ( wpforms_setting( 'disable-css', '1' ) === '3' ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-square-divi-integration-card-placeholder', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/divi/wpforms-square-card-placeholder{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Load frontend styles. + * + * @since 1.9.5 + */ + public function frontend_styles() { + + if ( ! $this->is_divi_plugin_loaded() ) { + return; + } + + // Do not include styles if the "Include Form Styling > No Styles" is set. + if ( wpforms_setting( 'disable-css', '1' ) === '3' ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-square-divi-integration-frontend', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/divi/wpforms-square{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Determine whether the Divi Builder plugin is loaded. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_divi_plugin_loaded(): bool { + + if ( ! is_singular() ) { + return false; + } + + return function_exists( 'et_is_builder_plugin_active' ) && et_is_builder_plugin_active(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Elementor.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Elementor.php new file mode 100644 index 0000000..2168c44 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/Elementor.php @@ -0,0 +1,78 @@ +preview ) || + ! ElementorPlugin::instance()->preview->is_preview_mode() + ) { + return; + } + + // Do not include styles if the "Include Form Styling > No Styles" is set. + if ( wpforms_setting( 'disable-css', '1' ) === '3' ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-square-elementor-integration-card-placeholder', + WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square-card-placeholder{$min}.css", + [], + WPFORMS_VERSION + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/IntegrationInterface.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/IntegrationInterface.php new file mode 100644 index 0000000..1b20ae0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Integrations/IntegrationInterface.php @@ -0,0 +1,36 @@ +load_integration( $class_name ); + } + } + + /** + * Load an integration. + * + * @since 1.9.5 + * + * @param string $class_name Class name to register. + */ + private function load_integration( string $class_name ) { + + if ( isset( $this->integrations[ $class_name ] ) ) { + return; + } + + $full_class_name = 'WPForms\Integrations\Square\Integrations\\' . sanitize_text_field( $class_name ); + + $integration = class_exists( $full_class_name ) ? new $full_class_name() : null; + + if ( $integration === null || ! $integration->allow_load() ) { + return; + } + + $integration->hooks(); + + $this->integrations[ $class_name ] = $integration; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Process.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Process.php new file mode 100644 index 0000000..8a7a127 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Process.php @@ -0,0 +1,1313 @@ +hooks(); + + return $this; + } + + /** + * Hooks. + * + * @since 1.9.5 + */ + protected function hooks() { + + add_action( 'wpforms_process', [ $this, 'process_entry' ], 10, 3 ); + add_action( 'wpforms_process_entry_saved', [ $this, 'update_entry_meta' ], 10, 4 ); + add_filter( 'wpforms_forms_submission_prepare_payment_data', [ $this, 'prepare_payment_data' ], 10, 3 ); + add_filter( 'wpforms_forms_submission_prepare_payment_meta', [ $this, 'prepare_payment_meta' ], 10, 3 ); + add_action( 'wpforms_process_payment_saved', [ $this, 'process_payment_saved' ], 10, 3 ); + } + + /** + * Check if a payment exists with an entry, if so validate and process. + * + * @since 1.9.5 + * + * @param array $fields Final/sanitized submitted fields data. + * @param array $entry Copy of original $_POST. + * @param array $form_data Form data and settings. + */ + public function process_entry( $fields, array $entry, array $form_data ) { + + $fields = (array) $fields; + + // Check if payment method exists and is enabled. + if ( ! Helpers::is_payments_enabled( $form_data ) ) { + return; + } + + $this->fields = $fields; + $this->entry = $entry; + $this->form_data = $form_data; + $this->form_id = isset( $form_data['id'] ) ? (int) $form_data['id'] : 0; + $this->settings = $form_data['payments']['square']; + $this->cc_field = $this->get_credit_card_field(); + $this->currency = $this->get_currency(); + $this->amount = $this->get_amount(); + $this->connection = Connection::get(); + + // Before proceeding, check if any basic errors were detected. + if ( ! $this->is_form_processed() ) { + $this->display_errors(); + + return; + } + + // Set an API instance. + $this->api = new Api( $this->connection ); + + // Set tokens provided by Web Payments SDK. + $this->api->set_payment_tokens( $entry ); + + // Proceed to executing the purchase. + $this->process_payment(); + + // Update the card field value to contain basic details. + $this->update_credit_card_field_value(); + } + + /** + * Bypass captcha if payment has been processed. + * + * @since 1.9.5 + * @deprecated 1.9.6 + * + * @param bool $bypass_captcha Whether to bypass captcha. + * + * @return bool + */ + public function bypass_captcha( $bypass_captcha ): bool { + + _deprecated_function( __METHOD__, '1.9.6 of the WPForms plugin' ); + + if ( (bool) $bypass_captcha ) { + return true; + } + + return $this->is_payment_processed; + } + + /** + * Check if form has errors before payment processing. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_form_processed(): bool { + + // Bail in case there are form processing errors. + if ( ! empty( wpforms()->obj( 'process' )->errors[ $this->form_id ] ) ) { + return false; + } + + if ( ! $this->is_card_field_visibility_ok() ) { + return false; + } + + return $this->is_form_ok(); + } + + /** + * Check form settings, fields, etc. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_form_ok(): bool { + + // Check for Square connection. + if ( ! $this->is_connection_ok() ) { + $error_title = esc_html__( 'Square payment stopped, account connection is missing.', 'wpforms-lite' ); + $this->errors[] = $error_title; + + $this->log_errors( $error_title ); + + return false; + } + + // Check total charge amount. + // Square has different minimum amount limits by country. + if ( ! $this->is_amount_ok() ) { + $error_title = esc_html__( 'Square payment stopped, amount is smaller than the allowed minimum amount for a payment.', 'wpforms-lite' ); + $this->errors[] = $error_title; + + $this->log_errors( + $error_title, + [ + 'amount' => $this->amount, + 'currency' => $this->currency, + ] + ); + + return false; + } + + // Check that, despite how the form is configured, the form and + // entry actually contain payment fields, otherwise no need to proceed. + if ( empty( $this->cc_field ) || ! wpforms_has_payment( 'form', $this->fields ) ) { + $error_title = esc_html__( 'Square payment stopped, missing payment fields.', 'wpforms-lite' ); + $this->errors[] = $error_title; + + $this->log_errors( $error_title ); + + return false; + } + + return true; + } + + /** + * Check if the Square credit card field in the form is visible (not hidden by conditional logic). + * + * @since 1.9.5 + * + * @return bool + */ + private function is_card_field_visibility_ok(): bool { + + // If the form doesn't contain the credit card field. + if ( empty( $this->cc_field ) ) { + return false; + } + + // If the form contains no fields with conditional logic, the credit card field is visible by default. + if ( empty( $this->form_data['conditional_fields'] ) ) { + return true; + } + + // If the credit card field is NOT in array of conditional fields, it's visible. + if ( ! in_array( $this->cc_field['id'], $this->form_data['conditional_fields'], true ) ) { + return true; + } + + // If the credit card field IS in array of conditional fields and marked as visible, it's visible. + if ( ! empty( $this->cc_field['visible'] ) ) { + return true; + } + + return false; + } + + /** + * Check if connection exists, configured and valid. + * + * @since 1.9.5 + * + * @return bool + */ + private function is_connection_ok(): bool { + + return $this->connection !== null && $this->connection->is_usable(); + } + + /** + * Check if an amount is greater than the minimum amount. + * + * @since 1.9.5 + * + * @link https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts#monetary-amount-limits + * + * @return bool + */ + private function is_amount_ok(): bool { + + $amount = Helpers::format_amount( $this->amount ); + + if ( $amount < 1 && in_array( $this->currency, [ 'USD', 'CAD' ], true ) ) { + return false; + } + + if ( $amount < 100 && in_array( $this->currency, [ 'EUR', 'GBP', 'AUD', 'JPY' ], true ) ) { + return false; + } + + return true; + } + + /** + * Process a payment. + * + * @since 1.9.5 + */ + private function process_payment() { + + if ( ! empty( $this->settings['enable_recurring'] ) ) { + + $this->process_payment_subscription(); + + return; + } + + $this->process_payment_single(); + } + + /** + * Process a single payment. + * + * @since 1.9.5 + */ + protected function process_payment_single() { + + $args = $this->get_payment_args_single(); + + $this->api->process_single_transaction( $args ); + + // Set payment processing flag. + $this->is_payment_processed = true; + + $this->process_api_errors( 'single' ); + } + + /** + * Process a subscription payment. + * + * @since 1.9.5 + */ + private function process_payment_subscription() { + + $args = $this->get_payment_args_general(); + + foreach ( $this->settings['recurring'] as $recurring ) { + + if ( ! $this->is_subscription_plan_valid( $recurring ) ) { + continue; + } + + // Put subscription arguments into its own key. + $args['subscription'] = $this->get_payment_args_subscription( $recurring ); + $this->subscription_settings = $args['subscription']; + + $this->api->process_subscription_transaction( $args ); + + // Set payment processing flag. + $this->is_payment_processed = true; + + $this->process_api_errors( 'subscription' ); + + return; + } + + if ( ! empty( $this->settings['enable_one_time'] ) ) { + $this->process_payment_single(); + + return; + } + + $this->log_errors( + esc_html__( 'Square Subscription payment stopped, validation error.', 'wpforms-lite' ), + $this->fields, + 'conditional_logic' + ); + } + + /** + * Retrieve subscription payment args. + * + * @since 1.9.5 + * + * @param array $plan Plan settings. + * + * @return array + */ + private function get_payment_args_subscription( array $plan ): array { + + $args_sub['customer']['email'] = sanitize_email( $this->fields[ $plan['customer_email'] ]['value'] ); + $args_sub['customer']['first_name'] = sanitize_text_field( $this->fields[ $plan['customer_name'] ]['first'] ); + $args_sub['customer']['last_name'] = sanitize_text_field( $this->fields[ $plan['customer_name'] ]['last'] ); + + // If a Name field has the `Simple` format. + if ( + empty( $args_sub['customer']['first_name'] ) && + empty( $args_sub['customer']['last_name'] ) && + ! empty( $this->fields[ $plan['customer_name'] ]['value'] ) + ) { + $args_sub['customer']['last_name'] = sanitize_text_field( $this->fields[ $plan['customer_name'] ]['value'] ); + } + + // Customer address. + if ( isset( $plan['customer_address'] ) && $plan['customer_address'] !== '' && wpforms()->is_pro() ) { + $args_sub['customer']['address'] = $this->fields[ $plan['customer_address'] ]; + } + + $cadences_list = Helpers::get_subscription_cadences(); + $phase_cadence = $cadences_list[ $plan['phase_cadence'] ] ?? $cadences_list['yearly']; + + // Subscription cadence. + $args_sub['phase_cadence'] = $phase_cadence; + + $plan_name = $this->get_form_name(); + $plan_name .= empty( $plan['name'] ) ? '' : ': ' . $plan['name']; + + $args_sub['plan_name'] = sprintf( '%s (%s)', $plan_name, $phase_cadence['name'] ); + $args_sub['plan_variation_name'] = sprintf( '%s (%s %s %s)', $plan['name'], $this->amount, $this->currency, $phase_cadence['name'] ); + + // Card holder. + $args_sub['card_name'] = empty( $this->fields[ $this->cc_field['id'] ]['cardname'] ) ? '' : sanitize_text_field( $this->fields[ $this->cc_field['id'] ]['cardname'] ); + + /** + * Filter subscription payment arguments. + * + * @since 1.9.5 + * + * @param array $args The subscription payment arguments. + * @param Process $process The Process instance. + */ + return (array) apply_filters( 'wpforms_integrations_square_process_get_payment_args_subscription', $args_sub, $this ); + } + + /** + * Validate plan before process. + * + * @since 1.9.5 + * + * @param array $plan Plan settings. + * + * @return bool + */ + protected function is_subscription_plan_valid( array $plan ): bool { + + return ! empty( $plan['customer_email'] ) && $this->is_recurring_settings_ok( $plan ); + } + + /** + * Check if recurring settings is configured correctly. + * + * @since 1.9.5 + * + * @param array $settings Settings data. + * + * @return bool + */ + protected function is_recurring_settings_ok( array $settings ): bool { + + $error = ''; + + // Check subscription settings are provided. + if ( empty( $settings['phase_cadence'] ) || empty( $settings['customer_email'] ) || empty( $settings['customer_name'] ) ) { + $error = esc_html__( 'Square subscription payment stopped, missing form settings.', 'wpforms-lite' ); + } + + // Check for required customer email. + if ( ! $error && empty( $this->fields[ $settings['customer_email'] ]['value'] ) ) { + $error = esc_html__( 'Square subscription payment stopped, customer email not found.', 'wpforms-lite' ); + } + + // Check for required customer name. + if ( ! $error && empty( $this->fields[ $settings['customer_name'] ]['value'] ) ) { + $error = esc_html__( 'Square subscription payment stopped, customer name not found.', 'wpforms-lite' ); + } + + // Before proceeding, check if any basic errors were detected. + if ( $error ) { + $this->log_errors( $error, $settings ); + + return false; + } + + return true; + } + + /** + * Retrieve single payment args. + * + * @since 1.9.5 + * + * @return array + */ + private function get_payment_args_single(): array { + + $args = $this->get_payment_args_general(); + $customer_name = $this->get_customer_name(); + $customer_email = $this->get_customer_email(); + + // Billing Name. + if ( isset( $customer_name['first_name'] ) ) { + $args['billing']['first_name'] = sanitize_text_field( $customer_name['first_name'] ); + } + + if ( isset( $customer_name['last_name'] ) ) { + $args['billing']['last_name'] = sanitize_text_field( $customer_name['last_name'] ); + } + + // Billing Address. + if ( ! empty( $this->fields[ $this->settings['billing_address'] ] ) ) { + $args['billing']['address'] = $this->fields[ $this->settings['billing_address'] ]; + } + + // Buyer Email. + if ( ! empty( $customer_email ) ) { + $args['buyer_email'] = sanitize_email( $customer_email ); + } + + // Payment description. + $description = empty( $this->settings['payment_description'] ) ? $this->get_form_name() : html_entity_decode( $this->settings['payment_description'], ENT_COMPAT, 'UTF-8' ); + + // The maximum length for the Square notes field is 500 characters. + $args['note'] = wp_html_excerpt( Square::APP_NAME . ': ' . $description, 500 ); + + // Order items. + $args['order_items'] = $this->get_order_items(); + + /** + * Filter single payment arguments. + * + * @param array $args The single payment arguments. + * @param Process $process The Process instance. + * + *@since 1.9.5 + */ + return (array) apply_filters( 'wpforms_square_process_get_payment_args_single', $args, $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Retrieve arguments for any type of payment. + * + * @since 1.9.5 + * + * @return array + */ + private function get_payment_args_general(): array { + /** + * Filter arguments for any type of payment. + * + * @since 1.9.5 + * + * @param array $args The general payment arguments. + * @param Process $process The Process instance. + */ + return (array) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_square_process_get_payment_args_general', + [ + 'amount' => Helpers::format_amount( $this->amount ), + 'currency' => $this->currency, + 'location_id' => Helpers::get_location_id(), + ], + $this + ); + } + + /** + * Retrieve a payment currency. + * + * @since 1.9.5 + * + * @return string + */ + private function get_currency(): string { + + return strtoupper( wpforms_get_currency() ); + } + + /** + * Retrieve a payment amount. + * + * @since 1.9.5 + * + * @return string + */ + private function get_amount(): string { + + $amount = wpforms_get_total_payment( $this->fields ); + + return $amount === false ? wpforms_sanitize_amount( 0 ) : $amount; + } + + /** + * Retrieve order items. + * + * @since 1.9.5 + * + * @return array + */ + private function get_order_items(): array { + + /** + * Filter order items types. + * + * @since 1.9.5 + * + * @param array $types The order items types. + */ + $types = (array) apply_filters( 'wpforms_square_process_get_order_items_types', wpforms_payment_fields() ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + $items = []; + + foreach ( $this->fields as $field_id => $field ) { + + if ( + empty( $field['type'] ) || + ! in_array( $field['type'], $types, true ) + ) { + continue; + } + + // Skip payment field that is not filled in. + if ( + ! isset( $this->entry['fields'][ $field_id ] ) || + wpforms_is_empty_string( $this->entry['fields'][ $field_id ] ) + ) { + continue; + } + + $items[] = $this->prepare_order_line_item( $field ); + } + + return $items; + } + + /** + * Retrieve a Form Name. + * + * @since 1.9.5 + * + * @return string + */ + private function get_form_name(): string { + + if ( ! empty( $this->form_data['settings']['form_title'] ) ) { + return sanitize_text_field( $this->form_data['settings']['form_title'] ); + } + + $fallback = sprintf( /* translators: %d - Form ID. */ + esc_html__( 'Form #%d', 'wpforms-lite' ), + $this->form_id + ); + + $form_obj = wpforms()->obj( 'form' ); + + if ( ! $form_obj ) { + return $fallback; + } + + $form = $form_obj->get( $this->form_id ); + + return $form instanceof WP_Post ? $form->post_title : $fallback; + } + + /** + * Retrieve a Square credit card field. + * + * @since 1.9.5 + * + * @return array + */ + private function get_credit_card_field(): array { + + if ( ! is_array( $this->fields ) ) { + return []; + } + + foreach ( $this->fields as $field ) { + if ( ! empty( $field['type'] ) && $field['type'] === 'square' ) { + return $field; + } + } + + return []; + } + + /** + * Prepare order line item. + * + * @since 1.9.5 + * + * @param array $field Field data. + * + * @return array + */ + private function prepare_order_line_item( array $field ): array { + + $field_id = absint( $field['id'] ); + $quantity = isset( $field['quantity'] ) ? (int) $field['quantity'] : 1; + $name = empty( $field['name'] ) ? sprintf( /* translators: %d - Field ID. */ esc_html__( 'Field #%d', 'wpforms-lite' ), $field_id ) : $field['name']; + $item = [ + 'name' => $name, + 'quantity' => $quantity, + ]; + + if ( empty( $field['value_raw'] ) ) { + $item['amount'] = Helpers::format_amount( $field['amount_raw'] ); + + return $item; + } + + return $this->prepare_order_line_item_variations( $item, $field, $field_id ); + } + + /** + * Prepare order line item variations. + * + * @since 1.9.5 + * + * @param array $item Item data. + * @param array $field Field data. + * @param int $field_id Field ID. + * + * @return array + */ + private function prepare_order_line_item_variations( array $item, array $field, int $field_id ): array { + + $values = explode( ',', $field['value_raw'] ); + + foreach ( $values as $value ) { + + if ( empty( $this->form_data['fields'][ $field_id ]['choices'][ $value ] ) ) { + continue; + } + + $choice = $this->form_data['fields'][ $field_id ]['choices'][ $value ]; + + $item['variations'][] = [ + 'name' => $item['name'], + 'quantity' => $item['quantity'], + 'variation_name' => empty( $choice['label'] ) ? sprintf( /* translators: %d - Choice ID. */ esc_html__( 'Choice %d', 'wpforms-lite' ), absint( $value ) ) : $choice['label'], + 'amount' => Helpers::format_amount( $choice['value'] ), + ]; + } + + return $item; + } + + /** + * Display form errors. + * + * @since 1.9.5 + * + * @param array $errors Errors to display. + */ + private function display_errors( array $errors = [] ) { + + if ( ! $errors ) { + $errors = $this->errors; + } + + if ( ! $errors || ! is_array( $errors ) ) { + return; + } + + // Check if the form contains a required credit card. If it does + // and there was an error, return the error to the user and prevent + // the form from being submitted. This should not occur under normal + // circumstances. + if ( empty( $this->cc_field ) || empty( $this->form_data['fields'][ $this->cc_field['id'] ] ) ) { + return; + } + + if ( ! empty( $this->form_data['fields'][ $this->cc_field['id'] ]['required'] ) ) { + wpforms()->obj( 'process' )->errors[ $this->form_id ]['footer'] = implode( '
              ', $errors ); + } + } + + /** + * Collect errors from API and turn it into form errors. + * + * @since 1.9.5 + * + * @param string $type Payment type (e.g. 'single'). + */ + private function process_api_errors( string $type ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $errors = $this->api->get_errors(); + + if ( empty( $errors ) || ! is_array( $errors ) ) { + return; + } + + $this->display_errors( $errors ); + + if ( $type === 'subscription' ) { + $title = esc_html__( 'Square subscription payment stopped', 'wpforms-lite' ); + } else { + $title = esc_html__( 'Square payment stopped', 'wpforms-lite' ); + } + + $_errors = $this->api->get_response_errors(); + + if ( ! empty( $_errors ) ) { + $this->process_api_errors_codes( $_errors ); + $errors[] = $_errors; + } + + // Log transaction specific errors. + $this->log_errors( $title, $errors ); + } + + /** + * Check specific error codes. + * + * @since 1.9.5 + * + * @param array $errors The last API call errors. + */ + private function process_api_errors_codes( array $errors ) { + + $codes = $this->get_oauth_error_codes(); + + foreach ( $errors as $error ) { + + if ( + empty( $error['code'] ) || + ! in_array( $error['code'], $codes, true ) + ) { + continue; + } + + // If the error indicates that access token is bad, set a connection as invalid. + $this->connection + ->set_status( Connection::STATUS_INVALID ) + ->save(); + } + } + + /** + * Retrieve OAuth-related errors. + * + * @since 1.9.5 + * + * @link https://developer.squareup.com/docs/oauth-api/best-practices#ensure-api-calls-made-with-oauth-tokens-handle-token-based-errors-appropriately + * + * @return array + */ + private function get_oauth_error_codes(): array { + + return [ ErrorCode::ACCESS_TOKEN_EXPIRED, ErrorCode::ACCESS_TOKEN_REVOKED, ErrorCode::UNAUTHORIZED ]; + } + + /** + * Log payment errors. + * + * @since 1.9.5 + * + * @param string $title Error title. + * @param array|string $messages Error messages. + * @param string $level Error level to add to 'payment' error level. + */ + protected function log_errors( string $title, $messages = [], string $level = 'error' ) { + + wpforms_log( + $title, + $messages, + [ + 'type' => [ 'payment', $level ], + 'form_id' => $this->form_id, + ] + ); + } + + /** + * Update the credit card field value to contain basic details. + * + * @since 1.9.5 + */ + private function update_credit_card_field_value() { + + if ( $this->errors || ! $this->api ) { + return; + } + + // Get a card. + $card = $this->get_card(); + + if ( empty( $card ) ) { + return; + } + + $details = [ + 'brand' => $card->getCardBrand(), + 'last4' => $card->getLast4(), + 'holder' => $this->get_card_holder( $card ), + ]; + $details = implode( "\n", array_filter( $details ) ); + + /** + * Filter a credit card field value by card details. + * + * @since 1.9.5 + * + * @param string $details Card details. + * @param Process $process Process object. + */ + $details = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_square_process_update_credit_card_field_value', + $details, + $this + ); + + wpforms()->obj( 'process' )->fields[ $this->cc_field['id'] ]['value'] = $details; + } + + /** + * Get card object. + * + * @since 1.9.5 + * + * @return Card|array + */ + private function get_card() { + + $resource = $this->api->get_response_resource(); + + if ( empty( $resource ) ) { + return []; + } + + $type = Helpers::array_key_first( $resource ); + + return $type === 'subscription' ? $this->api->get_subscription_card( $resource[ $type ] ) : $resource[ $type ]->getCardDetails()->getCard(); + } + + /** + * Update entry details and add meta for a successful payment. + * + * @since 1.9.5 + * + * @param array $fields Final/sanitized submitted field data. + * @param array $entry Copy of original $_POST. + * @param array $form_data Form data and settings. + * @param string $entry_id Entry ID. + */ + public function update_entry_meta( $fields, $entry, $form_data, $entry_id ) { + + if ( empty( $entry_id ) || $this->errors || ! $this->api ) { + return; + } + + $resource = $this->api->get_response_resource(); + + if ( empty( $resource ) ) { + return; + } + + wpforms()->obj( 'entry' )->update( + $entry_id, + [ + 'type' => 'payment', + ], + '', + '', + [ 'cap' => false ] + ); + + /** + * Fire when entry details and add meta was successfully updated. + * + * @since 1.9.5 + * + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + * @param string $entry_id Entry ID. + * @param array $resource Response resource data. + * @param Process $process Process class instance. + */ + do_action( 'wpforms_square_process_update_entry_meta', $fields, $form_data, $entry_id, $resource, $this ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Add details to payment data. + * + * @since 1.9.5 + * + * @param array $payment_data Payment data args. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function prepare_payment_data( $payment_data, array $fields, array $form_data ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $payment_data = (array) $payment_data; + + // If there are errors or API is not initialized, return the original payment data. + if ( $this->errors || ! $this->api ) { + return $payment_data; + } + + $resource = $this->api->get_response_resource(); + + // If the resource is empty, return the original payment meta. + if ( empty( $resource ) ) { + return $payment_data; + } + + $type = Helpers::array_key_first( $resource ); + $payment = $resource[ $type ]; + $is_subscription = $type === 'subscription'; + + $payment_data['status'] = 'processed'; + $payment_data['gateway'] = 'square'; + $payment_data['mode'] = Helpers::is_sandbox_mode() ? 'test' : 'live'; + $payment_data['customer_id'] = sanitize_text_field( $payment->getCustomerId() ); + $payment_data['title'] = $this->get_payment_title( $payment ); + + if ( $is_subscription ) { + $payment_data['subscription_id'] = sanitize_text_field( $payment->getId() ); + $payment_data['subscription_status'] = 'not-synced'; + + return $payment_data; + } + + $payment_data['transaction_id'] = sanitize_text_field( $payment->getId() ); + + return $payment_data; + } + + /** + * Get Payment title. + * + * @since 1.9.5 + * + * @param object $payment Payment object. + * + * @return string Payment title. + */ + private function get_payment_title( $payment ): string { + + // Look for the cardholder name. + $card = $this->get_card(); + $customer_name = $card ? $this->get_card_holder( $card ) : ''; + + if ( $customer_name ) { + return sanitize_text_field( $customer_name ); + } + + $customer_name = $this->get_customer_name(); + + if ( $customer_name ) { + return sanitize_text_field( implode( ' ', array_values( $customer_name ) ) ); + } + + $customer_email = $this->get_customer_email(); + + if ( $customer_email ) { + return sanitize_email( $customer_email ); + } + + return ''; + } + + /** + * Add payment meta for a successful one-time or subscription payment. + * + * @since 1.9.5 + * + * @param array $payment_meta Payment meta. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function prepare_payment_meta( $payment_meta, array $fields, array $form_data ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $payment_meta = (array) $payment_meta; + + // If there are errors or API is not initialized, return the original payment meta. + if ( $this->errors || ! $this->api ) { + return $payment_meta; + } + + $resource = $this->api->get_response_resource(); + + // If the resource is empty, return the original payment meta. + if ( empty( $resource ) ) { + return $payment_meta; + } + + $type = Helpers::array_key_first( $resource ); + $credit_card_details = $this->get_card(); + $is_subscription = $type === 'subscription'; + + if ( $is_subscription ) { + $payment_meta['subscription_period'] = $this->subscription_settings['phase_cadence']['slug']; + } + + $payment_meta['method_type'] = 'card'; + + if ( ! empty( $credit_card_details ) ) { + $payment_meta['credit_card_last4'] = $credit_card_details->getLast4(); + $payment_meta['credit_card_expires'] = $credit_card_details->getExpMonth() . '/' . $credit_card_details->getExpYear(); + $payment_meta['credit_card_method'] = strtolower( $credit_card_details->getCardBrand() ); + $payment_meta['credit_card_name'] = $this->get_card_holder( $credit_card_details ); + } + + // Add a log indicating that the charge was successful. + $payment_meta['log'] = $this->format_payment_log( 'Square payment was created.' ); + + return $payment_meta; + } + + /** + * Add payment info for successful payment. + * + * @since 1.9.5 + * + * @param string $payment_id Payment ID. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + */ + public function process_payment_saved( $payment_id, array $fields, array $form_data ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $payment_id = (string) $payment_id; + + // If there are errors or API is not initialized, return the original payment meta. + if ( $this->errors || ! $this->api ) { + return; + } + + $resource = $this->api->get_response_resource(); + + // If the resource is empty, return the original payment meta. + if ( empty( $resource ) ) { + return; + } + + $type = Helpers::array_key_first( $resource ); + + if ( $type === 'subscription' ) { + + $this->api->update_subscription( + [ + 'id' => $resource[ $type ]->getId(), + 'payment_id' => $payment_id, + ] + ); + + return; + } + + wpforms()->obj( 'payment_meta' )->add_log( + $payment_id, + sprintf( + 'Square payment was processed. (Receipt ID: %s)', + $resource[ $type ]->getReceiptNumber() + ) + ); + } + + /** + * Return payment log value. + * + * @since 1.9.5 + * + * @param string $value Log value. + * + * @return string + */ + private function format_payment_log( string $value ): string { + + return wp_json_encode( + [ + 'value' => sanitize_text_field( $value ), + 'date' => gmdate( 'Y-m-d H:i:s' ), + ] + ); + } + + /** + * Get Customer name. + * + * @since 1.9.5 + * + * @return array + */ + private function get_customer_name(): array { + + $customer_name = []; + + // Billing first name. + if ( ! empty( $this->fields[ $this->settings['billing_name'] ]['first'] ) ) { + $customer_name['first_name'] = $this->fields[ $this->settings['billing_name'] ]['first']; + } + + // Billing last name. + if ( ! empty( $this->fields[ $this->settings['billing_name'] ]['last'] ) ) { + $customer_name['last_name'] = $this->fields[ $this->settings['billing_name'] ]['last']; + } + + // If a Name field has the `Simple` format. + if ( + empty( $customer_name['first_name'] ) && + empty( $customer_name['last_name'] ) && + ! empty( $this->fields[ $this->settings['billing_name'] ]['value'] ) + ) { + $customer_name['first_name'] = $this->fields[ $this->settings['billing_name'] ]['value']; + } + + return $customer_name; + } + + /** + * Get Customer email. + * + * @since 1.9.5 + * + * @return string + */ + private function get_customer_email(): string { + + return ! empty( $this->fields[ $this->settings['buyer_email'] ]['value'] ) ? $this->fields[ $this->settings['buyer_email'] ]['value'] : ''; + } + + /** + * Retrieve a Cardholder Name. + * + * @since 1.9.5 + * + * @param Card $card Card object. + * + * @return string + */ + private function get_card_holder( $card ): string { + + $holder = ''; + + if ( $card instanceof Card ) { + $holder = $card->getCardholderName(); + } + + if ( empty( $holder ) && isset( $this->cc_field['cardname'] ) ) { + $holder = $this->cc_field['cardname']; + } + + return $holder; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Square.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Square.php new file mode 100644 index 0000000..77fb813 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Square.php @@ -0,0 +1,237 @@ +init(); + + // Do not load integration if unsupported version of the Square addon is active. + if ( $addon_compat && ! $addon_compat->is_supported_version() ) { + $addon_compat->hooks(); + + return false; + } + + // Determine whether the cURL extension is enabled. + $curl_compat = ( new CurlCompatibility() )->init(); + + // Do not load integration if curl is not enabled. + if ( $curl_compat ) { + $curl_compat->hooks(); + + return false; + } + + /** + * Whether the integration is allowed to load. + * + * @since 1.9.5 + * + * @param bool $is_allowed Integration loading state. + */ + return (bool) apply_filters( 'wpforms_integrations_square_allow_load', true ); + } + + /** + * Load the integration. + * + * @since 1.9.5 + */ + public function load() { + + $this->load_admin_entries(); + $this->load_settings(); + $this->load_connect(); + $this->load_field(); + $this->load_frontend(); + $this->load_integrations(); + $this->load_payments_actions(); + $this->load_builder(); + $this->load_webhooks(); + $this->load_tasks(); + + // Bail early for paid users with active Square addon. + if ( Helpers::is_pro() ) { + return; + } + + $this->load_builder_settings(); + $this->load_processing(); + } + + /** + * Load admin entries functionality. + * + * @since 1.9.5 + */ + private function load_admin_entries() { + + if ( wpforms_is_admin_page( 'entries' ) ) { + ( new Admin\Entries() )->init(); + } + } + + /** + * Load Square settings. + * + * @since 1.9.5 + */ + private function load_settings() { + + if ( wpforms_is_admin_page( 'settings', 'payments' ) ) { + ( new Admin\Settings() )->init(); + ( new Admin\Notices() )->init(); + } + } + + /** + * Load connect handler. + * + * @since 1.9.5 + */ + private function load_connect() { + + ( new Admin\Connect() )->init(); + } + + /** + * Load Square field. + * + * @since 1.9.5 + */ + private function load_field() { + + // phpcs:disable WordPress.Security.NonceVerification + $is_elementor = + ( ! empty( $_POST['action'] ) && $_POST['action'] === 'elementor_ajax' ) || + ( ! empty( $_GET['action'] ) && $_GET['action'] === 'elementor' ); + // phpcs:enable WordPress.Security.NonceVerification + + if ( $is_elementor || ! is_admin() || wp_doing_ajax() || wpforms_is_admin_page( 'builder' ) ) { + ( new Fields\Square() )->init(); + } + } + + /** + * Load builder functionality. + * + * @since 1.9.5 + */ + private function load_builder() { + + if ( wpforms_is_admin_page( 'builder' ) ) { + ( new Admin\Builder\Enqueues() )->init(); + } + } + + /** + * Load builder settings functionality. + * + * @since 1.9.5 + */ + private function load_builder_settings() { + + if ( wpforms_is_admin_page( 'builder' ) ) { + ( new Admin\Builder\Settings() )->init(); + ( new Admin\Builder\Notifications() )->init(); + } + } + + /** + * Load payments actions. + * + * @since 1.9.5 + */ + private function load_payments_actions() { + + if ( ! Connection::get() ) { + return; + } + + ( new Admin\Payments\SingleActionsHandler() )->init(); + } + + /** + * Load frontend functionality. + * + * @since 1.9.5 + */ + private function load_frontend() { + + if ( ! is_admin() ) { + ( new Frontend() )->init(); + } + } + + /** + * Load payment form processing. + * + * @since 1.9.5 + */ + private function load_processing() { + + if ( ! is_admin() || wpforms_is_frontend_ajax() ) { + ( new Process() )->init(); + } + } + + /** + * Load integrations. + * + * @since 1.9.5 + */ + private function load_integrations() { + + ( new Integrations\Loader() )->init(); + } + + /** + * Load webhooks. + * + * @since 1.9.5 + */ + private function load_webhooks() { + + ( new Api\WebhookRoute() )->init(); + ( new WebhooksHealthCheck() )->init(); + } + + /** + * Load tasks. + * + * @since 1.9.5 + */ + private function load_tasks() { + + if ( ! Connection::get() ) { + return; + } + + ( new Tasks() )->init(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/Tasks.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Tasks.php new file mode 100644 index 0000000..6c0099c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/Tasks.php @@ -0,0 +1,51 @@ +hooks(); + } + + /** + * Frontend hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_filter( 'wpforms_tasks_get_tasks', [ $this, 'register' ] ); + } + + /** + * Add class to registered tasks array. + * + * @since 1.9.5 + * + * @param array $tasks Array of tasks. + * + * @return array + */ + public function register( $tasks ): array { + + $tasks = (array) $tasks; + + $tasks[] = SquareSubscriptionTransactionIDTask::class; + + return $tasks; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Square/WebhooksHealthCheck.php b/wp-content/plugins/wpforms-lite/src/Integrations/Square/WebhooksHealthCheck.php new file mode 100644 index 0000000..f60f6f0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Square/WebhooksHealthCheck.php @@ -0,0 +1,241 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'admin_notices', [ $this, 'admin_notice' ] ); + add_action( self::ACTION, [ $this, 'process_webhooks_status_action' ] ); + add_action( 'action_scheduler/migration_complete', [ $this, 'maybe_schedule_task' ] ); + } + + /** + * Schedule webhook health check. + * + * @since 1.9.5 + */ + public function maybe_schedule_task() { + + /** + * Allow customers to disable a webhook health check task. + * + * @since 1.9.5 + * + * @param bool $cancel True if a task needs to be canceled. + */ + $is_canceled = (bool) apply_filters( 'wpforms_integrations_square_webhooks_health_check_cancel', false ); + + $tasks = wpforms()->obj( 'tasks' ); + + // Bail early in some instances. + if ( + $is_canceled || + $tasks === null || + ! Helpers::is_square_configured() || + $tasks->is_scheduled( self::ACTION ) + ) { + return; + } + + /** + * Filters the webhook health check interval. + * + * @since 1.9.5 + * + * @param int $interval Interval in seconds. + */ + $interval = (int) apply_filters( 'wpforms_integrations_square_webhooks_health_check_interval', HOUR_IN_SECONDS ); + + $tasks->create( self::ACTION ) + ->recurring( time(), $interval ) + ->register(); + } + + /** + * Process webhook status. + * + * @since 1.9.5 + */ + public function process_webhooks_status_action() { + + // Bail out if user unchecked option to enable webhooks. + if ( ! Helpers::is_webhook_enabled() ) { + return; + } + + $last_payment = $this->get_last_square_payment(); + + // Bail out if there is no Square payment, + // and remove options for reason to avoid any edge cases. + if ( ! $last_payment ) { + delete_option( self::ENDPOINT_OPTION ); + + return; + } + + // If a last Square payment has processed status and webhooks are not valid, + // most likely there is an issue with webhooks. + if ( + $last_payment['status'] === 'processed' && + time() > ( strtotime( $last_payment['date_created_gmt'] ) + ( 15 * MINUTE_IN_SECONDS ) ) + ) { + Helpers::reset_webhook_configuration(); + self::save_status( self::ENDPOINT_OPTION, self::STATUS_ERROR ); + + return; + } + + self::save_status( self::ENDPOINT_OPTION, self::STATUS_OK ); + } + + /** + * Determine whether there is Square payment. + * + * @since 1.9.5 + * + * @return array + */ + private function get_last_square_payment(): array { + + $payment = wpforms()->obj( 'payment' )->get_payments( + [ + 'gateway' => 'square', + 'mode' => 'any', + 'number' => 1, + ] + ); + + return ! empty( $payment[0] ) ? $payment[0] : []; + } + + /** + * Display notice about issues with webhooks. + * + * @since 1.9.5 + */ + public function admin_notice() { + + // Bail out if a Square account is not connected. + if ( ! Helpers::is_square_configured() ) { + return; + } + + // Bail out if webhooks are not enabled. + if ( ! Helpers::is_webhook_enabled() ) { + return; + } + + // Bail out if webhooks are configured and active. + if ( Helpers::is_webhook_configured() ) { + return; + } + + // Show notice only in case if ENDPOINT_OPTION has error status. + if ( get_option( self::ENDPOINT_OPTION, self::STATUS_OK ) === self::STATUS_OK ) { + return; + } + + // Bail out if there are no Square payments. + if ( ! $this->get_last_square_payment() ) { + return; + } + + $notice = sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Square webhooks documentation. */ + __( 'Looks like you have a problem with your webhooks configuration. Please check and confirm that you\'ve configured the WPForms webhooks in your Square account. This notice will disappear automatically when a new Square request comes in. See our documentation for more information.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-square-webhooks/', 'Admin', 'Square Webhooks not active' ) ) + ); + + Notice::error( + $notice, + [ + 'dismiss' => true, + 'slug' => self::NOTICE_ID, + ] + ); + } + + /** + * Save webhooks status. + * + * @since 1.9.5 + * + * @param string $option Option name. + * @param string $value Status value. + */ + public static function save_status( string $option, string $value ) { + + if ( ! in_array( $value, [ self::STATUS_OK, self::STATUS_ERROR ], true ) ) { + return; + } + + update_option( $option, $value ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Enqueues.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Enqueues.php new file mode 100644 index 0000000..b137a94 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Enqueues.php @@ -0,0 +1,130 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_filter( 'wpforms_builder_strings', [ $this, 'javascript_strings' ], 10, 2 ); + add_action( 'wpforms_builder_enqueues', [ $this, 'enqueues' ] ); + } + + /** + * Add our localized strings to be available in the form builder. + * + * @since 1.8.2 + * + * @param array $strings Form builder JS strings. + * @param array $form Form data and settings. + * + * @return array + */ + public function javascript_strings( $strings, $form = [] ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $strings = (array) $strings; + + $strings['stripe_recurring_heading'] = esc_html__( 'Missing Required Fields', 'wpforms-lite' ); + $strings['stripe_recurring_email'] = esc_html__( 'When recurring subscription payments are enabled, the Customer Email is required.', 'wpforms-lite' ); + $strings['stripe_required_one_time_fields'] = esc_html__( 'In order to complete your form\'s Stripe One-Time Payments, please check that all required (*) fields have been filled out.', 'wpforms-lite' ); + $strings['stripe_required_recurring_fields'] = esc_html__( 'In order to complete your form\'s Stripe Recurring Subscription Payments, please check that all required (*) fields have been filled out.', 'wpforms-lite' ); + $strings['stripe_required_both_fields'] = esc_html__( 'In order to complete your form\'s Stripe One-Time Payments and Recurring Subscription Payments, please check that all required (*) fields have been filled out.', 'wpforms-lite' ); + $strings['stripe_recurring_settings'] = wp_kses( + __( 'Please go to the Stripe payment settings and fill out the required field(s).', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + ], + ] + ); + + return $strings; + } + + /** + * Enqueue assets for the builder. + * + * @since 1.8.2 + * + * @param string|null $view Current view. + */ + public function enqueues( $view = null ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $min = wpforms_get_min_suffix(); + + if ( Helpers::has_stripe_keys() ) { + wp_enqueue_style( + 'wpforms-builder-stripe-common', + WPFORMS_PLUGIN_URL . "assets/css/integrations/stripe/builder-stripe-common{$min}.css", + [], + WPFORMS_VERSION + ); + } + + wp_enqueue_script( + 'wpforms-builder-stripe', + WPFORMS_PLUGIN_URL . "assets/js/integrations/stripe/admin-builder-stripe{$min}.js", + [ 'conditions' ], + WPFORMS_VERSION, + false + ); + + wp_enqueue_script( + 'wpforms-builder-modern-stripe', + WPFORMS_PLUGIN_URL . "assets/js/integrations/stripe/admin-builder-modern-stripe{$min}.js", + [], + WPFORMS_VERSION, + false + ); + + /** + * Allow to filter builder stripe script data. + * + * @since 1.8.2 + * @since 1.9.5 Added the `field_slug` key. + * + * @param array $data Script data. + */ + $script_data = (array) apply_filters( + 'wpforms_integrations_stripe_admin_builder_enqueues_data', + [ + 'field_slug' => Helpers::get_field_slug(), + 'field_slugs' => [ 'stripe-credit-card' ], + 'is_pro' => Helpers::is_pro(), + 'cycles_max' => Helpers::recurring_plan_cycles_max(), + 'i18n' => [ + 'cycles_default' => esc_html__( 'Unlimited', 'wpforms-lite' ), + ], + ] + ); + + wp_localize_script( + 'wpforms-builder-stripe', + 'wpforms_builder_stripe', + $script_data + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Notifications.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Notifications.php new file mode 100644 index 0000000..37c1622 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Notifications.php @@ -0,0 +1,132 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + $hook_name = wpforms()->is_pro() ? 'wpforms_form_settings_notifications_single_after' : 'wpforms_lite_form_settings_notifications_block_content_after'; + + add_action( $hook_name, [ $this, 'notification_settings' ], 5, 2 ); + } + + /** + * Add checkbox to form notification settings. + * + * @since 1.9.5 + * + * @param object|mixed $settings Current confirmation settings. + * @param int $id Subsection ID. + */ + public function notification_settings( $settings, int $id ) { + + if ( empty( $settings->form_data ) ) { + return; + } + + wpforms_panel_field( + 'toggle', + 'notifications', + 'stripe', + $settings->form_data, + esc_html__( 'Enable for Stripe completed payments', 'wpforms-lite' ), + $this->get_notification_settings_data( $settings->form_data, $id ) + ); + } + + /** + * Get notification settings data based on the license type. + * + * @since 1.9.5 + * + * @param array $form_data Form settings data. + * @param int $id Subsection ID. + * + * @return array + */ + private function get_notification_settings_data( array $form_data, int $id ): array { + + return [ + 'parent' => 'settings', + 'class' => ! Helpers::is_payments_enabled( $form_data ) ? 'wpforms-hidden' : '', + 'subsection' => $id, + 'value' => 0, + 'input_class' => 'education-modal', + 'pro_badge' => ! Helpers::is_allowed_license_type(), + 'data' => $this->get_notification_section_data(), + 'attrs' => [ 'disabled' => 'disabled' ], + ]; + } + + /** + * Get notification section data. + * + * @since 1.9.5 + * + * @return array + */ + private function get_notification_section_data(): array { + + $addon = wpforms()->obj( 'addons' )->get_addon( 'stripe' ); + + if ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && + $addon['action'] !== 'upgrade' + ) + ) { + return []; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'install' ) { + return [ + 'action' => 'install', + 'message' => esc_html__( 'The Stripe Pro addon is required to enable notification for completed payments. Would you like to install and activate it?', 'wpforms-lite' ), + 'url' => $addon['url'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + 'license' => 'pro', + ]; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'activate' ) { + return [ + 'action' => 'activate', + 'message' => esc_html__( 'The Stripe Pro addon is required to enable notification for completed payments. Would you like to activate it?', 'wpforms-lite' ), + 'path' => $addon['path'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + ]; + } + + return [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Notification for Stripe Completed Payments', 'wpforms-lite' ), + 'utm-content' => 'Builder Stripe Completed Payments', + 'license' => 'pro', + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Settings.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Settings.php new file mode 100644 index 0000000..370fb41 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Settings.php @@ -0,0 +1,338 @@ +icon = WPFORMS_PLUGIN_URL . 'assets/images/addon-icon-stripe.png'; + $this->form_data = $this->get_form_data(); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_filter( 'wpforms_payments_available', [ $this, 'register_payment' ] ); + add_action( 'wpforms_payments_panel_content', [ $this, 'builder_output' ], 0 ); + add_action( 'wpforms_payments_panel_sidebar', [ $this, 'builder_sidebar' ], 0 ); + add_filter( 'wpforms_admin_education_addons_item_base_display_single_addon_hide', [ $this, 'should_hide_educational_menu_item' ], 10, 2 ); + } + + /** + * Register the payment gateway. + * + * @since 1.8.2 + * + * @param array $payments_available List of available payment gateways. + * + * @return array + */ + public function register_payment( $payments_available ) { + + $payments_available[ $this->slug ] = $this->name; + + return $payments_available; + } + + /** + * Output the gateway menu item. + * + * @since 1.8.2 + */ + public function builder_sidebar() { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/payment/sidebar', + [ + 'configured' => $this->is_payments_enabled() ? 'configured' : '', + 'slug' => $this->slug, + 'icon' => $this->icon, + 'name' => $this->name, + 'recommended' => $this->recommended, + ], + true + ); + } + + /** + * Output the gateway settings. + * + * @since 1.8.2 + */ + public function builder_output() { + ?> +
              + +
              + name ); ?> +
              + +
              + builder_content(); ?> +
              +
              + slug === $addon['clear_slug'] ? true : $hide; + } + + /** + * Check if payments enabled. + * + * @since 1.8.2 + * + * @return bool + */ + private function is_payments_enabled(): bool { + + return ! empty( $this->form_data['payments'][ $this->slug ]['enable'] ) || + ! empty( $this->form_data['payments'][ $this->slug ]['enable_one_time'] ) || + ! empty( $this->form_data['payments'][ $this->slug ]['enable_recurring'] ); + } + + /** + * Get form data. + * + * @since 1.8.2 + * + * @return array + */ + private function get_form_data() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : 0; + + if ( ! $form_id ) { + return []; + } + + $form_data = wpforms()->obj( 'form' )->get( + $form_id, + [ + 'content_only' => true, + ] + ); + + return is_array( $form_data ) ? $form_data : []; + } + + /** + * Get single payments conditional logic for the Stripe settings panel. + * + * @since 1.8.2 + * + * @return string + */ + private function single_payments_conditional_logic_section() { + + return $this->get_conditional_logic_toggle(); + } + + /** + * Get recurring payments conditional logic for the Stripe settings panel. + * + * @since 1.8.2 + * @since 1.8.4 Added Plan ID parameter. + * + * @param string $plan_id Plan ID. + * + * @return string + */ + private function recurring_payments_conditional_logic_section( $plan_id ) { + + return $this->get_conditional_logic_toggle( true ); + } + + /** + * Get education toggle for the conditional logic. + * + * @since 1.8.2 + * + * @param bool $is_recurring Is recurring section. + * + * @return string + */ + private function get_conditional_logic_toggle( $is_recurring = false ) { + + return wpforms_panel_field( + 'toggle', + 'stripe', + 'conditional_logic', + $this->maybe_reset_conditional_logic( $this->form_data ), + esc_html__( 'Enable Conditional Logic', 'wpforms-lite' ), + [ + 'input_class' => 'education-modal', + 'parent' => 'payments', + 'subsection' => $is_recurring ? 'recurring' : '', + 'pro_badge' => ! Helpers::is_allowed_license_type(), + 'data' => $this->get_conditional_logic_section_data(), + 'attrs' => [ + 'disabled' => 'disabled', + ], + ], + false + ); + } + + /** + * Get conditional logic section data. + * + * @since 1.8.2 + * + * @return array + */ + private function get_conditional_logic_section_data() { + + $addon = wpforms()->obj( 'addons' )->get_addon( 'stripe' ); + + if ( + empty( $addon ) || + empty( $addon['action'] ) || + empty( $addon['status'] ) || ( + $addon['status'] === 'active' && + $addon['action'] !== 'upgrade' + ) + ) { + return []; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'install' ) { + return [ + 'action' => 'install', + 'message' => esc_html__( 'The Stripe Pro addon is required to enable conditional logic for payments. Would you like to install and activate it?', 'wpforms-lite' ), + 'url' => $addon['url'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + 'license' => 'pro', + ]; + } + + if ( $addon['plugin_allow'] && $addon['action'] === 'activate' ) { + return [ + 'action' => 'activate', + 'message' => esc_html__( 'The Stripe Pro addon is required to enable conditional logic for payments. Would you like to activate it?', 'wpforms-lite' ), + 'path' => $addon['path'], + 'nonce' => wp_create_nonce( 'wpforms-admin' ), + ]; + } + + return [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Smart Conditional Logic', 'wpforms-lite' ), + 'utm-content' => 'Builder Stripe Conditional Logic', + 'licence' => 'pro', + ]; + } + + /** + * Maybe reset conditional logic. + * + * If Stripe Pro is disabled, reset conditional logic for Stripe settings. + * + * @since 1.8.2.2 + * + * @param array $form_data Form data. + * + * @return array + */ + private function maybe_reset_conditional_logic( $form_data ) { + + if ( Helpers::is_pro() ) { + return $form_data; + } + + if ( + ! isset( $form_data['payments']['stripe']['conditional_logic'] ) && + ! isset( $form_data['payments']['stripe']['recurring']['conditional_logic'] ) + ) { + return $form_data; + } + + unset( + $form_data['payments']['stripe']['conditional_logic'], + $form_data['payments']['stripe']['recurring']['conditional_logic'] + ); + + return $form_data; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Traits/ContentTrait.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Traits/ContentTrait.php new file mode 100644 index 0000000..2c6c05e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Builder/Traits/ContentTrait.php @@ -0,0 +1,824 @@ +builder_alerts() ) { + return; + } + + $hide_class = ! Helpers::has_stripe_field( $this->form_data ) ? 'wpforms-hidden' : ''; + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo Notices::get_fee_notice( $hide_class ); + + if ( Helpers::is_legacy_payment_settings( $this->form_data ) ) { + $this->legacy_builder_content(); + + return; + } + + $this->maybe_convert_legacy_settings(); + + echo '
              '; + + if ( ! Helpers::is_pro() ) { + $this->builder_content_one_time(); + $this->builder_content_recurring(); + } else { + parent::builder_content(); + } + + echo '
              '; + } + + /** + * Convert legacy settings if they exist. + * + * @since 1.8.4 + */ + private function maybe_convert_legacy_settings() { + + // Enable one-time payments if they were active. + if ( ! empty( $this->form_data['payments']['stripe']['enable'] ) ) { + unset( $this->form_data['payments']['stripe']['enable'] ); + + $this->form_data['payments']['stripe']['enable_one_time'] = 1; + } + + // Convert subscription settings if they exist and disabled to new default plan. + if ( + empty( $this->form_data['payments']['stripe']['recurring'] ) || + ! empty( $this->form_data['payments']['stripe']['enable_recurring'] ) + ) { + return; + } + + $stripe_recurring_settings = $this->form_data['payments']['stripe']['recurring']; + + unset( $this->form_data['payments']['stripe']['recurring'] ); + + if ( + ! empty( $stripe_recurring_settings['enable'] ) || + array_filter( $stripe_recurring_settings, 'is_array' ) === $stripe_recurring_settings + ) { + return; + } + + // Preserve all settings (name, period, email, and CL). + $this->form_data['payments']['stripe']['recurring'][] = $stripe_recurring_settings; + } + + /** + * Display legacy content inside the panel content area. + * + * @since 1.8.4 + */ + private function legacy_builder_content() { + + $this->enable_payments_toggle(); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo $this->content_section_body(); + } + + /** + * Builder content for one time payments. + * + * @since 1.8.4 + */ + private function builder_content_one_time() { + ?> + +
              +

              + +

              + slug, + 'enable_one_time', + $this->form_data, + esc_html__( 'Enable one-time payments', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'default' => '0', + 'tooltip' => esc_html__( 'Allow your customers to one-time pay via the form.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-toggle wpforms-panel-content-section-payment-toggle-one-time', + ] + ); + ?> +
              + get_builder_content_one_time_content(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
              +
              + + +
              +

              + +

              + add_plan_education(); + + wpforms_panel_field( + 'toggle', + $this->slug, + 'enable_recurring', + $this->form_data, + esc_html__( 'Enable recurring subscription payments', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'default' => '0', + 'tooltip' => esc_html__( 'Allow your customer to pay recurringly via the form.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-toggle wpforms-panel-content-section-payment-toggle-recurring', + ] + ); + ?> +
              + form_data['payments'][ $this->slug ]['recurring'] ) ) { + $this->form_data['payments'][ $this->slug ]['recurring'][] = []; + } + + foreach ( $this->form_data['payments'][ $this->slug ]['recurring'] as $plan_id => $plan_settings ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( + 'builder/payment/recurring/item', + [ + 'plan_id' => $plan_id, + 'content' => $this->get_builder_content_recurring_payment_content( $plan_id ), + ], + true + ); + + // Limit plans if Stripe addon is NOT active. + break; + } + ?> +
              +
              + obj( 'addons' )->get_addon( 'wpforms-stripe' ); + + if ( empty( $addon ) ) { + return; + } + + echo '' . esc_html( $label ) . ''; + + return; + } + + echo '' . esc_html( $label ) . ''; + } + + /** + * Display alert if Stripe keys are not set. + * + * @since 1.8.2 + * + * @return bool + */ + private function builder_alerts() { + + if ( Helpers::has_stripe_keys() ) { + if ( Helpers::is_legacy_payment_settings( $this->form_data ) ) { + Notices::prompt_new_interface(); + } + + $this->stripe_credit_card_alert(); + + return false; + } + + $this->alert_content( + __( 'Heads up! Stripe payments can\'t be enabled yet.', 'wpforms-lite' ), + sprintf( + wp_kses( /* translators: %1$s - admin area Payments settings page URL. */ + __( 'First, please connect to your Stripe account on the WPForms Settings page.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + ], + ] + ), + esc_url( admin_url( 'admin.php?page=wpforms-settings&view=payments' ) ) + ) + ); + + return true; + } + + /** + * Display alert if Stripe Credit Card field is not added to the form. + * + * @since 1.8.2 + */ + private function stripe_credit_card_alert() { + + $hide_class = Helpers::has_stripe_field( $this->form_data ) ? 'wpforms-hidden' : ''; + ?> + +
              + alert_content( '', esc_html__( 'To use Stripe, first add the Stripe payment field to your form.', 'wpforms-lite' ) ); ?> +
              + + form_data, + esc_html__( 'Enable Stripe payments', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'default' => '0', + ] + ); + } + + /** + * Display content inside the panel content section. + * + * @since 1.8.4 + * + * @return string Stripe settings builder content section. + */ + private function content_section_body() { + + $content = '
              '; + $content .= $this->get_builder_content_one_time_content(); + $content .= sprintf( '

              %1$s

              ', esc_html__( 'Subscriptions', 'wpforms-lite' ) ); + + $content .= wpforms_panel_field( + 'toggle', + 'stripe', + 'enable', + $this->form_data, + esc_html__( 'Enable recurring subscription payments', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'default' => '0', + ], + false + ); + + $content .= $this->get_builder_content_recurring_payment_content( '' ); + $content .= '
              '; + + return $content; + } + + /** + * Get content inside the one time payment area. + * + * @since 1.8.4 + * + * @return string + */ + protected function get_builder_content_one_time_content() { + + $content = wpforms_panel_field( + 'text', + $this->slug, + 'payment_description', + $this->form_data, + esc_html__( 'Payment Description', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'tooltip' => esc_html__( 'Enter your payment description. Eg: Donation for the soccer team. Only used for standard one-time payments.', 'wpforms-lite' ), + ], + false + ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'receipt_email', + $this->form_data, + esc_html__( 'Stripe Payment Receipt', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'field_map' => [ 'email' ], + 'placeholder' => esc_html__( '--- Select Email ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'If you would like to have Stripe send a receipt after payment, select the email field to use. This is optional but recommended. Only used for standard one-time payments.', 'wpforms-lite' ), + ], + false + ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'customer_email', + $this->form_data, + esc_html__( 'Customer Email', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'field_map' => [ 'email' ], + 'placeholder' => esc_html__( '--- Select Email ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the field that contains the customer\'s email address. This is optional but recommended.', 'wpforms-lite' ), + ], + false + ); + + $content .= $this->get_customer_name_panel_field(); + $content .= $this->get_customer_phone_field(); + $content .= $this->get_address_panel_fields(); + $content .= $this->get_custom_metadata_table(); + $content .= $this->single_payments_conditional_logic_section(); + + return $content; + } + + /** + * Get content inside the recurring payment area. + * + * @since 1.8.4 + * + * @param string $plan_id Plan id. + * + * @return string + */ + protected function get_builder_content_recurring_payment_content( $plan_id ) { + + $content = wpforms_panel_field( + 'text', + $this->slug, + 'name', + $this->form_data, + esc_html__( 'Plan Name', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'tooltip' => esc_html__( 'Enter the subscription name. Eg: Email Newsletter. Subscription period and price are automatically appended. If left empty the form name will be used.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-plan-name', + ], + false + ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'period', + $this->form_data, + esc_html__( 'Recurring Period', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'default' => 'yearly', + 'options' => [ + 'daily' => esc_html__( 'Daily', 'wpforms-lite' ), + 'weekly' => esc_html__( 'Weekly', 'wpforms-lite' ), + 'monthly' => esc_html__( 'Monthly', 'wpforms-lite' ), + 'quarterly' => esc_html__( 'Quarterly', 'wpforms-lite' ), + 'semiyearly' => esc_html__( 'Semi-Yearly', 'wpforms-lite' ), + 'yearly' => esc_html__( 'Yearly', 'wpforms-lite' ), + ], + 'tooltip' => esc_html__( 'How often you would like the charge to recur.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-plan-period', + ], + false + ); + + $max_cycles = $this->get_recurring_max_cycles( $plan_id ); + $range_cycles = range( 1, $max_cycles ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'cycles', + $this->form_data, + esc_html__( 'Recurring Cycles', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'default' => 'unlimited', + 'options' => [ 'unlimited' => esc_html__( 'Unlimited', 'wpforms-lite' ) ] + array_combine( $range_cycles, $range_cycles ), + 'tooltip' => esc_html__( 'How many times you want the payment to repeat. Stripe supports up to 100 recurrences or a maximum duration of 20 years, whichever comes first.', 'wpforms-lite' ), + 'class' => 'wpforms-panel-content-section-payment-plan-cycles', + ], + false + ); + + $is_empty_email = isset( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['email'] ) && empty( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['email'] ); + + $content .= wpforms_panel_field( + 'select', + $this->slug, + 'email', + $this->form_data, + esc_html__( 'Customer Email', 'wpforms-lite' ), + [ + 'parent' => 'payments', + 'subsection' => 'recurring', + 'index' => $plan_id, + 'input_class' => $is_empty_email ? 'wpforms-required-field-error' : '', + 'field_map' => [ 'email' ], + 'placeholder' => esc_html__( '--- Select Email ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( "Select the field that contains the customer's email address. This field is required.", 'wpforms-lite' ), + ], + false + ); + + $content .= $this->get_customer_name_panel_field( $plan_id ); + $content .= $this->get_customer_phone_field( $plan_id ); + $content .= $this->get_address_panel_fields( $plan_id ); + $content .= $this->get_custom_metadata_table( $plan_id ); + $content .= $this->recurring_payments_conditional_logic_section( $plan_id ); + + return $content; + } + + /** + * Alert icon. + * + * @since 1.8.4 + */ + private function alert_icon() { + + printf( + '%2$s', + esc_url( WPFORMS_PLUGIN_URL . 'assets/images/addon-icon-stripe.png' ), + esc_attr__( 'Connect WPForms to Stripe.', 'wpforms-lite' ) + ); + } + + /** + * Learn more link. + * + * @since 1.8.4 + * + * @return string + */ + private function learn_more_link() { + + return sprintf( + '%2$s', + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', 'builder-payments', 'Stripe Documentation' ) ), + esc_html__( 'Learn more about our Stripe integration.', 'wpforms-lite' ) + ); + } + + /** + * Get Customer name panel field. + * + * @since 1.8.6 + * + * @param string|null $plan_id Plan ID. + * + * @return string + */ + private function get_customer_name_panel_field( $plan_id = null ) { + + $args = [ + 'parent' => 'payments', + 'field_map' => [ 'name' ], + 'placeholder' => esc_html__( '--- Select Name ---', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select the field that contains the customer\'s name. This is optional but recommended.', 'wpforms-lite' ), + ]; + + if ( ! is_null( $plan_id ) ) { + $args['subsection'] = 'recurring'; + $args['index'] = $plan_id; + } + + return wpforms_panel_field( + 'select', + $this->slug, + 'customer_name', + $this->form_data, + esc_html__( 'Customer Name', 'wpforms-lite' ), + $args, + false + ); + } + + /** + * Get address panel fields. + * + * @since 1.8.8 + * + * @param string|null $plan_id Plan ID. + * + * @return string + */ + private function get_address_panel_fields( $plan_id = null ): string { + + $args = [ + 'parent' => 'payments', + 'field_map' => [ 'address' ], + 'placeholder' => esc_html__( '--- Select Address ---', 'wpforms-lite' ), + ]; + + $is_subscription = ! is_null( $plan_id ); + + if ( $is_subscription ) { + $args['subsection'] = 'recurring'; + $args['index'] = $plan_id; + } + + $is_pro = wpforms()->is_pro(); + + if ( ! $is_pro ) { + $args['pro_badge'] = true; + $args['data'] = [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Customer Address', 'wpforms-lite' ), + 'utm-content' => 'Builder Stripe Address Field', + 'licence' => 'pro', + ]; + $args['input_class'] = 'education-modal'; + $args['readonly'] = true; + } else { + $args['tooltip'] = esc_html__( 'Select the field that contains the customer\'s address. This is optional but required for some regions.', 'wpforms-lite' ); + } + + $output = wpforms_panel_field( + 'select', + $this->slug, + 'customer_address', + $this->form_data, + esc_html__( 'Customer Address', 'wpforms-lite' ), + $args, + false + ); + + if ( $is_subscription ) { + return $output; + } + + if ( ! $is_pro ) { + $args['data']['name'] = esc_html__( 'Shipping Address', 'wpforms-lite' ); + } else { + $args['tooltip'] = esc_html__( 'Select the field that contains the shipping address. This is optional but required for some regions.', 'wpforms-lite' ); + } + + $output .= wpforms_panel_field( + 'select', + $this->slug, + 'shipping_address', + $this->form_data, + esc_html__( 'Shipping Address', 'wpforms-lite' ), + $args, + false + ); + + return $output; + } + + /** + * Get the Customer phone panel field. + * + * @since 1.9.6 + * + * @param string|null $plan_id Plan ID. + * + * @return string + */ + private function get_customer_phone_field( ?string $plan_id = null ): string { + + $args = [ + 'parent' => 'payments', + 'field_map' => [ 'phone' ], + 'placeholder' => esc_html__( '--- Select Phone ---', 'wpforms-lite' ), + ]; + + if ( ! is_null( $plan_id ) ) { + $args['subsection'] = 'recurring'; + $args['index'] = $plan_id; + } + + $is_pro = wpforms()->is_pro(); + + if ( ! $is_pro ) { + $args['pro_badge'] = true; + $args['data'] = [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Customer Phone', 'wpforms-lite' ), + 'utm-content' => 'Builder Stripe Phone Field', + 'licence' => 'pro', + ]; + $args['input_class'] = 'education-modal'; + $args['readonly'] = true; + } else { + $args['tooltip'] = esc_html__( 'Select the field that contains the customer\'s phone. This is optional but recommended.', 'wpforms-lite' ); + } + + return (string) wpforms_panel_field( + 'select', + $this->slug, + 'customer_phone', + $this->form_data, + esc_html__( 'Customer Phone', 'wpforms-lite' ), + $args, + false + ); + } + + /** + * Get custom meta table html. + * + * @since 1.9.6 + * + * @param string|null $plan_id Plan ID. + * + * @return string + */ + private function get_custom_metadata_table( $plan_id = null ): string { + + $subsection = ! is_null( $plan_id ) ? 'recurring_custom_metadata_' . $plan_id : 'custom_metadata'; + $custom_metadata = $this->form_data['payments'][ $this->slug ][ $subsection ] ?? [ [] ]; + + /** + * Filter the allowed fields for custom metadata. + * + * @since 1.9.6 + * + * @param array $allowed_fields Allowed fields. + */ + $allowed_fields = (array) apply_filters( 'wpforms_stripe_custom_metadata_allowed_fields', $this->get_allowed_meta_value_fields() ); + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + return wpforms_render( + 'integrations/stripe/builder/custom-metadata', + [ + 'custom_metadata' => $custom_metadata, + 'subsection' => $subsection, + 'slug' => $this->slug, + 'form_data' => $this->form_data, + 'fields' => $allowed_fields, + ], + true + ); + } + + /** + * Get allowed meta value fields. + * + * @since 1.9.6 + * + * @return array + */ + private function get_allowed_meta_value_fields(): array { + + $fields = [ + 'text', + 'textarea', + 'checkbox', + 'radio', + 'select', + 'number', + 'name', + 'email', + 'number-slider', + 'payment-checkbox', + 'payment-multiple', + 'payment-select', + 'payment-single', + 'payment-total', + ]; + + if ( ! wpforms()->is_pro() ) { + return $fields; + } + + return array_merge( + $fields, + [ + 'address', + 'date-time', + 'hidden', + 'phone', + 'rating', + ] + ); + } + + /** + * Get recurring max cycles value. + * + * @param string $plan_id Selected plan id. + * + * @since 1.9.8 + * + * @return int + */ + private function get_recurring_max_cycles( string $plan_id ): int { + + // The API limit is 20 years. + if ( ! isset( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['period'] ) || $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['period'] === 'yearly' ) { + return 20; + } + + // 20 years is 40 semi-years. + if ( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['period'] === 'semiyearly' ) { + return 40; + } + + // 20 years is 80 quarters. + if ( $this->form_data['payments'][ $this->slug ]['recurring'][ $plan_id ]['period'] === 'quarterly' ) { + return 80; + } + + return Helpers::recurring_plan_cycles_max(); + } + + /** + * Display alert content. + * + * @since 1.9.9 + * + * @param string $title Alert title. + * @param string $message Alert message. + */ + private function alert_content( string $title, string $message ): void { + ?> + + alert_icon(); ?> + +
              + +

              + +

              + +

              + +

              +

              + learn_more_link(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +

              +
              + + webhooks_manager = new WebhooksManager(); + $this->domain_manager = new DomainManager(); + + $this->hooks(); + + return $this; + } + + /** + * Hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_action( 'admin_init', [ $this, 'handle_oauth_handshake' ] ); + } + + /** + * Handle Stripe Connect OAuth handshake and save Stripe keys. + * + * @since 1.8.2 + */ + public function handle_oauth_handshake(): void { + + // Handle disconnect requests. + if ( $this->is_valid_disconnect_request() ) { + $this->handle_disconnect(); + + return; + } + + if ( ! $this->is_valid_handshake_request() ) { + return; + } + + $state = isset( $_GET['state'] ) ? sanitize_text_field( wp_unslash( $_GET['state'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + if ( empty( $state ) ) { + return; + } + + $credentials = $this->fetch_stripe_credentials( $state ); + $required_keys = [ 'stripe_user_id', 'stripe_publishable_key', 'access_token', 'refresh_token', 'live_mode' ]; + + if ( 0 !== count( array_diff( $required_keys, array_keys( $credentials ) ) ) ) { + return; + } + + $mode = empty( $credentials['live_mode'] ) ? 'test' : 'live'; + + $this->set_connected_user_id( $credentials['stripe_user_id'], $mode ); + $this->set_current_mode( $mode ); + + // In case of switching accounts existing account data needs to be cleared. + unset( $this->accounts[ $mode ] ); + + Helpers::set_stripe_key( $credentials['stripe_publishable_key'], 'publishable', $mode ); + Helpers::set_stripe_key( $credentials['access_token'], 'secret', $mode ); + + $this->update_account_meta( $credentials['stripe_user_id'], $mode ); + $this->set_connected_account_country( $mode ); + $this->webhooks_manager->connect(); + $this->domain_manager->validate(); + + $settings_url = $this->get_payments_settings_url( false ); + + wp_safe_redirect( $settings_url ); + exit; + } + + /** + * Validates if the current handshake request is valid. + * + * @since 1.9.5 + */ + private function is_valid_handshake_request(): bool { + + if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'wpforms_stripe_connect' ) ) { + return false; + } + + if ( ! isset( $_GET['stripe_connect'] ) || $_GET['stripe_connect'] !== 'complete' ) { + return false; + } + + if ( ! wpforms_current_user_can() ) { + return false; + } + + return true; + } + + /** + * Validates if the current disconnect request is valid. + * + * @since 1.9.8 + * + * @return bool + */ + private function is_valid_disconnect_request(): bool { + + if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'wpforms_stripe_disconnect' ) ) { + return false; + } + + if ( ! wpforms_current_user_can() ) { + return false; + } + + return true; + } + + /** + * Fetch Stripe credentials from https://wpforms.com. + * + * @since 1.8.2 + * + * @param string $state Anonymous autogenerated ID to safely fetch Stripe credentials. + * + * @return array + */ + protected function fetch_stripe_credentials( $state ) { + + $response = wp_remote_post( + self::WPFORMS_URL, + [ + 'body' => [ + 'action' => 'credentials', + 'state' => $state, + ], + ] + ); + + if ( is_wp_error( $response ) ) { + return []; + } + + $body = wpforms_json_decode( wp_remote_retrieve_body( $response ), true ); + + return is_array( $body ) ? $body : []; + } + + /** + * Fetch Stripe Account from Stripe. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return null|Account + */ + protected function fetch_stripe_account( $mode = '' ) { + + $api_key = Helpers::get_stripe_key( 'secret', $mode ); + + if ( ! $api_key ) { + return null; + } + + try { + $account = Account::retrieve( null, sanitize_text_field( $api_key ) ); + } catch ( \Exception $e ) { + $account = null; + } + + return $account; + } + + /** + * Update connected account meta. + * + * @since 1.8.2 + * + * @param string $account_id Account ID. + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + */ + public function update_account_meta( $account_id = '', $mode = '' ) { + + if ( ! $mode ) { + $mode = Helpers::get_stripe_mode(); + } + + // Stripe API has limited update method for live accounts only. + if ( $mode !== 'live' ) { + return; + } + + if ( ! $account_id ) { + $account_id = $this->get_connected_user_id( $mode ); + } + + // Return early if no connected account. + if ( ! $account_id ) { + return; + } + + $licence_type = wpforms_get_license_type(); + + $metadata = [ + 'wpforms_stripe' => Helpers::is_addon_active() ? 'addon' : 'core', + 'wpforms_type' => wpforms()->is_pro() ? 'pro' : 'lite', + 'wpforms_license' => $licence_type ? $licence_type : 'lite', + ]; + + try { + Account::update( $account_id, [ 'metadata' => $metadata ], Helpers::get_auth_opts() ); + } catch ( \Exception $e ) { + wpforms_log( + 'Unable to update connected Stripe account meta.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } + } + + /** + * Generate random alphanumeric token string. + * Token length is always 32 chars. + * + * @since 1.8.2 + * + * @return string + */ + public function generate_random_token() { + + $random = false; + + if ( function_exists( 'openssl_random_pseudo_bytes' ) ) { + $strong_result = false; // This has been added as argument #2 ($strong_result) cannot be passed by reference. + $random = openssl_random_pseudo_bytes( 16, $strong_result ); + } + + if ( $random === false ) { + return md5( wp_rand() ); + } + + return bin2hex( $random ); + } + + /** + * Set fetched Stripe Account for caching purposes. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + */ + protected function set_connected_account( $mode = '' ) { + + $user_id = $this->get_connected_user_id( $mode ); + + if ( ! $user_id ) { + return; + } + + $account = $this->fetch_stripe_account( $mode ); + $this->accounts[ $mode ] = null; + + if ( ! isset( $account->id ) || $account->id !== $user_id ) { + return; + } + + $this->accounts[ $mode ] = $account; + } + + /** + * Get cached Stripe Account or fetch it from Stripe. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return null|Account + */ + public function get_connected_account( $mode = '' ) { + + $mode = Helpers::validate_stripe_mode( $mode ); + + if ( empty( $this->accounts ) || ( is_array( $this->accounts ) && ! array_key_exists( $mode, $this->accounts ) ) ) { + $this->set_connected_account( $mode ); + } + + if ( ! empty( $this->accounts[ $mode ] ) ) { + return $this->accounts[ $mode ]; + } + + return null; + } + + /** + * Save connected user id to an option. + * + * @since 1.8.2 + * + * @param string $user_id User id to set. + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return bool + */ + protected function set_connected_user_id( $user_id, $mode = '' ) { + + $mode = Helpers::validate_stripe_mode( $mode ); + + return update_option( "wpforms_stripe_{$mode}_connect_user_id", sanitize_text_field( $user_id ) ); + } + + /** + * Get saved Stripe Connect user id from DB. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + public function get_connected_user_id( $mode = '' ) { + + $mode = Helpers::validate_stripe_mode( $mode ); + $user_id = get_option( "wpforms_stripe_{$mode}_connect_user_id", '' ); + + /** + * User ID associated with the Stripe account. + * + * @since 1.8.2 + * + * @param string $user_id User ID. + */ + return (string) apply_filters( 'wpforms_stripe_admin_connect_get_connected_user_id', $user_id ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Get Stripe Account name. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + public function get_connected_account_name( $mode = '' ) { + + $account = $this->get_connected_account( $mode ); + + if ( isset( $account->display_name ) ) { + return $account->display_name; + } + + if ( isset( $account->settings, $account->settings->dashboard->display_name ) ) { + return $account->settings->dashboard->display_name; + } + + return ''; + } + + /** + * Set Stripe mode. + * + * @since 1.8.4 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + */ + private function set_current_mode( $mode ) { + + $key = 'stripe-test-mode'; + $settings = (array) get_option( 'wpforms_settings', [] ); + $settings[ $key ] = $mode === 'test'; + + update_option( 'wpforms_settings', $settings ); + } + + /** + * Set Stripe Account country. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + */ + private function set_connected_account_country( $mode = '' ) { + + $account = $this->get_connected_account( $mode ); + + if ( ! isset( $account->country ) ) { + return; + } + + update_option( "wpforms_stripe_{$mode}_account_country", strtolower( $account->country ) ); + } + + /** + * Get Stripe Connect button URL. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + public function get_connect_with_stripe_url( $mode = '' ) { + + $mode = Helpers::validate_stripe_mode( $mode ); + $settings_url = $this->get_payments_settings_url(); + + return add_query_arg( + [ + 'action' => 'init', + 'live_mode' => absint( $mode === 'live' ), + 'state' => $this->generate_random_token(), + 'site_url' => rawurlencode( $settings_url ), + ], + self::WPFORMS_URL + ); + } + + /** + * Get "Payments" settings page URL. + * + * @since 1.8.2 + * @since 1.9.8 Added `$include_nonce` and `$action` parameters to allow more flexible settings. + * + * @param bool $include_nonce Whether to include nonce in the URL. + * @param string $action Action to be used for nonce verification. + * + * @return string + */ + private function get_payments_settings_url( bool $include_nonce = true, string $action = 'wpforms_stripe_connect' ): string { + + $args = [ + 'page' => 'wpforms-settings', + 'view' => 'payments', + ]; + + if ( $include_nonce ) { + $args['_wpnonce'] = wp_create_nonce( $action ); + } + + return add_query_arg( $args, admin_url( 'admin.php' ) ); + } + + /** + * Get Stripe disconnect URL. + * + * @since 1.9.8 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + public function get_disconnect_stripe_url( string $mode ): string { + + $mode = Helpers::validate_stripe_mode( $mode ); + $action = 'wpforms_stripe_disconnect'; + + return add_query_arg( + [ + 'action' => $action, + 'live_mode' => absint( $mode === 'live' ), + ], + $this->get_payments_settings_url( true, $action ) + ); + } + + /** + * Disconnect from Stripe. + * + * @since 1.9.8 + */ + private function handle_disconnect(): void { + + $mode = Helpers::get_stripe_mode(); + + $response = wp_remote_post( + self::WPFORMS_URL, + [ + 'body' => [ + 'action' => 'deauthorize', + 'secret_key' => Helpers::get_stripe_key( 'secret', $mode ), + 'stripe_user_id' => $this->get_connected_user_id( $mode ), + 'live_mode' => absint( $mode === 'live' ), + ], + 'timeout' => 15, // Handle case with slow connection. + ] + ); + + if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) !== 200 ) { + return; + } + + // Cleanup saved options. + $this->disconnect_cleanup(); + + // Disconnect webhooks. + $this->webhooks_manager->disconnect(); + + wp_safe_redirect( $this->get_payments_settings_url( false ) ); + exit; + } + + /** + * Cleanup after disconnecting from Stripe. + * + * @since 1.9.8 + */ + private function disconnect_cleanup(): void { + + $mode = Helpers::get_stripe_mode(); + + // Clean keys. + Helpers::set_stripe_key( '', 'publishable', $mode ); + Helpers::set_stripe_key( '', 'secret', $mode ); + + // Clean user ID and other saved options. + delete_option( "wpforms_stripe_{$mode}_connect_user_id" ); + delete_option( "wpforms_stripe_{$mode}_account_country" ); + delete_option( DomainManager::STATUS_OPTION ); + delete_option( WebhooksHealthCheck::ENDPOINT_OPTION ); + + // Clean cached account. + unset( $this->accounts[ $mode ] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Notices.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Notices.php new file mode 100644 index 0000000..1ce6b2c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Notices.php @@ -0,0 +1,178 @@ +%s

              ', $notice ); + } + + return sprintf( '

              %s

              ', $notice ); + } + + /** + * Get a fee notice for a non-active license. + * + * If the license is NOT set/activated, show the notice to activate it. + * Otherwise, show the notice to renew it. + * + * @since 1.8.2 + * + * @return string + */ + private static function get_non_active_license_notice() { + + $setting_page_url = add_query_arg( + [ + 'page' => 'wpforms-settings', + 'view' => 'general', + ], + admin_url( 'admin.php' ) + ); + + // The license is not set/activated at all. + if ( empty( wpforms_get_license_key() ) ) { + return sprintf( + wp_kses( /* translators: %s - general admin settings page URL. */ + __( 'Pay-as-you-go Pricing
              3%% fee per-transaction + Stripe fees. Activate your license to remove additional fees and unlock powerful features.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( $setting_page_url ) + ); + } + + return sprintf( + wp_kses( /* translators: %s - general admin settings page URL. */ + __( 'Pay-as-you-go Pricing
              3%% fee per-transaction + Stripe fees. Renew your license to remove additional fees and unlock powerful features.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( $setting_page_url ) + ); + } + + /** + * Get a fee notice for license levels below the `pro`. + * + * Show the notice to upgrade to Pro. + * + * @since 1.8.2 + * + * @return string + */ + private static function get_non_pro_license_level_notice() { + + $utm_content = 'Stripe Pro - Remove Fees'; + $utm_medium = wpforms_is_admin_page( 'builder' ) ? 'Payment Settings' : 'Settings - Payments'; + $upgrade_link = wpforms()->is_pro() ? wpforms_admin_upgrade_link( $utm_medium, $utm_content ) : wpforms_utm_link( 'https://wpforms.com/lite-upgrade/', $utm_medium, $utm_content ); + + return sprintf( + wp_kses( /* translators: %s - WPForms.com Upgrade page URL. */ + __( 'Pay-as-you-go Pricing
              3%% fee per-transaction + Stripe fees. Upgrade to Pro to remove additional fees and unlock powerful features.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( $upgrade_link ) + ); + } + + /** + * Display alert about new interface. + * + * @since 1.8.4 + */ + public static function prompt_new_interface() { + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + // Check if not dismissed. + if ( ! empty( $dismissed['edu-wpforms-stripe-legacy-interface'] ) ) { + return; + } + + $addon_compat = ( new StripeAddonCompatibility() )->init(); + + if ( $addon_compat && ! $addon_compat->is_supported_modern_settings() ) { + $message = __( 'A new and improved Stripe interface is available with new Stripe Pro addon.', 'wpforms-lite' ); + } else { + $message = __( 'A new and improved Stripe interface is available when you create new forms.', 'wpforms-lite' ); + } + + ?> +
              +
              +

              + + %2$s', + esc_url( wpforms_utm_link( 'https://wpforms.com/introducing-wpforms-1-8-4-new-stripe-payment-tools/#stripe-conditional-logic', 'Builder Settings', 'Stripe New Payments Interface' ) ), + esc_html__( 'What\'s new?', 'wpforms-lite' ) + ); + ?> +

              +
              +
              + +
              +
              + payment_intents = $payment_intents; + + $this->hooks(); + + return $this; + } + + /** + * Register hooks. + * + * @since 1.8.4 + */ + private function hooks() { + + if ( wpforms_is_admin_ajax() ) { + add_action( 'wp_ajax_wpforms_stripe_payments_refund', [ $this, 'ajax_single_payment_refund' ] ); + add_action( 'wp_ajax_wpforms_stripe_payments_cancel', [ $this, 'ajax_single_payment_cancel' ] ); + + return; + } + + add_filter( 'wpforms_admin_strings', [ $this, 'admin_strings' ] ); + } + + /** + * Add admin strings related to payments. + * + * @since 1.8.4 + * + * @param array $admin_strings Admin strings. + * + * @return array + */ + public function admin_strings( $admin_strings ) { + + $admin_strings['single_payment_button_handlers'][] = self::GATEWAY; + + return $admin_strings; + } + + /** + * Refund a single payment. + * + * Handler for ajax request with action "wpforms_payments_refund". + * + * @since 1.8.4 + */ + public function ajax_single_payment_refund() { + + if ( ! isset( $_POST['payment_id'] ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Missing payment ID.', 'wpforms-lite' ) ] ); + } + + if ( ! wpforms_current_user_can( wpforms_get_capability_manage_options() ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'You are not allowed to perform this action.', 'wpforms-lite' ) ] ); + } + + $this->check_payment_collection_type(); + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + $payment_id = (int) $_POST['payment_id']; + $payment_db = wpforms()->obj( 'payment' )->get( $payment_id ); + + if ( empty( $payment_db ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Payment not found in the database.', 'wpforms-lite' ) ] ); + } + + $args = [ + 'metadata' => [ + 'refunded_by' => 'wpforms_dashboard', + ], + 'reason' => 'requested_by_customer', + ]; + + $refund = $this->payment_intents->refund_payment( $payment_db->transaction_id, $args ); + + if ( ! $refund ) { + wp_send_json_error( [ 'message' => esc_html__( 'Refund failed.', 'wpforms-lite' ) ] ); + } + + if ( $payment_db->status === 'partrefund' ) { + + $already_refunded = wpforms()->obj( 'payment_meta' )->get_single( $payment_db->id, 'refunded_amount' ); + $amount_to_log = $payment_db->total_amount - $already_refunded; + } else { + $amount_to_log = $payment_db->total_amount; + } + + $log = sprintf( + 'Stripe payment refunded from the WPForms plugin interface. Refunded amount: %1$s.', + wpforms_format_amount( wpforms_sanitize_amount( $amount_to_log ), true ) + ); + + if ( UpdateHelpers::refund_payment( $payment_db, $payment_db->total_amount, $log ) ) { + wp_send_json_success( [ 'message' => esc_html__( 'Refund successful.', 'wpforms-lite' ) ] ); + } + + wp_send_json_error( [ 'message' => esc_html__( 'Saving refund in the database failed.', 'wpforms-lite' ) ] ); + } + + /** + * Cancel subscription. + * + * Handler for ajax request with action "wpforms_payments_cancel_subscription". + * + * @since 1.8.4 + */ + public function ajax_single_payment_cancel() { + + if ( ! isset( $_POST['payment_id'] ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Payment ID not provided.', 'wpforms-lite' ) ] ); + } + + if ( ! wpforms_current_user_can( wpforms_get_capability_manage_options() ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'You are not allowed to perform this action.', 'wpforms-lite' ) ] ); + } + + $this->check_payment_collection_type(); + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + $payment_id = (int) $_POST['payment_id']; + $payment_db = wpforms()->obj( 'payment' )->get( $payment_id ); + + if ( empty( $payment_db ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Subscription not found in the database.', 'wpforms-lite' ) ] ); + } + + $cancel = $this->payment_intents->cancel_subscription( $payment_db->subscription_id ); + + if ( ! $cancel ) { + wp_send_json_error( [ 'message' => esc_html__( 'Subscription cancellation failed.', 'wpforms-lite' ) ] ); + } + + if ( UpdateHelpers::cancel_subscription( $payment_db->id, 'Stripe subscription cancelled from the WPForms plugin interface.' ) ) { + wp_send_json_success( [ 'message' => esc_html__( 'Subscription cancelled.', 'wpforms-lite' ) ] ); + } + + wp_send_json_error( [ 'message' => esc_html__( 'Updating subscription in the database failed.', 'wpforms-lite' ) ] ); + } + + /** + * Check the current payment collection type. + * If the deprecated type is still used, then warn users about it. + * + * When it's dropped from the addon, this method can be safely removed. + * + * @since 1.8.4 + */ + private function check_payment_collection_type() { + + if ( ! Helpers::is_pro() || absint( wpforms_setting( 'stripe-api-version' ) ) !== 2 ) { + return; + } + + $message = sprintf( + wp_kses( /* translators: %s - Payments settings page URL. */ + __( "The used Stripe payment collection type doesn't support this action.

              Please update your payment collection type to continue processing payments successfully.", 'wpforms-lite' ), + [ + 'br' => [], + 'a' => [ + 'href' => [], + ], + ] + ), + esc_url( admin_url( 'admin.php?page=wpforms-settings&view=payments#wpforms-setting-row-stripe-api-version' ) ) + ); + + wp_send_json_error( [ 'modal_msg' => $message ] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Settings.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Settings.php new file mode 100644 index 0000000..d8b4177 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/Settings.php @@ -0,0 +1,442 @@ +connect = ( new Connect() )->init(); + $this->webhook_settings = ( new WebhookSettings() )->init(); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_action( 'wpforms_settings_init', [ $this, 'connection_is_missing_notice' ] ); + add_action( 'wpforms_settings_init', [ $this, 'not_supported_currency_notice' ] ); + add_action( 'wpforms_settings_enqueue', [ $this, 'enqueue_assets' ] ); + add_filter( 'wpforms_settings_defaults', [ $this, 'register_settings_fields' ], 6 ); + } + + /** + * Stripe is not connected for the current payment mode notice. + * + * @since 1.8.2 + */ + public function connection_is_missing_notice() { + + if ( ! Helpers::is_pro() || Helpers::has_stripe_keys() ) { + return; + } + + $account = $this->connect->get_connected_account(); + + if ( ! empty( $account->id ) ) { + return; + } + + Notice::warning( + esc_html__( 'Stripe is not connected for your current payment mode. Please press the "Connect with Stripe" button to complete this setup.', 'wpforms-lite' ) + ); + } + + /** + * Selected currency is not supported for connected account. + * + * @since 1.8.2 + */ + public function not_supported_currency_notice() { + + if ( ! Helpers::has_stripe_keys() ) { + return; + } + + $account = $this->connect->get_connected_account(); + + if ( is_null( $account ) ) { + return; + } + + $selected_currency = strtolower( wpforms_get_currency() ); + + if ( $selected_currency === $account->default_currency ) { + return; + } + + $country_specs = ( new PaymentIntents() )->get_country_specs( $account->country ); + + if ( ! $country_specs || in_array( $selected_currency, $country_specs->supported_payment_currencies, true ) ) { + return; + } + + Notice::error( + sprintf( + wp_kses( /* translators: %1$s - Selected currency on the WPForms Settings admin page. */ + __( 'Payments Cannot Be Processed
              The currency you have set (%1$s) is not supported by Stripe. Please choose a different currency.', 'wpforms-lite' ), + [ + 'strong' => [], + 'br' => [], + ] + ), + esc_html( wpforms_get_currency() ) + ) + ); + } + + /** + * Enqueue "Settings" scripts and styles. + * + * @since 1.8.2 + */ + public function enqueue_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-admin-settings-stripe', + WPFORMS_PLUGIN_URL . "assets/css/integrations/stripe/admin-settings-stripe{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_script( + 'wpforms-admin-settings-stripe', + WPFORMS_PLUGIN_URL . "assets/js/integrations/stripe/admin-settings-stripe{$min}.js", + [ 'jquery', 'wpforms-admin-utils' ], + WPFORMS_VERSION, + true + ); + + $admin_settings_stripe_l10n = [ + 'mode_update' => wp_kses( + __( '

              Switching test/live modes requires Stripe account reconnection.

              Press the "Connect with Stripe" button after saving the settings to reconnect.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'em' => [], + ] + ), + 'webhook_urls' => [ + 'rest' => Helpers::get_webhook_url_for_rest(), + 'curl' => Helpers::get_webhook_url_for_curl(), + ], + ]; + + wp_localize_script( + 'wpforms-admin-settings-stripe', + 'wpforms_admin_settings_stripe', + $admin_settings_stripe_l10n + ); + } + + /** + * Register "Stripe" settings fields. + * + * @since 1.8.2 + * + * @param array $settings Admin area settings list. + * + * @return array + */ + public function register_settings_fields( $settings ) { + + // Bail early, in case "Payments" settings is not registered. + if ( ! isset( $settings['payments'] ) ) { + return $settings; + } + + $stripe_settings = [ + 'stripe-heading' => [ + 'id' => 'stripe-heading', + 'content' => $this->get_heading_content(), + 'type' => 'content', + 'no_label' => true, + 'class' => [ 'section-heading' ], + ], + 'stripe-connection-status' => [ + 'id' => 'stripe-connection-status', + 'name' => esc_html__( 'Connection Status', 'wpforms-lite' ), + 'content' => $this->get_connection_status_content(), + 'type' => 'content', + ], + 'stripe-test-mode' => [ + 'id' => 'stripe-test-mode', + 'name' => esc_html__( 'Test Mode', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Stripe payments with more details. */ + __( 'Prevent Stripe from processing live transactions. Please see our documentation on Stripe test payments for full details.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + 'class' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-test-stripe-payments-on-your-site/', 'Settings - Payments', 'Stripe Test Payments Documentation' ) ) + ), + ], + ]; + + $stripe_settings = $this->webhook_settings->settings( $stripe_settings ); + + $this->maybe_set_card_mode(); + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['stripe_card_mode'] ) || ! Helpers::is_payment_element_enabled() ) { + $stripe_settings['stripe-card-mode'] = [ + 'id' => 'stripe-card-mode', + 'name' => esc_html__( 'Credit Card Field Mode', 'wpforms-lite' ), + 'type' => 'radio', + 'default' => 'payment', + 'desc_after' => $this->get_credit_card_field_desc_after(), + 'options' => [ + 'card' => esc_html__( 'Card Element', 'wpforms-lite' ), + 'payment' => esc_html__( 'Payment Element', 'wpforms-lite' ), + ], + ]; + } + + $settings['payments'] = array_merge( $settings['payments'], $stripe_settings ); + + return $settings; + } + + /** + * Maybe set card mode setting. + * + * @since 1.8.2 + */ + private function maybe_set_card_mode() { + + // Bail out if a card mode is already set. + if ( wpforms_setting( 'stripe-card-mode' ) ) { + return; + } + + $settings = (array) get_option( 'wpforms_settings', [] ); + $settings['stripe-card-mode'] = Helpers::has_stripe_keys() ? 'card' : 'payment'; + + update_option( 'wpforms_settings', $settings ); + } + + /** + * Section header content. + * + * @since 1.8.2 + * + * @return string + */ + private function get_heading_content() { + + return '

              ' . esc_html__( 'Stripe', 'wpforms-lite' ) . '

              ' . + '

              ' . + sprintf( + wp_kses( /* translators: %s - WPForms.com Stripe documentation article URL. */ + __( 'Easily collect credit card payments with Stripe. For getting started and more information, see our Stripe documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/', 'Settings - Payments', 'Stripe Documentation' ) ) + ) . + '

              ' . + Notices::get_fee_notice(); + } + + /** + * Connection Status setting content. + * + * @since 1.8.2 + * + * @return string + */ + protected function get_connection_status_content() { + + $output = ''; + $current_mode = Helpers::get_stripe_mode(); + + foreach ( Helpers::CONNECTION_MODES as $mode ) { + + $class_names = [ + 'wpforms-stripe-connection-status', + "wpforms-stripe-connection-status-{$mode}", + $current_mode !== $mode ? 'wpforms-hide' : '', + ]; + $account = $this->connect->get_connected_account( $mode ); + $output .= sprintf( '
              ', wpforms_html_attributes( '', $class_names ) ); + + if ( empty( $account->id ) ) { + $output .= $this->get_disconnected_status_content( $mode ); + } else { + $output .= $this->get_connected_status_content( $mode ); + } + + $output .= '
              '; + } + + return $output; + } + + /** + * Connected Status setting content. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + private function get_connected_status_content( string $mode = '' ): string { + + $output = ''; + $account_name = $this->connect->get_connected_account_name( $mode ); + $connect_url = $this->connect->get_connect_with_stripe_url( $mode ); + $disconnect_url = $this->connect->get_disconnect_stripe_url( $mode ); + + $connected_status = sprintf( + wp_kses( /* translators: %1$s - Stripe account name connected, %2$s - Stripe mode connected (live or test). */ + __( 'Connected to Stripe as %1$s in %2$s Mode.', 'wpforms-lite' ), + [ + 'strong' => [], + 'em' => [], + ] + ), + esc_html( $account_name ), + ucwords( $mode ? $mode : Helpers::get_stripe_mode() ) + ); + + $output .= sprintf( '

              %s

              ', $connected_status ); + $output .= '

              ' . sprintf( + wp_kses( /* translators: %s - Stripe connect URL. */ + __( 'Switch Accounts', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'style' => [], + ], + ] + ), + esc_url( $connect_url ) + ); + $output .= sprintf( + wp_kses( /* translators: %s - Stripe disconnect URL. */ + __( 'Disconnect', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + ], + ] + ), + esc_url( $disconnect_url ) + ) . '

              '; + + return $output; + } + + /** + * Disconnected Status setting content. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + protected function get_disconnected_status_content( $mode = '' ) { + + $connect_url = $this->connect->get_connect_with_stripe_url( $mode ); + $connect_button = sprintf( + wp_kses( /* translators: %s - WPForms.com Stripe documentation article URL. */ + __( 'Securely connect to Stripe with just a few clicks to begin accepting payments! Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + 'class' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/#connect-stripe', 'Settings - Payments', 'Stripe Documentation' ) ) + ); + + return sprintf( + '

              %s

              ', + esc_url( $connect_url ), + esc_attr__( 'Connect with Stripe', 'wpforms-lite' ), + $connect_button + ); + } + + /** + * Credit Card mode description. + * + * @since 1.8.2 + * + * @return string + */ + private function get_credit_card_field_desc_after() { + + return '

              ' . sprintf( + wp_kses( /* translators: %s - WPForms.com Stripe documentation article URL. */ + __( 'Please see our documentation on Stripe Credit Card field modes for full details.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-install-and-use-the-stripe-addon-with-wpforms/#field-modes', 'Settings - Payments', 'Stripe Field Modes' ) ) + ) . '

              '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/WebhookSettings.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/WebhookSettings.php new file mode 100644 index 0000000..85eb479 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Admin/WebhookSettings.php @@ -0,0 +1,322 @@ +maybe_set_default_settings(); + + // Do not display it as long as Stripe account is not connected. + if ( ! Helpers::has_stripe_keys() ) { + return $settings; + } + + $settings['stripe-webhooks-enabled'] = [ + 'id' => 'stripe-webhooks-enabled', + 'name' => esc_html__( 'Enable Webhooks', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + 'default' => true, + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Stripe webhooks documentation. */ + __( 'Stripe uses webhooks to notify WPForms when an event has occurred in your Stripe account. Please see our documentation on Stripe webhooks for full details.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-stripe-webhooks/', 'Stripe Settings', 'Enable webhooks' ) ) + ), + ]; + + // Bail out if $_GET parameter is not passed or webhooks is configured and active. + if ( + ! isset( $_GET['webhooks_settings'] ) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended + Helpers::is_webhook_configured() && + ( new WebhooksHealthCheck() )->is_webhooks_active() + ) { + return $settings; + } + + $settings['stripe-webhooks-communication'] = [ + 'id' => 'stripe-webhooks-communication', + 'name' => esc_html__( 'Webhooks Method', 'wpforms-lite' ), + 'type' => 'radio', + 'default' => wpforms_setting( 'stripe-webhooks-communication', 'rest' ), + 'options' => [ + 'rest' => esc_html__( 'REST API (recommended)', 'wpforms-lite' ), + 'curl' => esc_html__( 'PHP listener', 'wpforms-lite' ), + ], + 'desc' => sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Stripe webhooks documentation. */ + __( 'Choose the method of communication between Stripe and WPForms. If REST API support is disabled for WordPress, use PHP listener. Learn more.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-stripe-webhooks/', 'Stripe Settings', 'Webhook Listener' ) ) + ), + 'class' => $this->get_html_classes(), + ]; + + $settings['stripe-webhooks-endpoint-set'] = [ + 'id' => 'stripe-webhooks-endpoint-set', + 'name' => esc_html__( 'Webhooks Endpoint', 'wpforms-lite' ), + 'url' => Helpers::get_webhook_url(), + 'type' => 'webhook_endpoint', + 'desc' => sprintf( + wp_kses( /* translators: %s - Stripe Webhooks Settings url. */ + __( 'Ensure an endpoint with the above URL is present in the Stripe webhook settings.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + Helpers::get_stripe_mode() === 'test' ? 'https://dashboard.stripe.com/test/workbench/webhooks/create' : 'https://dashboard.stripe.com/workbench/webhooks/create' + ), + 'class' => $this->get_html_classes(), + ]; + + $settings['stripe-webhooks-id-test'] = [ + 'id' => 'stripe-webhooks-id-test', + 'name' => esc_html__( 'Webhooks Test ID', 'wpforms-lite' ), + 'type' => 'text', + 'desc' => $this->get_webhooks_id_desc( 'test' ), + 'class' => $this->get_html_classes(), + ]; + + $settings['stripe-webhooks-secret-test'] = [ + 'id' => 'stripe-webhooks-secret-test', + 'name' => esc_html__( 'Webhooks Test Secret', 'wpforms-lite' ), + 'type' => 'password', + 'desc' => $this->get_webhooks_secret_desc( 'test' ), + 'class' => $this->get_html_classes(), + ]; + + $settings['stripe-webhooks-id-live'] = [ + 'id' => 'stripe-webhooks-id-live', + 'name' => esc_html__( 'Webhooks Live ID', 'wpforms-lite' ), + 'type' => 'text', + 'desc' => $this->get_webhooks_id_desc( 'live' ), + 'class' => $this->get_html_classes(), + ]; + + $settings['stripe-webhooks-secret-live'] = [ + 'id' => 'stripe-webhooks-secret-live', + 'name' => esc_html__( 'Webhooks Live Secret', 'wpforms-lite' ), + 'type' => 'password', + 'desc' => $this->get_webhooks_secret_desc( 'live' ), + 'class' => $this->get_html_classes(), + ]; + + return $settings; + } + + /** + * Show the link to the documentation about the Webhooks ID. + * + * @since 1.8.4 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + private function get_webhooks_id_desc( $mode ) { + + $modes = [ + 'live' => __( 'Live Mode Endpoint ID', 'wpforms-lite' ), + 'test' => __( 'Test Mode Endpoint ID', 'wpforms-lite' ), + ]; + + return sprintf( + wp_kses( /* translators: %1$s - Live Mode Endpoint ID or Test Mode Endpoint ID. %2$s - WPForms.com Stripe documentation article URL. */ + __( 'Retrieve your %1$s from your Stripe webhook settings. Select the endpoint, then click Copy button.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + $modes[ $mode ], + $mode === 'test' ? 'https://dashboard.stripe.com/test/workbench/webhooks' : 'https://dashboard.stripe.com/workbench/webhooks' + ); + } + + /** + * Show the link to the documentation about the Webhooks Secret. + * + * @since 1.8.4 + * + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + private function get_webhooks_secret_desc( $mode ) { + + $modes = [ + 'live' => __( 'Live Mode Signing Secret', 'wpforms-lite' ), + 'test' => __( 'Test Mode Signing Secret', 'wpforms-lite' ), + ]; + + return sprintf( + wp_kses( /* translators: %1$s - Live Mode Signing Secret or Test Mode Signing Secret. %2$s - WPForms.com Stripe documentation article URL. */ + __( 'Retrieve your %1$s from your Stripe webhook settings. Select the endpoint, then click Reveal.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + $modes[ $mode ], + $mode === 'test' ? 'https://dashboard.stripe.com/test/workbench/webhooks' : 'https://dashboard.stripe.com/workbench/webhooks' + ); + } + + /** + * Get HTML classes for the Webhooks section. + * + * @since 1.8.4 + * + * @return array + */ + private function get_html_classes() { + + $classes = [ 'wpforms-settings-stripe-webhooks' ]; + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( isset( $_GET['webhooks_settings'] ) ) { + return $classes; + } + + if ( ! wpforms_setting( 'stripe-webhooks-enabled' ) ) { + $classes[] = 'wpforms-hide'; + } + + return $classes; + } + + /** + * Maybe set default settings. + * + * @since 1.8.4 + */ + private function maybe_set_default_settings() { + + $settings = (array) get_option( 'wpforms_settings', [] ); + $is_updated = false; + + // Enable Stripe webhooks by default if account is connected. + // phpcs:ignore WPForms.PHP.BackSlash.UseShortSyntax + if ( ! isset( $settings['stripe-webhooks-enabled'] ) && Helpers::has_stripe_keys() ) { + $settings['stripe-webhooks-enabled'] = true; + + $is_updated = true; + } + + // Set a default communication method. + if ( ! isset( $settings['stripe-webhooks-communication'] ) ) { + $settings['stripe-webhooks-communication'] = $this->is_rest_api_enabled() ? 'rest' : 'curl'; + + $is_updated = true; + } + + // Save settings only if something is changed. + if ( $is_updated ) { + update_option( 'wpforms_settings', $settings ); + } + } + + /** + * Check if REST API is enabled. + * + * Testing configured webhook endpoint with non-authorised request. + * Based on UsageTracking::is_rest_api_enabled(). + * + * @since 1.8.4 + * + * @return bool + */ + private function is_rest_api_enabled() { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** This filter is documented in wp-includes/class-wp-http-streams.php */ + $sslverify = apply_filters( 'https_local_ssl_verify', false ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $url = add_query_arg( [ 'verify' => 1 ], Helpers::get_webhook_url_for_rest() ); + $response = wp_remote_get( + $url, + [ + 'timeout' => 10, + 'cookies' => [], + 'sslverify' => $sslverify, + 'headers' => [ + 'Cache-Control' => 'no-cache', + ], + ] + ); + + // When testing the REST API, an error was encountered, leave early. + if ( is_wp_error( $response ) ) { + return false; + } + + // When testing the REST API, an unexpected result was returned, leave early. + if ( wp_remote_retrieve_response_code( $response ) !== 200 ) { + return false; + } + + // The REST API did not behave correctly, leave early. + if ( ! wpforms_is_json( wp_remote_retrieve_body( $response ) ) ) { + return false; + } + + // We are all set. Confirm the connection. + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/ApiInterface.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/ApiInterface.php new file mode 100644 index 0000000..2d13cff --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/ApiInterface.php @@ -0,0 +1,134 @@ +{$field} ) ? $this->{$field} : null; + + if ( ! $key ) { + return $var; + } + + if ( is_object( $var ) ) { + return isset( $var->{$key} ) ? $var->{$key} : null; + } + + if ( is_array( $var ) ) { + return isset( $var[ $key ] ) ? $var[ $key ] : null; + } + + return $var; + } + + /** + * Get API configuration array or its key. + * + * @since 1.8.2 + * + * @param string $key Name of the key to retrieve. + * + * @return mixed + */ + public function get_config( $key = '' ) { + + return $this->get_var( 'config', $key ); + } + + /** + * Get saved Stripe customer object or its key. + * + * @since 1.8.2 + * + * @param string $key Name of the key to retrieve. + * + * @return mixed + */ + public function get_customer( $key = '' ) { + + return $this->get_var( 'customer', $key ); + } + + /** + * Get saved Stripe subscription object or its key. + * + * @since 1.8.2 + * + * @param string $key Name of the key to retrieve. + * + * @return mixed + */ + public function get_subscription( $key = '' ) { + + return $this->get_var( 'subscription', $key ); + } + + /** + * Get API error message. + * + * @since 1.8.2 + * + * @return string + */ + public function get_error() { + + return $this->get_var( 'error' ); + } + + /** + * Get API exception. + * + * @since 1.8.2 + * + * @return \Exception + */ + public function get_exception() { + + return $this->get_var( 'exception' ); + } + + /** + * Initial Stripe app configuration. + * + * @since 1.8.2 + */ + public function setup_stripe() { + + Stripe::setAppInfo( + 'WPForms acct_17Xt6qIdtRxnENqV', + WPFORMS_VERSION, + 'https://wpforms.com/addons/stripe-addon/', + 'pp_partner_Dw7IkUZbIlCrtq' + ); + } + + /** + * Set a customer object. + * Check if a customer exists in Stripe, if not creates one. + * + * @since 1.8.2 + * @since 1.8.6 Added customer name argument and allow empty email. + * @since 1.8.8 Added customer billing address argument. + * @since 1.9.6 Added customer phone and metadata arguments. + * + * @param string $email Email to fetch an existing customer. + * @param string $name Customer name. + * @param array $address Customer billing address. + * @param string $phone Customer phone number. + * @param array $metadata Customer metadata. + */ + protected function set_customer( string $email = '', string $name = '', array $address = [], string $phone = '', array $metadata = [] ) { + + if ( ! $email && ! $name && ! $phone ) { + return; + } + + $args = []; + + if ( $name ) { + $args['name'] = $name; + } + + if ( $address ) { + $args['address'] = $address; + } + + if ( $phone ) { + $args['phone'] = $phone; + } + + if ( $metadata ) { + $args['metadata'] = $metadata; + } + + // Create a customer with name only if email is empty. + if ( ! $email ) { + + try { + $customer = Customer::create( $args, Helpers::get_auth_opts() ); + } catch ( \Exception $e ) { + $customer = null; + } + + if ( ! isset( $customer->id ) ) { + return; + } + + $this->customer = $customer; + return; + } + + // Retrieve a customer by email. + try { + $customers = Customer::all( + [ 'email' => $email ], + Helpers::get_auth_opts() + ); + } catch ( \Exception $e ) { + $customers = null; + } + + // Determine whether the customer name/address needs to be updated. + if ( isset( $customers->data[0]->id ) ) { + $this->customer = $customers->data[0]; + + $needUpdateName = ! empty( $name ) && $name !== $this->customer->name; + $needUpdatePhone = ! empty( $phone ) && $phone !== $this->customer->phone; + $needUpdateAddress = false; + + if ( ! $needUpdateName ) { + $existingAddress = isset( $this->customer->address ) && method_exists( $this->customer->address, 'toArray' ) ? $this->customer->address->toArray() : []; + $needUpdateAddress = ! empty( array_diff_assoc( $address, $existingAddress ) ); + } + + // Update customer name/address/phone. + if ( $needUpdateName || $needUpdateAddress || $needUpdatePhone ) { + try { + $this->customer = Customer::update( + $this->customer->id, + $args, + Helpers::get_auth_opts() + ); + } catch ( \Exception $e ) { + wpforms_log( + 'Stripe: Unable to update customer information.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } + } + + return; + } + + // Create a customer with email. + try { + $args['email'] = $email; + + $customer = Customer::create( $args, Helpers::get_auth_opts() ); + } catch ( \Exception $e ) { + $customer = null; + } + + if ( ! isset( $customer->id ) ) { + return; + } + + $this->customer = $customer; + } + + /** + * Set an error message from a Stripe API exception. + * + * @since 1.8.2 + * + * @param \Exception|\WPForms\Vendor\Stripe\Exception\ApiErrorException $e Stripe API exception to process. + */ + protected function set_error_from_exception( $e ) { + + /** + * WPForms set Stripe error from exception. + * + * @since 1.8.2 + * + * @param \Exception|\WPForms\Vendor\Stripe\Exception\ApiErrorException $e Stripe API exception to process. + */ + do_action( 'wpformsstripe_api_common_set_error_from_exception', $e ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( is_a( $e, '\WPForms\Vendor\Stripe\Exception\CardException' ) ) { + $body = $e->getJsonBody(); + $this->error = $body['error']['message']; + + return; + } + + $errors = [ + '\WPForms\Vendor\Stripe\Exception\RateLimitException' => esc_html__( 'Too many requests made to the API too quickly.', 'wpforms-lite' ), + '\WPForms\Vendor\Stripe\Exception\InvalidRequestException' => esc_html__( 'Invalid parameters were supplied to Stripe API.', 'wpforms-lite' ), + '\WPForms\Vendor\Stripe\Exception\AuthenticationException' => esc_html__( 'Authentication with Stripe API failed.', 'wpforms-lite' ), + '\WPForms\Vendor\Stripe\Exception\ApiConnectionException' => esc_html__( 'Network communication with Stripe failed.', 'wpforms-lite' ), + '\WPForms\Vendor\Stripe\Exception\ApiErrorException' => esc_html__( 'Unable to process Stripe payment.', 'wpforms-lite' ), + '\Exception' => esc_html__( 'Unable to process payment.', 'wpforms-lite' ), + ]; + + foreach ( $errors as $error_type => $error_message ) { + + if ( is_a( $e, $error_type ) ) { + $this->error = $error_message; + + return; + } + } + } + + /** + * Set an exception from a Stripe API exception. + * + * @since 1.8.2 + * + * @param \Exception $e Stripe API exception to process. + */ + protected function set_exception( $e ) { + + $this->exception = $e; + } + + /** + * Handle Stripe API exception. + * + * @since 1.8.2 + * + * @param \Exception $e Stripe API exception to process. + */ + protected function handle_exception( $e ) { + + $this->set_exception( $e ); + $this->set_error_from_exception( $e ); + } + + /** + * Get data for every subscription period. + * + * @since 1.8.2 + * + * @return array + */ + protected function get_subscription_period_data() { + + return [ + 'daily' => [ + 'name' => 'daily', + 'interval' => 'day', + 'count' => 1, + 'desc' => esc_html__( 'Daily', 'wpforms-lite' ), + ], + 'weekly' => [ + 'name' => 'weekly', + 'interval' => 'week', + 'count' => 1, + 'desc' => esc_html__( 'Weekly', 'wpforms-lite' ), + ], + 'monthly' => [ + 'name' => 'monthly', + 'interval' => 'month', + 'count' => 1, + 'desc' => esc_html__( 'Monthly', 'wpforms-lite' ), + ], + 'quarterly' => [ + 'name' => 'quarterly', + 'interval' => 'month', + 'count' => 3, + 'desc' => esc_html__( 'Quarterly', 'wpforms-lite' ), + ], + 'semiyearly' => [ + 'name' => 'semiyearly', + 'interval' => 'month', + 'count' => 6, + 'desc' => esc_html__( 'Semi-Yearly', 'wpforms-lite' ), + ], + 'yearly' => [ + 'name' => 'yearly', + 'interval' => 'year', + 'count' => 1, + 'desc' => esc_html__( 'Yearly', 'wpforms-lite' ), + ], + ]; + } + + /** + * Create Stripe plan. + * + * @since 1.8.2 + * + * @param string $id ID of a plan to create. + * @param array $period Subscription period data. + * @param array $args Additional arguments. + * + * @return Plan|null + */ + protected function create_plan( $id, $period, $args ) { + + $name = sprintf( + '%s (%s %s)', + ! empty( $args['settings']['name'] ) ? $args['settings']['name'] : $args['form_title'], + $args['amount'], + $period['desc'] + ); + + /** + * Allow to filter Stripe subscription plan name. + * + * @since 1.8.8 + * + * @param string $name Plan name. + * @param array $period Subscription period data. + * @param array $args Additional arguments. + */ + $name = (string) apply_filters( 'wpforms_integrations_stripe_api_common_create_plan_name', $name, $period, $args ); + + $plan_args = [ + 'amount' => $args['amount'], + 'interval' => $period['interval'], + 'interval_count' => $period['count'], + 'product' => [ + 'name' => sanitize_text_field( $name ), + ], + 'nickname' => sanitize_text_field( $name ), + 'currency' => strtolower( wpforms_get_currency() ), + 'id' => $id, + 'metadata' => [ + 'form_name' => sanitize_text_field( $args['form_title'] ), + 'form_id' => $args['form_id'], + ], + ]; + + try { + $plan = Plan::create( $plan_args, Helpers::get_auth_opts() ); + } catch ( \Exception $e ) { + $plan = null; + } + + return $plan; + } + + /** + * Get Stripe plan ID. + * Check if a plan exists in Stripe, if not creates one. + * + * @since 1.8.2 + * + * @param array $args Arguments needed for getting a valid plan ID. + * + * @return string + */ + protected function get_plan_id( $args ) { + + $period_data = $this->get_subscription_period_data(); + + $period = array_key_exists( $args['settings']['period'], $period_data ) ? $period_data[ $args['settings']['period'] ] : $period_data['yearly']; + + if ( ! empty( $args['settings']['name'] ) ) { + $slug = preg_replace( '/[^a-z0-9\-]/', '', strtolower( str_replace( ' ', '-', $args['settings']['name'] ) ) ); + } else { + $slug = 'form' . $args['form_id']; + } + + $plan_id = sprintf( + '%s_%s_%s', + $slug, + $args['amount'], + $period['name'] + ); + + try { + $plan = Plan::retrieve( $plan_id, Helpers::get_auth_opts() ); + } catch ( \Exception $e ) { + $plan = $this->create_plan( $plan_id, $period, $args ); + } + + return isset( $plan->id ) ? $plan->id : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/DomainManager.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/DomainManager.php new file mode 100644 index 0000000..8933117 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/DomainManager.php @@ -0,0 +1,259 @@ +is_exists_and_valid() ) { + $this->set_status( self::STATUS_ACTIVE ); + + return true; + } + + ( new DomainHealthCheck() )->maybe_schedule_task(); + + if ( + ! $this->maybe_create_domain_association_file() || + ! $this->register() + ) { + $this->set_status( self::STATUS_INACTIVE ); + + return false; + } + + $this->set_status( self::STATUS_ACTIVE ); + + return true; + } + + /** + * Set status. + * + * @since 1.8.6 + * + * @param string $status Status. + */ + private function set_status( $status ) { + + update_option( self::STATUS_OPTION, $status ); + } + + /** + * Determine whether domain is active. + * + * @since 1.8.6 + * + * @return bool + */ + public function is_domain_active() { + + return get_option( self::STATUS_OPTION, self::STATUS_ACTIVE ) === self::STATUS_ACTIVE; + } + + /** + * Register domain. + * + * @since 1.8.6 + * + * @return bool + */ + private function register() { + + try { + $domain = PaymentMethodDomain::create( + [ + 'domain_name' => $this->get_site_domain(), + ], + Helpers::get_auth_opts() + ); + } catch ( Exception $e ) { + wpforms_log( + 'Stripe: Unable to create a domain.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + + return false; + } + + return $this->is_apple_pay_valid( $domain ); + } + + /** + * Check if domain already exists and valid. + * + * @since 1.8.6 + * + * @return bool + */ + private function is_exists_and_valid() { + + try { + $all_domains = PaymentMethodDomain::all( + [ + 'limit' => 100, + ], + Helpers::get_auth_opts() + ); + } catch ( Exception $e ) { + wpforms_log( + 'Stripe: Unable to get list of domains.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + + return false; + } + + if ( empty( $all_domains ) || ! isset( $all_domains->data ) ) { + return false; + } + + $site_domain = $this->get_site_domain(); + + foreach ( $all_domains->data as $domain ) { + + if ( $domain->domain_name !== $site_domain ) { + continue; + } + + if ( ! $this->is_apple_pay_valid( $domain ) ) { + continue; + } + + return true; + } + + return false; + } + + /** + * Verify if Apple Pay active and valid. + * + * @since 1.8.6 + * + * @param object $domain Stripe domain object. + * + * @return bool + */ + private function is_apple_pay_valid( $domain ) { + + return isset( $domain->apple_pay ) && $domain->apple_pay->status === 'active'; + } + + /** + * Get site domain. + * + * @since 1.8.6 + * + * @return string + */ + private function get_site_domain() { + + $site_url_parts = wp_parse_url( site_url() ); + + return $site_url_parts['host']; + } + + /** + * Maybe create domain association file. + * + * @since 1.8.6 + * + * @return bool + */ + private function maybe_create_domain_association_file() { + + $wp_filesystem = File::get_filesystem(); + + if ( is_null( $wp_filesystem ) ) { + return false; + } + + $association_dir = $wp_filesystem->abspath() . '.well-known'; + $file_name = 'apple-developer-merchantid-domain-association'; + $association_file = $association_dir . '/' . $file_name; + + // Return early if file already exists. + if ( $wp_filesystem->exists( $association_file ) ) { + return true; + } + + if ( ! $wp_filesystem->mkdir( $association_dir, 0755 ) ) { + $this->log_error( 'Stripe: Unable to create domain association folder in site root.' ); + + return false; + } + + if ( ! $wp_filesystem->copy( WPFORMS_PLUGIN_DIR . 'src/Integrations/Stripe/' . $file_name, $association_file, true ) ) { + $this->log_error( 'Stripe: Unable to copy domain association file to domain .well-known directory.' ); + + return false; + } + + return true; + } + + /** + * Log error message. + * + * @since 1.8.6 + * + * @param string $error Error message. + */ + private function log_error( $error ) { + + wpforms_log( + $error, + '', + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/PaymentIntents.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/PaymentIntents.php new file mode 100644 index 0000000..96ad0c6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/PaymentIntents.php @@ -0,0 +1,930 @@ +set_config(); + $this->load_card_field(); + $this->hooks(); + + return $this; + } + + /** + * Register hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_filter( 'wpforms_process_bypass_captcha', [ $this, 'bypass_captcha_on_3dsecure_submit' ], 10, 3 ); + } + + /** + * Load Credit Card Field Class. + * + * @since 1.8.2 + */ + private function load_card_field() { + + if ( Helpers::is_payment_element_enabled() ) { + new PaymentElementCreditCard(); + + return; + } + + new StripeCreditCard(); + } + + /** + * Set API configuration. + * + * @since 1.8.2 + */ + public function set_config() { + + $localize_script = [ + 'element_locale' => $this->filter_config_element_locale(), + ]; + + $this->config = [ + 'remote_js_url' => 'https://js.stripe.com/v3/', + 'field_slug' => 'stripe-credit-card', + 'localize_script' => $localize_script, + ]; + + if ( Helpers::is_payment_element_enabled() ) { + $this->set_payment_element_config(); + + return; + } + + $this->set_card_element_config(); + } + + /** + * Set API configuration for Payment Element. + * + * @since 1.8.2 + */ + private function set_payment_element_config() { + + $min = wpforms_get_min_suffix(); + + /** + * This filter allows to overwrite a Payment element appearance object. + * + * @since 1.8.5 + * + * @link https://stripe.com/docs/elements/appearance-api + * + * @param array $appearance Appearance object. + */ + $element_style = (array) apply_filters( 'wpforms_integrations_stripe_api_payment_intents_set_element_appearance', [] ); + + $this->config['localize_script']['element_appearance'] = $element_style; + + $this->config['local_js_url'] = WPFORMS_PLUGIN_URL . "assets/js/integrations/stripe/wpforms-stripe-payment-element{$min}.js"; + $this->config['local_css_url'] = WPFORMS_PLUGIN_URL . "assets/css/integrations/stripe/wpforms-stripe{$min}.css"; + } + + /** + * Set API configuration for Card Element. + * + * @since 1.8.2 + */ + private function set_card_element_config() { + + /** + * This filter allows to overwrite a Style object, which consists of CSS properties nested under objects. + * + * @since 1.8.2 + * + * @link https://stripe.com/docs/js/appendix/style + * + * @param array $styles Style object. + */ + $element_style = (array) apply_filters( 'wpforms_stripe_api_payment_intents_set_config_element_style', [] ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $this->config['localize_script']['element_style'] = $element_style; + $this->config['localize_script']['element_classes'] = [ + 'base' => 'wpforms-stripe-element', + 'complete' => 'wpforms-stripe-element-complete', + 'empty' => 'wpforms-stripe-element-empty', + 'focus' => 'wpforms-stripe-element-focus', + 'invalid' => 'wpforms-stripe-element-invalid', + 'webkitAutofill' => 'wpforms-stripe-element-webkit-autofill', + ]; + + $min = wpforms_get_min_suffix(); + + $this->config['local_js_url'] = WPFORMS_PLUGIN_URL . "assets/js/integrations/stripe/wpforms-stripe-elements{$min}.js"; + } + + /** + * Get stripe locale. + * + * @since 1.8.2 + * + * @return string + */ + public function filter_config_element_locale() { + + /** + * WPForms Stripe Api payment intent element locale. + * + * @since 1.8.2 + * + * @param string $locale Element locale. + */ + $locale = apply_filters( 'wpforms_stripe_api_payment_intents_filter_config_element_locale', '' ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + // Stripe Elements makes its own locale validation, but we add a general sanity check. + return strlen( $locale ) === 2 ? esc_html( $locale ) : 'auto'; + } + + /** + * Initial Stripe app configuration. + * + * @since 1.8.2 + */ + public function setup_stripe() { + + parent::setup_stripe(); + + Stripe::setApiVersion( '2019-05-16' ); + } + + /** + * Set payment tokens from a submitted form data. + * + * @since 1.8.2 + * + * @param array $entry Copy of original $_POST. + */ + public function set_payment_tokens( $entry ) { + + if ( ! empty( $entry['payment_method_id'] ) && empty( $entry['payment_intent_id'] ) ) { + $this->payment_method_id = $entry['payment_method_id']; + } + + if ( ! empty( $entry['payment_intent_id'] ) ) { + $this->payment_intent_id = $entry['payment_intent_id']; + } + + if ( empty( $this->payment_method_id ) && empty( $this->payment_intent_id ) ) { + $this->error = esc_html__( 'Stripe payment stopped, missing both PaymentMethod and PaymentIntent ids.', 'wpforms-lite' ); + } + } + + /** + * Retrieve PaymentIntent object from Stripe. + * + * @since 1.8.2 + * @since 1.8.7 Changed method visibility. + * + * @param string $id PaymentIntent id. + * @param array $args Additional arguments (e.g. 'expand'). + * + * @throws ApiErrorException If the request fails. + * + * @return PaymentIntent|null + */ + public function retrieve_payment_intent( $id, $args = [] ) { + + try { + + $defaults = [ 'id' => $id ]; + + if ( isset( $args['mode'] ) ) { + $auth_opts = [ 'api_key' => Helpers::get_stripe_key( 'secret', $args['mode'] ) ]; + + unset( $args['mode'] ); + } + + $args = wp_parse_args( $args, $defaults ); + + return PaymentIntent::retrieve( $args, $auth_opts ?? Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + + $this->handle_exception( $e ); + } + + return null; + } + + /** + * Process single payment. + * + * @since 1.8.2 + * + * @param array $args Single payment arguments. + * + * @throws ApiErrorException If the request fails. + */ + public function process_single( $args ) { + + if ( $this->payment_method_id ) { + + // Normal flow. + $this->charge_single( $args ); + + } elseif ( $this->payment_intent_id ) { + + // 3D Secure flow. + $this->finalize_single(); + } + } + + /** + * Refund a payment. + * + * @since 1.8.4 + * @since 1.8.8.2 $args param was added. + * + * @param string $payment_intent_id PaymentIntent id. + * @param array $args Additional arguments (e.g. 'mode', 'metadata', 'reason' ). + * + * @return bool + */ + public function refund_payment( string $payment_intent_id, array $args = [] ): bool { + + try { + + $intent = $this->retrieve_payment_intent( $payment_intent_id ); + + if ( ! $intent ) { + return false; + } + + $defaults = [ + 'payment_intent' => $payment_intent_id, + ]; + + if ( isset( $args['mode'] ) ) { + $auth_opts = [ 'api_key' => Helpers::get_stripe_key( 'secret', $args['mode'] ) ]; + + unset( $args['mode'] ); + } + + $args = wp_parse_args( $args, $defaults ); + + $refund = Refund::create( $args, $auth_opts ?? Helpers::get_auth_opts() ); + + if ( ! $refund ) { + return false; + } + } catch ( Exception $e ) { + + $this->handle_exception( $e ); + + return false; + } + + return true; + } + + /** + * Get a charge. + * + * @since 1.8.4 + * + * @param string $charge_id Charge id. + * + * @return Charge|bool + */ + public function get_charge( $charge_id ) { + + try { + + $charge = Charge::retrieve( + $charge_id, + Helpers::get_auth_opts() + ); + + if ( ! $charge ) { + return false; + } + } catch ( Exception $e ) { + + $this->handle_exception( $e ); + + return false; + } + + return $charge; + } + + /** + * Cancel a subscription. + * + * @since 1.8.4 + * + * @param string $subscription_id Subscription id. + * + * @return bool + */ + public function cancel_subscription( $subscription_id ) { + + try { + + $subscription = Subscription::retrieve( + $subscription_id, + Helpers::get_auth_opts() + ); + + if ( ! $subscription ) { + return false; + } + + Subscription::update( + $subscription_id, + [ + 'metadata' => array_merge( + $subscription->metadata->values(), + [ + 'canceled_by' => 'wpforms_dashboard', + ] + ), + ], + Helpers::get_auth_opts() + ); + + $subscription->cancel(); + + } catch ( Exception $e ) { + + $this->handle_exception( $e ); + + return false; + } + + return true; + } + + /** + * Request a single payment charge to be made by Stripe. + * + * @since 1.8.2 + * + * @param array $args Single payment arguments. + */ + protected function charge_single( $args ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + if ( empty( $this->payment_method_id ) ) { + $this->error = esc_html__( 'Stripe payment stopped, missing PaymentMethod id.', 'wpforms-lite' ); + + return; + } + + $defaults = [ + 'payment_method' => $this->payment_method_id, + 'confirm' => true, + 'automatic_payment_methods' => [ + 'enabled' => true, + 'allow_redirects' => 'never', + ], + ]; + + $args = wp_parse_args( $args, $defaults ); + + try { + + if ( isset( $args['customer_email'] ) || isset( $args['customer_name'] ) || isset( $args['customer_phone'] ) ) { + $this->set_customer( $args['customer_email'] ?? '', $args['customer_name'] ?? '', $args['customer_address'] ?? [], $args['customer_phone'] ?? '', $args['customer_metadata'] ?? [] ); + + $args['customer'] = $this->get_customer( 'id' ); + } + + unset( $args['customer_email'], $args['customer_name'], $args['customer_address'], $args['customer_phone'], $args['customer_metadata'] ); + + $this->intent = PaymentIntent::create( $args, Helpers::get_auth_opts() ); + + if ( ! in_array( $this->intent->status, [ 'succeeded', 'requires_action', 'requires_confirmation' ], true ) ) { + $this->error = esc_html__( 'Stripe payment stopped. Invalid PaymentIntent status.', 'wpforms-lite' ); + + return; + } + + if ( $this->intent->status === 'succeeded' ) { + return; + } + + $this->set_bypass_captcha_3dsecure_token( $args ); + + if ( $this->intent->status === 'requires_confirmation' ) { + $this->request_confirm_payment_ajax( $this->intent ); + } + + $this->request_3dsecure_ajax( $this->intent ); + } catch ( Exception $e ) { + + $this->handle_exception( $e ); + } + } + + /** + * Finalize single payment after 3D Secure authorization is finished successfully. + * + * @since 1.8.2 + * + * @throws ApiErrorException If the request fails. + */ + protected function finalize_single() { + + // Saving payment info is important for a future form entry meta update. + $this->intent = $this->retrieve_payment_intent( $this->payment_intent_id, [ 'expand' => [ 'customer' ] ] ); + + if ( $this->intent->status !== 'succeeded' ) { + + // This error is unlikely to happen because the same check is done on a frontend. + $this->error = esc_html__( 'Stripe payment was not confirmed. Please check your Stripe dashboard.', 'wpforms-lite' ); + + return; + } + + // Saving customer and subscription info is important for a future form meta update. + $this->customer = $this->intent->customer; + } + + /** + * Process subscription. + * + * @since 1.8.2 + * + * @param array $args Subscription arguments. + * + * @throws ApiErrorException If the request fails. + */ + public function process_subscription( $args ) { + + if ( $this->payment_method_id ) { + + // Normal flow. + $this->charge_subscription( $args ); + + } elseif ( $this->payment_intent_id ) { + + // 3D Secure flow. + $this->finalize_subscription(); + } + } + + /** + * Request a subscription charge to be made by Stripe. + * + * @since 1.8.2 + * + * @param array $args Subscription payment arguments. + */ + protected function charge_subscription( $args ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + if ( empty( $this->payment_method_id ) ) { + $this->error = esc_html__( 'Stripe subscription stopped, missing PaymentMethod id.', 'wpforms-lite' ); + + return; + } + + $sub_args = [ + 'items' => [ + [ + 'plan' => $this->get_plan_id( $args ), + ], + ], + 'metadata' => [ + 'form_name' => $args['form_title'], + 'form_id' => $args['form_id'], + 'cycles' => $args['cycles'] ?? null, + ], + 'expand' => [ 'latest_invoice.payment_intent' ], + ]; + + if ( isset( $args['application_fee_percent'] ) ) { + $sub_args['application_fee_percent'] = $args['application_fee_percent']; + } + + if ( isset( $args['description'] ) ) { + $sub_args['description'] = $args['description']; + } + + try { + $this->set_customer( $args['email'], $args['customer_name'] ?? '', $args['customer_address'] ?? [], $args['customer_phone'] ?? '', $args['customer_metadata'] ?? [] ); + + $sub_args['customer'] = $this->get_customer( 'id' ); + $sub_args['payment_behavior'] = 'default_incomplete'; + $sub_args['off_session'] = true; + $sub_args['payment_settings'] = [ + 'save_default_payment_method' => 'on_subscription', + ]; + + if ( Helpers::is_link_supported() ) { + $sub_args['payment_settings']['payment_method_types'] = [ 'card', 'link' ]; + } + + // Create the subscription. + $this->subscription = Subscription::create( $sub_args, Helpers::get_auth_opts() ); + + $this->intent = $this->subscription->latest_invoice->payment_intent; + + if ( ! $this->intent || ! in_array( $this->intent->status, [ 'succeeded', 'requires_action', 'requires_confirmation', 'requires_payment_method' ], true ) ) { + $this->error = esc_html__( 'Stripe subscription stopped. invalid PaymentIntent status.', 'wpforms-lite' ); + + return; + } + + if ( $this->intent->status === 'succeeded' ) { + return; + } + + $this->set_bypass_captcha_3dsecure_token( $args ); + + if ( in_array( $this->intent->status , [ 'requires_confirmation', 'requires_payment_method' ], true ) ) { + $this->request_confirm_payment_ajax( $this->intent ); + } + + $this->request_3dsecure_ajax( $this->intent ); + } catch ( Exception $e ) { + + $this->handle_exception( $e ); + } + } + + /** + * Finalize a subscription after 3D Secure authorization is finished successfully. + * + * @since 1.8.2 + * + * @throws ApiErrorException If the request fails. + */ + protected function finalize_subscription() { + + // Saving payment info is important for a future form entry meta update. + $this->intent = $this->retrieve_payment_intent( $this->payment_intent_id, [ 'expand' => [ 'invoice.subscription', 'customer' ] ] ); + + if ( $this->intent->status !== 'succeeded' ) { + + // This error is unlikely to happen because the same check is done on a frontend. + $this->error = esc_html__( 'Stripe subscription was not confirmed. Please check your Stripe dashboard.', 'wpforms-lite' ); + + return; + } + + // Saving customer and subscription info is important for a future form meta update. + $this->customer = $this->intent->customer; + $this->subscription = $this->intent->invoice->subscription; + } + + /** + * Get saved Stripe PaymentIntent object or its key. + * + * @since 1.8.2 + * + * @param string $key Name of the key to retrieve. + * + * @return mixed + */ + public function get_payment( $key = '' ) { + + return $this->get_var( 'intent', $key ); + } + + /** + * Get details from a saved Charge object. + * + * @since 1.8.2 + * + * @param string|array $keys Key or an array of keys to retrieve. + * + * @return array + */ + public function get_charge_details( $keys ) { + + $charge = isset( $this->intent->charges->data[0] ) ? $this->intent->charges->data[0] : null; + + if ( empty( $charge ) || empty( $keys ) ) { + return []; + } + + if ( is_string( $keys ) ) { + $keys = [ $keys ]; + } + + $result = []; + + foreach ( $keys as $key ) { + if ( isset( $charge->payment_method_details->card, $charge->payment_method_details->card->{$key} ) ) { + $result[ $key ] = sanitize_text_field( $charge->payment_method_details->card->{$key} ); + + continue; + } + + if ( isset( $charge->payment_method_details->{$key} ) ) { + $result[ $key ] = sanitize_text_field( $charge->payment_method_details->{$key} ); + + continue; + } + + if ( isset( $charge->billing_details->{$key} ) ) { + $result[ $key ] = sanitize_text_field( $charge->billing_details->{$key} ); + } + } + + return $result; + } + + /** + * Request a frontend 3D Secure authorization from a user. + * + * @since 1.8.2 + * + * @param PaymentIntent $intent PaymentIntent to authorize. + */ + protected function request_3dsecure_ajax( $intent ) { + + if ( ! isset( $intent->status, $intent->next_action->type ) ) { + return; + } + + if ( $intent->status !== 'requires_action' || $intent->next_action->type !== 'use_stripe_sdk' ) { + return; + } + + wp_send_json_success( + [ + 'action_required' => true, + 'payment_intent_client_secret' => $intent->client_secret, + 'payment_method_id' => $this->payment_method_id, + ] + ); + } + + /** + * Request a frontend payment confirmation from a user. + * + * @since 1.8.2 + * + * @param PaymentIntent $intent PaymentIntent to authorize. + */ + protected function request_confirm_payment_ajax( $intent ) { + + wp_send_json_success( + [ + 'action_required' => true, + 'payment_intent_client_secret' => $intent->client_secret, + 'payment_method_id' => $this->payment_method_id, + ] + ); + } + + /** + * Set an encrypted token as a PaymentIntent metadata item. + * + * @since 1.8.2 + * @since 1.9.6 Added $args parameter. + * + * @param array $args Additional arguments. + * + * @throws ApiErrorException In case payment intent save wasn't successful. + */ + private function set_bypass_captcha_3dsecure_token( array $args = [] ) { + + $form_data = wpforms()->obj( 'process' )->form_data; + + // Set token only if captcha is enabled for the form. + if ( empty( $form_data['settings']['recaptcha'] ) ) { + return; + } + + $this->intent->metadata['captcha_3dsecure_token'] = Crypto::encrypt( $this->intent->id ); + $this->intent->metadata['spam_reason'] = $args['metadata']['spam_reason'] ?? null; + + $this->intent->update( $this->intent->id, $this->intent->serializeParameters(), Helpers::get_auth_opts() ); + } + + /** + * Bypass CAPTCHA check on successful 3dSecure check. + * + * @since 1.8.2 + * + * @param bool $is_bypassed True if CAPTCHA is bypassed. + * @param array $entry Form entry data. + * @param array $form_data Form data and settings. + * + * @return bool + * + * @throws ApiErrorException In case payment intent save wasn't successful. + */ + public function bypass_captcha_on_3dsecure_submit( $is_bypassed, $entry, $form_data ) { + + // Firstly, run checks that may prevent bypassing: + // 1) Sanity check to prevent possible tinkering with captcha on non-payment forms. + // 2) All Captcha providers are enabled by the same setting. + if ( + ! Helpers::is_payments_enabled( $form_data ) || + empty( $form_data['settings']['recaptcha'] ) || + empty( $entry['payment_intent_id'] ) + ) { + return $is_bypassed; + } + + // This is executed before payment processing kicks in and fills `$this->intent`. + // PaymentIntent intent has to be retrieved from Stripe instead of getting it from `$this->intent`. + $intent = $this->retrieve_payment_intent( $entry['payment_intent_id'] ); + + if ( empty( $intent->status ) || $intent->status !== 'succeeded' ) { + return $is_bypassed; + } + + $token = ! empty( $intent->metadata['captcha_3dsecure_token'] ) ? $intent->metadata['captcha_3dsecure_token'] : ''; + + if ( Crypto::decrypt( $token ) !== $intent->id ) { + return $is_bypassed; + } + + // Cleanup the token to prevent its repeated usage and declutter the metadata. + $intent->metadata['captcha_3dsecure_token'] = null; + + $intent->update( $intent->id, $intent->serializeParameters(), Helpers::get_auth_opts() ); + + if ( isset( $intent->metadata['spam_reason'] ) ) { + return $is_bypassed; + } + + return true; + } + + /** + * Retrieve Mandate object from Stripe. + * + * @since 1.8.7 + * + * @param string $id Mandate id. + * @param array $args Additional arguments. + * + * @throws ApiErrorException If the request fails. + * + * @return Mandate|null + */ + public function retrieve_mandate( string $id, array $args = [] ) { + + try { + + $defaults = [ 'id' => $id ]; + + if ( isset( $args['mode'] ) ) { + $auth_opts = [ 'api_key' => Helpers::get_stripe_key( 'secret', $args['mode'] ) ]; + + unset( $args['mode'] ); + } + + $args = wp_parse_args( $args, $defaults ); + + return Mandate::retrieve( $args, $auth_opts ?? Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + + wpforms_log( + 'Stripe: Unable to get Mandate.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } + + return null; + } + + /** + * Create Stripe Setup Intent. + * + * @since 1.8.7 + * + * @param array $intent_data Intent data. + * @param array $args Additional arguments. + * + * @throws ApiErrorException If the request fails. + * + * @return SetupIntent|null + */ + public function create_setup_intent( array $intent_data, array $args ) { + + try { + if ( isset( $args['mode'] ) ) { + $auth_opts = [ 'api_key' => Helpers::get_stripe_key( 'secret', $args['mode'] ) ]; + } + + return SetupIntent::create( $intent_data, $auth_opts ?? Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + + wpforms_log( + 'Stripe: Unable to create Setup Intent.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } + + return null; + } + + /** + * Get Country Specs. + * + * @since 1.9.1 + * + * @param string $country Country code. + * @param array $args Additional arguments. + * + * @throws ApiErrorException If the request fails. + * + * @return CountrySpec|null + */ + public function get_country_specs( string $country, array $args = [] ) { + + try { + if ( isset( $args['mode'] ) ) { + $auth_opts = [ 'api_key' => Helpers::get_stripe_key( 'secret', $args['mode'] ) ]; + } + + return CountrySpec::retrieve( $country, $auth_opts ?? Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + + wpforms_log( + 'Stripe: Unable to get Country specs.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } + + return null; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhookRoute.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhookRoute.php new file mode 100644 index 0000000..5b1e595 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhookRoute.php @@ -0,0 +1,369 @@ +hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.4 + */ + private function hooks() { + + if ( $this->is_rest_verification() ) { + add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] ); + + return; + } + + // Do not serve regular page when it seems Stripe Webhooks are still sending requests to disabled CURL endpoint. + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( isset( $_GET[ Helpers::get_webhook_endpoint_data()['fallback'] ] ) + && ( + ! Helpers::is_webhook_enabled() + || Helpers::is_rest_api_set() + ) ) { + add_action( 'wp', [ $this, 'dispatch_with_error_500' ] ); + + return; + } + + if ( ! Helpers::is_webhook_enabled() || ! Helpers::is_webhook_configured() ) { + return; + } + + if ( Helpers::is_rest_api_set() ) { + add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] ); + } else { + add_action( 'wp', [ $this, 'dispatch_with_url_param' ] ); + } + } + + /** + * Register webhook REST route. + * + * @since 1.8.4 + */ + public function register_rest_routes() { + + $methods = [ 'POST' ]; + + if ( $this->is_rest_verification() ) { + $methods[] = 'GET'; + } + + register_rest_route( + Helpers::get_webhook_endpoint_data()['namespace'], + '/' . Helpers::get_webhook_endpoint_data()['route'], + [ + 'methods' => $methods, + 'callback' => [ $this, 'dispatch_stripe_webhooks_payload' ], + 'show_in_index' => false, + 'permission_callback' => '__return_true', + ] + ); + } + + /** + * Dispatch Stripe webhooks payload for the url param. + * + * @since 1.8.4 + */ + public function dispatch_with_url_param() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! isset( $_GET[ Helpers::get_webhook_endpoint_data()['fallback'] ] ) ) { + return; + } + + $this->dispatch_stripe_webhooks_payload(); + } + + /** + * Dispatch Stripe webhooks payload for the url param with error 500. + * + * Runs when url param is not configured or webhooks are not enabled at all. + * + * @since 1.8.4 + */ + public function dispatch_with_error_500() { + + $this->response = esc_html__( 'It seems to be request to Stripe PHP Listener method handler but the site is not configured to use it.', 'wpforms-lite' ); + $this->response_code = 500; + + $this->respond(); + } + + /** + * Dispatch Stripe webhooks payload. + * + * @since 1.8.4 + */ + public function dispatch_stripe_webhooks_payload() { + + if ( $this->is_rest_verification() ) { + wp_send_json_success(); + } + + try { + $this->payload = file_get_contents( 'php://input' ); + $event = Webhook::constructEvent( + $this->payload, + $this->get_webhook_signature(), + $this->get_webhook_signing_secret() + ); + + // Update webhooks site health status. + WebhooksHealthCheck::save_status( WebhooksHealthCheck::ENDPOINT_OPTION, WebhooksHealthCheck::STATUS_OK ); + WebhooksHealthCheck::save_status( WebhooksHealthCheck::SIGNATURE_OPTION,WebhooksHealthCheck::STATUS_OK ); + + $this->event_type = $event->type; + $this->response = 'WPForms Stripe: ' . $this->event_type . ' event received.'; + + $processed = $this->process_event( $event ); + + $this->response_code = $processed ? 200 : 202; + + $this->respond(); + } catch ( AmountMismatchException $e ) { + + $this->response_code = 202; + $this->response = $e->getMessage(); + + $this->respond(); + } catch ( SignatureVerificationException $e ) { + + WebhooksHealthCheck::save_status( WebhooksHealthCheck::SIGNATURE_OPTION, WebhooksHealthCheck::STATUS_ERROR ); + + $this->response_code = 500; + $this->response = $e->getMessage(); + + $this->respond(); + } catch ( Exception $e ) { + $this->handle_exception( $e ); + + $this->response = $e->getMessage(); + $this->response_code = $e instanceof BadMethodCallException ? 501 : 500; + + $this->respond(); + } + } + + /** + * Get webhook stripe signature. + * + * @since 1.8.4 + * + * @throws RuntimeException When Stripe signature is not set. + * + * @return string + */ + private function get_webhook_signature() { + + if ( ! isset( $_SERVER['HTTP_STRIPE_SIGNATURE'] ) ) { + throw new RuntimeException( 'Stripe signature is not set.' ); + } + + return $_SERVER['HTTP_STRIPE_SIGNATURE']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash + } + + /** + * Get webhook signing secret. + * + * @since 1.8.4 + * + * @throws RuntimeException When webhook signing secret is not set. + * + * @return string + */ + private function get_webhook_signing_secret() { + + $secret = wpforms_setting( 'stripe-webhooks-secret-' . Helpers::get_stripe_mode() ); + + if ( empty( $secret ) ) { + throw new RuntimeException( 'Webhook signing secret is not set.' ); + } + + return $secret; + } + + /** + * Process Stripe event. + * + * @since 1.8.4 + * + * @param StripeEvent $event Stripe event. + * + * @return bool True if event has handling class, false otherwise. + */ + private function process_event( StripeEvent $event ) { + + $webhooks = self::get_event_whitelist(); + + // Event can't be handled. + if ( ! isset( $webhooks[ $event->type ] ) || ! class_exists( $webhooks[ $event->type ] ) ) { + return false; + } + + $handler = new $webhooks[ $event->type ](); + + $handler->setup( $event ); + + return $handler->handle(); + } + + /** + * Get event whitelist. + * + * @since 1.8.4 + * + * @return array + */ + private static function get_event_whitelist() { + + return [ + 'charge.refunded' => Webhooks\ChargeRefunded::class, + 'charge.refund.updated' => Webhooks\ChargeRefundUpdated::class, + 'invoice.payment_succeeded' => Webhooks\InvoicePaymentSucceeded::class, + 'invoice.created' => Webhooks\InvoiceCreated::class, + 'charge.succeeded' => Webhooks\ChargeSucceeded::class, + 'customer.subscription.created' => Webhooks\CustomerSubscriptionCreated::class, + 'customer.subscription.updated' => Webhooks\CustomerSubscriptionUpdated::class, + 'customer.subscription.deleted' => Webhooks\CustomerSubscriptionDeleted::class, + ]; + } + + /** + * Check if rest verification is requested. + * + * @since 1.8.4 + * + * @return bool + */ + private function is_rest_verification() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return isset( $_GET['verify'] ) && $_GET['verify'] === '1'; + } + + /** + * Respond to the request. + * + * @since 1.8.4 + */ + private function respond() { + + $this->log_webhook(); + + wp_die( esc_html( $this->response ), '', (int) $this->response_code ); + } + + /** + * Log webhook request. + * + * @since 1.8.4 + */ + private function log_webhook() { + + // log only if WP_DEBUG_LOG and WPFORMS_WEBHOOKS_DEBUG are set to true. + if ( + ! defined( 'WPFORMS_WEBHOOKS_DEBUG' ) || + ! WPFORMS_WEBHOOKS_DEBUG || + ! defined( 'WP_DEBUG_LOG' ) || + ! WP_DEBUG_LOG + ) { + return; + } + + // If it is set to explictly display logs on output, return: this would make response to Stripe malformed. + if ( defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY ) { + return; + } + + $webhook_log = maybe_serialize( + [ + 'event_type' => $this->event_type, + 'response_code' => $this->response_code, + 'response' => $this->response, + 'payload' => $this->payload, + ] + ); + + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log + error_log( $webhook_log ); + } + + /** + * Get webhooks events list. + * + * @since 1.8.4 + * + * @return array + */ + public static function get_webhooks_events_list() { + + return array_keys( self::get_event_whitelist() ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Base.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Base.php new file mode 100644 index 0000000..895a171 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Base.php @@ -0,0 +1,167 @@ +data = $event->data; + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.4 + */ + private function hooks() { + + add_filter( 'wpforms_current_user_can', '__return_true' ); + } + + /** + * Handle the Webhook's data. + * + * @since 1.8.4 + * + * return bool + */ + abstract public function handle(); + + /** + * Set payment object. + * + * Set payment object from database. If payment not registered yet in DB, throw exception. + * + * @since 1.8.4 + */ + protected function set_payment() { + + // Determine whether a legacy API version bundled into the addon is still used. + // When it's dropped from the addon, this line can be safely removed. + $is_legacy_api = Helpers::is_pro() && absint( wpforms_setting( 'stripe-api-version' ) ) === 2; + + if ( $is_legacy_api && ! isset( $this->data->object->id ) ) { + return; // Payment id not found. + } + + if ( ! $is_legacy_api && ! isset( $this->data->object->payment_intent ) ) { + return; // Payment intent not found. + } + + $transaction_id = $is_legacy_api ? $this->data->object->id : $this->data->object->payment_intent; + + $this->db_payment = wpforms()->obj( 'payment' )->get_by( 'transaction_id', $transaction_id ); + } + + /** + * Delay webhook handling. + * + * Stripe sends some webhooks before payment is saved in our database. + * Sometimes it is required to wait until form submission has ended and payment is saved in the database. + * + * @since 1.8.4 + */ + protected function delay() { + + sleep( 5 ); + } + + /** + * Check if previous statuses are matched. + * + * If webhook payload contains previous payment status and it's not matching with the status in the database, return false. + * + * @since 1.8.4 + * + * @depecated 1.9.3 + * + * @return bool + */ + protected function is_previous_statuses_matched(): bool { + + _deprecated_function( __METHOD__, '1.9.3 of the WPForms plugin' ); + + $db_stripe = [ + 'partrefund' => 'refunded', + 'refunded' => 'refunded', + 'completed' => 'succeeded', + 'pending' => 'processing', + ]; + + if ( + isset( $this->data->previous_attributes->status ) && + in_array( $this->data->previous_attributes->status, $db_stripe, true ) && + $db_stripe[ $this->db_payment->status ] !== $this->data->previous_attributes->status + ) { + return false; + } + + return true; + } + + /** + * Update payment method details. + * + * @since 1.8.7 + * + * @param int $payment_id Payment ID. + * @param array $details Charge details. + * + * @noinspection PhpMissingParamTypeInspection + */ + protected function update_payment_method_details( $payment_id, $details ) { + + $meta['method_type'] = ! empty( $details->type ) ? sanitize_text_field( $details->type ) : ''; + + if ( ! empty( $details->card->last4 ) ) { + $meta['method_type'] = $meta['method_type'] ?? 'card'; + $meta['credit_card_last4'] = $details->card->last4; + $meta['credit_card_method'] = $details->card->brand; + $meta['credit_card_expires'] = $details->card->exp_month . '/' . $details->card->exp_year; + } + + $payment_meta_obj = wpforms()->obj( 'payment_meta' ); + + if ( ! $payment_meta_obj ) { + return; + } + + $payment_meta_obj->bulk_add( $payment_id, $meta ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefundUpdated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefundUpdated.php new file mode 100644 index 0000000..301a9e4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefundUpdated.php @@ -0,0 +1,187 @@ +set_payment(); + + if ( ! $this->db_payment ) { + return false; + } + + // Proceed only if the refund status is 'canceled'. + if ( $this->data->object->status !== 'canceled' ) { + return false; + } + + $charge = ( new PaymentIntents() )->get_charge( $this->data->object->charge ); + + if ( ! isset( $charge->amount_refunded ) ) { + return false; + } + + $db_refunded_amount = $this->get_refunded_amount(); + $currency = strtoupper( $this->data->object->currency ); + $decimals_amount = wpforms_get_currency_multiplier( $currency ); + + // We need to format amount since it doesn't contain decimals, e.g. 525 instead of 5.25. + $refunded_amount = $charge->amount_refunded / $decimals_amount; + $canceled_refund_amount = $this->data->object->amount / $decimals_amount; + + // Prevent duplicate webhook processing. + if ( ! $this->is_valid_refund_amount( $refunded_amount, $db_refunded_amount, $canceled_refund_amount ) ) { + throw new AmountMismatchException( 'Refund amount mismatch detected. Possible reasons: duplicate webhook processing or webhooks received out of order.' ); + } + + $status = $this->is_full_refund( $canceled_refund_amount, $db_refunded_amount ) ? 'completed' : 'partrefund'; + + $this->update_payment_status( $status ); + $this->update_payment_meta( $refunded_amount ); + $this->add_refund_cancel_log( $canceled_refund_amount, $currency ); + + return true; + } + + /** + * Validate the refund amount to prevent duplicate webhook processing. + * + * @since 1.9.2 + * + * @param float $refunded_amount Refunded amount. + * @param float $db_refunded_amount Refunded amount from the database. + * @param float $canceled_refund_amount Canceled refund amount. + * + * @return bool + */ + private function is_valid_refund_amount( float $refunded_amount, float $db_refunded_amount, float $canceled_refund_amount ): bool { + + return $refunded_amount === ( $db_refunded_amount - $canceled_refund_amount ); + } + + /** + * Check if this is a full refund. + * + * @since 1.9.2 + * + * @param float $canceled_refund_amount Canceled refund amount. + * @param float $db_refunded_amount Refunded amount from the database. + * + * @return bool + */ + private function is_full_refund( float $canceled_refund_amount, float $db_refunded_amount ): bool { + + return $canceled_refund_amount >= $db_refunded_amount; + } + + /** + * Update the payment status. + * + * @since 1.9.2 + * + * @param string $status Available values: 'completed', 'partrefund'. + * + * @throws RuntimeException If payment status not updated. + */ + private function update_payment_status( string $status ) { + + if ( ! in_array( $status, [ 'completed', 'partrefund' ], true ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + $updated_payment = wpforms()->obj( 'payment' )->update( + $this->db_payment->id, + [ + 'status' => $status, + ] + ); + + if ( ! $updated_payment ) { + throw new RuntimeException( 'Payment not updated' ); + } + } + + /** + * Update the refunded amount meta. + * + * @since 1.9.2 + * + * @param float $refunded_amount Refunded amount. + * + * @throws RuntimeException If payment meta not updated. + */ + private function update_payment_meta( float $refunded_amount ) { + + $updated_payment_meta = wpforms()->obj( 'payment_meta' )->update_or_add( + $this->db_payment->id, + 'refunded_amount', + $refunded_amount + ); + + if ( ! $updated_payment_meta ) { + throw new RuntimeException( 'Payment meta not updated' ); + } + } + + /** + * Add a log entry for the canceled refund. + * + * @since 1.9.2 + * + * @param float $canceled_refund_amount Canceled refund amount. + * @param string $currency Currency code. + */ + private function add_refund_cancel_log( float $canceled_refund_amount, string $currency ) { + + $formatted_amount = wpforms_format_amount( $canceled_refund_amount, true, $currency ); + + wpforms()->obj( 'payment_meta' )->add_log( + $this->db_payment->id, + sprintf( + 'Stripe refund cancelled from the Stripe dashboard. Cancelled refund amount: %1$s.', + $formatted_amount + ) + ); + } + + /** + * Get refunded amount from the database. + * + * @since 1.9.2 + * + * @return float + */ + private function get_refunded_amount(): float { + + $refunded_amount = wpforms()->obj( 'payment_meta' )->get_last_by( + 'refunded_amount', + $this->db_payment->id + ); + + return $refunded_amount ? $refunded_amount->meta_value : 0; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefunded.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefunded.php new file mode 100644 index 0000000..9b8cb5f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeRefunded.php @@ -0,0 +1,114 @@ +set_payment(); + + if ( ! $this->db_payment ) { + return false; + } + + $currency = strtoupper( $this->data->object->currency ); + $this->decimals_amount = wpforms_get_currency_multiplier( $currency ); + + $charge = ( new PaymentIntents() )->get_charge( $this->data->object->id ); + + if ( isset( $charge->refunds->data[0]->metadata->refunded_by ) && $charge->refunds->data[0]->metadata->refunded_by === 'wpforms_dashboard' ) { + return false; + } + + $event_previous_refunded_amount = isset( $this->data->previous_attributes->amount_refunded ) ? $this->data->previous_attributes->amount_refunded : 0; + + if ( $this->get_refunded_amount() !== $event_previous_refunded_amount ) { + throw new AmountMismatchException( 'Refund amount mismatch detected. Possible reasons: duplicate webhook processing or webhooks received out of order.' ); + } + + // We need to format amount since it doesn't contain decimals, e.g. 525 instead of 5.25. + $refunded_amount = $this->data->object->amount_refunded / $this->decimals_amount; + $last_refund_amount = $this->get_last_refund_amount() / $this->decimals_amount; + $last_refund_formatted = wpforms_format_amount( $last_refund_amount, true, $currency ); + $log = sprintf( 'Stripe payment refunded from the Stripe dashboard. Refunded amount: %1$s.', $last_refund_formatted ); + + if ( ! UpdateHelpers::refund_payment( $this->db_payment, $refunded_amount, $log ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + return true; + } + + /** + * Get refunded amount from the database. + * + * @since 1.9.3 + * + * @return int The refunded amount from the database, in cents. + */ + private function get_refunded_amount() { + + $refunded_amount = wpforms()->obj( 'payment_meta' )->get_last_by( + 'refunded_amount', + $this->db_payment->id + ); + + if ( ! $refunded_amount ) { + return 0; + } + + return (int) ( $refunded_amount->meta_value * $this->decimals_amount ); + } + + /** + * Get last refund amount. + * + * @since 1.8.4 + * + * @return int Last refund amount in cents. + */ + private function get_last_refund_amount() { + + if ( isset( $this->data->object->refunds->data[0]->amount ) ) { + return $this->data->object->refunds->data[0]->amount; + } + + if ( isset( $this->data->previous_attributes->amount_refunded ) ) { + return $this->data->object->amount_refunded - $this->data->previous_attributes->amount_refunded; + } + + return $this->data->object->amount_refunded - $this->get_refunded_amount(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeSucceeded.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeSucceeded.php new file mode 100644 index 0000000..9fe2d40 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/ChargeSucceeded.php @@ -0,0 +1,83 @@ +delay(); + + $this->set_payment(); + + if ( ! $this->db_payment ) { + + // Handle a case when charge.succeeded was sent before invoice.payment_succeeded to update a payment method details. + if ( ! empty( $this->data->object->invoice ) ) { + $db_renewal = ( new Queries() )->get_renewal_by_invoice_id( $this->data->object->invoice ); + + if ( is_null( $db_renewal ) || empty( $this->data->object->payment_method_details ) ) { + return false; + } + + $this->update_payment_method_details( $db_renewal->id, $this->data->object->payment_method_details ); + } + + return false; + } + + // Update payment method details to keep them up to date. + if ( ! empty( $this->data->object->payment_method_details ) ) { + $this->update_payment_method_details( $this->db_payment->id, $this->data->object->payment_method_details ); + } + + if ( $this->db_payment->status !== 'processed' ) { + return false; + } + + $currency = strtoupper( $this->data->object->currency ); + $db_amount = wpforms_format_amount( $this->db_payment->total_amount ); + $amount = wpforms_format_amount( $this->data->object->amount_captured / wpforms_get_currency_multiplier( $currency ) ); + + if ( $amount !== $db_amount || ! $this->data->object->paid ) { + return false; + } + + $updated_payment = wpforms()->obj( 'payment' )->update( + $this->db_payment->id, + [ + 'status' => 'completed', + 'date_updated_gmt' => gmdate( 'Y-m-d H:i:s' ), + ] + ); + + if ( ! $updated_payment ) { + throw new RuntimeException( 'Payment not updated' ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $this->db_payment->id, + 'Stripe payment was completed.' + ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionCreated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionCreated.php new file mode 100644 index 0000000..fbd02b9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionCreated.php @@ -0,0 +1,44 @@ +delay(); + + $payment = wpforms()->obj( 'payment' )->get_by( 'subscription_id', $this->data->object->id ); + + if ( ! $payment ) { + return false; + } + + if ( ! wpforms()->obj( 'payment' )->update( $payment->id, [ 'subscription_status' => 'active' ] ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $payment->id, + 'Stripe subscription was set to active.' + ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionDeleted.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionDeleted.php new file mode 100644 index 0000000..09b5ead --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionDeleted.php @@ -0,0 +1,42 @@ +obj( 'payment' )->get_by( 'subscription_id', $this->data->object->id ); + + if ( ! $payment ) { + return false; + } + + if ( isset( $this->data->object->metadata->canceled_by ) && $this->data->object->metadata->canceled_by === 'wpforms_dashboard' ) { + return false; + } + + if ( ! UpdateHelpers::cancel_subscription( $payment->id, 'Stripe subscription cancelled from the Stripe dashboard.' ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionUpdated.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionUpdated.php new file mode 100644 index 0000000..a29739d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/CustomerSubscriptionUpdated.php @@ -0,0 +1,59 @@ +delay(); + + if ( + ( isset( $this->data->object->metadata->canceled_by ) && $this->data->object->metadata->canceled_by === 'wpforms_dashboard' ) || + ! ValueValidator::is_valid( $this->data->object->status, 'status' ) + ) { + return false; + } + + $payment = wpforms()->obj( 'payment' )->get_by( 'subscription_id', $this->data->object->id ); + + if ( ! $payment ) { + return false; + } + + if ( + $payment->subscription_status === $this->data->object->status || + ( ! empty( $this->data->previous_attributes->status ) && $this->data->previous_attributes->status !== $payment->subscription_status ) + ) { + return true; + } + + if ( ! wpforms()->obj( 'payment' )->update( $payment->id, [ 'subscription_status' => $this->data->object->status ] ) ) { + throw new RuntimeException( 'Payment not updated' ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $payment->id, + sprintf( 'Stripe subscription was set to %1$s.', $this->data->object->status ) + ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Exceptions/AmountMismatchException.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Exceptions/AmountMismatchException.php new file mode 100644 index 0000000..0ea51eb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/Exceptions/AmountMismatchException.php @@ -0,0 +1,25 @@ +data->object->billing_reason ) || $this->data->object->billing_reason !== 'subscription_cycle' ) { + return false; // Webhook handler for Invoice.Create supports only billing_reason = subscription_cycle. + } + + $original_subscription = ( new Queries() )->get_subscription( $this->data->object->subscription ); + + if ( is_null( $original_subscription ) ) { + return false; // Original subscription not found. + } + + $renewal = ( new Queries() )->get_renewal_by_invoice_id( $this->data->object->id ); + + if ( ! is_null( $renewal ) ) { + return false; // Renewal already exists. + } + + $renewal_id = $this->insert_renewal( $original_subscription ); + + if ( ! $renewal_id ) { + throw new RuntimeException( 'Subscription renewal not saved in database' ); + } + + $this->insert_renewal_meta( $renewal_id, $original_subscription ); + + wpforms()->obj( 'payment_meta' )->add_log( + $renewal_id, + sprintf( + 'Stripe renewal was created (Invoice ID: %1$s).', + $this->data->object->id + ) + ); + + $this->finalize_invoice(); + + return true; + } + + /** + * Insert renewal. + * + * @since 1.8.4 + * + * @param object $original_subscription Original subscription. + * + * @return int|false + */ + private function insert_renewal( $original_subscription ) { + + $currency = strtoupper( $this->data->object->currency ); + $amount = $this->data->object->amount_due / wpforms_get_currency_multiplier( $currency ); + + return wpforms()->obj( 'payment' )->add( + [ + 'mode' => $original_subscription->mode, + 'form_id' => isset( $original_subscription->form_id ) ? $original_subscription->form_id : 0, + 'entry_id' => isset( $original_subscription->entry_id ) ? $original_subscription->entry_id : 0, + 'status' => 'pending', + 'type' => 'renewal', + 'gateway' => 'stripe', + 'title' => $original_subscription->title, + 'subtotal_amount' => $amount, + 'total_amount' => $amount, + 'currency' => $currency, + 'transaction_id' => '', + 'subscription_id' => $original_subscription->subscription_id, + 'customer_id' => $original_subscription->customer_id, + 'date_created_gmt' => gmdate( 'Y-m-d H:i:s', $this->data->object->lines->data[0]->period->start ), + 'date_updated_gmt' => gmdate( 'Y-m-d H:i:s' ), + ] + ); + } + + /** + * Insert renewal meta. + * + * @since 1.8.4 + * + * @param int $renewal_id Renewal ID. + * @param object $original_subscription Original subscription. + */ + private function insert_renewal_meta( $renewal_id, $original_subscription ) { + + $meta = $this->copy_meta_from_db( $original_subscription->id ); + + $meta['invoice_id'] = $this->data->object->id; + $meta['customer_email'] = isset( $this->data->object->customer_email ) ? $this->data->object->customer_email : ''; + + wpforms()->obj( 'payment_meta' )->bulk_add( $renewal_id, $meta ); + } + + /** + * Copy meta from original subscription. + * + * @since 1.8.4 + * + * @param int $original_subscription_id Original subscription ID. + * + * @return array + */ + private function copy_meta_from_db( $original_subscription_id ) { + + $all_meta = wpforms()->obj( 'payment_meta' )->get_all( $original_subscription_id ); + $db_meta_keys = [ + 'fields', + 'subscription_period', + 'coupon_value', + 'coupon_info', + 'coupon_id', + ]; + $meta = []; + + foreach ( $db_meta_keys as $key ) { + if ( isset( $all_meta[ $key ]->value ) ) { + $meta[ $key ] = $all_meta[ $key ]->value; + } + } + + return $meta; + } + + /** + * Finalize invoice. + * + * @since 1.8.4 + * + * @throws RuntimeException If invoice not finalized. + */ + private function finalize_invoice() { + + try { + $invoice = new Invoice(); + $invoice = $invoice->retrieve( $this->data->object->id, Helpers::get_auth_opts() ); + + if ( empty( $invoice->finalized_at ) ) { + $invoice->finalizeInvoice(); + } + } catch ( Exception $e ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + throw new RuntimeException( esc_html( $e->getMessage() ) ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/InvoicePaymentSucceeded.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/InvoicePaymentSucceeded.php new file mode 100644 index 0000000..94c237d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/Webhooks/InvoicePaymentSucceeded.php @@ -0,0 +1,92 @@ +data->object->billing_reason ) || $this->data->object->billing_reason !== 'subscription_cycle' ) { + return false; // Webhook handler for Invoice.PaymentSucceeded with reason subscription_cycle not implemented yet. + } + + if ( $this->data->object->paid !== true ) { + return false; // Subscription not paid, so we are not going to proceed with update. + } + + $db_renewal = ( new Queries() )->get_renewal_by_invoice_id( $this->data->object->id ); + + if ( is_null( $db_renewal ) ) { + return false; // Newest renewal not found. + } + + $currency = strtoupper( $this->data->object->currency ); + $amount = $this->data->object->amount_paid / wpforms_get_currency_multiplier( $currency ); + + wpforms()->obj( 'payment' )->update( + $db_renewal->id, + [ + 'total_amount' => $amount, + 'subtotal_amount' => $amount, + 'status' => 'completed', + 'transaction_id' => $this->data->object->payment_intent, + ] + ); + + $this->copy_meta_from_payment_intent( $db_renewal->id ); + + wpforms()->obj( 'payment_meta' )->add_log( + $db_renewal->id, + sprintf( + 'Stripe renewal was successfully paid. (Payment Intent ID: %1$s)', + $this->data->object->payment_intent + ) + ); + + return true; + } + + /** + * Copy meta from payment intent. + * + * @since 1.8.4 + * + * @param int $renewal_id Renewal ID. + * + * @noinspection PhpMissingParamTypeInspection + */ + private function copy_meta_from_payment_intent( $renewal_id ) { + + try { + $payment_intent = PaymentIntent::retrieve( $this->data->object->payment_intent, Helpers::get_auth_opts() ); + } catch ( ApiErrorException $e ) { + $payment_intent = null; + } + + if ( ! isset( $payment_intent->charges->data[0]->payment_method_details ) ) { + return; + } + + $this->update_payment_method_details( $renewal_id, $payment_intent->charges->data[0]->payment_method_details ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhooksManager.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhooksManager.php new file mode 100644 index 0000000..2201de0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Api/WebhooksManager.php @@ -0,0 +1,298 @@ +get_id(); + + // It's not valid if either endpoint ID or secret is empty. + if ( empty( $webhook_id ) || empty( $this->get_secret() ) ) { + return false; + } + + $webhook = $this->get( $webhook_id ); + + if ( + ! $webhook || + $webhook->status !== 'enabled' || + $webhook->url !== Helpers::get_webhook_url() || + ! empty( array_diff( WebhookRoute::get_webhooks_events_list(), $webhook->enabled_events ) ) // Has unconfigured events. + ) { + return false; + } + + return true; + } + + /** + * Retrieve a webhook endpoint ID. + * + * @since 1.8.4 + * + * @return string + */ + public function get_id() { + + return wpforms_setting( 'stripe-webhooks-id-' . Helpers::get_stripe_mode(), '' ); + } + + /** + * Retrieve a webhook endpoint secret. + * + * @since 1.8.4 + * + * @return string + */ + private function get_secret() { + + return wpforms_setting( 'stripe-webhooks-secret-' . Helpers::get_stripe_mode(), '' ); + } + + /** + * Retrieve a webhook endpoint object. + * + * @since 1.8.4 + * + * @param string $webhook_id Endpoint ID. + * + * @return WebhookEndpoint|null + */ + private function get( $webhook_id ) { + + try { + $webhook = WebhookEndpoint::retrieve( $webhook_id, Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + return null; + } + + return $webhook; + } + + /** + * Update a webhook endpoint. + * + * @since 1.8.4 + * + * @param string $id Endpoint ID. + * @param array $params Params. + * + * @return WebhookEndpoint|null + */ + public function update( $id, $params ) { + + try { + $webhook = WebhookEndpoint::update( $id, $params, Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + return null; + } + + return $webhook; + } + + /** + * Connect webhook endpoint. + * + * Remove existing endpoints and create a new one. + * + * @since 1.8.4 + * + * @return bool + */ + public function connect(): bool { + + // Prevent duplication of endpoints. + if ( $this->is_valid() ) { + return true; + } + + // Clean up existing endpoints. + $this->cleanup(); + + // Always create a new because you can't get a secret for existing. + $webhook = $this->create(); + + // Register AS task. + ( new WebhooksHealthCheck() )->maybe_schedule_task(); + + // Store endpoint ID and secret. + if ( $webhook ) { + $this->save_settings( $webhook ); + + return true; + } + + return false; + } + + /** + * Cleanup endpoints. + * + * @since 1.8.4 + * + * @return bool + */ + private function cleanup() { + + try { + $webhooks = $this->get_all(); + + if ( ! $webhooks ) { + return false; + } + + $valid_urls = $this->get_valid_urls(); + + foreach ( $webhooks as $wh ) { + if ( in_array( $wh->url, $valid_urls, true ) ) { + $wh->delete(); + } + } + } catch ( Exception $e ) { + return false; + } + + return true; + } + + /** + * Retrieve possible endpoint URLs. + * + * @since 1.8.4 + * + * @return array + */ + private function get_valid_urls() { + + $urls = [ + Helpers::get_webhook_url_for_rest(), + Helpers::get_webhook_url_for_curl(), + ]; + + if ( defined( 'WPFORMS_STRIPE_WHURL' ) ) { + $urls[] = WPFORMS_STRIPE_WHURL; + } + + return $urls; + } + + /** + * Create a webhook endpoint. + * + * @since 1.8.4 + * + * @return WebhookEndpoint|bool + */ + private function create() { + + try { + $webhook = WebhookEndpoint::create( + [ + 'url' => Helpers::get_webhook_url(), + 'enabled_events' => WebhookRoute::get_webhooks_events_list(), + 'connect' => false, + 'api_version' => self::STRIPE_API_VERSION, + 'description' => sprintf( + 'WPForms endpoint (%1$s mode)', + Helpers::get_stripe_mode() + ), + ], + Helpers::get_auth_opts() + ); + } catch ( Exception $e ) { + return false; + } + + return $webhook; + } + + /** + * Get list of all webhook endpoints. + * + * @since 1.8.4 + * + * @return array + */ + private function get_all(): array { + + try { + $webhooks = WebhookEndpoint::all( [], Helpers::get_auth_opts() ); + } catch ( Exception $e ) { + return []; + } + + return isset( $webhooks->data ) ? (array) $webhooks->data : []; + } + + /** + * Save webhook settings. + * + * @since 1.8.4 + * + * @param WebhookEndpoint $webhook Webhook endpoint. + */ + private function save_settings( $webhook ) { + + $mode = Helpers::get_stripe_mode(); + $settings = (array) get_option( 'wpforms_settings', [] ); + + // Save webhooks endpoint ID. + $settings[ 'stripe-webhooks-id-' . $mode ] = sanitize_text_field( $webhook->id ); + + // Store webhooks endpoint secret, but it is not defined on ::update() call. + if ( ! empty( $webhook->secret ) ) { + $settings[ 'stripe-webhooks-secret-' . $mode ] = sanitize_text_field( $webhook->secret ); + + WebhooksHealthCheck::save_status( WebhooksHealthCheck::SIGNATURE_OPTION, WebhooksHealthCheck::STATUS_OK ); + } + + WebhooksHealthCheck::save_status( WebhooksHealthCheck::ENDPOINT_OPTION, WebhooksHealthCheck::STATUS_OK ); + + // Enable webhooks setting shouldn't be rewritten. + if ( ! isset( $settings['stripe-webhooks-enabled'] ) ) { + $settings['stripe-webhooks-enabled'] = true; + } + + update_option( 'wpforms_settings', $settings ); + } + + /** + * Disconnect webhook endpoints. + * + * @since 1.9.8 + * + * @return void + */ + public function disconnect(): void { + + $this->cleanup(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/DomainHealthCheck.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/DomainHealthCheck.php new file mode 100644 index 0000000..9da1644 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/DomainHealthCheck.php @@ -0,0 +1,160 @@ +domain_manager = new DomainManager(); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.6 + */ + private function hooks() { + + add_action( 'admin_notices', [ $this, 'admin_notice' ] ); + add_action( self::ACTION, [ $this, 'process_domain_status_action' ] ); + } + + /** + * Schedule domain health check. + * + * @since 1.8.6 + */ + public function maybe_schedule_task() { + + /** + * Allow customers to disable domain health check task. + * + * @since 1.8.6 + * + * @param bool $cancel True if task needs to be canceled. + */ + $is_canceled = (bool) apply_filters( 'wpforms_integrations_stripe_domain_health_check_cancel', false ); + + $tasks = wpforms()->obj( 'tasks' ); + + // Bail early in some instances. + if ( + $is_canceled || + ! Helpers::has_stripe_keys() || + $tasks->is_scheduled( self::ACTION ) + ) { + return; + } + + /** + * Filters the domain health check interval. + * + * @since 1.8.6 + * + * @param int $interval Interval in seconds. + */ + $interval = (int) apply_filters( 'wpforms_integrations_stripe_domain_health_check_interval', DAY_IN_SECONDS ); + + $tasks->create( self::ACTION ) + ->recurring( time(), $interval ) + ->register(); + } + + /** + * Process domain status. + * + * @since 1.8.6 + */ + public function process_domain_status_action() { + + // Bail out if Stripe account is not connected. + if ( ! Helpers::has_stripe_keys() ) { + return; + } + + $this->domain_manager->validate(); + } + + /** + * Display notice about issues with domain. + * + * @since 1.8.6 + */ + public function admin_notice() { + + // Only load if we are actually on the settings page. + if ( ! wpforms_is_admin_page( 'settings' ) ) { + return; + } + + // Bail out if Stripe account is not connected. + if ( ! Helpers::has_stripe_keys() ) { + return; + } + + if ( $this->domain_manager->is_domain_active() ) { + return; + } + + $notice = sprintf( + wp_kses( /* translators: %1$s - Stripe.com URL for domains registration documentation. */ + __( 'Heads up! It looks like there\'s a problem with your domain verification, and Stripe Apple Pay may stop working. If this notice does not disappear in a day, please register it manually.' , 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( 'https://stripe.com/docs/payments/payment-methods/pmd-registration?platform=dashboard#register-your-domain' ) + ); + + Notice::error( + $notice, + [ + 'dismiss' => true, + 'slug' => self::NOTICE_ID, + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/PaymentElementCreditCard.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/PaymentElementCreditCard.php new file mode 100644 index 0000000..0954a68 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/PaymentElementCreditCard.php @@ -0,0 +1,363 @@ +'; + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + // Save form data for future usage in the class. + $this->form_data = $form_data; + + unset( $properties['label']['attr']['for'] ); + + return $properties; + } + + /** + * Advanced section field options. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + protected function advanced_options( $field ) { + + // Link Email field map. + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'link_email', + 'value' => esc_html__( 'Link Email', 'wpforms-lite' ), + 'tooltip' => esc_html__( 'Select an Email field to autofill your customers’ payment information using Link.', 'wpforms-lite' ), + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'link_email', + 'value' => ! empty( $field['link_email'] ) ? esc_attr( $field['link_email'] ) : '', + 'options' => $this->get_email_field_options(), + 'class' => 'wpforms-field-map-select', + 'data' => [ + 'field-map-allowed' => 'email', + 'field-map-placeholder' => esc_attr__( 'Stripe Credit Card Email', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'link_email', + 'content' => $output, + ] + ); + + $output = $this->field_element( + 'label', + $field, + [ + 'slug' => 'sublabel_position', + 'value' => esc_html__( 'Sublabel Position', 'wpforms-lite' ), + ], + false + ); + + $output .= $this->field_element( + 'select', + $field, + [ + 'slug' => 'sublabel_position', + 'value' => ! empty( $field['sublabel_position'] ) ? esc_attr( $field['sublabel_position'] ) : '', + 'options' => [ + 'above' => esc_html__( 'Above', 'wpforms-lite' ), + 'floating' => esc_html__( 'Floating', 'wpforms-lite' ), + ], + ], + false + ); + + $this->field_element( + 'row', + $field, + [ + 'slug' => 'sublabel_position', + 'content' => $output, + ] + ); + } + + /** + * Array of available form email fields. + * + * @since 1.8.2 + * + * @return array + */ + private function get_email_field_options() { + + $fields = [ '' => esc_html__( 'Stripe Credit Card Email', 'wpforms-lite' ) ]; + $email_options = wpforms_get_form_fields( $this->form_data, [ 'email' ] ); + + if ( empty( $email_options ) ) { + return $fields; + } + + foreach ( $email_options as $id => $email_option ) { + $fields[ $id ] = ! empty( $email_option['label'] ) + ? esc_attr( $email_option['label'] ) + : sprintf( /* translators: %d - field ID. */ + esc_html__( 'Field #%d', 'wpforms-lite' ), + absint( $id ) + ); + } + + return $fields; + } + + /** + * Field preview inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Label. + $this->field_preview_option( 'label', $field ); + + $sublabels = $this->get_sublabels(); + $sublabel_position = ! empty( $field['sublabel_position'] ) ? $field['sublabel_position'] : 'above'; + $hide_link_email = ! empty( $field['link_email'] ) ? 'wpforms-hidden' : ''; + ?> + +
              + +
              + input_preview( $sublabels['number'] ); ?> +
              +
              +
              +
              + input_preview( $sublabels['exp'] ); ?> +
              +
              + input_preview( $sublabels['cvv'] ); ?> + +
              +
              +
              + + get_country_dropdown_preview( $field ); ?> +
              +
              + + field_preview_option( 'description', $field ); + } + + /** + * Input preview html output. + * + * @since 1.8.2 + * + * @param string $label Label text. + */ + private function input_preview( $label ) { + + echo ''; + echo ''; + } + + /** + * Get Sublabels strings. + * + * @since 1.8.2 + * + * @return array + */ + private function get_sublabels() { + + return [ + 'email' => __( 'Email', 'wpforms-lite' ), + 'number' => __( 'Card Number', 'wpforms-lite' ), + 'exp' => __( 'Expiration', 'wpforms-lite' ), + 'cvv' => __( 'CVC', 'wpforms-lite' ), + 'country' => __( 'Country', 'wpforms-lite' ), + ]; + } + + /** + * Get Country dropdown preview. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + private function get_country_dropdown_preview( $field ) { + + $display_label = ! empty( $field['sublabel_position'] ) && $field['sublabel_position'] === 'above'; + $sublabels = $this->get_sublabels(); + + echo ''; + } + + /** + * Block editor field preview. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + private function block_editor_field_display( $field ) { + + $hide_sub_label = ! empty( $field['sublabel_hide'] ); + $sublabel_position = ! empty( $field['sublabel_position'] ) ? $field['sublabel_position'] : 'above'; + $field_class = 'wpforms-field-row wpforms-field-row-responsive wpforms-field-' . sanitize_html_class( $field['size'] ); + $no_columns_class = 'wpforms-field-row wpforms-no-columns wpforms-field-' . sanitize_html_class( $field['size'] ); + $sublabels = $this->get_sublabels(); + ?> + +
              + + +
              + block_editor_input_preview( $sublabels['email'], $sublabel_position, $hide_sub_label ); ?> +
              + + +
              + block_editor_input_preview( $sublabels['number'], $sublabel_position, $hide_sub_label, '1234 1234 1234 1234' ); ?> +
              +
              + +
              +
              + block_editor_input_preview( $sublabels['exp'], $sublabel_position, $hide_sub_label, 'MM / YY' ); ?> +
              +
              + block_editor_input_preview( $sublabels['cvv'], $sublabel_position, $hide_sub_label, 'CVC' ); ?> + +
              +
              + +
              + + + + get_country_dropdown_preview( $field ); ?> +
              +
              + '; + + return; + } + + if ( $position === 'above' ) { + echo ''; + + return; + } + + echo ''; + } + + /** + * Field display on the form front-end. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + if ( $this->field_display_errors( $form_data ) ) { + return; + } + + if ( wpforms_is_editor_page() ) { + $this->block_editor_field_display( $field ); + + return; + } + + $form_id = absint( $form_data['id'] ); + + $hide_sub_label = ! empty( $field['sublabel_hide'] ) ? 'wpforms-sublabel-hide' : ''; + $sublabel_position = ! empty( $field['sublabel_position'] ) ? $field['sublabel_position'] : 'above'; + $link_email = ! empty( $field['link_email'] ) ? $field['link_email'] : ''; + + // Row wrapper. + echo '
              '; + + if ( ! $link_email ) { + echo ''; + } + + echo '
              '; + echo ''; + echo '
              '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/StripeCreditCard.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/StripeCreditCard.php new file mode 100644 index 0000000..5c8ee7b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Fields/StripeCreditCard.php @@ -0,0 +1,269 @@ +'; + + + /** + * Define additional field properties. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_properties( $properties, $field, $form_data ) { + + unset( $properties['inputs']['primary'], $properties['label']['attr']['for'] ); + + $form_id = absint( $form_data['id'] ); + $field_id = absint( $field['id'] ); + + $props = [ + 'inputs' => [ + 'number' => [ + 'attr' => [ + 'name' => '', + 'value' => '', + ], + 'block' => [ + 'wpforms-field-stripe-credit-card-number', + ], + 'class' => [ + 'wpforms-field-stripe-credit-card-cardnumber', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Card', 'wpforms-lite' ), + 'position' => 'after', + ], + ], + 'name' => [ + 'attr' => [ + 'name' => 'wpforms[stripe-credit-card-cardname]', + 'value' => '', + 'placeholder' => ! empty( $field['cardname_placeholder'] ) ? $field['cardname_placeholder'] : '', + ], + 'block' => [ + 'wpforms-field-stripe-credit-card-name', + ], + 'class' => [ + 'wpforms-field-stripe-credit-card-cardname', + ], + 'data' => [], + 'id' => "wpforms-{$form_id}-field_{$field_id}-cardname", + 'required' => ! empty( $field['required'] ) ? 'required' : '', + 'sublabel' => [ + 'hidden' => ! empty( $field['sublabel_hide'] ), + 'value' => esc_html__( 'Name on Card', 'wpforms-lite' ), + 'position' => 'after', + ], + ], + ], + ]; + + $properties = array_merge_recursive( $properties, $props ); + + // If this field is required we need to make some adjustments. + if ( ! empty( $field['required'] ) ) { + + // Add required class if needed (for multi-page validation). + $properties['inputs']['number']['class'][] = 'wpforms-field-required'; + $properties['inputs']['name']['class'][] = 'wpforms-field-required'; + } + + return $properties; + } + + /** + * Advanced section field options. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + protected function advanced_options( $field ) { + + // Card Name. + $cardname_placeholder = ! empty( $field['cardname_placeholder'] ) ? $field['cardname_placeholder'] : ''; + + printf( '
              ', absint( $field['id'] ), absint( $field['id'] ) ); + $this->field_element( + 'label', + $field, + [ + 'slug' => 'cardname_placeholder', + 'value' => esc_html__( 'Name on Card Placeholder Text', 'wpforms-lite' ), + ] + ); + echo '
              '; + printf( '', absint( $field['id'] ), absint( $field['id'] ), esc_attr( $cardname_placeholder ), absint( $field['id'] ) ); + echo '
              '; + echo '
              '; + + // Custom CSS classes. + $this->field_option( 'css', $field ); + } + + /** + * Field preview inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_preview( $field ) { + + // Define data. + $card_placeholder = esc_html__( 'Card number', 'wpforms-lite' ); + $name_placeholder = ! empty( $field['cardname_placeholder'] ) ? $field['cardname_placeholder'] : ''; + + // Label. + $this->field_preview_option( 'label', $field ); + ?> + +
              + +
              + +
              +
              + + +
              +
              MM / YY   CVC
              +
              + +
              + +
              +
              + + +
              +
              +
              + + field_preview_option( 'description', $field ); + } + + /** + * Field display on the form front-end. + * + * @since 1.8.2 + * + * @param array $field Field data and settings. + * @param array $deprecated Deprecated field attributes. Use field properties. + * @param array $form_data Form data and settings. + */ + public function field_display( $field, $deprecated, $form_data ) { + + if ( $this->field_display_errors( $form_data ) ) { + return; + } + + if ( wpforms_is_editor_page() ) { + $this->block_editor_field_display( $field ); + + return; + } + + // Define data. + $number = ! empty( $field['properties']['inputs']['number'] ) ? $field['properties']['inputs']['number'] : []; + $name = ! empty( $field['properties']['inputs']['name'] ) ? $field['properties']['inputs']['name'] : []; + + // Row wrapper. + echo '
              '; + + echo '
              '; + $this->field_display_sublabel( 'number', 'before', $field ); + printf( + '
              ', + wpforms_html_attributes( $number['id'], $number['class'], $number['data'], $number['attr'] ), + esc_html( $number['required'] ) + ); + // Hidden input is needed for styling and validation. + echo ''; + $this->field_display_sublabel( 'number', 'after', $field ); + $this->field_display_error( 'number', $field ); + echo '
              '; + + echo '
              '; + + // Row wrapper. + echo '
              '; + + // Name. + echo '
              '; + $this->field_display_sublabel( 'name', 'before', $field ); + printf( + '', + wpforms_html_attributes( $name['id'], $name['class'], $name['data'], $name['attr'] ), + esc_html( $name['required'] ) + ); + $this->field_display_sublabel( 'name', 'after', $field ); + $this->field_display_error( 'name', $field ); + echo '
              '; + + echo '
              '; + } + + /** + * Block editor field preview. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + private function block_editor_field_display( $field ) { + + $field_class = 'wpforms-field-row wpforms-no-columns wpforms-field-' . sanitize_html_class( $field['size'] ); + $card_placeholder = esc_html__( 'Card number', 'wpforms-lite' ); + $name_placeholder = ! empty( $field['properties']['inputs']['name']['attr']['placeholder'] ) ? $field['properties']['inputs']['name']['attr']['placeholder'] : ''; + ?> + +
              + field_display_sublabel( 'number', 'before', $field ); ?> + +
              + + +
              +
              MM / YY   CVC
              + field_display_sublabel( 'number', 'after', $field ); ?> +
              +
              + field_display_sublabel( 'name', 'before', $field ); ?> + + field_display_sublabel( 'name', 'after', $field ); ?> +
              + + name = esc_html__( 'Stripe Credit Card', 'wpforms-lite' ); + $this->keywords = esc_html__( 'store, ecommerce, credit card, pay, payment, debit card', 'wpforms-lite' ); + $this->type = 'stripe-credit-card'; + $this->icon = 'fa-credit-card'; + $this->order = 90; + $this->group = 'payment'; + + // Define additional field properties. + add_filter( 'wpforms_field_properties_stripe-credit-card', [ $this, 'field_properties' ], 5, 3 ); + add_filter( 'wpforms_builder_fields_options', [ $this, 'pre_fields_options' ] ); + + // Set field to the required by default. + add_filter( 'wpforms_field_new_required', [ $this, 'default_required' ], 10, 2 ); + + add_action( 'wpforms_builder_enqueues', [ $this, 'builder_enqueues' ] ); + add_filter( 'wpforms_builder_strings', [ $this, 'builder_js_strings' ], 10, 2 ); + add_filter( 'wpforms_builder_field_button_attributes', [ $this, 'field_button_attributes' ], 10, 3 ); + add_filter( 'wpforms_pro_fields_entry_preview_is_field_support_preview_stripe-credit-card_field', [ $this, 'entry_preview_availability' ], 10, 4 ); + add_filter( 'wpforms_field_new_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + add_filter( 'wpforms_field_preview_display_duplicate_button', [ $this, 'field_display_duplicate_button' ], 10, 2 ); + add_filter( 'wpforms_field_display_sublabel_skip_for', [ $this, 'skip_sublabel_for_attribute' ], 10, 3 ); + } + + /** + * Define if "Duplicate" button has to be displayed on field preview in a Form Builder. + * + * @since 1.8.5 + * + * @param bool $display Display switch. + * @param array $field Field settings. + * + * @return bool + */ + public function field_display_duplicate_button( $display, $field ): bool { + + return Helpers::get_field_slug() === $field['type'] ? false : $display; + } + + /** + * Pre Builder Field Options. + * + * @since 1.8.2 + * + * @param array $form Current form post data. + */ + public function pre_fields_options( $form ): void { + + if ( ! isset( $form->post_content ) ) { + $this->form_data = []; + + return; + } + + $this->form_data = $form ? wpforms_decode( $form->post_content ) : []; + + if ( ! is_array( $this->form_data ) ) { + $this->form_data = []; + } + } + + /** + * Field options panel inside the builder. + * + * @since 1.8.2 + * + * @param array $field Field settings. + */ + public function field_options( $field ) { + + $this->field_option( 'basic-options', $field, [ 'markup' => 'open' ] ); + + // Label. + $this->field_option( 'label', $field ); + + // Description. + $this->field_option( 'description', $field ); + + // Required toggle. + $this->field_option( 'required', $field ); + + $this->field_option( 'basic-options', $field, [ 'markup' => 'close' ] ); + + $this->field_option( 'advanced-options', $field, [ 'markup' => 'open' ] ); + + // Size. + $this->field_option( 'size', $field ); + + $this->advanced_options( $field ); + + // Hide Label. + $this->field_option( 'label_hide', $field ); + + // Hide sub labels. + $this->field_option( 'sublabel_hide', $field ); + + $this->field_option( 'advanced-options', $field, [ 'markup' => 'close' ] ); + } + + /** + * Disallow dynamic population. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_dynamic_population_allowed( $properties, $field ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + return false; + } + + /** + * Disallow fallback population. + * + * @since 1.8.2 + * + * @param array $properties Field properties. + * @param array $field Current field specific data. + * + * @return bool + */ + public function is_fallback_population_allowed( $properties, $field ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + return false; + } + + /** + * Default is required. + * + * @since 1.8.2 + * + * @param bool $required Required status, true is required. + * @param array $field Field settings. + * + * @return bool + */ + public function default_required( $required, $field ): bool { + + return $field['type'] === $this->type ? true : $required; + } + + /** + * Enqueue assets for the builder. + * + * @since 1.8.2 + * + * @param string $view Current view. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function builder_enqueues( $view ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-builder-stripe-card-field', + WPFORMS_PLUGIN_URL . "assets/css/integrations/stripe/builder-stripe{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_script( + 'wpforms-builder-stripe-card-field', + WPFORMS_PLUGIN_URL . "assets/js/integrations/stripe/admin-builder-stripe-card-field{$min}.js", + [ 'jquery', 'wpforms-builder' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Add our localized strings to be available in the form builder. + * + * @since 1.8.2 + * + * @param array $strings Form builder JS strings. + * @param array $form Form data. + * + * @return array + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function builder_js_strings( $strings, $form ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $strings['stripe_ajax_required'] = wp_kses( + __( '

              AJAX form submissions are required when using the Stripe Credit Card field.

              To proceed, please go to Settings » General » Advanced and check Enable AJAX form submission.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'strong' => [], + ] + ); + + $strings['stripe_keys_required'] = wp_kses( + __( '

              Stripe account connection is required when using the Stripe Credit Card field.

              To proceed, please go to WPForms Settings » Payments » Stripe and press Connect with Stripe button.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'strong' => [], + ] + ); + + $strings['payments_enabled_required'] = wp_kses( + __( '

              Stripe Payments must be enabled when using the Stripe Credit Card field.

              To proceed, please go to Payments » Stripe and check Enable Stripe payments.

              ', 'wpforms-lite' ), + [ + 'p' => [], + 'strong' => [], + ] + ); + + return $strings; + } + + /** + * Define additional "Add Field" button attributes. + * + * @since 1.8.2 + * + * @param array $attributes Button attributes. + * @param array $field Field settings. + * @param array $form_data Form data and settings. + * + * @return array + */ + public function field_button_attributes( $attributes, $field, $form_data ): array { + + if ( Helpers::get_field_slug() !== $field['type'] ) { + return $attributes; + } + + if ( Helpers::has_stripe_field( $form_data ) ) { + $attributes['atts']['disabled'] = 'true'; + + return $attributes; + } + + if ( ! Helpers::has_stripe_keys() ) { + $attributes['class'][] = 'warning-modal'; + $attributes['class'][] = 'stripe-keys-required'; + } + + return $attributes; + } + + /** + * Currently validation happens on the front end. We do not do + * generic server-side validation because we do not allow the card + * details to POST to the server. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value (raw data). + * @param array $form_data Form data and settings. + */ + public function validate( $field_id, $field_submit, $form_data ): void { + } + + /** + * Format field. + * + * @since 1.8.2 + * + * @param int $field_id Field ID. + * @param array $field_submit Submitted field value. + * @param array $form_data Form data and settings. + */ + public function format( $field_id, $field_submit, $form_data ): void { + + // Define data. + $name = ! empty( $form_data['fields'][ $field_id ]['label'] ) ? $form_data['fields'][ $field_id ]['label'] : ''; + + // Set final field details. + wpforms()->obj( 'process' )->fields[ $field_id ] = [ + 'name' => sanitize_text_field( $name ), + 'value' => '', + 'id' => absint( $field_id ), + 'type' => $this->type, + ]; + } + + /** + * The field value availability for the entry preview field. + * + * @since 1.8.2 + * + * @param bool $is_supported The field availability. + * @param string $value The submitted Credit Card detail. + * @param array $field Field data. + * @param array $form_data Form data. + * + * @return bool + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function entry_preview_availability( $is_supported, $value, $field, $form_data ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + return ! empty( $value ) && $value !== '-'; + } + + /** + * Maybe display errors before the field. + * + * @since 1.8.2 + * + * @param array $form_data Form data and settings. + * + * @return bool + */ + private function field_display_errors( $form_data ): bool { + + // Display warning for non SSL pages. + if ( ! is_ssl() ) { + echo '
              '; + esc_html_e( 'This page is insecure. Credit Card field should be used for testing purposes only.', 'wpforms-lite' ); + echo '
              '; + } + + if ( ! Helpers::has_stripe_keys() ) { + echo '
              '; + esc_html_e( 'Credit Card field is disabled, Stripe keys are missing.', 'wpforms-lite' ); + echo '
              '; + + return true; + } + + if ( ! Helpers::has_stripe_enabled( [ $form_data ] ) ) { + echo '
              '; + esc_html_e( 'Credit Card field is disabled, Stripe payments are not enabled in the form settings.', 'wpforms-lite' ); + echo '
              '; + + return true; + } + + return false; + } + + /** + * Do not add the `for` attribute to certain sublabels. + * + * @since 1.8.9 + * + * @param bool $skip Whether to skip the `for` attribute. + * @param string $key Input key. + * @param array $field Field data and settings. + * + * @return bool + */ + public function skip_sublabel_for_attribute( $skip, $key, $field ): bool { + + if ( $field['type'] !== $this->type ) { + return $skip; + } + + if ( $key === 'number' ) { + return true; + } + + return $skip; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Frontend.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Frontend.php new file mode 100644 index 0000000..3a1c85a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Frontend.php @@ -0,0 +1,277 @@ +api = $api; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_action( 'wpforms_frontend_container_class', [ $this, 'form_container_class' ], 10, 2 ); + add_action( 'wpforms_wp_footer', [ $this, 'enqueues' ] ); + add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_assets' ] ); + add_action( 'elementor/frontend/after_enqueue_styles', [ $this, 'elementor_enqueues' ] ); + add_action( 'enqueue_block_assets', [ $this, 'enqueue_block_assets' ] ); + add_filter( 'register_block_type_args', [ $this, 'register_block_type_args' ], 20, 2 ); + + if ( wpforms_is_divi_editor() ) { + add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_divi_styles' ], 12 ); + } + } + + /** + * Add class to form container if Stripe is enabled. + * + * @since 1.8.2 + * + * @param array $class Array of form classes. + * @param array $form_data Form data of current form. + * + * @return array + */ + public function form_container_class( $class, $form_data ) { + + if ( ! Helpers::has_stripe_field( $form_data ) ) { + return $class; + } + + if ( ! Helpers::has_stripe_keys() ) { + return $class; + } + + if ( Helpers::is_payments_enabled( $form_data ) ) { + $class[] = 'wpforms-stripe'; + } + + return $class; + } + + /** + * Enqueue assets in the frontend if Stripe is in use on the page. + * + * @since 1.8.2 + * + * @param array $forms Form data of forms on current page. + */ + public function enqueues( $forms ) { + + if ( + ! Helpers::has_stripe_enabled( $forms ) || + ! Helpers::has_stripe_field( $forms, true ) + ) { + return; + } + + $this->enqueue_assets(); + } + + /** + * Enqueue block editor assets. + * + * @since 1.8.6 + */ + public function enqueue_block_assets() { + + if ( ! is_admin() ) { + return; + } + + $this->enqueue_styles(); + } + + /** + * Enqueue assets on the frontend. + * + * @since 1.8.2 + */ + public function enqueue_assets() { + + $min = wpforms_get_min_suffix(); + + if ( ! Helpers::has_stripe_keys() ) { + return; + } + + $config = $this->api->get_config(); + $in_footer = ! wpforms_is_frontend_js_header_force_load(); + + wp_enqueue_script( + 'wpforms-generic-utils', + WPFORMS_PLUGIN_URL . "assets/js/share/utils{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + $in_footer + ); + + wp_enqueue_script( + 'stripe-js', + $config['remote_js_url'], + [ 'jquery' ], + null, // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion + $in_footer + ); + + wp_enqueue_script( + self::HANDLE, + $config['local_js_url'], + [ 'jquery', 'stripe-js', 'wpforms-generic-utils' ], + WPFORMS_VERSION, + $in_footer + ); + + wp_localize_script( + self::HANDLE, + 'wpforms_stripe', + [ + 'publishable_key' => Helpers::get_stripe_key( 'publishable' ), + 'data' => $config['localize_script'], + 'i18n' => [ + 'empty_details' => esc_html__( 'Please fill out payment details to continue.', 'wpforms-lite' ), + 'element_load_error' => esc_html__( 'Payment Element failed to load. Stripe API responded with the message:', 'wpforms-lite' ), + 'token_already_used' => esc_html__( 'The security token has expired. Please resubmit the form.', 'wpforms-lite' ), + ], + 'styles_enabled' => (int) wpforms_setting( 'disable-css', '1' ) !== 3, + ] + ); + + $this->enqueue_styles(); + } + + /** + * Set editor style for block type editor. + * + * @since 1.8.2 + * + * @param array $args Array of arguments for registering a block type. + * @param string $block_type Block type name including namespace. + */ + public function register_block_type_args( $args, $block_type ) { + + if ( $block_type !== 'wpforms/form-selector' || ! is_admin() ) { + return $args; + } + + $config = $this->api->get_config(); + + if ( ! isset( $config['local_css_url'] ) ) { + return $args; + } + + wp_register_style( + 'wpforms-stripe', + $config['local_css_url'], + [ $args['editor_style'] ], + WPFORMS_VERSION + ); + + $args['editor_style'] = self::HANDLE; + + return $args; + } + + /** + * Enqueue styles for Elementor preview. + * + * @since 1.8.4.1 + * + * @noinspection PhpUndefinedFieldInspection + */ + public function elementor_enqueues() { + + if ( + ! class_exists( Plugin::class ) || + empty( Plugin::instance()->preview ) || + ! Plugin::instance()->preview->is_preview_mode() + ) { + return; + } + + $this->enqueue_styles(); + } + + /** + * Enqueue styles. + * + * @since 1.8.4.1 + * @since 1.9.4 Become public for the action callback. + */ + public function enqueue_styles(): void { + + if ( (int) wpforms_setting( 'disable-css', '1' ) === 3 ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + self::HANDLE, + WPFORMS_PLUGIN_URL . "assets/css/integrations/stripe/wpforms-stripe{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Enqueue Stripe integration styles for Divi Builder. + * + * @since 1.9.9 + */ + public function enqueue_divi_styles(): void { + + if ( (int) wpforms_setting( 'disable-css', '1' ) === 3 ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + self::HANDLE, + WPFORMS_PLUGIN_URL . "assets/css/integrations/stripe/divi/wpforms-stripe{$min}.css", + [], + WPFORMS_VERSION + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Helpers.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Helpers.php new file mode 100644 index 0000000..f9f3f52 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Helpers.php @@ -0,0 +1,522 @@ +api->get_config( 'field_slug' ) : 'stripe-credit-card'; + } + + /** + * Determine whether the Stripe field is in the form. + * + * @since 1.8.2 + * + * @param array $forms Form data (e.g. forms on a current page). + * @param bool $multiple Must be 'true' if $forms contain multiple forms. + * + * @return bool + */ + public static function has_stripe_field( $forms, $multiple = false ) { + + $slug = self::get_field_slug(); + + if ( empty( $slug ) ) { + return false; + } + + return wpforms_has_field_type( $slug, $forms, $multiple ) !== false; + } + + /** + * Determine whether the Stripe is enabled in forms used on the page. + * + * @since 1.8.2 + * + * @param array $forms Form data (e.g. forms on a current page). + * + * @return bool + */ + public static function has_stripe_enabled( $forms ) { + + foreach ( $forms as $form ) { + if ( self::is_payments_enabled( $form ) ) { + return true; + } + } + + return false; + } + + /** + * Determine whether Stripe keys are configured on the Payments settings page. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode to check the keys for. + * + * @return bool + */ + public static function has_stripe_keys( $mode = '' ) { + + $mode = self::validate_stripe_mode( $mode ); + + return wpforms_setting( "stripe-{$mode}-secret-key" ) && wpforms_setting( "stripe-{$mode}-publishable-key" ); + } + + /** + * Validate Stripe mode name to ensure it's either 'live' or 'test'. + * If given mode is invalid, fetches current Stripe mode. + * + * @since 1.8.2 + * + * @param string $mode Stripe mode to validate. + * + * @return string + */ + public static function validate_stripe_mode( $mode ) { + + if ( empty( $mode ) || ! in_array( $mode, self::CONNECTION_MODES, true ) ) { + return self::get_stripe_mode(); + } + + return $mode; + } + + /** + * Get Stripe mode from the WPForms settings. + * + * @since 1.8.2 + * + * @return string + */ + public static function get_stripe_mode() { + + return wpforms_setting( 'stripe-test-mode' ) ? 'test' : 'live'; + } + + /** + * Get Stripe key from the WPForms settings. + * + * @since 1.8.2 + * + * @param string $type Key type (e.g. 'publishable' or 'secret'). + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return string + */ + public static function get_stripe_key( $type, $mode = '' ) { + + $mode = self::validate_stripe_mode( $mode ); + + if ( ! in_array( $type, [ 'publishable', 'secret' ], true ) ) { + return ''; + } + + $key = wpforms_setting( "stripe-{$mode}-{$type}-key" ); + + if ( ! empty( $key ) && is_string( $key ) ) { + return sanitize_text_field( $key ); + } + + return ''; + } + + /** + * Set Stripe key from the WPForms settings. + * + * @since 1.8.2 + * + * @param string $value Key string to set. + * @param string $type Key type (e.g. 'publishable' or 'secret'). + * @param string $mode Stripe mode (e.g. 'live' or 'test'). + * + * @return bool + */ + public static function set_stripe_key( $value, $type, $mode = '' ) { + + $mode = self::validate_stripe_mode( $mode ); + + if ( ! in_array( $type, [ 'publishable', 'secret' ], true ) ) { + return false; + } + + $key = "stripe-{$mode}-{$type}-key"; + $settings = (array) get_option( 'wpforms_settings', [] ); + $settings[ $key ] = sanitize_text_field( $value ); + + return wpforms_update_settings( $settings ); + } + + /** + * Determine whether a license key is active. + * + * @since 1.8.2 + * + * @return bool + */ + public static function is_license_active() { + + $license = (array) get_option( 'wpforms_license', [] ); + + return ! empty( wpforms_get_license_key() ) && + empty( $license['is_expired'] ) && + empty( $license['is_disabled'] ) && + empty( $license['is_invalid'] ); + } + + /** + * Determine whether a license type is allowed. + * + * @since 1.8.2 + * + * @return bool + */ + public static function is_allowed_license_type() { + + return in_array( wpforms_get_license_type(), [ 'pro', 'elite', 'agency', 'ultimate' ], true ); + } + + /** + * Determine whether a license is ok. + * + * @since 1.8.2 + * + * @return bool + */ + public static function is_license_ok() { + + return self::is_license_active() && self::is_allowed_license_type(); + } + + /** + * Determine whether the addon is activated. + * + * @since 1.8.2 + * @since 1.9.5 Added a fallback for legacy versions of the Stripe addon. + * + * @return bool + */ + public static function is_addon_active(): bool { + + // Legacy versions of the Stripe addon do not support the Requirements core feature. + if ( defined( 'WPFORMS_STRIPE_VERSION' ) && version_compare( WPFORMS_STRIPE_VERSION, '3.0.1', '<=' ) ) { + return function_exists( 'wpforms_stripe' ); + } + + return wpforms_is_addon_initialized( 'stripe' ); + } + + /** + * Determine whether the addon is activated and appropriate license is set. + * + * @since 1.8.2 + * + * @return bool + */ + public static function is_pro() { + + return self::is_addon_active() && self::is_allowed_license_type(); + } + + /** + * Get authorization options used for every Stripe transaction as recommended in Stripe official docs. + * + * @link https://stripe.com/docs/connect/authentication#api-keys + * + * @since 1.8.2 + * + * @return array + */ + public static function get_auth_opts() { + + return [ 'api_key' => self::get_stripe_key( 'secret' ) ]; + } + + /** + * Determine whether the Payment element mode is enabled. + * + * @since 1.8.2 + * + * @return bool + */ + public static function is_payment_element_enabled() { + + return wpforms_setting( 'stripe-card-mode' ) === 'payment'; + } + + /** + * Determine whether the application fee is supported. + * + * @since 1.8.2 + * + * @return bool + */ + public static function is_application_fee_supported() { + + return ! in_array( self::get_account_country(), [ 'br', 'in', 'mx' ], true ); + } + + /** + * Get Stripe webhook endpoint data. + * + * @since 1.8.4 + * + * @return array + */ + public static function get_webhook_endpoint_data() { + + return [ + 'namespace' => 'wpforms', + 'route' => 'stripe/webhooks', + 'fallback' => 'wpforms_stripe_webhooks', + ]; + } + + /** + * Get webhook URL for REST API. + * + * @since 1.8.4 + * + * @return string + */ + public static function get_webhook_url_for_rest() { + + $path = implode( + '/', + [ + self::get_webhook_endpoint_data()['namespace'], + self::get_webhook_endpoint_data()['route'], + ] + ); + + return rest_url( $path ); + } + + /** + * Get webhook URL for cURL fallback. + * + * @since 1.8.4 + * + * @return string + */ + public static function get_webhook_url_for_curl() { + + return add_query_arg( self::get_webhook_endpoint_data()['fallback'], '1', site_url() ); + } + + /** + * Determine if webhook ID and secret is set in WPForms settings. + * + * @since 1.8.4 + * + * @return bool + */ + public static function is_webhook_configured() { + + $mode = self::get_stripe_mode(); + + return wpforms_setting( 'stripe-webhooks-id-' . $mode ) && wpforms_setting( 'stripe-webhooks-secret-' . $mode ); + } + + /** + * Determine if webhooks are enabled in WPForms settings. + * + * @since 1.8.4 + * + * @return bool + */ + public static function is_webhook_enabled() { + + return wpforms_setting( 'stripe-webhooks-enabled' ); + } + + /** + * Determine if REST API is set in WPForms settings. + * + * @since 1.8.4 + * + * @return bool + */ + public static function is_rest_api_set() { + + return wpforms_setting( 'stripe-webhooks-communication', 'rest' ) === 'rest'; + } + + /** + * Get decimals amount. + * + * @since 1.8.4 + * @deprecated 1.9.5 + * + * @param string $currency Currency. + * + * @return int + */ + public static function get_decimals_amount( $currency = '' ) { + + _deprecated_function( __METHOD__, '1.9.5 of the WPForms plugin', 'wpforms_get_currency_multiplier()' ); + + return wpforms_get_currency_multiplier( $currency ); + } + + /** + * Get Stripe webhook endpoint URL. + * + * If the constant WPFORMS_STRIPE_WHURL is defined, it will be used as the webhook URL. + * + * @since 1.8.4 + * + * @return string + */ + public static function get_webhook_url() { + + if ( defined( 'WPFORMS_STRIPE_WHURL' ) ) { + return WPFORMS_STRIPE_WHURL; + } + + if ( self::is_rest_api_set() ) { + return self::get_webhook_url_for_rest(); + } + + return self::get_webhook_url_for_curl(); + } + + /** + * Is Stripe payment enabled for the form. + * + * @since 1.8.4 + * + * @param array $form_data Form data. + * + * @return bool + */ + public static function is_payments_enabled( $form_data ) { + + return self::is_modern_settings_enabled( $form_data ) || ! empty( $form_data['payments']['stripe']['enable'] ); + } + + /** + * Is Stripe modern payment enabled for the form. + * + * @since 1.8.4 + * + * @param array $form_data Form data. + * + * @return bool + */ + public static function is_modern_settings_enabled( $form_data ) { + + return ! empty( $form_data['payments']['stripe']['enable_one_time'] ) || ! empty( $form_data['payments']['stripe']['enable_recurring'] ); + } + + /** + * Detect if form supports multiple subscription plans. + * + * @since 1.8.4 + * + * @param array $form_data Form data. + * + * @return bool + */ + public static function is_form_supports_multiple_recurring_plans( $form_data ) { + + return ! isset( $form_data['payments']['stripe'] ) || empty( $form_data['payments']['stripe']['recurring']['enable'] ); + } + + /** + * Determine if legacy payment settings should be displayed. + * + * @since 1.8.4 + * + * @param array $form_data Form data. + * + * @return bool + */ + public static function is_legacy_payment_settings( $form_data ) { + + $has_legacy_settings = ! self::is_form_supports_multiple_recurring_plans( $form_data ); + + // Return early if form has legacy payment settings. + if ( $has_legacy_settings ) { + return true; + } + + $addon_compat = ( new StripeAddonCompatibility() )->init(); + + // Return early if Stripe Pro addon doesn't support modern settings (multiple plans). + if ( $addon_compat && ! $addon_compat->is_supported_modern_settings() ) { + return true; + } + + return false; + } + + /** + * Determine whether the Link is supported. + * + * @link https://docs.stripe.com/payments/payment-methods/integration-options#payment-method-availability + * + * @since 1.8.8 + * + * @return bool + */ + public static function is_link_supported(): bool { + + return ! in_array( self::get_account_country(), [ 'br', 'in', 'id', 'th' ], true ); + } + + /** + * Get the maximum number of cycles for recurring plans. + * + * @since 1.9.8 + * + * @return int + */ + public static function recurring_plan_cycles_max(): int { + + /** + * Filters the maximum number of cycles for recurring plans. + * + * @since 1.9.8 + * + * @param int $max Maximum number of cycles. + */ + return (int) apply_filters( 'wpforms_stripe_recurring_plan_cycles_max', 100 ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Get account country. + * + * @since 1.8.8 + * + * @return string + */ + private static function get_account_country(): string { + + $mode = self::get_stripe_mode(); + + return get_option( "wpforms_stripe_{$mode}_account_country", '' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Process.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Process.php new file mode 100644 index 0000000..beb034c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Process.php @@ -0,0 +1,1381 @@ +api = $api; + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.8.2 + */ + private function hooks() { + + add_action( 'wpforms_process', [ $this, 'process_entry' ], 10, 3 ); + add_action( 'wpforms_process_payment_saved', [ $this, 'process_payment_saved' ], 10, 3 ); + add_action( 'wpformsstripe_api_common_set_error_from_exception', [ $this, 'process_card_error' ] ); + add_filter( 'wpforms_forms_submission_prepare_payment_data', [ $this, 'prepare_payment_data' ] ); + add_filter( 'wpforms_forms_submission_prepare_payment_meta', [ $this, 'prepare_payment_meta' ], 10, 3 ); + add_action( 'wpforms_process_entry_saved', [ $this, 'process_entry_data' ], 10, 4 ); + } + + /** + * Check if a payment exists with an entry, if so validate and process. + * + * @since 1.8.2 + * + * @param array $fields Final/sanitized submitted field data. + * @param array $entry Copy of original $_POST. + * @param array $form_data Form data and settings. + */ + public function process_entry( $fields, $entry, $form_data ) { + + // Check if payment method exists and is enabled. + if ( ! Helpers::has_stripe_enabled( [ $form_data ] ) ) { + return; + } + + $this->form_id = (int) $form_data['id']; + $this->fields = $fields; + $this->form_data = $form_data; + $this->settings = $form_data['payments']['stripe']; + $this->amount = wpforms_get_total_payment( $this->fields ); + $this->rate_limit = new RateLimit(); + + $this->rate_limit->init(); + + if ( $this->is_process_entry_error() ) { + return; + } + + if ( $this->is_submitted_payment_data_corrupted( $entry ) ) { + return; + } + + $this->api->set_payment_tokens( $entry ); + + $error = $this->get_entry_errors(); + + // Before proceeding, check if any basic errors were detected. + if ( $error ) { + $this->log_error( $error ); + $this->display_error( $error ); + + return; + } + + $this->process_payment(); + } + + /** + * Bypass captcha if payment has been processed. + * + * @since 1.8.3 + * @deprecated 1.9.6 + * + * @param bool $bypass_captcha Whether to bypass captcha. + * + * @return bool + */ + public function bypass_captcha( $bypass_captcha ) { + + _deprecated_function( __METHOD__, '1.9.6 of the WPForms plugin' ); + + if ( $bypass_captcha ) { + return $bypass_captcha; + } + + return $this->is_payment_processed; + } + + /** + * Check on process entry errors. + * + * @since 1.8.2 + * + * @return bool + */ + protected function is_process_entry_error() { + + // Check for processing errors. + if ( ! empty( wpforms()->obj( 'process' )->errors[ $this->form_id ] ) || ! $this->is_card_field_visibility_ok() ) { + return true; + } + + // Check rate limit. + if ( ! $this->is_rate_limit_ok() ) { + wpforms()->obj( 'process' )->errors[ $this->form_id ]['footer'] = esc_html__( 'Unable to process payment, please try again later.', 'wpforms-lite' ); + + return true; + } + + return false; + } + + /** + * Add meta for a successful payment. + * + * @since 1.8.2 + * + * @param array $payment_meta Payment meta. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + * + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function prepare_payment_meta( $payment_meta, $fields, $form_data ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $payment = $this->api->get_payment(); + + if ( empty( $payment->id ) ) { + return $payment_meta; + } + + $charge_details = $this->api->get_charge_details( [ 'type', 'name', 'last4', 'brand', 'exp_month', 'exp_year' ] ); + + $payment_meta['method_type'] = $this->get_payment_type( $charge_details ); + $payment_meta['customer_name'] = $this->get_customer_name(); + $payment_meta['customer_email'] = $this->get_customer_email(); + + $subscription = $this->api->get_subscription(); + + if ( ! empty( $subscription->id ) ) { + $payment_meta['subscription_period'] = sanitize_text_field( $this->subscription_settings['period'] ); + } + + if ( ! empty( $charge_details['brand'] ) ) { + $payment_meta['credit_card_method'] = $charge_details['brand']; + } + + if ( ! empty( $charge_details['name'] ) ) { + $payment_meta['credit_card_name'] = $charge_details['name']; + } + + if ( ! empty( $charge_details['last4'] ) ) { + $payment_meta['credit_card_last4'] = $charge_details['last4']; + } + + if ( ! empty( $charge_details['exp_month'] ) && ! empty( $charge_details['exp_year'] ) ) { + $payment_meta['credit_card_expires'] = sprintf( '%s/%s', $charge_details['exp_month'], $charge_details['exp_year'] ); + } + + $log = [ + 'value' => $payment->object === 'payment_intent' ? sprintf( 'Stripe payment intent created. (Payment Intent ID: %s)', $payment->id ) : 'Stripe payment was created.', + 'date' => gmdate( 'Y-m-d H:i:s' ), + ]; + + $payment_meta['log'] = wp_json_encode( $log ); + + return $payment_meta; + } + + /** + * Get payment method type. + * + * @since 1.8.2.1 + * + * @param array $charge_details Get details from a saved Charge object. + * + * @return string + */ + private function get_payment_type( $charge_details ) { + + if ( empty( $charge_details['last4'] ) ) { + return 'link'; + } + + if ( ! empty( $charge_details['type'] ) ) { + return sanitize_text_field( $charge_details['type'] ); + } + + return 'card'; + } + + /** + * Add payment info for successful payment. + * + * @since 1.8.2 + * + * @param int $payment_id Payment ID. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + */ + public function process_payment_saved( $payment_id, $fields, $form_data ) { + + $payment = $this->api->get_payment(); + + if ( empty( $payment->id ) ) { + return; + } + + $payment_url = add_query_arg( + [ + 'page' => 'wpforms-payments', + 'view' => 'payment', + 'payment_id' => $payment_id, + ], + admin_url( 'admin.php' ) + ); + + // Update the Stripe charge metadata to include the Payment ID. + $payment->metadata['payment_id'] = $payment_id; + $payment->metadata['payment_url'] = esc_url_raw( $payment_url ); + + // Clean up spam reason in case it was set before. + $payment->metadata['spam_reason'] = null; + + $custom_metadata = $this->get_mapped_custom_metadata( 'payment' ); + + array_walk( + $custom_metadata, + static function ( &$value, $key ) use ( $payment ) { + $payment->metadata[ $key ] = $value; + } + ); + + /** + * Allow to add additional payment metadata to the Stripe payment. + * + * @since 1.8.2.2 + * + * @param array $additional_meta Additional metadata. + * @param int $payment_id Payment ID. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + */ + $additional_meta = (array) apply_filters( 'wpforms_integrations_stripe_process_additional_metadata', [], $payment_id, $fields, $form_data ); + + array_walk( + $additional_meta, + static function ( $meta, $key ) use ( &$payment ) { + $payment->metadata[ $key ] = $meta; + } + ); + + $payment->update( $payment->id, $payment->serializeParameters(), Helpers::get_auth_opts() ); + + $subscription = $this->api->get_subscription(); + + // Update the Stripe subscription metadata to include the Payment ID. + if ( ! empty( $subscription->id ) ) { + $subscription->metadata['payment_id'] = $payment_id; + $subscription->metadata['payment_url'] = esc_url_raw( $payment_url ); + + $this->maybe_set_subscription_schedule( $subscription ); + + // Clean up cycles value. + $subscription->metadata['cycles'] = null; + + $subscription->update( $subscription->id, $subscription->serializeParameters(), Helpers::get_auth_opts() ); + } + + wpforms()->obj( 'payment_meta' )->add_log( + $payment_id, + sprintf( + 'Stripe charge processed. (Charge ID: %1$s)', + isset( $payment->latest_charge ) ? $payment->latest_charge : $payment->id + ) + ); + + /** + * Fire when processing is complete. + * + * @since 1.8.2 + * + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + * @param int $payment_id Payment ID. + * @param mixed $payment Stripe payment object. + * @param mixed $subscription Stripe subscription object. + * @param mixed $customer Stripe customer object. + */ + do_action( 'wpforms_stripe_process_complete', $fields, $form_data, $payment_id, $payment, $subscription, $this->api->get_customer() ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Get mapped custom metadata. + * + * @since 1.9.6 + * + * @param string $type Object type ( e.g 'customer', 'payment' ). + * + * @return array + */ + private function get_mapped_custom_metadata( string $type ): array { + + $settings_key = ! is_null( $this->plan_id ) ? 'recurring_custom_metadata_' . $this->plan_id : 'custom_metadata'; + + if ( empty( $this->form_data['payments']['stripe'][ $settings_key ] ) ) { + return []; + } + + $metadata = []; + + foreach ( $this->form_data['payments']['stripe'][ $settings_key ] as $data ) { + + // Skip if the field type not set or the meta-key is empty. + if ( $data['object_type'] !== $type || empty( $data['meta_key'] ) ) { + continue; + } + + // Skip if either the key or value is empty. + if ( ! $data['meta_key'] || ! $data['meta_value'] ) { + continue; + } + + $field_id = $data['meta_value']; + + if ( ! isset( $this->fields[ $field_id ]['value'] ) || wpforms_is_empty_string( $this->fields[ $field_id ]['value'] ) ) { + continue; + } + + // Add quantity for the field value. + if ( wpforms_payment_has_quantity( $this->fields[ $field_id ], $this->form_data ) ) { + $field_value = wpforms_payment_format_quantity( $this->fields[ $field_id ] ); + } else { + $field_value = $this->fields[ $field_id ]['value']; + } + + // Key length limited to 40 characters long by Stripe API. + $key = wp_html_excerpt( sanitize_text_field( $data['meta_key'] ), 40 ); + + // Check whether the meta-key is empty once again after sanitization. + if ( empty( $key ) ) { + continue; + } + + // Value length limited to 500 characters long by Stripe API. + $metadata[ $key ] = wp_html_excerpt( wpforms_decode_string( $field_value ), 500 ); + } + + return $metadata; + } + + /** + * Add details to payment data. + * + * @since 1.8.2 + * + * @param array $payment_data Payment data args. + * + * @return array + */ + public function prepare_payment_data( $payment_data ) { + + $payment = $this->api->get_payment(); + + if ( empty( $payment->id ) ) { + return $payment_data; + } + + $customer = $this->api->get_customer(); + $subscription = $this->api->get_subscription(); + + $payment_data['status'] = 'processed'; + $payment_data['gateway'] = 'stripe'; + $payment_data['mode'] = Helpers::get_stripe_mode(); + $payment_data['transaction_id'] = sanitize_text_field( $payment->id ); + $payment_data['customer_id'] = ! empty( $customer->id ) ? sanitize_text_field( $customer->id ) : ''; + $payment_data['title'] = $this->get_payment_title(); + + if ( ! empty( $subscription->id ) ) { + $payment_data['subscription_id'] = sanitize_text_field( $subscription->id ); + $payment_data['subscription_status'] = 'not-synced'; + } + + return $payment_data; + } + + /** + * Get Payment title. + * + * @since 1.8.2 + * + * @return string Payment title. + */ + private function get_payment_title() { + + $customer_name = $this->get_customer_name(); + + if ( $customer_name ) { + return $customer_name; + } + + $customer_email = $this->get_customer_email(); + + if ( $customer_email ) { + return $customer_email; + } + + return ''; + } + + /** + * Get Customer name. + * + * @since 1.8.2 + * + * @return string Customer name. + */ + private function get_customer_name() { + + $customer_name = $this->api->get_customer( 'name' ); + + if ( $customer_name ) { + return $customer_name; + } + + $charge_details = $this->api->get_charge_details( [ 'name' ] ); + + if ( ! empty( $charge_details['name'] ) ) { + return $charge_details['name']; + } + + return ''; + } + + /** + * Get Customer email. + * + * @since 1.8.2 + * + * @return string Customer email. + */ + private function get_customer_email() { + + $customer_email = $this->api->get_customer( 'email' ); + + if ( $customer_email ) { + return $customer_email; + } + + $charge_details = $this->api->get_charge_details( [ 'email' ] ); + + if ( ! empty( $charge_details['email'] ) ) { + return $charge_details['email']; + } + + // phpcs:disable WordPress.Security.NonceVerification.Missing + if ( isset( $_POST['wpforms']['payment_link_email'] ) ) { + return sanitize_email( wp_unslash( $_POST['wpforms']['payment_link_email'] ) ); + } + // phpcs:enable WordPress.Security.NonceVerification.Missing + + return ''; + } + + /** + * Logic that helps decide if we should send completed payments notifications. + * + * @since 1.8.2 + * + * @deprecated 1.9.5 + * + * @param bool $process Whether to process or not. + * @param array $fields Form fields. + * @param array $form_data Form data. + * @param int $notification_id Notification ID. + * + * @return bool + */ + public function process_email( $process, $fields, $form_data, $notification_id ) { + + _deprecated_function( __METHOD__, '1.9.5 of the WPForms plugin', 'WPFormsStripe\Process::process_email()' ); + + if ( ! $process ) { + return false; + } + + if ( ! Helpers::has_stripe_enabled( [ $form_data ] ) ) { + return $process; + } + + if ( empty( $form_data['settings']['notifications'][ $notification_id ]['stripe'] ) ) { + return $process; + } + + if ( empty( $this->api->get_payment() ) ) { + return false; + } + + if ( ! $this->is_payment_processed ) { + return false; + } + + return empty( $this->api->get_error() ); + } + + /** + * Update entry details for a successful payment. + * + * @since 1.8.2 + * + * @param array $fields Final/sanitized submitted field data. + * @param array $entry Copy of original $_POST. + * @param array $form_data Form data and settings. + * @param string $entry_id Entry ID. + */ + public function process_entry_data( $fields, $entry, $form_data, $entry_id ) { + + $payment = $this->api->get_payment(); + + if ( empty( $payment->id ) || empty( $entry_id ) ) { + return; + } + + wpforms()->obj( 'entry' )->update( + $entry_id, + [ + 'type' => 'payment', + ], + '', + '', + [ 'cap' => false ] + ); + } + + /** + * Get general errors before payment processing. + * + * @since 1.8.2 + * + * @return string + */ + protected function get_entry_errors() { + + // Check for Stripe payment tokens (card token or payment id). + $error = $this->api->get_error(); + + // Check for Stripe keys. + if ( ! Helpers::has_stripe_keys() ) { + return esc_html__( 'Stripe payment stopped, missing keys.', 'wpforms-lite' ); + } + + // Check that, despite how the form is configured, the form and + // entry actually contain payment fields, otherwise no need to proceed. + if ( ! wpforms_has_payment( 'form', $this->form_data ) || ! wpforms_has_payment( 'entry', $this->fields ) ) { + return esc_html__( 'Stripe payment stopped, missing payment fields.', 'wpforms-lite' ); + } + + // Check total charge amount. + if ( empty( $this->amount ) || wpforms_sanitize_amount( 0 ) === $this->amount ) { + return esc_html__( 'Stripe payment stopped, invalid/empty amount.', 'wpforms-lite' ); + } + + if ( 50 > ( $this->amount * 100 ) ) { + return esc_html__( 'Stripe payment stopped, amount less than minimum charge required.', 'wpforms-lite' ); + } + + return $error; + } + + /** + * Process a payment. + * + * @since 1.8.2 + */ + public function process_payment() { + + if ( $this->is_api_errors() ) { + return; + } + + // Proceed to executing the purchase. + if ( ! empty( $this->settings['enable_recurring'] ) || ! empty( $this->settings['recurring']['enable'] ) ) { + $this->process_payment_subscription(); + + return; + } + + $this->process_payment_single(); + } + + /** + * Process a subscription payment for forms with old payments interface. + * + * @since 1.8.4 + */ + protected function process_legacy_payment_subscription() { + + if ( ! $this->is_recurring_settings_ok( $this->settings['recurring'] ) ) { + return; + } + + $args = $this->get_base_subscription_args(); + + $args['settings'] = $this->settings['recurring']; + $args['email'] = sanitize_email( $this->fields[ $args['settings']['email'] ]['value'] ); + $args['customer_name'] = ! empty( $args['settings']['customer_name'] ) ? sanitize_text_field( $this->fields[ $args['settings']['customer_name'] ]['value'] ) : ''; + $args['customer_phone'] = ! empty( $args['settings']['customer_phone'] ) ? sanitize_text_field( $this->fields[ $args['settings']['customer_phone'] ]['value'] ) : ''; + + // Customer address. + if ( wpforms()->is_pro() && isset( $args['settings']['customer_address'] ) && $args['settings']['customer_address'] !== '' ) { + $args['customer_address'] = $this->map_address_field( $this->fields[ $args['settings']['customer_address'] ], $args['settings']['customer_address'] ); + } + + // Set plan id to get correct mapped meta. + $this->plan_id = ''; + + // Customer custom metadata. + $args['customer_metadata'] = $this->get_mapped_custom_metadata( 'customer' ); + + $this->process_subscription( $args ); + + // Set payment processing flag. + $this->is_payment_processed = true; + } + + /** + * Process a single payment. + * + * @since 1.8.2 + */ + public function process_payment_single() { + + $amount_decimals = wpforms_get_currency_multiplier(); + + // Define the basic payment details. + $args = [ + 'amount' => $this->amount * $amount_decimals, + 'currency' => strtolower( wpforms_get_currency() ), + 'metadata' => [ + 'form_name' => sanitize_text_field( $this->form_data['settings']['form_title'] ), + 'form_id' => $this->form_id, + ], + ]; + + if ( ! Helpers::is_license_ok() && Helpers::is_application_fee_supported() ) { + $args['application_fee_amount'] = (int) ( round( $this->amount * 0.03, 2 ) * $amount_decimals ); + } + + // Store spam reason if exists. + if ( isset( $this->form_data['spam_reason'] ) ) { + $args['metadata']['spam_reason'] = $this->form_data['spam_reason']; + } + + // Payment description. + if ( ! empty( $this->settings['payment_description'] ) ) { + $args['description'] = html_entity_decode( $this->settings['payment_description'], ENT_COMPAT, 'UTF-8' ); + } + + // Receipt email. + if ( isset( $this->settings['receipt_email'] ) && $this->settings['receipt_email'] !== '' && ! empty( $this->fields[ $this->settings['receipt_email'] ]['value'] ) ) { + $args['receipt_email'] = sanitize_email( $this->fields[ $this->settings['receipt_email'] ]['value'] ); + } + + // Customer email. + if ( isset( $this->settings['customer_email'] ) && $this->settings['customer_email'] !== '' && ! empty( $this->fields[ $this->settings['customer_email'] ]['value'] ) ) { + $args['customer_email'] = sanitize_email( $this->fields[ $this->settings['customer_email'] ]['value'] ); + } + + // Customer name. + if ( isset( $this->settings['customer_name'] ) && $this->settings['customer_name'] !== '' && ! empty( $this->fields[ $this->settings['customer_name'] ]['value'] ) ) { + $args['customer_name'] = sanitize_text_field( $this->fields[ $this->settings['customer_name'] ]['value'] ); + } + + // Customer phone. + if ( isset( $this->settings['customer_phone'] ) && $this->settings['customer_phone'] !== '' && ! empty( $this->fields[ $this->settings['customer_phone'] ]['value'] ) ) { + $args['customer_phone'] = sanitize_text_field( $this->fields[ $this->settings['customer_phone'] ]['value'] ); + } + + // Customer custom metadata. + $args['customer_metadata'] = $this->get_mapped_custom_metadata( 'customer' ); + + $args = $this->payment_single_map_address( $args ); + + $this->api->process_single( $args ); + + // Set payment processing flag. + $this->is_payment_processed = true; + + $this->update_credit_card_field_value(); + + $this->process_api_error( 'single' ); + } + + /** + * Map address field for single payment. + * + * @since 1.9.0 + * + * @param array $args Payment arguments. + * + * @return array + */ + private function payment_single_map_address( array $args ): array { + + if ( ! wpforms()->is_pro() ) { + return $args; + } + + // Customer address. + if ( isset( $this->settings['customer_address'] ) && $this->settings['customer_address'] !== '' ) { + $args['customer_address'] = $this->map_address_field( $this->fields[ $this->settings['customer_address'] ], $this->settings['customer_address'] ); + } + + // Shipping address. + if ( isset( $this->settings['shipping_address'] ) && $this->settings['shipping_address'] !== '' ) { + $args['shipping']['name'] = $args['customer_name'] ?? ''; + $args['shipping']['address'] = $this->map_address_field( $this->fields[ $this->settings['shipping_address'] ], $this->settings['shipping_address'] ); + } + + return $args; + } + + /** + * Process a subscription payment. + * + * @since 1.8.2 + */ + public function process_payment_subscription() { + + if ( Helpers::is_legacy_payment_settings( $this->form_data ) ) { + $this->process_legacy_payment_subscription(); + + return; + } + + $args = $this->get_base_subscription_args(); + + foreach ( $this->settings['recurring'] as $key => $recurring ) { + + if ( ! $this->is_subscription_plan_valid( $recurring ) ) { + continue; + } + + $this->plan_id = $key; + + $args['email'] = sanitize_email( $this->fields[ $recurring['email'] ]['value'] ); + $args['settings'] = $recurring; + $args['description'] = sanitize_text_field( $recurring['name'] ); + + // Customer name. + if ( isset( $recurring['customer_name'] ) && $recurring['customer_name'] !== '' && ! empty( $this->fields[ $recurring['customer_name'] ]['value'] ) ) { + $args['customer_name'] = sanitize_text_field( $this->fields[ $recurring['customer_name'] ]['value'] ); + } + + // Customer phone. + if ( isset( $recurring['customer_phone'] ) && $recurring['customer_phone'] !== '' && ! empty( $this->fields[ $recurring['customer_phone'] ]['value'] ) ) { + $args['customer_phone'] = sanitize_text_field( $this->fields[ $recurring['customer_phone'] ]['value'] ); + } + + // Customer address. + if ( wpforms()->is_pro() && isset( $recurring['customer_address'] ) && $recurring['customer_address'] !== '' ) { + $args['customer_address'] = $this->map_address_field( $this->fields[ $recurring['customer_address'] ], $recurring['customer_address'] ); + } + + // Customer custom metadata. + $args['customer_metadata'] = $this->get_mapped_custom_metadata( 'customer' ); + + // Validate the number of cycle to process. + if ( ! empty( $recurring['cycles'] ) && ( $recurring['cycles'] === 'undefined' || ( is_numeric( $recurring['cycles'] ) && $recurring['cycles'] > 0 ) ) ) { + $args['cycles'] = sanitize_text_field( $recurring['cycles'] ); + } + + $this->process_subscription( $args ); + + return; + } + + if ( ! empty( $this->settings['enable_one_time'] ) ) { + $this->process_payment_single(); + + return; + } + + $this->log_error( + esc_html__( 'Stripe Subscription payment stopped, validation error.', 'wpforms-lite' ), + $this->fields, + 'conditional_logic' + ); + } + + /** + * Validate plan before process. + * + * @since 1.8.4 + * + * @param array $plan Plan settings. + * + * @return bool + */ + protected function is_subscription_plan_valid( $plan ) { + + return ! empty( $plan['email'] ) && $this->is_recurring_settings_ok( $plan ); + } + + /** + * Update the credit card field value to contain basic details. + * + * @since 1.8.2 + */ + public function update_credit_card_field_value() { + + foreach ( $this->fields as $field_id => $field ) { + + if ( empty( $field['type'] ) || $this->api->get_config( 'field_slug' ) !== $field['type'] ) { + continue; + } + + $details = $this->api->get_charge_details( [ 'name', 'last4', 'brand' ] ); + + if ( ! empty( $details['last4'] ) ) { + $details['last4'] = 'xxxx xxxx xxxx ' . $details['last4']; + } + + if ( ! empty( $details['brand'] ) ) { + $details['brand'] = ucfirst( $details['brand'] ); + } + + $details = is_array( $details ) && ! empty( $details ) ? implode( "\n", array_filter( $details ) ) : '-'; + + /** + * This filter allows to overwrite a Style Credit Card value in saved entry. + * + * @since 1.8.2 + * + * @param array $details Card details. + * @param object $payment Stripe payment objects. + */ + wpforms()->obj( 'process' )->fields[ $field_id ]['value'] = apply_filters( 'wpforms_stripe_creditcard_value', $details, $this->api->get_payment() ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + } + + /** + * Check if there is at least one visible (not hidden by conditional logic) card field in the form. + * + * @since 1.8.2 + */ + protected function is_card_field_visibility_ok() { + + // If the form contains no fields with conditional logic the card field is visible by default. + if ( empty( $this->form_data['conditional_fields'] ) ) { + return true; + } + + foreach ( $this->fields as $field ) { + + if ( empty( $field['type'] ) || $this->api->get_config( 'field_slug' ) !== $field['type'] ) { + continue; + } + + // if the field is NOT in array of conditional fields, it's visible. + if ( ! in_array( $field['id'], $this->form_data['conditional_fields'], true ) ) { + return true; + } + + // if the field IS in array of conditional fields and marked as visible, it's visible. + if ( ! empty( $field['visible'] ) ) { + return true; + } + } + + return false; + } + + /** + * Log payment error. + * + * @since 1.8.2 + * + * @param string $title Error title. + * @param string $message Error message. + * @param string $level Error level to add to 'payment' error level. + */ + protected function log_error( $title, $message = '', $level = 'error' ) { + + if ( $message instanceof ApiErrorException ) { + $body = $message->getJsonBody(); + $message = isset( $body['error']['message'] ) ? $body['error'] : $message->getMessage(); + } + + wpforms_log( + $title, + $message, + [ + 'type' => [ 'payment', $level ], + 'form_id' => $this->form_id, + ] + ); + } + + /** + * Collect errors from API and turn it into form errors. + * + * @since 1.8.2 + * + * @param string $type Payment time (e.g. 'single' or 'subscription'). + */ + protected function process_api_error( $type ) { + + $message = $this->api->get_error(); + + if ( empty( $message ) ) { + return; + } + + $message = sprintf( + /* translators: %s - error message. */ + esc_html__( 'Payment Error: %s', 'wpforms-lite' ), + $message + ); + + $this->display_error( $message ); + + if ( $type === 'subscription' ) { + $title = esc_html__( 'Stripe subscription payment stopped by error', 'wpforms-lite' ); + } else { + $title = esc_html__( 'Stripe payment stopped by error', 'wpforms-lite' ); + } + + $this->log_error( $title, $this->api->get_exception() ); + } + + /** + * Display form error. + * + * @since 1.8.2 + * + * @param string $error Error to display. + */ + private function display_error( $error ) { + + if ( ! $error ) { + return; + } + + $field_slug = $this->api->get_config( 'field_slug' ); + + // Check if the form contains a required credit card. If it does + // and there was an error, return the error to the user and prevent + // the form from being submitted. This should not occur under normal + // circumstances. + foreach ( $this->form_data['fields'] as $field ) { + + if ( empty( $field['type'] ) || $field_slug !== $field['type'] ) { + continue; + } + + if ( ! empty( $field['required'] ) ) { + wpforms()->obj( 'process' )->errors[ $this->form_id ]['footer'] = $error; + + return; + } + } + } + + /** + * Process card error from Stripe API exception and adds rate limit tracking. + * + * @since 1.8.2 + * + * @param ApiErrorException $e Stripe API exception to process. + */ + public function process_card_error( $e ) { + + if ( Helpers::get_stripe_mode() === 'test' ) { + return; + } + + if ( ! is_a( $e, '\WPForms\Vendor\Stripe\Exception\CardException' ) ) { + return; + } + + /** + * Allow to filter Stripe process card error. + * + * @since 1.8.2 + * + * @param bool $flag True if any error. + */ + if ( ! apply_filters( 'wpforms_stripe_process_process_card_error', true ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return; + } + + $this->rate_limit->increment_attempts(); + } + + /** + * Check if rate limit is under threshold and passes. + * + * @since 1.8.2 + */ + protected function is_rate_limit_ok() { + + return $this->rate_limit->is_ok(); + } + + /** + * Check if any API errors occurs. + * + * @since 1.8.4 + * + * @return bool + */ + protected function is_api_errors() { + + $this->api->setup_stripe(); + + $error = $this->api->get_error(); + + if ( $error ) { + $this->process_api_error( 'general' ); + + return true; + } + + return false; + } + + /** + * Check if recurring settings is configured correctly. + * + * @since 1.8.4 + * + * @param {array} $settings Settings data. + * + * @return bool + */ + protected function is_recurring_settings_ok( $settings ) { + + $error = ''; + + // Check subscription settings are provided. + if ( empty( $settings['period'] ) || empty( $settings['email'] ) ) { + $error = esc_html__( 'Stripe subscription payment stopped, missing form settings.', 'wpforms-lite' ); + } + + // Check for required customer email. + if ( ! $error && empty( $this->fields[ $settings['email'] ]['value'] ) ) { + $error = esc_html__( 'Stripe subscription payment stopped, customer email not found.', 'wpforms-lite' ); + } + + // Before proceeding, check if any basic errors were detected. + if ( $error ) { + $this->log_error( $error ); + $this->display_error( $error ); + + return false; + } + + return true; + } + + /** + * Process subscription API call. + * + * @since 1.8.4 + * + * @param array $args Prepared subscription arguments. + */ + protected function process_subscription( $args ) { + + $this->subscription_settings = $args['settings']; + + if ( ! Helpers::is_license_ok() && Helpers::is_application_fee_supported() ) { + $args['application_fee_percent'] = 3; + } + + // Store spam reason if exists. + if ( isset( $this->form_data['spam_reason'] ) ) { + $args['metadata']['spam_reason'] = $this->form_data['spam_reason']; + } + + $this->api->process_subscription( $args ); + + // Set payment processing flag. + $this->is_payment_processed = true; + + // Update the credit card field value to contain basic details. + $this->update_credit_card_field_value(); + + $this->process_api_error( 'subscription' ); + } + + /** + * Get base subscription arguments. + * + * @since 1.8.4 + * + * @return array + */ + protected function get_base_subscription_args() { + + return [ + 'form_id' => $this->form_id, + 'form_title' => sanitize_text_field( $this->form_data['settings']['form_title'] ), + 'amount' => $this->amount * wpforms_get_currency_multiplier(), + ]; + } + + /** + * Map WPForms Address field to Stripe format. + * + * @since 1.8.8 + * + * @param array $submitted_data Submitted address data. + * @param string $field_id Address field ID. + * + * @return array + */ + private function map_address_field( array $submitted_data, string $field_id ): array { + + $line = sanitize_text_field( $submitted_data['address1'] ); + $country = ''; + + if ( isset( $submitted_data['address2'] ) ) { + $line .= ' ' . sanitize_text_field( $submitted_data['address2'] ); + } + + if ( isset( $submitted_data['country'] ) ) { + $country = sanitize_text_field( $submitted_data['country'] ); + } elseif ( $this->form_data['fields'][ $field_id ]['scheme'] !== 'international' ) { + $country = 'US'; + } + + return [ + 'line1' => $line, + 'state' => isset( $submitted_data['state'] ) ? sanitize_text_field( $submitted_data['state'] ) : '', + 'city' => sanitize_text_field( $submitted_data['city'] ), + 'postal_code' => sanitize_text_field( $submitted_data['postal'] ), + 'country' => $country, + ]; + } + + /** + * Check the submitted payment data whether it was corrupted. + * If so, refund a payment / cancel subscription. + * + * @since 1.8.8.2 + * + * @param array $entry Submitted entry data. + * + * @return bool + */ + private function is_submitted_payment_data_corrupted( array $entry ): bool { + + // Bail early if there are no payment intents. + if ( empty( $entry['payment_intent_id'] ) ) { + return false; + } + + // Get stored corrupted payment intents if exist. + $corrupted_intents = (array) Transient::get( 'corrupted-stripe-intents' ); + + // We must prevent a processing if payment intent was identified as corrupted. + // Also if the transaction ID exists in DB (transaction ID is unique value). + if ( in_array( $entry['payment_intent_id'], $corrupted_intents, true ) || wpforms()->obj( 'payment' )->get_by( 'transaction_id', $entry['payment_intent_id'] ) ) { + wpforms()->obj( 'process' )->errors[ $this->form_id ]['footer'] = esc_html__( 'Secondary form submission was declined.', 'wpforms-lite' ); + + return true; + } + + $intent = $this->api->retrieve_payment_intent( + $entry['payment_intent_id'], + [ + 'expand' => [ 'invoice.subscription' ], + ] + ); + + // Round to the nearest whole number because $this->amount can contain a number close to, + // but slightly under it, due to how it is stored in the memory. + $submitted_amount = round( $this->amount * wpforms_get_currency_multiplier() ); + + // Prevent form submission if a mismatch of the payment amount is detected. + if ( ! empty( $intent ) && (int) $submitted_amount !== (int) $intent->amount ) { + wpforms()->obj( 'process' )->errors[ $this->form_id ]['footer'] = esc_html__( 'Irregular activity detected. Your submission has been declined and payment refunded.', 'wpforms-lite' ); + + $args = [ + 'reason' => 'fraudulent', + ]; + + // We can't cancel a payment because it's already paid. + // So we can perform a refund only. + $this->api->refund_payment( $entry['payment_intent_id'], $args ); + + // Cancel subscription if exists. + if ( ! empty( $intent->invoice->subscription ) ) { + $this->api->cancel_subscription( $intent->invoice->subscription->id ); + } + + // This payment indent is identified as corrupted. + // Store it in order to prevent re-using it (form re-submitting). + if ( ! in_array( $entry['payment_intent_id'], $corrupted_intents, true ) ) { + $corrupted_intents[] = $entry['payment_intent_id']; + + Transient::set( 'corrupted-stripe-intents', $corrupted_intents, WEEK_IN_SECONDS ); + } + + return true; + } + + return false; + } + + /** + * Maybe create a subscription schedule if the cycles was set. + * + * @since 1.9.8 + * + * @param object $subscription Stripe subscription object. + */ + private function maybe_set_subscription_schedule( object $subscription ): void { + + if ( empty( $subscription->metadata['cycles'] ) || $subscription->metadata['cycles'] === 'unlimited' || (int) $subscription->metadata['cycles'] < 1 || empty( $subscription->items->data ) ) { + return; + } + + try { + $schedule = SubscriptionSchedule::create( + [ + 'from_subscription' => $subscription->id, + ], + Helpers::get_auth_opts() + ); + + $subscription_item = $subscription->items->data[0]; + + $schedule::update( + $schedule->id, + [ + 'end_behavior' => 'cancel', + 'phases' => [ + [ + 'start_date' => $subscription_item->current_period_start, + 'items' => [ + [ + 'plan' => $subscription_item->plan->id, + ], + ], + 'iterations' => $subscription->metadata['cycles'], + ], + ], + ], + Helpers::get_auth_opts() + ); + } catch ( \Exception $e ) { + + wpforms_log( + 'Stripe: Unable to create Subscription Schedule.', + $e->getMessage(), + [ + 'type' => [ 'payment', 'error' ], + ] + ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/RateLimit.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/RateLimit.php new file mode 100644 index 0000000..2cbba91 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/RateLimit.php @@ -0,0 +1,425 @@ +allowed_attempts = (int) apply_filters( 'wpforms_stripe_rate_limit_allowed_attempts', 3 ); + + /** + * This filter allow to modify Stripe rate limit expiration time. + * + * @since 1.8.2 + * + * @param int $expires_in Expiration time. + */ + $this->expires_in = (int) apply_filters( 'wpforms_stripe_rate_limit_expires_in', HOUR_IN_SECONDS * 6 ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Check if rate limit is under threshold and passes. + * + * @since 1.8.2 + * + * @return bool + */ + public function is_ok() { + + $entry = $this->get_entry(); + + if ( empty( $entry['attempts'] ) ) { + return true; + } + + if ( $entry['attempts'] < $this->allowed_attempts ) { + return true; + } + + $this->increment_attempts( $entry ); + + return false; + } + + /** + * Increment the number of attempts for a specific IP address. + * + * @since 1.8.2 + * + * @param array $entry Rate limit entry data. + * + * @return bool + */ + public function increment_attempts( $entry = [] ) { + + if ( empty( $entry ) ) { + $entry = $this->get_entry(); + } + + $entry['attempts'] = (int) $entry['attempts'] + 1; + + return $this->update_entry( $entry['attempts'] ); + } + + /** + * Get rate limit entry id based on IP address. + * + * @since 1.8.2 + * + * @return string + */ + private function get_entry_id() { + + return 'wpforms_stripe_attempt_' . wp_hash( wpforms_get_ip() ); + } + + /** + * Get rate limit entry attempts and expiration data. + * + * @since 1.8.2 + * + * @return array + */ + private function get_entry() { + + $storage = $this->get_storage_type(); + $entry_id = $this->get_entry_id(); + + if ( $storage === 'file' ) { + return $this->get_file_entry( $entry_id ); + } + + if ( $storage === 'transient' ) { + return $this->get_transient_entry( $entry_id ); + } + + return [ + 'attempts' => false, + 'expiration' => false, + ]; + } + + /** + * Update rate limit entry attempts and expiration data. + * + * @since 1.8.2 + * + * @param int $attempts Number of attempts to set. + * + * @return bool + */ + private function update_entry( $attempts ) { + + $storage = $this->get_storage_type(); + $entry_id = $this->get_entry_id(); + + if ( $storage === 'file' ) { + return $this->update_file_entry( $entry_id, $attempts ); + } + + if ( $storage === 'transient' ) { + return $this->update_transient_entry( $entry_id, $attempts ); + } + + return false; + } + + /** + * Get a storage type where rate limit entries are saved. + * + * @since 1.8.2 + * + * @return string + */ + private function get_storage_type() { + + $file = $this->get_file_path(); + + if ( empty( $file ) ) { + return 'transient'; + } + + if ( ! file_exists( $file ) ) { + $this->create_file( $file ); + } + + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_is_writable + if ( ! is_writable( $file ) ) { + return 'transient'; + } + + return 'file'; + } + + /** + * Get file path to store the rate limit entries in. + * + * @since 1.8.2 + * + * @return string + */ + private function get_file_path() { + + if ( function_exists( 'wpforms_upload_dir' ) ) { + $upload_dir = wpforms_upload_dir(); + } + + if ( isset( $upload_dir['path'] ) ) { + $upload_dir['path'] = trailingslashit( $upload_dir['path'] ) . 'stripe'; + } + + $file_name = wp_hash( site_url() ) . '-rate-limiting.log'; + + return isset( $upload_dir['path'] ) ? wp_normalize_path( trailingslashit( $upload_dir['path'] ) . $file_name ) : ''; + } + + /** + * Create index.html file in the specified directory if it doesn't exist. + * + * @since 1.8.2 + * + * @return bool True if file exists or was successfully created, false on failure. + */ + private function create_index_html_file() { + + $file = $this->get_file_path(); + + if ( empty( $file ) ) { + return false; + } + + $index_file = wp_normalize_path( trailingslashit( dirname( $file ) ) . 'index.html' ); + + // Do nothing if index.html exists in the directory. + if ( file_exists( $index_file ) ) { + return true; + } + + // Create empty index.html. + // phpcs:ignore WordPress.WP.AlternativeFunctions + return file_put_contents( $index_file, '' ) !== false; + } + + /** + * Create a file path to store the rate limit entries in. + * + * @since 1.8.2 + * + * @param string $file File path. + * + * @return bool + */ + private function create_file( $file ) { + + if ( ! wp_mkdir_p( dirname( $file ) ) ) { + return false; + } + + if ( ! $this->create_index_html_file() ) { + return false; + } + + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents + if ( file_put_contents( $file, '' ) === false ) { + return false; + } + + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_chmod + chmod( $file, 0664 ); + + return true; + } + + /** + * Read full contents of a rate limit entries file. + * + * @since 1.8.2 + * + * @return array + */ + private function read_whole_file() { + + $file = $this->get_file_path(); + + if ( empty( $file ) ) { + return []; + } + + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents + $contents = file_get_contents( $file ); + $contents = json_decode( $contents, true ); + + return is_array( $contents ) ? $contents : []; + } + + /** + * Write full contents to a rate limit entries file. + * + * @since 1.8.2 + * + * @param array $contents Array of all rate limit entries. + * + * @return bool + */ + private function write_whole_file( $contents ) { + + if ( ! is_array( $contents ) ) { + return false; + } + + $file = $this->get_file_path(); + + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_is_writable + if ( ! is_writable( $file ) ) { + return false; + } + + // phpcs:ignore WordPress.WP.AlternativeFunctions + return (bool) file_put_contents( $file, wp_json_encode( $contents ) ); + } + + /** + * Filter out the expired rate limit entries from a file. + * + * @since 1.8.2 + * + * @param array $contents Array of all rate limit entries. + * @param string $entry_id Rate limit entry id. + * + * @return array + */ + private function filter_expired_file_entry( $contents, $entry_id ) { + + $expiration = isset( $contents[ $entry_id ]['expiration'] ) ? (int) $contents[ $entry_id ]['expiration'] : false; + + if ( empty( $expiration ) ) { + return $contents; + } + + if ( $expiration >= time() ) { + return $contents; + } + + unset( $contents[ $entry_id ] ); + + $this->write_whole_file( $contents ); + + return $contents; + } + + /** + * Get rate limit entry attempts and expiration data from a file. + * + * @since 1.8.2 + * + * @param string $entry_id Rate limit entry id. + * + * @return array + */ + private function get_file_entry( $entry_id ) { + + $contents = $this->read_whole_file(); + $contents = $this->filter_expired_file_entry( $contents, $entry_id ); + + return [ + 'attempts' => isset( $contents[ $entry_id ]['attempts'] ) ? $contents[ $entry_id ]['attempts'] : false, + 'expiration' => isset( $contents[ $entry_id ]['expiration'] ) ? $contents[ $entry_id ]['expiration'] : false, + ]; + } + + /** + * Update rate limit entry attempts and expiration data in a file. + * + * @since 1.8.2 + * + * @param string $entry_id Rate limit entry id. + * @param int $attempts Number of attempts to set. + * + * @return bool + */ + private function update_file_entry( $entry_id, $attempts ) { + + if ( ! $this->create_index_html_file() ) { + return false; + } + + $contents = $this->read_whole_file(); + + $contents[ $entry_id ] = [ + 'attempts' => $attempts, + 'expiration' => time() + $this->expires_in, + ]; + + return $this->write_whole_file( $contents ); + } + + /** + * Get rate limit entry attempts and expiration data from a transient. + * + * @since 1.8.2 + * + * @param string $entry_id Rate limit entry id. + * + * @return array + */ + private function get_transient_entry( $entry_id ) { + + return [ + 'attempts' => get_transient( $entry_id ), + 'expiration' => get_option( '_transient_timeout_' . $entry_id ), + ]; + } + + /** + * Update rate limit entry attempts and expiration data in a transient. + * + * @since 1.8.2 + * + * @param string $entry_id Rate limit entry id. + * @param int $attempts Number of attempts to set. + * + * @return bool + */ + private function update_transient_entry( $entry_id, $attempts ) { + + return set_transient( $entry_id, $attempts, $this->expires_in ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Stripe.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Stripe.php new file mode 100644 index 0000000..b9a1f67 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/Stripe.php @@ -0,0 +1,81 @@ +init(); + + if ( $addon_compat && ! $addon_compat->is_supported_version() ) { + $addon_compat->hooks(); + + return false; + } + + /** + * Whether the integration is allowed to load. + * + * @since 1.8.2 + * + * @param bool $is_allowed Integration loading state. + */ + return (bool) apply_filters( 'wpforms_integrations_stripe_allow_load', true ); + } + + /** + * Load the integration. + * + * @since 1.8.2 + */ + public function load() { + + ( new Api\WebhookRoute() )->init(); + + if ( wpforms_is_admin_page( 'builder' ) ) { + ( new Admin\Builder\Enqueues() )->init(); + } + + $api = new Api\PaymentIntents(); + + ( new WebhooksHealthCheck() )->init(); + ( new DomainHealthCheck() )->init(); + ( new Admin\Payments\SingleActionsHandler() )->init( $api ); + + // Bail early for paid users with active Stripe addon. + if ( Helpers::is_pro() ) { + return; + } + + // It must be run only for the integration bundled into the core plugin. + $api->init(); + + ( new Process() )->init( $api ); + ( new Frontend() )->init( $api ); + + if ( wpforms_is_admin_page( 'settings', 'payments' ) ) { + ( new Admin\Settings() )->init(); + } + + if ( wpforms_is_admin_page( 'builder' ) ) { + ( new Admin\Builder\Settings() )->init(); + ( new Admin\Builder\Notifications() )->init(); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/StripeAddonCompatibility.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/StripeAddonCompatibility.php new file mode 100644 index 0000000..1a62d40 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/StripeAddonCompatibility.php @@ -0,0 +1,90 @@ +=' ); + } + + /** + * Check if the supported Stripe addon is active for modern builder settings. + * + * @since 1.8.4 + * + * @return bool + */ + public function is_supported_modern_settings() { + + return defined( 'WPFORMS_STRIPE_VERSION' ) + && version_compare( WPFORMS_STRIPE_VERSION, self::MIN_MODERN_SETTINGS_VERSION, '>=' ); + } + + /** + * Display wp-admin notification saying user first have to update addon to the latest version. + * + * @since 1.8.2 + */ + public function display_legacy_addon_notice() { + + echo '

              '; + esc_html_e( 'The WPForms Stripe addon is out of date. To avoid payment processing issues, please upgrade the Stripe addon to the latest version.', 'wpforms-lite' ); + echo '

              '; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/WebhooksHealthCheck.php b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/WebhooksHealthCheck.php new file mode 100644 index 0000000..36f7c18 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/WebhooksHealthCheck.php @@ -0,0 +1,329 @@ +webhooks_manager = new WebhooksManager(); + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.4 + */ + private function hooks() { + + add_action( 'admin_notices', [ $this, 'admin_notice' ] ); + add_action( self::ACTION, [ $this, 'process_webhooks_status_action' ] ); + add_action( 'action_scheduler/migration_complete', [ $this, 'maybe_schedule_task' ] ); + add_action( 'wpforms_settings_updated', [ $this, 'maybe_webhook_settings_is_updated' ], 10, 3 ); + } + + /** + * Schedule webhooks health check. + * + * @since 1.8.4 + */ + public function maybe_schedule_task() { + + /** + * Allow customers to disable webhooks health check task. + * + * @since 1.8.4 + * + * @param bool $cancel True if task needs to be canceled. + */ + $is_canceled = (bool) apply_filters( 'wpforms_integrations_stripe_webhooks_health_check_cancel', false ); + + $tasks = wpforms()->obj( 'tasks' ); + + // Bail early in some instances. + if ( + $is_canceled || + ! Helpers::has_stripe_keys() || + $tasks->is_scheduled( self::ACTION ) + ) { + return; + } + + /** + * Filters the webhooks health check interval. + * + * @since 1.8.4 + * + * @param int $interval Interval in seconds. + */ + $interval = (int) apply_filters( 'wpforms_integrations_stripe_webhooks_health_check_interval', HOUR_IN_SECONDS ); + + $tasks->create( self::ACTION ) + ->recurring( time(), $interval ) + ->register(); + } + + /** + * Process webhooks status. + * + * @since 1.8.4 + */ + public function process_webhooks_status_action() { + + // Bail out if user unchecked option to enable webhooks. + if ( ! Helpers::is_webhook_enabled() ) { + return; + } + + $last_payment = $this->get_last_stripe_payment(); + + // Bail out if there is no Stripe payment, + // and remove options for reason to avoid any edge cases. + if ( ! $last_payment ) { + delete_option( self::SIGNATURE_OPTION ); + delete_option( self::ENDPOINT_OPTION ); + + return; + } + + // Signing secret is expired, try to reconnect. + if ( + ( get_option( self::SIGNATURE_OPTION, self::STATUS_OK ) !== self::STATUS_OK ) && + ! $this->webhooks_manager->connect() + ) { + return; + } + + // If a last Stripe payment has processed status and webhooks are not valid, + // most likely there is issue with webhooks. + if ( + $last_payment['status'] === 'processed' && + time() > strtotime( $last_payment['date_created_gmt'] ) + 15 * MINUTE_IN_SECONDS && + ! $this->webhooks_manager->is_valid() + ) { + self::save_status( self::ENDPOINT_OPTION, self::STATUS_ERROR ); + + return; + } + + self::save_status( self::ENDPOINT_OPTION, self::STATUS_OK ); + } + + /** + * Determine whether there is Stripe payment. + * + * @since 1.8.4 + * + * @return array + */ + private function get_last_stripe_payment(): array { + + $payment = wpforms()->obj( 'payment' )->get_payments( + [ + 'gateway' => 'stripe', + 'mode' => 'any', + 'number' => 1, + ] + ); + + return ! empty( $payment[0] ) ? $payment[0] : []; + } + + /** + * Display notice about issues with webhooks. + * + * @since 1.8.4 + */ + public function admin_notice() { + + // Bail out if Stripe account is not connected. + if ( ! Helpers::has_stripe_keys() ) { + return; + } + + // Bail out if webhooks is not enabled. + if ( ! Helpers::is_webhook_enabled() ) { + return; + } + + // Bail out if webhooks is configured and active. + if ( Helpers::is_webhook_configured() && $this->is_webhooks_active() ) { + return; + } + + // Bail out if there are no Stripe payments. + if ( ! $this->get_last_stripe_payment() ) { + return; + } + + $notice = sprintf( + wp_kses( /* translators: %s - WPForms.com URL for Stripe webhooks documentation. */ + __( 'Heads up! Looks like you have a problem with your webhooks configuration. Please check and confirm that you\'ve configured the WPForms webhooks in your Stripe account. This notice will disappear automatically when a new Stripe request comes in. See our documentation for more information.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-stripe-webhooks/', 'Admin', 'Stripe Webhooks not active' ) ) + ); + + Notice::error( + $notice, + [ + 'dismiss' => true, + 'slug' => self::NOTICE_ID, + ] + ); + } + + /** + * Maybe perform updating of endpoint URL or register AS task in certain cases. + * + * @since 1.8.4 + * + * @param array $settings An array of plugin settings. + * @param bool $updated Whether an option was updated or not. + * @param array $old_settings An old array of plugin settings. + */ + public function maybe_webhook_settings_is_updated( $settings, $updated, $old_settings ) { + + // Bail out early if Webhooks is not enabled. + if ( empty( $settings['stripe-webhooks-enabled'] ) ) { + return; + } + + // Bail out early if it's not Settings > Payments admin page. + if ( + ! isset( $_POST['nonce'] ) || + ! wpforms_is_admin_page( 'settings', 'payments' ) || + ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'wpforms-settings-nonce' ) + ) { + return; + } + + // If Webhooks Method is changed, we have to update an endpoint's URL. + if ( + ! empty( $settings['stripe-webhooks-communication'] ) && + ! empty( $old_settings['stripe-webhooks-communication'] ) && + $settings['stripe-webhooks-communication'] !== $old_settings['stripe-webhooks-communication'] + ) { + $this->webhooks_manager->update( + $this->webhooks_manager->get_id(), + [ + 'url' => Helpers::get_webhook_url(), + 'disabled' => false, + ] + ); + + return; + } + + $this->maybe_schedule_task(); + } + + /** + * Determine whether webhooks is active. + * + * @since 1.8.4 + * + * @return bool + */ + public function is_webhooks_active() { + + if ( get_option( self::ENDPOINT_OPTION, self::STATUS_OK ) !== self::STATUS_OK ) { + return false; + } + + if ( get_option( self::SIGNATURE_OPTION, self::STATUS_OK ) !== self::STATUS_OK ) { + return false; + } + + return true; + } + + /** + * Save webhooks status. + * + * @since 1.8.4 + * + * @param string $option Option name. + * @param string $value Status value. + */ + public static function save_status( $option, $value ) { + + if ( ! in_array( $value, [ self::STATUS_OK, self::STATUS_ERROR ], true ) ) { + return; + } + + update_option( $option, $value ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/apple-developer-merchantid-domain-association b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/apple-developer-merchantid-domain-association new file mode 100644 index 0000000..2ff95c9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/Stripe/apple-developer-merchantid-domain-association @@ -0,0 +1 @@ +7B227073704964223A2239373943394538343346343131343044463144313834343232393232313734313034353044314339464446394437384337313531303944334643463542433731222C2276657273696F6E223A312C22637265617465644F6E223A313536363233343735303036312C227369676E6174757265223A22333038303036303932613836343838366637306430313037303261303830333038303032303130313331306633303064303630393630383634383031363530333034303230313035303033303830303630393261383634383836663730643031303730313030303061303830333038323033653333303832303338386130303330323031303230323038346333303431343935313964353433363330306130363038326138363438636533643034303330323330376133313265333032633036303335353034303330633235343137303730366336353230343137303730366336393633363137343639366636653230343936653734363536373732363137343639366636653230343334313230326432303437333333313236333032343036303335353034306230633164343137303730366336353230343336353732373436393636363936333631373436393666366532303431373537343638366637323639373437393331313333303131303630333535303430613063306134313730373036633635323034393665363332653331306233303039303630333535303430363133303235353533333031653137306433313339333033353331333833303331333333323335333735613137306433323334333033353331333633303331333333323335333735613330356633313235333032333036303335353034303330633163363536333633326437333664373032643632373236663662363537323264373336393637366535663535343333343264353035323466343433313134333031323036303335353034306230633062363934663533323035333739373337343635366437333331313333303131303630333535303430613063306134313730373036633635323034393665363332653331306233303039303630333535303430363133303235353533333035393330313330363037326138363438636533643032303130363038326138363438636533643033303130373033343230303034633231353737656465626436633762323231386636386464373039306131323138646337623062643666326332383364383436303935643934616634613534313162383334323065643831316633343037653833333331663163353463336637656233323230643662616435643465666634393238393839336537633066313361333832303231313330383230323064333030633036303335353164313330313031666630343032333030303330316630363033353531643233303431383330313638303134323366323439633434663933653465663237653663346636323836633366613262626664326534623330343530363038326230363031303530353037303130313034333933303337333033353036303832623036303130353035303733303031383632393638373437343730336132663266366636333733373032653631373037303663363532653633366636643266366636333733373033303334326436313730373036633635363136393633363133333330333233303832303131643036303335353164323030343832303131343330383230313130333038323031306330363039326138363438383666373633363430353031333038316665333038316333303630383262303630313035303530373032303233303831623630633831623335323635366336393631366536333635323036663665323037343638363937333230363336353732373436393636363936333631373436353230363237393230363136653739323037303631373237343739323036313733373337353664363537333230363136333633363537303734363136653633363532303666363632303734363836353230373436383635366532303631373037303663363936333631363236633635323037333734363136653634363137323634323037343635373236643733323036313665363432303633366636653634363937343639366636653733323036663636323037353733363532633230363336353732373436393636363936333631373436353230373036663663363936333739323036313665363432303633363537323734363936363639363336313734363936663665323037303732363136333734363936333635323037333734363137343635366436353665373437333265333033363036303832623036303130353035303730323031313632613638373437343730336132663266373737373737326536313730373036633635326536333666366432663633363537323734363936363639363336313734363536313735373436383666373236393734373932663330333430363033353531643166303432643330326233303239613032376130323538363233363837343734373033613266326636333732366332653631373037303663363532653633366636643266363137303730366336353631363936333631333332653633373236633330316430363033353531643065303431363034313439343537646236666435373438313836383938393736326637653537383530376537396235383234333030653036303335353164306630313031666630343034303330323037383033303066303630393261383634383836663736333634303631643034303230353030333030613036303832613836343863653364303430333032303334393030333034363032323130306265303935373166653731653165373335623535653561666163623463373266656234343566333031383532323263373235313030326236316562643666353530323231303064313862333530613564643664643665623137343630333562313165623263653837636661336536616636636264383338303839306463383263646461613633333038323032656533303832303237356130303330323031303230323038343936643266626633613938646139373330306130363038326138363438636533643034303330323330363733313162333031393036303335353034303330633132343137303730366336353230353236663666373432303433343132303264323034373333333132363330323430363033353530343062306331643431373037303663363532303433363537323734363936363639363336313734363936663665323034313735373436383666373236393734373933313133333031313036303335353034306130633061343137303730366336353230343936653633326533313062333030393036303335353034303631333032353535333330316531373064333133343330333533303336333233333334333633333330356131373064333233393330333533303336333233333334333633333330356133303761333132653330326330363033353530343033306332353431373037303663363532303431373037303663363936333631373436393666366532303439366537343635363737323631373436393666366532303433343132303264323034373333333132363330323430363033353530343062306331643431373037303663363532303433363537323734363936363639363336313734363936663665323034313735373436383666373236393734373933313133333031313036303335353034306130633061343137303730366336353230343936653633326533313062333030393036303335353034303631333032353535333330353933303133303630373261383634386365336430323031303630383261383634386365336430333031303730333432303030346630313731313834313964373634383564353161356532353831303737366538383061326566646537626165346465303864666334623933653133333536643536363562333561653232643039373736306432323465376262613038666437363137636538386362373662623636373062656338653832393834666635343435613338316637333038316634333034363036303832623036303130353035303730313031303433613330333833303336303630383262303630313035303530373330303138363261363837343734373033613266326636663633373337303265363137303730366336353265363336663664326636663633373337303330333432643631373037303663363537323666366637343633363136373333333031643036303335353164306530343136303431343233663234396334346639336534656632376536633466363238366333666132626266643265346233303066303630333535316431333031303166663034303533303033303130316666333031663036303335353164323330343138333031363830313462626230646561313538333338383961613438613939646562656264656261666461636232346162333033373036303335353164316630343330333032653330326361303261613032383836323636383734373437303361326632663633373236633265363137303730366336353265363336663664326636313730373036633635373236663666373436333631363733333265363337323663333030653036303335353164306630313031666630343034303330323031303633303130303630613261383634383836663736333634303630323065303430323035303033303061303630383261383634386365336430343033303230333637303033303634303233303361636637323833353131363939623138366662333563333536636136326266663431376564643930663735346461323865626566313963383135653432623738396638393866373962353939663938643534313064386639646539633266653032333033323264643534343231623061333035373736633564663333383362393036376664313737633263323136643936346663363732363938323132366635346638376137643162393963623962303938393231363130363939306630393932316430303030333138323031386233303832303138373032303130313330383138363330376133313265333032633036303335353034303330633235343137303730366336353230343137303730366336393633363137343639366636653230343936653734363536373732363137343639366636653230343334313230326432303437333333313236333032343036303335353034306230633164343137303730366336353230343336353732373436393636363936333631373436393666366532303431373537343638366637323639373437393331313333303131303630333535303430613063306134313730373036633635323034393665363332653331306233303039303630333535303430363133303235353533303230383463333034313439353139643534333633303064303630393630383634383031363530333034303230313035303061303831393533303138303630393261383634383836663730643031303930333331306230363039326138363438383666373064303130373031333031633036303932613836343838366637306430313039303533313066313730643331333933303338333133393331333733313332333333303561333032613036303932613836343838366637306430313039333433313164333031623330306430363039363038363438303136353033303430323031303530306131306130363038326138363438636533643034303330323330326630363039326138363438383666373064303130393034333132323034323062303731303365313430613462386231376262613230316130336163643036396234653431366232613263383066383661383338313435633239373566633131333030613036303832613836343863653364303430333032303434363330343430323230343639306264636637626461663833636466343934396534633035313039656463663334373665303564373261313264376335666538633033303033343464663032323032363764353863393365626233353031333836363062353730373938613064643731313734316262353864626436613138363633353038353431656565393035303030303030303030303030227D \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/UncannyAutomator/UncannyAutomator.php b/wp-content/plugins/wpforms-lite/src/Integrations/UncannyAutomator/UncannyAutomator.php new file mode 100644 index 0000000..0c86566 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/UncannyAutomator/UncannyAutomator.php @@ -0,0 +1,204 @@ +name = esc_html__( 'Uncanny Automator', 'wpforms-lite' ); + $this->icon = WPFORMS_PLUGIN_URL . 'assets/images/icon-provider-uncanny-automator.png'; + + $this->hooks(); + } + + /** + * Register all hooks. + * + * @since 1.7.0 + */ + private function hooks() { + + add_action( 'wpforms_providers_panel_sidebar', [ $this, 'display_sidebar' ], self::PRIORITY ); + add_action( 'wpforms_providers_panel_content', [ $this, 'display_content' ], self::PRIORITY ); + + add_filter( 'automator_on_activate_redirect_to_dashboard', '__return_false' ); + add_action( 'wpforms_plugin_activated', [ $this, 'update_source' ] ); + } + + /** + * Display content inside the panel sidebar area. + * + * @since 1.7.0 + */ + public function display_sidebar() { + + printf( + ' + %4$s%3$s + ', + esc_attr( self::SLUG ), + esc_url( $this->icon ), + esc_html( $this->name ), + esc_attr( $this->name ) + ); + } + + /** + * Display content inside the panel area. + * + * @since 1.7.0 + */ + public function display_content() { + + $plugins = get_plugins(); + $is_installed = ! empty( $plugins[ sprintf( '%1$s/%1$s.php', self::SLUG ) ] ); + $button_label = $is_installed ? esc_html__( 'Activate Now', 'wpforms-lite' ) : esc_html__( 'Install Now', 'wpforms-lite' ); + $learn_more_url = esc_url( + add_query_arg( + [ + 'utm_source' => 'wpforms', + 'utm_medium' => 'form_marketing', + 'utm_content' => 'learn_more_btn_before_install', + 'utm_r' => 150, + ], + 'https://automatorplugin.com/wpforms-automation/' + ) + ); + ?> + +
              + +
              + name ); ?> + %5$s', + esc_attr( + sprintf( /* translators: %s - plugin name. */ + __( '%s plugin', 'wpforms-lite' ), + $this->name + ) + ), + esc_attr( self::SLUG ), + $is_installed ? 'activate' : 'install', + esc_attr( wp_create_nonce( 'wpforms-admin' ) ), + esc_html( $button_label ) + ); + ?> +
              + +
              + <?php echo esc_attr( $this->name ); ?> +
              +

              +

              +

              + + + +

              +
              +
              + +
              +
              +
              +
              +
              + +
              + + init(); + } + + /** + * Initialize the task with all the proper checks. + * + * @since 1.6.1 + */ + public function init() { + + // Register the action handler. + $this->hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + $this->recurring( $this->generate_start_date(), WEEK_IN_SECONDS )->register(); + } + + /** + * Add hooks. + * + * @since 1.7.3 + */ + private function hooks() { + + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Randomly pick a timestamp + * which is not more than 1 week in the future + * starting from next sunday. + * + * @since 1.6.1 + * + * @return int + */ + private function generate_start_date() { + + $tracking = []; + + $tracking['days'] = wp_rand( 0, 6 ) * DAY_IN_SECONDS; + $tracking['hours'] = wp_rand( 0, 23 ) * HOUR_IN_SECONDS; + $tracking['minutes'] = wp_rand( 0, 59 ) * MINUTE_IN_SECONDS; + $tracking['seconds'] = wp_rand( 0, 59 ); + + return strtotime( 'next sunday' ) + array_sum( $tracking ); + } + + /** + * Send the actual data in a POST request. + * + * @since 1.6.1 + */ + public function process() { + + $last_run = get_option( self::LAST_RUN ); + + // Make sure we do not run it more than once a day. + if ( + $last_run !== false && + ( time() - $last_run ) < DAY_IN_SECONDS + ) { + return; + } + + // Send data to the usage tracking API. + $ut = new UsageTracking(); + + wp_remote_post( + self::TRACK_URL, + [ + 'timeout' => 5, + 'redirection' => 5, + 'httpversion' => '1.1', + 'blocking' => true, + 'body' => $ut->get_data(), + 'user-agent' => $ut->get_user_agent(), + ] + ); + + // Update the last run option to the current timestamp. + update_option( self::LAST_RUN, time() ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/UsageTracking/UsageTracking.php b/wp-content/plugins/wpforms-lite/src/Integrations/UsageTracking/UsageTracking.php new file mode 100644 index 0000000..b5ca593 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/UsageTracking/UsageTracking.php @@ -0,0 +1,1047 @@ +is_enabled() ) { + ( new SendUsageTask() )->cancel(); + } + } + ); + + // Register the action handler only if enabled. + if ( $this->is_enabled() ) { + add_filter( + 'wpforms_tasks_get_tasks', + static function ( $tasks ) { + + $tasks[] = SendUsageTask::class; + + return $tasks; + } + ); + } + } + + /** + * Add "Allow Usage Tracking" to WPForms settings. + * + * @since 1.6.1 + * + * @param array $settings WPForms settings. + * + * @return array + */ + public function settings_misc_option( $settings ) { + + $settings['misc'][ self::SETTINGS_SLUG ] = [ + 'id' => self::SETTINGS_SLUG, + 'name' => esc_html__( 'Allow Usage Tracking', 'wpforms-lite' ), + 'desc' => esc_html__( 'By allowing us to track usage data, we can better help you, as we will know which WordPress configurations, themes, and plugins we should test.', 'wpforms-lite' ), + 'type' => 'toggle', + 'status' => true, + ]; + + return $settings; + } + + /** + * Get the User Agent string that will be sent to the API. + * + * @since 1.6.1 + * + * @return string + */ + public function get_user_agent(): string { + + return 'WPForms/' . WPFORMS_VERSION . '; ' . get_bloginfo( 'url' ); + } + + /** + * Get data for sending to the server. + * + * @since 1.6.1 + * + * @return array + * @noinspection PhpUndefinedConstantInspection + * @noinspection PhpUndefinedFunctionInspection + */ + public function get_data(): array { + + global $wpdb; + + $theme_data = wp_get_theme(); + $activated_dates = get_option( 'wpforms_activated', [] ); + $first_form_date = get_option( 'wpforms_forms_first_created' ); + $forms = $this->get_all_forms(); + $forms_total = count( $forms ); + $form_templates_total = count( $this->get_all_forms( 'wpforms-template' ) ); + $entries_total = $this->get_entries_total(); + $form_fields_count = $this->get_form_fields_count( $forms ); + + $data = [ + // Generic data (environment). + 'url' => home_url(), + 'php_version' => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION, + 'wp_version' => get_bloginfo( 'version' ), + 'mysql_version' => $wpdb->db_version(), + 'server_version' => isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : '', + 'is_ssl' => is_ssl(), + 'is_multisite' => is_multisite(), + 'is_network_activated' => $this->is_active_for_network(), + 'is_wpcom' => defined( 'IS_WPCOM' ) && IS_WPCOM, + 'is_wpcom_vip' => ( defined( 'WPCOM_IS_VIP_ENV' ) && WPCOM_IS_VIP_ENV ) || ( function_exists( 'wpcom_is_vip' ) && wpcom_is_vip() ), + 'is_wp_cache' => defined( 'WP_CACHE' ) && WP_CACHE, + 'is_wp_rest_api_enabled' => $this->is_rest_api_enabled(), + 'is_user_logged_in' => is_user_logged_in(), + 'sites_count' => $this->get_sites_total(), + 'active_plugins' => $this->get_active_plugins(), + 'theme_name' => $theme_data->get( 'Name' ), + 'theme_version' => $theme_data->get( 'Version' ), + 'locale' => get_locale(), + 'timezone_offset' => wp_timezone_string(), + // WPForms-specific data. + 'wpforms_version' => WPFORMS_VERSION, + 'wpforms_license_key' => wpforms_get_license_key(), + 'wpforms_license_type' => $this->get_license_type(), + 'wpforms_license_status' => $this->get_license_status(), + 'wpforms_is_pro' => wpforms()->is_pro(), + 'wpforms_entries_avg' => $this->get_entries_avg( $forms_total, $entries_total ), + 'wpforms_entries_total' => $entries_total, + 'wpforms_entries_last_7days' => $this->get_entries_total( '7days' ), + 'wpforms_entries_last_30days' => $this->get_entries_total( '30days' ), + 'wpforms_forms_total' => $forms_total, + 'wpforms_form_fields_count' => $form_fields_count, + 'wpforms_form_templates_total' => $form_templates_total, + 'wpforms_form_antispam_stat' => $this->get_form_antispam_stat( $forms ), + 'wpforms_challenge_stats' => get_option( 'wpforms_challenge', [] ), + 'wpforms_lite_installed_date' => $this->get_installed( $activated_dates, 'lite' ), + 'wpforms_pro_installed_date' => $this->get_installed( $activated_dates, 'pro' ), + 'wpforms_builder_opened_date' => (int) get_option( 'wpforms_builder_opened_date', 0 ), + 'wpforms_settings' => $this->get_settings( $forms ), + 'wpforms_integration_active' => $this->get_forms_integrations( $forms ), + 'wpforms_payments_active' => $this->get_payments_active( $forms ), + 'wpforms_product_quantities' => [ + 'payment-single' => $this->count_fields_with_setting( $forms, 'payment-single', 'enable_quantity' ), + 'payment-select' => $this->count_fields_with_setting( $forms, 'payment-select', 'enable_quantity' ), + ], + 'wpforms_order_summaries' => $this->count_fields_with_setting( $forms, 'payment-total', 'summary' ), + 'wpforms_multiple_confirmations' => count( $this->get_forms_with_multiple_confirmations( $forms ) ), + 'wpforms_multiple_notifications' => count( $this->get_forms_with_multiple_notifications( $forms ) ), + 'wpforms_ajax_form_submissions' => count( $this->get_ajax_form_submissions( $forms ) ), + 'wpforms_notification_count' => wpforms()->obj( 'notifications' )->get_count(), + 'wpforms_stats' => $this->get_additional_stats(), + 'wpforms_ai' => AIHelpers::is_used(), + 'wpforms_ai_killswitch' => AIHelpers::is_disabled(), + 'wpforms_disabled_entries_count' => count( $this->get_forms_with_disabled_entries( $forms ) ), + ]; + + $data = $this->add_promotion_plugin_data( $data ); + + if ( ! empty( $first_form_date ) ) { + $data['wpforms_forms_first_created'] = $first_form_date; + } + + if ( $data['is_multisite'] ) { + $data['url_primary'] = network_site_url(); + } + + return $data; + } + + /** + * Adds promotional plugin data to the provided array. + * + * @since 1.9.8.6 + * + * @param array $data An array of existing data. + * + * @return array Modified data array with promotional plugin information added, if applicable. + */ + private function add_promotion_plugin_data( array $data ): array { + + $plugins = [ + 'wpconsent', + 'sugar-calendar', + 'duplicator', + 'uncannyautomator', + ]; + + foreach ( $plugins as $plugin ) { + $source = (string) get_option( $plugin . '_source', '' ); + $date = (int) get_option( $plugin . '_date', 0 ); + + if ( $date && strpos( $source, 'WPForms' ) !== false ) { + $data[ 'wpforms_' . $plugin . '_date' ] = $date; + } + } + + return $data; + } + + /** + * Get the license type. + * + * @since 1.6.1 + * @since 1.7.2 Clarified the license type. + * @since 1.7.9 Return only the license type, not the status. + * + * @return string + */ + private function get_license_type(): string { + + return wpforms()->is_pro() ? wpforms_get_license_type() : 'lite'; + } + + /** + * Get the license status. + * + * @since 1.7.9 + * + * @return string + */ + private function get_license_status(): string { + + if ( ! wpforms()->is_pro() ) { + return 'lite'; + } + + $license_type = wpforms_get_license_type(); + $license_key = wpforms_get_license_key(); + + if ( ! $license_type ) { + return empty( $license_key ) ? 'no license' : 'not verified'; + } + + if ( wpforms_setting( 'is_expired', false, 'wpforms_license' ) ) { + return 'expired'; + } + + if ( wpforms_setting( 'is_disabled', false, 'wpforms_license' ) ) { + return 'disabled'; + } + + if ( wpforms_setting( 'is_invalid', false, 'wpforms_license' ) ) { + return 'invalid'; + } + + // The correct type is returned in get_license_type(), so we "collapse" them here to a single value. + if ( in_array( $license_type, [ 'basic', 'plus', 'pro', 'elite', 'ultimate', 'agency' ], true ) ) { + $license_type = 'correct'; + } + + return $license_type; + } + + /** + * Get all settings, except those with sensitive data. + * + * @since 1.6.1 + * @since 1.9.3 Added $forms parameter. + * + * @param array $forms List of forms. + * + * @return array + */ + private function get_settings( array $forms ): array { + + // Remove keys with exact names that we don't need. + $settings = array_diff_key( + get_option( 'wpforms_settings', [] ), + array_flip( + [ + 'stripe-test-secret-key', + 'stripe-test-publishable-key', + 'stripe-live-secret-key', + 'stripe-live-publishable-key', + 'stripe-webhooks-secret-test', + 'stripe-webhooks-secret-live', + 'stripe-webhooks-id-test', + 'stripe-webhooks-id-live', + 'square-webhooks-id-sandbox', + 'square-webhooks-id-live', + 'square-webhooks-secret-sandbox', + 'square-webhooks-secret-live', + 'authorize_net-test-api-login-id', + 'authorize_net-test-transaction-key', + 'authorize_net-live-api-login-id', + 'authorize_net-live-transaction-key', + 'square-location-id-sandbox', + 'square-location-id-production', + 'geolocation-google-places-api-key', + 'geolocation-algolia-places-application-id', + 'geolocation-algolia-places-search-only-api-key', + 'geolocation-mapbox-search-access-token', + 'recaptcha-site-key', + 'recaptcha-secret-key', + 'recaptcha-fail-msg', + 'hcaptcha-site-key', + 'hcaptcha-secret-key', + 'hcaptcha-fail-msg', + 'turnstile-site-key', + 'turnstile-secret-key', + 'turnstile-fail-msg', + 'pdf-ninja-api_key', + ] + ) + ); + + $data = []; + + // Remove keys with a vague names that we don't need. + foreach ( $settings as $key => $value ) { + if ( strpos( $key, 'validation-' ) !== false ) { + continue; + } + + $data[ $key ] = $value; + } + + $lite_connect_data = get_option( Integration::get_option_name() ); + + // If lite connect has been restored, set lite connect data. + if ( + isset( $lite_connect_data['import']['status'] ) && + $lite_connect_data['import']['status'] === 'done' + ) { + $data['lite_connect'] = [ + 'restore_date' => $lite_connect_data['import']['ended_at'], + 'restored_entry_count' => Integration::get_entries_count(), + ]; + } + + // Add Dropbox Delete Local Files setting usage count. + $data['dropbox_delete_local_files_setting_count'] = $this->get_dropbox_delete_local_files_setting_count( $forms ); + + // Add favorite templates to the settings array. + return array_merge( $data, $this->get_favorite_templates() ); + } + + /** + * Get the count of forms with Delete Local Files active option for Dropbox. + * + * @since 1.9.3 + * + * @param array $forms List of forms. + * + * @return int + */ + private function get_dropbox_delete_local_files_setting_count( array $forms ): int { + + $delete_local_files_count = 0; + + foreach ( $forms as $form ) { + // Check if the Dropbox integration is configured in the form. + if ( empty( $form->post_content['providers']['dropbox'] ) ) { + continue; + } + + // Delete Local Files option is applied for all connections if applied, + // so it's enough to check the first connection only. + $connection = current( $form->post_content['providers']['dropbox'] ); + + if ( ! $connection || ! isset( $connection['delete_local_files'] ) ) { + continue; + } + + ++$delete_local_files_count; + } + + return $delete_local_files_count; + } + + /** + * Get the list of active plugins. + * + * @since 1.6.1 + * + * @return array + */ + private function get_active_plugins(): array { + + if ( ! function_exists( 'get_plugins' ) ) { + include ABSPATH . '/wp-admin/includes/plugin.php'; + } + $active = is_multisite() ? + array_merge( get_option( 'active_plugins', [] ), array_flip( get_site_option( 'active_sitewide_plugins', [] ) ) ) : + get_option( 'active_plugins', [] ); + $plugins = array_intersect_key( get_plugins(), array_flip( $active ) ); + + return array_map( + static function ( $plugin ) { + + if ( isset( $plugin['Version'] ) ) { + return $plugin['Version']; + } + + return 'Not Set'; + }, + $plugins + ); + } + + /** + * Installed date. + * + * @since 1.6.1 + * + * @param array $activated_dates Input array with dates. + * @param string $key Input key what you want to get. + * + * @return mixed + */ + private function get_installed( array $activated_dates, string $key ) { + + if ( ! empty( $activated_dates[ $key ] ) ) { + return $activated_dates[ $key ]; + } + + return false; + } + + /** + * Number of forms with some integrations active. + * + * @since 1.6.1 + * + * @param array $forms List of forms. + * + * @return array List of forms with active integrations count. + */ + private function get_forms_integrations( array $forms ): array { + + $integrations = array_map( + static function ( $form ) { + + if ( empty( $form->post_content['providers'] ) ) { + return false; + } + + $active_integrations = []; + + foreach ( $form->post_content['providers'] as $provider_slug => $connections ) { + if ( ! empty( $connections ) ) { + $active_integrations[] = $provider_slug; + } + } + + return $active_integrations; + }, + $forms + ); + + $integrations = array_filter( $integrations ); + + if ( count( $integrations ) > 0 ) { + $integrations = call_user_func_array( 'array_merge', array_values( $integrations ) ); + } + + return array_count_values( $integrations ); + } + + /** + * Number of forms with active payments. + * + * @since 1.6.1 + * + * @param array $forms Input forms list. + * + * @return array List of forms with active payments count. + */ + private function get_payments_active( array $forms ): array { + + $payments = array_map( + static function ( $form ) { + + if ( empty( $form->post_content['payments'] ) ) { + return false; + } + + $enabled = []; + + foreach ( $form->post_content['payments'] as $key => $value ) { + if ( ! empty( $value['enable'] ) ) { + $enabled[] = $key; + } + } + + return empty( $enabled ) ? false : $enabled; + }, + $forms + ); + + $payments = array_filter( $payments ); + + if ( count( $payments ) > 0 ) { + $payments = call_user_func_array( 'array_merge', array_values( $payments ) ); + } + + return array_count_values( $payments ); + } + + /** + * Forms with multiple notifications. + * + * @since 1.6.1 + * + * @param array $forms List of forms to check. + * + * @return array List of forms with multiple notifications. + */ + private function get_forms_with_multiple_notifications( array $forms ): array { + + return array_filter( + $forms, + static function ( $form ) { + + return ! empty( $form->post_content['settings']['notifications'] ) && count( $form->post_content['settings']['notifications'] ) > 1; + } + ); + } + + /** + * Forms with multiple confirmations. + * + * @since 1.6.1 + * + * @param array $forms List of forms to check. + * + * @return array List of forms with multiple confirmations. + */ + private function get_forms_with_multiple_confirmations( array $forms ): array { + + return array_filter( + $forms, + static function ( $form ) { + + return ! empty( $form->post_content['settings']['confirmations'] ) && count( $form->post_content['settings']['confirmations'] ) > 1; + } + ); + } + + /** + * Forms with ajax submission option enabled. + * + * @since 1.6.1 + * + * @param array $forms All forms. + * + * @return array + */ + private function get_ajax_form_submissions( array $forms ): array { + + return array_filter( + $forms, + static function ( $form ) { + + return ! empty( $form->post_content['settings']['ajax_submit'] ); + } + ); + } + + /** + * Retrieve forms with disabled entries. + * + * @since 1.9.8 + * + * @param array $forms List of forms. + * + * @return array. + */ + private function get_forms_with_disabled_entries( array $forms ): array { + + return array_filter( + $forms, + static function ( $form ) { + + return ! empty( $form->post_content['settings']['disable_entries'] ); + } + ); + } + + /** + * Total number of sites. + * + * @since 1.6.1 + * + * @return int + */ + private function get_sites_total(): int { + + return function_exists( 'get_blog_count' ) ? (int) get_blog_count() : 1; + } + + /** + * Total number of entries. + * + * @since 1.6.1 + * + * @param string $period Which period should be counted? Possible values: 7days, 30days. + * Everything else will mean "all" entries. + * + * @return int + */ + private function get_entries_total( string $period = 'all' ): int { + + if ( ! wpforms()->is_pro() ) { + return $this->get_entries_total_lite( $period ); + } + + $args = []; + + // Limit results to only forms, excluding form templates. + $form_ids = wp_list_pluck( $this->get_all_forms(), 'ID' ); + + if ( ! empty( $form_ids ) ) { + $args['form_id'] = $form_ids; + } + + switch ( $period ) { + case '7days': + $args = [ + 'date' => [ + gmdate( 'Y-m-d', strtotime( '-7 days' ) ), + gmdate( 'Y-m-d' ), + ], + ]; + break; + + case '30days': + $args = [ + 'date' => [ + gmdate( 'Y-m-d', strtotime( '-30 days' ) ), + gmdate( 'Y-m-d' ), + ], + ]; + break; + } + + $entry_obj = wpforms()->obj( 'entry' ); + + return $entry_obj ? $entry_obj->get_entries( $args, true ) : 0; + } + + /** + * Total number of entries in Lite. + * + * @since 1.9.0 + * + * @param string $period Which period should be counted? Possible values: 7days, 30days. + * Everything else will mean "all" entries. + * + * @return int + */ + private function get_entries_total_lite( string $period = 'all' ): int { + + if ( $period === '7days' || $period === '30days' ) { + return 0; + } + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $count = $wpdb->get_var( + "SELECT SUM(meta_value) + FROM $wpdb->postmeta + WHERE meta_key = 'wpforms_entries_count';" + ); + + return (int) $count; + } + + /** + * Forms field occurrences. + * + * @since 1.7.9 + * + * @param array $forms List of forms. + * + * @return array List of field occurrences in all forms created. + */ + private function get_form_fields_count( array $forms ): array { + + // Bail early, in case there are no forms created yet! + if ( empty( $forms ) ) { + return []; + } + + $fields = array_map( + static function ( $form ) { + + return $form->post_content['fields'] ?? []; + }, + $forms + ); + + $fields_flatten = array_merge( [], ...$fields ); + $field_types = array_column( $fields_flatten, 'type' ); + + return array_count_values( $field_types ); + } + + /** + * Determines whether the plugin is active for the entire network. + * + * This is a copy of the WP core is_plugin_active_for_network() function. + * + * @since 1.8.2 + * + * @return bool + */ + private function is_active_for_network(): bool { + + // Bail early, in case we are not in multisite. + if ( ! is_multisite() ) { + return false; + } + + // Get all active plugins. + $plugins = get_site_option( 'active_sitewide_plugins' ); + + // Bail early, in case the plugin is active for the entire network. + if ( isset( $plugins[ plugin_basename( WPFORMS_PLUGIN_FILE ) ] ) ) { + return true; + } + + return false; + } + + /** + * Average entries count. + * + * @since 1.6.1 + * + * @param int $forms Total forms count. + * @param int $entries Total entries count. + * + * @return int + */ + private function get_entries_avg( int $forms, int $entries ): int { + + return $forms ? round( $entries / $forms ) : 0; + } + + /** + * Get all forms. + * + * @since 1.6.1 + * @since 1.8.9 Added post_type parameter. + * + * @param string|string[] $post_type Allow to sort result by post_type. By default, it's 'wpforms'. + * + * @return array + */ + private function get_all_forms( $post_type = 'wpforms' ): array { + + $forms = wpforms()->obj( 'form' )->get( '', [ 'post_type' => $post_type ] ); + + if ( ! is_array( $forms ) ) { + return []; + } + + return array_map( + static function ( $form ) { + + $form->post_content = wpforms_decode( $form->post_content ); + + return $form; + }, + $forms + ); + } + + /** + * Get the favorite templates. + * + * @since 1.7.7 + * + * @return array + */ + private function get_favorite_templates(): array { + + $settings = []; + $templates = (array) get_option( Templates::FAVORITE_TEMPLATES_OPTION, [] ); + + foreach ( $templates as $user_templates ) { + foreach ( $user_templates as $template => $v ) { + $name = 'fav_templates_' . str_replace( '-', '_', $template ); + $settings[ $name ] = empty( $settings[ $name ] ) ? 1 : ++$settings[ $name ]; + } + } + + return $settings; + } + + /** + * Test if the REST API is accessible. + * + * The REST API might be inaccessible due to various security measures, + * or it might be completely disabled by a plugin. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function is_rest_api_enabled(): bool { + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** This filter is documented in wp-includes/class-wp-http-streams.php */ + $sslverify = apply_filters( 'https_local_ssl_verify', false ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $url = rest_url( 'wp/v2/types/post' ); + $response = wp_remote_get( + $url, + [ + 'timeout' => 10, + 'cookies' => is_user_logged_in() ? wp_unslash( $_COOKIE ) : [], + 'sslverify' => $sslverify, + 'headers' => [ + 'Cache-Control' => 'no-cache', + 'X-WP-Nonce' => wp_create_nonce( 'wp_rest' ), + ], + ] + ); + + // When testing the REST API, an error was encountered, leave early. + if ( is_wp_error( $response ) ) { + return false; + } + + // When testing the REST API, an unexpected result was returned, leave early. + if ( wp_remote_retrieve_response_code( $response ) !== 200 ) { + return false; + } + + // The REST API did not behave correctly, leave early. + if ( ! wpforms_is_json( wp_remote_retrieve_body( $response ) ) ) { + return false; + } + + // We are all set. Confirm the connection. + return true; + } + + /** + * Retrieves additional statistics. + * + * @since 1.8.8 + * + * @return array + */ + private function get_additional_stats(): array { + + // Initialize an empty array to store the statistics. + $stats = []; + + return $this->get_admin_pointer_stats( $stats ); + } + + /** + * Retrieves statistics for admin pointers. + * This function retrieves statistics for admin pointers based on their engagement or dismissal status. + * + * Note: Pointers can only be engaged (interacted with) or dismissed. + * + * - If the value is 1 or true, it means the pointer is shown and interacted with (engaged). + * - If the value is 0 or false, it means the pointer is dismissed. + * - If there is no pointer ID in the stats, it means the user hasn't seen the pointer yet. + * + * @since 1.8.8 + * + * @param array $stats An array containing existing statistics. + * + * @return array + */ + private function get_admin_pointer_stats( array $stats ): array { + + $pointers = get_option( 'wpforms_pointers', [] ); + + // If there are no pointers, return empty statistics. + if ( empty( $pointers ) ) { + return $stats; + } + + // Pointers can only be interacted with or dismissed. + + // If there are engagement pointers, process them. + if ( isset( $pointers['engagement'] ) ) { + foreach ( $pointers['engagement'] as $pointer ) { + $stats[ sanitize_key( $pointer ) ] = true; + } + } + + // If there are dismiss pointers, process them. + if ( isset( $pointers['dismiss'] ) ) { + foreach ( $pointers['dismiss'] as $pointer ) { + $stats[ sanitize_key( $pointer ) ] = false; + } + } + + return $stats; + } + + /** + * Retrieves form anti-spam settings statistic. + * + * @since 1.9.0 + * + * @param array $forms List of forms and their settings. + * + * @return array + */ + private function get_form_antispam_stat( array $forms ): array { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $stat = [ + 'antispam' => 0, + 'antispam_v3' => 0, + 'akismet' => 0, + 'store_spam_entries' => 0, + 'time_limit' => 0, + 'country_filter' => 0, + 'keyword_filter' => 0, + 'captcha' => 0, + ]; + + foreach ( $forms as $form ) { + $settings = $form->post_content['settings'] ?? []; + + // Skip forms with disabled anti-spam settings. + if ( empty( $settings['antispam'] ) && empty( $settings['antispam_v3'] ) ) { + continue; + } + + // Increment the counters for each form with enabled anti-spam settings. + $stat['antispam'] += ! empty( $settings['antispam'] ) ? 1 : 0; // Classic anti-spam enabled. + $stat['antispam_v3'] += ! empty( $settings['antispam_v3'] ) ? 1 : 0; // Modern anti-spam enabled. + + $anti_spam = $settings['anti_spam'] ?? []; + + // Increment the counter for each enabled anti-spam feature. + $stat['akismet'] += ! empty( $anti_spam['akismet'] ) ? 1 : 0; + $stat['store_spam_entries'] += ! empty( $settings['store_spam_entries'] ) ? 1 : 0; + $stat['time_limit'] += ! empty( $anti_spam['time_limit']['enable'] ) ? 1 : 0; + $stat['country_filter'] += ! empty( $anti_spam['country_filter']['enable'] ) ? 1 : 0; + $stat['keyword_filter'] += ! empty( $anti_spam['keyword_filter']['enable'] ) ? 1 : 0; + $stat['captcha'] += ! empty( $settings['recaptcha'] ) ? 1 : 0; + } + + // Count the list of keywords for the keyword filter. + $keyword_filter = wpforms()->obj( 'antispam_keyword_filter' ); + $keywords = method_exists( $keyword_filter, 'get_keywords' ) ? $keyword_filter->get_keywords() : []; + $stat['keywords'] = count( $keywords ); + + return $stat; + } + + /** + * Count how many field have a specific setting enabled. + * + * @since 1.9.0.3 + * + * @param array $forms Published forms. + * @param string $field_type Field type. + * @param string $field_setting Field setting. + * + * @return int + */ + private function count_fields_with_setting( array $forms, string $field_type, string $field_setting ): int { + + $counter = 0; + + // Bail early, in case there are no forms. + if ( empty( $forms ) ) { + return $counter; + } + + // Go through all forms. + foreach ( $forms as $form ) { + + $fields = $form->post_content['fields'] ?? []; + + if ( empty( $fields ) ) { + continue; + } + + // Go through all fields on the form. + foreach ( $fields as $field ) { + + if ( ! empty( $field['type'] ) && $field['type'] === $field_type && ! empty( $field[ $field_setting ] ) ) { + ++$counter; + } + } + } + + return $counter; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/WPCode/RegisterLibrary.php b/wp-content/plugins/wpforms-lite/src/Integrations/WPCode/RegisterLibrary.php new file mode 100644 index 0000000..bf74512 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/WPCode/RegisterLibrary.php @@ -0,0 +1,61 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.8.5 + */ + private function hooks() { + + add_action( 'plugins_loaded', [ $this, 'wpforms_register_wpcode_username' ], 20 ); + } + + /** + * Register a WPCode Library username so that it's loaded in the library inside the WPCode plugin. + * + * @since 1.8.5 + */ + public function wpforms_register_wpcode_username() { + + if ( ! function_exists( 'wpcode_register_library_username' ) ) { + return; + } + + wpcode_register_library_username( 'wpforms', 'WPForms' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/WPCode/WPCode.php b/wp-content/plugins/wpforms-lite/src/Integrations/WPCode/WPCode.php new file mode 100644 index 0000000..7e872d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/WPCode/WPCode.php @@ -0,0 +1,246 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.8.5 + */ + private function hooks() { + + if ( ! is_admin() || wp_doing_ajax() || wp_doing_cron() ) { + return; + } + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ], 20 ); + } + + /** + * Load the WPCode snippets for our desired username or return an empty array if not available. + * + * @since 1.8.5 + * + * @return array The snippets. + */ + public function load_wpforms_snippets(): array { + + $snippets = $this->get_placeholder_snippets(); + + if ( function_exists( 'wpcode_get_library_snippets_by_username' ) ) { + $snippets = wpcode_get_library_snippets_by_username( 'wpforms' ); + } + + // Sort by installed. + uasort( + $snippets, + function ( $a, $b ) { + return ( $b['installed'] <=> $a['installed'] ); + } + ); + + return $snippets; + } + + /** + * Checks if the plugin is installed, either the lite or premium version. + * + * @since 1.8.5 + * + * @return bool True if the plugin is installed. + */ + public function is_plugin_installed(): bool { + + return $this->is_pro_installed() || $this->is_lite_installed(); + } + + /** + * Is the pro plugin installed. + * + * @since 1.8.5 + * + * @return bool True if the pro plugin is installed. + */ + public function is_pro_installed(): bool { + + return array_key_exists( $this->pro_plugin_slug, get_plugins() ); + } + + /** + * Is the lite plugin installed. + * + * @since 1.8.5 + * + * @return bool True if the lite plugin is installed. + */ + public function is_lite_installed(): bool { + + return array_key_exists( $this->lite_plugin_slug, get_plugins() ); + } + + /** + * Basic check if the plugin is active by looking for the main function. + * + * @since 1.8.5 + * + * @return bool True if the plugin is active. + */ + public function is_plugin_active(): bool { + + return function_exists( 'wpcode' ); + } + + /** + * Get plugin version. + * + * @since 1.8.5 + * + * @return string + */ + public function plugin_version(): string { + + if ( $this->is_pro_installed() ) { + return get_plugins()[ $this->pro_plugin_slug ]['Version']; + } + + if ( $this->is_lite_installed() ) { + return get_plugins()[ $this->lite_plugin_slug ]['Version']; + } + + return ''; + } + + /** + * Get placeholder snippets if the WPCode snippets are not available. + * + * @since 1.8.5 + * + * @return array The placeholder snippets. + */ + private function get_placeholder_snippets(): array { + + $snippet_titles = [ + 'Add Field Values for Dropdown, Checkboxes, and Multiple Choice', + 'Allow Date Range Selection in Date Picker', + 'Allow Multiple Dates Selection in Date Picker', + 'Change CSV Export Delimiter', + 'Change Position of v2 Invisible reCAPTCHA Badge', + 'Change Sublabels for the Email Field', + 'Create Additional Schemes for the Address Field', + 'Change Sublabels for the Stripe Credit Card Field', + 'Change the Submit Button Color', + 'Defer the reCAPTCHA Script', + 'Disable Enter Key in WPForms', + 'Disable the Email Address Suggestion', + ]; + + $placeholder_snippets = []; + + foreach ( $snippet_titles as $snippet_title ) { + + // Add placeholder install link so we show a button. + $placeholder_snippets[] = [ + 'title' => $snippet_title, + 'install' => 'https://library.wpcode.com/', + 'installed' => false, + 'note' => 'Placeholder code snippet short description text.', + ]; + } + + return $placeholder_snippets; + } + + /** + * Enqueue assets. + * + * @since 1.8.5 + */ + public function enqueue_scripts() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'listjs', + WPFORMS_PLUGIN_URL . 'assets/lib/list.min.js', + [ 'jquery' ], + '1.5.0', + false + ); + + wp_enqueue_script( + 'wpforms-wpcode', + WPFORMS_PLUGIN_URL . "assets/js/integrations/wpcode/wpcode{$min}.js", + [ 'jquery', 'listjs' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-wpcode', + 'wpformsWpcodeVars', + [ + 'installing_text' => __( 'Installing', 'wpforms-lite' ), + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/WPMailSMTP/Notifications.php b/wp-content/plugins/wpforms-lite/src/Integrations/WPMailSMTP/Notifications.php new file mode 100644 index 0000000..9b01db8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/WPMailSMTP/Notifications.php @@ -0,0 +1,228 @@ +options = new Options(); + + $this->hooks(); + } + + /** + * Integration filters. + * + * @since 1.4.8 + */ + protected function hooks() { + + add_filter( 'wpforms_builder_notifications_from_name_after', [ $this, 'from_name_after' ] ); + add_filter( 'wpforms_builder_notifications_from_email_after', [ $this, 'from_email_after' ] ); + add_filter( 'wpforms_builder_notifications_sender_name_settings', [ $this, 'change_from_name_settings' ], 10, 3 ); + add_filter( 'wpforms_builder_notifications_sender_address_settings', [ $this, 'change_from_email_settings' ], 10, 3 ); + add_action( 'wpforms_form_settings_notifications_single_after', [ $this, 'add_hidden_from_name_field' ], 10, 2 ); + add_action( 'wpforms_form_settings_notifications_single_after', [ $this, 'add_hidden_from_email_field' ], 10, 2 ); + } + + /** + * Redefine From Name settings with data from WP Mail SMTP. + * + * @since 1.7.6 + * + * @param array $args Field settings. + * @param array $form_data Form data. + * @param int $id Notification ID. + * + * @return array + */ + public function change_from_name_settings( $args, $form_data, $id ) { + + if ( ! $this->options->get( 'mail', 'from_name_force' ) ) { + return $args; + } + + $args['value'] = $this->options->get( 'mail', 'from_name' ); + + unset( $args['smarttags'] ); + + return $args; + } + + /** + * Redefine From Email settings with data from WP Mail SMTP. + * + * @since 1.7.6 + * + * @param array $args Field settings. + * @param array $form_data Form data. + * @param int $id Notification ID. + * + * @return array + */ + public function change_from_email_settings( $args, $form_data, $id ) { + + if ( ! $this->options->get( 'mail', 'from_email_force' ) ) { + return $args; + } + + $args['value'] = $this->options->get( 'mail', 'from_email' ); + + unset( $args['smarttags'] ); + + return $args; + } + + /** + * Add hidden From Name field to overwrite value from WP Mail SMTP. + * + * @since 1.7.6 + * + * @param array $settings Form settings. + * @param int $id Notification id. + */ + public function add_hidden_from_name_field( $settings, $id ) { + + if ( empty( $settings->form_data['settings']['notifications'][ $id ]['sender_name'] ) || ! $this->options->get( 'mail', 'from_name_force' ) ) { + return; + } + + wpforms_panel_field( + 'text', + 'notifications', + 'sender_name', + $settings->form_data, + '', + [ + 'parent' => 'settings', + 'subsection' => $id, + 'readonly' => true, + 'class' => 'wpforms-hidden', + 'value' => $settings->form_data['settings']['notifications'][ $id ]['sender_name'], + ] + ); + } + + /** + * Add hidden From Email field to overwrite value from WP Mail SMTP. + * + * @since 1.7.6 + * + * @param array $settings Form settings. + * @param int $id Notification id. + */ + public function add_hidden_from_email_field( $settings, $id ) { + + if ( empty( $settings->form_data['settings']['notifications'][ $id ]['sender_address'] ) || ! $this->options->get( 'mail', 'from_email_force' ) ) { + return; + } + + wpforms_panel_field( + 'text', + 'notifications', + 'sender_address', + $settings->form_data, + '', + [ + 'parent' => 'settings', + 'subsection' => $id, + 'readonly' => true, + 'class' => 'wpforms-hidden', + 'value' => $settings->form_data['settings']['notifications'][ $id ]['sender_address'], + ] + ); + } + + /** + * Display hint if WP Mail SMTP is forcing from name. + * + * @since 1.4.8 + * + * @param string $after Text displayed after setting. + * + * @return string + */ + public function from_name_after( $after ) { + + if ( ! $this->options->get( 'mail', 'from_name_force' ) ) { + return $after; + } + + return sprintf( + wp_kses( /* translators: %s - URL WP Mail SMTP settings. */ + __( 'This setting is disabled because you have the "Force From Name" setting enabled in the WP Mail SMTP plugin.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( admin_url( 'options-general.php?page=wp-mail-smtp#wp-mail-smtp-setting-row-from_name' ) ) + ); + } + + /** + * Display hint if WP Mail SMTP is forcing from email. + * + * @since 1.4.8 + * + * @param string $after Text displayed after setting. + * + * @return string + */ + public function from_email_after( $after ) { + + if ( ! $this->options->get( 'mail', 'from_email_force' ) ) { + return $after; + } + + return sprintf( + wp_kses( /* translators: %s - URL WP Mail SMTP settings. */ + __( 'This setting is disabled because you have the "Force From Email" setting enabled in the WP Mail SMTP plugin.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + ], + ] + ), + esc_url( admin_url( 'options-general.php?page=wp-mail-smtp#wp-mail-smtp-setting-row-from_email' ) ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/WPorg/Translations.php b/wp-content/plugins/wpforms-lite/src/Integrations/WPorg/Translations.php new file mode 100644 index 0000000..1e060ba --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/WPorg/Translations.php @@ -0,0 +1,154 @@ + [ + 'plugins' => wp_json_encode( + [ + 'plugins' => [ + 'wpforms-lite/wpforms.php' => $plugin_data, + ], + 'active' => [], + ] + ), + 'locale' => wp_json_encode( get_available_languages() ), + ], + ] + ); + + $code = wp_remote_retrieve_response_code( $request ); + $body = wp_remote_retrieve_body( $request ); + + if ( $code !== 200 || $body === 'error' || is_wp_error( $body ) ) { + return []; + } + + $body = json_decode( $body, true ); + + return ! empty( $body['translations'] ) ? $body['translations'] : []; + } + + /** + * Download translations for all available languages. + * + * @since 1.6.9 + */ + public function download_translations() { + + $translations = $this->get_translation_packages(); + + if ( empty( $translations ) ) { + return; + } + + $skin = new Automatic_Upgrader_Skin(); + $upgrader = new Language_Pack_Upgrader( $skin ); + + foreach ( $translations as $language ) { + // Sometimes a language can be passed as array. + $this->download_package( (object) $language, $upgrader, $skin ); + } + } + + /** + * Download translation for the language. + * + * @since 1.6.9 + * + * @param object $language Language package. + * @param Language_Pack_Upgrader $upgrader The instance of the core class used for updating/installing language packs (translations). + * @param Automatic_Upgrader_Skin $skin Upgrader Skin for Automatic WordPress Upgrades. + */ + private function download_package( $language, Language_Pack_Upgrader $upgrader, Automatic_Upgrader_Skin $skin ) { + + if ( ! property_exists( $language, 'package' ) || empty( $language->package ) ) { + return; + } + + $skin->language_update = $language; + + $upgrader->run( + [ + 'package' => $language->package, + 'destination' => WP_LANG_DIR . '/plugins', + 'abort_if_destination_exists' => false, + 'is_multi' => true, + 'hook_extra' => [ + 'language_update_type' => $language->type, + 'language_update' => $language, + ], + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Integrations/WooCommerce/Notifications.php b/wp-content/plugins/wpforms-lite/src/Integrations/WooCommerce/Notifications.php new file mode 100644 index 0000000..e8455aa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Integrations/WooCommerce/Notifications.php @@ -0,0 +1,230 @@ + Emails page. + if ( ! $this->is_woocommerce_email_settings_page() ) { + return false; + } + + // Do not show the notification if any SMTP plugin is active. + return ! $this->has_smtp_plugin(); + } + + /** + * Load integration. + * + * @since 1.8.9 + */ + public function load() { + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.8.9 + */ + private function hooks() { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ], 20 ); + add_action( 'woocommerce_admin_field_email_notification' , [ $this, 'add_notification' ] ); + add_action( 'wp_ajax_wpforms_woocommerce_dismiss', [ $this, 'dismiss' ] ); + } + + /** + * Enqueue assets. + * + * @since 1.8.9 + */ + public function enqueue_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + self::HANDLE, + WPFORMS_PLUGIN_URL . "/assets/css/integrations/woocommerce/notifications{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_script( + self::HANDLE, + WPFORMS_PLUGIN_URL . "/assets/js/integrations/woocommerce/notifications{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + self::HANDLE, + 'wpforms_woocommerce_notifications', + [ + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( self::HANDLE ), + ] + ); + } + + /** + * Add notification. + * + * @since 1.8.9 + */ + public function add_notification() { + ?> + +
              +
              +

              + +

              + +

              + +

              + + + + +
              + +
              + + +
              + + Emails page. + * + * @since 1.8.9 + * + * @return bool + */ + private function is_woocommerce_email_settings_page(): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return isset( $_GET['page'], $_GET['tab'] ) && $_GET['page'] === 'wc-settings' && $_GET['tab'] === 'email'; + } + + /** + * Check if the site has any active SMTP plugins. + * + * @since 1.8.9 + * + * @return bool + */ + private function has_smtp_plugin(): bool { + + $smtp_plugins = [ + 'wp-mail-smtp-pro/wp_mail_smtp.php', + 'wp-mail-smtp/wp_mail_smtp.php', + 'easy-wp-smtp/easy-wp-smtp.php', + 'smtp-settings-for-gravity-forms/smtp-settings-gravity-forms.php', + 'post-smtp/postman-smtp.php', + 'fluent-smtp/fluent-smtp.php', + 'gosmtp/gosmtp.php', + 'smtp-mailer/main.php', + 'wp-smtp/wp-smtp.php', + 'gmail-smtp/main.php', + 'simple-smtp/wp-simple-smtp.php', + 'bws-smtp/bws-smtp.php', + 'wp-mail-smtp-mailer/wp-mail-smtp-mailer.php', + 'welcome-email-editor/sb_welcome_email_editor.php', + 'bit-smtp/bit_smtp.php', + 'sar-friendly-smtp/sar-friendly-smtp.php', + 'smtp-mailer/main.php', + 'yaysmtp/yay-smtp.php', + 'smtp2go/smtp2go-wordpress-plugin.php', + 'mailersend-official-smtp-integration/mailersend-wordpress.php', + 'cf7-smtp/cf7-smtp.php', + 'smtp-mail/index.php', + 'mailpoet/mailpoet.php', + ]; + + foreach ( $smtp_plugins as $plugin ) { + // Check if plugin is active or installed. + if ( is_plugin_active( $plugin ) || file_exists( WP_PLUGIN_DIR . '/' . dirname( $plugin ) ) ) { + return true; + } + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Connect.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Connect.php new file mode 100644 index 0000000..3632020 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Connect.php @@ -0,0 +1,288 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.5.5 + */ + public function hooks() { + + add_action( 'wpforms_settings_enqueue', [ $this, 'settings_enqueues' ] ); + add_action( 'wp_ajax_wpforms_connect_url', [ $this, 'generate_url' ] ); + add_action( 'wp_ajax_nopriv_wpforms_connect_process', [ $this, 'process' ] ); + } + + /** + * Settings page enqueues. + * + * @since 1.5.5 + */ + public function settings_enqueues() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-connect', + WPFORMS_PLUGIN_URL . "assets/lite/js/admin/connect{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Generate and return WPForms Connect URL. + * + * @since 1.5.5 + */ + public function generate_url() { + + // Run a security check. + check_ajax_referer( 'wpforms-admin', 'nonce' ); + + // Check for permissions. + if ( ! current_user_can( 'install_plugins' ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'You are not allowed to install plugins.', 'wpforms-lite' ) ] ); + } + + $current_plugin = plugin_basename( WPFORMS_PLUGIN_FILE ); + $is_pro = wpforms()->is_pro(); + + // Local development environment. + if ( $current_plugin === self::PRO_PLUGIN && ! $is_pro ) { + wp_send_json_error( [ 'message' => esc_html__( 'There must be a non-developer Lite version installed to upgrade.', 'wpforms-lite' ) ] ); + } + + $key = ! empty( $_POST['key'] ) ? sanitize_text_field( wp_unslash( $_POST['key'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification + + // Empty license key. + if ( empty( $key ) ) { + wp_send_json_error( [ 'message' => esc_html__( 'Please enter your license key to connect.', 'wpforms-lite' ) ] ); + } + + // Whether it is the pro version. + if ( $is_pro ) { + wp_send_json_error( [ 'message' => esc_html__( 'Only the Lite version can be upgraded.', 'wpforms-lite' ) ] ); + } + + // Verify pro version is not installed. + $active = activate_plugin( self::PRO_PLUGIN, false, false, true ); + + if ( ! is_wp_error( $active ) ) { + + // Deactivate Lite. + deactivate_plugins( $current_plugin ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_plugin_deactivated', $current_plugin ); + + wp_send_json_success( + [ + 'message' => esc_html__( 'WPForms Pro is installed but not activated.', 'wpforms-lite' ), + 'reload' => true, + ] + ); + } + + // Generate URL. + $oth = hash( 'sha512', wp_rand() ); + $hashed_oth = hash_hmac( 'sha512', $oth, wp_salt() ); + + update_option( 'wpforms_connect_token', $oth ); + update_option( 'wpforms_connect', $key ); + + $version = WPFORMS_VERSION; + $endpoint = admin_url( 'admin-ajax.php' ); + $redirect = admin_url( 'admin.php?page=wpforms-settings' ); + $url = add_query_arg( + [ + 'key' => $key, + 'oth' => $hashed_oth, + 'endpoint' => $endpoint, + 'version' => $version, + 'siteurl' => admin_url(), + 'homeurl' => site_url(), + 'redirect' => rawurldecode( base64_encode( $redirect ) ), // phpcs:ignore + 'v' => 2, + ], + 'https://upgrade.wpforms.com' + ); + + wp_send_json_success( + [ + 'url' => $url, + 'back_url' => add_query_arg( + [ + 'action' => 'wpforms_connect', + 'oth' => $hashed_oth, + ], + $endpoint + ), + ] + ); + } + + /** + * Process WPForms Connect. + * + * @since 1.5.5 + */ + public function process() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + $error = esc_html__( 'There was an error while installing an upgrade. Please download the plugin from wpforms.com and install it manually.', 'wpforms-lite' ); + + // Verify params present (oth & download link). + $post_oth = ! empty( $_REQUEST['oth'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['oth'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification + $post_url = ! empty( $_REQUEST['file'] ) ? esc_url_raw( wp_unslash( $_REQUEST['file'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification + + if ( empty( $post_oth ) || empty( $post_url ) ) { + wp_send_json_error( $error ); + } + + // Verify oth. + $oth = get_option( 'wpforms_connect_token' ); + + if ( empty( $oth ) ) { + wp_send_json_error( $error ); + } + + if ( hash_hmac( 'sha512', $oth, wp_salt() ) !== $post_oth ) { + wp_send_json_error( $error ); + } + + // Delete so cannot replay. + delete_option( 'wpforms_connect_token' ); + + // Set the current screen to avoid undefined notices. + set_current_screen( 'wpforms_page_wpforms-settings' ); + + // Prepare variables. + $url = esc_url_raw( + add_query_arg( + [ 'page' => 'wpforms-settings' ], + admin_url( 'admin.php' ) + ) + ); + + // Verify pro not activated. + if ( wpforms()->is_pro() ) { + wp_send_json_success( esc_html__( 'Plugin installed & activated.', 'wpforms-lite' ) ); + } + + // Verify pro not installed. + $active = activate_plugin( self::PRO_PLUGIN, $url, false, true ); + + if ( ! is_wp_error( $active ) ) { + $plugin = plugin_basename( WPFORMS_PLUGIN_FILE ); + + deactivate_plugins( $plugin ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_plugin_deactivated', $plugin ); + + wp_send_json_success( esc_html__( 'Plugin installed & activated.', 'wpforms-lite' ) ); + } + + $creds = request_filesystem_credentials( $url, '', false, false ); + + // Check for file system permissions. + if ( $creds === false || ! WP_Filesystem( $creds ) ) { + wp_send_json_error( + esc_html__( 'There was an error while installing an upgrade. Please check file system permissions and try again. Also, you can download the plugin from wpforms.com and install it manually.', 'wpforms-lite' ) + ); + } + + /* + * We do not need any extra credentials if we have gotten this far, so let's install the plugin. + */ + + // Do not allow WordPress to search/download translations, as this will break JS output. + remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 ); + + // Create the plugin upgrader with our custom skin. + $installer = new PluginSilentUpgrader( new ConnectSkin() ); + + // Error check. + if ( ! method_exists( $installer, 'install' ) ) { + wp_send_json_error( $error ); + } + + // Check license key. + $key = get_option( 'wpforms_connect', false ); + + if ( empty( $key ) ) { + wp_send_json_error( + new WP_Error( + '403', + esc_html__( 'No key provided.', 'wpforms-lite' ) + ) + ); + } + + $installer->install( $post_url ); // phpcs:ignore + + // Flush the cache and return the newly installed plugin basename. + wp_cache_flush(); + + $plugin_basename = $installer->plugin_info(); + + if ( $plugin_basename ) { + + // Deactivate the lite version first. + $plugin = plugin_basename( WPFORMS_PLUGIN_FILE ); + + deactivate_plugins( $plugin ); + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + do_action( 'wpforms_plugin_deactivated', $plugin ); + + // Activate the plugin silently. + $activated = activate_plugin( $plugin_basename, '', false, true ); + + if ( ! is_wp_error( $activated ) ) { + add_option( 'wpforms_install', 1 ); + wp_send_json_success( esc_html__( 'Plugin installed & activated.', 'wpforms-lite' ) ); + } else { + // Reactivate the lite plugin if pro activation failed. + activate_plugin( plugin_basename( WPFORMS_PLUGIN_FILE ), '', false, true ); + wp_send_json_error( esc_html__( 'Pro version installed but needs to be activated on the Plugins page inside your WordPress admin.', 'wpforms-lite' ) ); + } + } + + wp_send_json_error( $error ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/ConnectSkin.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/ConnectSkin.php new file mode 100644 index 0000000..dc4888a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/ConnectSkin.php @@ -0,0 +1,35 @@ +is_dashboard_page() && ! $this->is_dashboard_widget_ajax_request() ) { + return; + } + + $this->settings(); + $this->hooks(); + } + + /** + * Filterable widget settings. + * + * @since 1.5.0 + */ + public function settings() { + + // phpcs:disable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + + $this->settings = [ + + // Number of forms to display in the forms' list before the "Show More" button appears. + 'forms_list_number_to_display' => apply_filters( 'wpforms_dash_widget_forms_list_number_to_display', 5 ), + + // Allow results caching to reduce a DB load. + 'allow_data_caching' => apply_filters( 'wpforms_dash_widget_allow_data_caching', true ), + + // Transient lifetime in seconds. Defaults to the end of a current day. + 'transient_lifetime' => apply_filters( 'wpforms_dash_widget_transient_lifetime', strtotime( 'tomorrow' ) - time() ), + + // Determine if the forms with no entries should appear in a forms' list. + // Once switched, the effect applies after cache expiration. + 'display_forms_list_empty_entries' => apply_filters( 'wpforms_dash_widget_display_forms_list_empty_entries', true ), + ]; + + // phpcs:enable WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Widget hooks. + * + * @since 1.5.0 + */ + public function hooks() { + + $widget_slug = static::SLUG; + + add_action( 'admin_enqueue_scripts', [ $this, 'widget_scripts' ] ); + add_action( 'wp_dashboard_setup', [ $this, 'widget_register' ] ); + add_action( 'admin_init', [ $this, 'hide_widget' ] ); + add_action( "wp_ajax_wpforms_{$widget_slug}_save_widget_meta", [ $this, 'save_widget_meta_ajax' ] ); + } + + /** + * Load widget-specific scripts. + * + * @since 1.5.0 + * + * @param string $hook_suffix The current admin page. + */ + public function widget_scripts( $hook_suffix ) { + + if ( $hook_suffix !== 'index.php' ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-dashboard-widget', + WPFORMS_PLUGIN_URL . "assets/css/dashboard-widget{$min}.css", + [], + WPFORMS_VERSION + ); + + wp_enqueue_script( + 'wpforms-chart', + WPFORMS_PLUGIN_URL . 'assets/lib/chart.min.js', + [ 'moment' ], + '4.5.1', + true + ); + + wp_enqueue_script( + 'wpforms-dashboard-widget', + WPFORMS_PLUGIN_URL . "assets/lite/js/admin/dashboard-widget{$min}.js", + [ 'jquery', 'wpforms-chart' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-dashboard-widget', + 'wpforms_dashboard_widget', + [ + 'nonce' => wp_create_nonce( 'wpforms_' . static::SLUG . '_nonce' ), + 'slug' => static::SLUG, + 'show_more_html' => esc_html__( 'Show More', 'wpforms-lite' ) . '', + 'show_less_html' => esc_html__( 'Show Less', 'wpforms-lite' ) . '', + 'i18n' => [ + 'entries' => esc_html__( 'Entries', 'wpforms-lite' ), + ], + // Adapter for Chart.js to use Moment.js for date formatting. + 'adapter_path' => WPFORMS_PLUGIN_URL . 'assets/lib/chartjs-adapter-moment.min.js?ver=1.0.1', + ] + ); + } + + /** + * Register the widget. + * + * @since 1.5.0 + */ + public function widget_register() { + + global $wp_meta_boxes; + + $widget_key = 'wpforms_reports_widget_lite'; + + wp_add_dashboard_widget( + $widget_key, + esc_html__( 'WPForms', 'wpforms-lite' ), + [ $this, 'widget_content' ] + ); + + // Attempt to place the widget at the top. + $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core']; + $widget_instance = [ $widget_key => $normal_dashboard[ $widget_key ] ]; + + unset( $normal_dashboard[ $widget_key ] ); + + $sorted_dashboard = array_merge( $widget_instance, $normal_dashboard ); + + // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited + $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard; + } + + /** + * Load widget content. + * + * @since 1.5.0 + */ + public function widget_content() { + + $forms = wpforms()->obj( 'form' )->get( '', [ 'fields' => 'ids' ] ); + $hide_graph = (bool) $this->widget_meta( 'get', 'hide_graph' ); + $no_graph_class = $hide_graph ? 'wpforms-dash-widget-no-graph' : ''; + + echo '
              '; + + if ( empty( $forms ) ) { + $this->widget_content_no_forms_html(); + } else { + $this->widget_content_html( $hide_graph ); + } + + Links::render( + [ + 'docs' => [ + 'medium' => 'dashboard-widget', + 'content' => 'docs', + ], + ] + ); + + $plugin = $this->get_recommended_plugin(); + $hide_recommended = $this->widget_meta( 'get', 'hide_recommended_block' ); + + if ( + ! empty( $plugin ) && + ! empty( $forms ) && + ! $hide_recommended + ) { + $this->recommended_plugin_block_html( $plugin ); + } + + echo '
              '; + } + + /** + * Widget content HTML if a user has no forms. + * + * @since 1.5.0 + */ + public function widget_content_no_forms_html() { + + $create_form_url = add_query_arg( 'page', 'wpforms-builder', admin_url( 'admin.php' ) ); + $learn_more_url = 'https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=link&utm_campaign=liteplugin&utm_content=dashboardwidget'; + + ?> +
              + +

              +

              + + + + + + + + + + +
              + + +
              + +
              + +
              + +
              +
              + + + +

              +

              + +

              +

              + + + +

              +
              +
              + +
              + + + +
              +

              +
              + timespan_select_html( 0, false ); + $this->widget_settings_html( false ); + ?> +
              +
              + +
              + forms_list_block(); ?> +
              + + get_entries_count_by_form(); + + if ( empty( $forms ) ) { + $this->forms_list_block_empty_html(); + } else { + $this->forms_list_block_html( $forms ); + } + } + + /** + * Empty forms list block HTML. + * + * @since 1.5.0 + */ + public function forms_list_block_empty_html() { + + ?> +

              + +

              + settings['forms_list_number_to_display']; + + ?> + + $form ) : ?> + = $show_forms ? 'class="wpforms-dash-widget-forms-list-hidden-el"' : ''; ?> data-form-id=""> + + + + +
              + + $show_forms ) : ?> + + + + + + settings['allow_data_caching']; + $transient_name = 'wpforms_dash_widget_lite_entries_by_form'; + + if ( $allow_caching ) { + $cache = get_transient( $transient_name ); + + /** + * Filters the cache to clear or alter its data. + * + * @since 1.5.0 + * + * @param mixed $cache The cache content. + */ + $cache = apply_filters( 'wpforms_dash_widget_lite_cached_data', $cache ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + // is_array() detects cached empty searches. + if ( $allow_caching && is_array( $cache ) ) { + return $cache; + } + + $forms = wpforms()->obj( 'form' )->get( '', [ 'fields' => 'ids' ] ); + + if ( empty( $forms ) || ! is_array( $forms ) ) { + return []; + } + + $result = []; + + foreach ( $forms as $form_id ) { + $count = absint( get_post_meta( $form_id, 'wpforms_entries_count', true ) ); + + if ( empty( $count ) && empty( $this->settings['display_forms_list_empty_entries'] ) ) { + continue; + } + + $result[ $form_id ] = [ + 'form_id' => $form_id, + 'count' => $count, + 'title' => get_the_title( $form_id ), + ]; + } + + if ( ! empty( $result ) ) { + // Sort forms by entries count (desc). + uasort( + $result, + static function ( $a, $b ) { + + return ( $a['count'] > $b['count'] ) ? -1 : 1; + } + ); + } + + if ( $allow_caching ) { + // Transient lifetime in seconds. Defaults to the end of a current day. + $transient_lifetime = $this->settings['transient_lifetime']; + + set_transient( $transient_name, $result, $transient_lifetime ); + } + + return $result; + } + + /** + * Hide dashboard widget. + * Use dashboard screen options to make it visible again. + * + * @since 1.5.0 + */ + public function hide_widget() { + + if ( ! is_admin() || ! is_user_logged_in() ) { + return; + } + + if ( ! isset( $_GET['wpforms-nonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['wpforms-nonce'] ) ), 'wpforms_hide_dash_widget' ) ) { + return; + } + + if ( ! isset( $_GET['wpforms-widget'] ) || $_GET['wpforms-widget'] !== 'hide' ) { + return; + } + + $user_id = get_current_user_id(); + $metaboxhidden = get_user_meta( $user_id, 'metaboxhidden_dashboard', true ); + + if ( ! is_array( $metaboxhidden ) ) { + update_user_meta( $user_id, 'metaboxhidden_dashboard', [ 'wpforms_reports_widget_lite' ] ); + } + + if ( is_array( $metaboxhidden ) && ! in_array( 'wpforms_reports_widget_lite', $metaboxhidden, true ) ) { + $metaboxhidden[] = 'wpforms_reports_widget_lite'; + + update_user_meta( $user_id, 'metaboxhidden_dashboard', $metaboxhidden ); + } + + $redirect_url = remove_query_arg( [ 'wpforms-widget', 'wpforms-nonce' ] ); + + wp_safe_redirect( $redirect_url ); + exit(); + } + + /** + * Clear dashboard widget cached data. + * + * @since 1.5.2 + */ + public static function clear_widget_cache() { + + delete_transient( 'wpforms_dash_widget_lite_entries_by_form' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/DidYouKnow.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/DidYouKnow.php new file mode 100644 index 0000000..4e5fa98 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/DidYouKnow.php @@ -0,0 +1,181 @@ +allow_load() ) { + return; + } + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + add_action( 'wpforms_admin_overview_after_rows', [ $this, 'display' ] ); + } + + /** + * Messages. + * + * @since 1.7.4 + * + * @return array + */ + private function messages() { + + return [ + [ + 'slug' => 'lite-connect', + 'is_allowed' => LiteConnect::is_allowed(), + 'cont_class' => LiteConnect::is_enabled() ? 'wpforms-education-lite-connect-setting wpforms-hidden' : 'wpforms-education-lite-connect-setting', + 'title' => esc_html__( 'Entries are not stored in WPForms Lite', 'wpforms-lite' ), + 'desc' => esc_html__( 'Entries are available through email notifications. If you enable Entry Backups, you can restore them once you upgrade to WPForms Pro.', 'wpforms-lite' ), + 'more_title' => esc_html__( 'Enable Entry Backups', 'wpforms-lite' ), + 'more_link' => admin_url( 'admin.php?page=wpforms-settings' ), + 'icon' => '', + 'item' => 1, + 'enabled' => [ + 'cont_class' => LiteConnect::is_enabled() ? 'wpforms-education-lite-connect-enabled-info' : 'wpforms-education-lite-connect-enabled-info wpforms-hidden', + 'title' => esc_html__( 'Entries Backups Are Enabled', 'wpforms-lite' ), + 'more_title' => esc_html__( 'Restore Form Entries', 'wpforms-lite' ), + 'more_link' => wpforms_admin_upgrade_link( 'forms-overview', 'restore-entries' ), + 'more_class' => 'wpforms-is-enabled', + 'desc' => $this->get_lite_connect_entries_since_info(), + ], + ], + ]; + } + + /** + * Random message. + * + * @since 1.7.4 + */ + private function message_rnd() { + + $messages = $this->messages(); + + return $messages[ array_rand( $messages ) ]; + } + + /** + * Display message. + * + * @since 1.7.4 + * + * @param WP_List_Table $wp_list_table Instance of WP_List_Table. + */ + public function display( $wp_list_table ) { + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + // Do not display the message if it was dismissed. + if ( ! empty( $dismissed['edu-admin-did-you-know-overview'] ) ) { + return; + } + + $message = $this->message_rnd(); + + // Display the message only if it is allowed. + if ( isset( $message['is_allowed'] ) && empty( $message['is_allowed'] ) ) { + return; + } + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'education/admin/did-you-know', + [ + 'slug' => ! empty( $message['slug'] ) ? $message['slug'] : '', + 'cols' => $wp_list_table->get_column_count(), + 'icon' => ! empty( $message['icon'] ) ? $message['icon'] : '', + 'title' => ! empty( $message['title'] ) ? $message['title'] : esc_html__( 'Did You Know?', 'wpforms-lite' ), + 'desc' => ! empty( $message['desc'] ) ? $message['desc'] : '', + 'more_title' => ! empty( $message['more_title'] ) ? $message['more_title'] : esc_html__( 'Learn More', 'wpforms-lite' ), + 'more_link' => ! empty( $message['more_link'] ) ? $message['more_link'] : '', + 'more_class' => ! empty( $message['more_class'] ) ? $message['more_class'] : '', + 'cont_class' => ! empty( $message['cont_class'] ) ? $message['cont_class'] : '', + 'enabled_title' => ! empty( $message['enabled']['title'] ) ? $message['enabled']['title'] : esc_html__( 'Did You Know?', 'wpforms-lite' ), + 'enabled_desc' => ! empty( $message['enabled']['desc'] ) ? $message['enabled']['desc'] : '', + 'enabled_more_title' => ! empty( $message['enabled']['more_title'] ) ? $message['enabled']['more_title'] : esc_html__( 'Learn More', 'wpforms-lite' ), + 'enabled_more_link' => ! empty( $message['enabled']['more_link'] ) ? $message['enabled']['more_link'] : '', + 'enabled_more_class' => ! empty( $message['enabled']['more_class'] ) ? $message['enabled']['more_class'] : '', + 'enabled_cont_class' => ! empty( $message['enabled']['cont_class'] ) ? $message['enabled']['cont_class'] : '', + ], + true + ); + } + + /** + * Generate Lite Connect entries information. + * + * @since 1.7.4 + * + * @return string + */ + private function get_lite_connect_entries_since_info() { + + $entries_count = LiteConnectIntegration::get_new_entries_count(); + $enabled_since = LiteConnectIntegration::get_enabled_since(); + + $string = sprintf( + esc_html( /* translators: %d - backed up entries count. */ + _n( + '%d entry backed up', + '%d entries backed up', + $entries_count, + 'wpforms-lite' + ) + ), + absint( $entries_count ) + ); + + if ( ! empty( $enabled_since ) ) { + $string .= ' '; + $string .= esc_html( + sprintf( /* translators: %1$s - time when Lite Connect was enabled. */ + __( 'since %1$s', 'wpforms-lite' ), + wpforms_date_format( $enabled_since, '', true ) + ) + ); + } + + return $string; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/NoticeBar.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/NoticeBar.php new file mode 100644 index 0000000..9df7011 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Admin/NoticeBar.php @@ -0,0 +1,72 @@ +allow_load() ) { + return; + } + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.6 + */ + public function hooks() { + + add_action( 'wpforms_admin_header_before', [ $this, 'display' ] ); + } + + /** + * Notice bar display message. + * + * @since 1.6.6 + */ + public function display() { + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + if ( ! empty( $dismissed['edu-admin-notice-bar'] ) ) { + return; + } + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'education/admin/notice-bar', + [ + 'upgrade_link' => wpforms_admin_upgrade_link( 'notice-bar', 'Upgrade to WPForms Pro' ), + ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Confirmations.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Confirmations.php new file mode 100644 index 0000000..05b000e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Confirmations.php @@ -0,0 +1,86 @@ +allow_load() ) { + return; + } + + $this->hooks(); + } + + /** + * Load hooks. + * + * @since 1.6.9 + */ + private function hooks() { + + add_action( 'wpforms_lite_form_settings_confirmations_single_after', [ $this, 'entry_preview_settings' ], 10, 2 ); + } + + /** + * Add education settings located in confirmation inside the message block. + * + * @since 1.6.9 + * + * @param WPForms_Builder_Panel_Settings $settings Builder panel settings. + * @param int $field_id Field ID. + */ + public function entry_preview_settings( $settings, $field_id ) { + + wpforms_panel_field( + 'toggle', + 'confirmations', + 'message_entry_preview', + $settings->form_data, + esc_html__( 'Show entry preview after confirmation', 'wpforms-lite' ), + [ + 'input_id' => 'wpforms-panel-field-confirmations-message_entry_preview-' . wpforms_validate_field_id( $field_id ), + 'input_class' => 'wpforms-panel-field-confirmations-message_entry_preview education-modal', + 'parent' => 'settings', + 'subsection' => wpforms_validate_field_id( $field_id ), + 'pro_badge' => true, + 'data' => [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Show Entry Preview', 'wpforms-lite' ), + 'utm-content' => 'Show Entry Preview', + 'licence' => 'pro', + ], + 'attrs' => [ + 'disabled' => 'disabled', + ], + 'value' => false, + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/DidYouKnow.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/DidYouKnow.php new file mode 100644 index 0000000..ece7e15 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/DidYouKnow.php @@ -0,0 +1,107 @@ +allow_load() ) { + return; + } + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.6 + */ + public function hooks() { + + add_action( 'wpforms_builder_settings_notifications_after', [ $this, 'notifications' ] ); + add_action( 'wpforms_builder_settings_confirmations_after', [ $this, 'confirmations' ] ); + } + + /** + * Display on the Notifications panel. + * + * @since 1.6.6 + */ + public function notifications() { + + $this->display( + 'notifications', + [ 'desc' => esc_html__( 'You can have multiple notifications with conditional logic.', 'wpforms-lite' ) ] + ); + } + + /** + * Display on the Confirmations panel. + * + * @since 1.6.6 + */ + public function confirmations() { + + $this->display( + 'confirmations', + [ 'desc' => esc_html__( 'You can have multiple confirmations with conditional logic.', 'wpforms-lite' ) ] + ); + } + + /** + * Display message. + * + * @since 1.6.6 + * + * @param string $section Form builder section/area (slug). + * @param array $settings Notice settings array. + */ + private function display( $section, $settings ) { + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + // Check if not dismissed. + if ( ! empty( $dismissed[ 'edu-builder-did-you-know-' . $section ] ) ) { + return; + } + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'education/builder/did-you-know', + [ + 'desc' => $settings['desc'], + 'more' => ! empty( $settings['more'] ) ? $settings['more'] : '', + 'link' => wpforms_admin_upgrade_link( 'Form Builder DYK', ucfirst( $section ) ), + 'section' => $section, + + ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Fields.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Fields.php new file mode 100644 index 0000000..ebd78f5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Fields.php @@ -0,0 +1,217 @@ + $group_data ) { + $edu_fields = $this->fields->get_by_group( $group ); + $edu_fields = $this->fields->set_values( $edu_fields, 'class', 'education-modal', 'empty' ); + + foreach ( $edu_fields as $edu_field ) { + + // Skip if in the current group already exist field of this type. + if ( ! empty( wp_list_filter( $group_data, [ 'type' => $edu_field['type'] ] ) ) ) { + continue; + } + + $addon = ! empty( $edu_field['addon'] ) ? $this->addons->get_addon( $edu_field['addon'] ) : []; + + if ( ! empty( $addon ) ) { + $edu_field['license'] = $addon['license_level'] ?? ''; + } + + $fields[ $group ]['fields'][] = $edu_field; + } + } + + return $fields; + } + + /** + * Display a conditional logic settings section for fields inside the form builder. + * + * @since 1.6.6 + * + * @param array $field Field data. + */ + public function field_conditional_logic( array $field ): void { + + // Certain fields don't support conditional logic. + if ( in_array( $field['type'], [ 'pagebreak', 'divider', 'hidden' ], true ) ) { + return; + } + + ?> +
              + + + +
              + addons->get_addon( $field['addon'] ); + + if ( empty( $addon ) ) { + return $atts; + } + + if ( ! empty( $addon['video'] ) ) { + $atts['data']['video'] = $addon['video']; + } + + if ( ! empty( $field['license'] ) ) { + $atts['data']['license'] = $field['license']; + } + + return $atts; + } + + /** + * The form preview Pro fields notice. + * + * @since 1.9.4 + * + * @param array $form_data Form data. + * + * @noinspection HtmlUnknownTarget + */ + public function form_preview_notice( array $form_data ): void { + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + $pro_fields = Form::get_form_pro_fields( $form_data ); + $is_quiz_enabled = ! empty( $form_data['settings']['quiz']['enabled'] ); + + // Check whether the notice is dismissed OR the form doesn't contain Pro fields. + if ( + ! empty( $dismissed['edu-pro-fields-form-preview-notice'] ) || + ( empty( $pro_fields ) && ! $is_quiz_enabled ) + ) { + return; + } + + if ( $is_quiz_enabled ) { + $this->print_quiz_notice(); + + return; + } + + $content = sprintf( + wp_kses( /* translators: %s - WPForms.com announcement page URL. */ + __( 'They will not be present in the published form. Upgrade now to unlock these features.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + wpforms_admin_upgrade_link( 'Builder - Settings', 'AI Form - Pro Fields in Lite notice' ) + ); + + $this->print_form_preview_notice( + [ + 'class' => 'wpforms-alert-warning', + 'title' => esc_html__( 'Your Form Contains Pro Fields', 'wpforms-lite' ), + 'content' => $content, + 'dismiss_section' => 'pro-fields-form-preview-notice', + ] + ); + } + + /** + * Print the Quiz addon notice. + * + * @since 1.9.9 + * + * @noinspection HtmlUnknownTarget + */ + private function print_quiz_notice(): void { + + $content = sprintf( + wp_kses( /* translators: %s - Upgrade license page URL. */ + __( 'Quiz functionality will not be present in the published form. Upgrade now to unlock the Quiz Addon.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + wpforms_admin_upgrade_link( 'Builder - Settings', 'AI Form - Quiz addon in Lite notice' ) + ); + + $this->print_form_preview_notice( + [ + 'class' => 'wpforms-alert-warning', + 'title' => esc_html__( 'Your Form Uses the Quiz Addon', 'wpforms-lite' ), + 'content' => $content, + 'dismiss_section' => 'quiz-form-preview-notice', + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Notifications.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Notifications.php new file mode 100644 index 0000000..10d2657 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Builder/Notifications.php @@ -0,0 +1,135 @@ +allow_load() ) { + return; + } + + $this->hooks(); + } + + /** + * Indicate if current Education feature is allowed to load. + * + * @since 1.7.7 + * + * @return bool + */ + public function allow_load() { + + return wpforms_is_admin_page( 'builder' ); + } + + /** + * Load hooks. + * + * @since 1.7.7 + */ + private function hooks() { + + add_action( 'wpforms_lite_form_settings_notifications_block_content_after', [ $this, 'advanced_section' ], 10, 2 ); + } + + /** + * Output Notification Advanced section. + * + * @since 1.7.7 + * + * @param WPForms_Builder_Panel_Settings $settings Builder panel settings. + * @param int $id Notification id. + */ + public function advanced_section( $settings, $id ) { + + /** + * Filter the "Advanced" content. + * + * @since 1.8.5 + * + * @param string $content The content. + * @param WPForms_Builder_Panel_Settings $settings Builder panel settings. + * @param int $id Notification id. + */ + $content = apply_filters( 'wpforms_lite_admin_education_builder_notifications_advanced_settings_content', '', $settings, $id ); + + $content .= wpforms_panel_field( + 'toggle', + 'notifications', + 'file_upload_attachment_enable', + $settings->form_data, + esc_html__( 'Enable File Upload Attachments', 'wpforms-lite' ), + [ + 'input_class' => 'notifications_enable_file_upload_attachment_toggle education-modal', + 'parent' => 'settings', + 'subsection' => $id, + 'pro_badge' => true, + 'data' => [ + 'action' => 'upgrade', + 'name' => esc_html__( 'File Upload Attachments', 'wpforms-lite' ), + 'utm-content' => 'File Upload Attachments', + 'licence' => 'pro', + ], + 'attrs' => [ + 'disabled' => 'disabled', + ], + 'value' => false, + ], + false + ); + + $content .= wpforms_panel_field( + 'toggle', + 'notifications', + 'entry_csv_attachment_enable', + $settings->form_data, + esc_html__( 'Enable Entry CSV Attachment', 'wpforms-lite' ), + [ + 'input_class' => 'notifications_enable_entry_csv_attachment_toggle education-modal', + 'parent' => 'settings', + 'subsection' => $id, + 'pro_badge' => true, + 'data' => [ + 'action' => 'upgrade', + 'name' => esc_html__( 'Entry CSV Attachment', 'wpforms-lite' ), + 'utm-content' => 'Entry CSV Attachment', + 'licence' => 'pro', + ], + 'attrs' => [ + 'disabled' => 'disabled', + ], + 'value' => false, + ], + false + ); + + // Wrap advanced settings to the unfoldable group. + wpforms_panel_fields_group( + $content, + [ + 'borders' => [ 'top' ], + 'class' => 'wpforms-builder-notifications-advanced opened', + 'default' => 'opened', + 'group' => 'settings_notifications_advanced', + 'title' => esc_html__( 'Advanced', 'wpforms-lite' ), + 'unfoldable' => true, + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Core.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Core.php new file mode 100644 index 0000000..a50e873 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Education/Core.php @@ -0,0 +1,53 @@ +is_dashboard() || + $this->is_embed_page(); + } + + /** + * Init. + * + * @since 1.7.4 + */ + public function init() { + + if ( ! $this->allow_load() ) { + return; + } + + $this->is_enabled = LiteConnectClass::is_enabled() ? 1 : 0; + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + add_action( 'admin_footer', [ $this, 'modal_template' ], 10, 2 ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + + // Ajax action. + add_action( 'wp_ajax_wpforms_update_lite_connect_enabled_setting', [ $this, 'ajax_update_lite_connect_enabled_setting' ] ); + add_action( 'wp_ajax_wpforms_lite_connect_finalize', [ $this, 'ajax_lite_connect_finalize' ] ); + + // Content filters. + add_filter( 'wpforms_lite_admin_dashboard_widget_content_html_chart_block_before', [ $this, 'dashboard_widget_before_content' ] ); + add_filter( 'wpforms_builder_output_before_toolbar', [ $this, 'top_bar_content' ] ); + add_filter( 'wpforms_admin_challenge_embed_template_congrats_popup_footer', [ $this, 'challenge_popup_footer_content' ] ); + } + + /** + * Check whether it is the Dashboard admin page. + * + * @since 1.7.4 + * + * @return bool + */ + private function is_dashboard() { + + global $pagenow; + + return $pagenow === 'index.php'; + } + + /** + * Check whether it is the form embedding admin page (Edit Post or Edit Page). + * + * @since 1.7.4 + * + * @return bool + */ + private function is_embed_page() { + + if ( function_exists( 'get_current_screen' ) ) { + return wpforms()->obj( 'challenge' )->is_form_embed_page(); + } + + global $pagenow; + + return in_array( $pagenow, [ 'edit.php', 'post.php', 'post-new.php' ], true ); + } + + /** + * Load enqueues. + * + * @since 1.7.4 + */ + public function enqueues() { + + $min = wpforms_get_min_suffix(); + + // On the Dashboard and form embedding pages we should load additional scripts and styles. + if ( $this->is_dashboard() || $this->is_embed_page() ) { + $this->dashboard_enqueues(); + } + + wp_enqueue_script( + 'wpforms-lite-admin-education-lite-connect', + WPFORMS_PLUGIN_URL . "assets/lite/js/admin/education/lite-connect{$min}.js", + [ 'jquery', 'wp-util' ], + WPFORMS_VERSION, + true + ); + + wp_localize_script( + 'wpforms-lite-admin-education-lite-connect', + 'wpforms_education_lite_connect', + $this->get_js_strings() + ); + } + + /** + * Dashboard enqueues. + * + * @since 1.7.4 + */ + private function dashboard_enqueues() { + + $min = wpforms_get_min_suffix(); + + // jQuery.Confirm Reloaded. + wp_enqueue_script( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.js', + [ 'jquery' ], + '1.0.0', + true + ); + + // jQuery.Confirm Reloaded. + wp_enqueue_style( + 'jquery-confirm', + WPFORMS_PLUGIN_URL . 'assets/lib/jquery.confirm/jquery-confirm.min.css', + [], + '1.0.0' + ); + + // FontAwesome. + wp_enqueue_style( + 'wpforms-font-awesome', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/all.min.css', + null, + '7.0.1' + ); + + // FontAwesome v4 compatibility shims. + wp_enqueue_style( + 'wpforms-font-awesome-v4-shim', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/v4-shims.min.css', + null, + '4.7.0' + ); + + // Dashboard Education styles. + wp_enqueue_style( + 'wpforms-lite-admin-education-lite-connect', + WPFORMS_PLUGIN_URL . "assets/lite/css/dashboard-education{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Confirmation modal template. + * + * @since 1.7.4 + */ + public function modal_template() { + + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'education/lite-connect-modal' ); + + if ( wpforms_is_admin_page( 'builder' ) ) { + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo wpforms_render( 'education/builder/lite-connect/ai-modal' ); + } + } + + /** + * Get localize strings. + * + * @since 1.7.4 + * + * @return array + */ + private function get_js_strings() { + + return [ + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'wpforms-lite-connect-toggle' ), + 'is_enabled' => $this->is_enabled, + 'enable_modal' => [ + 'confirm' => esc_html__( 'Enable Entry Backups', 'wpforms-lite' ), + 'cancel' => esc_html__( 'No Thanks', 'wpforms-lite' ), + ], + 'enable_ai' => [ + 'confirm' => esc_html__( 'Enable AI Features', 'wpforms-lite' ), + 'enabled_title' => esc_html__( 'AI Features Enabled', 'wpforms-lite' ), + ], + 'disable_modal' => [ + 'title' => esc_html__( 'Are you sure?', 'wpforms-lite' ), + 'content' => esc_html__( 'If you disable Lite Connect, you will no longer be able to restore your entries when you upgrade to WPForms Pro.', 'wpforms-lite' ), + 'confirm' => esc_html__( 'Disable Entry Backups', 'wpforms-lite' ), + 'cancel' => esc_html__( 'Cancel', 'wpforms-lite' ), + ], + 'update_result' => [ + 'enabled_title' => esc_html__( 'Entry Backups Enabled', 'wpforms-lite' ), + 'enabled' => esc_html__( 'Awesome! If you decide to upgrade to WPForms Pro, you can restore your entries and will have instant access to reports.', 'wpforms-lite' ), + 'disabled_title' => esc_html__( 'Entry Backups Disabled', 'wpforms-lite' ), + 'disabled' => esc_html__( 'Form Entry Backups were successfully disabled.', 'wpforms-lite' ), + 'error_title' => esc_html__( 'Error', 'wpforms-lite' ), + 'error' => esc_html__( 'Unfortunately, the error occurs while updating Form Entry Backups setting. Please try again later.', 'wpforms-lite' ), + 'close' => esc_html__( 'Close', 'wpforms-lite' ), + ], + ]; + } + + /** + * Generate Lite Connect entries information. + * + * @since 1.7.4 + * + * @return string + */ + private function get_lite_connect_entries_since_info() { + + $entries_count = LiteConnectIntegration::get_new_entries_count(); + $enabled_since = LiteConnectIntegration::get_enabled_since(); + + $string = sprintf( + esc_html( /* translators: %d - backed up entries count. */ + _n( + '%d entry backed up', + '%d entries backed up', + $entries_count, + 'wpforms-lite' + ) + ), + absint( $entries_count ) + ); + + if ( ! empty( $enabled_since ) ) { + $string .= ' ' . sprintf( + /* translators: %s - time when Lite Connect was enabled. */ + esc_html__( 'since %s', 'wpforms-lite' ), + esc_html( wpforms_date_format( $enabled_since, '', true ) ) + ); + } + + return $string; + } + + /** + * Add content before the Chart block in the Dashboard Widget. + * + * @since 1.7.4 + * + * @param string $content Content. + * + * @return string + */ + public function dashboard_widget_before_content( $content ) { + + $toggle = wpforms_panel_field_toggle_control( + [ + 'control-class' => 'wpforms-setting-lite-connect-auto-save-toggle', + ], + 'wpforms-setting-lite-connect-enabled', + '', + esc_html__( 'Enable Form Entry Backups', 'wpforms-lite' ), + $this->is_enabled, + 'disabled' + ); + + return wpforms_render( + 'education/admin/lite-connect/dashboard-widget-before', + [ + 'toggle' => $toggle, + 'is_enabled' => $this->is_enabled, + 'entries_since_info' => $this->get_lite_connect_entries_since_info(), + ], + true + ); + } + + /** + * Add top bar before the toolbar in the Form Builder. + * + * @since 1.7.4 + * + * @param string $content Content before the toolbar. Defaults to empty string. + * + * @return string + */ + public function top_bar_content( $content ) { + + if ( $this->is_enabled ) { + return $content; + } + + $dismissed = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); + + // Skip when top bar is dismissed. + if ( ! empty( $dismissed['edu-builder-lite-connect-top-bar'] ) ) { + return $content; + } + + $toggle = wpforms_panel_field_toggle_control( + [ + 'control-class' => 'wpforms-setting-lite-connect-auto-save-toggle', + ], + 'wpforms-setting-lite-connect-enabled', + '', + esc_html__( 'Enable Form Entry Backups for Free', 'wpforms-lite' ), + $this->is_enabled, + 'disabled' + ); + + return wpforms_render( + 'education/builder/lite-connect/top-bar', + [ + 'toggle' => $toggle, + 'is_enabled' => $this->is_enabled, + ], + true + ) . $content; + } + + /** + * Challenge Congrats popup footer. + * + * @since 1.7.4 + * + * @param string $content Footer content. + * + * @return string + */ + public function challenge_popup_footer_content( $content ) { + + if ( $this->is_enabled ) { + return $content; + } + + $toggle = wpforms_panel_field_toggle_control( + [ + 'control-class' => 'wpforms-setting-lite-connect-auto-save-toggle', + ], + 'wpforms-setting-lite-connect-enabled', + '', + esc_html__( 'Enable Form Entry Backups for Free', 'wpforms-lite' ), + $this->is_enabled, + 'disabled' + ); + + return wpforms_render( + 'education/admin/lite-connect/challenge-popup-footer', + [ + 'toggle' => $toggle, + 'is_enabled' => $this->is_enabled, + ], + true + ); + } + + /** + * AJAX checks. + * + * @since 1.9.1 + */ + private function ajax_checks() { + + // Run a security check. + check_ajax_referer( 'wpforms-lite-connect-toggle', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( wpforms_get_capability_manage_options() ) ) { + wp_send_json_error( esc_html__( 'You do not have permission.', 'wpforms-lite' ) ); + } + } + + /** + * AJAX action: update Lite Connect Enabled setting. + * + * @since 1.7.4 + */ + public function ajax_update_lite_connect_enabled_setting() { + + $this->ajax_checks(); + + $slug = LiteConnectClass::SETTINGS_SLUG; + + $settings = get_option( 'wpforms_settings', [] ); + $settings[ $slug ] = ! empty( $_POST['value'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing + + wpforms_update_settings( $settings ); + + if ( ! $settings[ $slug ] ) { + wp_send_json_success( '' ); + } + + // Reset generate key attempts counter. + update_option( API::GENERATE_KEY_ATTEMPT_COUNTER_OPTION, 0 ); + + // We have to start requesting site keys in ajax, turning on the LC functionality. + // First, the request to the API server will be sent. + // Second, the server will respond to our callback URL /wpforms/auth/key/nonce, and the site key will be stored in the DB. + // Third, we have to get access via a separate HTTP request. + ( new LiteConnectIntegration() )->update_keys(); // First request here. + + wp_send_json_success( $this->get_lite_connect_entries_since_info() ); + } + + /** + * AJAX action: Finalize Lite Connect setup. + * + * @since 1.9.1 + */ + public function ajax_lite_connect_finalize() { + + $this->ajax_checks(); + + if ( $this->is_enabled ) { + ( new LiteConnectIntegration() )->update_keys(); // Simulate third request. + } + + wp_send_json_success(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Pages/Addons.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Pages/Addons.php new file mode 100644 index 0000000..e669a09 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Pages/Addons.php @@ -0,0 +1,130 @@ +allow_load() ) { + return; + } + + // Define hooks. + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.6.7 + */ + public function hooks() { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + add_action( 'admin_notices', [ $this, 'notices' ] ); + add_action( 'wpforms_admin_page', [ $this, 'output' ] ); + } + + /** + * Add appropriate scripts to the Addons page. + * + * @since 1.6.7 + */ + public function enqueues() { + + // JavaScript. + wp_enqueue_script( + 'listjs', + WPFORMS_PLUGIN_URL . 'assets/lib/list.min.js', + [ 'jquery' ], + '1.5.0', + false + ); + } + + /** + * Notices. + * + * @since 1.6.7.1 + */ + public function notices() { + + $notice = sprintf( + '

              %1$s

              +

              %2$s

              +

              + + %4$s + +

              ', + esc_html__( 'Upgrade to Unlock WPForms Addons', 'wpforms-lite' ), + esc_html__( 'Access powerful marketing and payment integrations, advanced form fields, and more when you purchase our Plus, Pro, or Elite plans.', 'wpforms-lite' ), + esc_url( wpforms_admin_upgrade_link( 'addons', 'All Addons' ) ), + esc_html__( 'Upgrade Now', 'wpforms-lite' ) + ); + + \WPForms\Admin\Notice::info( + $notice, + [ 'autop' => false ] + ); + } + + /** + * Render the Addons page. + * + * @since 1.6.7 + */ + public function output() { + + $addons = wpforms()->obj( 'addons' )->get_all(); + + if ( empty( $addons ) ) { + return; + } + + // WPForms 1.8.7 core includes Custom Captcha. + // The Custom Captcha addon will only work on WPForms 1.8.6 and earlier versions. + unset( $addons['wpforms-captcha'] ); + + echo wpforms_render( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + 'admin/addons', + [ + 'upgrade_link_base' => wpforms_admin_upgrade_link( 'addons' ), + 'addons' => $addons, + ], + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Admin/Settings/Access.php b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Settings/Access.php new file mode 100644 index 0000000..3ffdc06 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Admin/Settings/Access.php @@ -0,0 +1,171 @@ +hooks(); + } + + /** + * Hooks. + * + * @since 1.5.8 + */ + public function hooks() { + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); + add_filter( 'wpforms_settings_tabs', [ $this, 'add_tab' ] ); + add_filter( 'wpforms_settings_defaults', [ $this, 'add_section' ] ); + } + + /** + * Enqueues. + * + * @since 1.5.8 + */ + public function enqueues() { + + if ( ! wpforms_is_admin_page( 'settings', self::SLUG ) ) { + return; + } + + // Lity. + wp_enqueue_style( + 'wpforms-lity', + WPFORMS_PLUGIN_URL . 'assets/lib/lity/lity.min.css', + null, + '3.0.0' + ); + + wp_enqueue_script( + 'wpforms-lity', + WPFORMS_PLUGIN_URL . 'assets/lib/lity/lity.min.js', + [ 'jquery' ], + '3.0.0', + true + ); + } + + /** + * Add Access tab. + * + * @since 1.5.8 + * + * @param array $tabs Array of tabs. + * + * @return array Array of tabs. + */ + public function add_tab( $tabs ) { + + $tab = [ + self::SLUG => [ + 'name' => esc_html__( 'Access', 'wpforms-lite' ), + 'form' => false, + 'submit' => false, + ], + ]; + + return wpforms_list_insert_after( $tabs, 'geolocation', $tab ); + } + + /** + * Add Access settings section. + * + * @since 1.5.8 + * + * @param array $settings Settings sections. + * + * @return array + */ + public function add_section( $settings ) { + + $settings[ self::SLUG ][ self::SLUG . '-page' ] = [ + 'id' => self::SLUG . '-page', + 'content' => wpforms_render( 'education/admin/page', $this->template_data(),true ), + 'type' => 'content', + 'no_label' => true, + ]; + + return $settings; + } + + /** + * Get the template data. + * + * @since 1.8.6 + * + * @return array + */ + private function template_data(): array { + + $images_url = WPFORMS_PLUGIN_URL . 'assets/images/lite-settings-access/'; + + return [ + 'features' => [ + __( 'Create Forms', 'wpforms-lite' ), + __( 'Delete Forms', 'wpforms-lite' ), + __( 'Edit Forms Entries', 'wpforms-lite' ), + __( 'Edit Forms', 'wpforms-lite' ), + __( 'Delete Others Forms', 'wpforms-lite' ), + __( 'Edit Others Forms Entries', 'wpforms-lite' ), + __( 'Edit Others Forms', 'wpforms-lite' ), + __( 'View Forms Entries', 'wpforms-lite' ), + __( 'Delete Forms Entries', 'wpforms-lite' ), + __( 'View Forms', 'wpforms-lite' ), + __( 'View Others Forms Entries', 'wpforms-lite' ), + __( 'Delete Others Forms Entries', 'wpforms-lite' ), + __( 'View Others Forms', 'wpforms-lite' ), + ], + 'images' => [ + [ + 'url' => $images_url . 'screenshot-access-controls.png', + 'url2x' => $images_url . 'screenshot-access-controls@2x.png', + 'title' => __( 'Simple Built-in Controls', 'wpforms-lite' ), + ], + [ + 'url' => $images_url . 'screenshot-members.png', + 'url2x' => $images_url . 'screenshot-members@2x.png', + 'title' => __( 'Members Integration', 'wpforms-lite' ), + ], + [ + 'url' => $images_url . 'screenshot-user-role-editor.png', + 'url2x' => $images_url . 'screenshot-user-role-editor@2x.png', + 'title' => __( 'User Role Editor Integration', 'wpforms-lite' ), + ], + ], + 'utm_medium' => 'Settings - Access', + 'utm_content' => 'Access Controls', + 'heading_title' => __( 'Access Controls', 'wpforms-lite' ), + 'heading_description' => sprintf( + '

              %1$s

              ', + __( 'Access controls allows you to manage and customize access to WPForms functionality. You can easily grant or restrict access using the simple built-in controls, or use our official integrations with Members and User Role Editor plugins.', 'wpforms-lite' ) + ), + 'badge' => __( 'Pro', 'wpforms-lite' ), + 'features_description' => __( 'Custom access to the following capabilities…', 'wpforms-lite' ), + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Emails/Summaries.php b/wp-content/plugins/wpforms-lite/src/Lite/Emails/Summaries.php new file mode 100644 index 0000000..335b1be --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Emails/Summaries.php @@ -0,0 +1,221 @@ +allow_entries_count_lite = apply_filters( 'wpforms_dash_widget_allow_entries_count_lite', true ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + parent::__construct(); + + // Register the Lite weekly entries count cron schedule. + $this->register_entries_count_schedule(); + } + + /** + * Hooks. + * + * @since 1.8.8 + */ + public function hooks() { + + parent::hooks(); + + // The following schedule is essential for the Lite version. + // Regardless of the "Weekly Summaries" feature being disabled or enabled, + // it ensures that entries numbers are consistently updated. + if ( ! $this->allow_entries_count_lite ) { + return; + } + + add_action( 'wpforms_weekly_entries_count_cron', [ $this, 'entries_count_cron' ] ); + } + + /** + * Adjusts the Lite weekly entries count cron schedule. + * + * This function modifies the Lite weekly entries count cron schedule by reducing the interval by 5 seconds. + * + * @since 1.8.8 + * @deprecated 1.9.1 + * + * @param array $schedules WP cron schedules. + * + * @return array + */ + public function weekly_entries_count( $schedules ) { + + _deprecated_function( __METHOD__, '1.9.1 of the WPForms plugin' ); + + $schedules['wpforms_weekly_entries_count'] = [ + 'interval' => $this->get_next_launch_time() - time(), + 'display' => esc_html__( 'Calculate WPForms Lite Weekly Entries Count', 'wpforms-lite' ), + ]; + + return $schedules; + } + + /** + * Run the cron job to update entries count for Lite users. + * + * This function retrieves the current entries count for Lite users, calculates the count for the + * previous week, and updates the necessary post meta data for trend calculations. + * + * @since 1.8.8 + */ + public function entries_count_cron() { + + // Get entries count for Lite users. + $entries = ( new EntriesCount() )->get_by_form(); + + // Exit if there are no form entries to update. + if ( empty( $entries ) ) { + return; + } + + foreach ( $entries as $form_id => &$form ) { + // Set total entries count to the current count. + $form['total'] = $form['count']; + + // Retrieve the previous week's count data from post meta. + $previous_week_count = get_post_meta( $form_id, 'wpforms_entries_count_previous_week', true ); + + // Continue to the next form if the count data is not valid. + if ( ! is_array( $previous_week_count ) || count( $previous_week_count ) !== 3 ) { + $prev_count_previous_week = $form['total']; + + // Set the previous week's count zero "0" if the form was published less than or equal to 7 days ago. + if ( $this->is_form_created_in_7days( $form_id ) ) { + $prev_count_previous_week = 0; + } + + update_post_meta( $form_id, 'wpforms_entries_count_previous_week', [ $form['total'], $form['total'], $prev_count_previous_week ] ); + + continue; + } + + list( $total_previous_week, $count_previous_week ) = $previous_week_count; + + // Calculate count, count_previous_week, and trends. + $form['count'] = $form['total'] - $total_previous_week; + + if ( count( array_unique( $previous_week_count ) ) === 1 ) { + // If the previous week's count is the same as the current count, skip trends calculation. + update_post_meta( $form_id, 'wpforms_entries_count_previous_week_skip_trends', true ); + } else { + // If the previous week's count is different from the current count, calculate trends. + delete_post_meta( $form_id, 'wpforms_entries_count_previous_week_skip_trends' ); + } + + // Update post meta data for trend calculations. + update_post_meta( $form_id, 'wpforms_entries_count_previous_week', [ $form['total'], $form['count'], $count_previous_week ] ); + } + } + + /** + * Get form entries. + * + * @since 1.8.8 + * + * @return array + */ + protected function get_entries(): array { + + return ( new EntriesCount() )->get_form_trends(); + } + + /** + * Register entries count schedule. + * + * @since 1.8.8 + */ + private function register_entries_count_schedule() { + + if ( ! $this->allow_entries_count_lite && wp_next_scheduled( 'wpforms_weekly_entries_count_cron' ) ) { + wp_clear_scheduled_hook( 'wpforms_weekly_entries_count_cron' ); + + return; + } + + if ( $this->allow_entries_count_lite && ! wp_next_scheduled( 'wpforms_weekly_entries_count_cron' ) ) { + // Since v1.9.1 we use a single event and manually reoccur it + // because a recurring event cannot guarantee + // its firing at the same time during WP_CLI execution. + wp_schedule_single_event( $this->get_next_launch_time(), 'wpforms_weekly_entries_count_cron' ); + } + } + + /** + * Get next Monday midnight with WordPress offset. + * + * @since 1.9.1 + * + * @return int + */ + protected function get_next_launch_time(): int { + + $datetime = date_create( 'next monday', wp_timezone() ); + + if ( ! $datetime ) { + return time() + WEEK_IN_SECONDS; + } + + return absint( $datetime->getTimestamp() ); + } + + /** + * Check if the given form_id was published less than or equal to 7 days ago. + * + * @since 1.8.8 + * + * @param int $form_id The ID of the form (post). + * + * @return bool + */ + private function is_form_created_in_7days( int $form_id ): bool { + + // Get the form (post) publish date. + $date_created = get_post_field( 'post_date', $form_id, 'raw' ); + + // If the form date is not available, return false. + if ( empty( $date_created ) ) { + return false; + } + + // Calculate the time difference between the post date and the current date. + $time_difference = time() - strtotime( $date_created ); + + // Compare the time difference with 7 days in seconds. + return $time_difference <= 7 * DAY_IN_SECONDS; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Abilities/Abilities.php b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Abilities/Abilities.php new file mode 100644 index 0000000..7ff0549 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Abilities/Abilities.php @@ -0,0 +1,116 @@ +register_common_abilities(); + + // Lite-specific: Register form stats ability (basic). + $this->register_form_stats_ability(); + } + + /** + * Register the form_stats ability (Lite version - basic stats with upsell). + * + * @since 1.9.9 + */ + protected function register_form_stats_ability(): void { + + wp_register_ability( + self::ABILITY_NAMESPACE . '/get-form-stats', + [ + 'label' => __( 'Get Form Stats', 'wpforms-lite' ), + 'description' => __( 'Get basic statistics for a WPForms form. Upgrade to Pro for detailed entry data.', 'wpforms-lite' ), + 'category' => self::CATEGORY_SLUG, + 'execute_callback' => [ $this, 'ability_get_form_stats' ], + 'permission_callback' => [ $this, 'check_view_single_form_permission' ], + 'input_schema' => [ + 'type' => 'object', + 'properties' => [ + 'form_id' => [ + 'description' => __( 'The ID of the form to get stats for.', 'wpforms-lite' ), + 'type' => 'integer', + 'required' => true, + 'minimum' => 1, + ], + ], + 'required' => [ 'form_id' ], + ], + 'output_schema' => [ + 'type' => 'object', + 'properties' => [ + 'form_id' => [ 'type' => 'integer' ], + 'entries_available' => [ 'type' => 'boolean' ], + 'message' => [ 'type' => 'string' ], + ], + ], + 'meta' => [ + 'annotations' => [ + 'readonly' => true, + 'destructive' => false, + 'idempotent' => true, + ], + 'show_in_rest' => true, + 'mcp' => [ + 'public' => true, + ], + ], + ] + ); + } + + /** + * Ability callback: Get form stats (Lite version). + * + * @since 1.9.9 + * + * @param mixed $input Input data. + * + * @return array|WP_Error + */ + public function ability_get_form_stats( $input = null ) { + + $args = $this->normalize_input( $input ); + $form_id = absint( $args['form_id'] ?? 0 ); + + $form_handler = $this->get_form_handler(); + + if ( is_wp_error( $form_handler ) ) { + return $form_handler; + } + + $form = $form_handler->get( $form_id ); + + if ( empty( $form ) ) { + return new WP_Error( + 'wpforms_form_not_found', + __( 'Form not found.', 'wpforms-lite' ), + [ 'status' => 404 ] + ); + } + + // Lite version returns limited stats with the upsell message. + return [ + 'form_id' => $form_id, + 'entries_available' => false, + 'message' => __( 'Entry statistics require WPForms Pro. Upgrade to access detailed form submission data.', 'wpforms-lite' ), + ]; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Elementor/ThemesData.php b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Elementor/ThemesData.php new file mode 100644 index 0000000..6a3ceec --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Elementor/ThemesData.php @@ -0,0 +1,24 @@ +themes_data_obj = new ThemesData(); + + parent::load(); + } + + /** + * Integration hooks. + * + * @since 1.8.8 + */ + protected function hooks() { + + add_action( 'rest_api_init', [ $this, 'init_rest' ] ); + + parent::hooks(); + } + + /** + * Initialize rest API. + * + * @since 1.8.8 + */ + public function init_rest() { + + if ( ! $this->rest_api_obj ) { + $this->rest_api_obj = new RestApi( $this, $this->themes_data_obj ); + } + } + + /** + * Register WPForms Gutenberg block styles. + * + * @since 1.8.8 + */ + protected function register_styles() { + + if ( ! is_admin() ) { + return; + } + + parent::register_styles(); + + // FontAwesome. + wp_enqueue_style( + 'wpforms-font-awesome', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/all.min.css', + null, + '7.0.1' + ); + + // FontAwesome v4 compatibility shims. + wp_enqueue_style( + 'wpforms-font-awesome-v4-shim', + WPFORMS_PLUGIN_URL . 'assets/lib/font-awesome/css/v4-shims.min.css', + null, + '4.7.0' + ); + } + + /** + * Load WPForms Gutenberg block scripts. + * + * @since 1.8.8 + */ + public function enqueue_block_editor_assets() { + + parent::enqueue_block_editor_assets(); + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-generic-utils', + WPFORMS_PLUGIN_URL . "assets/js/share/utils{$min}.js", + [ 'jquery' ], + WPFORMS_VERSION, + true + ); + + if ( ! $this->is_legacy_block() ) { + wp_enqueue_script( + 'wpforms-gutenberg-form-selector', + WPFORMS_PLUGIN_URL . "assets/lite/js/integrations/gutenberg/formselector.es5{$min}.js", + [ 'wp-blocks', 'wp-i18n', 'wp-element', 'jquery', 'wpforms-admin-education-core', 'wpforms-generic-utils' ], + WPFORMS_VERSION, + true + ); + } + + wp_localize_script( + 'wpforms-gutenberg-form-selector', + 'wpforms_gutenberg_form_selector', + $this->get_localize_data() + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Gutenberg/ThemesData.php b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Gutenberg/ThemesData.php new file mode 100644 index 0000000..40d7172 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/Gutenberg/ThemesData.php @@ -0,0 +1,24 @@ +update_keys(); // Third request here. + + // Submit entry to the Lite Connect API. + $response = $this->add_form_entry( $this->auth['access_token'], $entry_args['form_id'], $entry_data ); + + // Confirm if entry has been added successfully to the Lite Connect API. + if ( $response ) { + $response = json_decode( $response, true ); + } + + if ( isset( $response['error'] ) && $response['error'] === 'Access token is invalid or expired.' ) { + // Force to re-generate access token in case it is invalid. + $this->get_access_token( $this->get_site_key(), true ); + } + + if ( ! isset( $response['status'] ) || $response['status'] !== 'success' ) { + /** + * If Lite Connect API is not available in the add_form_entry() + * request above, then a task is created to run it later via Action + * Scheduler. + */ + ( new SendEntryTask() )->create( $entry_args['form_id'], $entry_data ); + } + + // Increase the entries count if the entry has been added successfully. + if ( isset( $response['status'] ) && $response['status'] === 'success' ) { + $this->increase_entries_count( $entry_args['form_id'] ); + } + + if ( ! empty( $response['error'] ) ) { + wpforms_log( + 'Lite Connect: error submitting form entry', + [ + 'response' => $response, + 'entry_args' => $entry_args, + ], + [ + 'type' => [ 'error' ], + 'form_id' => $entry_args['form_id'], + ] + ); + } + + return $response; + } + + /** + * Increases the Lite Connect entries count. + * + * @since 1.7.4 + * + * @param int|false $form_id The form ID. + */ + public function increase_entries_count( $form_id = false ) { + + self::maybe_set_entries_count(); + + update_option( self::LITE_CONNECT_ENTRIES_COUNT_OPTION, self::get_entries_count() + 1 ); + + // Increase the form entries count. + // It allows counting entries on per form level. + if ( ! empty( $form_id ) ) { + $count = self::get_form_entries_count( (int) $form_id ); + + update_post_meta( $form_id, self::LITE_CONNECT_FORM_ENTRIES_COUNT_META, ++$count ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/LiteConnect.php b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/LiteConnect.php new file mode 100644 index 0000000..defbcc8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/LiteConnect.php @@ -0,0 +1,184 @@ + Settings admin page. + * + * @since 1.7.4 + * + * @param bool $is_enabled Is LiteConnect enabled on WPForms > Settings page? + */ + return (bool) apply_filters( 'wpforms_lite_integrations_lite_connect_is_enabled', wpforms_setting( self::SETTINGS_SLUG ) ); + + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Load the integration. + * + * @since 1.7.4 + */ + public function load() { + + parent::load(); + + // Do not load if user doesn't have permissions to update settings. + if ( ! wpforms_current_user_can( wpforms_get_capability_manage_options() ) ) { + return; + } + + // Hooks. + $this->hooks(); + + // Process any pending submissions to the API, even if the Lite Connect integration is disabled. + $this->send_entry_task = new SendEntryTask(); + + // It won't load if the Lite Connect integration is not enabled. + if ( ! self::is_enabled() ) { + return; + } + + // We always need to instance the Integration class as part of the load process for the Lite Connect integration. + $this->integration = new Integration(); + } + + /** + * Hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + // Add Lite Connect option to settings. + add_filter( 'wpforms_settings_defaults', [ $this, 'settings_option' ] ); + + // Automatically save the timestamp when Lite Connect was enabled first time. + add_filter( 'wpforms_update_settings', [ $this, 'update_enabled_settings' ] ); + + } + + /** + * Add "Lite Connect: Enable Entry Backups" to the WPForms Lite settings. + * + * @since 1.7.4 + * + * @param array $settings WPForms settings. + * + * @return array + */ + public function settings_option( $settings ) { + + $setting = [ + self::SETTINGS_SLUG => [ + 'id' => self::SETTINGS_SLUG, + 'name' => esc_html__( 'Lite Connect', 'wpforms-lite' ), + 'label' => esc_html__( 'Enable Entry Backups', 'wpforms-lite' ), + 'type' => 'toggle', + 'is-important' => true, + 'control-class' => 'wpforms-setting-lite-connect-auto-save-toggle', + 'input-attr' => 'disabled', + 'desc-on' => sprintf( + wp_kses( /* translators: %s - upgrade to WPForms Pro landing page URL. */ + __( 'Your form entries are not being stored locally, but are backed up remotely. If you upgrade to WPForms PRO, you can restore your entries and they’ll be available in the WordPress dashboard.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'target' => [], + 'rel' => [], + ], + 'strong' => [], + ] + ), + esc_url( wpforms_admin_upgrade_link( 'settings-lite-connect-enabled' ) ) + ), + 'desc-off' => sprintf( + wp_kses( /* translators: %s - upgrade to WPForms Pro landing page URL. */ + __( 'Your form entries are not being stored in WordPress, and your entry backups are not active. If there\'s a problem with deliverability, you\'ll lose form entries. We recommend that you enable Entry Backups, especially if you\'re considering upgrading to WPForms PRO.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'target' => [], + 'rel' => [], + ], + 'strong' => [], + ] + ), + esc_url( wpforms_admin_upgrade_link( 'settings-lite-connect-disabled', 'Upgrade to WPForms Pro text Link' ) ) + ), + ], + ]; + + $settings['general'] = wpforms_list_insert_after( $settings['general'], 'license-key', $setting ); + + return $settings; + } + + /** + * Automatically save the additional info when Lite Connect was enabled first time. + * + * @since 1.7.4 + * + * @param array $settings WPForms settings. + * + * @return array + */ + public function update_enabled_settings( $settings ) { + + if ( empty( $settings[ self::SETTINGS_SLUG ] ) ) { + return $settings; + } + + $since = self::SETTINGS_SLUG . '-since'; + $email = self::SETTINGS_SLUG . '-email'; + + if ( empty( $settings[ $since ] ) ) { + $settings[ $since ] = time(); + } + + if ( empty( $settings[ $email ] ) ) { + $user = wp_get_current_user(); + $settings[ $email ] = $user && ! empty( $user->user_email ) ? $user->user_email : get_option( 'admin_email' ); + } + + return $settings; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/SendEntryTask.php b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/SendEntryTask.php new file mode 100644 index 0000000..cdeb1e4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Integrations/LiteConnect/SendEntryTask.php @@ -0,0 +1,135 @@ +hooks(); + } + + /** + * Initialize the hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + // Process the tasks as needed. + add_action( self::LITE_CONNECT_TASK, [ $this, 'process' ] ); + } + + /** + * Creates a task to submit the lite entry to the Lite Connect API via + * Action Scheduler. + * + * @since 1.7.4 + * + * @param int $form_id The form ID. + * @param string $entry_data The entry data. + */ + public function create( $form_id, $entry_data ) { + + $action_id = wpforms()->obj( 'tasks' ) + ->create( self::LITE_CONNECT_TASK ) + ->params( $form_id, $entry_data ) + ->once( time() + wp_rand( 10, 60 ) * MINUTE_IN_SECONDS ) + ->register(); + + if ( $action_id === null ) { + wpforms_log( + 'Lite Connect: error creating the AS task', + [ + 'task' => self::LITE_CONNECT_TASK, + ], + [ 'type' => [ 'error' ] ] + ); + } + } + + /** + * Process the task to submit the entry to the Lite Connect API via + * Action Scheduler. + * + * @since 1.7.4 + * + * @param int $meta_id The meta ID. + */ + public function process( $meta_id ) { + + // Load task data. + $params = ( new Meta() )->get( (int) $meta_id ); + + list( $form_id, $entry_data ) = $params->data; + + // Grab current access token. If site key or access token is not available, then it recreates the task to run later. + $access_token = $this->get_access_token( $this->get_site_key() ); + + if ( ! $access_token ) { + $this->create( $form_id, $entry_data ); + + return; + } + + // Submit entry to the Lite Connect API. + $response = ( new API() )->add_form_entry( $access_token, $form_id, $entry_data ); + + if ( $response ) { + $response = json_decode( $response, true ); + } + + if ( isset( $response['error'] ) && $response['error'] === 'Access token is invalid or expired.' ) { + // Force to re-generate access token in case it is invalid. + $this->get_access_token( $this->get_site_key(), true ); + } + + if ( ! empty( $response['error'] ) ) { + wpforms_log( + 'Lite Connect: error submitting form entry (AS task)', + [ + 'response' => $response, + 'entry_data' => $entry_data, + ], + [ + 'type' => [ 'error' ], + 'form_id' => $form_id, + ] + ); + } + + // Recreate the task if the request to the API fail for any reasons. + if ( ! isset( $response['status'] ) || $response['status'] !== 'success' ) { + $this->create( $form_id, $entry_data ); + + return; + } + + // Increase the entries count if the entry has been added successfully. + $this->increase_entries_count( $form_id ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Lite/Reports/EntriesCount.php b/wp-content/plugins/wpforms-lite/src/Lite/Reports/EntriesCount.php new file mode 100644 index 0000000..5c725ae --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Lite/Reports/EntriesCount.php @@ -0,0 +1,187 @@ +obj( 'form' )->get( '', [ 'fields' => 'ids' ] ); + + // Return early if no forms found. + if ( empty( $forms ) || ! is_array( $forms ) ) { + return []; + } + + $results = []; + + // Iterate through form IDs. + foreach ( $forms as $form_id ) { + // Get entries count for the form. + $count = absint( get_post_meta( $form_id, 'wpforms_entries_count', true ) ); + + // Skip if the count is empty. + if ( empty( $count ) ) { + continue; + } + + // Add form details to the result. + $results[ $form_id ] = [ + 'form_id' => $form_id, + 'count' => $count, + 'title' => get_the_title( $form_id ), + ]; + } + + // Sort forms by entries count (desc). + if ( ! empty( $results ) ) { + uasort( + $results, + function ( $a, $b ) { + return ( $a['count'] > $b['count'] ) ? -1 : 1; + } + ); + } + + return $results; + } + + /** + * Retrieve and calculate form trends data for Lite users. + * + * This function calculates and returns trends data for Lite users based on the total number + * of entries submitted per week compared to the previous week's total entries. Optionally + * updates the database with the calculated data. + * + * @since 1.8.8 + * + * @return array + */ + public function get_form_trends() { + + // Get form IDs. + $results = $this->get_by_form(); + + // Collection of form IDs that don't have valid previous week's count data. + $maybe_unset_form_ids = []; + + foreach ( $results as $form_id => &$form ) { + // Retrieve the previous week's count data from post meta. + $previous_week_count = get_post_meta( $form_id, 'wpforms_entries_count_previous_week', true ); + + // Continue to the next form if the count data is not valid. + if ( ! is_array( $previous_week_count ) || count( $previous_week_count ) !== 3 ) { + $maybe_unset_form_ids[] = $form_id; + + continue; + } + + // Continue to the next form if the previous week's count data is not valid. + if ( count( array_unique( $previous_week_count ) ) === 1 ) { + continue; + } + + list( $total_previous_week, $count_previous_week, $prev_count_previous_week ) = $previous_week_count; + + // Calculate the form's trends data. + $form['total'] = $total_previous_week + $count_previous_week; + $form['count'] = $form['total'] - $total_previous_week; + $form['count_previous_week'] = $prev_count_previous_week; + + // If both the current week's count and the previous week's count are zero, set trends to zero. + if ( $form['count_previous_week'] === 0 && $form['count'] === 0 ) { + $form['trends'] = 0; + + continue; + } + + // If trends are set to be skipped, set trends to zero, and set the previous week's count to zero. + // Thies's been needed since at this stage we don't know the number of entries submitted in the previous week. + if ( (bool) get_post_meta( $form_id, 'wpforms_entries_count_previous_week_skip_trends', true ) ) { + $form['trends'] = 0; + $form['count_previous_week'] = 0; + + continue; + } + + $form['trends'] = $this->get_calculated_trends( $form['count'], $form['count_previous_week'] ); + } + + // Unset forms that don't have valid previous week's count data. + return $this->maybe_unset_form_ids( $results, $maybe_unset_form_ids ); + } + + /** + * Unsets forms from the results array that lack valid previous week's count data. + * + * This function checks for the presence of valid previous week's count data for each form in the + * provided results array. If all forms in the array lack valid data, the original results array is + * returned without any changes. Otherwise, forms without valid data are unset from the array. + * + * @since 1.8.8 + * + * @param array $results The original array of form results. + * @param array $maybe_unset_form_ids The form IDs that may need to be unset. + * + * @return array + */ + private function maybe_unset_form_ids( $results, $maybe_unset_form_ids ) { + + if ( empty( $maybe_unset_form_ids ) ) { + return $results; + } + + // If all forms don't have valid previous week's count data, return early. + if ( count( $maybe_unset_form_ids ) === count( $results ) ) { + return $results; + } + + // Unset forms that don't have valid previous week's count data. + foreach ( $maybe_unset_form_ids as $form_id ) { + unset( $results[ $form_id ] ); + } + + return $results; + } + + /** + * Get the calculated trends based on the count and count from the previous week. + * + * This function calculates and returns the trends based on the current count + * and the count from the previous week. + * + * @since 1.8.8 + * + * @param int $count The current count. + * @param int $count_previous_week The count from the previous week. + * + * @return int + */ + private function get_calculated_trends( $count, $count_previous_week ) { + + // If count from the previous week is zero, set trends to 100 to avoid division by zero. + return ( $count_previous_week === 0 ) ? 100 : round( ( $count - $count_previous_week ) / $count_previous_week * 100 ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Loader.php b/wp-content/plugins/wpforms-lite/src/Loader.php new file mode 100644 index 0000000..9cc2008 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Loader.php @@ -0,0 +1,965 @@ +populate_classes(); + + wpforms()->register_bulk( $this->classes ); + } + + /** + * Populate the classes to register. + * + * @since 1.5.8 + */ + protected function populate_classes(): void { + + $this->populate_common(); + $this->populate_frontend(); + $this->populate_admin(); + $this->populate_caches(); + $this->populate_fields(); + $this->populate_forms_overview(); + $this->populate_entries(); + $this->populate_builder(); + $this->populate_db(); + $this->populate_migrations(); + $this->populate_capabilities(); + $this->populate_tasks(); + $this->populate_forms(); + $this->populate_smart_tags(); + $this->populate_logger(); + $this->populate_education(); + $this->populate_robots(); + $this->populate_anti_spam(); + } + + /** + * Populate common classes. + * + * @since 1.8.6 + */ + private function populate_common(): void { + + $this->classes[] = [ + 'name' => 'API', + 'id' => 'api', + ]; + + $this->classes[] = [ + 'name' => 'Emails\Summaries', + ]; + } + + /** + * Populate the Forms related classes. + * + * @since 1.6.2 + */ + private function populate_forms(): void { + + $this->classes[] = [ + 'name' => 'Forms\Preview', + 'id' => 'preview', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Token', + 'id' => 'token', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Honeypot', + 'id' => 'honeypot', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Akismet', + 'id' => 'akismet', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Submission', + 'id' => 'submission', + 'hook' => false, + 'run' => false, + ]; + + $this->classes[] = [ + 'name' => 'Forms\Locator', + 'id' => 'locator', + ]; + + $this->classes[] = [ + 'name' => 'Forms\IconChoices', + 'id' => 'icon_choices', + ]; + + $this->classes[] = [ + 'name' => 'Forms\AntiSpam', + 'id' => 'anti_spam', + ]; + } + + /** + * Populate Frontend-related classes. + * + * @since 1.8.1 + */ + private function populate_frontend(): void { + + $this->classes[] = [ + 'name' => 'Frontend\Address', + 'id' => 'address', + ]; + + $this->classes[] = [ + 'name' => 'Frontend\Amp', + 'id' => 'amp', + ]; + + $this->classes[] = [ + 'name' => 'Frontend\Captcha', + 'id' => 'captcha', + ]; + + $this->classes[] = [ + 'name' => 'Frontend\CSSVars', + 'id' => 'css_vars', + ]; + + $this->classes[] = [ + 'name' => 'Frontend\Classic', + 'id' => 'frontend_classic', + ]; + + $this->classes[] = [ + 'name' => 'Frontend\Modern', + 'id' => 'frontend_modern', + ]; + + $this->classes[] = [ + 'name' => 'Frontend\Frontend', + 'id' => 'frontend', + ]; + } + + /** + * Populate Admin-related classes. + * + * @since 1.6.0 + */ + private function populate_admin(): void { + + array_push( + $this->classes, + [ + 'name' => 'Admin\Notice', + 'id' => 'notice', + ], + [ + 'name' => 'Admin\Revisions', + 'id' => 'revisions', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Addons\AddonsCache', + 'id' => 'addons_cache', + ], + [ + 'name' => 'Admin\CoreInfoCache', + 'id' => 'core_info_cache', + ], + [ + 'name' => 'Admin\Addons\Addons', + 'id' => 'addons', + ], + [ + 'name' => 'Admin\AdminBarMenu', + 'hook' => 'init', + ], + [ + 'name' => 'Admin\Notifications\Notifications', + 'id' => 'notifications', + ], + [ + 'name' => 'Admin\Entries\Handler', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Pages\Templates', + 'id' => 'templates_page', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Forms\UserTemplates', + 'id' => 'user_templates', + ], + [ + 'name' => 'Admin\Forms\Page', + 'id' => 'forms_overview', + ], + [ + 'name' => 'Admin\Challenge', + 'id' => 'challenge', + ], + [ + 'name' => 'Admin\FormEmbedWizard', + 'hook' => 'admin_init', + 'id' => 'form_embed_wizard', + ], + [ + 'name' => 'Admin\SiteHealth', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Settings\ModernMarkup', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Settings\Email', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Settings\Captcha\Page', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Settings\Payments', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Tools\Tools', + 'hook' => 'current_screen', + ], + [ + 'name' => 'Admin\Payments\Payments', + 'hook' => 'init', + ], + [ + 'name' => 'Admin\Payments\Views\Overview\Ajax', + 'hook' => 'admin_init', + 'run' => 'hooks', + 'condition' => wpforms_is_admin_ajax(), + ], + [ + 'name' => 'Admin\Tools\Importers', + 'hook' => 'admin_init', + 'run' => 'load', + 'condition' => wp_doing_ajax(), + ], + [ + 'name' => 'Admin\Pages\Addons', + 'id' => 'addons_page', + ], + [ + 'name' => 'Admin\Pages\ConstantContact', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Pages\PrivacyCompliance', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Pages\SugarCalendar', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Pages\Duplicator', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Pages\UncannyAutomator', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Forms\Fields\Richtext\EntryViewContent', + ], + [ + 'name' => 'Admin\DashboardWidget', + 'hook' => wpforms()->is_pro() ? 'admin_init' : 'init', + ], + [ + 'name' => 'Emails\Preview', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Addons\GoogleSheets', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\PluginList', + 'id' => 'plugin_list', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Splash\SplashScreen', + 'id' => 'splash_screen', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Splash\SplashCache', + 'id' => 'splash_cache', + 'hook' => 'plugins_loaded', + ], + [ + 'name' => 'Admin\Splash\SplashUpgrader', + 'id' => 'splash_upgrader', + 'hook' => 'plugins_loaded', + ] + ); + } + + /** + * Populate Caches related classes. + * + * @since 1.8.7 + */ + private function populate_caches(): void { + + array_push( + $this->classes, + [ + 'name' => 'LicenseApi\PluginUpdateCache', + 'id' => 'license_api_plugin_update_cache', + ], + [ + 'name' => 'LicenseApi\ValidateKeyCache', + 'id' => 'license_api_validate_key_cache', + ] + ); + } + + /** + * Populate Fields related classes. + * + * @since 1.8.2 + */ + private function populate_fields(): void { + + // Fancy fields. + $this->classes[] = [ + 'name' => 'Forms\Fields\Address\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Content\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\DateTime\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Divider\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\FileUpload\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Hidden\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Html\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Phone\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\EntryPreview\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Password\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\CreditCard\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Rating\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Url\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Richtext\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Pagebreak\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\CustomCaptcha\Field', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Layout\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Layout\Process', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Layout\Notifications', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Repeater\Field', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Camera\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Repeater\Process', + 'id' => 'repeater_process', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Repeater\Notifications', + 'hook' => 'init', + ]; + + // Payment fields. + $this->classes[] = [ + 'name' => 'Forms\Fields\PaymentCheckbox\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\PaymentMultiple\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\PaymentSelect\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\PaymentSingle\Field', + 'hook' => 'init', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\PaymentTotal\Field', + 'hook' => 'init', + ]; + + // Addon fields in Lite. + $this->classes[] = [ + 'name' => 'Forms\Fields\Addons\Coupon\Field', + 'addon_class' => 'WPFormsCoupons\Field', + 'addon_slug' => 'coupons', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Addons\Signature\Field', + 'addon_class' => 'WPFormsSignatures\Fields\Signature', + 'addon_slug' => 'signatures', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Addons\LikertScale\Field', + 'addon_class' => 'WPFormsSurveys\Fields\LikertScale\Field', + 'addon_slug' => 'surveys-polls', + ]; + + $this->classes[] = [ + 'name' => 'Forms\Fields\Addons\NetPromoterScore\Field', + 'addon_class' => 'WPFormsSurveys\Fields\NetPromoterScore\Field', + 'addon_slug' => 'surveys-polls', + ]; + } + + /** + * Populate Forms Overview admin page related classes. + * + * @since 1.7.5 + */ + private function populate_forms_overview(): void { + + if ( ! wpforms_is_admin_page( 'overview' ) && ! wpforms_is_admin_ajax() ) { + return; + } + + array_push( + $this->classes, + [ + 'name' => 'Admin\Forms\Ajax\Columns', + 'id' => 'forms_columns_ajax', + ], + [ + 'name' => 'Admin\Forms\Ajax\Tags', + 'id' => 'forms_tags_ajax', + ], + [ + 'name' => 'Admin\Forms\Search', + 'id' => 'forms_search', + ], + [ + 'name' => 'Admin\Forms\Views', + 'id' => 'forms_views', + ], + [ + 'name' => 'Admin\Forms\BulkActions', + 'id' => 'forms_bulk_actions', + ], + [ + 'name' => 'Admin\Forms\Tags', + 'id' => 'forms_tags', + ] + ); + } + + /** + * Populate Entries related classes. + * + * @since 1.8.6 + */ + private function populate_entries(): void { + + array_push( + $this->classes, + [ + 'name' => 'Admin\Entries\PageOptions', + 'id' => 'entries_page_options', + ], + [ + 'name' => 'Admin\Entries\Page', + 'id' => 'entries_list_page', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Entries\Overview\Page', + 'id' => 'entries_overview', + ], + [ + 'name' => 'Admin\Entries\Overview\Ajax', + 'hook' => 'admin_init', + 'run' => 'hooks', + 'condition' => wpforms_is_admin_ajax(), + ], + [ + 'name' => 'Admin\Entries\Ajax\Columns', + 'id' => 'entries_columns_ajax', + ], + [ + 'name' => 'Admin\Entries\Edit', + 'id' => 'entries_edit', + 'hook' => 'admin_init', + ], + [ + 'name' => 'Admin\Entries\Export\Export', + 'id' => 'entries_export', + 'hook' => 'init', + ], + [ + 'name' => 'Admin\Entries\DefaultScreen', + 'hook' => 'admin_init', + ] + ); + } + + /** + * Populate Form Builder related classes. + * + * @since 1.6.8 + */ + private function populate_builder(): void { + + array_push( + $this->classes, + [ + 'name' => 'Admin\Builder\HelpCache', + 'id' => 'builder_help_cache', + ], + [ + 'name' => 'Admin\Builder\Help', + 'id' => 'builder_help', + ], + [ + 'name' => 'Admin\Builder\Shortcuts', + ], + [ + 'name' => 'Admin\Builder\TemplatesCache', + 'id' => 'builder_templates_cache', + ], + [ + 'name' => 'Admin\Builder\TemplateSingleCache', + 'id' => 'builder_template_single', + ], + [ + 'name' => 'Admin\Builder\Templates', + 'id' => 'builder_templates', + ], + [ + 'name' => 'Admin\Builder\AntiSpam', + 'hook' => 'wpforms_builder_init', + ], + [ + 'name' => 'Admin\Builder\Settings\Themes', + 'hook' => 'wpforms_builder_init', + ], + [ + 'name' => 'Admin\Builder\Notifications\Advanced\EmailTemplate', + 'hook' => 'wpforms_builder_init', + ], + [ + 'name' => 'Admin\Builder\ContextMenu', + 'hook' => 'wpforms_builder_init', + 'id' => 'context_menu', + ], + [ + 'name' => 'Admin\Builder\ImageUpload', + 'hook' => 'wpforms_builder_init', + 'id' => 'image_upload', + ], + [ + 'name' => 'Admin\Builder\Notifications\Advanced\Settings', + ], + [ + 'name' => 'Admin\Builder\Notifications\Advanced\FileUploadAttachment', + ], + [ + 'name' => 'Admin\Builder\Notifications\Advanced\EntryCsvAttachment', + ], + [ + 'name' => 'Admin\Builder\Ajax\PanelLoader', + ], + [ + 'name' => 'Admin\Builder\Addons', + ], + [ + 'name' => 'Admin\Builder\Ajax\SaveForm', + 'id' => 'builder_save_form', + ], + [ + 'name' => 'Admin\Builder\Payments', + 'hook' => 'wpforms_builder_init', + 'id' => 'builder_payments', + ] + ); + } + + /** + * Populate database classes. + * + * @since 1.8.2 + */ + private function populate_db(): void { + + array_push( + $this->classes, + [ + 'name' => 'Db\Payments\Payment', + 'id' => 'payment', + 'hook' => false, + 'run' => false, + ], + [ + 'name' => 'Db\Payments\Meta', + 'id' => 'payment_meta', + 'hook' => false, + 'run' => false, + ], + [ + 'name' => 'Db\Payments\Queries', + 'id' => 'payment_queries', + 'hook' => false, + 'run' => false, + ], + [ + 'name' => 'Db\Files\ProtectedFiles', + 'id' => 'protected_files', + 'hook' => false, + 'run' => false, + ], + [ + 'name' => 'Db\Files\Restrictions', + 'id' => 'file_restrictions', + 'hook' => false, + 'run' => false, + ] + ); + } + + /** + * Populate migration classes. + * + * @since 1.5.9 + */ + private function populate_migrations(): void { + + $this->classes[] = [ + 'name' => 'Migrations\Migrations', + 'hook' => 'plugins_loaded', + ]; + } + + /** + * Populate access management (capabilities) classes. + * + * @since 1.5.8 + */ + private function populate_capabilities(): void { + + array_push( + $this->classes, + [ + 'name' => 'Access\Capabilities', + 'id' => 'access', + 'hook' => 'plugins_loaded', + ], + [ + 'name' => 'Access\Integrations', + ], + [ + 'name' => 'Access\File', + 'hook' => 'init', + 'condition' => ! is_admin(), + ], + [ + 'name' => 'Admin\Settings\Access', + 'condition' => is_admin(), + ] + ); + } + + /** + * Populate tasks related classes. + * + * @since 1.5.9 + */ + private function populate_tasks(): void { + + array_push( + $this->classes, + [ + 'name' => 'Tasks\Tasks', + 'id' => 'tasks', + 'hook' => 'init', + ], + [ + 'name' => 'Tasks\Meta', + 'id' => 'tasks_meta', + 'hook' => false, + 'run' => false, + ] + ); + } + + /** + * Populate smart tags loaded classes. + * + * @since 1.6.7 + */ + private function populate_smart_tags(): void { + + $this->classes[] = [ + 'name' => 'SmartTags\SmartTags', + 'id' => 'smart_tags', + 'run' => 'hooks', + ]; + } + + /** + * Populate logger-loaded classes. + * + * @since 1.6.3 + */ + private function populate_logger(): void { + + $this->classes[] = [ + 'name' => 'Logger\Log', + 'id' => 'log', + 'hook' => false, + 'run' => 'hooks', + ]; + } + + /** + * Populate education-related classes. + * + * @since 1.6.6 + */ + private function populate_education(): void { + + // Kill switch. + + /** + * Filters admin education status. + * + * @since 1.6.6 + * + * @param bool $status Current admin education status. + * + * @return bool + */ + if ( ! apply_filters( 'wpforms_admin_education', true ) ) { // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + return; + } + + // Education core classes. + array_push( + $this->classes, + [ + 'name' => 'Admin\Education\Core', + 'id' => 'education', + ], + [ + 'name' => 'Admin\Education\Fields', + 'id' => 'education_fields', + ], + [ + 'name' => 'Admin\Education\Admin\Settings\SMTP', + 'id' => 'education_smtp_notice', + ], + [ + 'name' => 'Admin\Education\Admin\EditPost', + 'hook' => 'load-edit.php', + ], + [ + 'name' => 'Admin\Education\Admin\EditPost', + 'hook' => 'load-post-new.php', + ], + [ + 'name' => 'Admin\Education\Admin\EditPost', + 'hook' => 'load-post.php', + ], + [ + 'name' => 'Admin\Education\Admin\EditPost', + 'hook' => 'load-site-editor.php', + ], + [ + 'name' => 'Admin\Education\Pointers\Payment', + 'hook' => 'admin_init', + 'priority' => 20, + ] + ); + + // Education features classes. + $features = [ + 'LiteConnect', + 'Builder\Calculations', + 'Builder\Captcha', + 'Builder\Fields', + 'Builder\Settings', + 'Builder\Providers', + 'Builder\Payments', + 'Builder\DidYouKnow', + 'Builder\Geolocation', + 'Builder\Quiz', + 'Builder\Confirmations', + 'Builder\Notifications', + 'Builder\PDF', + 'Admin\DidYouKnow', + 'Admin\Settings\Integrations', + 'Admin\Settings\Geolocation', + 'Admin\NoticeBar', + 'Admin\Entries\Geolocation', + 'Admin\Entries\UserJourney', + ]; + + foreach ( $features as $feature ) { + $this->classes[] = [ + 'name' => 'Admin\Education\\' . $feature, + ]; + } + } + + /** + * Populate robots loaded class. + * + * @since 1.7.0 + */ + private function populate_robots(): void { + + $this->classes[] = [ + 'name' => 'Robots', + 'run' => 'hooks', + ]; + } + + /** + * Populate AntiSpam loaded classes. + * + * @since 1.7.8 + */ + private function populate_anti_spam(): void { + + array_push( + $this->classes, + [ + 'name' => 'AntiSpam\CountryFilter', + 'id' => 'antispam_country_filter', + 'hook' => 'init', + ], + [ + 'name' => 'AntiSpam\KeywordFilter', + 'id' => 'antispam_keyword_filter', + 'hook' => 'init', + ], + [ + 'name' => 'AntiSpam\SpamEntry', + 'id' => 'spam_entry', + 'hook' => 'init', + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Logger/ListTable.php b/wp-content/plugins/wpforms-lite/src/Logger/ListTable.php new file mode 100644 index 0000000..a525f88 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Logger/ListTable.php @@ -0,0 +1,585 @@ +repository = $repository; + + parent::__construct( + [ + 'plural' => esc_html__( 'Logs', 'wpforms-lite' ), + 'singular' => esc_html__( 'Log', 'wpforms-lite' ), + ] + ); + + $this->hooks(); + + add_screen_option( + 'per_page', + [ 'default' => $this->get_items_per_page( $this->get_per_page_option_name() ) ] + ); + set_screen_options(); + } + + /** + * Hooks. + * + * @since 1.7.5 + */ + private function hooks() { + + add_filter( + 'set_screen_option_' . $this->get_per_page_option_name(), + [ $this, 'set_items_per_page_option' ], + 10, + 3 + ); + } + + /** + * Handles setting the items_per_page option for this screen. + * + * @since 1.7.5 + * + * @param mixed $status Default false (to skip saving the current option). + * @param string $option Screen option name. + * @param int $value Screen option value. + * + * @return int + * @noinspection PhpUnusedParameterInspection + */ + public function set_items_per_page_option( $status, $option, $value ) { + + return $value; + } + + /** + * Whether the table has items to display or not. + * + * @since 1.6.3 + * + * @return bool + */ + public function has_items() { + + // We can't use the empty function because it doesn't work with the Countable object. + return (bool) count( $this->items ); + } + + /** + * Prepares the list of items for displaying. + * + * @since 1.6.3 + */ + public function prepare_items() { + + $offset = $this->get_items_offset(); + $search = $this->get_request_search_query(); + $types = $this->get_items_type(); + $per_page = $this->get_items_per_page( $this->get_per_page_option_name() ); + $this->items = $this->repository->records( $per_page, $offset, $search, $types ); + $total_items = $this->get_total(); + + $this->set_pagination_args( + [ + 'total_items' => $total_items, + 'per_page' => $per_page, + 'total_pages' => (int) ceil( $total_items / $per_page ), + ] + ); + } + + /** + * Return the type of records. + * + * @since 1.6.3 + * + * @return string + */ + private function get_items_type() { + + return filter_input( INPUT_GET, 'log_type', FILTER_SANITIZE_FULL_SPECIAL_CHARS ); + } + + /** + * Return the number of items to offset/skip for this current view. + * + * @since 1.6.3 + * + * @return int + */ + private function get_items_offset() { + + return $this->get_items_per_page( $this->get_per_page_option_name() ) * ( $this->get_pagenum() - 1 ); + } + + /** + * Return the search filter for this request, if any. + * + * @since 1.6.3 + * + * @return string + */ + private function get_request_search_query() { + + return filter_input( INPUT_GET, 's', FILTER_SANITIZE_FULL_SPECIAL_CHARS ); + } + + /** + * Column title. + * + * @since 1.6.3 + * + * @param Record $item List table item. + * + * @return string + * @noinspection PhpUnused + */ + public function column_log_title( $item ) { + + return sprintf( + '%2$s', + absint( $item->get_id() ), + esc_html( $item->get_title() ) + ); + } + + /** + * Column message. + * + * @since 1.6.3 + * + * @param Record $item List table item. + * + * @return string + * @noinspection PhpUnused + */ + public function column_message( $item ) { + + $message = $item->get_message(); + + if ( preg_match( '/\[body].+{"error":"(.+)"}/i', $message, $m ) ) { + $message = $m[1]; + } + + if ( preg_match( '/\[error] => (.+)/i', $message, $m ) ) { + $message = $m[1]; + } + + return esc_html( $this->crop_message( $message ) ); + } + + /** + * Column form ID. + * + * @since 1.6.3 + * + * @param Record $item List table item. + * + * @return int + * @noinspection PhpUnused + */ + public function column_form_id( $item ) { + + return absint( $item->get_form_id() ); + } + + /** + * Column types. + * + * @since 1.6.3 + * + * @param Record $item List table item. + * + * @return string + * @noinspection PhpUnused + */ + public function column_types( $item ) { + + return esc_html( implode( ', ', $item->get_types( 'label' ) ) ); + } + + /** + * Column date. + * + * @since 1.6.3 + * + * @param Record $item List table item. + * + * @return string + * @noinspection PhpUnused + */ + public function column_date( $item ) { + + return esc_html( $item->get_date( 'sql-local' ) ); + } + + /** + * Crop message for preview on list table. + * + * @since 1.6.3 + * + * @param string $message Message. + * + * @return string + */ + private function crop_message( $message ) { + + return wp_html_excerpt( $message, 97, '...' ); + } + + /** + * Prepares the _column_headers property which is used by WP_Table_List at rendering. + * It merges the columns and the sortable columns. + * + * @since 1.6.3 + */ + private function prepare_column_headers() { + + $this->_column_headers = [ + $this->get_columns(), + get_hidden_columns( $this->screen ), + [], + ]; + } + + /** + * Return the columns' names for rendering. + * + * @since 1.6.3 + * + * @return array + */ + public function get_columns() { + + return [ + 'log_title' => __( 'Log Title', 'wpforms-lite' ), + 'message' => __( 'Message', 'wpforms-lite' ), + 'form_id' => __( 'Form ID', 'wpforms-lite' ), + 'types' => __( 'Types', 'wpforms-lite' ), + 'date' => __( 'Date', 'wpforms-lite' ), + ]; + } + + /** + * Header before log table. + * + * @since 1.6.3 + */ + private function header() { + + ?> +
              +

              + get_request_search_query() ) { ?> + + get_request_search_query() ) + ); + ?> + + +

              + hidden_fields(); + $this->search_box( esc_html__( 'Search Logs', 'wpforms-lite' ), 'plugin' ); + ?> +
              + +
              + + extra_tablenav( $which ); + } + $this->pagination( $which ); + ?> + +
              +
              + get_total() ) { + return; + } + + $this->log_type_select(); + $this->clear_all(); + } + + /** + * Clear all log records. + * + * @since 1.6.3 + */ + private function clear_all() { + + ?> + + _args['plural'] ) ) { + return; + } + + if ( empty( $_REQUEST['_wp_http_referer'] ) && empty( $_REQUEST['clear-all'] ) ) { + return; + } + + if ( ! empty( $_REQUEST['clear-all'] ) ) { + $this->repository->clear_all(); + } + + $uri = isset( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; + + wp_safe_redirect( + remove_query_arg( + [ '_wp_http_referer', '_wpnonce', 'clear-all' ], + $uri + ) + ); + + exit; + } + + /** + * Message to be displayed when there are no items. + * + * @since 1.6.3 + */ + public function no_items() { + + esc_html_e( 'No logs found.', 'wpforms-lite' ); + } + + /** + * Print all hidden fields. + * + * @since 1.6.3 + */ + private function hidden_fields() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + foreach ( $_GET as $key => $value ) { + + if ( $key[0] === '_' || $key === 'paged' || $key === 'ID' ) { + continue; + } + + echo ''; + } + } + + /** + * Select for choose a log type. + * + * @since 1.6.3 + */ + private function log_type_select() { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $current_type = ! empty( $_GET['log_type'] ) ? sanitize_text_field( wp_unslash( $_GET['log_type'] ) ) : ''; + ?> + + + + + prepare_column_headers(); + $this->prepare_items(); + + $slug = $this->_args['plural']; + + echo '
              '; + echo '
              '; + wp_nonce_field( 'wpforms-table-' . $slug ); + $this->header(); + $this->display(); + echo '
              '; + echo '
              '; + } + + /** + * Get total logs. + * + * @since 1.6.3 + * + * @return int + */ + public function get_total() { + + return $this->repository->get_total(); + } + + /** + * Gets the screen per_page option name. + * + * @since 1.7.5 + * + * @return string + */ + private function get_per_page_option_name() { + + return str_replace( '-', '_', $this->screen->id ) . '_per_page'; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Logger/Log.php b/wp-content/plugins/wpforms-lite/src/Logger/Log.php new file mode 100644 index 0000000..e2424e7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Logger/Log.php @@ -0,0 +1,231 @@ +repository = new Repository(); + + add_action( 'shutdown', [ $this->repository, 'save' ] ); + + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); + add_action( 'wp_ajax_wpforms_get_log_record', [ $this, 'get_record' ] ); + } + + /** + * Enqueue styles. + * + * @since 1.6.3 + */ + public function enqueue_styles() { + + if ( ! $this->is_logger_page() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_style( + 'wpforms-tools-logger', + WPFORMS_PLUGIN_URL . "assets/css/logger{$min}.css", + [], + WPFORMS_VERSION + ); + } + + /** + * Enqueue styles. + * + * @since 1.6.3 + */ + public function enqueue_scripts() { + + if ( ! $this->is_logger_page() ) { + return; + } + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-tools-logger', + WPFORMS_PLUGIN_URL . "assets/js/admin/logger/logger{$min}.js", + [ 'jquery', 'jquery-confirm', 'wp-util' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Get log types. + * + * @since 1.6.3 + * + * @return array + */ + public static function get_log_types() { + + return [ + 'conditional_logic' => esc_html__( 'Conditional Logic', 'wpforms-lite' ), + 'entry' => esc_html__( 'Entries', 'wpforms-lite' ), + 'error' => esc_html__( 'Errors', 'wpforms-lite' ), + 'log' => esc_html__( 'Log', 'wpforms-lite' ), + 'payment' => esc_html__( 'Payment', 'wpforms-lite' ), + 'provider' => esc_html__( 'Providers', 'wpforms-lite' ), + 'security' => esc_html__( 'Security', 'wpforms-lite' ), + 'spam' => esc_html__( 'Spam', 'wpforms-lite' ), + 'translation' => esc_html__( 'Translation', 'wpforms-lite' ), + ]; + } + + /** + * Determine if it is a Logs page. + * + * @since 1.6.3 + * + * @return bool + */ + private function is_logger_page() { + + return wpforms_is_admin_page( 'tools', 'logs' ); + } + + /** + * Create new record. + * + * @since 1.6.3 + * + * @param string $title Record title. + * @param string $message Record message. + * @param array|string $types Array, string, or string separated by comma types. + * @param int $form_id Record form ID. + * @param int $entry_id Record entry ID. + * @param int $user_id Record user ID. + */ + public function add( $title, $message, $types, $form_id = 0, $entry_id = 0, $user_id = 0 ) { + + $this->repository->add( $title, $message, $types, $form_id, $entry_id, $user_id ); + } + + /** + * Check if the database table exists. + * Used in \WPForms_Install::maybe_create_tables() during plugin installation. + * + * @since 1.8.7 + * + * @return bool + */ + public function table_exists(): bool { + + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + return $this->repository->table_exists(); + } + + /** + * Create table for logs. + * + * @since 1.6.3 + */ + public function create_table() { + + if ( $this->table_exists() ) { + return; + } + + $this->repository->create_table(); + } + + /** + * Get ListView. + * + * @since 1.6.3 + * + * @return ListTable + */ + public function get_list_table() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( ! $this->list_table ) { + $this->list_table = new ListTable( $this->repository ); + + add_action( 'admin_print_scripts', [ $this->list_table, 'popup_template' ] ); + } + + return $this->list_table; + } + + /** + * Json config for detail information about log record. + * + * @since 1.6.3 + */ + public function get_record() { + + if ( + ! check_ajax_referer( 'wpforms-admin', 'nonce', false ) || + ! wpforms_current_user_can() + ) { + wp_send_json_error( esc_html__( 'You do not have permission.', 'wpforms-lite' ) ); + } + + $id = filter_input( INPUT_GET, 'recordId', FILTER_VALIDATE_INT ); + + if ( ! $id ) { + wp_send_json_error( esc_html__( 'Record ID not found', 'wpforms-lite' ), 404 ); + } + + $item = $this->repository->record( $id ); + + if ( $item === null ) { + wp_send_json_error( esc_html__( 'No such record.', 'wpforms-lite' ), 404 ); + } + + wp_send_json_success( + [ + 'ID' => absint( $item->get_id() ), + 'title' => esc_html( $item->get_title() ), + 'message' => wp_kses( $item->get_message(), [ 'pre' => [] ] ), + 'types' => esc_html( implode( ', ', $item->get_types( 'label' ) ) ), + 'create_at' => esc_html( $item->get_date( 'full' ) ), + 'form_id' => absint( $item->get_form_id() ), + 'entry_id' => absint( $item->get_entry_id() ), + 'user_id' => absint( $item->get_user_id() ), + 'form_url' => admin_url( sprintf( 'admin.php?page=wpforms-builder&view=fields&form_id=%d', absint( $item->get_form_id() ) ) ), + 'entry_url' => admin_url( sprintf( 'admin.php?page=wpforms-entries&view=details&entry_id=%d', absint( $item->get_entry_id() ) ) ), + 'user_url' => esc_url( get_edit_user_link( $item->get_user_id() ) ), + ] + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Logger/Record.php b/wp-content/plugins/wpforms-lite/src/Logger/Record.php new file mode 100644 index 0000000..4968edf --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Logger/Record.php @@ -0,0 +1,268 @@ +id = $id; + $this->title = $title; + $this->message = $message; + $this->types = $types; + $this->create_at = strtotime( $create_at ); + $this->form_id = $form_id; + $this->entry_id = $entry_id; + $this->user_id = $user_id; + } + + /** + * Get record ID. + * + * @since 1.6.3 + * + * @return int + */ + public function get_id() { + + return $this->id; + } + + /** + * Get record title. + * + * @since 1.6.3 + * + * @return string + */ + public function get_title() { + + return $this->title; + } + + /** + * Get record message. + * + * @since 1.6.3 + * + * @return string + */ + public function get_message() { + + return $this->message; + } + + /** + * Get record types. + * + * @since 1.6.3 + * + * @param string $view Keys or labels. + * + * @return array + */ + public function get_types( $view = 'key' ) { + + $this->types = is_array( $this->types ) ? $this->types : explode( ',', $this->types ); + + if ( $view === 'label' ) { + return array_intersect_key( + Log::get_log_types(), + array_flip( $this->types ) + ); + } + + return $this->types; + } + + /** + * Get date of creating record. + * + * @since 1.6.3 + * + * @param string $format Date format full|short|default sql format. + * + * @return string + */ + public function get_date( $format = 'short' ) { + + switch ( $format ) { + case 'short': + $date = wpforms_date_format( $this->create_at, '', true ); + break; + + case 'full': + $date = wpforms_datetime_format( $this->create_at, '', true ); + break; + + case 'sql': + $date = wpforms_datetime_format( $this->create_at, 'Y-m-d H:i:s' ); + break; + + case 'sql-local': + $date = wpforms_datetime_format( $this->create_at, 'Y-m-d H:i:s', true ); + break; + + default: + $date = ''; + break; + } + + return $date; + } + + /** + * Get form ID. + * + * @since 1.6.3 + * + * @return int + */ + public function get_form_id() { + + return $this->form_id; + } + + /** + * Get entry ID. + * + * @since 1.6.3 + * + * @return int + */ + public function get_entry_id() { + + return $this->entry_id; + } + + /** + * Get user ID. + * + * @since 1.6.3 + * + * @return int + */ + public function get_user_id() { + + return $this->user_id; + } + + /** + * Create new record. + * + * @since 1.6.3 + * + * @param string $title Record title. + * @param string $message Record message. + * @param array|string $types Array, string, or string separated by commas types. + * @param int $form_id Record form ID. + * @param int $entry_id Record entry ID. + * @param int $user_id Record user ID. + * + * @return Record + */ + public static function create( $title, $message, $types, $form_id = 0, $entry_id = 0, $user_id = 0 ) { + + return new Record( + 0, + sanitize_text_field( $title ), + wp_kses( $message, [ 'pre' => [] ] ), + $types, + gmdate( 'Y-m-d H:i:s' ), + absint( $form_id ), + absint( $entry_id ), + absint( $user_id ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Logger/RecordQuery.php b/wp-content/plugins/wpforms-lite/src/Logger/RecordQuery.php new file mode 100644 index 0000000..47e5903 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Logger/RecordQuery.php @@ -0,0 +1,80 @@ +get_results( + $this->build_query( $limit, $offset, $search, $type ) + ); + //phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + } + + /** + * Build query. + * + * @since 1.6.3 + * + * @param int $limit Query limit of records. + * @param int $offset Offset of records. + * @param string $search Search. + * @param string $type Type of records. + * + * @return string + */ + private function build_query( $limit, $offset = 0, $search = '', $type = '' ) { + + global $wpdb; + + $sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM ' . Repository::get_table_name(); + $where = []; + + if ( ! empty( $search ) ) { + $where[] = $wpdb->prepare( + '`title` REGEXP %s OR `message` REGEXP %s', + $search, + $search + ); + } + + if ( ! empty( $type ) ) { + $where[] = $wpdb->prepare( + '`types` REGEXP %s', + $type + ); + } + + if ( $where ) { + $sql .= ' WHERE ' . implode( ' AND ', $where ); + } + + $sql .= ' ORDER BY `create_at` DESC, `id` DESC'; + $sql .= $wpdb->prepare( ' LIMIT %d, %d', absint( $offset ), absint( $limit ) ); + + return $sql; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Logger/Records.php b/wp-content/plugins/wpforms-lite/src/Logger/Records.php new file mode 100644 index 0000000..7f3b229 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Logger/Records.php @@ -0,0 +1,134 @@ +valid() ? $this->list[ $this->iterator_position ] : null; + } + + /** + * Move forward to next element. + * + * @since 1.6.3 + */ + #[\ReturnTypeWillChange] + public function next() { + + ++ $this->iterator_position; + } + + /** + * Return the key of the current element. + * + * @since 1.6.3 + * + * @return int + */ + #[\ReturnTypeWillChange] + public function key() { + + return $this->iterator_position; + } + + /** + * Checks if current position is valid. + * + * @since 1.6.3 + * + * @return bool + */ + #[\ReturnTypeWillChange] + public function valid() { + + return isset( $this->list[ $this->iterator_position ] ); + } + + /** + * Rewind the Iterator to the first element. + * + * @since 1.6.3 + */ + #[\ReturnTypeWillChange] + public function rewind() { + + $this->iterator_position = 0; + } + + /** + * Count number of Record in a Queue. + * + * @since 1.6.3 + * + * @return int + */ + #[\ReturnTypeWillChange] + public function count() { + + return count( $this->list ); + } + + /** + * Push record to list. + * + * @since 1.6.3 + * + * @param \WPForms\Logger\Record $record Record. + */ + #[\ReturnTypeWillChange] + public function push( $record ) { + + if ( ! is_a( $record, '\WPForms\Logger\Record' ) ) { + return; + } + $this->list[] = $record; + } + + /** + * Clear collection. + * + * @since 1.6.3 + */ + #[\ReturnTypeWillChange] + public function clear() { + + $this->list = []; + $this->iterator_position = 0; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Logger/Repository.php b/wp-content/plugins/wpforms-lite/src/Logger/Repository.php new file mode 100644 index 0000000..f907066 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Logger/Repository.php @@ -0,0 +1,289 @@ +full_total = false; + $this->records_query = new RecordQuery(); + $this->records = new Records(); + } + + /** + * Get log table name. + * + * @since 1.6.3 + * + * @return string + */ + public static function get_table_name(): string { + + global $wpdb; + + return $wpdb->prefix . 'wpforms_logs'; + } + + /** + * Create table in the database. + * + * @since 1.6.3 + */ + public function create_table() { + + global $wpdb; + + $table = self::get_table_name(); + + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; + + $charset_collate = $wpdb->get_charset_collate(); + + $sql = "CREATE TABLE $table ( + id BIGINT(20) NOT NULL AUTO_INCREMENT, + title VARCHAR(255) NOT NULL, + message LONGTEXT NOT NULL, + types VARCHAR(255) NOT NULL, + create_at DATETIME NOT NULL, + form_id BIGINT(20), + entry_id BIGINT(20), + user_id BIGINT(20), + PRIMARY KEY (id) + ) $charset_collate;"; + + dbDelta( $sql ); + } + + /** + * Create new record. + * + * @since 1.6.3 + * + * @param string $title Record title. + * @param string $message Record message. + * @param array|string $types Array, string, or string separated by comma types. + * @param int $form_id Record form ID. + * @param int $entry_id Record entry ID. + * @param int $user_id Record user ID. + */ + public function add( $title, $message, $types, $form_id, $entry_id, $user_id ) { + + $this->records->push( + Record::create( $title, $message, $types, $form_id, $entry_id, $user_id ) + ); + } + + /** + * Get records. + * + * @since 1.6.3 + * + * @param int $limit Query limit of records. + * @param int $offset Offset of records. + * @param string $search Search. + * @param string $type Type of records. + * + * @return Records + */ + public function records( $limit, $offset = 0, $search = '', $type = '' ) { + + $data = $this->records_query->get( $limit, $offset, $search, $type ); + $this->full_total = true; + $records = new Records(); + + // As we got raw data, we need to convert to Record. + foreach ( $data as $row ) { + $records->push( + $this->prepare_record( $row ) + ); + } + + return $records; + } + + /** + * Get record. + * + * @since 1.6.3 + * + * @param int $id Record ID. + * + * @return Record|null + */ + public function record( $id ) { + + global $wpdb; + //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $item = $wpdb->get_row( + $wpdb->prepare( + 'SELECT * FROM ' . self::get_table_name() . ' WHERE id = %d', //phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + absint( $id ) + ) + ); + + if ( $item ) { + $item = $this->prepare_record( $item ); + } + + return $item; + } + + /** + * Create record from DB row. + * + * @since 1.6.3 + * + * @param object $row Row from DB. + * + * @return Record + */ + private function prepare_record( $row ) { + + return new Record( + absint( $row->id ), + $row->title, + $row->message, + $row->types, + $row->create_at, + absint( $row->form_id ), + absint( $row->entry_id ), + absint( $row->user_id ) + ); + } + + /** + * Save records to the database. + * + * @since 1.6.3 + */ + public function save() { + + global $wpdb; + + // We can't use the empty function because it doesn't work with a Countable object. + if ( ! count( $this->records ) ) { + return; + } + + $sql = 'INSERT INTO ' . self::get_table_name() . ' ( `id`, `title`, `message`, `types`, `create_at`, `form_id`, `entry_id`, `user_id` ) VALUES '; + + foreach ( $this->records as $record ) { + $sql .= $wpdb->prepare( + '( NULL, %s, %s, %s, %s, %d, %d, %d ),', + $record->get_title(), + $record->get_message(), + implode( ',', $record->get_types() ), + $record->get_date( 'sql' ), + $record->get_form_id(), + $record->get_entry_id(), + $record->get_user_id() + ); + } + + $sql = rtrim( $sql, ',' ); + + //phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $wpdb->query( $sql ); + //phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + wp_cache_delete( self::CACHE_TOTAL_KEY ); + } + + /** + * Check if the database table exists. + * + * @since 1.6.4 + * + * @return bool + */ + public function table_exists() { + + return DB::table_exists( self::get_table_name() ); + } + + /** + * Get total count of logs. + * + * @since 1.6.3 + * + * @return int + */ + public function get_total() { + + global $wpdb; + + $total = wp_cache_get( self::CACHE_TOTAL_KEY ); + + if ( ! $total ) { + //phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.NotPrepared + $total = $this->full_total ? $wpdb->get_var( 'SELECT FOUND_ROWS()' ) : $wpdb->get_var( 'SELECT COUNT( ID ) FROM ' . self::get_table_name() ); + //phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.NotPrepared + wp_cache_set( self::CACHE_TOTAL_KEY, $total, 'wpforms', DAY_IN_SECONDS ); + } + + return absint( $total ); + } + + /** + * Clear all records in the Database. + * + * @since 1.6.3 + */ + public function clear_all() { + + global $wpdb; + + //phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $wpdb->query( 'TRUNCATE TABLE ' . self::get_table_name() ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Base.php b/wp-content/plugins/wpforms-lite/src/Migrations/Base.php new file mode 100644 index 0000000..1ecea41 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Base.php @@ -0,0 +1,512 @@ +reflector = new ReflectionClass( $this ); + } + + /** + * Class init. + * + * @since 1.7.5 + */ + public function init(): void { + + if ( ! $this->is_allowed() ) { + return; + } + + $this->maybe_convert_migration_option(); + $this->hooks(); + } + + /** + * General hooks. + * + * @since 1.7.5 + */ + protected function hooks(): void { + + $priority = $this->is_core_plugin() ? - 9999 : 100; + + add_action( 'wpforms_loaded', [ $this, 'migrate' ], $priority ); + add_action( 'wpforms_loaded', [ $this, 'update_versions' ], $priority + 1 ); + } + + /** + * Run the migrations of the core plugin for a specific version. + * + * @since 1.7.5 + * + * @noinspection NotOptimalIfConditionsInspection + */ + public function migrate(): void { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh + + $classes = $this->get_upgrade_classes(); + $namespace = $this->reflector->getNamespaceName() . '\\'; + + foreach ( $classes as $class ) { + $upgrade_version = $this->get_upgrade_version( $class ); + $plugin_name = $this->get_plugin_name( $class ); + $class = $namespace . $class; + + if ( + ( isset( $this->migrated[ $upgrade_version ] ) && $this->migrated[ $upgrade_version ] >= 0 ) || + version_compare( $upgrade_version, self::CURRENT_VERSION, '>' ) || + ! class_exists( $class ) + ) { + continue; + } + + $this->maybe_create_tables(); + + if ( ! isset( $this->migrated[ $upgrade_version ] ) ) { + $this->migrated[ $upgrade_version ] = self::STARTED; + + $this->log( sprintf( 'Migration of %1$s to %2$s started.', $plugin_name, $upgrade_version ) ); + } + + // Run upgrade. + $migrated = ( new $class( $this ) )->run(); + + // Some migration methods can be called several times to support AS action, + // so do not log their completion here. + if ( $migrated === null ) { + continue; + } + + $this->migrated[ $upgrade_version ] = $migrated ? time() : self::FAILED; + + $this->log_migration_message( $migrated, $plugin_name, $upgrade_version ); + } + } + + /** + * If an upgrade has occurred, update a version option in the database. + * + * @since 1.7.5 + */ + public function update_versions(): void { + + $this->update_previous_core_version(); + + // Retrieve the last migrated versions. + $last_migrated = get_option( static::MIGRATED_OPTION_NAME, [] ); + $migrated = array_merge( $last_migrated, $this->migrated ); + + /** + * Store the current version upgrade timestamp even if there were no migrations to it. + * We need it in wpforms_get_upgraded_timestamp() for further usage in Event Driven Plugin Notifications. + */ + $migrated[ self::CURRENT_VERSION ] = $migrated[ self::CURRENT_VERSION ] ?? time(); + + uksort( $last_migrated, 'version_compare' ); + uksort( $migrated, 'version_compare' ); + + if ( $migrated === $last_migrated ) { + return; + } + + update_option( static::MIGRATED_OPTION_NAME, $migrated ); + + $fully_completed = array_reduce( + $migrated, + static function ( $carry, $status ) { + + return $carry && ( $status >= 0 ); + }, + true + ); + + if ( ! $fully_completed ) { + return; + } + + $this->log( + sprintf( 'Migration of %1$s to %2$s is fully completed.', static::PLUGIN_NAME, self::CURRENT_VERSION ) + ); + } + + /** + * Update previous core version. + * + * @since 1.9.8 + * + * @return void + */ + private function update_previous_core_version(): void { + + if ( ! $this->is_core_plugin() ) { + return; + } + + // Retrieve the last migrated versions. + $last_migrated = get_option( static::MIGRATED_OPTION_NAME, [] ); + $previous_core_version = $this->get_max_version( $last_migrated ); + + if ( + $previous_core_version === self::INITIAL_FAKE_VERSION || + version_compare( $previous_core_version, self::CURRENT_VERSION, '>=' ) + ) { + return; + } + + // Store the previous core version in the option. + update_option( self::PREVIOUS_CORE_VERSION_OPTION_NAME, $previous_core_version ); + + /** + * Fires after the core plugin has been upgraded. + * Please note: some of the migrations that run via Active Scheduler can be not completed yet. + * + * @since 1.8.8 + * + * @param string $previous_core_version The core version from which the plugin was upgraded. + * @param Base $migration_obj The migration class instance. + */ + do_action( 'wpforms_migrations_base_core_upgraded', $previous_core_version, $this ); + } + + /** + * Get upgrade classes. + * + * @since 1.7.5 + * + * @return string[] + */ + protected function get_upgrade_classes(): array { + + $classes = static::UPGRADE_CLASSES; + + sort( $classes ); + + return $classes; + } + + /** + * Get an upgrade version from the class name. + * + * @since 1.7.5 + * + * @param string $class_name Class name. + * + * @return string + */ + public function get_upgrade_version( string $class_name ): string { + + // Find only the digits and underscores to get the version number. + if ( ! preg_match( '/(\d_?)+/', $class_name, $matches ) ) { + return ''; + } + + $raw_version = $matches[0]; + + if ( strpos( $raw_version, '_' ) ) { + // Modern notation: 1_10_0_3 means 1.10.0.3 version. + return str_replace( '_', '.', $raw_version ); + } + + // Legacy notation, with 1-digit subversion numbers: 1751 means 1.7.5.1 version. + return implode( '.', str_split( $raw_version ) ); + } + + /** + * Get a plugin /addon name. + * + * @since 1.7.5 + * + * @param string $class_name Upgrade class name. + * + * @return string + * @noinspection PhpUnusedParameterInspection + */ + protected function get_plugin_name( string $class_name ): string { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found + + return static::PLUGIN_NAME; + } + + /** + * Force log message to WPForms logger. + * + * @since 1.7.5 + * + * @param string $message The error message that should be logged. + */ + protected function log( string $message ): void { + + wpforms_log( + 'Migration', + $message, + [ + 'type' => 'log', + 'force' => true, + ] + ); + } + + /** + * Determine if migration is allowed. + * + * @since 1.7.5 + */ + private function is_allowed(): bool { + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( isset( $_GET['service-worker'] ) ) { + return false; + } + + return wp_doing_cron() || is_admin() || wpforms_doing_wp_cli(); + } + + /** + * Maybe create custom plugin tables. + * + * @since 1.7.6 + */ + public function maybe_create_tables(): void { + + if ( $this->tables_check_done ) { + /** + * We should do table check only once - when the first migration has been started. + * The DB::get_existing_custom_tables() without caching causes performance issue + * on huge multisite with thousands of tables. + */ + return; + } + + DB::create_custom_tables( true ); + + $this->tables_check_done = true; + } + + /** + * Maybe convert the migration option format. + * + * @since 1.7.5 + */ + private function maybe_convert_migration_option(): void { + + /** + * Retrieve the migration option and check its format. + * Old format: a string 'x.y.z' containing the last migrated version. + * New format: [ 'x.y.z' => {status}, 'x1.y1.z1' => {status}... ], + * where {status} is a migration status. + * Negative means some status (-1 for 'started' etc.), + * zero means completed earlier at an unknown time, + * positive means completion timestamp. + */ + $this->migrated = get_option( static::MIGRATED_OPTION_NAME ); + + // If the option is an array, it means that it is already converted to the new format. + if ( is_array( $this->migrated ) ) { + return; + } + + /** + * Convert the option to the new format. + * + * Old option names contained 'version', + * like 'wpforms_version', 'wpforms_version_lite', 'wpforms_stripe_version', etc. + * We preserve old options for downgrade cases. + * New option names should contain 'versions' and be like 'wpforms_versions', etc. + */ + $this->migrated = get_option( + str_replace( 'versions', 'version', static::MIGRATED_OPTION_NAME ) + ); + + $version = $this->migrated === false ? self::INITIAL_FAKE_VERSION : (string) $this->migrated; + $timestamp = $version === self::CURRENT_VERSION ? time() : 0; + $this->migrated = [ $version => $timestamp ]; + $max_version = $this->get_max_version( $this->migrated ); + + foreach ( $this->get_upgrade_classes() as $upgrade_class ) { + $upgrade_version = $this->get_upgrade_version( $upgrade_class ); + + if ( + ! isset( $this->migrated[ $upgrade_version ] ) && + version_compare( $upgrade_version, $max_version, '<' ) + ) { + $this->migrated[ $upgrade_version ] = 0; + } + } + + unset( $this->migrated[ self::INITIAL_FAKE_VERSION ] ); + + ksort( $this->migrated ); + + update_option( static::MIGRATED_OPTION_NAME, $this->migrated ); + } + + /** + * Get the max version. + * + * @since 1.7.5 + * + * @param array $versions Versions. + * + * @return string + */ + private function get_max_version( array $versions ): string { + + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + return array_reduce( + array_keys( $versions ), + static function ( $carry, $version ) { + + return version_compare( $version, $carry, '>' ) ? $version : $carry; + }, + self::INITIAL_FAKE_VERSION + ); + } + + /** + * Determine if it is the core plugin (Lite or Pro). + * + * @since 1.7.5 + * + * @return bool True if it is the core plugin. + */ + protected function is_core_plugin(): bool { + + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + return strpos( static::MIGRATED_OPTION_NAME, 'wpforms_versions' ) === 0; + } + + /** + * Log migration message. + * + * @since 1.8.2.3 + * + * @param bool $migrated Migration status. + * @param string $plugin_name Plugin name. + * @param string $upgrade_version Upgrade version. + * + * @return void + */ + private function log_migration_message( bool $migrated, string $plugin_name, string $upgrade_version ): void { + + $message = $migrated ? + sprintf( 'Migration of %1$s to %2$s completed.', $plugin_name, $upgrade_version ) : + sprintf( 'Migration of %1$s to %2$s failed.', $plugin_name, $upgrade_version ); + + $this->log( $message ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Migrations.php b/wp-content/plugins/wpforms-lite/src/Migrations/Migrations.php new file mode 100644 index 0000000..f97ec3f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Migrations.php @@ -0,0 +1,53 @@ +action = 'wpforms_process_migration_' . $short_class_name; + $this->status_option = $this->action . '_status'; + + parent::__construct( $this->action ); + } + + /** + * Get current task status. + * + * @since 1.9.5 + * + * @return string + */ + private function get_status(): string { + + return (string) get_option( $this->status_option ); + } + + /** + * Update task status. + * Use the constants self::START, self::IN_PROGRESS, self::COMPLETED. + * + * @since 1.9.5 + * + * @param string $status New status. + * + * @return void + */ + private function update_status( string $status ): void { + + update_option( $this->status_option, $status ); + } + + /** + * Initialize the task with all the proper checks. + * + * @since 1.9.5 + */ + public function init(): void { + + $status = $this->get_status(); + + if ( ! $status || $status === self::COMPLETED ) { + return; + } + + $this->set_task_properties(); + $this->hooks(); + + if ( $status !== self::START ) { + return; + } + + $this->update_status( self::IN_PROGRESS ); + + $this->init_migration(); + } + + /** + * Create a task. + * + * @param array $args Task arguments. + * + * @since 1.9.5 + * + * @return void + */ + protected function create_task( array $args = [] ): void { + + $tasks = wpforms()->obj( 'tasks' ); + + if ( ! $tasks ) { + wpforms_log( + 'Migration error', + [ + 'error' => "Object is not available: `null` returned by `wpforms()->obj( 'tasks' )`", + 'class' => static::class, + 'method' => __METHOD__, + ], + [ + 'type' => 'error', + 'force' => true, + ] + ); + + return; + } + + $tasks + ->create( $this->action ) + ->async() + ->params( ...$args ) + ->register(); + } + + /** + * Set task properties. + * + * @since 1.9.5 + * + * @return void + */ + abstract protected function set_task_properties(): void; + + /** + * Add hooks. + * + * @since 1.9.5 + */ + protected function hooks(): void { + + add_action( $this->action, [ $this, 'migrate' ] ); + add_action( 'action_scheduler_after_process_queue', [ $this, 'after_process_queue' ] ); + } + + /** + * Migrate an entry. + * + * @since 1.9.5 + * + * @param int $meta_id Action meta id. + * + * @noinspection PhpMissingParamTypeInspection + */ + public function migrate( $meta_id ): void { + + $params = ( new Meta() )->get( $meta_id ); + + if ( ! $params || ! isset( $params->data ) ) { + return; + } + + $this->process_migration( (array) $params->data ); + } + + /** + * Execute an async migration task. + * + * @since 1.9.5 + * + * @param array $data Migration data. + * + * @return void + */ + abstract protected function process_migration( array $data ): void; + + /** + * Set the status as completed after processing all queue action. + * + * @since 1.9.5 + * + * @return void + */ + public function after_process_queue(): void { + + $tasks = wpforms()->obj( 'tasks' ); + + if ( ! $tasks ) { + wpforms_log( + 'Migration error', + [ + 'error' => "Object is not available: `null` returned by `wpforms()->obj( 'tasks' )`", + 'class' => static::class, + 'method' => __METHOD__, + ], + [ + 'type' => 'error', + 'force' => true, + ] + ); + + return; + } + + if ( $tasks->is_scheduled( $this->action ) ) { + return; + } + + $this->finish_migration(); + } + + /** + * Finish migration. + * + * @since 1.9.5 + * + * @return void + */ + protected function finish_migration(): void { + + $this->update_status( self::COMPLETED ); + } + + /** + * Create migration tasks using the `create_task` method + * or `finish_migration` method to complete it. + * + * @since 1.9.5 + * + * @return void + */ + abstract protected function init_migration(): void; + + /** + * Determine if the task is completed. + * Remove the status option to allow running the task again. + * + * @since 1.9.5 + * + * @return bool True if a task is completed. + */ + public function is_completed(): bool { + + $status = $this->get_status(); + $is_completed = $status === self::COMPLETED; + + if ( $is_completed ) { + delete_option( $this->status_option ); + } + + return $is_completed; + } + + /** + * Maybe start the task. + * + * @since 1.9.5 + */ + public function maybe_start(): void { + + $status = $this->get_status(); + + if ( ! $status ) { + $this->update_status( self::START ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade159.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade159.php new file mode 100644 index 0000000..3b83354 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade159.php @@ -0,0 +1,39 @@ +obj( 'tasks_meta' ); + + if ( ! $meta ) { + return false; + } + + // Create the table if it doesn't exist. + if ( ! $meta->table_exists() ) { + $meta->create_table(); + } + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1672.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1672.php new file mode 100644 index 0000000..5fd189b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1672.php @@ -0,0 +1,45 @@ +obj( 'form' ); + + if ( ! $form_handler ) { + return false; + } + + $forms = $form_handler->get( + '', + [ + 'posts_per_page' => 1, + 'nopaging' => false, + 'fields' => 'ids', + 'update_post_meta_cache' => false, + ] + ); + + // At least 1 form exists - set the default value. + if ( ! empty( $forms ) ) { + add_option( 'wpforms_builder_opened_date', 0, '', 'no' ); + } + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade175.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade175.php new file mode 100644 index 0000000..b0eee10 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade175.php @@ -0,0 +1,93 @@ +as_tables_exist() ) { + return true; + } + + $group = Tasks::GROUP; + $sql = "SELECT DISTINCT a.args FROM {$wpdb->prefix}actionscheduler_actions a + JOIN {$wpdb->prefix}actionscheduler_groups g ON g.group_id = a.group_id + WHERE g.slug = '$group' AND a.status IN ( 'pending', 'in-progress' )"; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $results = $wpdb->get_results( $sql, 'ARRAY_A' ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + + $results = $results ? $results : []; + $meta_ids = []; + + foreach ( $results as $result ) { + $args = isset( $result['args'] ) ? json_decode( $result['args'], true ) : null; + + if ( $args && ! empty( $args['tasks_meta_id'] ) ) { + $meta_ids[] = $args['tasks_meta_id']; + } + } + + $table_name = Meta::get_table_name(); + $not_in = $meta_ids ? wpforms_wpdb_prepare_in( $meta_ids ) : '0'; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( "DELETE FROM $table_name WHERE id NOT IN ( $not_in )" ); + + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + + return true; + } + + /** + * Check whether AS tables exist. + * + * @since 1.7.6 + * + * @return bool + */ + private function as_tables_exist() { + + global $wpdb; + + $required_tables = [ + $wpdb->prefix . 'actionscheduler_actions', + $wpdb->prefix . 'actionscheduler_groups', + ]; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $tables = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}actionscheduler%'" ); + $intersect = array_values( array_intersect( $tables, $required_tables ) ); + + sort( $intersect ); + sort( $required_tables ); + + return $intersect === $required_tables; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1751.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1751.php new file mode 100644 index 0000000..75415b6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1751.php @@ -0,0 +1,28 @@ +migrations ) )->run(); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade177.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade177.php new file mode 100644 index 0000000..80ff1a8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade177.php @@ -0,0 +1,47 @@ +get_cache_dir(); + $templates_cache_dir = $cache_dir . 'templates/'; + + $this->set_cache_time( $cache_dir, 'addons.json', 'wpforms_admin_addons_cache_ttl' ); + $this->set_cache_time( $cache_dir, 'docs.json', 'wpforms_admin_builder_help_cache_ttl' ); + $this->set_cache_time( $cache_dir, 'templates.json', 'wpforms_admin_builder_templates_cache_ttl' ); + + $files = glob( $templates_cache_dir . '*.json' ); + + foreach ( $files as $filename ) { + $this->set_cache_time( $templates_cache_dir, basename( $filename ), 'wpforms_admin_builder_templates_cache_ttl' ); + } + + return true; + } + + /** + * Set cache time to transient. + * + * @since 1.8.2 + * + * @param string $cache_dir Cache directory. + * @param string $cache_file Cache filename. + * @param string $filter Filter name. + * + * @return void + */ + private function set_cache_time( $cache_dir, $cache_file, $filter ) { + + // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName, WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound + $cache_ttl = (int) apply_filters( $filter, WEEK_IN_SECONDS ); + $cache_file_path = $cache_dir . $cache_file; + $cache_modified_time = 0; + $transient = $cache_file; + $time = time(); + + if ( is_file( $cache_file_path ) && is_readable( $cache_file_path ) ) { + clearstatcache( true, $cache_file_path ); + + // On WPVIP and similar filesystems, filemtime() could return false. + $cache_modified_time = (int) filemtime( $cache_file_path ); + } + + if ( $cache_modified_time === 0 || $cache_modified_time + $cache_ttl <= $time ) { + // Do not set transient for non-existing or expired cache. + return; + } + + $expiration = $cache_modified_time + $cache_ttl - $time; + + Transient::set( $transient, $cache_modified_time, $expiration ); + } + + /** + * Get cache directory path. + * Copy of the CacheBase method. + * + * @since 1.8.2 + */ + private function get_cache_dir() { + + static $cache_dir; + + if ( $cache_dir ) { + /** + * Since wpforms_upload_dir() relies on hooks, and hooks can be added unpredictably, + * we need to cache the result of this method. + * Otherwise, it is the risk to save cache file to one dir and try to get from another. + */ + return $cache_dir; + } + + $upload_dir = wpforms_upload_dir(); + $upload_path = ! empty( $upload_dir['path'] ) + ? trailingslashit( wp_normalize_path( $upload_dir['path'] ) ) + : trailingslashit( WP_CONTENT_DIR ) . 'uploads/wpforms/'; + + $cache_dir = $upload_path . 'cache/'; + + return $cache_dir; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade183.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade183.php new file mode 100644 index 0000000..7a8accf --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade183.php @@ -0,0 +1,33 @@ +run_async( IconChoicesFontAwesomeUpgradeTask::class ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade184.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade184.php new file mode 100644 index 0000000..0b7836e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade184.php @@ -0,0 +1,47 @@ +set_webhooks_settings(); + + return $this->run_async( WebhooksAutoConfigurationTask::class ); + } + + /** + * Set Stripe webhooks settings. + * + * @since 1.8.4 + */ + private function set_webhooks_settings() { + + $settings = (array) get_option( 'wpforms_settings', [] ); + + // Enable Stripe webhooks by default if account is connected. + if ( ! isset( $settings['stripe-webhooks-enabled'] ) && Helpers::has_stripe_keys() ) { + $settings['stripe-webhooks-enabled'] = true; + + update_option( 'wpforms_settings', $settings ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade186.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade186.php new file mode 100644 index 0000000..98b872e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade186.php @@ -0,0 +1,27 @@ +run_async( DomainAutoRegistrationTask::class ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade187.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade187.php new file mode 100644 index 0000000..1ac571f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade187.php @@ -0,0 +1,71 @@ +update_templates_cache() && $this->maybe_create_logs_table(); + $async_result = $this->run_async( StripeLinkSubscriptionsTask::class ); + + return $async_result === null ? null : $sync_result && $async_result; + } + + /** + * Update templates' cache. + * + * @since 1.8.7 + * + * @return bool + */ + private function update_templates_cache(): bool { + + $templates_cache = new TemplatesCache(); + + $templates_cache->init(); + $templates_cache->update(); + + return true; + } + + /** + * Maybe create logs' table. + * Previously, logs' table was created dynamically on the first access to the Tools->Logs admin page. + * As from 1.8.7, we create it only once during the activation of the plugin. + * So, the table may not exist, and we must maybe create it during migration to 1.8.7. + * + * @since 1.8.7 + * + * @return bool + */ + private function maybe_create_logs_table(): bool { + + $log = wpforms()->obj( 'log' ); + + if ( ! $log ) { + return false; + } + + $log->create_table(); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_1.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_1.php new file mode 100644 index 0000000..ebf08d0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_1.php @@ -0,0 +1,57 @@ +clean_summaries_cron_event(); + + $notifications_option_key = 'wpforms_notifications'; + $notifications = get_option( $notifications_option_key, [] ); + + if ( empty( $notifications['events'] ) ) { + return true; + } + + $notifications['events'] = []; + + update_option( 'wpforms_notifications', $notifications ); + + return true; + } + + /** + * Clean summaries and entries count cron events, + * Since the 1.9.1 release these cron events recurrences have been changed to single event. + * The events will be recreated on the next page load. + * + * @since 1.9.1 + */ + private function clean_summaries_cron_event() { + + if ( wp_next_scheduled( 'wpforms_weekly_entries_count_cron' ) ) { + wp_clear_scheduled_hook( 'wpforms_weekly_entries_count_cron' ); + } + + if ( wp_next_scheduled( 'wpforms_email_summaries_cron' ) ) { + wp_clear_scheduled_hook( 'wpforms_email_summaries_cron' ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_2.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_2.php new file mode 100644 index 0000000..27015d1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_2.php @@ -0,0 +1,47 @@ +set_webhooks_settings(); + + return $this->run_async( WebhooksAutoConfigurationTask::class ); + } + + /** + * Set Stripe webhooks settings. + * + * @since 1.9.2 + */ + private function set_webhooks_settings() { + + $settings = (array) get_option( 'wpforms_settings', [] ); + + // Enable Stripe webhooks by default if account is connected. + if ( ! isset( $settings['stripe-webhooks-enabled'] ) && Helpers::has_stripe_keys() ) { + $settings['stripe-webhooks-enabled'] = true; + + update_option( 'wpforms_settings', $settings ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_7.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_7.php new file mode 100644 index 0000000..8e00217 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_7.php @@ -0,0 +1,24 @@ +obj( 'splash_cache' )->update( true ); + + return true; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_8_6.php b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_8_6.php new file mode 100644 index 0000000..4e08410 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/Upgrade1_9_8_6.php @@ -0,0 +1,108 @@ +check_wpconsent_activation( $activated_plugins ); + $this->check_sugar_calendar_activation( $activated_plugins ); + $this->check_duplicator_activation( $activated_plugins ); + $this->check_uncanny_automator_activation( $activated_plugins ); + + add_option( 'wpforms_rotation_activated_plugins', $activated_plugins ); + + return true; + } + + /** + * Check WPConsent plugin activation time. + * + * @since 1.9.8.6 + * + * @param array $activated_plugins Reference to activated plugins array. + */ + private function check_wpconsent_activation( array &$activated_plugins ): void { + + $wpconsent = get_option( 'wpconsent_activated' ); + + $wpconsent_time = $wpconsent['wpconsent'] ?? null; + + if ( empty( $wpconsent_time ) ) { + $wpconsent_time = $wpconsent['wpconsent_pro'] ?? null; + } + + if ( ! empty( $wpconsent_time ) ) { + $activated_plugins['wpconsent'] = $wpconsent_time; + } + } + + /** + * Check Sugar Calendar plugin activation time. + * + * @since 1.9.8.6 + * + * @param array $activated_plugins Reference to activated plugins array. + */ + private function check_sugar_calendar_activation( array &$activated_plugins ): void { + + $sugar_calendar_activated_time = get_option( 'sugar_calendar_activated_time' ); + + if ( ! empty( $sugar_calendar_activated_time ) ) { + $activated_plugins['sugar-calendar'] = (int) $sugar_calendar_activated_time; + } + } + + /** + * Check Duplicator plugin activation time. + * + * @since 1.9.8.6 + * + * @param array $activated_plugins Reference to activated plugins array. + */ + private function check_duplicator_activation( array &$activated_plugins ): void { + + $duplicator_install_info = get_option( 'duplicator_install_info' ); + + $duplicator_time = $duplicator_install_info['time'] ?? null; + + if ( empty( $duplicator_time ) ) { + $duplicator_pro_install_info = get_option( 'duplicator_pro_install_info' ); + + $duplicator_time = $duplicator_pro_install_info['time'] ?? null; + } + + if ( ! empty( $duplicator_time ) ) { + $activated_plugins['duplicator'] = $duplicator_time; + } + } + + /** + * Check Uncanny Automator plugin activation time. + * + * @since 1.9.8.6 + * + * @param array $activated_plugins Reference to activated plugins array. + */ + private function check_uncanny_automator_activation( array &$activated_plugins ): void { + + $uncanny_automator_v6_options_migrated = get_option( 'uncanny_automator_v6_options_migrated' ); + + if ( ! empty( $uncanny_automator_v6_options_migrated ) ) { + $activated_plugins['uncanny-automator'] = (int) $uncanny_automator_v6_options_migrated; + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Migrations/UpgradeBase.php b/wp-content/plugins/wpforms-lite/src/Migrations/UpgradeBase.php new file mode 100644 index 0000000..66f7b98 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Migrations/UpgradeBase.php @@ -0,0 +1,148 @@ +migrations = $migrations; + } + + /** + * Run upgrade. + * + * @since 1.7.5 + * + * @return bool|null Upgrade result: + * true - the upgrade completed successfully, + * false - in the case of failure, + * null - upgrade started but not yet finished (background task). + */ + abstract public function run(); + + /** + * Run the async upgrade via an Action Scheduler (AS) task. + * The AS task has to support STATUS option with START, IN_PROGRESS, and COMPLETED values. + * Also, the AS task must have the init() method. + * + * @since 1.7.5 + * + * @param string $classname Classname of an async AS task. + * + * @return bool|null Upgrade result: + * true - the upgrade completed successfully, + * false - in the case of failure, + * null - upgrade started but not yet finished (background task). + */ + protected function run_async( string $classname ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + $instance = new $classname(); + + if ( $this->is_completed( $instance ) ) { + return true; + } + + $this->maybe_start( $instance ); + + // Class Tasks does not exist at this point, so we have to add an action on init. + add_action( + 'init', + static function () use ( $instance ) { + + $instance->init(); + }, + PHP_INT_MAX + ); + + return null; + } + + /** + * Determine if the async AS task is completed. + * + * @since 1.9.5 + * + * @param object $instance Instance of an async AS task. + * + * @use UpgradeBaseTask::is_completed() + * + * @return bool + */ + private function is_completed( $instance ): bool { + + if ( method_exists( $instance, 'is_completed' ) ) { + return $instance->is_completed(); + } + + // Legacy tasks. + $status = get_option( $instance::STATUS ); + + if ( $status === $instance::COMPLETED ) { + delete_option( $instance::STATUS ); + + return true; + } + + return false; + } + + /** + * Start the async AS task if it wasn't started yet. + * + * @since 1.9.5 + * + * @param object $instance Instance of an async AS task. + * + * @use UpgradeBaseTask::maybe_start() + */ + private function maybe_start( $instance ): void { + + if ( method_exists( $instance, 'maybe_start' ) ) { + $instance->maybe_start(); + + return; + } + + // Legacy tasks. + $status = get_option( $instance::STATUS ); + + if ( ! $status ) { + update_option( $instance::STATUS, $instance::START ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Provider/Core.php b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Core.php new file mode 100644 index 0000000..d96672e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Core.php @@ -0,0 +1,147 @@ +slug = \sanitize_key( $params['slug'] ); + } else { + throw new \UnexpectedValueException( 'Provider class should define a provider "slug" param in its constructor.' ); + } + if ( ! empty( $params['name'] ) ) { + $this->name = \sanitize_text_field( $params['name'] ); + } else { + throw new \UnexpectedValueException( 'Provider class should define a provider "name" param in its constructor.' ); + } + + $this->icon = WPFORMS_PLUGIN_URL . 'assets/images/sullie.png'; + if ( ! empty( $params['icon'] ) ) { + $this->icon = \esc_url_raw( $params['icon'] ); + } + + } + + /** + * Add to list of registered providers. + * + * @since 1.4.7 + * + * @param array $providers Array of all active providers. + * + * @return array + */ + public function register_provider( array $providers ) { + + $providers[ $this->slug ] = $this->name; + + return $providers; + } + + /** + * Provide an instance of the object, that should process the submitted entry. + * It will use data from an already saved entry to pass it further to a Provider. + * + * @since 1.4.7 + * + * @return null|\WPForms\Providers\Provider\Process + */ + abstract public function get_process(); + + /** + * Provide an instance of the object, that should display provider settings + * on Settings > Integrations page in admin area. + * If you don't want to display it (i.e. you don't need it), you can pass null here in your Core provider class. + * + * @since 1.4.7 + * + * @return null|\WPForms\Providers\Provider\Settings\PageIntegrations + */ + abstract public function get_page_integrations(); + + /** + * Provide an instance of the object, that should display provider settings in the Form Builder. + * If you don't want to display it (i.e. you don't need it), you can pass null here in your Core provider class. + * + * @since 1.4.7 + * + * @return null|\WPForms\Providers\Provider\Settings\FormBuilder + */ + abstract public function get_form_builder(); +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Provider/Process.php b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Process.php new file mode 100644 index 0000000..4d2b93f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Process.php @@ -0,0 +1,129 @@ +core = $core; + } + + /** + * Receive all wpforms_process_complete params and do the actual processing. + * + * @since 1.4.7 + * + * @param array $fields Array of form fields. + * @param array $entry Submitted form content. + * @param array $form_data Form data and settings. + * @param int $entry_id ID of a saved entry. + */ + abstract public function process( $fields, $entry, $form_data, $entry_id ); + + /** + * Process conditional logic for a connection. + * + * @since 1.4.7 + * + * @param array $fields Array of form fields. + * @param array $form_data Form data and settings. + * @param array $connection All connection data. + * + * @return bool + */ + protected function process_conditionals( $fields, $form_data, $connection ) { + + if ( + empty( $connection['conditional_logic'] ) || + empty( $connection['conditionals'] ) || + ! function_exists( 'wpforms_conditional_logic' ) + ) { + return true; + } + + if ( ! wpforms()->is_pro() ) { + return true; + } + + $process = wpforms_conditional_logic()->process( $fields, $form_data, $connection['conditionals'] ); + + if ( + ! empty( $connection['conditional_type'] ) && + $connection['conditional_type'] === 'stop' + ) { + $process = ! $process; + } + + return $process; + } + + /** + * Get provider options, saved on Settings > Integrations page. + * + * @since 1.4.7 + * + * @return array + */ + protected function get_options() { + + return wpforms_get_providers_options( $this->core->slug ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilder.php b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilder.php new file mode 100644 index 0000000..b20c63b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilder.php @@ -0,0 +1,816 @@ +core = $core; + + $form_obj = wpforms()->obj( 'form' ); + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : 0; + + if ( $form_obj && $form_id ) { + $this->form_data = $form_obj->get( $form_id, [ 'content_only' => true ] ); + + // Form ID isn't defined for newly created forms. + if ( empty( $this->form_data['id'] ) && is_array( $this->form_data ) ) { + $this->form_data['id'] = $form_id; + } + } + + $this->init_hooks(); + } + + /** + * Register all hooks (actions and filters) here. + * + * @since 1.4.7 + */ + protected function init_hooks() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Register builder HTML template(s). + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'builder_templates' ] ); + add_action( 'wpforms_builder_print_footer_scripts', [ $this, 'builder_custom_templates' ], 11 ); + + // Process builder AJAX requests. + add_action( "wp_ajax_wpforms_builder_provider_ajax_{$this->core->slug}", [ $this, 'process_ajax' ] ); + + /* + * Enqueue assets. + */ + if ( + ( ! empty( $_GET['page'] ) && $_GET['page'] === 'wpforms-builder' ) && // phpcs:ignore + ! empty( $_GET['form_id'] ) && // phpcs:ignore + is_admin() + ) { + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] ); + } + + add_filter( 'wpforms_save_form_args', [ $this, 'remove_connection_locks' ], 1, 3 ); + } + + /** + * Used to register generic templates for all providers inside form builder. + * + * @since 1.4.7 + * @since 1.6.2 Added sub-templates for conditional logic based on provider. + */ + public function builder_templates(): void { + + $cl_builder_block = + wpforms()->is_pro() ? + wpforms_conditional_logic()->builder_block( + [ + 'form' => $this->form_data, + 'type' => 'panel', + 'parent' => 'providers', + 'panel' => esc_attr( $this->core->slug ), + 'subsection' => '%connection_id%', + ], + false + ) : + ''; + ?> + + + + + + + + + + builder_error_template(); + } + + /** + * Enqueue the JavaScript and CSS files if needed. + * When extending - include the `parent::enqueue_assets();` not to break things! + * + * @since 1.4.7 + */ + public function enqueue_assets() { + + $min = wpforms_get_min_suffix(); + + wp_enqueue_script( + 'wpforms-admin-builder-templates', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/templates{$min}.js", + [ 'wp-util' ], + WPFORMS_VERSION, + true + ); + + wp_enqueue_script( + 'wpforms-admin-builder-providers', + WPFORMS_PLUGIN_URL . "assets/js/admin/builder/providers{$min}.js", + [ 'wpforms-utils', 'wpforms-builder', 'wpforms-admin-builder-templates' ], + WPFORMS_VERSION, + true + ); + } + + /** + * Process the Builder AJAX requests. + * + * @since 1.4.7 + */ + public function process_ajax(): void { + + // Run a security check. + check_ajax_referer( 'wpforms-builder', 'nonce' ); + + // Check for permissions. + if ( ! wpforms_current_user_can( 'edit_forms' ) ) { + wp_send_json_error( + [ + 'error' => esc_html__( 'You do not have permission to perform this action.', 'wpforms-lite' ), + ] + ); + } + + // Process required values. + $error = [ 'error' => esc_html__( 'Something went wrong while performing an AJAX request.', 'wpforms-lite' ) ]; + + if ( + empty( $_POST['id'] ) || + empty( $_POST['task'] ) + ) { + wp_send_json_error( $error ); + } + + $form_id = (int) $_POST['id']; + $task = sanitize_key( $_POST['task'] ); + + $revisions = wpforms()->obj( 'revisions' ); + $revision = $revisions ? $revisions->get_revision() : null; + + if ( $revision ) { + // Set up form data based on the revision_id that we got from AJAX request. + $this->form_data = wpforms_decode( $revision->post_content ); + } else { + // Set up form data based on the ID that we got from AJAX request. + $form_handler = wpforms()->obj( 'form' ); + $this->form_data = $form_handler ? $form_handler->get( $form_id, [ 'content_only' => true ] ) : []; + } + + // Do not allow proceeding further, as form_id may be incorrect. + if ( empty( $this->form_data ) ) { + wp_send_json_error( $error ); + } + + $data = apply_filters( // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_providers_settings_builder_ajax_' . $task . '_' . $this->core->slug, + null + ); + + if ( ! empty( $data['error_msg'] ) ) { + wp_send_json_error( [ 'error_msg' => $data['error_msg'] ] ); + } + + if ( $data !== null ) { + wp_send_json_success( $data ); + } + + wp_send_json_error( $error ); + } + + /** + * Display content inside the panel sidebar area. + * + * @since 1.4.7 + */ + public function display_sidebar() { + + $configured = ''; + + if ( ! empty( $this->form_data['id'] ) && Status::init( $this->core->slug )->is_ready( $this->form_data['id'] ) ) { + $configured = 'configured'; + } + + $classes = [ + 'wpforms-panel-sidebar-section', + 'icon', + $configured, + 'wpforms-panel-sidebar-section-' . $this->core->slug, + ]; + ?> + + + + icon + + core->name ); ?> + + + + + + + + + + + +
              + + + display_content_header(); + + $form_id = ! empty( $this->form_data['id'] ) ? $this->form_data['id'] : ''; + + self::display_content_default_screen( + Status::init( $this->core->slug )->is_ready( $form_id ), + $this->core->slug, + $this->core->name, + $this->core->icon + ); + + $this->display_lock_field(); + ?> + +
              +
              +
              +
              +
              +
              + + +
              + +
              + ' . esc_html__( 'Get the most out of WPForms — use it with an active %s account.', 'wpforms-lite' ) . '

              ', + esc_html( $name ) + ) + ); + ?> +
              +
              + is_lock_field_required( $this->core->slug ) ) { + return; + } + + ?> + + core->slug ); + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : 0; + + $is_configured = $provider_status->is_configured(); + $is_connected = $provider_status->is_ready( $form_id ); + ?> + +
              + + core->name ); ?> + + + + + + + + + +
              + + core->slug ] ) ) { + return $form; + } + + $provider = $form_data['providers'][ $this->core->slug ]; + $lock = '__lock__'; + + // Remove the lock field if it's the only one and it's locked. + if ( isset( $provider[ $lock ] ) && count( $provider ) === 1 && absint( $provider[ $lock ] ) === 1 ) { + unset( $form_data['providers'][ $this->core->slug ]['__lock__'] ); + $form['post_content'] = wpforms_encode( $form_data ); + } + + return $form; + } + + /** + * Received field values for fields with multiple choices, e.g., multi-select. + * Connection Data has only the last saved field option. + * So, we should receive data from super global $_POST and receive all submitted options instead. + * WARNING: Sanitization of these values is required. + * + * @since 1.9.7 + * + * @param string $name Field name. + * @param array $connection_data Connection data. + * + * @return array + */ + protected function get_multiple_option_field( string $name, array $connection_data ): array { + + // The nonce checked in the `wpforms_save_form` function. + // phpcs:disable WordPress.Security.NonceVerification + // When we duplicate a form the `$_POST['data']` is empty, + // we shouldn't update the field and use copied data. + if ( empty( $_POST['data'] ) || empty( $connection_data['id'] ) ) { + return isset( $connection_data[ $name ] ) ? (array) $connection_data[ $name ] : []; + } + + $connection_id = $connection_data['id']; + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $form_post = json_decode( wp_unslash( $_POST['data'] ), true ) ?? []; + $full_name = "providers[{$this->core->slug}][$connection_id][$name][]"; + $values = []; + // phpcs:enable WordPress.Security.NonceVerification + + foreach ( $form_post as $post_pair ) { + if ( empty( $post_pair['name'] ) || $post_pair['name'] !== $full_name ) { + continue; + } + + $values[] = $post_pair['value']; + } + + return $values; + } + + /** + * Sanitize custom fields. + * + * @since 1.9.3 + * + * @param array $connection Connection data. + */ + protected function sanitize_connection_fields_meta( array &$connection ): void { + + if ( ! isset( $connection['fields_meta'] ) ) { + return; + } + + if ( ! is_array( $connection['fields_meta'] ) ) { + unset( $connection['fields_meta'] ); + + return; + } + + foreach ( $connection['fields_meta'] as $row_number => $field ) { + if ( ! isset( $field['field_id'], $field['name'] ) ) { + unset( $connection['fields_meta'][ $row_number ] ); + + continue; + } + + // Field ID can contain a subfield, e.g. `1.first`. + $field_id = sanitize_text_field( $field['field_id'] ); + $name = sanitize_text_field( $field['name'] ); + + if ( wpforms_is_empty_string( $field_id ) || wpforms_is_empty_string( $name ) ) { + unset( $connection['fields_meta'][ $row_number ] ); + + continue; + } + + $connection['fields_meta'][ $row_number ] = [ + 'name' => $name, + 'field_id' => $field_id, + ]; + } + + $connection['fields_meta'] = array_values( $connection['fields_meta'] ); + } + + /** + * Sanitize conditional logic connection fields. + * + * @since 1.9.3 + * + * @param array $connection Connection data. + */ + protected function sanitize_connection_conditionals( array &$connection ): void { + + if ( ! isset( $connection['conditionals'] ) ) { + return; + } + + if ( ! is_array( $connection['conditionals'] ) ) { + unset( $connection['conditionals'] ); + + return; + } + + foreach ( $connection['conditionals'] as $group_id => $group ) { + foreach ( $group as $rule ) { + $this->sanitize_connection_conditional_rule( $rule ); + } + + $group = array_filter( $group ); + + if ( empty( $group ) ) { + unset( $connection['conditionals'][ $group_id ] ); + + continue; + } + + $connection['conditionals'][ $group_id ] = $group; + } + } + + /** + * Sanitize conditional logic rule. + * + * @since 1.9.3 + * + * @param array $rule Conditional logic rule. + */ + private function sanitize_connection_conditional_rule( array &$rule ): void { + + if ( ! isset( $rule['field'], $rule['operator'] ) ) { + $rule = []; + + return; + } + + $sanitized_rule = [ + 'field' => sanitize_text_field( $rule['field'] ), + 'operator' => sanitize_text_field( $rule['operator'] ), + ]; + + if ( + wpforms_is_empty_string( $sanitized_rule['field'] ) || + wpforms_is_empty_string( $sanitized_rule['operator'] ) + ) { + $rule = []; + + return; + } + + if ( isset( $rule['value'] ) ) { + $sanitized_rule['value'] = sanitize_text_field( $rule['value'] ); + } + + $rule = $sanitized_rule; + } + + /** + * Builder error template. + * This generates an HTML template for displaying an error message + * when the connection to the provider fails. The message includes + * a link to the connection settings page for troubleshooting. + * + * @since 1.9.5 + * + * @noinspection HtmlUnknownTarget + */ + protected function builder_error_template(): void { + + ?> + + core->slug + ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilderInterface.php b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilderInterface.php new file mode 100644 index 0000000..b789677 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/FormBuilderInterface.php @@ -0,0 +1,33 @@ +`. + * + * @since 1.4.7 + */ + public function builder_custom_templates(); +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrations.php b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrations.php new file mode 100644 index 0000000..77d4623 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrations.php @@ -0,0 +1,386 @@ + Settings -> Integrations page. + * + * @since 1.4.7 + */ +abstract class PageIntegrations implements PageIntegrationsInterface { + + /** + * Get the Core loader class of a provider. + * + * @since 1.4.7 + * + * @var Core + */ + protected $core; + + /** + * Integrations constructor. + * + * @since 1.4.7 + * + * @param Core $core Core provider object. + */ + public function __construct( Core $core ) { + + $this->core = $core; + + $this->ajax(); + } + + /** + * Process the default ajax functionality. + * + * @since 1.4.7 + */ + protected function ajax() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Remove provider from Settings Integrations tab. + add_action( "wp_ajax_wpforms_settings_provider_disconnect_{$this->core->slug}", [ $this, 'ajax_disconnect' ] ); + + // Add new provider from Settings Integrations tab. + add_action( "wp_ajax_wpforms_settings_provider_add_{$this->core->slug}", [ $this, 'ajax_connect' ] ); + } + + /** + * @inheritdoc + */ + public function display( $active, $settings ) { + + $accounts = ! empty( $settings[ $this->core->slug ] ) ? $settings[ $this->core->slug ] : []; + $classes = $this->get_provider_classes( $active, $settings ); + $arrow = in_array( 'focus-in', $classes, true ) ? 'down' : 'right'; + ?> + +
              + +
              + + + +
              +

              core->name ); ?>

              +

              + core->name ) + ); + ?> +

              + + + + +
              + +
              + +
              + +
              +
                + $account ) { + if ( empty( $account_id ) ) { + continue; + } + + $this->display_connected_account( $account_id, $account ); + } + } + ?> +
              +
              + + display_add_new(); ?> + +
              + +
              + + core->slug ] ); + $accounts = ! empty( $settings[ $this->core->slug ] ) ? $settings[ $this->core->slug ] : []; + $classes = []; + + if ( $connected && $accounts ) { + $classes[] = 'connected'; + } + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( empty( $_GET['wpforms-integration'] ) ) { + return $classes; + } + + // phpcs:ignore WordPress.Security.NonceVerification.Recommended + $classes[] = $this->core->slug === $_GET['wpforms-integration'] ? 'focus-in' : 'focus-out'; + + return $classes; + } + + /** + * Display a connected account. + * + * @since 1.7.5 + * + * @param string $account_id Account ID. + * @param array $account Account data. + */ + protected function display_connected_account( $account_id, $account ) { + + $account_connected = ! empty( $account['date'] ) + ? wpforms_date_format( $account['date'], '', true ) + : esc_html__( 'N/A', 'wpforms-lite' ); + + echo '
            • '; + + /** + * Allow adding markup before connected account item. + * + * @since 1.7.5 + * + * @param string $account_id Account ID. + * @param array $account Account data. + */ + do_action( 'wpforms_providers_provider_settings_page_integrations_display_connected_account_item_before', $account_id, $account ); + + echo ''; + echo ! empty( $account['label'] ) ? esc_html( $account['label'] ) : '' . esc_html__( 'No Label', 'wpforms-lite' ) . ''; + echo ''; + echo ''; + echo esc_html( + sprintf( /* translators: %1$s - Connection date. */ + __( 'Connected on: %1$s', 'wpforms-lite' ), + $account_connected + ) + ); + + if ( defined( 'WPFORMS_DEBUG' ) && WPFORMS_DEBUG ) { + $this->display_account_id_debug( $account_id ); + $this->display_expires_in_debug( $account ); + } + + echo ''; + echo( + '' . esc_html__( 'Disconnect', 'wpforms-lite' ) . '' + ); + + /** + * Allow adding markup after connected account item. + * + * @since 1.7.5 + * + * @param string $account_id Account ID. + * @param array $account Account data. + */ + do_action( 'wpforms_providers_provider_settings_page_integrations_display_connected_account_item_after', $account_id, $account ); + + echo '
            • '; + } + + /** + * Display the account ID for debugging purposes. + * + * @since 1.9.5 + * + * @param mixed $account_id Account ID to display. If null, it displays 'no_id'. + */ + protected function display_account_id_debug( $account_id ): void { + + echo '
              ID: ' . esc_html( $account_id ?? 'no_id' ); + } + + /** + * Display the expiration information in debug mode. + * + * @since 1.9.5 + * + * @param array $account The account information containing the 'expires_in' timestamp. + */ + protected function display_expires_in_debug( array $account ): void { + + if ( empty( $account['expires_in'] ) ) { + return; + } + + $valid_until_timestamp = $account['expires_in']; + + if ( $valid_until_timestamp > time() ) { + $format = sprintf( '%s \a\t %s', get_option( 'date_format' ), get_option( 'time_format' ) ); + $valid_until = wpforms_datetime_format( $valid_until_timestamp, $format, true ); + + echo '
              Valid until: ' . esc_html( $valid_until ?? 'no_valid_until' ); + } + } + + /** + * Any new connection should be added. + * So display the content of that. + * + * @since 1.4.7 + */ + protected function display_add_new() { + + ?> + +

              + + + +

              + +
              + +
              +

              + +

              + +
              + display_add_new_connection_fields(); ?> +
              + + display_add_new_connection_submit_button(); ?> +
              +
              + + core->name ); + ?> + + esc_html__( 'Your session expired. Please reload the page.', 'wpforms-lite' ), + ] + ); + } + + // Check for permissions. + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'You do not have permission.', 'wpforms-lite' ), + ] + ); + } + + if ( empty( $_POST['provider'] ) || empty( $_POST['key'] ) ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'Missing data.', 'wpforms-lite' ), + ] + ); + } + + $providers = wpforms_get_providers_options(); + + if ( ! empty( $providers[ $_POST['provider'] ][ $_POST['key'] ] ) ) { + + unset( $providers[ $_POST['provider'] ][ $_POST['key'] ] ); + update_option( 'wpforms_providers', $providers ); + wp_send_json_success(); + + } else { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'Connection missing.', 'wpforms-lite' ), + ] + ); + } + } + + /** + * AJAX to add a provider from the settings integrations tab. + * + * @since 1.4.7 + */ + public function ajax_connect() { + + // Run a security check. + if ( ! check_ajax_referer( 'wpforms-admin', 'nonce', false ) ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'Your session expired. Please reload the page.', 'wpforms-lite' ), + ] + ); + } + + // Check for permissions. + if ( ! wpforms_current_user_can() ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'You do not have permissions.', 'wpforms-lite' ), + ] + ); + } + + if ( empty( $_POST['data'] ) ) { + wp_send_json_error( + [ + 'error_msg' => esc_html__( 'Missing required data in payload.', 'wpforms-lite' ), + ] + ); + } + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrationsInterface.php b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrationsInterface.php new file mode 100644 index 0000000..cfc5b57 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Provider/Settings/PageIntegrationsInterface.php @@ -0,0 +1,22 @@ +provider = sanitize_key( (string) $provider ); + } + + /** + * Provide an ability to statically init the object. + * Useful for inline-invocations. + * + * @example: Status::init( 'drip' )->is_ready(); + * + * @since 1.4.8 + * @since 1.5.9 Added a check on provider. + * + * @param string $provider Provider slug. + * + * @return Status + */ + public static function init( $provider ) { + + static $instance; + + if ( ! $instance || $provider !== $instance->provider ) { + $instance = new self( $provider ); + } + + return $instance; + } + + /** + * Check whether the defined provider is configured or not. + * "Configured" means has an account that might be checked/updated on Settings > Integrations. + * + * @since 1.4.8 + * + * @return bool + */ + public function is_configured() { + + $options = wpforms_get_providers_options(); + + /** + * Use this filter to change the configuration status of the provider. + * We need the filter for BC reasons. + * + * @since 1.4.8 + * + * @param bool $is_configured Is the provider configured? + */ + $is_configured = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + "wpforms_providers_{$this->provider}_configured", + ! empty( $options[ $this->provider ] ) + ); + + /** + * Use this filter to change the configuration status of the provider. + * + * @since 1.4.8 + * + * @param bool $is_configured Is the provider configured? + * @param string $provider Provider slug. + */ + return apply_filters( 'wpforms_providers_status_is_configured', $is_configured, $this->provider ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Check whether the defined provider is connected to some form. + * "Connected" means it has a Connection in Form Builder > Providers > Provider tab. + * + * @since 1.4.8 + * + * @param int $form_id Form ID to check the status against. + * + * @return bool + */ + public function is_connected( $form_id ) { + + $is_connected = false; + + $revisions = wpforms()->obj( 'revisions' ); + $revision = $revisions ? $revisions->get_revision() : null; + + if ( $revision ) { + $this->form_data = wpforms_decode( $revision->post_content ); + } else { + $this->form_data = wpforms()->obj( 'form' )->get( (int) $form_id, [ 'content_only' => true ] ); + } + + if ( ! empty( $this->form_data['providers'][ $this->provider ] ) ) { + $is_connected = $this->check_valid_connections(); + } + + /** + * Use this filter to change the connection status of the provider. + * + * @since 1.4.8 + * + * @param bool $is_connected Is the provider connected to the form? + * @param string $provider Provider slug. + */ + return (bool) apply_filters( 'wpforms_providers_status_is_connected', $is_connected, $this->provider ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Is the current provider ready to be used? + * It means both configured and connected. + * + * @since 1.4.8 + * + * @param int $form_id Form ID to check the status against. + * + * @return bool + */ + public function is_ready( $form_id ) { + + return $this->is_configured() && $this->is_connected( $form_id ); + } + + /** + * Check if connections belong to an existing account. + * + * @since 1.8.8 + * + * @return bool + */ + private function check_valid_connections(): bool { + + $account_ids = array_keys( wpforms_get_providers_options( $this->provider ) ); + + // BC for the Salesforce addon that uses `resource_owner_id` key instead of `account_id` value. + if ( $this->provider === 'salesforce' ) { + $account_ids = array_column( wpforms_get_providers_options( 'salesforce' ), 'resource_owner_id' ); + } + + // Account id is generated by the `uniqid` function that sometimes returns an integer value. + $account_ids = array_map( 'strval', $account_ids ); + + $connection_accounts_ids = array_column( $this->form_data['providers'][ $this->provider ], 'account_id' ); + + // BC for the Drip addon that uses `option_id` key for storing a connection provider. + if ( $this->provider === 'drip' ) { + $connection_accounts_ids = array_column( $this->form_data['providers'][ $this->provider ], 'option_id' ); + } + + foreach ( $connection_accounts_ids as $account ) { + if ( in_array( (string) $account, $account_ids, true ) ) { + return true; + } + } + + return false; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Providers/Providers.php b/wp-content/plugins/wpforms-lite/src/Providers/Providers.php new file mode 100644 index 0000000..d20d676 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Providers/Providers.php @@ -0,0 +1,72 @@ + Settings > Integrations page. + $integration = $provider->get_page_integrations(); + + if ( $integration !== null ) { + add_action( 'wpforms_settings_providers', [ $integration, 'display' ], $provider::PRIORITY, 2 ); + } + + // Editing Single Form > Form Builder. + $form_builder = $provider->get_form_builder(); + + if ( $form_builder !== null ) { + add_action( 'wpforms_providers_panel_sidebar', [ $form_builder, 'display_sidebar' ], $provider::PRIORITY ); + add_action( 'wpforms_providers_panel_content', [ $form_builder, 'display_content' ], $provider::PRIORITY ); + } + + // Process entry submission. + $process = $provider->get_process(); + + if ( $process !== null ) { + add_action( 'wpforms_process_complete', [ $process, 'process' ], 5, 4 ); + } + } + +} diff --git a/wp-content/plugins/wpforms-lite/src/Requirements/Requirements.php b/wp-content/plugins/wpforms-lite/src/Requirements/Requirements.php new file mode 100644 index 0000000..678bea0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Requirements/Requirements.php @@ -0,0 +1,1491 @@ +='; + + /** + * Development version of WPForms. Can be specified in an addon. + * + * @since 1.8.2.2 + */ + private const WPFORMS_DEV_VERSION_IN_ADDON = '{WPFORMS_VERSION}'; + + /** + * Basic, Plus, Pro and Top level licenses. + * + * @since 1.9.8.3 + */ + public const BASIC_PLUS_PRO_AND_TOP = [ 'basic', 'plus', 'pro', 'elite', 'agency', 'ultimate' ]; + + /** + * Plus, Pro and Top level licenses. + * + * @since 1.8.2.2 + */ + private const PLUS_PRO_AND_TOP = [ 'plus', 'pro', 'elite', 'agency', 'ultimate' ]; + + /** + * Pro and Top level licenses. + * + * @since 1.8.2.2 + */ + private const PRO_AND_TOP = [ 'pro', 'elite', 'agency', 'ultimate' ]; + + /** + * Top level licenses. + * + * @since 1.8.2.2 + */ + private const TOP = [ 'elite', 'agency', 'ultimate' ]; + + /** + * Default minimal addon requirements. + * + * @since 1.8.2.2 + * + * @var string[] + */ + private $defaults = [ + self::PHP => '7.2', + self::WP => '5.5', + self::WPFORMS => self::WPFORMS_DEV_VERSION_IN_ADDON, + self::LICENSE => self::PRO_AND_TOP, + self::PRIORITY => 10, + ]; + + /** + * Some things to do. + * + * @todo Add custom message for form-templates-pack. + */ + + // phpcs:disable WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned, WordPress.Arrays.MultipleStatementAlignment.LongIndexSpaceBeforeDoubleArrow + /** + * Addon requirements. + * + * Array has the format 'addon basename' => 'addon requirements array'. + * + * The requirement array can have the following keys: + * self::PHP ('php') for the minimal PHP version required, + * self::EXT ('ext') for the PHP extensions required, + * self::WP ('wp') for the minimal WordPress version required, + * self::WPFORMS ('wpforms') for the minimal WPForms version required, + * self::LICENSE ('license') for the license level required, + * self::ADDON ('addon') for the minimal addon version required, + * self::ADDON_VERSION_CONSTANT ('addon_version_constant') for the addon version constant. + * self::PRIORITY ('priority') for the priority of the current requirements. + * + * The requirement array can have the following values: + * The 'php' value can be string like '5.6' or an array like 'php' => [ 'version' => '7.2', 'compare' => '=' ]. + * The 'ext' value can be a string like 'curl' or an array like 'ext' => [ 'curl', 'mbstring' ]. + * The 'wp' value can be string like '5.5' or an array like 'wp' => [ 'version' => '6.4', 'compare' => '=' ]. + * The 'wpforms' value can be string like '1.8.2' + * or an array like 'wpforms' => [ 'version' => '1.7.5', 'compare' => '=' ]. + * When the 'wpforms' value is '{WPFORMS_VERSION}', it is not checked and should be used for development. + * The 'license' value can be string like 'elite, agency, ultimate' + * or an array like 'license' => [ 'elite', 'agency', 'ultimate' ]. + * When the 'license' value is empty like null, false, [], it is not checked. + * The 'addon' value can be a string like '2.0.1' + * or an array like 'addon' => [ 'version' => '2.0.1', 'compare' => '<=' ]. + * The 'addon_version_constant' must be a string like 'WPFORMS_ACTIVECAMPAIGN_VERSION'. + * The 'priority' must be an integer like 20. By default, it is 10. + * + * By default, 'compare' is '>='. + * + * The default addon version constant is formed from the addon directory name like this: + * wpforms-activecampaign -> WPFORMS_ACTIVECAMPAIGN_VERSION. + * + * Requirements can be specified here or in the addon as a parameter of wpforms_requirements(). + * The priorities from lower to higher (if PRIORITY is not set or equal): + * 1. Default parameters from $this->defaults. + * 2. Current array $this->requirements. + * 3. Parameter of wpforms_requirements() call in the addon. + * Settings with a higher priority overwrite lower priority settings. + * + * The minimal-required version of WPForms should be specified in the addons. + * The minimal-required version of addons should be specified here, in the `$this->requirements` array. + * + * We do not plan to restrict the lower addon version so far. + * However, if in the future we may need to do so, + * we should add to the addon-related requirement array the line like + * self::ADDON => '1.x.x' or + * self::ADDON => '{WPFORMS_ACTIVECAMPAIGN_VERSION}'. + * Here 1.x.x is the specific addon version, and + * WPFORMS_ACTIVECAMPAIGN_VERSION is the addon version constant name. + * The script will replace the addon version constant name during the addon release. + * + * @since 1.8.2.2 + * + * @var array + */ + private $requirements = [ + 'wpforms/wpforms.php' => [ + self::EXT => 'curl, dom, json, libxml', + self::LICENSE => [], + ], + 'wpforms-lite/wpforms.php' => [ + self::EXT => 'curl, dom, json, libxml', + self::LICENSE => [], + ], + 'wpforms-activecampaign/wpforms-activecampaign.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-authorize-net/wpforms-authorize-net.php' => [ + self::EXT => 'curl', + self::LICENSE => self::TOP, + ], + 'wpforms-airtable/wpforms-airtable.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-aweber/wpforms-aweber.php' => [ + self::EXT => 'curl', + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-calculations/wpforms-calculations.php' => [ + self::ADDON => '1.5.0', + ], + 'wpforms-campaign-monitor/wpforms-campaign-monitor.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-captcha/wpforms-captcha.php' => [ + // Deprecated. + self::LICENSE => self::BASIC_PLUS_PRO_AND_TOP, + self::WPFORMS => [ + self::VERSION => [ '1.8.3', '1.8.7' ], + self::COMPARE => [ '>=', '<' ], + ], + self::PRIORITY => 20, + ], + 'wpforms-conversational-forms/wpforms-conversational-forms.php' => [], + 'wpforms-convertkit/wpforms-convertkit.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + self::PHP => '7.4', + ], + 'wpforms-coupons/wpforms-coupons.php' => [ + self::ADDON => '1.6.0', + ], + 'wpforms-drip/wpforms-drip.php' => [ + self::EXT => 'curl', + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-dropbox/wpforms-dropbox.php' => [ + self::ADDON => '1.1.0', + ], + 'wpforms-entry-automation/wpforms-entry-automation.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-form-abandonment/wpforms-form-abandonment.php' => [], + 'wpforms-form-locker/wpforms-form-locker.php' => [ + self::ADDON => '2.8.0', + ], + 'wpforms-form-pages/wpforms-form-pages.php' => [], + 'wpforms-form-templates-pack/wpforms-form-templates-pack.php' => [ + // Deprecated. + self::WPFORMS => [ + self::VERSION => '1.6.8', + self::COMPARE => '<', + ], + ], + 'wpforms-geolocation/wpforms-geolocation.php' => [], + 'wpforms-getresponse/wpforms-getresponse.php' => [ + self::EXT => 'curl', + self::LICENSE => self::PLUS_PRO_AND_TOP, + self::PHP => '7.3', + ], + 'wpforms-google-calendar/wpforms-calendar.php' => [], + 'wpforms-google-drive/wpforms-google-drive.php' => [ + self::EXT => 'fileinfo', + ], + 'wpforms-google-sheets/wpforms-google-sheets.php' => [ + self::ADDON => '2.2.0', + ], + 'wpforms-hubspot/wpforms-hubspot.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-lead-forms/wpforms-lead-forms.php' => [], + 'wpforms-mailchimp/wpforms-mailchimp.php' => [ + self::EXT => 'curl', + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-mailerlite/wpforms-mailerlite.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-mailpoet/wpforms-mailpoet.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-make/wpforms-make.php' => [], + 'wpforms-n8n/wpforms-n8n.php' => [ + self::LICENSE => self::PRO_AND_TOP, + ], + 'wpforms-notion/wpforms-notion.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-offline-forms/wpforms-offline-forms.php' => [], + 'wpforms-paypal-commerce/wpforms-paypal-commerce.php' => [], + 'wpforms-paypal-standard/wpforms-paypal-standard.php' => [], + 'wpforms-pdf/wpforms-pdf.php' => [], + 'wpforms-pipedrive/wpforms-pipedrive.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-post-submissions/wpforms-post-submissions.php' => [], + 'wpforms-salesforce/wpforms-salesforce.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-save-resume/wpforms-save-resume.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-sendinblue/wpforms-sendinblue.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-signatures/wpforms-signatures.php' => [ + self::ADDON => '1.12.0', + self::EXT => 'gd', + ], + 'wpforms-slack/wpforms-slack.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-square/wpforms-square.php' => [], + 'wpforms-stripe/wpforms-stripe.php' => [], + 'wpforms-surveys-polls/wpforms-surveys-polls.php' => [ + self::ADDON => '1.15.0', + ], + 'wpforms-twilio/wpforms-twilio.php' => [ + self::LICENSE => self::PLUS_PRO_AND_TOP, + ], + 'wpforms-user-journey/wpforms-user-journey.php' => [], + 'wpforms-user-registration/wpforms-user-registration.php' => [], + 'wpforms-quiz/wpforms-quiz.php' => [], + 'wpforms-webhooks/wpforms-webhooks.php' => [ + self::LICENSE => self::TOP, + ], + 'wpforms-zapier/wpforms-zapier.php' => [], + 'wpforms-zoho-crm/wpforms-zoho-crm.php' => [ + self::LICENSE => self::TOP, + ], + ]; + // phpcs:enable WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned, WordPress.Arrays.MultipleStatementAlignment.LongIndexSpaceBeforeDoubleArrow + + /** + * Addon requirements. + * + * @since 1.8.2.2 + * + * @var array + */ + private $addon_requirements = []; + + /** + * Addon basename. + * + * @since 1.8.2.2 + * + * @var string + */ + private $basename = ''; + + /** + * Validated addons. + * + * @since 1.8.2.2 + * + * @var array + */ + private $validated = []; + + /** + * Not validated addons. + * + * @since 1.8.2.2 + * + * @var array + */ + private $not_validated = []; + + /** + * Get a single instance of the addon. + * + * @since 1.8.2.2 + * + * @return Requirements + */ + public static function get_instance(): Requirements { + + static $instance; + + if ( ! $instance ) { + $instance = new self(); + + $instance->init(); + } + + return $instance; + } + + /** + * Init class. + * + * @since 1.8.2.2 + */ + private function init(): void { + + foreach ( $this->requirements as $basename => $requirement ) { + $this->init_addon_requirements( $basename ); + } + + $this->hooks(); + } + + /** + * Add hooks. + * + * @since 1.8.2.2 + */ + private function hooks(): void { + + add_action( 'admin_init', [ $this, 'deactivate' ] ); + add_action( 'admin_notices', [ $this, 'show_notices' ] ); + add_action( 'network_admin_notices', [ $this, 'show_notices' ] ); + } + + /** + * Validate an addon. + * + * @since 1.8.2.2 + * + * @param array $addon_requirements Addon requirements. + * + * @return bool + */ + public function validate( array $addon_requirements ): bool { + + $this->addon_requirements = $addon_requirements; + $file = $this->addon_requirements['file']; + + // Requirements' array must contain the addon main filename. + if ( ! isset( $file ) ) { + return false; + } + + $this->basename = plugin_basename( $file ); + + // Respect WPF activity. + if ( $this->basename === 'wpforms/wpforms.php' && ! wpforms_is_pro() ) { + $this->basename = 'wpforms-lite/wpforms.php'; + } + + $this->init_addon_requirements( $this->basename ); + + $this->addon_requirements = $this->merge_requirements( + $this->defaults, + $this->requirements[ $this->basename ], + $this->addon_requirements + ); + + $php_valid = $this->validate_php(); + $ext_valid = $this->validate_ext(); + $wp_valid = $this->validate_wp(); + $wpforms_valid = $this->validate_wpforms(); + $license_valid = $this->validate_license(); + $addon_valid = $this->validate_addon(); + + if ( $php_valid && $ext_valid && $wp_valid && $wpforms_valid && $license_valid && $addon_valid ) { + $this->validated[] = $this->basename; + } + + $this->requirements[ $this->basename ] = $this->addon_requirements; + + return empty( $this->not_validated[ $this->basename ] ); + } + + /** + * Determine if addon is validated. + * + * @since 1.9.2 + * + * @param string $basename Addon basename. + * + * @return bool + */ + public function is_validated( string $basename ): bool { + + if ( ! file_exists( WP_PLUGIN_DIR . '/' . $basename ) ) { + // No more actions if the plugin file does not exist. + return false; + } + + if ( ! $this->is_wpforms_addon( $basename ) ) { + // No more actions if it is not a wpforms addon. + return true; + } + + // We didn't check the addon before. + if ( ! isset( $this->not_validated[ $basename ] ) && ! in_array( $basename, $this->validated, true ) ) { + $addon_load_function = $this->get_addon_load_function( $basename ); + + if ( ! is_callable( $addon_load_function ) ) { + return false; + } + + // Invoke the addon loading function, which checks requirements. + $addon_load_function(); + } + + return in_array( $basename, $this->validated, true ); + } + + /** + * Merge requirements by priority. + * + * @since 1.8.7 + * + * @param array $defaults Default requirements. + * @param array $requirements Requirements. + * @param array $addon_requirements Addon requirements. + * + * @return array + */ + private function merge_requirements( array $defaults, array $requirements, array $addon_requirements ): array { + + $chunks = [ $defaults, $requirements, $addon_requirements ]; + + usort( + $chunks, + static function ( $chunk1, $chunk2 ) { + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.AddEmptyLineBeforeReturnStatement + return ( $chunk1[ self::PRIORITY ] ?? 10 ) <=> ( $chunk2[ self::PRIORITY ] ?? 10 ); + } + ); + + return array_merge( ...$chunks ); + } + + /** + * Try to deactivate not valid addon. + * + * @since 1.8.2.2 + * + * @param string $plugin Path to the plugin file relative to the plugins' directory. + * + * @return bool True if addon was deactivated. + */ + public function deactivate_not_valid_addon( string $plugin ): bool { + + if ( ! self::DEACTIVATE_IF_NOT_MET ) { + // No more actions if we not demand deactivation. + return false; + } + + if ( ! $this->is_wpforms_addon( $plugin ) ) { + // No more actions if it is not a wpforms addon. + return false; + } + + // Finalise activation of wpforms addon. + $addon_load_function = $this->get_addon_load_function( $plugin ); + + if ( ! is_callable( $addon_load_function ) ) { + return false; + } + + // Invoke the addon loading function, which checks requirements. + $addon_load_function(); + + // Addon may get deactivated after this statement. + $this->deactivate(); + + return ! is_plugin_active( $plugin ); + } + + /** + * Check whether a plugin is a wpforms addon. + * + * @since 1.8.2.2 + * + * @param string $plugin Path to the plugin file relative to the plugins' directory. + * + * @return bool + */ + private function is_wpforms_addon( string $plugin ): bool { + + if ( strpos( $plugin, 'wpforms-' ) !== 0 ) { + // No more actions for the general plugin. + return false; + } + + /** + * There are some forks of our plugins having the 'wpforms-' prefix. + * We have to check the Author name in the plugin header. + */ + $plugin_data = $this->get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); + $plugin_author = isset( $plugin_data['Author'] ) ? strtolower( $plugin_data['AuthorName'] ) : ''; + + // No more actions on forks. + return $plugin_author === 'wpforms'; + } + + /** + * Wrapper for get_plugin_data. + * Check the plugin file for existence to avoid warnings. + * + * @since 1.9.6 + * + * @param string $plugin_file Absolute path to the main plugin file. + * @param bool $markup Optional. If the returned data should have HTML markup applied. + * @param bool $translate Optional. If the returned data should be translated. Default true. + * + * We set markup and translate to false by default because we need raw values to compare. + * + * @return array + * @noinspection PhpSameParameterValueInspection + */ + private function get_plugin_data( string $plugin_file, bool $markup = false, bool $translate = false ): array { + + if ( ! file_exists( $plugin_file ) ) { + return []; + } + + if ( ! function_exists( 'get_plugin_data' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + + return get_plugin_data( $plugin_file, $markup, $translate ); + } + + /** + * Get the addon function hooked on wpforms_load. + * + * @since 1.8.2.2 + * + * @param string $plugin Path to the plugin file relative to the plugins' directory. + * + * @return string + */ + private function get_addon_load_function( string $plugin ): string { + + global $wp_filter; + + $callbacks = $wp_filter['wpforms_loaded']->callbacks; + $prefix = explode( '/', $plugin, 2 )[0]; + $prefix = str_replace( '-', '_', $prefix ); + $addon_load_function = ''; + + // Find addon load function. + foreach ( $callbacks as $callbacks_at_priority ) { + foreach ( $callbacks_at_priority as $key => $callback ) { + if ( strpos( $key, $prefix ) === 0 ) { + $addon_load_function = $key; + + break 2; + } + } + } + + return $addon_load_function; + } + + /** + * Normalize version-based requirement. + * + * @since 1.8.2.2 + * + * @param string $key Requirements key. + * + * @return array[] + */ + private function normalize_version_requirement( string $key ): array { + + if ( ! isset( $this->addon_requirements[ $key ] ) ) { + $this->addon_requirements[ $key ] = []; + + return []; + } + + $requirement = (array) $this->addon_requirements[ $key ]; + + $version = isset( $requirement[0] ) ? + array_map( 'trim', (array) $requirement[0] ) : + [ '' ]; + $version = isset( $requirement[ self::VERSION ] ) ? + array_map( 'trim', (array) $requirement[ self::VERSION ] ) : + $version; + $compare = isset( $requirement[ self::COMPARE ] ) ? + array_map( 'trim', (array) $requirement[ self::COMPARE ] ) : + [ self::COMPARE_DEFAULT ]; + $compare = array_pad( $compare, count( $version ), self::COMPARE_DEFAULT ); + + $requirement = [ + self::VERSION => $version, + self::COMPARE => $compare, + ]; + + $this->addon_requirements[ $key ] = $requirement; + + return $requirement; + } + + /** + * Normalize array-based requirement. + * + * @since 1.8.2.2 + * + * @param string $key Requirements key. + * + * @return string[] + */ + private function normalize_array_requirement( string $key ): array { + + if ( ! isset( $this->addon_requirements[ $key ] ) ) { + $this->addon_requirements[ $key ] = []; + + return []; + } + + $requirement = $this->addon_requirements[ $key ]; + + if ( is_string( $requirement ) ) { + $requirement = explode( ',', $requirement ); + } + + if ( ! is_array( $requirement ) ) { + $requirement = []; + } + + $requirement = array_filter( array_map( 'trim', $requirement ) ); + $this->addon_requirements[ $key ] = $requirement; + + return $requirement; + } + + /** + * Validate php. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function validate_php(): bool { + + $php = $this->normalize_version_requirement( self::PHP ); + + if ( empty( $php ) ) { + return true; + } + + if ( + $php[ self::VERSION ] && + ! $this->version_compare( PHP_VERSION, $php ) + ) { + $this->not_validated[ $this->basename ][] = self::PHP; + + return false; + } + + return true; + } + + /** + * Validate php extensions. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function validate_ext(): bool { + + foreach ( $this->normalize_array_requirement( self::EXT ) as $extension ) { + if ( ! extension_loaded( $extension ) ) { + $this->not_validated[ $this->basename ][] = self::EXT; + + return false; + } + } + + return true; + } + + /** + * Validate WP. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function validate_wp(): bool { + + global $wp_version; + + $wp = $this->normalize_version_requirement( self::WP ); + + if ( empty( $wp ) ) { + return true; + } + + if ( + $wp[ self::VERSION ] && + ! $this->version_compare( $wp_version, $wp ) + ) { + $this->not_validated[ $this->basename ][] = self::WP; + + return false; + } + + return true; + } + + /** + * Validate wpforms. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function validate_wpforms(): bool { + + $wpforms = $this->normalize_version_requirement( self::WPFORMS ); + + if ( empty( $wpforms ) ) { + return true; + } + + if ( in_array( self::WPFORMS_DEV_VERSION_IN_ADDON, $wpforms[ self::VERSION ], true ) ) { + return true; + } + + if ( + $wpforms[ self::VERSION ] && + ! $this->version_compare( wpforms()->version, $wpforms ) + ) { + $this->not_validated[ $this->basename ][] = self::WPFORMS; + + return false; + } + + return true; + } + + /** + * Version compare. + * + * @since 1.8.7 + * + * @param string $version Version to compare. + * @param array $requirement Requirement. + * + * @return bool + */ + private function version_compare( string $version, array $requirement ): bool { + + $compare_arr = $this->get_compare_array( $requirement ); + + foreach ( $compare_arr as $version2 => $compare ) { + $result = version_compare( $version, $version2, $compare ); + + if ( ! $result ) { + return false; + } + } + + return true; + } + + /** + * Validate license. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function validate_license(): bool { + + $license = $this->normalize_array_requirement( self::LICENSE ); + + if ( empty( $license ) ) { + return true; + } + + if ( ! in_array( wpforms_get_license_type(), $license, true ) ) { + $this->not_validated[ $this->basename ][] = self::LICENSE; + + return false; + } + + return true; + } + + /** + * Validate addon. + * + * @since 1.8.2.2 + * + * @return bool + */ + private function validate_addon(): bool { + + $addon = $this->normalize_version_requirement( self::ADDON ); + $addon_version_constant = trim( $this->addon_requirements[ self::ADDON_VERSION_CONSTANT ] ); + + if ( empty( $addon ) || empty( $addon_version_constant ) ) { + return true; + } + + if ( preg_grep( '/{.+_VERSION}/', $addon[ self::VERSION ] ) ) { + return true; + } + + if ( + $addon[ self::VERSION ] && + ( ! defined( $addon_version_constant ) || ! $this->version_compare( constant( $addon_version_constant ), $addon ) ) + ) { + $this->not_validated[ $this->basename ][] = self::ADDON; + + return false; + } + + return true; + } + + /** + * Deactivate not validated addons. + * + * @since 1.8.2.2 + */ + public function deactivate(): void { + + if ( ! self::DEACTIVATE_IF_NOT_MET ) { + return; + } + + if ( empty( $this->not_validated ) ) { + return; + } + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + unset( $_GET['activate'] ); + + if ( empty( $this->validated ) ) { + unset( $_GET['activate-multi'] ); + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended + + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + + foreach ( $this->not_validated as $basename => $errors ) { + if ( $errors === [ 'license' ] ) { + continue; + } + + deactivate_plugins( $basename ); + } + } + + /** + * Show admin notices. + * + * @since 1.8.2.2 + */ + public function show_notices(): void { + + $notices = $this->get_notices(); + + if ( ! $notices ) { + return; + } + + $this->show_notice( '

              ' . implode( '

              ', $notices ) . '

              ' ); + } + + /** + * Get admin notices. + * + * @since 1.8.2.2 + * + * @return string[] + */ + public function get_notices(): array { + + $notices = []; + + if ( empty( $this->not_validated ) ) { + return $notices; + } + + foreach ( $this->not_validated as $basename => $errors ) { + $notice = $this->get_notice( $basename ); + + if ( ! $notice ) { + continue; + } + + $notices[] = $notice; + } + + return $notices; + } + + /** + * Get an addon compatible message. + * + * @since 1.9.3 + * + * @param string $basename Plugin basename. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + public function get_addon_compatible_message( string $basename ): string { + + if ( empty( $this->not_validated[ $basename ] ) ) { + return ''; + } + + $errors = $this->not_validated[ $basename ]; + $message = $this->get_validation_message( $errors, $basename ); + + if ( ! $message ) { + return ''; + } + + $notice = sprintf( + /* translators: %1$s - requirements message. */ + __( 'It requires %1$s.', 'wpforms-lite' ), + $message + ); + + $notice .= $this->get_read_more( $errors ); + + return $notice; + } + + /** + * Get notice. + * + * @since 1.9.2 + * + * @param string $basename Plugin basename. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + public function get_notice( string $basename ): string { + + if ( empty( $this->not_validated[ $basename ] ) ) { + return ''; + } + + $errors = $this->not_validated[ $basename ]; + $message = $this->get_validation_message( $errors, $basename ); + + if ( ! $message ) { + return ''; + } + + $is_wpforms_plugin = false !== strpos( $basename, 'wpforms.php' ); + + if ( $is_wpforms_plugin || in_array( self::ADDON, $errors, true ) ) { + $source = __( 'WPForms plugin', 'wpforms-lite' ); + } else { + $plugin_headers = $this->get_plugin_data( $this->requirements[ $basename ]['file'] ); + $source = sprintf( /* translators: %1$s - WPForms addon name. */ + __( '%1$s addon', 'wpforms-lite' ), + $plugin_headers['Name'] + ); + } + + $notice = sprintf( + /* translators: %1$s - WPForms plugin or addon name, %2$d - requirements message. */ + __( 'The %1$s requires %2$s.', 'wpforms-lite' ), + $source, + $message + ); + + $notice .= $this->get_read_more( $errors ); + + /** + * Filter the requirements' notice. + * + * @since 1.8.7 + * + * @param string $notice Notice. + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * @param array $requirements Addon requirements. + */ + return (string) apply_filters( 'wpforms_requirements_notice', $notice, $errors, $basename, $this->requirements[ $basename ] ); + } + + /** + * Get read more link. + * + * @since 1.9.6 + * + * @param array $errors Errors. + * + * @return string + * @noinspection HtmlUnknownTarget + */ + private function get_read_more( array $errors ): string { + + $data = [ + self::PHP => [ + 'flag' => self::SHOW_PHP_NOTICE, + /* translators: %1$s - Read More link. */ + 'text' => __( '%1$s for additional information on PHP version.', 'wpforms-lite' ), + 'link' => 'https://wpforms.com/docs/supported-php-version/', + ], + self::EXT => [ + 'flag' => self::SHOW_EXT_NOTICE, + /* translators: %1$s - Read More link. */ + 'text' => __( '%1$s for additional information on PHP extensions.', 'wpforms-lite' ), + 'link' => 'https://wpforms.com/docs/required-php-extensions-for-wpforms', + ], + ]; + + $read_more = ''; + + foreach ( $data as $key => $datum ) { + if ( ! isset( $datum['flag'], $datum['text'], $datum['link'] ) ) { + continue; + } + + if ( ! in_array( $key, $errors, true ) ) { + continue; + } + + if ( ! $datum['flag'] ) { + continue; + } + + $read_more .= + ' ' . + sprintf( + $datum['text'], + sprintf( + '%2$s', + wpforms_utm_link( $datum['link'], 'all-plugins', 'Addon PHP Notice' ), + __( 'Read more', 'wpforms-lite' ) + ) + ); + } + + return $read_more; + } + + /** + * Get a validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_validation_message( array $errors, string $basename ): string { + + $addon_validation_message = $this->get_addon_validation_message( $errors, $basename ); + + if ( $addon_validation_message ) { + // Do not proceed further if addon is required in a higher version. + return wpforms_list_array( [ $addon_validation_message ] ); + } + + $messages = []; + + $messages[] = $this->get_php_validation_message( $errors, $basename ); + $messages[] = $this->get_ext_validation_message( $errors, $basename ); + $messages[] = $this->get_wp_validation_message( $errors, $basename ); + $messages[] = $this->get_wpforms_validation_message( $errors, $basename ); + $messages[] = $this->get_license_validation_message( $errors, $basename ); + + return wpforms_list_array( array_filter( $messages ) ); + } + + /** + * Get a PHP validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_php_validation_message( array $errors, string $basename ): string { + + if ( self::SHOW_PHP_NOTICE && in_array( self::PHP, $errors, true ) ) { + return $this->list_version_detailed( $this->requirements[ $basename ][ self::PHP ], 'PHP' ); + } + + return ''; + } + + /** + * Get an EXT validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_ext_validation_message( array $errors, string $basename ): string { + + if ( self::SHOW_EXT_NOTICE && in_array( self::EXT, $errors, true ) ) { + $extensions = array_diff( $this->requirements[ $basename ][ self::EXT ], get_loaded_extensions() ); + + return sprintf( + /* translators: %s - PHP extension name(s). */ + _n( + '%s PHP extension', + '%s PHP extensions', + count( $extensions ), + 'wpforms-lite' + ), + wpforms_list_array( $extensions ) + ); + } + + return ''; + } + + /** + * Get WP validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_wp_validation_message( array $errors, string $basename ): string { + + if ( self::SHOW_WP_NOTICE && in_array( self::WP, $errors, true ) ) { + return $this->list_version_detailed( $this->requirements[ $basename ][ self::WP ], 'WordPress' ); + } + + return ''; + } + + /** + * Get WPFORMS validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_wpforms_validation_message( array $errors, string $basename ): string { + + if ( self::SHOW_WPFORMS_NOTICE && in_array( self::WPFORMS, $errors, true ) ) { + return $this->list_version_detailed( $this->requirements[ $basename ][ self::WPFORMS ], 'WPForms' ); + } + + return ''; + } + + /** + * Get LICENSE validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_license_validation_message( array $errors, string $basename ): string { + + if ( self::SHOW_LICENSE_NOTICE && in_array( self::LICENSE, $errors, true ) ) { + $license = wpforms_list_array( + array_map( 'ucfirst', $this->requirements[ $basename ][ self::LICENSE ] ), + false + ); + + return sprintf( + /* translators: %s - license name(s). */ + __( '%s license', 'wpforms-lite' ), + $license + ); + } + + return ''; + } + + /** + * Get an ADDON validation message. + * + * @since 1.8.2.2 + * + * @param array $errors Validation errors. + * @param string $basename Plugin basename. + * + * @return string + */ + private function get_addon_validation_message( array $errors, string $basename ): string { + + if ( self::SHOW_ADDON_NOTICE && in_array( self::ADDON, $errors, true ) ) { + return $this->list_version_detailed( + $this->requirements[ $basename ][ self::ADDON ], + $this->get_plugin_data( $this->requirements[ $basename ]['file'] )['Name'] + ); + } + + return ''; + } + + /** + * Show admin notice. + * + * @since 1.8.2.2 + * + * @param string $notice Message. + */ + private function show_notice( string $notice ): void { + + echo '
              '; + echo wp_kses_post( $notice ); + echo '
              '; + } + + /** + * Init addon requirements. + * + * @since 1.8.2.2 + * + * @param string $basename Addon basename. + */ + private function init_addon_requirements( string $basename ): void { + + if ( ! array_key_exists( $basename, $this->requirements ) ) { + $this->requirements[ $basename ] = []; + } + + // Set default addon version constant. + if ( array_key_exists( self::ADDON_VERSION_CONSTANT, $this->requirements[ $basename ] ) ) { + return; + } + + $const = str_replace( + '-', + '_', + strtoupper( explode( '/', $basename, 2 )[0] ) . '_VERSION' + ); + + $this->requirements[ $basename ][ self::ADDON_VERSION_CONSTANT ] = $const; + } + + /** + * Get version from requirements array. + * + * @since 1.8.2.2 + * + * @param array $requirement Array containing a requirement. + * + * @return string + */ + public function list_version( array $requirement ): string { + + $compare_arr = $this->get_compare_array( $requirement ); + $list = []; + + foreach ( $compare_arr as $version2 => $compare ) { + $list[] = $compare . $version2; + } + + return implode( ', ', $list ); + } + + /** + * Get a version from requirements' array in human-readable format. + * + * @since 1.9.0 + * + * @param array $requirement Array containing a requirement. + * @param string $what What is being checked. + * + * @return string + */ + private function list_version_detailed( array $requirement, string $what = '' ): string { + + $compare_arr = $this->get_compare_array( $requirement ); + $list = []; + + $compare_to_string = [ + /* translators: %1$s - What is being checked (PHP, WPForms, etc.), %2$s - required version. This is used as the completion of the sentence "The {addon name} addon requires {here goes this string}". */ + '>=' => __( '%1$s %2$s or above', 'wpforms-lite' ), + /* translators: %1$s - What is being checked (PHP, WPForms, etc.), %2$s - required version. This is used as the completion of the sentence "The {addon name} addon requires {here goes this string}". */ + '<=' => __( '%1$s %2$s or below', 'wpforms-lite' ), + '=' => '%1$s %2$s', + /* translators: %1$s - What is being checked (PHP, WPForms, etc.), %2$s - required version. This is used as the completion of the sentence "The {addon name} addon requires {here goes this string}". */ + '>' => __( 'a newer version of %1$s than %2$s', 'wpforms-lite' ), + /* translators: %1$s - What is being checked (PHP, WPForms, etc.), %2$s - required version. This is used as the completion of the sentence "The {addon name} addon requires {here goes this string}". */ + '<' => __( 'an older version of %1$s than %2$s', 'wpforms-lite' ), + ]; + + foreach ( $compare_arr as $version2 => $compare ) { + if ( isset( $compare_to_string[ $compare ] ) ) { + $list[] = sprintf( $compare_to_string[ $compare ], $what, $version2 ); + } else { + $list[] = $what . ' ' . $compare . ' ' . $version2; + } + } + + return implode( ', ', $list ); + } + + /** + * Get a compare array in the following format: [ 'version' => 'compare', ... ]. + * + * @since 1.8.7 + * + * @param array $requirement Requirement. + * + * @return array + */ + public function get_compare_array( array $requirement ): array { + + $versions = $requirement[ self::VERSION ]; + $compares = $requirement[ self::COMPARE ]; + + return array_combine( $versions, $compares ); + } + + /** + * Get requirements. + * + * @since 1.8.8 + * + * @return array + */ + public function get_requirements(): array { + + return $this->requirements; + } + + /** + * Get not validated addons. + * + * @since 1.9.4 + * + * @return array + */ + public function get_not_validated_addons(): array { + + $all_addons = array_keys( $this->requirements ); + + return array_values( array_diff( $all_addons, $this->validated ) ); + } + + /** + * Get addons by license. + * + * @since 1.9.8.3 + * + * @param string|array $license License. + * + * @return array + */ + public function get_addons_by_license( $license ): array { + + if ( is_string( $license ) ) { + $license_arr = array_map( 'trim', (array) explode( ',', $license ) ); + } else { + $license_arr = (array) $license; + } + + $addons_by_license = []; + + foreach ( $this->requirements as $basename => $this->addon_requirements ) { + $this->addon_requirements = $this->merge_requirements( + $this->defaults, + $this->requirements[ $basename ], + $this->addon_requirements + ); + + if ( ! array_intersect( $license_arr, $this->addon_requirements[ self::LICENSE ] ) ) { + continue; + } + + $addons_by_license[ $basename ] = $this->addon_requirements; + } + + return $addons_by_license; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AdminEmail.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AdminEmail.php new file mode 100644 index 0000000..bcf33ce --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AdminEmail.php @@ -0,0 +1,27 @@ +get_author_meta( $entry_id, 'display_name' ); + + if ( empty( $author_display_name ) ) { + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $page_id = isset( $_POST['page_id'] ) ? absint( $_POST['page_id'] ) : 0; + $author_id = $page_id ? (int) get_post_field( 'post_author', $page_id ) : get_current_user_id(); + $author_display_name = get_the_author_meta( 'display_name', $author_id ); + } + + $author_display_name = $this->has_cap() ? $author_display_name : ''; + + return esc_html( wp_strip_all_tags( $author_display_name ) ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorEmail.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorEmail.php new file mode 100644 index 0000000..26d8dee --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorEmail.php @@ -0,0 +1,38 @@ +get_author_meta( $entry_id, 'user_email' ); + + if ( empty( $author_email ) ) { + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $page_id = isset( $_POST['page_id'] ) ? absint( $_POST['page_id'] ) : 0; + $author_id = $page_id ? (int) get_post_field( 'post_author', $page_id ) : get_current_user_id(); + $author_email = get_the_author_meta( 'user_email', $author_id ); + } + + $author_email = $this->has_cap() ? $author_email : ''; + + return sanitize_email( $author_email ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorId.php new file mode 100644 index 0000000..d45de5a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/AuthorId.php @@ -0,0 +1,37 @@ +get_author_meta( $entry_id, 'ID' ); + + if ( empty( $author_id ) ) { + // phpcs:ignore WordPress.Security.NonceVerification.Missing + $page_id = isset( $_POST['page_id'] ) ? absint( $_POST['page_id'] ) : 0; + $author_id = $page_id ? (int) get_post_field( 'post_author', $page_id ) : get_current_user_id(); + } + + $author_id = $this->has_cap() ? $author_id : ''; + + return $author_id ? absint( $author_id ) : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/Date.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/Date.php new file mode 100644 index 0000000..36fd5d4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/Date.php @@ -0,0 +1,35 @@ +get_attributes(); + + if ( empty( $attributes['format'] ) ) { + return wpforms_date_format( time(), '', true ); + } + + $format = strtolower( $attributes['format'] ) === 'timestamp' ? 'U' : $attributes['format']; + + return wpforms_datetime_format( time(), $format, true ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldHtmlId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldHtmlId.php new file mode 100644 index 0000000..63c34d6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldHtmlId.php @@ -0,0 +1,56 @@ +get_attributes(); + + if ( ! isset( $attributes['field_html_id'] ) || ! is_numeric( $attributes['field_html_id'] ) || $attributes['field_html_id'] < 0 ) { + return ''; + } + + $field_id = absint( $attributes['field_html_id'] ); + + if ( empty( $fields[ $field_id ] ) ) { + return ''; + } + + if ( ! isset( $fields[ $field_id ]['value'] ) || (string) $fields[ $field_id ]['value'] === '' ) { + return '' . esc_html__( '(empty)', 'wpforms-lite' ) . ''; + } + + $value = $this->get_formatted_field_value( (int) $field_id, (array) $fields, 'value' ); + $value = wp_kses_post( wp_unslash( $value ) ); + + /** + * Modify value for the {field_html_id="123"} tag. + * + * @since 1.4.0 + * + * @param string $value Smart tag value. + * @param array $field The field. + * @param array $form_data Processed form settings/data, prepared to be used later. + * @param string $context Context usage. + */ + return (string) apply_filters( 'wpforms_html_field_value', $value, $fields[ $field_id ], $form_data, 'smart-tag' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldId.php new file mode 100644 index 0000000..2bc7bc5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldId.php @@ -0,0 +1,59 @@ +get_attributes(); + + if ( ! isset( $attributes['field_id'] ) || $attributes['field_id'] === '' ) { + return ''; + } + + $field_parts = explode( '|', $attributes['field_id'] ); + $field_id = $field_parts[0]; + + if ( ! isset( $fields[ $field_id ] ) || $fields[ $field_id ] === '' ) { + return ''; + } + + $field_key = ! empty( $field_parts[1] ) ? sanitize_key( $field_parts[1] ) : 'value'; + $value = $this->get_formatted_field_value( (int) $field_id, (array) $fields, $field_key, $form_data ); + $value = wp_kses_post( wp_unslash( $value ) ); + + /** + * Modify value for the `field_id` smart tag. + * + * @since 1.5.3 + * @deprecated 1.6.7 + * + * @see This filter is documented in wp-includes/plugin.php + * + * @param string $value Smart tag value. + */ + return (string) apply_filters_deprecated( + 'wpforms_field_smart_tag_value', + [ $value ], + '1.6.7', + 'wpforms_smarttags_process_field_id_value' + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldValueId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldValueId.php new file mode 100644 index 0000000..64b1121 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FieldValueId.php @@ -0,0 +1,45 @@ +get_attributes(); + + if ( ! isset( $attributes['field_value_id'] ) || $attributes['field_value_id'] === '' ) { + return ''; + } + + $field_id = $attributes['field_value_id']; + + if ( ! isset( $fields[ $field_id ] ) || $fields[ $field_id ] === '' ) { + return ''; + } + + $field_key = isset( $fields[ $field_id ]['value_raw'] ) && ! is_array( $fields[ $field_id ]['value_raw'] ) && (string) $fields[ $field_id ]['value_raw'] !== '' + ? 'value_raw' + : 'value'; + + $value = $this->get_formatted_field_value( (int) $field_id, (array) $fields, $field_key, $form_data ); + + return wp_kses_post( wp_unslash( $value ) ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FormId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FormId.php new file mode 100644 index 0000000..81055fb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/FormId.php @@ -0,0 +1,27 @@ +obj( 'entry' )->get( $entry_id ); + $fields = isset( $entry->fields ) ? (array) wpforms_decode( $entry->fields ) : []; + } + + $fields = $this->prepare_fields( $fields, $form_data ); + + [ $items, $foot, $total_width ] = $this->prepare_payment_fields_data( $fields ); + + $preview = wpforms_render( + 'fields/total/summary-preview', + [ + 'items' => $this->filter_items( $items ), + 'foot' => $foot, + 'total_width' => $total_width, + 'context' => 'smart_tag', + ], + true + ); + + if ( $this->context === 'email' ) { + // Remove new lines for the legacy Notification template to prevent HTML markup breaks. + // We remove only new lines before closing HTML tag symbol to keep new lines inside the table content. + return preg_replace( '/(>$\n)/m', '>', $preview ); + } + + return $preview; + } + + /** + * Filter items. + * + * @since 1.9.3 + * + * @param array $items Items data. + * + * @return array + */ + private function filter_items( array $items ): array { + + // Bail early if not in notification context. + if ( $this->context !== 'notification' ) { + return $items; + } + + return array_filter( + $items, + function ( $item ) { + // Return items that are not hidden. + return empty( $item['is_hidden'] ); + } + ); + } + + /** + * Prepare fields data for summary preview. + * Add label_hide property to fields if needed. + * + * @since 1.9.2 + * + * @param array $fields Fields data. + * @param array $form_data Form data and settings. + * + * @return array + */ + private function prepare_fields( array $fields, array $form_data ): array { + + return array_map( + function ( $field ) use ( $form_data ) { + return $this->prepare_field( $field, $form_data ); + }, + $fields + ); + } + + /** + * Prepare field data for summary preview. + * + * @since 1.9.3 + * + * @param array $field Field data. + * @param array $form_data Form data and settings. + * + * @return array + */ + private function prepare_field( array $field, array $form_data ): array { + + $form_data_fields = $form_data['fields'] ?? []; + $field_data = $form_data_fields[ $field['id'] ] ?? []; + + if ( isset( $field_data['label_hide'] ) ) { + $field['label_hide'] = true; + } + + if ( isset( $field_data['format'] ) && $field_data['format'] === 'hidden' ) { + $field['is_hidden'] = true; + } + + return $field; + } + + /** + * Prepare payment fields data for summary preview. + * + * @since 1.8.7 + * + * @param array $fields Fields data. + * + * @return array + */ + private function prepare_payment_fields_data( array $fields ): array { + + $payment_fields = wpforms_payment_fields(); + $items = []; + $coupon = []; + $foot = []; + $total = 0; + $total_width = 0; + + foreach ( $fields as $field ) { + + if ( + empty( $field['value'] ) || + ! in_array( $field['type'], $payment_fields, true ) + ) { + continue; + } + + if ( $field['type'] === 'payment-coupon' ) { + $coupon = $field; + + continue; + } + + $this->prepare_single_item( $field, $items, $total ); + $this->prepare_multiple_item( $field, $items, $total ); + } + + $this->prepare_coupon_item( $coupon, $foot, $total, $total_width ); + + $total = wpforms_format_amount( $total, true ); + + $foot[] = [ + 'label' => __( 'Total', 'wpforms-lite' ), + 'quantity' => '', + 'amount' => $total, + 'class' => 'wpforms-order-summary-preview-total', + ]; + + // Add two extra characters units to accommodate symbols that can be wider than one character (e.g. “€”), + // and to normalize the ch-unit width discrepancy between Windows and Unix-based operating systems. + $total_width = max( $total_width, mb_strlen( html_entity_decode( $total, ENT_COMPAT, 'UTF-8' ) ) + 2 ); + + return [ $items, $foot, $total_width ]; + } + + /** + * Prepare single item for summary preview. + * + * @since 1.8.7 + * + * @param array $field Field data. + * @param array $items Summary items. + * @param string $total Form total. + */ + private function prepare_single_item( array $field, array &$items, string &$total ) { + + // Single value. + if ( ! in_array( $field['type'], [ 'payment-single', 'payment-multiple', 'payment-select' ], true ) ) { + return; + } + + $quantity = $this->get_payment_field_quantity( $field ); + + if ( ! $quantity ) { + return; + } + + $value_raw = $field['value_raw'] ?? ''; + /* translators: %s - item number. */ + $value_choice = ! empty( $field['value_choice'] ) ? $field['value_choice'] : sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $value_raw ); + + $label = ! empty( $value_raw ) ? $field['name'] . ' - ' . $value_choice : $field['name']; + $amount = $field['amount_raw'] * $quantity; + + $items[] = [ + 'label' => ! empty( $field['label_hide'] ) ? $value_choice : $label, + 'quantity' => $quantity, + 'amount' => wpforms_format_amount( $amount, true ), + 'is_hidden' => ! empty( $field['is_hidden'] ), + ]; + + $total += $amount; + } + + /** + * Prepare multiple item for summary preview. + * + * @since 1.8.7 + * + * @param array $field Field data. + * @param array $items Summary items. + * @param string $total Form total. + */ + private function prepare_multiple_item( array $field, array &$items, string &$total ) { + + if ( $field['type'] !== 'payment-checkbox' ) { + return; + } + + $quantity = $this->get_payment_field_quantity( $field ); + + if ( ! $quantity ) { + return; + } + + // Multiple values. + $value_choices = explode( "\n", $field['value'] ); + + foreach ( $value_choices as $key => $value_choice ) { + + $choice_data = explode( ' - ', $value_choice ); + $labels = $this->get_multiple_item_labels( $choice_data, $field, $key ); + + $items[] = [ + 'label' => ! empty( $field['label_hide'] ) ? implode( ' - ', $labels ) : $field['name'] . ' - ' . implode( ' - ', $labels ), + 'quantity' => $quantity, + 'amount' => end( $choice_data ), + ]; + } + + $total += $field['amount_raw']; + } + + /** + * Get multiple item labels. + * + * @since 1.9.3 + * + * @param array $choice_data Choice data. + * @param array $field Field data. + * @param int $key Choice key. + * + * @return array + */ + private function get_multiple_item_labels( array $choice_data, array $field, int $key ): array { + + $labels = array_slice( $choice_data, 0, -1 ); + + if ( ! empty( $labels ) ) { + return $labels; + } + + $raw_values = explode( ',', $field['value_raw'] ); + /* translators: %s - item number. */ + return [ sprintf( esc_html__( 'Item %s', 'wpforms-lite' ), $raw_values[ $key ] ?? '' ) ]; + } + + /** + * Prepare coupon item for summary preview. + * + * @since 1.8.7 + * + * @param array $coupon Coupon data. + * @param array $foot Summary footer. + * @param string $total Form total. + * @param string $total_width Total width. + */ + private function prepare_coupon_item( array $coupon, array &$foot, string &$total, string &$total_width ) { + + if ( empty( $coupon ) ) { + return; + } + + $foot[] = [ + 'label' => __( 'Subtotal', 'wpforms-lite' ), + 'quantity' => '', + 'amount' => wpforms_format_amount( $total, true ), + 'class' => 'wpforms-order-summary-preview-subtotal', + ]; + + $coupon_label = sprintf( /* translators: %s - Coupon value. */ + __( 'Coupon (%s)', 'wpforms-lite' ), + $coupon['value'] + ); + + $coupon_amount = $this->get_coupon_amount( $coupon ); + + $foot[] = [ + 'label' => $coupon_label, + 'quantity' => '', + 'amount' => $coupon_amount, + 'class' => 'wpforms-order-summary-preview-coupon-total', + ]; + + // Coupon value saved as negative. + $total += $coupon['amount_raw']; + + $total_width = strlen( html_entity_decode( $coupon_amount, ENT_COMPAT, 'UTF-8' ) ); + } + + /** + * Get coupon amount. + * + * @since 1.8.7 + * + * @param array $coupon Coupon data. + * + * @return string Formatted coupon amount. + */ + private function get_coupon_amount( array $coupon ): string { + // Coupon amount saved as negative, so we need to format it nicely. + $coupon_amount = '- ' . wpforms_format_amount( abs( $coupon['amount_raw'] ), true ); + + /** + * Allow to filter order summary coupon amount. + * + * @since 1.8.7 + * + * @param string $coupon_amount Coupon amount. + * @param array $coupon Coupon data. + */ + return apply_filters( 'wpforms_smart_tags_smart_tag_order_summary_coupon_amount', $coupon_amount, $coupon ); + } + + /** + * Get payment field quantity. + * + * @since 1.8.7 + * + * @param array $field Field data. + * + * @return int + */ + private function get_payment_field_quantity( array $field ): int { + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + return isset( $field['quantity'] ) ? (int) $field['quantity'] : 1; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageId.php new file mode 100644 index 0000000..b8634b3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageId.php @@ -0,0 +1,40 @@ +get_meta( $entry_id, 'page_id' ); + + if ( ! empty( $page_id ) ) { + return absint( $page_id ); + } + + // phpcs:disable WordPress.Security.NonceVerification.Missing + if ( ! empty( $_POST['page_id'] ) ) { + return absint( $_POST['page_id'] ); + } + // phpcs:enable WordPress.Security.NonceVerification.Missing + + // We should not return any value on pages that don't belong to the page type. + return is_singular() || ( is_front_page() && is_page() ) ? get_the_ID() : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageTitle.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageTitle.php new file mode 100644 index 0000000..947538a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageTitle.php @@ -0,0 +1,83 @@ +get_meta( $entry_id, 'page_title' ); + + if ( ! empty( $page_title ) ) { + return wp_kses_post( $page_title ); + } + + // phpcs:disable WordPress.Security.NonceVerification.Missing + if ( ! empty( $_POST['page_title'] ) && ! is_array( $_POST['page_title'] ) ) { + return wp_kses_post( wp_unslash( $_POST['page_title'] ) ); + } + // phpcs:enable WordPress.Security.NonceVerification.Missing + + if ( is_front_page() ) { + return wp_kses_post( is_page() ? get_the_title( get_the_ID() ) : get_bloginfo( 'name' ) ); + } + + return wp_kses_post( $this->get_wp_title() ); + } + + /** + * Retrieve a page title based on `wp_title()`. + * + * @since 1.7.9 + * + * @return string + */ + private function get_wp_title() { + + global $wp_filter; + + // Back up all callbacks. + $callbacks = isset( $wp_filter['wp_title']->callbacks ) ? $wp_filter['wp_title']->callbacks : []; + + if ( ! empty( $callbacks ) ) { + // Unset all callbacks. + $wp_filter['wp_title']->callbacks = []; + } + + /* + * In most cases `wp_title()` returns the value we're going to use, except: + * - on static front page (we can use page title as a fallback), + * - on standard front page with the latest post (we can use the site name as a fallback). + */ + $title = trim( wp_title( '', false ) ); + + // Run through the default transformations WordPress does on this hook. + $title = wptexturize( $title ); + $title = convert_chars( $title ); + $title = esc_html( $title ); + $title = capital_P_dangit( $title ); + + if ( ! empty( $callbacks ) ) { + // Restore all callbacks. + $wp_filter['wp_title']->callbacks = $callbacks; + } + + return $title; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageUrl.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageUrl.php new file mode 100644 index 0000000..548df9a --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/PageUrl.php @@ -0,0 +1,40 @@ +get_meta( $entry_id, 'page_url' ); + + if ( ! empty( $page_url ) ) { + return esc_url( urldecode( $page_url ) ); + } + + // phpcs:disable WordPress.Security.NonceVerification + $page_url = ! empty( $_POST['page_url'] ) + ? esc_url_raw( wp_unslash( $_POST['page_url'] ) ) + : wpforms_current_url(); + $page_url = urldecode( $page_url ); + // phpcs:enable WordPress.Security.NonceVerification + + return esc_url( $page_url ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/QueryVar.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/QueryVar.php new file mode 100644 index 0000000..c1ec7d5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/QueryVar.php @@ -0,0 +1,76 @@ +get_attributes(); + + if ( empty( $attributes['key'] ) ) { + return ''; + } + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET[ $attributes['key'] ] ) ) { + return esc_html( sanitize_text_field( wp_unslash( $_GET[ $attributes['key'] ] ) ) ); + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended + + $page_url = $this->get_page_url( $entry_id ); + + if ( empty( $page_url ) ) { + return ''; + } + + $query = wp_parse_url( esc_url_raw( wp_unslash( $page_url ) ), PHP_URL_QUERY ); + // phpcs:enable WordPress.Security.NonceVerification.Missing + + if ( ! $query ) { + return ''; + } + + parse_str( $query, $results ); + + return ! empty( $results[ $attributes['key'] ] ) ? esc_html( sanitize_text_field( wp_unslash( $results[ $attributes['key'] ] ) ) ) : ''; + } + + /** + * Get page URL. + * + * @since 1.9.4 + * + * @param string $entry_id Entry ID. + * + * @return string + */ + private function get_page_url( $entry_id ): string { + + // phpcs:disable WordPress.Security.NonceVerification.Missing + if ( ! empty( $_POST['page_url'] ) ) { + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput + return (string) $_POST['page_url']; // It sanitized in the get_value method. + } + // phpcs:enable WordPress.Security.NonceVerification.Missing + + return $this->get_meta( $entry_id, 'page_url' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/SiteName.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/SiteName.php new file mode 100644 index 0000000..75d46c7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/SiteName.php @@ -0,0 +1,27 @@ +smart_tag = $smart_tag; + $this->context = $context; + $this->context_data = $context_data; + } + + /** + * Get smart tag value. + * + * @since 1.6.7 + * + * @param array $form_data Form data. + * @param array $fields List of fields. + * @param string $entry_id Entry ID. + * + * @return string + */ + abstract public function get_value( $form_data, $fields = [], $entry_id = '' ); + + /** + * Get a list of smart tag attributes. + * + * @since 1.6.7 + * + * @return array + */ + public function get_attributes() { + + if ( ! empty( $this->attributes ) ) { + return $this->attributes; + } + + /** + * (\w+) an attribute name and also the first capturing group. Lowercase or uppercase letters, digits, underscore. + * = the equal sign. + * (["\']) single or double quote, the second capturing group. + * (.+?) an attribute value within the quotes, and also the third capturing group. Any number of any characters except the new line. Lazy mode - match as few characters as possible to allow multiple attributes on one line. + * \2 - repeat the second capturing group. + */ + preg_match_all( '/(\w+)=(["\'])(.+?)\2/', $this->smart_tag, $attributes ); + $this->attributes = array_combine( $attributes[1], $attributes[3] ); + + return $this->attributes; + } + + /** + * Get current user. + * + * @since 1.8.7 + * + * @param string|int $entry_id Entry ID. + * + * @return WP_User|string + */ + public function get_user( $entry_id ) { + + $user = $this->get_entry_user( $entry_id ); + + if ( ! empty( $user ) ) { + return $user; + } + + return ! wpforms_doing_scheduled_action() && is_user_logged_in() ? wp_get_current_user() : ''; + } + + /** + * Get user from the entry. + * + * @since 1.8.8 + * + * @param string|int $entry_id Entry ID. + * + * @return WP_User|string + */ + private function get_entry_user( $entry_id ) { + + $entry_user_id = $this->get_entry_user_id( $entry_id ); + + if ( empty( $entry_user_id ) ) { + return ''; + } + + $user = get_user_by( 'id', $entry_user_id ); + + return $user instanceof WP_User ? $user : ''; + } + + /** + * Retrieve user ID from entry meta or AS task. + * + * @since 1.9.4 + * + * @param int|string $entry_id Entry ID. + * + * @return int + */ + private function get_entry_user_id( $entry_id ): int { + + if ( empty( $entry_id ) ) { + return (int) $this->get_meta( 0, 'user_id' ); + } + + $entry = wpforms()->obj( 'entry' ); + + if ( empty( $entry ) ) { + return 0; + } + + $entry_data = $entry->get( $entry_id ); + + return $entry_data && isset( $entry_data->user_id ) ? (int) $entry_data->user_id : 0; + } + + /** + * Get author. + * + * @since 1.8.7 + * + * @param int $post_id Submitted post ID. + * + * @return WP_User|false WP_User object on success, false on failure. + */ + public function get_author( $post_id ) { + + $author_id = get_post_field( 'post_author', $post_id ); + + return get_user_by( 'id', $author_id ); + } + + /** + * Get author property. + * + * @since 1.8.8 + * + * @param int|string $entry_id Entry ID. + * @param string $meta_key User property. + * + * @return string + */ + protected function get_author_meta( $entry_id, string $meta_key ): string { + + $page_id = $this->get_meta( $entry_id, 'page_id' ); + + if ( empty( $page_id ) ) { + return ''; + } + + $author = $this->get_author( $page_id ); + + if ( ! $author ) { + return ''; + } + + return $author->{$meta_key} ?? ''; + } + + /** + * Get entry meta. + * + * @since 1.8.7 + * + * @param string|int $entry_id Entry ID. + * @param string $meta_key Meta key. + * + * @return string Meta value. + */ + public function get_meta( $entry_id, string $meta_key ): string { + + $meta_data = ''; + + if ( ! empty( $entry_id ) ) { + $entry_meta = wpforms()->obj( 'entry_meta' ); + + if ( $entry_meta ) { + $meta = $entry_meta->get_meta( + [ + 'entry_id' => $entry_id, + 'type' => $meta_key, + 'number' => 1, + ] + ); + + $meta_data = isset( $meta[0]->data ) ? (string) $meta[0]->data : ''; + } + } + + /** + * Allow modifying the entry meta-value. + * + * @since 1.9.4 + * + * @param string $meta_data Meta value. + * @param string $meta_key Meta key. + * @param string|int $entry_id Entry ID. + * @param SmartTag $smart_tag Smart tag object. + * + * @return string + */ + return (string) apply_filters( 'wpforms_smart_tags_smart_tag_get_meta_value', $meta_data, $meta_key, $entry_id, $this ); //phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + } + + /** + * Get a formatted field value. + * + * @since 1.8.9 + * + * @param int $field_id Field ID. + * @param array $fields List of fields. + * @param string $field_key Field key to get value from. + * @param array $form_data Form data. + * + * @return string + */ + protected function get_formatted_field_value( int $field_id, array $fields, string $field_key, array $form_data = [] ): string { + + $value = $fields[ $field_id ][ $field_key ] ?? ''; + + /** + * Allow modifying the formatted field value. + * + * @since 1.9.0 + * + * @param string $value Field value. + * @param int $field_id Field ID. + * @param array $fields List of fields. + * @param string $field_key Field key to get value from. + * @param array $form_data Form data. + * + * @return string + */ + $value = (string) apply_filters( 'wpforms_smart_tags_formatted_field_value', $value, $field_id, $fields, $field_key, $form_data ); //phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + if ( ! wpforms_is_repeated_field( $field_id, $fields ) ) { + return $value; + } + + return $this->get_repeated_field_value( $value, $field_id, $fields, $field_key ); + } + + /** + * Get repeated fields value. + * + * @since 1.8.9 + * + * @param string $value Field value. + * @param int $field_id Field ID. + * @param array $fields List of fields. + * @param string $field_key Field key to get value from. + * + * @return string + */ + private function get_repeated_field_value( string $value, int $field_id, array $fields, string $field_key ): string { + + $comma_separated_contexts = [ 'notification-send-to-email', 'notification-carboncopy' ]; + $prefix = $field_id . '_'; + $separator = in_array( $this->context, $comma_separated_contexts, true ) ? ',' : "\n"; + + foreach ( $fields as $key => $field ) { + if ( strpos( $key, $prefix ) !== 0 ) { + continue; + } + + if ( ! isset( $field[ $field_key ] ) ) { + continue; + } + + $value .= $separator . $field[ $field_key ]; + } + + return $value; + } + + /** + * Check if a user has capabilities to get the smart tag value. + * + * @since 1.9.9.2 + * + * @return bool + */ + protected function has_cap(): bool { + + switch ( $this->context ) { + case 'notification': + case 'notification-carboncopy': + case 'notification-from': + case 'notification-reply-to': + case 'email': + $cap = $this->recipient_has_cap(); + break; + + case 'confirmation': + $cap = current_user_can( 'manage_options' ); + break; + + default: + $cap = true; + } + + return $cap; + } + + /** + * Check if the notification recipient is allowed to view the author email. + * + * @since 1.9.9.2 + * + * @return bool + */ + private function recipient_has_cap(): bool { + + $emails = $this->context_data['to_email'] ?? []; + $emails = array_unique( array_filter( array_map( 'trim', $emails ) ) ); + + if ( ! $emails ) { + return false; + } + + return array_reduce( + $emails, + static function ( $carry, $email ) { + + $user = get_user_by( 'email', $email ); + + return $carry && $user && user_can( $user, 'manage_options' ); + }, + true + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UniqueValue.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UniqueValue.php new file mode 100644 index 0000000..4dc8293 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UniqueValue.php @@ -0,0 +1,91 @@ +get_attributes(); + + if ( array_key_exists( 'length', $attributes ) ) { + $length = max( $length, absint( $attributes['length'] ) ); + } + + if ( array_key_exists( 'format', $attributes ) && ! empty( $attributes['format'] ) ) { + $format = $attributes['format']; + } + + return $this->generate_string( $length, $format ); + } + + /** + * Generates a random string in defined format. + * + * @since 1.7.5 + * + * @param int $length Optional. The length of string to generate. + * @param string $format The format of string to generate. Accepts 'alphanumeric', + * 'numeric', and 'alpha'. Default 'alphanumeric'. + * + * @return string + */ + private function generate_string( $length = 16, $format = 'alphanumeric' ) { + + $alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $numbers = '0123456789'; + + switch ( strtolower( $format ) ) { + case 'numeric': + $chars = $numbers; + break; + + case 'alpha': + $chars = $alpha; + break; + + default: + $chars = $alpha . $numbers; + break; + } + + $chars = str_pad( $chars, $length, $chars ); + + return substr( str_shuffle( $chars ), 0, $length ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlLogin.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlLogin.php new file mode 100644 index 0000000..82dbcc0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlLogin.php @@ -0,0 +1,27 @@ +get_meta( $entry_id, 'url_referer' ); + + if ( ! empty( $referer ) ) { + return $this->context === 'confirmation_redirect' + ? urldecode( $referer ) + : esc_url( urldecode( $referer ) ); + } + + $process = wpforms()->obj( 'process' ); + + if ( $process && ! empty( $process->form_data['entry_meta']['url_referer'] ) ) { + return esc_url( urldecode( $process->form_data['entry_meta']['url_referer'] ) ); + } + + if ( wp_doing_ajax() ) { + return ''; + } + + $referer = urldecode( (string) wp_get_raw_referer() ); + + return esc_url( $referer ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlRegister.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlRegister.php new file mode 100644 index 0000000..9a80de1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UrlRegister.php @@ -0,0 +1,27 @@ +get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return $current_user->exists() ? esc_html( wp_strip_all_tags( $current_user->display_name ) ) : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserEmail.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserEmail.php new file mode 100644 index 0000000..2ba2162 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserEmail.php @@ -0,0 +1,35 @@ +get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return $current_user->exists() ? sanitize_email( $current_user->user_email ) : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFirstName.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFirstName.php new file mode 100644 index 0000000..b3e7635 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFirstName.php @@ -0,0 +1,35 @@ +get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return $current_user->exists() ? esc_html( wp_strip_all_tags( $current_user->user_firstname ) ) : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFullName.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFullName.php new file mode 100644 index 0000000..cff9ec5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserFullName.php @@ -0,0 +1,35 @@ +get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return $current_user->exists() ? esc_html( wp_strip_all_tags( $current_user->user_firstname . ' ' . $current_user->user_lastname ) ) : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserId.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserId.php new file mode 100644 index 0000000..b501e26 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserId.php @@ -0,0 +1,35 @@ +get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return $current_user->exists() ? $current_user->ID : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserIp.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserIp.php new file mode 100644 index 0000000..afe0fd1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserIp.php @@ -0,0 +1,39 @@ +obj( 'entry' ); + $entry = $entry_obj ? $entry_obj->get( $entry_id ) : null; + + return $entry->ip_address ?? ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserLastName.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserLastName.php new file mode 100644 index 0000000..2a8f0bc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserLastName.php @@ -0,0 +1,35 @@ +get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return $current_user->exists() ? esc_html( wp_strip_all_tags( $current_user->user_lastname ) ) : ''; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserMeta.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserMeta.php new file mode 100644 index 0000000..45a4a81 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTag/UserMeta.php @@ -0,0 +1,47 @@ +get_attributes(); + + if ( empty( $attributes['key'] ) ) { + return ''; + } + + $current_user = $this->get_user( $entry_id ); + + if ( ! $current_user instanceof WP_User ) { + return ''; + } + + return wp_kses_post( + get_user_meta( + $current_user->ID, + sanitize_text_field( $attributes['key'] ), + true + ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTags.php b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTags.php new file mode 100644 index 0000000..8c08e82 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/SmartTags/SmartTags.php @@ -0,0 +1,569 @@ +smart_tags ) ) { + return $this->smart_tags; + } + + /** + * Modify the smart tags' list. + * + * @since 1.4.0 + * + * @param array $tags The list of smart tags. + */ + $this->smart_tags = (array) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_smart_tags', + $this->smart_tags_list() + ); + + return $this->smart_tags; + } + + /** + * Get the list of registered smart tags. + * + * @since 1.6.7 + * + * @return array + */ + protected function smart_tags_list() { + + return [ + 'admin_email' => esc_html__( 'Site Administrator Email', 'wpforms-lite' ), + 'field_id' => esc_html__( 'Field ID', 'wpforms-lite' ), + 'field_html_id' => esc_html__( 'Field HTML ID', 'wpforms-lite' ), + 'field_value_id' => esc_html__( 'Field Value', 'wpforms-lite' ), + 'form_id' => esc_html__( 'Form ID', 'wpforms-lite' ), + 'form_name' => esc_html__( 'Form Name', 'wpforms-lite' ), + 'page_title' => esc_html__( 'Embedded Post/Page Title', 'wpforms-lite' ), + 'page_url' => esc_html__( 'Embedded Post/Page URL', 'wpforms-lite' ), + 'page_id' => esc_html__( 'Embedded Post/Page ID', 'wpforms-lite' ), + 'date' => esc_html__( 'Date', 'wpforms-lite' ), + 'query_var' => esc_html__( 'Query String Variable', 'wpforms-lite' ), + 'user_ip' => esc_html__( 'User IP Address', 'wpforms-lite' ), + 'user_id' => esc_html__( 'User ID', 'wpforms-lite' ), + 'user_display' => esc_html__( 'User Display Name', 'wpforms-lite' ), + 'user_full_name' => esc_html__( 'User Full Name', 'wpforms-lite' ), + 'user_first_name' => esc_html__( 'User First Name', 'wpforms-lite' ), + 'user_last_name' => esc_html__( 'User Last Name', 'wpforms-lite' ), + 'user_email' => esc_html__( 'Logged-in User\'s Email', 'wpforms-lite' ), + 'user_meta' => esc_html__( 'User Meta', 'wpforms-lite' ), + 'author_id' => esc_html__( 'Author ID', 'wpforms-lite' ), + 'author_display' => esc_html__( 'Author Name', 'wpforms-lite' ), + 'author_email' => esc_html__( 'Author Email', 'wpforms-lite' ), + 'url_referer' => esc_html__( 'Referrer URL', 'wpforms-lite' ), + 'url_login' => esc_html__( 'Login URL', 'wpforms-lite' ), + 'url_logout' => esc_html__( 'Logout URL', 'wpforms-lite' ), + 'url_register' => esc_html__( 'Register URL', 'wpforms-lite' ), + 'url_lost_password' => esc_html__( 'Lost Password URL', 'wpforms-lite' ), + 'unique_value' => esc_html__( 'Unique Value', 'wpforms-lite' ), + 'site_name' => esc_html__( 'Site Name', 'wpforms-lite' ), + 'order_summary' => esc_html__( 'Order Summary', 'wpforms-lite' ), + ]; + } + + /** + * Add the Form Builder strings. + * + * @since 1.9.5 + * + * @param array $strings Localized strings. + * @param WP_Post $form Form object. + * + * @return array + * @noinspection HtmlUnknownTarget + * @noinspection PhpMissingParamTypeInspection + * @noinspection PhpUnusedParameterInspection + */ + public function add_builder_strings( $strings, $form ): array { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed + + $strings = (array) $strings; + + /** + * Smart Tags. + * + * @since 1.6.7 + * + * @param array $smart_tags Array of smart tags. + */ + $smart_tags = (array) apply_filters( 'wpforms_builder_enqueues_smart_tags', $this->get_smart_tags() ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + $st_strings = [ + 'smart_tags_dropdown_mce_icon' => WPFORMS_PLUGIN_URL . 'assets/images/icon-tags.svg', + 'smart_tags' => $smart_tags, + 'smart_tags_disabled_for_fields' => [ 'entry_id' ], + 'smart_tags_edit_ok_button' => esc_html__( 'Apply changes', 'wpforms-lite' ), + 'smart_tags_delete_button' => esc_html__( 'Delete smart tag', 'wpforms-lite' ), + 'smart_tags_edit' => esc_html__( 'edit', 'wpforms-lite' ), + 'smart_tags_arg' => esc_html__( 'argument', 'wpforms-lite' ), + 'smart_tags_unknown_field' => esc_html__( 'Unknown Field', 'wpforms-lite' ), + 'smart_tags_templates' => [ + /* translators: %1$s - field ID, %2$s - field label. */ + 'field_id' => esc_html__( 'Field %1$s', 'wpforms-lite' ), + /* translators: %1$s - field ID, %2$s - field label. */ + 'field_value_id' => esc_html__( 'Field value %1$s', 'wpforms-lite' ), + /* translators: %1$s - field ID, %2$s - field label. */ + 'field_html_id' => esc_html__( 'Field HTML %1$s', 'wpforms-lite' ), + /* translators: %1$s - Query String Variable. */ + 'query_var' => esc_html__( 'Query String Variable: %1$s', 'wpforms-lite' ), + /* translators: %1$s - User meta key. */ + 'user_meta' => esc_html__( 'User Meta: %1$s', 'wpforms-lite' ), + /* translators: %1$s - Date format. */ + 'date' => esc_html__( 'Date: %1$s', 'wpforms-lite' ), + /* translators: %1$s - Date format. */ + 'entry_date' => esc_html__( 'Entry Date: %1$s', 'wpforms-lite' ), + ], + /** + * Filters the list of Smart Tags that are disabled for confirmations. + * + * @since 1.9.3 + * + * @param array $disabled List of disabled Smart Tags. + */ + 'smart_tags_disabled_for_confirmations' => apply_filters( 'wpforms_builder_smart_tags_disabled_for_confirmations', [] ), // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + ]; + + $st_strings['smart_tags_button_tooltip'] = sprintf( + wp_kses( /* translators: %1$s - link to the WPForms.com doc article. */ + __( 'Easily add dynamic information from various sources with Smart Tags.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( + wpforms_utm_link( + 'https://wpforms.com/docs/how-to-use-smart-tags-in-wpforms/', + 'Builder Settings', + 'Smart Tags Documentation' + ) + ) + ); + + return array_merge( $strings, $st_strings ); + } + + /** + * Get all smart tags in the content. + * + * @since 1.6.7 + * + * @param string $content Content. + * + * @return array + */ + private function get_all_smart_tags( $content ) { + + /** + * A smart tag should start and end with a curly brace. + * ([a-z0-9_]+) a smart tag name and also the first capturing group. + * Lowercase letters, digits, and an underscore. + * (|[ =][^\n}]*) - second capturing group: + * | no characters at all or the following: + * [ =][^\n}]* space or equal sign and any number of any characters except new line and closing curly brace. + */ + preg_match_all( '~{([a-z0-9_]+)(|[ =][^\n}]*)}~', $content, $smart_tags ); + + return array_combine( $smart_tags[0], $smart_tags[1] ); + } + + /** + * Process smart tags. + * + * @since 1.6.7 + * @since 1.8.7 Added `$context` parameter. + * + * @param string $content Content. + * @param array $form_data Form data. + * @param array $fields List of fields. + * @param string $entry_id Entry ID. + * @param string $context Context. + * + * @return string + */ + public function process( $content, $form_data, $fields = [], $entry_id = '', $context = '', array $context_data = [] ) { + + // We shouldn't process smart tags in different WordPress editors + // since it produce unexpected results. + if ( wpforms_is_editor_page() ) { + return $content; + } + + $smart_tags = $this->get_all_smart_tags( $content ); + + if ( empty( $smart_tags ) ) { + return $content; + } + + foreach ( $smart_tags as $smart_tag => $tag_name ) { + $class_name = $this->get_smart_tag_class_name( $tag_name ); + $smart_tag_object = new $class_name( $smart_tag, $context, $context_data ); + $value = $smart_tag_object->get_value( $form_data, $fields, $entry_id ); + $field_id = $smart_tag_object->get_attributes()['field_id'] ?? 0; + $field_id = (int) explode( '|', $field_id )[0]; + + if ( + $context === 'confirmation_redirect' && + $field_id > 0 && + in_array( + $fields[ $field_id ]['type'], + wpforms_get_multi_fields(), + true + ) + ) { + // Protect from the case where the user already placed a pipe in the value. + $value = str_replace( + [ "\r\n", "\r", "\n", '|' ], + [ rawurlencode( '|' ), '|', '|', '|' ], + $value + ); + } + + /** + * Modify the smart tag value. + * + * @since 1.6.7 + * @since 1.6.7.1 Added the 5th argument. + * @since 1.9.0 Added the 6th argument. + * + * @param scalar|null $value Smart Tag value. + * @param array $form_data Form data. + * @param array $fields List of fields. + * @param int $entry_id Entry ID. + * @param SmartTag $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered. + * @param string $context Context. + */ + $value = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + "wpforms_smarttags_process_{$tag_name}_value", + $value, + $form_data, + $fields, + $entry_id, + $smart_tag_object, + $context + ); + + /** + * Modify a smart tag value. + * + * @since 1.6.7.1 + * @since 1.9.7.3 Added the 7th argument. + * + * @param scalar|null $value Smart Tag value. + * @param string $tag_name Smart tag name. + * @param array $form_data Form data. + * @param array $fields List of fields. + * @param int $entry_id Entry ID. + * @param SmartTag $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered. + * @param string $context Context. + */ + $value = apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_smarttags_process_value', + $value, + $tag_name, + $form_data, + $fields, + $entry_id, + $smart_tag_object, + $context + ); + + if ( $value !== null ) { + $content = $this->replace( $smart_tag, $value, $content ); + } + + /** + * Modify content with smart tags. + * + * @since 1.4.0 + * @since 1.6.7.1 Added 3rd, 4th, 5th, 6th arguments. + * + * @param string $content Content of the Smart Tag. + * @param string $tag_name Tag name of the Smart Tag. + * @param array $form_data Form data. + * @param string $fields List of fields. + * @param int $entry_id Entry ID. + * @param SmartTag $smart_tag_object The smart tag object or the Generic object for those cases when class unregistered. + */ + $content = (string) apply_filters( // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + 'wpforms_smart_tag_process', + $content, + $tag_name, + $form_data, + $fields, + $entry_id, + $smart_tag_object + ); + } + + return $content; + } + + /** + * Determine if the smart tag is registered. + * + * @since 1.6.7 + * + * @param string $smart_tag_name Smart tag name. + * + * @return bool + */ + protected function has_smart_tag( $smart_tag_name ) { + + return array_key_exists( $smart_tag_name, $this->get_smart_tags() ); + } + + /** + * Get a smart tag class name. + * + * @since 1.6.7 + * + * @param string $smart_tag_name Smart tag name. + * + * @return string + */ + protected function get_smart_tag_class_name( $smart_tag_name ) { + + if ( ! $this->has_smart_tag( $smart_tag_name ) ) { + return Generic::class; + } + + $class_name = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $smart_tag_name ) ) ); + + $full_class_name = '\\WPForms\\SmartTags\\SmartTag\\' . $class_name; + + if ( class_exists( $full_class_name ) ) { + return $full_class_name; + } + + /** + * Modify a smart tag class name that describes the smart tag logic. + * + * @since 1.6.7 + * + * @param string $class_name The value. + * @param string $smart_tag_name Smart tag name. + */ + $full_class_name = apply_filters( 'wpforms_smarttags_get_smart_tag_class_name', '', $smart_tag_name ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName + + return class_exists( $full_class_name ) ? $full_class_name : Generic::class; + } + + /** + * Retrieve the builder's special tags. + * + * @since 1.6.7 + * + * @return array + */ + protected function get_replacement_builder_tags() { + + return [ + 'date' => 'date format="m/d/Y"', + 'query_var' => 'query_var key=""', + 'user_meta' => 'user_meta key=""', + ]; + } + + /** + * Hide smart tags in the builder. + * + * @since 1.6.7 + * + * @return array + */ + protected function get_hidden_builder_tags() { + + return [ + 'field_id', + 'field_html_id', + 'field_value_id', + ]; + } + + /** + * Builder tags. + * + * @since 1.6.7 + * + * @return array + */ + public function builder() { + + $smart_tags = $this->get_smart_tags(); + $replacement_tags = $this->get_replacement_builder_tags(); + $hidden_tags = $this->get_hidden_builder_tags(); + + foreach ( $replacement_tags as $tag => $replacement_tag ) { + $smart_tags = wpforms_array_insert( $smart_tags, [ $replacement_tag => $smart_tags[ $tag ] ], $tag ); + + unset( $smart_tags[ $tag ] ); + } + + foreach ( $hidden_tags as $hidden_tag ) { + unset( $smart_tags[ $hidden_tag ] ); + } + + return $smart_tags; + } + + /** + * Replace a found smart tag with the final value. + * + * @since 1.6.7 + * + * @param string $tag The tag. + * @param string $value The value. + * @param string $content Content. + * + * @return string + */ + private function replace( $tag, $value, $content ) { + + return str_replace( $tag, strip_shortcodes( $value ), $content ); + } + + /** + * Filter arguments passed to the async task. + * + * @since 1.9.4 + * + * @param array|mixed $args Arguments passed to the async task. + */ + public function save_smart_tags_tasks_meta( $args ): array { + + $args = (array) $args; + $process = wpforms()->obj( 'process' ); + + if ( ! $process || empty( $process->form_data['entry_meta'] ) ) { + return $args; + } + + $args['entry_meta'] = $process->form_data['entry_meta']; + + return $args; + } + + /** + * Maybe add a fallback for entry meta for WPForms Action Scheduler tasks meta. + * + * @since 1.9.4 + * + * @param int|mixed $action_id Action ID. + * @param ActionScheduler_Action $action Action Scheduler action object. + * + * @noinspection PhpUnusedParameterInspection + * @noinspection PhpMissingParamTypeInspection + */ + public function maybe_add_entry_meta_fallback_value( $action_id, $action ): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + $this->action_args = $action->get_args(); + $this->fallback = function ( $value, $var_name ) { + + if ( ! wpforms_is_empty_string( $value ) ) { + return $value; + } + + return $this->action_args['entry_meta'][ $var_name ] ?? $value; + }; + + add_filter( 'wpforms_smart_tags_smart_tag_get_meta_value', $this->fallback, 10, 2 ); + } + + /** + * Maybe remove a fallback for entry meta for WPForms Action Scheduler tasks meta. + * + * @since 1.9.4 + */ + public function maybe_remove_entry_meta_fallback_value(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( ! $this->fallback ) { + return; + } + + remove_filter( 'wpforms_smart_tags_smart_tag_get_meta_value', $this->fallback ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/AsyncRequestTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/AsyncRequestTask.php new file mode 100644 index 0000000..bcdcf61 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/AsyncRequestTask.php @@ -0,0 +1,70 @@ +hooks(); + } + + /** + * Add hooks. + * + * @since 1.7.5 + */ + private function hooks() { + + // Register the migrate action. + add_action( self::ACTION, [ $this, 'process' ] ); + } + + + /** + * Send usage tracking to the server. + * + * @since 1.7.5 + * + * @param int $meta_id Action meta id. + */ + public static function process( $meta_id ) { + + $params = ( new Meta() )->get( $meta_id ); + + if ( ! $params ) { + return; + } + + list( $url, $args ) = $params->data; + + wp_safe_remote_get( $url, $args ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/DomainAutoRegistrationTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/DomainAutoRegistrationTask.php new file mode 100644 index 0000000..d1b0b8d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/DomainAutoRegistrationTask.php @@ -0,0 +1,139 @@ +domain_manager = new DomainManager(); + } + + /** + * Process the task. + * + * @since 1.8.6 + */ + public function init() { + + // Get a task status. + $status = get_option( self::STATUS ); + + // This task is run in \WPForms\Migrations\Upgrade186::run(), + // and started in \WPForms\Migrations\UpgradeBase::run_async(). + // Bail out if a task is not started or completed. + if ( ! $status || $status === self::COMPLETED ) { + return; + } + + // Mark that the task is in progress. + update_option( self::STATUS, self::IN_PROGRESS ); + + // Register hooks. + $this->hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + $tasks->create( self::ACTION )->async()->register(); + } + + /** + * Register hooks. + * + * @since 1.8.6 + */ + private function hooks() { + + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Process the task. + * + * @since 1.8.6 + */ + public function process() { + + // If the Stripe account is connected, then try to register domain. + if ( Helpers::has_stripe_keys() && $this->domain_manager->validate() ) { + $this->log( 'Stripe Payments: Stripe domain auto registration during migration to WPForms 1.8.6.' ); + } + + // Mark that the task is completed. + update_option( self::STATUS, self::COMPLETED ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsMetaCleanupTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsMetaCleanupTask.php new file mode 100644 index 0000000..5cbbcef --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsMetaCleanupTask.php @@ -0,0 +1,110 @@ +init(); + } + + /** + * Initialize the task with all the proper checks. + * + * @since 1.5.9 + */ + public function init() { + + // Register the action handler. + $this->hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + $email_async = wpforms_setting( 'email-async' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + // Cancel scheduled action if email async option is not set. + if ( ! $email_async ) { + $this->cancel(); + } + + return; + } + + // Do not schedule action if email async option is not set. + if ( ! $email_async ) { + return; + } + + // phpcs:disable WPForms.PHP.ValidateHooks.InvalidHookName + /** + * Filters the email cleanup task interval. + * + * @since 1.5.9 + * + * @param int $interval Interval in seconds. + */ + $interval = (int) apply_filters( 'wpforms_tasks_entry_emails_meta_cleanup_interval', DAY_IN_SECONDS ); + // phpcs:enable WPForms.PHP.ValidateHooks.InvalidHookName + + $this->recurring( strtotime( 'tomorrow' ), $interval ) + ->params( $interval ) + ->register(); + } + + /** + * Add hooks. + * + * @since 1.7.3 + */ + private function hooks() { + + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Perform the cleanup action: remove outdated meta for entry emails task. + * + * @since 1.5.9 + * + * @param int $meta_id ID for meta information for a task. + */ + public function process( $meta_id ) { + + $task_meta = new Meta(); + $meta = $task_meta->get( (int) $meta_id ); + + // We should actually receive something. + if ( empty( $meta ) || empty( $meta->data ) ) { + return; + } + + list( $interval ) = $meta->data; + + $task_meta->clean_by( EntryEmailsTask::ACTION, (int) $interval ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsTask.php new file mode 100644 index 0000000..5669cbc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/EntryEmailsTask.php @@ -0,0 +1,65 @@ +async(); + } + + /** + * Get the data from Tasks meta table, check/unpack it and + * send the email straight away. + * + * @since 1.5.9 + * @since 1.5.9.3 Send immediately instead of calling \WPForms_Process::entry_email() method. + * + * @param int $meta_id ID for meta information for a task. + */ + public static function process( $meta_id ) { + + $task_meta = new Meta(); + $meta = $task_meta->get( (int) $meta_id ); + + // We should actually receive something. + if ( empty( $meta ) || empty( $meta->data ) ) { + return; + } + + // We expect a certain number of params. + if ( count( $meta->data ) !== 5 ) { + return; + } + + // We expect a certain meta data structure for this task. + list( $to, $subject, $message, $headers, $attachments ) = $meta->data; + + // Let's do this NOW, finally. + wp_mail( $to, $subject, $message, $headers, $attachments ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/FormsLocatorScanTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/FormsLocatorScanTask.php new file mode 100644 index 0000000..537dda8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/FormsLocatorScanTask.php @@ -0,0 +1,575 @@ +init(); + } + + /** + * Initialize the task with all the proper checks. + * + * @since 1.7.4 + */ + public function init() { + + $this->locator = wpforms()->obj( 'locator' ); + + /** + * Allow developers to modify the task interval. + * + * @since 1.7.4 + * + * @param int $interval The task recurring interval in seconds. If <= 0, the task will be cancelled. + */ + $this->interval = (int) apply_filters( 'wpforms_tasks_actions_forms_locator_scan_task_interval', DAY_IN_SECONDS ); + + $this->hooks(); + + $this->tasks = wpforms()->obj( 'tasks' ); + + // Do not add a new one if scheduled. + if ( $this->tasks->is_scheduled( self::SCAN_ACTION ) !== false ) { + + if ( $this->interval <= 0 ) { + $this->cancel(); + } + + return; + } + + $this->add_scan_task(); + } + + /** + * Add scan task. + * + * @since 1.7.4 + */ + private function add_scan_task() { + + if ( $this->interval <= 0 ) { + return; + } + + // Add a new task if none exists. + $this->recurring( time(), $this->interval ) + ->params() + ->register(); + } + + /** + * Add hooks. + * + * @since 1.7.4 + */ + private function hooks() { + + // Register hidden action for testing and support. + add_action( 'current_screen', [ $this, 'maybe_run_actions_in_admin' ] ); + + // Register Action Scheduler actions. + add_action( self::SCAN_ACTION, [ $this, 'scan' ] ); + add_action( self::RESCAN_ACTION, [ $this, 'rescan' ] ); + add_action( self::SAVE_ACTION, [ $this, 'save' ] ); + add_action( self::DELETE_ACTION, [ $this, 'delete' ] ); + add_action( 'action_scheduler_after_process_queue', [ $this, 'after_process_queue' ] ); + } + + /** + * Maybe rescan or delete locations. + * Hidden undocumented actions for tests and support. + * + * @since 1.7.4 + * + * @param WP_Screen $current_screen Current WP_Screen object. + */ + public function maybe_run_actions_in_admin( $current_screen ) { + + // phpcs:disable WordPress.Security.NonceVerification.Recommended + if ( + ! $current_screen || + $current_screen->id !== 'toplevel_page_wpforms-overview' || + ! isset( $_GET[ self::LOCATIONS_QUERY_ARG ] ) || + ! wpforms_debug() + ) { + return; + } + + if ( $_GET[ self::LOCATIONS_QUERY_ARG ] === 'delete' ) { + $this->delete(); + } + + if ( $_GET[ self::LOCATIONS_QUERY_ARG ] === 'scan' ) { + $this->rescan(); + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended + + wp_safe_redirect( remove_query_arg( [ self::LOCATIONS_QUERY_ARG ] ) ); + exit; + } + + /** + * Run scan task. + * + * @since 1.7.4 + */ + public function scan() { + + if ( ! $this->tasks ) { + return; + } + + // Bail out if the scan is already in progress. + if ( self::SCAN_STATUS_IN_PROGRESS === (string) get_option( self::SCAN_STATUS ) ) { + return; + } + + // Mark that scan is in progress. + update_option( self::SCAN_STATUS, self::SCAN_STATUS_IN_PROGRESS ); + + $this->log( 'Forms Locator scan action started.' ); + + // This part of the scan shouldn't take more than 1 second even on big sites. + $post_ids = $this->search_in_posts(); + $post_locations = $this->get_form_locations( $post_ids ); + $widget_locations = $this->locator->search_in_widgets(); + $standalone_locations = $this->search_in_standalone_forms(); + $locations = array_merge( $post_locations, $widget_locations, $standalone_locations ); + $form_location_metas = $this->get_form_location_metas( $locations ); + + /** + * This part of the scan can take a while. + * Saving hundreds of metas with a potentially very high number of locations could be time and memory consuming. + * That is why we perform save via Action Scheduler. + */ + $meta_chunks = array_chunk( $form_location_metas, self::CHUNK_SIZE, true ); + $count = count( $meta_chunks ); + + foreach ( $meta_chunks as $index => $meta_chunk ) { + $this->tasks->create( self::SAVE_ACTION )->async()->params( $meta_chunk, $index, $count )->register(); + } + + $this->log( 'Save tasks created.' ); + } + + /** + * Run immediate scan. + * + * @since 1.7.4 + */ + public function rescan() { + + $this->cancel(); + $this->add_scan_task(); + } + + /** + * Save form locations. + * + * @since 1.7.4 + * + * @param int $meta_id Action meta id. + */ + public function save( $meta_id ) { + + $params = ( new Meta() )->get( $meta_id ); + + if ( ! $params ) { + return; + } + + list( $meta_chunk, $index, $count ) = $params->data; + + foreach ( $meta_chunk as $form_id => $meta ) { + update_post_meta( $form_id, Locator::LOCATIONS_META, $meta ); + } + + $this->log( + sprintf( + 'Forms Locator save action %1$d/%2$d completed.', + $index + 1, + $count + ) + ); + } + + /** + * Delete form locations. + * + * @since 1.7.4 + */ + public function delete() { + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( + $wpdb->prepare( + "DELETE FROM $wpdb->postmeta WHERE meta_key = %s", + Locator::LOCATIONS_META + ) + ); + + delete_option( self::SCAN_STATUS ); + + wp_cache_flush(); + } + + /** + * After process queue action. + * Delete transient to indicate that scanning is completed. + * + * @since 1.7.4 + */ + public function after_process_queue() { + + if ( $this->tasks->is_scheduled( self::SAVE_ACTION ) ) { + return; + } + + // Mark that scan is finished. + if ( (string) get_option( self::SCAN_STATUS ) === self::SCAN_STATUS_IN_PROGRESS ) { + update_option( self::SCAN_STATUS, self::SCAN_STATUS_COMPLETED ); + $this->log( 'Forms Locator scan action completed.' ); + } + } + + /** + * Search form in posts. + * + * @since 1.7.4 + * + * @return int[] + */ + private function search_in_posts() { + + global $wpdb; + + $post_statuses = wpforms_wpdb_prepare_in( $this->locator->get_post_statuses() ); + $post_types = wpforms_wpdb_prepare_in( $this->locator->get_post_types() ); + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $ids = $wpdb->get_col( + "SELECT p.ID + FROM (SELECT ID + FROM $wpdb->posts + WHERE post_status IN ( $post_statuses ) AND post_type IN ( $post_types ) ) AS ids + INNER JOIN $wpdb->posts as p ON ids.ID = p.ID + WHERE p.post_content REGEXP '\\\[wpforms|wpforms/form-selector'" + ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + + return array_map( 'intval', $ids ); + } + + /** + * Filters the SELECT clause of the query. + * Get a minimal set of fields from the post record. + * + * @since 1.7.4 + * + * @param string $fields The SELECT clause of the query. + * @param WP_Query $query The WP_Query instance (passed by reference). + * + * @return string + * + * @noinspection PhpUnusedParameterInspection + */ + public function posts_fields_filter( $fields, $query ) { + + global $wpdb; + + $fields_arr = [ 'ID', 'post_title', 'post_status', 'post_type', 'post_content', 'post_name' ]; + $fields_arr = array_map( + static function ( $field ) use ( $wpdb ) { + + return "$wpdb->posts." . $field; + }, + $fields_arr + ); + + return implode( ', ', $fields_arr ); + } + + /** + * Get form locations. + * + * @since 1.7.4 + * + * @param int[] $post_ids Post IDs. + * + * @return array + */ + private function get_form_locations( $post_ids ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + /** + * Block caching here, as caching produces unneeded db requests in + * update_object_term_cache() and update_postmeta_cache(). + */ + $query_args = [ + 'post_type' => $this->locator->get_post_types(), + 'post_status' => $this->locator->get_post_statuses(), + 'post__in' => $post_ids, + 'no_found_rows' => true, + 'posts_per_page' => - 1, + 'cache_results' => false, + ]; + + // Get form locations by chunks to prevent out of memory issue. + $post_id_chunks = array_chunk( $post_ids, self::CHUNK_SIZE ); + $locations = []; + + add_filter( 'posts_fields', [ $this, 'posts_fields_filter' ], 10, 2 ); + + foreach ( $post_id_chunks as $post_id_chunk ) { + $query_args['post__in'] = $post_id_chunk; + $query = new WP_Query( $query_args ); + $locations = $this->get_form_locations_from_posts( $query->posts, $locations ); + } + + remove_filter( 'posts_fields', [ $this, 'posts_fields_filter' ] ); + + return $locations; + } + + /** + * Get locations from posts. + * + * @since 1.7.4 + * + * @param WP_Post[] $posts Posts. + * @param array $locations Locations. + * + * @return array + */ + private function get_form_locations_from_posts( $posts, $locations = [] ) { + + $home_url = home_url(); + + foreach ( $posts as $post ) { + + $form_ids = $this->locator->get_form_ids( $post->post_content ); + + if ( ! $form_ids ) { + continue; + } + + $url = get_permalink( $post ); + $url = ( $url === false || is_wp_error( $url ) ) ? '' : $url; + $url = str_replace( $home_url, '', $url ); + + foreach ( $form_ids as $form_id ) { + $locations[] = [ + 'type' => $post->post_type, + 'title' => $post->post_title, + 'form_id' => $form_id, + 'id' => $post->ID, + 'status' => $post->post_status, + 'url' => $url, + ]; + } + } + + return $locations; + } + + /** + * Search in standalone forms. + * + * @since 1.8.7 + * + * @return array + */ + private function search_in_standalone_forms(): array { + + global $wpdb; + + $location_types = []; + + foreach ( Locator::STANDALONE_LOCATION_TYPES as $location_type ) { + $location_types[] = '"' . $location_type . '_enable":"1"'; + } + + $regexp = implode( '|', $location_types ); + + $post_statuses = wpforms_wpdb_prepare_in( $this->locator->get_post_statuses() ); + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $standalone_forms = $wpdb->get_results( + "SELECT ID, post_content, post_status + FROM $wpdb->posts + WHERE post_status IN ( $post_statuses ) AND + post_type = 'wpforms' AND + post_content REGEXP '$regexp';" + ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + + $locations = []; + + foreach ( $standalone_forms as $standalone_form ) { + $form_data = json_decode( $standalone_form->post_content, true ); + + $locations[] = $this->locator->build_standalone_location( + (int) $standalone_form->ID, + $form_data, + $standalone_form->post_status + ); + } + + return $locations; + } + + /** + * Get form location metas. + * + * @param array $locations Locations. + * + * @since 1.7.4 + * + * @return array + */ + private function get_form_location_metas( $locations ) { + + $metas = []; + + foreach ( $locations as $location ) { + + if ( empty( $location['form_id'] ) ) { + continue; + } + + $metas[ $location['form_id'] ][] = $location; + } + + return $metas; + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/IconChoicesFontAwesomeUpgradeTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/IconChoicesFontAwesomeUpgradeTask.php new file mode 100644 index 0000000..0086a9c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/IconChoicesFontAwesomeUpgradeTask.php @@ -0,0 +1,156 @@ +hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + $tasks->create( self::ACTION )->async()->register(); + } + + /** + * Hooks. + * + * @since 1.8.3 + */ + private function hooks() { + + add_action( self::ACTION, [ $this, 'upgrade' ] ); + } + + /** + * Upgrade. + * + * @since 1.8.3 + */ + public function upgrade() { + + $upload_dir = wpforms_upload_dir(); + $tmp_base_path = $upload_dir['path'] . '/icon-choices-tmp'; + $cache_base_path = $upload_dir['path'] . '/icon-choices'; + $icons_data_file = $cache_base_path . '/icons.json'; + + if ( ! file_exists( $icons_data_file ) ) { + $this->log( 'Font Awesome Upgrade: Font Awesome Upgrade: Library is not present, nothing to upgrade.' ); + update_option( self::STATUS, self::COMPLETED ); + + return; + } + + require_once ABSPATH . 'wp-admin/includes/file.php'; + + WP_Filesystem(); + + global $wp_filesystem; + + $wp_filesystem->rmdir( $tmp_base_path, true ); + wpforms()->obj( 'icon_choices' )->run_install( $tmp_base_path ); + + if ( is_dir( $tmp_base_path ) ) { + // Remove old cache. + $this->log( 'Font Awesome Upgrade: Removing existing instance of the library.' ); + $wp_filesystem->rmdir( $cache_base_path, true ); + + // Rename temporary directory. + $this->log( 'Font Awesome Upgrade: Renaming temporary directory.' ); + $wp_filesystem->move( $tmp_base_path, $cache_base_path ); + + // Mark that migration is finished. + $this->log( 'Font Awesome Upgrade: Finished upgrading.' ); + update_option( self::STATUS, self::COMPLETED ); + + return; + } + + $this->log( 'Font Awesome Upgrade: Something went wrong, library was not upgraded.' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration173Task.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration173Task.php new file mode 100644 index 0000000..14a6bd0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration173Task.php @@ -0,0 +1,268 @@ +entry_handler = wpforms()->obj( 'entry' ); + $this->entry_fields_handler = wpforms()->obj( 'entry_fields' ); + + if ( ! $this->entry_handler || ! $this->entry_fields_handler ) { + return; + } + + // Bail out if migration is not started or completed. + $status = get_option( self::STATUS ); + + if ( ! $status || $status === self::COMPLETED ) { + return; + } + + // Mark that migration is in progress. + update_option( self::STATUS, self::IN_PROGRESS ); + + $this->hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + // Init migration. + $this->init_migration( $tasks ); + } + + /** + * Add hooks. + * + * @since 1.7.3 + */ + private function hooks() { + + // Register the migrate action. + add_action( self::ACTION, [ $this, 'migrate' ] ); + + // Register after process queue action. + add_action( 'action_scheduler_after_process_queue', [ $this, 'after_process_queue' ] ); + } + + /** + * Migrate an entry. + * + * @since 1.7.3 + * + * @param int $meta_id Action meta id. + */ + public function migrate( $meta_id ) { + + $params = ( new Meta() )->get( $meta_id ); + + if ( ! $params ) { + return; + } + + list( $entry_id_chunk ) = $params->data; + + foreach ( $entry_id_chunk as $entry_id ) { + $this->save_entry( $entry_id ); + } + } + + /** + * After process queue action. + * Set status as completed. + * + * @since 1.7.3 + */ + public function after_process_queue() { + + if ( as_has_scheduled_action( self::ACTION ) ) { + return; + } + + // Mark that migration is finished. + update_option( self::STATUS, self::COMPLETED ); + } + + /** + * Init migration. + * + * @since 1.7.3 + * + * @param Tasks $tasks Tasks class instance. + */ + private function init_migration( $tasks ) { + + // This part of the migration shouldn't take more than 1 second even on big sites. + $entry_ids = $this->get_legacy_entry_ids(); + + if ( ! $entry_ids ) { + // Mark that migration is completed. + update_option( self::STATUS, self::COMPLETED ); + + return; + } + + /** + * This part of the migration can take a while. + * Saving hundreds of entries with a potentially very high number of entry fields could be time and memory consuming. + * That is why we perform save via Action Scheduler. + */ + $entry_id_chunks = array_chunk( $entry_ids, self::CHUNK_SIZE, true ); + + foreach ( $entry_id_chunks as $entry_id_chunk ) { + $tasks->create( self::ACTION )->async()->params( $entry_id_chunk )->register(); + } + } + + /** + * Get entry ids which do not have relevant entry field records. + * + * @since 1.7.3 + * + * @return int[] + */ + private function get_legacy_entry_ids() { + + global $wpdb; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + $entries = $wpdb->get_results( + " + SELECT e.entry_id FROM {$this->entry_handler->table_name} e + LEFT JOIN {$this->entry_fields_handler->table_name} ef + ON e.entry_id=ef.entry_id + WHERE + e.status IN( 'partial', 'abandoned' ) AND + ef.entry_id IS NULL" + ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + + if ( ! $entries || ! is_array( $entries ) ) { + return []; + } + + return array_map( 'intval', wp_list_pluck( $entries, 'entry_id' ) ); + } + + /** + * Save entry properly. + * + * @since 1.7.3 + * + * @param int $entry_id Entry id. + */ + private function save_entry( $entry_id ) { + + $entry = $this->entry_handler->get( $entry_id ); + + if ( ! $entry || ! isset( $entry->form_id, $entry->fields, $entry->date_modified ) ) { + return; + } + + $fields = json_decode( $entry->fields, true ); + + if ( ! is_array( $fields ) ) { + return; + } + + $form_data = [ + 'id' => (int) $entry->form_id, + 'date' => $entry->date_modified, + ]; + + $this->entry_fields_handler->save( $fields, $form_data, $entry_id, true ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration175Task.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration175Task.php new file mode 100644 index 0000000..0f788c9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/Migration175Task.php @@ -0,0 +1,454 @@ +entry_handler = wpforms()->obj( 'entry' ); + $this->entry_meta_handler = wpforms()->obj( 'entry_meta' ); + $this->temp_table_name = "{$wpdb->prefix}wpforms_temp_entry_ids"; + + if ( ! $this->entry_handler || ! $this->entry_meta_handler ) { + return; + } + + // Bail out if migration is not started or completed. + $status = get_option( self::STATUS ); + + if ( ! $status || $status === self::COMPLETED ) { + return; + } + + $this->hooks(); + + if ( $status === self::START ) { + // Mark that migration is in progress. + update_option( self::STATUS, self::IN_PROGRESS ); + + // Alter entry meta table. + $this->alter_entry_meta_table(); + + // Init migration. + $this->init_migration(); + } + } + + /** + * Modify field in the entry meta table. + * + * @since 1.7.5 + */ + private function alter_entry_meta_table() { + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $wpdb->query( "ALTER TABLE {$this->entry_meta_handler->table_name} MODIFY type VARCHAR(255)" ); + } + + /** + * Add index to a table. + * + * @since 1.7.5 + * + * @param string $table_name Table. + * @param string $index_name Index name. + * @param string $key_part Key part. + * + * @return void + */ + private function add_index( $table_name, $index_name, $key_part ) { + + global $wpdb; + + // Check id index already exists. + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + $result = $wpdb->get_var( + "SELECT COUNT(1) IndexIsThere + FROM INFORMATION_SCHEMA.STATISTICS + WHERE table_schema = DATABASE() + AND table_name = '$table_name' + AND index_name = '$index_name'" + ); + + if ( $result === '1' ) { + return; + } + + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + + // Change the column length for the wp_wpforms_entry_meta.type column to 255 and add an index. + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( "CREATE INDEX $index_name ON $table_name ( $key_part )" ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + } + + /** + * Add hooks. + * + * @since 1.7.5 + */ + private function hooks() { + + // Register the migrate action. + add_action( self::ACTION, [ $this, 'migrate' ] ); + + // Register after process queue action. + add_action( 'action_scheduler_after_process_queue', [ $this, 'after_process_queue' ] ); + } + + /** + * Migrate an entry. + * + * @param int $action_index Action index. + * + * @since 1.7.5 + */ + public function migrate( $action_index ) { + + global $wpdb; + + $db_indexes = [ + - 3 => [ + 'table_name' => $this->entry_meta_handler->table_name, + 'index_name' => 'form_id', + 'key_part' => 'form_id', + ], + - 2 => [ + 'table_name' => $this->entry_meta_handler->table_name, + 'index_name' => 'type', + 'key_part' => 'type', + ], + - 1 => [ + 'table_name' => $this->entry_meta_handler->table_name, + 'index_name' => 'data', + 'key_part' => 'data(32)', + ], + ]; + + // We create indexes in the background as it could take significant time on a big database. + if ( array_key_exists( $action_index, $db_indexes ) ) { + $this->add_index( + $db_indexes[ $action_index ]['table_name'], + $db_indexes[ $action_index ]['index_name'], + $db_indexes[ $action_index ]['key_part'] + ); + + return; + } + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + + // The query length in migrate_payment_data() is about 500 chars for 1 entry (7 metas). + // The length of the query is defined by MAX_ALLOWED_PACKET variable, which defaults to 4 MB on MySQL 5.7. + // We increase MAX_ALLOWED_PACKET variable to fit the number of entries specified in self::CHUNK_SIZE. + $new_max_allowed_packet = 500 * self::CHUNK_SIZE; + $max_allowed_packet = (int) $wpdb->get_var( "SHOW VARIABLES LIKE 'MAX_ALLOWED_PACKET'", 1 ); + + if ( $new_max_allowed_packet > $max_allowed_packet ) { + $wpdb->query( "SET MAX_ALLOWED_PACKET = $new_max_allowed_packet" ); + } + + // Using OFFSET makes a way longer request, as MySQL has to access all rows before OFFSET. + // We follow very fast way with indexed column (id > $action_index). + $entry_ids = $wpdb->get_col( + $wpdb->prepare( + "SELECT entry_id FROM $this->temp_table_name + WHERE id > %d LIMIT %d", + $action_index, + self::TASK_CHUNK_SIZE + ) + ); + + $i = 0; + $entry_ids_count = count( $entry_ids ); + + // This cycle is twice less memory consuming than array_chunk( $entry_ids ). + while ( $i < $entry_ids_count ) { + $entry_ids_chunk = array_slice( $entry_ids, $i, self::CHUNK_SIZE ); + + $this->migrate_payment_data( implode( ',', $entry_ids_chunk ) ); + + $i += self::CHUNK_SIZE; + } + + if ( $new_max_allowed_packet > $max_allowed_packet ) { + $wpdb->query( "SET MAX_ALLOWED_PACKET = $max_allowed_packet" ); + } + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + } + + /** + * After process queue action. + * Set status as completed. + * + * @since 1.7.5 + */ + public function after_process_queue() { + + $tasks = wpforms()->obj( 'tasks' ); + + if ( ! $tasks || $tasks->is_scheduled( self::ACTION ) ) { + return; + } + + $this->drop_temp_table(); + + // Mark that migration is finished. + update_option( self::STATUS, self::COMPLETED ); + } + + /** + * Init migration. + * + * @since 1.7.5 + * @noinspection PhpUndefinedFunctionInspection + */ + private function init_migration() { + + // Get all payment entries. + $count = $this->get_unprocessed_payment_entry_ids(); + + if ( ! $count ) { + $this->drop_temp_table(); + } + + // We need 3 preliminary steps to create indexes. + $index = - 3; + + while ( $index < $count ) { + // We do not use Task class here as we do not need meta. So, we reduce the number of DB requests. + as_enqueue_async_action( + self::ACTION, + [ $index ], + Tasks::GROUP + ); + + $index = $index < 0 ? $index + 1 : $index + self::CHUNK_SIZE; + } + } + + /** + * Migrate payment data to the correct table. + * + * @param string $entry_ids_list List of entry ids. + * + * @since 1.7.5 + */ + private function migrate_payment_data( $entry_ids_list ) { + + global $wpdb; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( + "SELECT entry_id, form_id, user_id, status, meta, date + FROM {$this->entry_handler->table_name} + WHERE entry_id IN ( $entry_ids_list )" + ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + + $values = []; + + foreach ( $wpdb->last_result as $entry ) { + $meta = json_decode( $entry->meta, true ); + + if ( ! is_array( $meta ) ) { + continue; + } + + foreach ( $meta as $meta_key => $meta_value ) { + // If meta_key doesn't begin with `payment_`, prefix it. + $meta_key = strpos( $meta_key, 'payment_' ) === 0 ? $meta_key : "payment_$meta_key"; + + // We do not use $wpdb->prepare here, as it is 5 times slower. + // Prepare takes 1.3 sec to prepare 1000 entries (6000 meta records). + // It is incomparable with the two queries here. + // With sprintf, the total processing time of this method is 0.15 sec for 1000 entries. + $values[] = sprintf( + "( %d, %d, %d, '%s', '%s', '%s', '%s' )", + $entry->entry_id, + $entry->form_id, + $entry->user_id, + $entry->status, + $meta_key, + $meta_value, + $entry->date + ); + } + } + + // Bail out if there is no found payment meta. + if ( empty( $values ) ) { + return; + } + + $values = implode( ', ', $values ); + + // The following query length is about 500 chars for 1 entry (7 metas). + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->query( + "INSERT INTO {$this->entry_meta_handler->table_name} + ( entry_id, form_id, user_id, status, type, data, date ) + VALUES $values" + ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching + } + + /** + * Get entry ids which do not have relevant entry field records. + * Store them in a temporary table. + * + * @since 1.7.5 + * + * @return int + */ + private function get_unprocessed_payment_entry_ids() { + + global $wpdb; + + $this->drop_temp_table(); + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $wpdb->query( + "CREATE TABLE $this->temp_table_name + ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + entry_id BIGINT NOT NULL + )" + ); + + $wpdb->query( + "INSERT INTO $this->temp_table_name (entry_id) + SELECT entry_id + FROM {$this->entry_handler->table_name} + WHERE type = 'payment' + AND entry_id NOT IN + (SELECT entry_id FROM {$this->entry_meta_handler->table_name} WHERE type LIKE 'payment_%')" + ); + + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared + + return $wpdb->rows_affected; + } + + /** + * Drop a temporary table. + * + * @since 1.7.5 + */ + private function drop_temp_table() { + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.DirectDatabaseQuery.SchemaChange + $wpdb->query( "DROP TABLE IF EXISTS $this->temp_table_name" ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/PurgeSpamTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/PurgeSpamTask.php new file mode 100644 index 0000000..67336de --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/PurgeSpamTask.php @@ -0,0 +1,137 @@ +init(); + $this->hooks(); + } + + /** + * Init. + * + * @since 1.9.1 + */ + public function init() { + + /** + * Filter the interval for the purge spam task, in seconds. + * + * @since 1.9.1 + * + * @param int $interval Interval in seconds. + * + * @return int + */ + $this->interval = (int) apply_filters( 'wpforms_tasks_actions_purge_spam_task_interval', DAY_IN_SECONDS ); + + $this->tasks = wpforms()->obj( 'tasks' ); + + // Do not add a new one if scheduled. + if ( $this->tasks->is_scheduled( self::ACTION ) !== false ) { + + if ( $this->interval <= 0 ) { + $this->cancel(); + } + + return; + } + + $this->add_scan_task(); + } + + /** + * Add hooks. + * + * @since 1.9.1 + */ + public function hooks() { + + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Add a new task. + * + * @since 1.9.1 + */ + private function add_scan_task() { + + if ( $this->interval <= 0 ) { + return; + } + + $this->tasks->create( self::ACTION ) + ->recurring( time(), $this->interval ) + ->params() + ->register(); + } + + /** + * Purge spam action. + * + * @since 1.9.1 + */ + public function process() { + + $entry_obj = wpforms()->obj( 'entry' ); + + if ( ! $entry_obj ) { + return; + } + + $entry_obj->purge_spam(); + $this->log( 'Purge spam completed.' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/SquareSubscriptionTransactionIDTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/SquareSubscriptionTransactionIDTask.php new file mode 100644 index 0000000..25bc47e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/SquareSubscriptionTransactionIDTask.php @@ -0,0 +1,161 @@ +init(); + } + + /** + * Initialize. + * + * @since 1.9.5 + */ + private function init() { + + $this->hooks(); + } + + /** + * Register hooks. + * + * @since 1.9.5 + */ + private function hooks() { + + add_action( 'wpforms_process_payment_saved', [ $this, 'add_task' ], 999, 3 ); + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Add task to the queue. + * + * @since 1.9.5 + * + * @param string $payment_id Payment ID. + * @param array $fields Final/sanitized submitted field data. + * @param array $form_data Form data and settings. + */ + public function add_task( $payment_id, array $fields, array $form_data ) { + + $payment_obj = wpforms()->obj( 'payment' ); + + if ( ! $payment_obj ) { + return; + } + + $payment = $payment_obj->get( (int) $payment_id ); + + if ( ! $payment ) { + return; + } + + // Bail early if not Square subscription. + if ( $payment->gateway !== 'square' || $payment->type !== 'subscription' ) { + return; + } + + // Bail early if transaction_id is already set via webhooks. + if ( ! empty( $payment->transaction_id ) ) { + return; + } + + // Add task to the queue. + wpforms()->obj( 'tasks' ) + ->create( self::ACTION ) + ->once( time() + MINUTE_IN_SECONDS ) + ->params( (int) $payment_id ) + ->register(); + } + + /** + * Process the task. + * + * @since 1.9.5 + * + * @param int $meta_id Meta ID. + */ + public function process( $meta_id ) { + + $task_meta = new Meta(); + $meta = $task_meta->get( (int) $meta_id ); + + if ( empty( $meta ) || empty( $meta->data ) ) { + return; + } + + [ $payment_id ] = $meta->data; + + $payment = wpforms()->obj( 'payment' )->get( (int) $payment_id ); + + // Bail early if transaction_id is already set via webhooks. + if ( ! empty( $payment->transaction_id ) ) { + return; + } + + if ( ! Connection::get() ) { + return; + } + + $api = new Api( Connection::get() ); + + $subscription = $api->retrieve_subscription( $payment->subscription_id ); + + if ( $subscription === null ) { + return; + } + + $invoice = $api->get_latest_subscription_invoice( $subscription ); + + if ( $invoice === null ) { + return; + } + + $transaction_id = $api->get_latest_invoice_transaction_id( $invoice ); + + // Set transaction_id for the subscription in case it not received earlier. + wpforms()->obj( 'payment' )->update( + $payment_id, + [ 'transaction_id' => $transaction_id ], + '', + '', + [ 'cap' => false ] + ); + + // Log. + wpforms()->obj( 'payment_meta' )->add_log( + $payment_id, + sprintf( + 'Square subscription was created. (Invoice ID: %s)', + $invoice->getId() + ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/StripeLinkSubscriptionsTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/StripeLinkSubscriptionsTask.php new file mode 100644 index 0000000..5d1a65b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/StripeLinkSubscriptionsTask.php @@ -0,0 +1,310 @@ +hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + // Add a new task if none exists. + $tasks->create( self::ACTION ) + ->async() + ->register(); + } + + /** + * Register hooks. + * + * @since 1.8.7 + */ + private function hooks() { + + // Register the migrate action. + add_action( self::ACTION, [ $this, 'run' ] ); + } + + /** + * Run a process task. + * + * @since 1.8.7 + */ + public function run() { + + // Bail if no Stripe account is connected. + if ( ! Helpers::has_stripe_keys() ) { + $this->complete(); + + return; + } + + $link_subscriptions = $this->get_link_subscriptions(); + + // Bail if all subscription were processed. + if ( empty( $link_subscriptions ) ) { + $this->complete(); + + return; + } + + $this->api = new PaymentIntents(); + + $this->process( $link_subscriptions ); + } + + /** + * Process subscriptions. + * + * @since 1.8.7 + * + * @param array $subscriptions Array of subscriptions. + */ + private function process( array $subscriptions ) { + + foreach ( $subscriptions as $subscription ) { + + $this->update_latest_processed( $subscription->id ); + + // Use subscription mode to cover all cases (e.g. mode might be switched to test while upgrading). + $payment = $this->api->retrieve_payment_intent( $subscription->transaction_id, [ 'mode' => $subscription->mode ] ); + + // Bail if original payment was unsuccessful. + if ( is_null( $payment ) || empty( $payment->status ) || $payment->status !== 'succeeded' ) { + continue; + } + + $setup_intent_data = $this->prepare_setup_intent_data( $payment, $subscription ); + + // Bail if subscription has already had correct mandate. + if ( ! $setup_intent_data ) { + continue; + } + + $intent = $this->api->create_setup_intent( $setup_intent_data, [ 'mode' => $subscription->mode ] ); + + // Log failed subscription payment id. + if ( empty( $intent ) ) { + $this->log( 'Stripe Link Subscriptions: Failed ' . $subscription->id ); + } + } + } + + /** + * Update latest processed id. + * + * @since 1.8.7 + * + * @param int $id Subscription ID. + */ + private function update_latest_processed( int $id ) { + + update_option( self::LATEST_PROCESSED_OPTION, $id ); + } + + /** + * Get all Stripe subscriptions charged through Link. + * + * @since 1.8.7 + * + * @return array + */ + private function get_link_subscriptions(): array { + + global $wpdb; + + $latest_payment = (int) get_option( self::LATEST_PROCESSED_OPTION, 0 ); + $payments_table = wpforms()->obj( 'payment' )->table_name; + $paymentmeta_table = wpforms()->obj( 'payment_meta' )->table_name; + + $query[] = "SELECT p.* FROM {$payments_table} as p"; + $query[] = "INNER JOIN {$paymentmeta_table} as pm ON p.id = pm.payment_id"; + $query[] = "WHERE p.id > %d AND p.gateway = 'stripe' AND p.type = 'subscription' AND pm.meta_key = 'method_type' AND pm.meta_value = 'link'"; + + // Stripe API allows up to 100 read operations per second and 100 write operations per second in live mode, + // and 25 operations per second for each in test mode. + $query[] = 'ORDER BY p.id LIMIT 20'; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare + return $wpdb->get_results( $wpdb->prepare( implode( ' ', $query ), $latest_payment ), OBJECT_K ); + } + + /** + * Prepare Setup Intent data. + * + * @since 1.8.7 + * + * @param object $payment Stripe payment object. + * @param object $subscription Subscription object. + * + * @return array + */ + private function prepare_setup_intent_data( $payment, $subscription ): array { + + if ( ! empty( $payment->mandate ) ) { + $mandate = $this->api->retrieve_mandate( $payment->mandate, [ 'mode' => $subscription->mode ] ); + } + + $data = [ + 'payment_method_types' => [ 'link' ], + 'customer' => $payment->customer, + 'payment_method' => $payment->payment_method, + 'usage' => 'off_session', + 'confirm' => true, + ]; + + // Prepare default data in case mandate is not available. + if ( empty( $mandate ) ) { + + $subscription_meta = wpforms()->obj( 'payment_meta' )->get_all( $subscription->id ); + + $data['mandate_data'] = [ + 'customer_acceptance' => [ + 'type' => 'online', + 'online' => [ + 'ip_address' => $subscription_meta['ip_address']->value, + 'user_agent' => $subscription_meta['user_agent']->value, + ], + ], + ]; + + return $data; + } + + // Mandate is correct so no actions needed. + if ( $mandate->type !== 'single_use' ) { + return []; + } + + $data['mandate_data'] = [ + 'customer_acceptance' => [ + 'type' => 'online', + 'online' => [ + 'ip_address' => $mandate->customer_acceptance->online->ip_address, + 'user_agent' => $mandate->customer_acceptance->online->user_agent, + ], + ], + ]; + + return $data; + } + + /** + * Mark that the task is completed. + * + * @since 1.8.7 + */ + public function complete() { + + $this->log( 'Stripe Link Subscriptions: Completed' ); + + update_option( self::STATUS, self::COMPLETED ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Actions/WebhooksAutoConfigurationTask.php b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/WebhooksAutoConfigurationTask.php new file mode 100644 index 0000000..606d2e6 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Actions/WebhooksAutoConfigurationTask.php @@ -0,0 +1,139 @@ +webhooks_manager = new WebhooksManager(); + } + + /** + * Process the task. + * + * @since 1.8.4 + */ + public function init() { + + // Get a task status. + $status = get_option( self::STATUS ); + + // This task is run in \WPForms\Migrations\Upgrade184::run(), + // and started in \WPForms\Migrations\UpgradeBase::run_async(). + // Bail out if a task is not started or completed. + if ( ! $status || $status === self::COMPLETED ) { + return; + } + + // Mark that the task is in progress. + update_option( self::STATUS, self::IN_PROGRESS ); + + // Register hooks. + $this->hooks(); + + $tasks = wpforms()->obj( 'tasks' ); + + // Add new if none exists. + if ( $tasks->is_scheduled( self::ACTION ) !== false ) { + return; + } + + $tasks->create( self::ACTION )->async()->register(); + } + + /** + * Register hooks. + * + * @since 1.8.4 + */ + private function hooks() { + + add_action( self::ACTION, [ $this, 'process' ] ); + } + + /** + * Process the task. + * + * @since 1.8.4 + */ + public function process() { + + // If the Stripe account is connected, then try to configure webhooks. + if ( Helpers::has_stripe_keys() && $this->webhooks_manager->connect() ) { + $this->log( 'Stripe Payments: Webhooks configured during migration to WPForms 1.8.4.' ); + } + + // Mark that the task is completed. + update_option( self::STATUS, self::COMPLETED ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Meta.php b/wp-content/plugins/wpforms-lite/src/Tasks/Meta.php new file mode 100644 index 0000000..18f2439 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Meta.php @@ -0,0 +1,267 @@ +191 chars in JSON to AS, + * so we need to store them somewhere (and clean from time to time). + * + * @since 1.5.9 + */ +class Meta extends WPForms_DB { + + /** + * Primary key (unique field) for the database table. + * + * @since 1.5.9 + * + * @var string + */ + public $primary_key = 'id'; + + /** + * Database type identifier. + * + * @since 1.5.9 + * + * @var string + */ + public $type = 'tasks_meta'; + + /** + * Primary class constructor. + * + * @since 1.5.9 + */ + public function __construct() { + + parent::__construct(); + + $this->table_name = self::get_table_name(); + } + + /** + * Get the DB table name. + * + * @since 1.5.9 + * + * @return string + */ + public static function get_table_name() { + + global $wpdb; + + return $wpdb->prefix . 'wpforms_tasks_meta'; + } + + /** + * Get table columns. + * + * @since 1.5.9 + */ + public function get_columns() { + + return [ + 'id' => '%d', + 'action' => '%s', + 'data' => '%s', + 'date' => '%s', + ]; + } + + /** + * Default column values. + * + * @since 1.5.9 + * + * @return array + */ + public function get_column_defaults() { + + return [ + 'action' => '', + 'data' => '', + 'date' => gmdate( 'Y-m-d H:i:s' ), + ]; + } + + /** + * Create custom entry meta database table. + * Used in migration and on plugin activation. + * + * @since 1.5.9 + * + * @noinspection UnusedFunctionResultInspection + */ + public function create_table() { + + global $wpdb; + + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; + + $charset_collate = $wpdb->get_charset_collate(); + + $sql = "CREATE TABLE $this->table_name ( + id bigint(20) NOT NULL AUTO_INCREMENT, + action varchar(255) NOT NULL, + data longtext NOT NULL, + date datetime NOT NULL, + PRIMARY KEY (id) + ) $charset_collate;"; + + dbDelta( $sql ); + } + + /** + * Remove queue records for a defined period of time in the past. + * Calling this method will remove queue records that are older than $period seconds. + * + * @since 1.5.9 + * + * @param string $action Action that should be cleaned up. + * @param int $interval Number of seconds from now. + * + * @return int Number of removed tasks meta records. + */ + public function clean_by( $action, $interval ) { + + global $wpdb; + + if ( empty( $action ) || empty( $interval ) ) { + return 0; + } + + $table = self::get_table_name(); + $action = sanitize_key( $action ); + $date = gmdate( 'Y-m-d H:i:s', time() - (int) $interval ); + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + return (int) $wpdb->query( + $wpdb->prepare( + "DELETE FROM $table WHERE action = %s AND date < %s", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $action, + $date + ) + ); + } + + /** + * Inserts a new record into the database. + * + * @since 1.5.9 + * + * @param array $data Column data. + * @param string $type Optional. Data type context. + * + * @return int ID for the newly inserted record. Zero otherwise. + */ + public function add( $data, $type = '' ) { + + if ( empty( $data['action'] ) || ! is_string( $data['action'] ) ) { + return 0; + } + + $data['action'] = sanitize_key( $data['action'] ); + + if ( isset( $data['data'] ) ) { + $data['data'] = $this->prepare_data( $data['data'] ); + } + + if ( empty( $type ) ) { + $type = $this->type; + } + + return parent::add( $data, $type ); + } + + /** + * Prepare data. + * + * @since 1.7.0 + * + * @param array $data Meta data. + * + * @return string + */ + private function prepare_data( $data ) { + + $string = wp_json_encode( $data ); + + if ( $string === false ) { + $string = ''; + } + + /* + * We are encoding the string representation of all the data to make sure that nothing can harm the database. + * This is not an encryption, and we need this data later "as is", + * so we are using one of the fastest ways to do that. + * This data is removed from DB daily. + */ + // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode + return base64_encode( $string ); + } + + /** + * Retrieve a row from the database based on a given row ID. + * + * @since 1.5.9 + * + * @param int $meta_id Meta ID. + * + * @return null|object + * @noinspection PhpParameterNameChangedDuringInheritanceInspection + */ + public function get( $meta_id ) { + + $meta = parent::get( $meta_id ); + + if ( empty( $meta ) || empty( $meta->data ) ) { + return $meta; + } + + // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode + $decoded = base64_decode( $meta->data ); + + if ( $decoded === false || ! is_string( $decoded ) ) { + $meta->data = ''; + } else { + $meta->data = json_decode( $decoded, true ); + } + + return $meta; + } + + /** + * Get meta ID by action name and params. + * + * @since 1.7.0 + * + * @param string $action Action name. + * @param array $params Action params. + * + * @return int + */ + public function get_meta_id( $action, $params ) { + + global $wpdb; + + $table = self::get_table_name(); + $action = sanitize_key( $action ); + $data = $this->prepare_data( array_values( $params ) ); + + return absint( + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching + $wpdb->get_var( + $wpdb->prepare( + "SELECT id FROM $table WHERE action = %s AND data = %s LIMIT 1", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $action, + $data + ) + ) + ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Task.php b/wp-content/plugins/wpforms-lite/src/Tasks/Task.php new file mode 100644 index 0000000..daa5b0f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Task.php @@ -0,0 +1,377 @@ +action = sanitize_key( $action ); + $this->meta = new Meta(); + + if ( empty( $this->action ) ) { + throw new UnexpectedValueException( 'Task action cannot be empty.' ); + } + } + + /** + * Define the type of the task as async. + * + * @since 1.5.9 + * + * @return Task + */ + public function async() { + + $this->type = self::TYPE_ASYNC; + + return $this; + } + + /** + * Define the type of the task as recurring. + * + * @since 1.5.9 + * + * @param int $timestamp When the first instance of the job will run. + * @param int $interval How long to wait between runs. + * + * @return Task + */ + public function recurring( $timestamp, $interval ) { + + $this->type = self::TYPE_RECURRING; + $this->timestamp = (int) $timestamp; + $this->interval = (int) $interval; + + return $this; + } + + /** + * Define the type of the task as one-time. + * + * @since 1.5.9 + * + * @param int $timestamp When the first instance of the job will run. + * + * @return Task + */ + public function once( $timestamp ) { + + $this->type = self::TYPE_ONCE; + $this->timestamp = (int) $timestamp; + + return $this; + } + + /** + * Pass any number of params that should be saved to Meta table. + * + * @since 1.5.9 + * + * @return Task + */ + public function params() { + + $this->params = func_get_args(); + + return $this; + } + + /** + * Register the action. + * Should be the final call in a chain. + * + * @since 1.5.9 + * + * @return null|string Action ID. + */ + public function register() { + + $action_id = null; + + // No processing if ActionScheduler is not usable. + if ( ! wpforms()->obj( 'tasks' )->is_usable() ) { + return $action_id; + } + + // Save data to tasks meta table. + if ( $this->params !== null ) { + $this->meta_id = $this->meta->add( + [ + 'action' => $this->action, + 'data' => $this->params, + ] + ); + + if ( empty( $this->meta_id ) ) { + return $action_id; + } + } + + // Prevent 500 errors when Action Scheduler tables don't exist. + try { + + switch ( $this->type ) { + case self::TYPE_ASYNC: + $action_id = $this->register_async(); + break; + + case self::TYPE_RECURRING: + $action_id = $this->register_recurring(); + break; + + case self::TYPE_ONCE: + $action_id = $this->register_once(); + break; + } + } catch ( \RuntimeException $exception ) { + $action_id = null; + } + + return $action_id; + } + + /** + * Register the async task. + * + * @since 1.5.9 + * + * @return null|string Action ID. + * @noinspection PhpUndefinedFunctionInspection + */ + protected function register_async() { + + if ( ! function_exists( 'as_enqueue_async_action' ) ) { + return null; + } + + return as_enqueue_async_action( + $this->action, + /** + * Filter arguments passed to the async task. + * + * @since 1.9.4 + * + * @param array $args Arguments passed to the async task. + * + * @return array + */ + (array) apply_filters( + 'wpforms_tasks_task_register_async_args', + [ + 'tasks_meta_id' => $this->meta_id, + ] + ), + Tasks::GROUP + ); + } + + /** + * Register the recurring task. + * + * @since 1.5.9 + * + * @return null|string Action ID. + * @noinspection PhpUndefinedFunctionInspection + */ + protected function register_recurring() { + + if ( ! function_exists( 'as_schedule_recurring_action' ) ) { + return null; + } + + return as_schedule_recurring_action( + $this->timestamp, + $this->interval, + $this->action, + [ 'tasks_meta_id' => $this->meta_id ], + Tasks::GROUP + ); + } + + /** + * Register the one-time task. + * + * @since 1.5.9 + * + * @return null|string Action ID. + * @noinspection PhpUndefinedFunctionInspection + */ + protected function register_once() { + + if ( ! function_exists( 'as_schedule_single_action' ) ) { + return null; + } + + return as_schedule_single_action( + $this->timestamp, + $this->action, + [ 'tasks_meta_id' => $this->meta_id ], + Tasks::GROUP + ); + } + + /** + * Cancel all occurrences of this task. + * + * @since 1.6.1 + * + * @return null|bool|string Null if no matching action found, + * false if AS library is missing, + * true if scheduled task has no params, + * string of the scheduled action ID if a scheduled action was found and unscheduled. + * @noinspection PhpUndefinedFunctionInspection + */ + public function cancel() { + + if ( ! function_exists( 'as_unschedule_all_actions' ) ) { + return false; + } + + if ( $this->params === null ) { + as_unschedule_all_actions( $this->action ); + + return true; + } + + $this->meta_id = $this->meta->get_meta_id( $this->action, $this->params ); + + if ( $this->meta_id === null ) { + return null; + } + + return as_unschedule_action( $this->action, [ 'tasks_meta_id' => $this->meta_id ], Tasks::GROUP ); + } + + + + /** + * Log message to WPForms logger and standard debug.log file. + * + * @since 1.9.1 + * + * @param string $message The error message that should be logged. + */ + protected function log( $message ) { + + wpforms_log( $this->log_title, $message, [ 'type' => 'log' ] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/Tasks/Tasks.php b/wp-content/plugins/wpforms-lite/src/Tasks/Tasks.php new file mode 100644 index 0000000..661502c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/Tasks/Tasks.php @@ -0,0 +1,447 @@ +active_actions = $this->get_active_actions(); + + // Register WPForms tasks. + foreach ( $this->get_tasks() as $task ) { + + if ( ! is_subclass_of( $task, Task::class ) ) { + continue; + } + + new $task(); + } + + $this->hooks(); + } + + /** + * Hooks. + * + * @since 1.7.5 + */ + public function hooks() { + + add_action( 'delete_expired_transients', [ Transient::class, 'delete_all_expired' ], 11 ); + add_action( 'admin_menu', [ $this, 'admin_hide_as_menu' ], PHP_INT_MAX ); + + /* + * By default we send emails in the same process as the form submission is done. + * That means that when many emails are set in form Notifications - + * the form submission can take a while because of all those emails that are sending in the background. + * Since WPForms 1.6.0 users can enable a new option in Settings > Emails, + * called "Optimize Email Sending", to send email in async way. + * This feature was enabled for WPForms 1.5.9, but some users were not happy. + */ + if ( ! (bool) wpforms_setting( 'email-async', false ) ) { + add_filter( 'wpforms_tasks_entry_emails_trigger_send_same_process', '__return_true' ); + } + + add_action( EntryEmailsTask::ACTION, [ EntryEmailsTask::class, 'process' ] ); + add_action( 'action_scheduler_after_execute', [ $this, 'clear_action_meta' ], PHP_INT_MAX, 2 ); + + add_action( 'action_scheduler_begin_execute', [ $this, 'start_executing' ], 1 ); + add_action( 'action_scheduler_after_execute', [ $this, 'stop_executing' ], 1, 2 ); + } + + /** + * Public interface to check if WPForms task is executing. + * + * @since 1.9.4 + * + * @return bool + */ + public static function is_executing(): bool { + + return self::$task_executing; + } + + /** + * Set a flag to indicate that WPForms task is executing. + * + * @since 1.9.4 + * + * @param int $action_id The action ID to process. + */ + public function start_executing( $action_id ) { + + $action_id = (int) $action_id; + + if ( ! class_exists( 'ActionScheduler' ) ) { + return; + } + + $store = ActionScheduler::store(); + + if ( ! $store ) { + return; + } + + $action = $store->fetch_action( $action_id ); + + if ( ! $action || $action->get_group() !== self::GROUP ) { + return; + } + + self::$task_executing = true; + + /** + * Fires before WPForms task is executing. + * + * @since 1.9.4 + * + * @param int $action_id The action ID to process. + * @param ActionScheduler_Action $action Action Scheduler action object. + */ + do_action( 'wpforms_tasks_start_executing', $action_id, $action ); + } + + /** + * Set a flag to indicate that WPForms task is executing. + * + * @since 1.9.4 + * + * @param int $action_id The action ID to process. + * @param ActionScheduler_Action $action Action Scheduler action object. + */ + public function stop_executing( $action_id, $action ) { + + if ( ! $action || ! method_exists( $action, 'get_group' ) || $action->get_group() !== self::GROUP ) { + return; + } + + self::$task_executing = false; + + /** + * Fires after WPForms task is executed. + * + * @since 1.9.4 + * + * @param int $action_id The action ID to process. + * @param ActionScheduler_Action $action Action Scheduler action object. + */ + do_action( 'wpforms_tasks_stop_executing', $action_id, $action ); + } + + /** + * Get the list of WPForms default scheduled tasks. + * Tasks, that are fired under certain specific circumstances + * (like sending form submission email notifications) + * are not listed here. + * + * @since 1.5.9 + * + * @return Task[] List of tasks classes. + */ + public function get_tasks() { + + if ( ! $this->is_usable() ) { + return []; + } + + $tasks = [ + EntryEmailsMetaCleanupTask::class, + FormsLocatorScanTask::class, + AsyncRequestTask::class, + PurgeSpamTask::class, + ]; + + /** + * Filters the task class list to initialize. + * + * @since 1.5.9 + * + * @param array $tasks Task class list. + */ + return apply_filters( 'wpforms_tasks_get_tasks', $tasks ); + } + + /** + * Hide Action Scheduler admin area when not in debug mode. + * + * @since 1.5.9 + * @since 1.9.4 Does not hide the menu when some popular plugins are active. + */ + public function admin_hide_as_menu(): void { + + $plugin_exceptions = [ + 'action-scheduler/action-scheduler.php', + 'woocommerce/woocommerce.php', + 'wp-rocket/wp-rocket.php', + ]; + + /** + * Filters the list of plugins for which + * the Action Scheduler Tools -> Scheduled Actions menu item + * should remain visible. + * + * @since 1.9.4 + * + * @param array $plugin_exceptions List of plugin exceptions. + */ + $plugin_exceptions = apply_filters( 'wpforms_tasks_action_scheduler_tools_plugin_exceptions', $plugin_exceptions ); + $show_as_menu = + ( defined( 'WPFORMS_SHOW_ACTION_SCHEDULER_MENU' ) && constant( 'WPFORMS_SHOW_ACTION_SCHEDULER_MENU' ) ) || + wpforms_debug() || + ! empty( array_filter( $plugin_exceptions, 'is_plugin_active' ) ); + $hide_as_menu = ! $show_as_menu; + + /** + * Filter to redefine that WPForms hides Tools > Action Scheduler menu item. + * + * @since 1.5.9 + * + * @param bool $hide_as_menu Hide Tools > Action Scheduler menu item. + */ + if ( apply_filters( 'wpforms_tasks_admin_hide_as_menu', $hide_as_menu ) ) { + remove_submenu_page( 'tools.php', 'action-scheduler' ); + } + } + + /** + * Create a new task. + * Used for "inline" tasks, that require additional information + * from the plugin runtime before they can be scheduled. + * + * Example: + * wpforms()->obj( 'tasks' ) + * ->create( 'i_am_the_dude' ) + * ->async() + * ->params( 'The Big Lebowski', 1998 ) + * ->register(); + * + * This `i_am_the_dude` action will be later processed as: + * add_action( 'i_am_the_dude', 'thats_what_you_call_me' ); + * + * Function `thats_what_you_call_me()` will receive `$meta_id` param, + * and you will be able to receive all params from the action like this: + * $params = ( new Meta() )->get( (int) $meta_id ); + * list( $name, $year ) = $params->data; + * + * @since 1.5.9 + * + * @param string $action Action that will be used as a hook. + * + * @return Task + */ + public function create( $action ) { + + return new Task( $action ); + } + + /** + * Cancel all the AS actions for a group. + * + * @since 1.5.9 + * + * @param string $group Group to cancel all actions for. + */ + public function cancel_all( $group = '' ) { + + if ( empty( $group ) ) { + $group = self::GROUP; + } else { + $group = sanitize_key( $group ); + } + + if ( class_exists( 'ActionScheduler_DBStore' ) ) { + ActionScheduler_DBStore::instance()->cancel_actions_by_group( $group ); + $this->active_actions = $this->get_active_actions(); + } + } + + /** + * Whether ActionScheduler thinks that it has migrated or not. + * + * @since 1.5.9.3 + * + * @return bool + */ + public function is_usable() { + + // No tasks if ActionScheduler wasn't loaded. + if ( ! class_exists( 'ActionScheduler_DataController' ) ) { + return false; + } + + return ActionScheduler_DataController::is_migration_complete(); + } + + /** + * Whether task has been scheduled and is pending or in-progress. + * + * @since 1.6.0 + * + * @param string $hook Hook to check for. + * + * @return bool|null + * @noinspection PhpUndefinedFunctionInspection + */ + public function is_scheduled( $hook ) { + + if ( ! function_exists( 'as_has_scheduled_action' ) ) { + return null; + } + + if ( in_array( $hook, $this->active_actions, true ) ) { + return true; + } + + // Action is not in the array, so it is not scheduled or belongs to another group. + return as_has_scheduled_action( $hook ); + } + + /** + * Get all WPForms pending or in-progress actions. + * + * @since 1.7.3 + */ + private function get_active_actions() { + + global $wpdb; + + $group = self::GROUP; + $sql = "SELECT a.hook FROM {$wpdb->prefix}actionscheduler_actions a + JOIN {$wpdb->prefix}actionscheduler_groups g ON g.group_id = a.group_id + WHERE g.slug = '$group' AND a.status IN ( 'in-progress', 'pending' )"; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $results = $wpdb->get_results( $sql, 'ARRAY_N' ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + + return $results ? array_merge( ...$results ) : []; + } + + /** + * Delete a task by its ID. + * + * @since 1.9.6.1 + * + * @param int $action_id Action ID. + */ + public function delete_action( $action_id ): void { + + global $wpdb; + + $sql = "DELETE FROM {$wpdb->prefix}actionscheduler_actions WHERE action_id = %d"; + + // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $wpdb->query( $wpdb->prepare( $sql, (int) $action_id ) ); + // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + } + + /** + * Fetch action by ID. + * + * @since 1.9.6.1 + * + * @param int $action_id Action ID. + * + * @return null|ActionScheduler_Action + */ + public function fetch_action( $action_id ): ?ActionScheduler_Action { + + if ( ! class_exists( 'ActionScheduler' ) ) { + return null; + } + + return ActionScheduler::store()->fetch_action( $action_id ); + } + + /** + * Clear the meta after action complete. + * Fired before an action is marked as completed. + * + * @since 1.7.5 + * + * @param integer $action_id Action ID. + * @param ActionScheduler_Action $action Action name. + */ + public function clear_action_meta( $action_id, $action ) { + + $action_schedule = $action->get_schedule(); + + if ( $action_schedule === null || $action_schedule->is_recurring() ) { + return; + } + + $hook_name = $action->get_hook(); + + if ( ! $this->is_scheduled( $hook_name ) ) { + return; + } + + $hook_args = $action->get_args(); + + if ( ! isset( $hook_args['tasks_meta_id'] ) ) { + return; + } + + $meta = new Meta(); + + $meta->delete( $hook_args['tasks_meta_id'] ); + } +} diff --git a/wp-content/plugins/wpforms-lite/src/WPForms.php b/wp-content/plugins/wpforms-lite/src/WPForms.php new file mode 100644 index 0000000..de82f9e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/src/WPForms.php @@ -0,0 +1,623 @@ +form' or 'wpforms()->entry'. + * + * @since 1.5.7 + * + * @param string $name Name of the object to get. + * + * @return mixed|null + * @noinspection MagicMethodsValidityInspection + * @noinspection PhpDeprecationInspection + */ + public function __get( $name ) { + + if ( $name === 'smart_tags' ) { + _deprecated_argument( + 'wpforms()->smart_tags', + '1.6.7 of the WPForms plugin', + "Please use `wpforms()->obj( 'smart_tags' )` instead." + ); + } + + if ( $name === 'pro' ) { + _deprecated_argument( + 'wpforms()->pro', + '1.8.2.2 of the WPForms plugin', + 'Please use `wpforms()->is_pro()` instead.' + ); + + return wpforms()->is_pro(); + } + + return $this->get( $name ); + } + + /** + * Main WPForms Instance. + * + * Only one instance of WPForms exists in memory at any one time. + * Also, prevent the need to define globals all over the place. + * + * @since 1.0.0 + * + * @return WPForms + */ + public static function instance(): WPForms { + + if ( self::$instance === null || ! self::$instance instanceof self ) { + self::$instance = new self(); + + self::$instance->init(); + } + + return self::$instance; + } + + /** + * Initialize the plugin. + * + * @since 1.9.3 + * + * @noinspection UsingInclusionOnceReturnValueInspection + */ + private function init(): void { + + if ( self::is_restricted_heartbeat() ) { + return; + } + + $this->constants(); + $this->includes(); + + // Load Pro or Lite specific files. + if ( $this->is_pro() ) { + $this->registry['pro'] = require_once WPFORMS_PLUGIN_DIR . 'pro/wpforms-pro.php'; + } else { + require_once WPFORMS_PLUGIN_DIR . 'lite/wpforms-lite.php'; + } + + $this->hooks(); + } + + /** + * Setup plugin constants. + * All the path/URL-related constants are defined in the main plugin file. + * + * @since 1.0.0 + */ + private function constants(): void { + + $this->version = WPFORMS_VERSION; + + // Plugin Slug - Determine a plugin type and set slug accordingly. + // This filter is documented in \WPForms\WPForms::is_pro. + if ( apply_filters( 'wpforms_allow_pro_version', file_exists( WPFORMS_PLUGIN_DIR . 'pro/wpforms-pro.php' ) ) ) { + $this->pro = true; + + /** + * Pro plugin slug. + * + * @since 1.5.0 + */ + define( 'WPFORMS_PLUGIN_SLUG', 'wpforms' ); + } else { + /** + * Lite plugin slug. + * + * @since 1.5.0 + */ + define( 'WPFORMS_PLUGIN_SLUG', 'wpforms-lite' ); + } + } + + /** + * Include files. + * + * @since 1.0.0 + */ + private function includes(): void { + + $this->error_handler(); + + // Action Scheduler requires a special loading procedure. + require_once WPFORMS_PLUGIN_DIR . 'vendor/woocommerce/action-scheduler/action-scheduler.php'; + + // Autoload Composer packages. + require_once WPFORMS_PLUGIN_DIR . 'vendor/autoload.php'; + + // Base class and functions. + require_once WPFORMS_PLUGIN_DIR . 'includes/class-db.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/functions.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/fields/class-base.php'; + + $this->includes_magic(); + + // Global includes. + require_once WPFORMS_PLUGIN_DIR . 'includes/class-install.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/class-form.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/class-fields.php'; + // TODO: class-templates.php should be loaded in admin area only. + require_once WPFORMS_PLUGIN_DIR . 'includes/class-templates.php'; + // TODO: class-providers.php should be loaded in admin area only. + require_once WPFORMS_PLUGIN_DIR . 'includes/class-providers.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/class-process.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/class-widget.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/emails/class-emails.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/integrations.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/deprecated.php'; + + // Admin/Dashboard only includes, also in ajax. + if ( is_admin() ) { + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/admin.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-notices.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-menu.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/class-builder.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/functions.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-settings.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-welcome.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-editor.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-review.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-about.php'; + require_once WPFORMS_PLUGIN_DIR . 'includes/admin/ajax-actions.php'; + } + } + + /** + * Hooks. + * + * @since 1.9.0 + * @since 1.9.3 No longer static. + * + * @return void + */ + private function hooks(): void { + + add_action( 'plugins_loaded', [ self::$instance, 'objects' ] ); + add_action( 'wpforms_settings_init', [ self::$instance, 'reinstall_custom_tables' ] ); + } + + /** + * Include the error handler to suppress deprecated messages from vendor folders. + * + * @since 1.8.5 + */ + private function error_handler(): void { + + require_once WPFORMS_PLUGIN_DIR . 'src/ErrorHandler.php'; + + ( new ErrorHandler() )->init(); + } + + /** + * Including the new files with PHP 5.3 style. + * + * @since 1.4.7 + */ + private function includes_magic(): void { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + // Load the class loader. + $this->register( + [ + 'name' => 'Loader', + 'hook' => false, + ] + ); + + $this->register( + [ + 'name' => 'Integrations\SolidCentral\SolidCentral', + 'hook' => 'plugins_loaded', + 'priority' => 0, + 'condition' => ! empty( $_GET['ithemes-sync-request'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended + ] + ); + + /* + * Load admin components. Exclude from the frontend. + */ + if ( is_admin() ) { + add_action( 'wpforms_loaded', [ '\WPForms\Admin\Loader', 'get_instance' ] ); + } + + /* + * Properly init the providers' loader that will handle all the related logic and further loading. + */ + add_action( 'wpforms_loaded', [ '\WPForms\Providers\Providers', 'get_instance' ] ); + + /* + * Properly init the integration loader that will handle all the related logic and further loading. + */ + add_action( 'wpforms_loaded', [ '\WPForms\Integrations\Loader', 'get_instance' ] ); + } + + /** + * Setup objects. + * + * @since 1.0.0 + */ + public function objects(): void { + + // Global objects. + $this->registry['form'] = new WPForms_Form_Handler(); + $this->registry['process'] = new WPForms_Process(); + + /** + * Executes when all the WPForms stuff was loaded. + * + * @since 1.4.0 + */ + do_action( 'wpforms_loaded' ); + } + + /** + * Re-create plugin custom tables if they don't exist. + * + * @since 1.9.0 + * + * @param WPForms_Settings $wpforms_settings WPForms settings object. + */ + public function reinstall_custom_tables( WPForms_Settings $wpforms_settings ): void { + + if ( empty( $wpforms_settings->view ) ) { + return; + } + + // Proceed on the Settings plugin admin area page only. + if ( $wpforms_settings->view !== 'general' ) { + return; + } + + // Install on the current site only. + if ( ! DB::custom_tables_exist() ) { + DB::create_custom_tables(); + } + } + + /** + * Register a class. + * + * @since 1.5.7 + * + * @param array $class_data Class registration info. + * + * $class_data array accepts these params: name, id, hook, run, condition. + * - name: required -- class name to register. + * - id: optional -- class ID to register. + * - hook: optional -- hook to register the class on -- default wpforms_loaded. + * - run: optional -- method to run on class instantiation -- default init. + * - condition: optional -- condition to check before registering the class. + * + * @noinspection OnlyWritesOnParameterInspection + */ + public function register( $class_data ): void { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh, WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks + + if ( empty( $class_data['name'] ) || ! is_string( $class_data['name'] ) ) { + return; + } + + if ( isset( $class_data['condition'] ) && empty( $class_data['condition'] ) ) { + return; + } + + $full_name = $this->is_pro() ? '\WPForms\Pro\\' . $class_data['name'] : '\WPForms\Lite\\' . $class_data['name']; + $full_name = class_exists( $full_name ) ? $full_name : '\WPForms\\' . $class_data['name']; + + // Register an addon class. + if ( ! empty( $class_data['addon_class'] ) && ! empty( $class_data['addon_slug'] ) ) { + $is_initialized = wpforms_is_addon_initialized( $class_data['addon_slug'] ) && $this->is_pro(); + $full_name = $is_initialized ? $class_data['addon_class'] : $full_name; + $full_name = strpos( $full_name, '\\' ) !== 0 ? '\\' . $full_name : $full_name; + + // The core plugin classes have priority 10. + // Addon classes should be initialized after the core. + $class_data['priority'] = 100; + } + + // Bail if the class doesn't exist AND it is not an addon class. + if ( ! class_exists( $full_name ) && empty( $class_data['addon_class'] ) ) { + return; + } + + $id = $class_data['id'] ?? ''; + $id = $id ? preg_replace( '/[^a-z_]/', '', (string) $id ) : $id; + $hook = isset( $class_data['hook'] ) ? (string) $class_data['hook'] : 'wpforms_loaded'; + $run = $class_data['run'] ?? 'init'; + $priority = isset( $class_data['priority'] ) && is_int( $class_data['priority'] ) ? $class_data['priority'] : 10; + + $callback = function () use ( $full_name, $id, $run, $hook ) { + if ( ! class_exists( $full_name ) ) { + return; + } + + // Instantiate class. + $instance = new $full_name(); + + $this->register_instance( $id, $instance ); + + if ( $run && method_exists( $instance, $run ) ) { + $instance->{$run}(); + } + }; + + if ( $hook ) { + add_action( $hook, $callback, $priority ); + } else { + $callback(); + } + } + + /** + * Register any class instance. + * + * @since 1.8.6 + * + * @param string $id Class ID. + * @param object $instance Any class instance (object). + */ + public function register_instance( $id, $instance ): void { + + if ( $id && is_object( $instance ) && ! array_key_exists( $id, $this->registry ) ) { + $this->registry[ $id ] = $instance; + } + } + + /** + * Register classes in bulk. + * + * @since 1.5.7 + * + * @param array $classes Classes to register. + */ + public function register_bulk( $classes ): void { + + if ( ! is_array( $classes ) ) { + return; + } + + foreach ( $classes as $class ) { + $this->register( $class ); + } + } + + /** + * Get a class instance from a registry. + * Use \WPForms\WPForms::obj() instead. + * + * @since 1.5.7 + * @deprecated 1.9.1 + * + * @param string $name Class name or an alias. + * + * @return mixed|stdClass|null + */ + public function get( $name ) { + + if ( ! empty( $this->registry[ $name ] ) ) { + return $this->registry[ $name ]; + } + + // Backward compatibility for old public properties. + // Return null to save old condition for these properties. + if ( in_array( $name, $this->legacy_properties, true ) ) { + return $this->{$name} ?? null; + } + + return new stdClass(); + } + + /** + * Get a class instance from a registry. + * + * @since 1.9.1 + * + * @param string $name Class name or an alias. + * + * @return object|null + */ + public function obj( string $name ): ?object { + + return $this->registry[ $name ] ?? null; + } + + /** + * Get the list of all custom tables starting with `wpforms_*`. + * + * @since 1.6.3 + * + * @return array List of table names. + */ + public function get_existing_custom_tables(): array { + + // phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement + return DB::get_existing_custom_tables(); + } + + /** + * Whether the current instance of the plugin is a paid version, or free. + * + * @since 1.7.3 + * + * @return bool + */ + public function is_pro(): bool { + + /** + * Filters whether the current plugin version is pro. + * + * @since 1.7.3 + * + * @param bool $pro Whether the current plugin version is pro. + */ + return (bool) apply_filters( 'wpforms_allow_pro_version', $this->pro ); + } + + /** + * Whether the current request is restricted heartbeat. + * + * @since 1.9.3 + * + * @return bool + */ + public static function is_restricted_heartbeat(): bool { + + // phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + $action = $_POST['action'] ?? ''; + + if ( $action !== 'heartbeat' || ! wp_doing_ajax() ) { + return false; + } + + $screen_id = sanitize_key( $_POST['screen_id'] ?? '' ); + $data = array_map( 'sanitize_text_field', $_POST['data'] ?? [] ); + // phpcs:enable WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + + /** + * Filters the screen ids where the heartbeat is allowed. + * + * @since 1.9.3 + * + * @param array $allowed_screen_ids Screen IDs where the heartbeat is allowed. + */ + $allowed_screen_ids = (array) apply_filters( 'wpforms_heartbeat_allowed_screen_ids', self::HEARTBEAT_ALLOWED_SCREEN_IDS ); + + // Allow heartbeat requests on specific screens. + if ( in_array( $screen_id, $allowed_screen_ids, true ) ) { + return false; + } + + /** + * Filters whether the current request is restricted heartbeat. + * + * @since 1.9.3 + * + * @param bool $is_restricted Whether the current request is restricted heartbeat. + * @param string $screen_id Screen ID. + * @param array $data Heartbeat request data. + */ + return (bool) apply_filters( 'wpforms_is_restricted_heartbeat', true, $screen_id, $data ); + } + } +} + +// phpcs:ignore Universal.Namespaces.DisallowCurlyBraceSyntax.Forbidden, Universal.Namespaces.DisallowDeclarationWithoutName.Forbidden, Universal.Namespaces.OneDeclarationPerFile.MultipleFound +namespace { + + // Define `wpforms()` function only if it's not the restricted heartbeat request. + if ( ! WPForms\WPForms::is_restricted_heartbeat() ) { + + /** + * The function which returns the one WPForms instance. + * + * @since 1.0.0 + * + * @return WPForms\WPForms + */ + function wpforms(): WPForms\WPForms { // phpcs:ignore Universal.Files.SeparateFunctionsFromOO.Mixed + + return WPForms\WPForms::instance(); + } + + /** + * Adding an alias for backward-compatibility with plugins + * that still use class_exists( 'WPForms' ) + * instead of function_exists( 'wpforms' ), which is preferred. + * + * In 1.5.0 we removed support for PHP 5.2 + * and moved the former WPForms class to a namespace: WPForms\WPForms. + * + * @since 1.5.1 + */ + class_alias( 'WPForms\WPForms', 'WPForms' ); + } +} diff --git a/wp-content/plugins/wpforms-lite/templates/admin-bar-menu.php b/wp-content/plugins/wpforms-lite/templates/admin-bar-menu.php new file mode 100644 index 0000000..03632cc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin-bar-menu.php @@ -0,0 +1,50 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/challenge/builder.php b/wp-content/plugins/wpforms-lite/templates/admin/challenge/builder.php new file mode 100644 index 0000000..1ec5619 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/challenge/builder.php @@ -0,0 +1,45 @@ + +
              +
              +

              +

              + +
              + +
              +

              +

              +
              + +
              +

              + +
              + +
              +

              +

              + +
              +
              + +
              +
              +
              +

              +

              + +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/challenge/embed.php b/wp-content/plugins/wpforms-lite/templates/admin/challenge/embed.php new file mode 100644 index 0000000..a637aeb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/challenge/embed.php @@ -0,0 +1,121 @@ + +
              +
              + +

              +

              + embed it. Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + 'br' => [], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/creating-first-form/#display-form', 'WPForms Challenge Block', 'Add A Block' ) ) + ); + ?> +

              + + +

              +

              + + +
              +
              + +
              +
              + +
              +

              + + +

              +

              + %1$s %2$s %3$s %4$s. Share your success story with other WPForms users and help us spread the word by giving WPForms a 5-star rating (%5$s) on WordPress.org. Thanks for your support and we look forward to bringing you more awesome features.', 'wpforms-lite' ), + '', + _n( 'minute', 'minutes', absint( $minutes ), 'wpforms-lite' ), + '', + _n( 'second', 'seconds', absint( $minutes ), 'wpforms-lite' ), + '' + ), + [ + 'span' => [ + 'id' => [], + 'class' => [], + ], + 'b' => [], + 'i' => [ + 'class' => [], + ], + ] + ); + ?> +

              + + + + +
              + +
              + +
              +
              + +
              +
              +
              +

              +

              + How can we help you to be successful? Please send us your feedback. Our support team is standing by to help.', 'wpforms-lite' ), + absint( $minutes ), + _n( 'minute', 'minutes', absint( $minutes ), 'wpforms-lite' ) + ), + [ 'br' => [] ] + ); + ?> +

              + + is_pro() ) { ?> + + + +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/challenge/modal.php b/wp-content/plugins/wpforms-lite/templates/admin/challenge/modal.php new file mode 100644 index 0000000..86ce011 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/challenge/modal.php @@ -0,0 +1,78 @@ + +
              + +
              + + +

              + WPForms Challenge and get up and running within %1$d %2$s.', 'wpforms-lite' ), + absint( $minutes ), + _n( 'minute', 'minutes', absint( $minutes ), 'wpforms-lite' ) + ), + [ 'b' => [] ] + ); + ?> +

              +
                +
              • +
              • +
              • +
              • +
              • +
              • +
              +
              + + + +
              + <?php esc_html_e( 'Sullie the WPForms mascot', 'wpforms-lite' ); ?> +
              +

              +

              + ' . absint( $minutes ) . ':00' + ); + ?> +

              +
              +
              + +
              + + + + + + + + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/challenge/welcome.php b/wp-content/plugins/wpforms-lite/templates/admin/challenge/welcome.php new file mode 100644 index 0000000..3cbc2c8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/challenge/welcome.php @@ -0,0 +1,23 @@ + +
              +
              +

              +
              +
              + + + +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/components/chart.php b/wp-content/plugins/wpforms-lite/templates/admin/components/chart.php new file mode 100644 index 0000000..5c79b0c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/components/chart.php @@ -0,0 +1,37 @@ + +
              +
              +
              +
              +

              +

              +
              +
              + + +

              + : + 0 +

              + + +
              + +
              +
              + + [], + 'label' => [], + 'input' => [ + 'type' => [], + 'name' => [], + 'value' => [], + 'checked' => [], + 'aria-hidden' => [], + ], +]; + +// Hidden fields to be included in the form submission. +// `orderby` and `order` are always included by default. +$default_hidden_fields = [ 'orderby', 'order' ]; +$hidden_fields = array_merge( $default_hidden_fields, $hidden_fields ?? [] ); + +?> +
              + + '; + } + // phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized + ?> + + +
              +
              +
                + ' . implode( '
              • ', (array) $choices ) . '
              • ', $choices_allowed_html ); ?> +
              +
              + +
              +
              + + +
              +
              +
              +
              + + +
              + +
              + + +
              +

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

              +
              +
              + > + +
              +
              + > + +
              +
              +
              + + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/dashboard/widget/welcome.php b/wp-content/plugins/wpforms-lite/templates/admin/dashboard/widget/welcome.php new file mode 100644 index 0000000..b8fc980 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/dashboard/widget/welcome.php @@ -0,0 +1,13 @@ + +
              + +

              + +

              +

              + + + +
              + + + + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/empty-states/no-user-templates.php b/wp-content/plugins/wpforms-lite/templates/admin/empty-states/no-user-templates.php new file mode 100644 index 0000000..88f5ed7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/empty-states/no-user-templates.php @@ -0,0 +1,47 @@ + +
              + +

              + +

              + +

              +

              + + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/get-started.php b/wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/get-started.php new file mode 100644 index 0000000..2f65a9e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/get-started.php @@ -0,0 +1,55 @@ + [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + 'strong' => [], +]; + +?> +
              +

              +

              +

              + " alt=""> + + + + + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/no-payments.php b/wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/no-payments.php new file mode 100644 index 0000000..82c31b2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/empty-states/payments/no-payments.php @@ -0,0 +1,50 @@ + +
              +

              +

              +

              + + + + + + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/popup.php b/wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/popup.php new file mode 100644 index 0000000..ceeb2d2 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/popup.php @@ -0,0 +1,95 @@ + + +
              +
              +
              +

              +
              +

              + + +

              + +
              + + + + +
              + + +
              + + +
              +

              + [ + 'href' => [], + 'class' => [], + ], + ]; + + if ( ! empty( $args['user_can_edit_pages'] ) ) { + + printf( + wp_kses( /* translators: %1$s - video tutorial toggle CSS classes, %2$s - shortcode toggle CSS classes. */ + __( 'You can also embed your form manually or use a shortcode', 'wpforms-lite' ), + $allowed_tags + ), + 'tutorial-toggle wpforms-admin-popup-toggle', + 'shortcode-toggle wpforms-admin-popup-toggle' + ); + + } else { + + printf( + wp_kses( /* translators: %1$s - video tutorial toggle CSS classes, %2$s - shortcode toggle CSS classes. */ + __( 'You can embed your form using the WPForms block or a shortcode.', 'wpforms-lite' ), + $allowed_tags + ), + 'tutorial-toggle wpforms-admin-popup-toggle', + 'shortcode-toggle wpforms-admin-popup-toggle' + ); + + } + ?> +

              + + +
              + +
              + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/tooltip.php b/wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/tooltip.php new file mode 100644 index 0000000..9fd6167 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/form-embed-wizard/tooltip.php @@ -0,0 +1,43 @@ + +
              +
              + +

              +

              + embed it. Learn More', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + 'br' => [], + ] + ), + 'https://wpforms.com/docs/creating-first-form/#display-form' + ); + ?> +

              + + +

              +

              + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/forms/bulk-edit-tags.php b/wp-content/plugins/wpforms-lite/templates/admin/forms/bulk-edit-tags.php new file mode 100644 index 0000000..2e509ea --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/forms/bulk-edit-tags.php @@ -0,0 +1,42 @@ + +
              +
              +
              + +
              +
              + +
              +
              +
              + + +
              +
              +
              + + + + + + + + + + id === wp_unslash( $_GET['payment_id'] ); + ?> + + + + + + + + + +
              + + id ); ?> + + + date_created_gmt, 'M j, Y', true ); ?> + + type ] ) ? $renewal->type : $placeholder_na_text ); ?> + + total_amount, $renewal->currency ), true, $renewal->currency ); ?> + + status ] ); ?> +
              + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/payments/tablenav-filters.php b/wp-content/plugins/wpforms-lite/templates/admin/payments/tablenav-filters.php new file mode 100644 index 0000000..cd8c68b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/payments/tablenav-filters.php @@ -0,0 +1,38 @@ + [ + 'name' => [], + 'class' => [], + 'multiple' => [], + 'placeholder' => [], + 'data-settings' => [], + ], + 'option' => [ + 'value' => [], + 'selected' => [], + ], +]; + +?> +
              + + +
              + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/settings/email-heading.php b/wp-content/plugins/wpforms-lite/templates/admin/settings/email-heading.php new file mode 100644 index 0000000..5371983 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/settings/email-heading.php @@ -0,0 +1,23 @@ + +

              + +

              +

              + +

              + +obj( 'education_smtp_notice' )->get_template(); + +/* Omit closing PHP tag at the end of PHP files to avoid "headers already sent" issues. */ diff --git a/wp-content/plugins/wpforms-lite/templates/admin/settings/hcaptcha-description.php b/wp-content/plugins/wpforms-lite/templates/admin/settings/hcaptcha-description.php new file mode 100644 index 0000000..d413470 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/settings/hcaptcha-description.php @@ -0,0 +1,29 @@ + + +

              +

              + documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-set-up-and-use-hcaptcha-in-wpforms/', 'Settings - Captcha', 'hCaptcha Documentation' ) ) + ); + ?> +

              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/settings/recaptcha-description.php b/wp-content/plugins/wpforms-lite/templates/admin/settings/recaptcha-description.php new file mode 100644 index 0000000..b6205bb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/settings/recaptcha-description.php @@ -0,0 +1,57 @@ + + +

              +

              +
                +
              • + v2 Checkbox reCAPTCHA: Prompts users to check a box to prove they\'re human.', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +
              • +
              • + v2 Invisible reCAPTCHA: Uses advanced technology to detect real users without requiring any input.', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +
              • +
              • + v3 reCAPTCHA: Uses a behind-the-scenes scoring system to detect abusive traffic, and lets you decide the minimum passing score. Recommended for advanced use only (or if using Google AMP).', 'wpforms-lite' ), + [ 'strong' => [] ] + ); + ?> +
              • +
              +

              +

              + Read our walk through to learn more and for step-by-step directions.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/how-to-set-up-and-use-recaptcha-in-wpforms/', 'Settings - Captcha', 'reCAPTCHA Documentation' ) ) + ); + ?> +

              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/settings/specific-note.php b/wp-content/plugins/wpforms-lite/templates/admin/settings/specific-note.php new file mode 100644 index 0000000..7cd525c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/settings/specific-note.php @@ -0,0 +1,25 @@ + + +
              +
              + + + +
              + +
              + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/settings/turnstile-description.php b/wp-content/plugins/wpforms-lite/templates/admin/settings/turnstile-description.php new file mode 100644 index 0000000..6b6f819 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/settings/turnstile-description.php @@ -0,0 +1,29 @@ + + +

              +

              + documentation.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ), + esc_url( wpforms_utm_link( 'https://wpforms.com/docs/setting-up-cloudflare-turnstile/', 'Settings - Captcha', 'Turnstile Documentation' ) ) + ); + ?> +

              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/splash/footer.php b/wp-content/plugins/wpforms-lite/templates/admin/splash/footer.php new file mode 100644 index 0000000..09f50fd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/splash/footer.php @@ -0,0 +1,24 @@ + + +
              + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/splash/header.php b/wp-content/plugins/wpforms-lite/templates/admin/splash/header.php new file mode 100644 index 0000000..80b2f5b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/splash/header.php @@ -0,0 +1,25 @@ + +
              + +
              +

              + +

              +

              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/admin/splash/modal.php b/wp-content/plugins/wpforms-lite/templates/admin/splash/modal.php new file mode 100644 index 0000000..81e022b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/splash/modal.php @@ -0,0 +1,56 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/templates/admin/splash/section.php b/wp-content/plugins/wpforms-lite/templates/admin/splash/section.php new file mode 100644 index 0000000..d4aee71 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/admin/splash/section.php @@ -0,0 +1,61 @@ + + +
              +
              + %s', + esc_html__( 'New Feature', 'wpforms-lite' ) + ); + } + ?> +

              +

              + + +
              + $button ) { + $button_class = $button_type === 'main' ? 'wpforms-btn-orange' : 'wpforms-btn-bordered'; + + printf( + '%2$s', + esc_url( $button['url'] ), + esc_html( $button['text'] ), + esc_attr( $button_class ) + ); + } + ?> +
              + +
              + + +
              + +
              + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/antispam/also-available.php b/wp-content/plugins/wpforms-lite/templates/builder/antispam/also-available.php new file mode 100644 index 0000000..f0cb005 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/antispam/also-available.php @@ -0,0 +1,44 @@ + +
              + $block ) : + + if ( empty( $block['show'] ) ) { + continue; + } + + $slug = strtolower( $key ); + $class = ! empty( $block['class'] ) ? $block['class'] : ''; + ?> + +
              "> + + +
              +

              +

              + + + +
              +
              + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/field-context-menu.php b/wp-content/plugins/wpforms-lite/templates/builder/field-context-menu.php new file mode 100644 index 0000000..cfc35a0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/field-context-menu.php @@ -0,0 +1,128 @@ + + +
              +
                +
              • + + + + + + + +
              • + +
              • + + + + + + + +
              • + +
              • + + + + + + + +
              • + +
              • + +
              • + + + + + + + +
              • + +
              • + + + + + + + +
              • + +
              • + + + + + + + + +
                  +
                • + + + + + + + +
                • + +
                • + + + + + + + +
                • + +
                • + + + + + + + +
                • +
                +
              • + +
              • + +
              • + + + + + + + + + is_pro() ) : ?> + + +
              • +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/abort-message.php b/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/abort-message.php new file mode 100644 index 0000000..de4a0f0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/abort-message.php @@ -0,0 +1,32 @@ + + +
              + +

              +

              + + + + +
              + + + +
              + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/ie-notice.php b/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/ie-notice.php new file mode 100644 index 0000000..3b51c69 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/ie-notice.php @@ -0,0 +1,44 @@ + +
              + + Internet Explorer ® +

              + +

              + Our form builder is optimized for modern browsers.
              Please install Microsoft Edge or learn
              how to browse happy.', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + 'br' => [], + ] + ), + 'https://www.microsoft.com/en-us/edge', + 'https://browsehappy.com/' + ); + ?> +

              + +
              + + + +
              + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/mobile-notice.php b/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/mobile-notice.php new file mode 100644 index 0000000..60ad6b5 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/fullscreen/mobile-notice.php @@ -0,0 +1,31 @@ + +
              + + <?php esc_attr_e( 'Sullie the WPForms mascot', 'wpforms-lite' ); ?> + +

              +

              + +
              + + + + +
              + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/help.php b/wp-content/plugins/wpforms-lite/templates/builder/help.php new file mode 100644 index 0000000..3126140 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/help.php @@ -0,0 +1,145 @@ +'; +$url_parameters = add_query_arg( + [ + 'utm_campaign' => wpforms()->is_pro() ? 'plugin' : 'liteplugin', + 'utm_source' => 'WordPress', + 'utm_medium' => rawurlencode( 'Builder Help Modal' ), + 'utm_content' => '', + ], + '' +); + +$links_utm_medium = 'Builder Help Modal'; + +?> + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/builder/notifications/email-template-link.php b/wp-content/plugins/wpforms-lite/templates/builder/notifications/email-template-link.php new file mode 100644 index 0000000..c6fd422 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/notifications/email-template-link.php @@ -0,0 +1,28 @@ + + +

              + ', + '' + ); + ?> +

              + + + + + + +
              +
              +
              +
              + + +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/payment/sidebar.php b/wp-content/plugins/wpforms-lite/templates/builder/payment/sidebar.php new file mode 100644 index 0000000..0a6f607 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/payment/sidebar.php @@ -0,0 +1,38 @@ + + + + + <?php echo esc_attr( $name ); ?> + +
              + + + + +   + + + +
              + +
              + + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/revisions/list.php b/wp-content/plugins/wpforms-lite/templates/builder/revisions/list.php new file mode 100644 index 0000000..86917aa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/revisions/list.php @@ -0,0 +1,79 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-disabled.php b/wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-disabled.php new file mode 100644 index 0000000..f3b1700 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-disabled.php @@ -0,0 +1,26 @@ + + +
              +

              +

              + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-limited.php b/wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-limited.php new file mode 100644 index 0000000..3d611fa --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/revisions/notice-limited.php @@ -0,0 +1,35 @@ + + +
              +

              +

              + +

              + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/templates-item.php b/wp-content/plugins/wpforms-lite/templates/builder/templates-item.php new file mode 100644 index 0000000..1da5895 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/templates-item.php @@ -0,0 +1,130 @@ + +
              > + +
              + +
              + + Blank Form Template + + User Form Template + + Customizable Form Template + +
              + + <?php echo esc_attr( $template['name'] ); ?> Template + +
              + + +

              + +

              + + + + + + + + + + + + + + + + +

              + +

              + + +
              + + > + + + + + + + + + + + + + + +
              + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/themes/notices.php b/wp-content/plugins/wpforms-lite/templates/builder/themes/notices.php new file mode 100644 index 0000000..6657ca4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/themes/notices.php @@ -0,0 +1,115 @@ + 'wpforms-settings', + 'view' => 'general', + ], + admin_url( 'admin.php' ) +); + +?> + +
              + Want to customize your form styles without editing CSS?

              %1$s

              Go to Settings', 'wpforms-lite' ), + [ + 'h4' => [], + 'p' => [], + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_html( $notice_text ), + esc_url( $plugins_page_url ) + ); + + ?> +
              +
              + Form styles are disabled because Lead Form Mode is turned on.

              To change the styling for this form, edit the options in the Lead Forms settings.

              ', 'wpforms-lite' ), + [ + 'h4' => [], + 'p' => [], + 'a' => [ + 'href' => [], + ], + ] + ); + + ?> +
              +
              + Form styles are disabled because Conversational Forms addon is turned on.

              To change the styling for this form, edit the options in the Conversational Forms settings.

              ', 'wpforms-lite' ), + [ + 'h4' => [], + 'p' => [], + 'a' => [ + 'href' => [], + ], + ] + ); + + ?> +
              + +
              + Update Available

              %1$s

              Update Now', 'wpforms-lite' ), + [ + 'h4' => [], + 'p' => [], + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_html( $notice_text ), + esc_url( admin_url( 'plugins.php' ) ) + ); + + ?> +
              diff --git a/wp-content/plugins/wpforms-lite/templates/builder/themes/preview.php b/wp-content/plugins/wpforms-lite/templates/builder/themes/preview.php new file mode 100644 index 0000000..b227130 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/builder/themes/preview.php @@ -0,0 +1,90 @@ + + +
              +
              +
              +
              +
              +
              +
              + +
              +
              + + +
              +
              + + +
              +
              +
              +
              +
              + + +
              +
              + + +
              +
              +
              + +
                +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              +
              +
              +
              +
              + +
                +
              • + + +
              • +
              • + + +
              • +
              • + + +
              • +
              +
              +
              +
              + +
              + +
              +
              +
              +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/classic-notice.php b/wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/classic-notice.php new file mode 100644 index 0000000..3266dcc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/classic-notice.php @@ -0,0 +1,29 @@ + + +
              + $message, + ], + true + ) + ?> + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/notice.php b/wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/notice.php new file mode 100644 index 0000000..d17d3fd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/education/admin/edit-post/notice.php @@ -0,0 +1,33 @@ + + +
              +

              + +

              +

              + [ + 'href' => [], + 'target' => [], + 'rel' => [], + ], + ] + ); + ?> +

              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/education/admin/page.php b/wp-content/plugins/wpforms-lite/templates/education/admin/page.php new file mode 100644 index 0000000..5b24160 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/education/admin/page.php @@ -0,0 +1,107 @@ + + +
              +
              + +

              + + + + +

              + + +
              + +
              +
              + +
              +
              + <?php echo esc_attr( $image['title'] ); ?> + +
              +
              +
              + +
              +
              + +
              + +

              + +
                + +
              • + + +
              • + +
              +
              + +
              + $utm_medium, + 'content' => $utm_content, + ], + $license_level + ); + } else { + printf( + '%s', + esc_url( wpforms_admin_upgrade_link( $utm_medium, $utm_content ) ), + esc_html__( 'Upgrade to WPForms Pro', 'wpforms-lite' ) + ); + } + ?> +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/education/admin/payments/single-page.php b/wp-content/plugins/wpforms-lite/templates/education/admin/payments/single-page.php new file mode 100644 index 0000000..2fccc7c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/education/admin/payments/single-page.php @@ -0,0 +1,53 @@ + + +
              +
              + +
              +
              + Upgrade to Pro!', 'wpforms-lite' ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ), + esc_url( + wpforms_admin_upgrade_link( + 'Single Payment Page', + 'Stripe Pro - Remove Fees' + ) + ) + ); + ?> +
              +
              + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/education/admin/settings/smtp-notice.php b/wp-content/plugins/wpforms-lite/templates/education/admin/settings/smtp-notice.php new file mode 100644 index 0000000..a7cb192 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/education/admin/settings/smtp-notice.php @@ -0,0 +1,40 @@ + + +
              +
              +
              + Get WP Mail SMTP!', 'wpforms-lite' ), + esc_url( add_query_arg( 'page', 'wpforms-smtp', admin_url( 'admin.php' ) ) ), + wpforms_is_admin_page( 'builder' ) ? '_blank' : '_self' + ), + [ + 'a' => [ + 'href' => [], + 'rel' => [], + 'target' => [], + ], + ] + ); + ?> +
              +
              + +
              +
              diff --git a/wp-content/plugins/wpforms-lite/templates/emails/classic-body.php b/wp-content/plugins/wpforms-lite/templates/emails/classic-body.php new file mode 100644 index 0000000..81f5c5d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/emails/classic-body.php @@ -0,0 +1,22 @@ + + + + + + +
              diff --git a/wp-content/plugins/wpforms-lite/templates/emails/classic-field.php b/wp-content/plugins/wpforms-lite/templates/emails/classic-field.php new file mode 100644 index 0000000..84e3ae3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/emails/classic-field.php @@ -0,0 +1,17 @@ + + +
              {field_name}
              {field_value}
              +
              +
              + + + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/emails/classic-header.php b/wp-content/plugins/wpforms-lite/templates/emails/classic-header.php new file mode 100644 index 0000000..3f6dc56 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/emails/classic-header.php @@ -0,0 +1,57 @@ + + + +> + + + + + + <?php echo esc_html( $title ); ?> + +="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" bgcolor="#e9eaec" class=""> + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/emails/compact-header.php b/wp-content/plugins/wpforms-lite/templates/emails/compact-header.php new file mode 100644 index 0000000..3a6ed4c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/emails/compact-header.php @@ -0,0 +1,57 @@ + + + +> + + + + + + <?php echo esc_html( $title ); ?> + +="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" bgcolor="#e9eaec" class=""> + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/templates/emails/summary-header.php b/wp-content/plugins/wpforms-lite/templates/emails/summary-header.php new file mode 100644 index 0000000..b44e995 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/templates/emails/summary-header.php @@ -0,0 +1,57 @@ + + + +> + + + + + + <?php echo esc_html( $title ); ?> + +="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" bgcolor="#f8f8f8" class=""> + + + +

            rSpWb4 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-file.svg b/wp-content/plugins/wpforms-lite/assets/images/icon-file.svg new file mode 100644 index 0000000..c7215c7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/icon-file.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-graph.png b/wp-content/plugins/wpforms-lite/assets/images/icon-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..fda078b74e69ffc5f41c84774b923128dc242878 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^sz5Bu!3-p&GDANCsR;o-A+A7r=G=wULhs(a0~+=9 z+qeJ!|8L*9XYRtKj~+eVx?|VfyZ5f&xVdKirbWwE&Yr(`?}0<>H*H>mhI=?ZpEcCtymDii*CWY>;WGwXBG+^kIa zilJh5sA7^8d_Ss2X-PtIV^Elb)^p+SgLmy8LvDm$60c-UQE8zufjLn3oq=o$|@_i`M>_K%i$CJYD@< J);T3K0RW>3^3wnS literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-provider-constant-contact.png b/wp-content/plugins/wpforms-lite/assets/images/icon-provider-constant-contact.png new file mode 100644 index 0000000000000000000000000000000000000000..aa12d919badf9242571ae45db23e0ba142848627 GIT binary patch literal 4108 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 KMNUMnLSTZqo!JEd literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-provider-uncanny-automator.png b/wp-content/plugins/wpforms-lite/assets/images/icon-provider-uncanny-automator.png new file mode 100644 index 0000000000000000000000000000000000000000..fa9c74e95cf93a4df6746e58fee4d5fd18af4628 GIT binary patch literal 12324 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-tags.svg b/wp-content/plugins/wpforms-lite/assets/images/icon-tags.svg new file mode 100644 index 0000000..24b6b61 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/icon-tags.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-user-template.svg b/wp-content/plugins/wpforms-lite/assets/images/icon-user-template.svg new file mode 100644 index 0000000..4df755c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/icon-user-template.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/icon-wpforms.svg b/wp-content/plugins/wpforms-lite/assets/images/icon-wpforms.svg new file mode 100644 index 0000000..dcea610 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/icon-wpforms.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-answer-icon.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-answer-icon.svg new file mode 100644 index 0000000..ec53c7b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-answer-icon.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-error-icon.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-error-icon.svg new file mode 100644 index 0000000..2bdfd4f --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-error-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature-icon.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature-icon.svg new file mode 100644 index 0000000..a8b2913 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature.svg new file mode 100644 index 0000000..56dbbfb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-feature.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-form-empty-state.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-form-empty-state.svg new file mode 100644 index 0000000..e01151e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-form-empty-state.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-warning-icon.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-warning-icon.svg new file mode 100644 index 0000000..3321512 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/ai-warning-icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/back.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/back.svg new file mode 100644 index 0000000..2ca3bd3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-orange.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-orange.svg new file mode 100644 index 0000000..987a578 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-orange.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-red.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-red.svg new file mode 100644 index 0000000..70280dc --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/bulb-red.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/close.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/close.svg new file mode 100644 index 0000000..c259522 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/flag-usa.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/flag-usa.svg new file mode 100644 index 0000000..09266a1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/flag-usa.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/globe-americas.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/globe-americas.svg new file mode 100644 index 0000000..1bd4c8d --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/globe-americas.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-business.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-business.svg new file mode 100644 index 0000000..001f6c4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-business.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-capitals.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-capitals.svg new file mode 100644 index 0000000..0940f04 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-capitals.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-design.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-design.svg new file mode 100644 index 0000000..cb9dcd9 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-design.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-learn.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-learn.svg new file mode 100644 index 0000000..efddbf0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-learn.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-market.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-market.svg new file mode 100644 index 0000000..d8d65b1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-market.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-pizza.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-pizza.svg new file mode 100644 index 0000000..ca4cc9e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-pizza.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-restaurant.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-restaurant.svg new file mode 100644 index 0000000..1b75262 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-restaurant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-blue.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-blue.svg new file mode 100644 index 0000000..70ae1d0 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-purple.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-purple.svg new file mode 100644 index 0000000..aece2ca --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send-purple.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send.svg new file mode 100644 index 0000000..8cc5e7e --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-send.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop-sign.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop-sign.svg new file mode 100644 index 0000000..cda99d1 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop.svg new file mode 100644 index 0000000..4478faf --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-stop.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-sullie.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-sullie.svg new file mode 100644 index 0000000..7c46f93 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-sullie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-ticket.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-ticket.svg new file mode 100644 index 0000000..c4bbfb7 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/icon-ticket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/insert.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/insert.svg new file mode 100644 index 0000000..f62efbf --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/insert.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/leaf-maple.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/leaf-maple.svg new file mode 100644 index 0000000..1e16737 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/leaf-maple.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/pin-chat.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/pin-chat.svg new file mode 100644 index 0000000..b477da8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/pin-chat.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/store.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/store.svg new file mode 100644 index 0000000..ed5465c --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/store.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-hover.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-hover.svg new file mode 100644 index 0000000..c10af91 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-hover.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-inactive.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-inactive.svg new file mode 100644 index 0000000..37fee48 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-inactive.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-solid.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-solid.svg new file mode 100644 index 0000000..15afb7b --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down-solid.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down.svg new file mode 100644 index 0000000..052e6c3 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-up.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-up.svg new file mode 100644 index 0000000..42ec2fb --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/thumbs-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/tree-palm.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/tree-palm.svg new file mode 100644 index 0000000..fb739f8 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/tree-palm.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/unpin-chat.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/unpin-chat.svg new file mode 100644 index 0000000..1787e84 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/ai/unpin-chat.svg @@ -0,0 +1 @@ + diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/divi/wpforms-icon.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/divi/wpforms-icon.svg new file mode 100644 index 0000000..416a6dd --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/divi/wpforms-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/font/icon-wpforms.woff2 b/wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/font/icon-wpforms.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..22c1668927315d8615308d69f311bf1a2dcc6a67 GIT binary patch literal 2632 zcmV-O3b*xlPew8T0RR91018L|4*&oF02Z(S015H{0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/wpforms-icon.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/wpforms-icon.svg new file mode 100644 index 0000000..75bbe43 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/elementor/wpforms-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/gutenberg/block-preview.png b/wp-content/plugins/wpforms-lite/assets/images/integrations/gutenberg/block-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..e97d98f52d5668b84ffd4682e55a2b0d05e7bde1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/integrations/woocommerce/mail.svg b/wp-content/plugins/wpforms-lite/assets/images/integrations/woocommerce/mail.svg new file mode 100644 index 0000000..25e86b4 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/integrations/woocommerce/mail.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/jquery.minicolors.png b/wp-content/plugins/wpforms-lite/assets/images/jquery.minicolors.png new file mode 100644 index 0000000000000000000000000000000000000000..bccc2012af78a0358e893f004e0207cac8f9e642 GIT binary patch literal 68627 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 + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-connect/cloud.svg b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/cloud.svg new file mode 100644 index 0000000..5a967ef --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/cloud.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-connect/envelope.svg b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/envelope.svg new file mode 100644 index 0000000..fd4b498 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/envelope.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-connect/info-circle.svg b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/info-circle.svg new file mode 100644 index 0000000..cb90493 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/info-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-ai.svg b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-ai.svg new file mode 100644 index 0000000..44c3c91 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-ai.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-alt.svg b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-alt.svg new file mode 100644 index 0000000..2f80727 --- /dev/null +++ b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/lock-alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-connect/raised-hand.png b/wp-content/plugins/wpforms-lite/assets/images/lite-connect/raised-hand.png new file mode 100644 index 0000000000000000000000000000000000000000..8d493d6e307333be87b8555428941f8fda220c00 GIT binary patch literal 1881 zcmV-f2d4OmP)1g-Ra|NrOnOS(+2li6PQ%+6$Y^L_7q@4ferbEvCM-k&$=Y*VMR_>b>{ zzvnU6HVeCI>&I^e`SRI4PXyGR60lHc z^RrGqD_%TxT>Q@KP2d`fUEuXr3B%vbckg-q`|8`1picazE9Ml?6%gQ+*H2D7T_3?^ zlbtDh;T7+XP8_7`WR?nnM*Ln0i6uUN_0;u+tO%fmi~zra0MtU023p{Y4?Dcd|7nqx zqY4mDZ(t1&1PQT&_}mMtuN<%1cw(VYKEJQXw|R&RRIr!aTQ%8C{T&40z6k2B*Qepp z$g4<7L@7Y|TnaTl-N5J7#;x!kyx|Z$1But-U&oN+gSpH2r^LM zzK|?I`p=&}0D1v6gv-4c0+2P}Rs_K3Lbd@hn+T$e3`iz+CIgm*{2CcRmXw9;dx_ue zuH40OEwu4UlB58?*7w}PYNNOZlJ)QLi7y%0iU5)~;<}e#pPU^{fcCj(MfrYDvOyaa z0l5}%ZUoHLJtH7(nSow_cibYzB?8hmrxkhutq=@FK-LzaCeKz$0U1b}?!^r3)^0F) z-yaA_SOYr^6r&KF3sT;DF{e0_odWkvW|#rg)pV0KofR^yYI)7^-U!%`h=CDsUd9du zz+M9ZyI}?@5rEp6Xkfj&RsG&IAPc(Ju^W}~oo$;^ua{M3i5zokbPjy#Qf7QMH92NQAA*^_>{RM)pE|Z0+t9n!oXyDT_6? z+NF+I?5u_43Z&?B+yj}7dx`tnCg+5RMWoL#E9};51k}?_-Pp_V@LmL7QKXohP2w9O z^fO4V<^GixuoOgi1yL0190FiFEo|OfsG3qhib$)~pwMdp3b9-}vd{Z0U=V8cG~U2o z6ac6UD549oP_2J|$sKA^0q`>lu-|RqTSUH)xeIRBy^m>pultWW?g zwBI%W{Oi>jZBB?W3#O1`>@`XhNpX48KbMhUWf0kIb+}60Si~59brQr)8rF>rQ~*EM z+h9{AzQ1oL+QBvypbsypnz-!uj5dD;X@Z|GIK3?a&CTTdli$Lc-k2X@2VU9A4fg0n zZl;G8cNlz=(5N9tt3&{aj-l5L4nCj&^nnJayz!~eD|u`sc|E2;mF?()!@2zu2Uhdn8y4EUW zdje|#8a8?;V zFdKL!xLQO2XNpZ8QQv9e+4DzU_$C9bw(5XgMw5O>0eGc|k&rn7`!U+1Zndy&rMzBT zIJMYi`KIRv2-vX>)Wc1Ww+9skJTxLc)gpfRr0ZT9A;^Ypz45HzfJ4A^p*qEnk^A4i zo|g#3C?FmqwE#wrMNIM_4k!Tti39xm-@epfFy<^;@jN15=F0<|mn8~OwHXW05C2@q z(@sP3gdO!U`N-an%$HqG%g7%<0KRQNYFPs$p+(pe*Cx(-7)G8b$Aycc%~ww1;5v{1 zUnX*c)bdNKQ6#M{0>Upp=ALwO^rNA5(Cg80YODzd{WeZgTHq8m>_nQ#7qk+yz{Sp< z7sH}mn%@hRb@2boSVjNJIrJq1WUC4}<7z$VB+)|`NQ(mKezx% z=>?*r=YcJPLv0-W(WE^GD9|R4;Gl4&-%s;JZ}RvwkSx@A5JlMJ2$Gj`bZ9JR?NQcd zN%D!;NsVFB#?FKnvapqIgf@of3k#o#T z9(W;9Yq8!Uf(jsHV*|MVj9BmVl1&ut%DIgTDVJ=Nh#<%SRXj!stO;})_#MOxuEw`@ zp + + + diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-access-controls.png b/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-access-controls.png new file mode 100644 index 0000000000000000000000000000000000000000..2bca741c976ab0576530d9bb5590cc497f3679f8 GIT binary patch literal 16034 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-access-controls@2x.png b/wp-content/plugins/wpforms-lite/assets/images/lite-settings-access/screenshot-access-controls@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..005eef2cb9ef821559d1fdef4c852da4c86230e7 GIT binary patch literal 63932 zcmeFZbyS?qvNt+|Ly#l{*MwlfhTskfL4pR70Kpvs49?&T5FiA14GyEAz3;O_43 zGWW@T_kQm=ckL_Rch@@W{Be2>Yo3{|uCA`?uI{Q|4}r>x(s(%JI3N%RPgX`!1qAx@ zh=GlT3cTgfmwW_)z!u8#@829A9wCuPR-uxMj*Yc?*v+1Yvbv@U8o#?MfPy}kW| zgF{mb+t#+u_g|{tscEmTZ;p;lEG@4B3}`1JJl^NEOOX61!N z#{BB;h5LT3t#7=!z5kJsy|%Uf;Z|`ic?HF3=|2a557##~r=(@rI=U<_E>BI(lvmcw&o5T?EN*UXAD&)0 zyLrhezt_;w@9Q5NpP2fnW$;QyZfk4X!1S}Op-E6^)cMuz*wVhVyz<9SI?C_WcaJU# z+h^4SYV|`Kh8K1N^ZF6Pt6dYDNi|~|`{#Cv?Q6TIO5T2E&gSvve zprN%DyS|aNfib(Yl?^}*0tt&b+vpow7(37!7@L|yMV=khH$S5_HxhZK#-jjHuz784 zW-jAuXRPX~_}|osFZN`ag95s8>PZ?>_#mELK*3cVX}F#t9h4KNa$CsqNpp*cfxD7~5Mr+8G+ZaRS7o z`!gCF!Pj=i`VQ81@2#yZ|79%Ye~C={l82p>mPtY1&>Z?_5X}FfiLs=~&#O2?T@(6Oj{7z=QYa`0%0lfO^r42vvXUatfKjuXn;QX= z^6?26@o=;88*}QjaRVb^(>FBYXM3s7W5j19z-O$_$N#VPlGcWfe{B1&_D27U?Un4z zf%TC{$dL=GX|LcKbZS3GJ9(i2bjK{v4kn0t^W@biUSaz0uIa$@Khm$l7Is|K9`l0c<-FNdw1jY@$CENUGw8{obDL$ z0df8}ulQ+v?H)hLah8(GSB;r3oUX4dyx7+lJej<)p1jDY|L(MJJ2T)=z_l>s)LB(d z)V0-;$40FQekbv0$mYr80a+QW@B@OKy2zckMQA7jT2G5NR(@y%3|<#peA1v97uq@0 zpp}h${y(q((ZK&`;QxmPGQlxClVBsCTo%1 zHxgY~OfTt~Y~&~*A>vEbUEq&9@hbvvd(%Xa=zs;P3H@Wltx^<8(yerw`Fj@e9jC>~ z1+e@*M5m?_+xev56Hhzxc`jcAda@3-_*SRcbI@dLJde;%JvvY|IN6OH{u$1|5B_}| z$M^osA`LKlqcKXn4jsbhQU>eyz2dL?XrB&{CEDae1u}}%5eE{)psv87pY6opb}>Ia zV1Rx!$kP1n7fpEnQ(H%Z&=gd4a+;a%Ws`yX7Q#Fn*H;H!3%C5%vbvowWFsBOi=_fD%97IRg?^*T�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

          @B0vTQmR&0bZ!)t1&~zmK;AMk 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 vfsI0hA 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-authorize-net.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-authorize-net.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec8abacadf3ea5428a68b1db2567e7e05ee6808 GIT binary patch literal 4259 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 A!2kdN literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-aweber.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-aweber.png new file mode 100644 index 0000000000000000000000000000000000000000..13db8390801a75d4e785dc5a756a107005253c7e GIT binary patch literal 8542 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 YPvEMfHwAm{c>n+a07*qoM6N<$f{Th)tN;K2 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-brevo.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-brevo.png new file mode 100644 index 0000000000000000000000000000000000000000..dba4a1b1c4e3498554642058850cd355576cab38 GIT binary patch literal 12939 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-calculations.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-calculations.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3750820563e1356ea8aafb7ab5857c9cd53c28 GIT binary patch literal 1025 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k8A#4*i(3Pv+5>z-T>t<7|LoP<^s=_!1+j15 zfBbj*`pvr!>w9MYJ9%i@qBYlUKbXF7ZF$S&dyk)e`~KtJ{(JfMeO3F^-%W+b z&Rp8E=WzSv1)slu`~UX!-yQ4nYkU8H`+EM$%|BCGe^;i@U%9z=#?t2gxqrH={~p+} zVCCk&tL7Ef_5FYHaM^}kkDtEycj?T&Bd5<@x%I$XP@I8*+0@g;F{I+w+uN^$9ytiK zJxt?J6gr#b(e$t;z~=4W`1@grTOyYwtU6ip^1%0hpPvW2TsjjX?8KqiA^;&?luw)L zeR)-=_VLZS@X&?n8ZMlX~omEksmXKL*{jSthIB>v8WC zf67gp<#h^zCynPVik0{@1N>fzJp#i?T2 zr)A2qvrBctsU1PhDRGM4)05Y*X`Z+^nI&kKf_c^i8=-myo{iCS%D%k6qLB96q<4ST zyv;iQR#i;e=iYVn>_sv83PmQU+xmQ-PS`Y4xVb&2T>fPAkMGKA|2vjHRlO4td*-S% z-1R_z==`+^v)@-1SQYRg^vDT*73IpA^RKGJZTxiMaH)Q`py=wdp46Fw)3?Unm%a-O z$yn#Q?{n3^uDQLc)M-;mTw?#>yw`30MvbTT8C&1-P*Z9=wy*fo*C1V`44!-0_7i4y zEch6_;%QOu4pLSk>A0#QcBro*bB1mNLO~?z_SjEE`p)IkUW+ zxVTsB$g~JP&X$<3TNJh(De_R5EZ=-X=(J+vl_xJEc@GKQR%|~L|01RH+l378OUCWT zp8FPUIqOsXYpZHz$7Ox*8-hCE)ZiZ|<*v;6L1byt@qH?Ln0Fo2wf?4hP=SZW8S`~92hc|{lhYSO5_1kBS6p00i_>zopr0FX}Z2LJ#7 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-campaign-monitor.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-campaign-monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5d0b2a1895effae4dbad4b5cb96a2d28190a09 GIT binary patch literal 1772 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�|TX!F09IW-MZlW-nXKd8(GzNjh!{XHA93M zMhEgV(bK3Fw!WG$!H{F>$U&YvWY}ag0S}&VXHFtSv2$ACLi*^@Mw>n7i!{bYhopGi zU&`Pbo1wL{)Zm17Coo2P<{zl9XcsubUQjonnaglZ+Q%trBjb+NY;;$u^bX@~+@7 zH-8@FJyhx1iSvcTye{IC$t9E-Pi(o0O>D(X;YV)K8`^Tuzvg!IjQ~Wr)tp|hj5y%3jy}zMELQfTc`djhE*mDL zD`NvF1#q!=`&vWZ3D}(U5+Cm@->a^gF#xtex)IOZOHkc3VXkvh*9Ve7I3pL47K_-L z9_$vS{74hGzx(fXk3d{67aZ^oiV4h}X!1DY;AyG+dx}=gwf5o;cdFzgpxh#hS_z$I zOJ9|nv>s=hW09*O_7-EM)aA)C?oWu&QU<)$!v2@j5|A8Gti2m9HHL)9zzp*o@2Xsb zo%R!XWpv6YGHlYJ^?bEd#pK~k1*?7S3Eb>p2E7}7qCC=qg)@n0CiRB{$DOCGs(u#T z3HtW6|HY&+32hf@n_CB>mlRz`J%o0oeV9-#x=#O%K30h z9UBPMW7$gRRo19}(*4b22){twb0(z;U(9;hG+InV>#|cq=a*o_AN-O~9{PkjgHWMt zkHYO@dw8{iP~M1G`#ifbJ1nW}T7bs?S^T`W!1c?a;z4_9f93dr_>r%1&BuZ zjIA(SeinC^bY6~M(8%7F6{;qJ!sC~F4?viX-8Jeq~s z>RLEwnP1g9i%KDFkHzN&jzQLI`48I&xTc|Q7iiq}kd}zLw-PDAb~@8-|E1KGY#w1D zXdx@thfpG)>T(W*Wvi-HGv=298^3@eDan03r5;P{HSJ0^vZ2g8bP*>uyCO;zT#Q_ zBO)Ya3SU|ZJdHan#<2N5vsr&<{<3Td!-?>JR@Qz^MoCnHJ`3Tf zrQ)EI4w(HF)(P-hysKEblnJ2%EbZEhev%KYC?OADqzC-!{fU8@a$x(zktz}dDO;Qc z_sj|j3`HgI+2E2LNMcm>XlMMCeaZIes<_SPgM42ql#8Lo@_pw|>0woU3QcTX^ihWs zcPqKRh*#iK7Vk*nmo+Gfl}hsD$;-G#;EY!T1}GkS^p#$pP*#Qr7YS@!#~C)cLs59n zW;;GalFC2kJ9w&5i5N-`fW|)XXiTqWO`wuyW!W6)BKA=ntaIoo8B|#Lqz?|Dq8tOX zKI0IWB1nE_;gkZA+qux%_^)t)(FO{aq{q$P-1c4wx$0sjgogLE4mamlU|w}+2{ z-UsxnBHurX#;cB93Lk0Z6c&MG&?4H~e){7-)lnlmfuh(uQ2PFN#64Mnul}dkE89zs z2z|L+;GgF+ozLc5EE@;|L zFBcwb$S}1H_?6Xvacms7XuvG5 zx67BGI$Aq}YDsXJ(Vb1hi=3!VgdRjtd?Egs7dk)vOd79-Y=*~WfJNY#d`zdKVr@gm zSvct!scWS@?5*7(zoU~#G9$l+$Y+!nv7A9WCtNvh`g@d-wdY{k!fb&lkKC{&dtP`F z+sZsZ^v$c5bAti(ieD)%?5eNqvwAND{exBglzK(y)y^^{;f_uR{nx+-EmJQQ%~4b;(x z5S_*-F4GD05ToMYdW=#wWZ*%b+)|?ioM+H{@dH&*Qcx{}P&n^PKVNU~c!Rx&M$|LRjEq-Gk{n)gN%?ziQc=UwaL|GRoUAdI z994nR=p{7@`hT`Hv3ICFwTrRRzpt51X^P&D6^fx+zYKYN_V3XkuQo25$%K|v{)?Ek zXkx<&u)a)+QJN65$pPvU!(HT~g76H3z-ZR}Q8FZV(~f6vN{P;a0&8O>SB#R$F=wWf zV3xkSqRM-^TP)+aenM7(kn<-Gn-z~3QiuqJ7z)FFc%(u21PxhMoE%f z<{|CfR;x_k@})i>{K1msK}Q`LbQrq%d&T#!^SRXM?(XEDm`FYg@>%qt1{^BcipD!y z3|rvy`*OxO_@miy`Em^$*O@q;kWEO{p!51ziTCPyaV=kSW3Mcq;lJcKUdGy2w$S~w z20Y^;5b@E{LgRCVQf2z%W?mL4NM)TGxeJKeV2RFwv z*XmpeoK?E2(qGr^npen-Hokgssa9EacLD9MMy(RD;Wc1ij2e5gZO(_QKIH%8XClB4 zm^?GT_v|mq<7kZgaDA8GsWseDnc~?yW6sA{r8-n3a71UyGGuc9jVCEcQjEIlE=E?t7)Pv!!kEo5t-Y7lFT47bg*M{~-tY{)<>h z6>(y@jlw^xzTWs|VBb&aB~_~T<*IX+uE!lkvJ;ji`5hsmT30ryt?p8o*=l9-lN0_6 z)E5l>ZIrgLbbkoa^9ac886SLvCmKCIIJUGpyd51_ei&m>cAk}6J@)B%)jn*H`qOHj zJ~0X7Wipy=4W!Yca+j>b^Sv~{RizS6(xpLBs~a+Zfm2@OSv~QgD2ryeDX}X*{5kJr zy0#z1+e2^ogGeA~Uzd0v(g&ph!actI8j8ryVov{9h=@CxSawq$f?50Y|N`y(*E zaJ$W)^Nl|A74HU%s!!~IOrrZ0(yq#L-5st4IH7mL4%qTDdhw%{9Kt^~`qahC>vQ{% zyGkFNP}~1k^^ZTWfOsXtM5y{2D4;}JRwA{64MjsS75-u;=Lq?j8BR^T0&EnG{i7JV zuro1)!peSEmhZBh|4Y)Ab{_VDq=qU>-yWcrE(+pABH7qKn69zBH^zG8_6#e9`*%i6 zVL9sDI;$MSGR4FxcH>T9glx;BKP_1fGH;S(HRSd~+KafvRYJa>>&kUyS*Wo%U1CP1 z7v-?k(c&-5q;Al_dM?bAFoxOns=V0|xDITDL=tbV77UmxfSqdWtz>%G%P z3bn^EEm7V1l{YuL!*|86&h-p+1y3v!xc)rp)~QS>TXcW$P!jRv;4sJO8K z5+2Ti-jKq7Q6Grvi1zncieZ1W+r4eQqztN)9 z;16MqYDX$SVh^~TS5(r{xhv<$n*YXzTh!~t4HStmKbW!H8Y&8V8 z8l_ptJwiHqRvEJV3sJ`$vv6lxh8LDC^1SqR3Pc*y2!uX^jwqdCb|<|%7dVuNFrT4P z|8lonbpyy2~F0T ztic;efhr3)DQ~8}aw-lU&Q_gp6;&PqKQ$ln#=)e@@MZgUQyt1xt|`SGH%*iyIIO=I zp2zMc9r2ib0uOJetQA(d_j*L%@YJ5>;foB99rc^4qwf+|LNYIdM00z0nINu{h80UZ zs?U5*y!=f;0+=2eHuRwnZEcH^W5d=E?~w8{3nMdsLjh@8(N<4$)pN@|{D3cWyc9RL z^A*v*urg_Hy&D86!e-*qyv+S3OQoe1RmfD`vE!@kI`L!4Qun_Q80EmfOB*=&w$(v`UD76`0sn=zx#ma^}6_nZz8h^W&#khm|yA zNmr=CU{7Vv5$d^GvFLua?)$er$M=Z^Sw6b6-0;xfB@6irjN{+#!cC%!gp2>}!!7J= z<26oIy8M%ElCa~p-`e=#xg}$36H9@q8*Qm2IT_H+I`aS>16S+=D`Dj*!>-!;{;oeS zAuyi1m#C#g7Ua|0A`K3BDo798Kq}5mRk!hKZCb9_wt`vsge|BBMxLo3YiU5huN|nh z9cZg&pTivN>FRB*P3>{(#R7iV``f1t=t@eI8c5*|_8dI2>A8~Tt3npQqJ;Y|)mTvO z>W_f_iG&XBL%#q=n0pzyOciD)>O$K%c2Ny;-h5XNZuX-SwkS2V4@4K?tL|0@nt=c( zu_7LZX$nlzt_*IApXo;56wQInA!hl%da*kwQRZ}lgzZZ?D4K%Vto)pPzB?c(psUE$ z*lQe~4G2YDPV0L8CPx}6`W5Qn4U2gM5w&pLQVzI1^090VLSXB5#fnj`_}apL6LFby zH{aOkFVZxPE7r2JA@{c;?nRbLe>GcciQy@dhnMo~`=1(Rlt{7OyKcpB2Qk6%o>F-mV`ID9*nHBFPN-aaWWX0LzFi#?*k5ucZ zSvH@!iM36#v1F&Hm!p(O3Hzp6INvW%r8!H*Z#3qs%26eTkPPmBuASriDJjorbZV;Yj9L`vrO6 zd)^1EID2 zx06)xr`H56@y{=*V{)W}5toXSYRO@l-R1C84be&m`?_+k9u3o$Jd;gvFEbXXa_p$#ur}PMO_@{&XrqYlSH$A#2y}bQI-QLKl#e#K>PFW?!v* zA1MBvwF|NVp_zOVX$47Mq&-kI(!_dhQ>r!J25RJTRV=*LCTGiwWV681tp0MlUMhP(!bC65#VF_PUhBKW=Yd*B|>H~nb4*q}!Co%U& z-rxeW6C8iCDN)RL#KqNPzf!70nn}sYbyjQ+B<}0loJN}Ju)`KO=rOv_CcuMpxN|Dd9XR&yF%XeTF7C+P+updM%^Cb zBWEXIgOZ&+o^Jo%#7Q-chfj-L4Ai+vO7vcs#4_9kl`z*N{_#O?=!=51kn?*wexuzzI6Cc5*)(}6W< zSz$eZk^5q*3!(^l@e(xzgR9#9@|e4%GvRg+c3K+B?|*r za$hgpXhBz!D1tr@Dh>$RjT3$t1Ae#sga&RugqsHF#T!fYZz%!`4kXosl?0pYHudq5 zJcx1>)gw{n6^|v|jMp#gaGA1>@@sdPc;$RKz3rIGb>Hdfc3T@YMd|_*6aB4AN(@et z#i6afm{WEaqG)(piwg>Uj3La5tMFE-m7-r^$jkGkp2H?K(hmKRrK*sgr2Yy>!lf_aJ_R`&^G!h}D#wV(bawWPVK(YQzumFM z8t@qFw`+_}*(^{@^75G{?5(q6EM2+?Lu;;@@*h~@Vr`vRVr)$FizA^V$cS5ZE-q*y z9b1YfN4)$I?OD?v*2hUwEHJGEs| zc0MY870Dz&4|bvxoM5NAW~Z(+y>{w}Z}>A3+B_7&ZD!dkNrXjCP-zNbKE6MeWhV2q zF(GT`Bq?cPoY0%8j;ilxog$B4^5PlKRH(v~JxI|W4ry1R$X|iS&=iq)-O4Y=k5NAH z#r+bqsK>dgJ$$M=61pLK+#?7&Cr+UL>x=O(==AQ0#OmSnF#?q*UQU=V%fK&hfGqbD zs#fFtT5KsNo%(kJaje3~uN?@(e$H=a_$gIGRtsN$ZHF*}{l6an%OR z%0`(wZmb+z!FX)B0<$(&7X*gJCO=OCm(gF%Mo~KhHxX- z{fxfKCj%zq(c|$C9sRCtfm()3Gw4Fv&ARD&(ctvCs7y!t(1rg_;@Asz4e+V{pI`xW z(!Sq^uT24p^&6CLoBch)av_CJhU<$9@N4T8cO%y&Ryi2-;Vqo+A1^>zEQ%$|)Xd#3 zBp;@Gx``DiI?S*8uh_zC2Z3uD&tB#~yF4=chjYiUFE@LLVQcREXFd;q!5CX9r9IN? zU5L5O;J+FW3^(CPN=D8^ACJzFV3KScq4F&=t%b;^_36sbXq?1P!}WRUxgkV)EKB}q zjV7cjaM4!{d2~MVtzq>f1xSQx^BcBug|g&uNugjUQK-2OKj{;S!Wj#57_MA^2Bhy* zzDjI}!}v0Ad>Z$kdLxEr7@l~73@WJFQKWy>0_iXrzV^DB5RunIw>Z?CCP`fn51)dO zpH7+j_F{BwJm1aRzF=@nVKzBqk){g^i(()P3PGBpQxqe_Fo=Yb?m}>m`6ftC+6Q;?(+)t zvpa22h{^LbPdU90u{t=R3udEuxSbFV&_f;b{Pjb6e?Aa_U-t2)}aG)I9CMKu#wUDizL5Tj_c5aLyG zRyDZ8`p(^((|;|adCvW#S}2D@wk^MB8Nsg9vXQ}O3rKvUOJy36NJ=?B{qfePBRiiC z_|2-^lvVHSN){&DaUnk0MfjZ;N1>T+r3b<}>Ib&+cO1a=r;LiCTBnsxN4qA?MSUR& zU8aIL?*yAPrvK#2?9@+`nbYh?l~HE%%bz~drE;5}#%m~LY-zD9?2q@6z4`Wp@FsAM zS@J^}#X6>Kz~bVzP4Zf_oRrAc7FsMqmwnO{1z_I#6{Qiu&(E)?KQ3-YfGM9Hq)z2i zFfor$RBq3Eze%+qn!-QW0(SV_ry8*`of>D$p4u;gD3P~s{rhI9)Q}h0-;lnr=kMzC z@*Z}vgtj5$f2Htqa4>LJxV6dk+}oMVf5A>>cstLaYeSn`yu|JsR|qEnM~q(jYQYLl z*H!^Ki@fahri5aI5_Kuh(+=5`1V4{X*zrHi;Yp0cG5wDm1fKWf4)MkCLUY1#U~2$M zC}a-$e`;Wwai9WDo|R$-b+{yAq#Jh~zX>TR`8OdTK>zm#1_*wyMri-P?0?<=i#+eTB(SfXi2$dZ{F!jJmN5^5$BGss}ZGL{C}cd}(4Yh!1GME1%q$SrVcL9$b?KD_-9v*?WSX~^7brhav^NXvNZlUY=n=CH^19xL#X>DnBV}-G4;TF2M z!eH+1;oT!l+`|tJ5BK*Ej2!~^{_HO-Gj?zqW^Q2?t|7m18oN04-`hKD>%SLQHwZ4l zTRTh}??{%v^?@sX%N(^~jM&4evkneeyG$0@f8WXQu6x+h+9r#!V&)uV>hyr+W68AE z*|ySVE&g2J+-6OWvkKBo9Up9(-kO~G`M9{6l@aCQ`e4r>kca4fA#JW0Bkv9o_Qm z?O8!~O*ZDNFc(_)M;4u$m{lB0$@d6JbP9;uy{Bj67V>3$n%+CW8tkLKdtcSi{^BLI zq`HyST+Mp^*fogk;1?6&v8h?se$jXjmee7oSb)@7xf8^j? zZA*MdG-1t7z5g^)_vW2XL`tx;Pybz`5z9N@2pC)UP?nb&E7Upue$ZM=!&=L0W3ikr zHa6Z`v?c-!2=)?ahamjj#~v8g-9;0lGmA5 z<81+h0)4OFsCM>Ib^F#fd6%uNr)*ojq>rx1|1XIDtZX&Qwx4x4;4~-+yV!m*@kf?M zVkQrJ(;KmYPKMRZR(DmsJ)JrqN%0#F4g7lr-th)$nR_-URxM%Z_}sLA=Iez+f%X;q zQpd}R@8I8u14KUGDblKF4_+J$PasL%2BmMGS@{8KkP0S2$TM z(8%8s^CIX{d&ZXv^b17?S#~+@!jx0s+k&v|;itz`M;FgsuCZHDv?JvU*5v@MBCwE0 z>BNgbGUz&5{tSQ~RRYZdk!<>$!F>S4=hD3k;!7L=I`>}=RZa*&B|X=;{qP6WF(zMd z7DKWJl8x)HcjQNoLoTB~aU&EuGXNj>Ahs6&1&{s$x5ru%Kg1K}Ik?d&CgJ&x%)Jj6 zf{ilu!J61tP8#QoRy)rmq(MOs*b!do0QHD`W(Gjra4)|R*nO3Tq?kMbsN=@+nW=!5 z;ypX6-mW%jO8PFgLcc{=wB!`I`uv8~PdtS_O)JOy=U~tz8{6;e47fFxy6HVE>xOmx zKyA8&!0v04)^N&eTEdW}k9pP2FfOteSf)afn|wq9P-|)8q(Xl*A7b4oUJ@jY>Q}tp zRm1TVCGzf;rIoaIHJCq?LIup_8MZjrKZ7)#rN&)w@#j~0Hq_HJM96yzPYSCvpWtsC z_DBm_+%VDW&8j-EQE7O5oQItFBW}WI=*=fW=)hi~7I{LLe?2uR=+XCeKf*A<-O*A# z#P%G_$Uvq)op?oUPASH~a3Ei~@rRjjwKJht>{XSen;5Kwo7^M3D<`!Wa=o%O*IcdW zo}yHTth^2wxA@z_r78N$&u7>BD-Dm+zv!mk>M6TiKY`H6<2MZyg$RGnnlKtMIZF^) zh%a|RttLu_nGo}!&xd}Nxj>TBCVzhUd=ixhW!5h~hF+F;^PNMa{y=coH(gQ~pD2Zo ztvZVRa;$;U=JGlccCXnjk0|->=$5e3F> zo;6i!k$Dlm0YzNNHJ6|X(lw8lYhG4GFN%kNrVEu&fMz8afdr3dr<%#$2+*YZ(67Vdi+BS zGN?Yeu)fmM#YkChy^XG2)4Mj`TRRLj9ZbuuGUFky^)@NTd9>ZoZw;NL1RMFQwK;fH zhiH=w_xKg6^px8zfeM}KZjeQmjR8o<6! z6rxwYfi%tbXNo`6&f9Z@8=U6oTs#eqFXd5SvV(6c_357@R?TZN;E3N80M zR&D3^54d_i^!0n#|C0rnF1UO?1p`ju!wzwEji%cbf z6A*Clf256nr4q#eFY4YQ(Wj58T>3=VLxY)`Ir2^ERNKnyKt}C@}D|YaD#=%PI0)I zbncRX)|aPetwpumSB3=XvemEaVCS=*F`wL({uuY-7zQM2Cn~piF%rNsBTKemeuPw0Q_1G9vN~x@~+m`$e{jecV;3$x|`Y-)l*f> z8lhYz0Xw+~*|(ev;4ETfd4FvZU8a&%^ueQ7uLB0%&)) zNU2sw9;r!;YtSfIBkN^IZ=u$#tY-UqP?2hOBfcv6LF=*80XmfcjesxFj=--I=hB(l z%jtDJ3$kYa?YKt3X5B2%^-5%%KT-HeZue^XD@i3LA?JQNY}U$cx09Uy7>N}wVo~JBv|}b^aU%>HgunB z@E9Umh6Aaf3EJQ`V^54j=l7*p=qmnL_))9D5T zcxMUVV>9SVo1jp`9UzeI3F~h0wfSNJ6^Go)Aj&F$J{x`XlC(odRi|TUsvM;N(O+O?>d^TT z!^PF}lQqw6ZyF@J(g4F^Np1_V5vdIlVxAQgOI0o7qWh5D*U1E+#U zZBW@0DMSS}YR+qpIMWobk=!HxdM-6S_SgVFd3E25+dM@d){TT4a}+2)16Q*p7x@+;-KLizfb4DF}BT$+KHR>i8C@?=)k#XYBl0 zzZ6S)Uk!JN&1UTsK4pn>hkhH`$)2-4p7f4vm-Vr;91lx)fuEFFY*|u%6?dj{MEwEY zU!~r8XA$Zp`?j&C2j4*WgX8RnX-~cJa(k&YGq$RitdkNz@7lv1@3SUN^1hfi7UW&a zCdz9Oo4adxwv0|x1MZf7bNhB7)+6j`C}^7B4-=R&^!OCKxbeUjDcfN2XKti2CExS$ zJuP&`yCAjD5nl9x_I^!RmwEv2vuyK30U2=npt8hO%-ehW0Ct&yLUGP-Ms4?MxGybO zsSk9^j)YPdPn?p8v;+&o+<0GlYI@AaEF^dEOq%H{r$mn&YQ{>(s&S|Y-L8#(tSpo? z7yGJE6*I)>Cau%%C8#u51gV|#JmFEGigDHhm0QnjSEP%}T7(X$yy53ImRvWP_Bpjg z+g%gBQOlRcRBGEDOO6Q28Q`nA)@S>1gc%AA^*-oRJK-Y9m^WUb&@R>(?{rC4xsg3? z94@@R7Mx)8qzUh$GYUCp(We^cefd|P97$HRD3PIECh{8b{__aD%oO-s^Ych*pV}z` zf8!KM*4l>Q;3_#<8nw;*cvF5fO`x=Gwf34)tfMtLexQ;BRqie$!Cj^wKh&zbOv#n_L{G`baCop%}0->xh|%Vj=Dj|kNCFOz1>^I*oI<2LUe?G4$kt1Lezs>wJ-e$FB$-K z@GiSElU#&7WNiQ}ZdvtF=eTM!@S0F(YJD19G%1UX2gB%3+I1s?$v_J6`%X=bYeX&% zKIT5* z9Yn9g!Amg=SAERUH*zH~XQqW(z}$F5bSGql=#wyT4c^#~CyM}1KzgJh2_ns?U9>50 zKPTch{NW6_gZ2yn0@9NymLTx+b`KTfNyXNONHFx9d|>p%HQ0~FO9*^KGQNSz->8dM zS{qN$ytyljIyNMS#u5Dj1-lS-6iR5oCm~p@yc!Tc?QJqCQV<7ui>XN%r=+c-59|HA zlut!sAt-Yh15HZO%kn1NKF0ZA1$`JOq-{rcaUqbhmV(J$6DBG=H2vnNA#qov)Yc z(Ej(1k&>=QKl)`~J{)A9jW7WBT{(r8@7t97U*vrqMw4&JZZ@;WQUG=TsX73vOLm87DBV^o@j_#KiFLFzH+JNMULH(XL+3)`v)ifuVMP^ Y0UP*s@Zu>mqw9ZZH0q9K6_QB$AGpYb2LJ#7 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-constant-contact.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-constant-contact.png new file mode 100644 index 0000000000000000000000000000000000000000..cf748ed56c367c78af4e30a37dc389e79a69aca2 GIT binary patch literal 2045 zcmV005u}0{{R3yb+fl0001cP)t-s0000O zSnn8C?ig3@8CLBeQ12L5?f;(~7*_2WSMC^C?f;${8CC5VSnV5G?HE??|DPZlR_z&A z?*E?}|D75cR_*_v8~>de|DPQHo*Vz38W>gV|DGHFpBoug?*E?}|DPKFpBn$48~>jj z|DPKFpBw+38yHsY|DGCt8eJ0r001X+QchC`mL)&vV;)<23W zOE1Vuh=43GIdKM5*3-|#ZWFA%gO<%CXF zBmE%-ElgqTWE#UhU%ZHx$2e_Dva_{z?uOPt$DmKRzi$Vp>NZ7DGQU8aT9*ig%`YJr z-fsKek|9~c2yp}Z(d2^_<5gwFk1()whafj%rv;I2L4@c4N=0)7v0}}PQ26HAOwPoP z8={IAp#(S4se<^up;=eg5coL?f)L@=tKxNVLJJ7uHCt}zlZMm5dsV*#Lr3`;gP=K;rTaTaH#ANf*Pm2fs8n)UAjqjKoCBB^WlLG1-N0zg|~fw$P*lD z{wzF#0HxDL-B&;mU6-5TfzxP!o^V?V3v(L$hi_|4+aBN_tY;Oxg0BwDHmSyb$u ztOZzL!6G;ILzp>k(}cu-kY9_~an`ifLm0SSVIsc=f~FjCgq`gWD&Hx1@`0rO~bBn zZC=Gm{w;7fY0KYn?+hnn8>{|-9oTz8L44O^c1dSU#Ul%&dtv3YWYfG+T^QRkfO{Ks z_rVc<^4hpEUSuLrVE4^o#~d^l!=_NMD;!wmLi8=7VRlJj5ZrMqENp8-s~rA~z=xG6 z0X+-?+>2?is55gAnx>#|2r!)b(Wd4dg@VX`Sf!GY)KuPV;)k!cBs1mrs4Gp1`!jL? zeoLXhkP}hFteODzU5%7E1w(M5>C0%QoA1N{|?Z zaFD@ZtGGPP=-Nrp_9W`mo~Re0bIdWpr%bOd?M=KO{3cM$>+8kE{&L`B?__-;4=bTx zZlzWw?1VZgb_v$CvC-&F?bS&eeCPyGB2%oh^avB-%rW&Gnz+}P#r3%rUhAbw)Izfi z>r7ASah6v9lWK3wP#bY;&Etox!YJ_$7}ET;7RJbmn^u%dAqe&$&cLa5BPnU} zDuR!&aLR9oJOjVntEC(9HZo28&ynqDT!|FZS?@4LkNGTL=+!GGO3k zT3DP^=P?X)tm0@&VCf--rRhx@XJ9_|#%}-e-s#2pEx}Ze3~o_P1`H5Q5XjK?#1<$U zFvAuhuaQT`^juO$0MQL$f<^KO`Do zJX|3%+lhbtVSXISU-8W6{tU}aquHLV$n?(T$5l2n>!GzbJ{`n$K)dOI->~t$Z^q&( zz{Y&&*%{cOe>v?lY+15@@zca&T}2q;$N5kOx7$$S50rye#QB@2-s^=}{VC(4mm!`c zf88h%4&Un*B7@6@Z|UY=!tGs+2?tfEWtFf^Xh)&XeH!8(_W06*8M;uhLqJCV9F^5Yt2um8?!?% bq8Z-+An(&`oA-Z!00000NkvXXu0mjfH01MK literal 0 HcmV?d00001 diff --git a/wp-content/plugins/wpforms-lite/assets/images/addon-icon-conversational-forms.png b/wp-content/plugins/wpforms-lite/assets/images/addon-icon-conversational-forms.png new file mode 100644 index 0000000000000000000000000000000000000000..4cf2cf3419170f029545f8a4d4f514b24207c644 GIT binary patch literal 4049 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