Plugin Directory

Changeset 3721164


Ignore:
Timestamp:
09/30/2026 12:03:58 PM (3 weeks ago)
Author:
rstheme2017
Message:

Version 1.1.0 Updated

Location:
compactform
Files:
197 added
40 edited

Legend:

Unmodified
Added
Removed
  • compactform/trunk/assets/css/fcf7-theme.min.css

    r3719086 r3721164  
    1 .fcf7b-divider[data-pattern]{border:0;height:12px;background-color:var(--fcf7b-divider-color,var(--fcf7-field-border,var(--fcf7b-border,currentColor)));-webkit-mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x;mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x}.fcf7b-divider[data-pattern][data-pattern=wavy]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpath d='M-20 5 q 5 -5 10 0 t 10 0 t 10 0 t 10 0 t 10 0' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=zigzag]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpath d='M-5 2 L0 8 L5 2 L10 8 L15 2 L20 8 L25 2' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=curved]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpath d='M-10 7 A 5 4 0 0 1 0 7 A 5 4 0 0 1 10 7 A 5 4 0 0 1 20 7 A 5 4 0 0 1 30 7' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=slashes]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' preserveAspectRatio='none'%3E%3Cpath d='M1 9 L7 1' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=dots]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Ccircle cx='5' cy='5' r='2.4' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=squares]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Crect x='2.5' y='2.5' width='5' height='5' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=rhombus]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Cpath d='M5 1 L9 5 L5 9 L1 5 Z' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=triangles]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' preserveAspectRatio='none'%3E%3Cpath d='M1 9 L6 1 L11 9 Z' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=arrows]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='10' viewBox='0 0 8 10' preserveAspectRatio='none'%3E%3Cpath d='M1 1 L6 5 L1 9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=multiple]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Crect y='1' width='10' height='1.5'/%3E%3Crect y='4.25' width='10' height='1.5'/%3E%3Crect y='7.5' width='10' height='1.5'/%3E%3C/g%3E%3C/svg%3E")}:root{--fcf7-field-bg:#ffffff;--fcf7-field-color:#1e2126;--fcf7-field-border:#d5d8dc;--fcf7-field-radius:6px;--fcf7-field-pad-y:11px;--fcf7-field-pad-x:14px;--fcf7-field-font:14px;--fcf7-field-placeholder:#9aa1ad;--fcf7-label-color:#1e2126;--fcf7-label-font:14px;--fcf7-muted:#6b7280;--fcf7-accent:#1497ff;--fcf7-ring:rgba(20, 151, 255, 0.18);--fcf7-danger:#dc2626}.wpcf7-spinner{position:absolute;top:50%;transform:translateY(-50%)}.fcf7b-field-wrap:has(.wpcf7-spinner){position:relative}input[type=submit].wpcf7-form-control{background:var(--fcf7-accent);color:#fff;border:0;padding:9px 20px;border-radius:8px;font-weight:600}.fcf7-repeater-row>.fcf7b-field-wrap,.fcf7b-ms-panel>.fcf7b-field-wrap,form>.fcf7b-field-wrap{margin-bottom:var(--fcf7b-field-gap,20px)}.fcf7-repeater-row>.fcf7b-field-wrap:not(:has(~.fcf7b-field-wrap)),.fcf7b-ms-panel>.fcf7b-field-wrap:not(:has(~.fcf7b-field-wrap)),form>.fcf7b-field-wrap:not(:has(~.fcf7b-field-wrap)){margin-bottom:0}.fcf7b-field-wrap>.fcf7b-field{display:block}.fcf7b-field-wrap .fcf7b-field-label{display:block;margin:0 0 6px;font-size:var(--fcf7-label-font);font-weight:600;line-height:1.4;color:var(--fcf7-label-color)}.fcf7b-field-wrap .fcf7b-req{color:var(--fcf7-danger)}.fcf7b-field-wrap .fcf7b-desc{display:block;margin-top:6px;font-size:12.5px;line-height:1.45;color:var(--fcf7-muted)}.fcf7b-field-wrap .wpcf7-form-control-wrap{display:block;position:relative}.fcf7b-field-wrap .wpcf7-form-control-wrap:has(.wpcf7-acceptance){display:inline-block;margin-inline-end:8px}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(input,select,textarea){box-sizing:border-box;width:100%;max-width:100%;height:auto;margin:0;padding:var(--fcf7-field-pad-y) var(--fcf7-field-pad-x) var(--fcf7-field-pad-y) var(--fcf7-field-pad-left,var(--fcf7-field-pad-x));font-family:inherit;font-size:var(--fcf7-field-font);line-height:1.45;color:var(--fcf7-field-color);background-color:var(--fcf7-field-bg);border:1px solid var(--fcf7-field-border);border-radius:var(--fcf7-field-radius);box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(input,select,textarea):focus{outline:0;border-color:var(--fcf7-accent);box-shadow:0 0 0 3px var(--fcf7-ring)}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(input,select,textarea)::placeholder{color:var(--fcf7-field-placeholder);opacity:1}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(textarea){display:block;min-height:96px;resize:vertical}.fcf7b-field-wrap .wpcf7-form-control:where(select){appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236b7280' stroke-width='1.6'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px}.fcf7b-field-wrap .wpcf7-form-control:where(.wpcf7-radio,.wpcf7-checkbox,.wpcf7-acceptance){display:flex;flex-direction:column;gap:6px}.fcf7b-field-wrap .wpcf7-list-item{margin:0;color:var(--fcf7-field-color)}.fcf7b-field-wrap .wpcf7-list-item label,.fcf7b-field-wrap .wpcf7-list-item:not(:has(>label)){display:inline-flex;align-items:center;gap:7px;font-size:var(--fcf7-field-font);line-height:1.4;color:inherit;margin:0}.fcf7b-field-wrap .wpcf7-list-item input:where([type=checkbox],[type=radio]){flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:var(--fcf7-accent)}.fcf7b-heading{margin:0!important}.fcf7b-divider{display:block;width:100%;border:0;border-top:1px solid var(--fcf7b-divider-color,var(--fcf7-field-border));margin:0;box-sizing:border-box}.fcf7b-field-wrap:has(>.fcf7b-divider){align-self:stretch}.fcf7-field-icon{--fcf7-field-pad-left:38px;position:relative;display:block}.fcf7-field-icon>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:16px;line-height:1;color:var(--fcf7-muted);pointer-events:none;z-index:2;font-weight:400}.fcf7-field-icon:has(textarea)>i{top:18px;transform:none}.fcf7b-canvas-wrap .wpcf7-form-control:where(input,select,textarea){height:auto;min-height:0;vertical-align:baseline}.fcf7b-canvas-wrap input:where([type=checkbox],[type=radio]){appearance:auto;-webkit-appearance:auto;min-width:0;border:0;background:0 0;box-shadow:none;transition:none}.fcf7b-canvas-wrap input:where([type=checkbox],[type=radio])::before{content:none}
     1.fcf7b-divider[data-pattern]{border:0;height:12px;background-color:var(--fcf7b-divider-color,var(--fcf7-field-border,var(--fcf7b-border,currentColor)));-webkit-mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x;mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x}.fcf7b-divider[data-pattern][data-pattern=wavy]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpath d='M-20 5 q 5 -5 10 0 t 10 0 t 10 0 t 10 0 t 10 0' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=zigzag]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpath d='M-5 2 L0 8 L5 2 L10 8 L15 2 L20 8 L25 2' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=curved]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpath d='M-10 7 A 5 4 0 0 1 0 7 A 5 4 0 0 1 10 7 A 5 4 0 0 1 20 7 A 5 4 0 0 1 30 7' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=slashes]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' preserveAspectRatio='none'%3E%3Cpath d='M1 9 L7 1' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=dots]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Ccircle cx='5' cy='5' r='2.4' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=squares]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Crect x='2.5' y='2.5' width='5' height='5' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=rhombus]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Cpath d='M5 1 L9 5 L5 9 L1 5 Z' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=triangles]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' preserveAspectRatio='none'%3E%3Cpath d='M1 9 L6 1 L11 9 Z' fill='%23000'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=arrows]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='10' viewBox='0 0 8 10' preserveAspectRatio='none'%3E%3Cpath d='M1 1 L6 5 L1 9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=multiple]{--fcf7b-divider-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Crect y='1' width='10' height='1.5'/%3E%3Crect y='4.25' width='10' height='1.5'/%3E%3Crect y='7.5' width='10' height='1.5'/%3E%3C/g%3E%3C/svg%3E")}:root{--fcf7-field-bg:#ffffff;--fcf7-field-color:#1e2126;--fcf7-field-border:#d5d8dc;--fcf7-field-radius:6px;--fcf7-field-pad-y:11px;--fcf7-field-pad-x:14px;--fcf7-field-font:14px;--fcf7-field-placeholder:#9aa1ad;--fcf7-label-color:#1e2126;--fcf7-label-font:14px;--fcf7-muted:#6b7280;--fcf7-accent:#186af8;--fcf7-ring:rgba(20, 151, 255, 0.18);--fcf7-danger:#dc2626}.wpcf7-spinner{position:absolute;top:50%;transform:translateY(-50%)}.fcf7b-field-wrap:has(.wpcf7-spinner){position:relative}input[type=submit].wpcf7-form-control{background:var(--fcf7-accent);color:#fff;border:0;padding:9px 20px;border-radius:8px;font-weight:600}.fcf7-repeater-row>.fcf7b-field-wrap,.fcf7b-ms-panel>.fcf7b-field-wrap,form>.fcf7b-field-wrap{margin-bottom:var(--fcf7b-field-gap,20px)}.fcf7-repeater-row>.fcf7b-field-wrap:not(:has(~.fcf7b-field-wrap)),.fcf7b-ms-panel>.fcf7b-field-wrap:not(:has(~.fcf7b-field-wrap)),form>.fcf7b-field-wrap:not(:has(~.fcf7b-field-wrap)){margin-bottom:0}.fcf7b-field-wrap>.fcf7b-field{display:block}.fcf7b-field-wrap .fcf7b-field-label{display:block;margin:0 0 6px;font-size:var(--fcf7-label-font);font-weight:600;line-height:1.4;color:var(--fcf7-label-color)}.fcf7b-field-wrap .fcf7b-req{color:var(--fcf7-danger)}.fcf7b-field-wrap .fcf7b-desc{display:block;margin-top:6px;font-size:12.5px;line-height:1.45;color:var(--fcf7-muted)}.fcf7b-field-wrap .wpcf7-form-control-wrap{display:block;position:relative}.fcf7b-field-wrap .wpcf7-form-control-wrap:has(.wpcf7-acceptance){display:inline-block;margin-inline-end:8px}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(input,select,textarea){box-sizing:border-box;width:100%;max-width:100%;height:auto;margin:0;padding:var(--fcf7-field-pad-y) var(--fcf7-field-pad-x) var(--fcf7-field-pad-y) var(--fcf7-field-pad-left,var(--fcf7-field-pad-x));font-family:inherit;font-size:var(--fcf7-field-font);line-height:1.45;color:var(--fcf7-field-color);background-color:var(--fcf7-field-bg);border:1px solid var(--fcf7-field-border);border-radius:var(--fcf7-field-radius);box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(input,select,textarea):focus{outline:0;border-color:var(--fcf7-accent);box-shadow:0 0 0 3px var(--fcf7-ring)}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(input,select,textarea)::placeholder{color:var(--fcf7-field-placeholder);opacity:1}.fcf7b-field-wrap .wpcf7-form-control-wrap .wpcf7-form-control:where(textarea){display:block;min-height:96px;resize:vertical}.fcf7b-field-wrap .wpcf7-form-control:where(select){appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236b7280' stroke-width='1.6'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px}.fcf7b-field-wrap .wpcf7-form-control:where(.wpcf7-radio,.wpcf7-checkbox,.wpcf7-acceptance){display:flex;flex-direction:column;gap:6px}.fcf7b-field-wrap .wpcf7-list-item{margin:0;color:var(--fcf7-field-color)}.fcf7b-field-wrap .wpcf7-list-item label,.fcf7b-field-wrap .wpcf7-list-item:not(:has(>label)){display:inline-flex;align-items:center;gap:7px;font-size:var(--fcf7-field-font);line-height:1.4;color:inherit;margin:0}.fcf7b-field-wrap .wpcf7-list-item input:where([type=checkbox],[type=radio]){flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:var(--fcf7-accent)}.fcf7b-heading{margin:0!important}.fcf7b-divider{display:block;width:100%;border:0;border-top:1px solid var(--fcf7b-divider-color,var(--fcf7-field-border));margin:0;box-sizing:border-box}.fcf7b-field-wrap:has(>.fcf7b-divider){align-self:stretch}.fcf7-field-icon{--fcf7-field-pad-left:38px;position:relative;display:block}.fcf7-field-icon>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:16px;line-height:1;color:var(--fcf7-muted);pointer-events:none;z-index:2;font-weight:400}.fcf7-field-icon:has(textarea)>i{top:18px;transform:none}.fcf7b-canvas-wrap .wpcf7-form-control:where(input,select,textarea){height:auto;min-height:0;vertical-align:baseline}.fcf7b-canvas-wrap input:where([type=checkbox],[type=radio]){appearance:auto;-webkit-appearance:auto;min-width:0;border:0;background:0 0;box-shadow:none;transition:none}.fcf7b-canvas-wrap input:where([type=checkbox],[type=radio])::before{content:none}
  • compactform/trunk/assets/dashboard/index-rtl.css

    r3719086 r3721164  
    1 .fcf7-dashboard{--fcf7Primary:#2563eb;--fcf7PrimaryDark:#1d4ed8;--fcf7PrimaryFg:#fff;--fcf7Ok:#16a34a;--fcf7Body:#475569;--fcf7Title:#1e293b;--fcf7White:#fff;--fcf7Shade:#f1f5f9;--fcf7SoftAccent:#eff4ff;--fcf7Border:#e5e7eb;background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;margin:20px auto 0;max-width:1320px;min-height:calc(100vh - 120px);padding:0;position:relative;width:calc(100% - 20px)}.fcf7-dashboard *{box-sizing:border-box;margin:0;padding:0}.fcf7-dashboard a{box-shadow:unset!important;outline:none!important;text-decoration:none;transition:.25s}.fcf7-dashboard h1,.fcf7-dashboard h2,.fcf7-dashboard h3,.fcf7-dashboard h4,.fcf7-dashboard h5,.fcf7-dashboard h6{color:var(--fcf7Title);font-weight:600;line-height:1.25}.fcf7-dashboard,.fcf7-dashboard p{color:var(--fcf7Body);font-size:15px;line-height:1.5}.fcf7-dashboard svg{height:1em;width:1em}.fcf7-dashboard img{max-width:100%}.fcf7-dashboard-header{align-items:center;background-color:#fff;border-bottom:1px solid var(--fcf7Border);border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 30px;position:sticky;top:32px;z-index:2}.fcf7-dashboard-header .fcf7-logo{align-items:center;color:var(--fcf7Title);display:flex;font-size:18px;font-weight:700;gap:12px}.fcf7-dashboard-header .fcf7-logo-img{display:block;height:34px;max-width:190px;width:auto}.fcf7-dashboard-header .fcf7-logo-mark{align-items:center;background:var(--fcf7Primary);border-radius:10px;color:#fff;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.fcf7-dashboard-header .fcf7-logo-badge{background:var(--fcf7SoftAccent);border:1px solid #dbe4fb;border-radius:999px;color:var(--fcf7PrimaryDark);font-size:11px;font-weight:600;padding:2px 9px}.fcf7-dashboard-header .fcf7-doc-link{align-items:center;border:1px solid var(--fcf7Border);border-radius:8px;color:var(--fcf7Body);display:inline-flex;font-size:14px;font-weight:500;gap:8px;height:40px;padding:0 16px}.fcf7-dashboard-header .fcf7-doc-link svg{font-size:16px}.fcf7-dashboard-header .fcf7-doc-link:hover{background-color:var(--fcf7Primary);border-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages{display:grid;flex-grow:1;grid-template-columns:260px 1fr}.fcf7-dashboard-pages .fcf7-dashboard-sidebar{align-self:flex-start;padding:26px;position:sticky;top:113px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list{display:flex;flex-direction:column;gap:8px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item{align-items:center;background-color:var(--fcf7Shade);border:none;border-radius:8px;color:var(--fcf7Title);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;line-height:1.25;padding:11px 16px;transition:.2s}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item.fcf7-tab-item-active,.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item:hover{background-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-icon{align-items:center;display:flex;font-size:18px;justify-content:center}.fcf7-dashboard-pages .fcf7-dashboard-content{border-right:1px solid var(--fcf7Border);min-width:0;padding:30px}@keyframes fcf7TabFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fcf7-dashboard .fcf7-banner{align-items:center;background:linear-gradient(-120deg,#172e6e,#1e46b8 55%,#2f6fe4);border-radius:12px;color:#fff;display:flex;gap:24px;justify-content:space-between;margin-bottom:30px;padding:28px 32px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text h2{color:#fff;font-size:22px;margin-bottom:8px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text p{color:hsla(0,0%,100%,.88);max-width:620px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat{align-items:center;background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.22);border-radius:12px;display:flex;flex:0 0 auto;flex-direction:column;min-width:104px;padding:14px 20px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num{font-size:30px;font-weight:700;line-height:1}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num span{font-size:17px;font-weight:600;opacity:.65}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-label{font-size:11px;letter-spacing:1px;margin-top:6px;opacity:.85;text-transform:uppercase}.fcf7-dashboard .fcf7-welcome-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.fcf7-dashboard .fcf7-info-card{background:var(--fcf7SoftAccent);border:1px solid #e3ebfb;border-radius:12px;padding:26px}.fcf7-dashboard .fcf7-info-card .fcf7-card-icon{align-items:center;background:#fff;border-radius:12px;color:var(--fcf7Primary);display:inline-flex;font-size:20px;height:48px;justify-content:center;margin:0 0 15px;width:48px}.fcf7-dashboard .fcf7-info-card .fcf7-card-title{font-size:17px;margin:0 0 8px}.fcf7-dashboard .fcf7-info-card .fcf7-card-desc{font-size:13.5px}.fcf7-dashboard .fcf7-info-card .fcf7-card-link{align-items:center;color:var(--fcf7PrimaryDark);display:inline-flex;font-weight:600;gap:5px;margin:15px 0 0}.fcf7-dashboard .fcf7-info-card .fcf7-card-link span{align-items:center;display:flex;justify-content:center}.fcf7-dashboard .fcf7-info-card .fcf7-card-link:hover{color:var(--fcf7Primary)}.fcf7-dashboard .fcf7-switcher-wrapper{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher{display:inline-block;height:22px;position:relative;width:40px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]{height:0;opacity:0;width:0}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider{background:var(--fcf7Primary)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider:before{transform:translateX(-18px)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:disabled+.fcf7-switch-slider{background:var(--fcf7Border);cursor:not-allowed}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider{background:#cbd5e1;border-radius:26px;cursor:pointer;inset:0;position:absolute;transition:all .25s ease}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider:before{background:#fff;border-radius:50%;bottom:3px;box-shadow:0 1px 3px rgba(0,0,0,.25);content:"";height:16px;right:3px;position:absolute;transition:all .25s ease;width:16px}.fcf7-dashboard .fcf7-elements-header{align-items:center;border-bottom:1px solid var(--fcf7Border);display:flex;gap:16px;justify-content:space-between;margin:0 0 26px;padding:0 0 20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-header-right{align-items:center;display:flex;gap:15px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-title{font-size:20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-info{font-size:14px;margin:5px 0 0}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter{border:1px solid var(--fcf7Border);border-radius:8px;font-size:14px;height:40px;padding:0 12px 0 30px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search{position:relative}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search span{color:#94a3b8;display:flex;position:absolute;left:12px;top:50%;transform:translateY(-50%)}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input{border:1px solid var(--fcf7Border);border-radius:8px;height:40px;padding:0 14px 0 30px;width:220px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-action-area{align-items:center;display:flex;gap:16px;justify-content:space-between}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list{background-color:var(--fcf7Shade);border-radius:8px;display:flex;gap:5px;padding:5px}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button{background:transparent;border:none;border-radius:6px;color:var(--fcf7Title);cursor:pointer;font-size:14px;line-height:1;padding:8px 14px;transition:.2s}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button.fcf7-tab-item-active,.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button:hover{background-color:#fff}.fcf7-dashboard .fcf7-elements-action-btns{display:flex;gap:10px}.fcf7-dashboard .fcf7-save-btn{background:var(--fcf7Primary);border:1px solid transparent;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;line-height:1;min-width:130px;padding:10px 16px}.fcf7-dashboard .fcf7-save-btn:disabled{cursor:default;opacity:.7}.fcf7-dashboard .fcf7-save-btn--saved{background:var(--fcf7Ok)}.fcf7-dashboard .fcf7-save-btn--error{background:#dc2626}.fcf7-dashboard .fcf7-elements-tab-content{margin:20px 0 0}.fcf7-dashboard .fcf7-elements-group{background-color:var(--fcf7Shade);border-radius:12px;padding:10px}.fcf7-dashboard .fcf7-elements-group:not(:last-child){margin-bottom:20px}.fcf7-dashboard .fcf7-elements-group-header{align-items:center;background-color:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:10px;padding:16px 20px}.fcf7-dashboard .fcf7-elements-group-header .fcf7-elements-group-title{font-size:16px}.fcf7-dashboard .fcf7-elements-group-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.fcf7-dashboard .fcf7-element-card{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:15px 18px;transition:opacity .2s ease}.fcf7-dashboard .fcf7-element-card.is-inactive{opacity:.65}.fcf7-dashboard .fcf7-element-card .fcf7-element-title{align-items:center;display:flex;font-size:15px;gap:8px;margin:0 0 8px}.fcf7-dashboard .fcf7-element-card .fcf7-element-meta{align-items:center;display:flex;font-size:13px;gap:10px}.fcf7-dashboard .fcf7-element-card .fcf7-element-metalink{color:var(--fcf7Primary);font-weight:600}.fcf7-dashboard .fcf7-element-pro-badge{background:#ffb440;border-radius:10px;color:#5a3d00;display:inline-flex;font-size:10px;font-weight:700;line-height:1;padding:3px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-no-results{background-color:var(--fcf7Shade);border-radius:10px;color:var(--fcf7Title);font-size:15px;font-weight:500;padding:20px;text-align:center}.fcf7-dashboard .fcf7-doclist{border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.fcf7-dashboard .fcf7-doc-row{align-items:center;border-bottom:1px solid var(--fcf7Border);color:var(--fcf7Title);display:flex;gap:12px;padding:14px 18px}.fcf7-dashboard .fcf7-doc-row:last-child{border-bottom:0}.fcf7-dashboard .fcf7-doc-row:hover{background:#f8fafc}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-name{flex:1 1 auto;font-size:14px;font-weight:500}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-tag{background:var(--fcf7Shade);border-radius:6px;color:#475569;font-family:Menlo,Consolas,monospace;font-size:12px;padding:3px 9px}.fcf7-dashboard .fcf7-doc-row svg{color:#94a3b8;font-size:16px}.fcf7-dashboard .fcf7-config-page{display:flex;flex-direction:column;gap:24px}.fcf7-dashboard .fcf7-config-container{background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;max-width:720px;padding:26px}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop,.fcf7-dashboard .fcf7-config-container input{border:1px solid var(--fcf7Border)!important;border-radius:5px!important;height:40px!important;padding:0 14px!important}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop{padding:0 14px 0 30px!important}.fcf7-dashboard .fcf7-config-heading{align-items:center;display:flex;font-size:18px;gap:8px;margin-bottom:6px}.fcf7-dashboard .fcf7-config-heading svg{color:var(--fcf7Primary);height:18px;width:18px}.fcf7-dashboard .fcf7-config-text{color:var(--fcf7Body);font-size:13.5px;margin-bottom:20px}.fcf7-dashboard .fcf7-config-form{display:flex;flex-direction:column;gap:20px}.fcf7-dashboard .fcf7-config-grid{display:grid;gap:16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.fcf7-dashboard .fcf7-config-grid{grid-template-columns:1fr}}.fcf7-dashboard .fcf7-gsheet-banner{border-radius:8px;font-size:13px;margin-bottom:20px;padding:10px 14px}.fcf7-dashboard .fcf7-gsheet-banner--success{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}.fcf7-dashboard .fcf7-gsheet-banner--error{background:#fdeeee;border:1px solid #f3b7b7;color:#c53030}.fcf7-dashboard .fcf7-gsheet-redirect-uri{align-items:flex-end;display:flex;gap:10px;margin-bottom:20px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .components-base-control{flex:1}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn{align-items:center;background:#fff;border:1px solid var(--fcf7Border);border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:6px;height:40px;padding:0 14px;white-space:nowrap}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn svg{height:14px;width:14px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn:hover{background:#f6f7f7}.fcf7-dashboard .fcf7-gsheet-connect{align-items:center;border-top:1px solid var(--fcf7Border);display:flex;gap:12px;margin-top:20px;padding-top:20px}.fcf7-dashboard .fcf7-gsheet-connect button{border-radius:8px}.fcf7-dashboard .fcf7-gsheet-connected{color:var(--fcf7Body);font-size:13.5px}.fcf7-dashboard .fcf7-stripe-mode-badge{border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-stripe-mode-badge--test{background:#fff6e5;border:1px solid #f3ddab;color:#a86400}.fcf7-dashboard .fcf7-stripe-mode-badge--live{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}
     1.fcf7-dashboard{--fcf7Primary:#2563eb;--fcf7PrimaryDark:#1d4ed8;--fcf7PrimaryFg:#fff;--fcf7Ok:#16a34a;--fcf7Body:#475569;--fcf7Title:#1e293b;--fcf7White:#fff;--fcf7Shade:#f1f5f9;--fcf7SoftAccent:#eff4ff;--fcf7Border:#e5e7eb;background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;margin:20px auto 0;max-width:1320px;min-height:calc(100vh - 120px);padding:0;position:relative;width:calc(100% - 20px)}.fcf7-dashboard *{box-sizing:border-box;margin:0;padding:0}.fcf7-dashboard a{box-shadow:unset!important;outline:none!important;text-decoration:none;transition:.25s}.fcf7-dashboard h1,.fcf7-dashboard h2,.fcf7-dashboard h3,.fcf7-dashboard h4,.fcf7-dashboard h5,.fcf7-dashboard h6{color:var(--fcf7Title);font-weight:600;line-height:1.25}.fcf7-dashboard,.fcf7-dashboard p{color:var(--fcf7Body);font-size:15px;line-height:1.5}.fcf7-dashboard svg{height:1em;width:1em}.fcf7-dashboard img{max-width:100%}.fcf7-dashboard-header{align-items:center;background-color:#fff;border-bottom:1px solid var(--fcf7Border);border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 30px;position:sticky;top:32px;z-index:2}.fcf7-dashboard-header .fcf7-logo{align-items:center;color:var(--fcf7Title);display:flex;font-size:18px;font-weight:700;gap:12px}.fcf7-dashboard-header .fcf7-logo-img{display:block;height:34px;max-width:190px;width:auto}.fcf7-dashboard-header .fcf7-logo-mark{align-items:center;background:var(--fcf7Primary);border-radius:10px;color:#fff;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.fcf7-dashboard-header .fcf7-logo-badge{background:var(--fcf7SoftAccent);border:1px solid #dbe4fb;border-radius:999px;color:var(--fcf7PrimaryDark);font-size:11px;font-weight:600;padding:2px 9px}.fcf7-dashboard-header .fcf7-doc-link{align-items:center;border:1px solid var(--fcf7Border);border-radius:8px;color:var(--fcf7Body);display:inline-flex;font-size:14px;font-weight:500;gap:8px;height:40px;padding:0 16px}.fcf7-dashboard-header .fcf7-doc-link svg{font-size:16px}.fcf7-dashboard-header .fcf7-doc-link:hover{background-color:var(--fcf7Primary);border-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages{display:grid;flex-grow:1;grid-template-columns:260px 1fr}.fcf7-dashboard-pages .fcf7-dashboard-sidebar{align-self:flex-start;padding:26px;position:sticky;top:113px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list{display:flex;flex-direction:column;gap:8px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item{align-items:center;background-color:var(--fcf7Shade);border:none;border-radius:8px;color:var(--fcf7Title);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;line-height:1.25;padding:11px 16px;transition:.2s}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item.fcf7-tab-item-active,.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item:hover{background-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-icon{align-items:center;display:flex;font-size:18px;justify-content:center}.fcf7-dashboard-pages .fcf7-dashboard-content{border-right:1px solid var(--fcf7Border);min-width:0;padding:30px}@keyframes fcf7TabFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fcf7-dashboard .fcf7-banner{align-items:center;background:linear-gradient(-120deg,#172e6e,#1e46b8 55%,#2f6fe4);border-radius:12px;color:#fff;display:flex;gap:24px;justify-content:space-between;margin-bottom:30px;padding:28px 32px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text h2{color:#fff;font-size:22px;margin-bottom:8px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text p{color:hsla(0,0%,100%,.88);max-width:620px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat{align-items:center;background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.22);border-radius:12px;display:flex;flex:0 0 auto;flex-direction:column;min-width:104px;padding:14px 20px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num{font-size:30px;font-weight:700;line-height:1}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num span{font-size:17px;font-weight:600;opacity:.65}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-label{font-size:11px;letter-spacing:1px;margin-top:6px;opacity:.85;text-transform:uppercase}.fcf7-dashboard .fcf7-welcome-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.fcf7-dashboard .fcf7-info-card{background:var(--fcf7SoftAccent);border:1px solid #e3ebfb;border-radius:12px;padding:26px}.fcf7-dashboard .fcf7-info-card .fcf7-card-icon{align-items:center;background:#fff;border-radius:12px;color:var(--fcf7Primary);display:inline-flex;font-size:20px;height:48px;justify-content:center;margin:0 0 15px;width:48px}.fcf7-dashboard .fcf7-info-card .fcf7-card-title{font-size:17px;margin:0 0 8px}.fcf7-dashboard .fcf7-info-card .fcf7-card-desc{font-size:13.5px}.fcf7-dashboard .fcf7-info-card .fcf7-card-link{align-items:center;color:var(--fcf7PrimaryDark);display:inline-flex;font-weight:600;gap:5px;margin:15px 0 0}.fcf7-dashboard .fcf7-info-card .fcf7-card-link span{align-items:center;display:flex;justify-content:center}.fcf7-dashboard .fcf7-info-card .fcf7-card-link:hover{color:var(--fcf7Primary)}.fcf7-dashboard .fcf7-pro-hero{align-items:center;background-color:#eef1fd;background-image:url(images/background.f6c6809b.webp);background-position:50%;background-size:cover;border-radius:12px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;margin-bottom:20px;padding:32px}.fcf7-dashboard .fcf7-pro-hero-content{flex:1 1 300px;max-width:400px;min-width:280px}.fcf7-dashboard .fcf7-pro-badge{align-items:center;background:var(--fcf7Primary);border-radius:999px;color:#fff;display:inline-flex;font-size:12.5px;font-weight:600;gap:6px;margin-bottom:16px;padding:6px 14px}.fcf7-dashboard .fcf7-pro-hero-content h2{color:var(--fcf7Title);font-size:28px;line-height:1.25;margin:0 0 12px}.fcf7-dashboard .fcf7-pro-hero-content h2 span{color:var(--fcf7Primary)}.fcf7-dashboard .fcf7-pro-hero-content p{color:var(--fcf7Body);font-size:14px;line-height:1.6;margin:0 0 22px}.fcf7-dashboard .fcf7-btn-pro{align-items:center;background:var(--fcf7Primary);border-radius:8px;color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:12px 22px}.fcf7-dashboard .fcf7-btn-pro:hover{background:var(--fcf7PrimaryDark);color:#fff}.fcf7-dashboard .fcf7-pro-mock{flex:0 1 300px;height:210px;margin-left:10px;min-width:260px;position:relative}.fcf7-dashboard .fcf7-pro-mock-fields{background:#fff;border-radius:10px;box-shadow:0 12px 30px rgba(30,58,138,.14);right:0;padding:14px;position:absolute;top:10px;width:190px}.fcf7-dashboard .fcf7-pro-mock-row{align-items:center;color:var(--fcf7Body);display:flex;font-size:12.5px;gap:8px;padding:6px 0}.fcf7-dashboard .fcf7-pro-mock-row svg{color:var(--fcf7Primary);flex:0 0 auto}.fcf7-dashboard .fcf7-pro-mock-form{background:#fff;border-radius:10px;box-shadow:0 16px 34px rgba(30,58,138,.18);right:110px;padding:18px;position:absolute;top:30px;width:190px}.fcf7-dashboard .fcf7-pro-mock-form label{color:var(--fcf7Body);display:block;font-size:11px;margin:10px 0 5px}.fcf7-dashboard .fcf7-pro-mock-form label:first-of-type{margin-top:0}.fcf7-dashboard .fcf7-mock-input{background:var(--fcf7Shade);border-radius:4px;display:block;height:10px}.fcf7-dashboard .fcf7-mock-textarea{height:22px}.fcf7-dashboard .fcf7-mock-submit{background:var(--fcf7Primary);border-radius:6px;color:#fff;display:block;font-size:12px;font-weight:600;margin-top:14px;padding:8px;text-align:center}.fcf7-dashboard .fcf7-pro-mock-form-badge{align-items:center;background:linear-gradient(-120deg,#7c3aed,#a855f7);border-radius:999px;color:#fff;display:inline-flex;font-size:11px;font-weight:700;gap:4px;padding:5px 10px;position:absolute;left:-10px;top:-14px}.fcf7-dashboard .fcf7-pro-hero-badges{display:flex;flex:0 1 210px;flex-direction:column;gap:10px;min-width:190px}.fcf7-dashboard .fcf7-pro-feature-pill{align-items:center;background:#fff;border-radius:999px;box-shadow:0 6px 16px rgba(30,58,138,.08);display:inline-flex;font-size:12.5px;font-weight:600;gap:8px;padding:10px 16px;white-space:nowrap}.fcf7-dashboard .fcf7-pro-feature-pill.purple{color:#9333ea}.fcf7-dashboard .fcf7-pro-feature-pill.green{color:#059669}.fcf7-dashboard .fcf7-pro-feature-pill.orange{color:#ea580c}.fcf7-dashboard .fcf7-pro-feature-pill.blue{color:var(--fcf7PrimaryDark)}.fcf7-dashboard .fcf7-pro-benefits{align-items:center;background:var(--fcf7SoftAccent);border-radius:12px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;margin-bottom:20px;padding:26px 32px}.fcf7-dashboard .fcf7-pro-benefits-text h3{color:var(--fcf7Title);font-size:19px;margin:0 0 4px}.fcf7-dashboard .fcf7-pro-benefits-text p{color:var(--fcf7Body);font-size:13.5px;margin:0}.fcf7-dashboard .fcf7-pro-benefits-list{display:flex;flex-wrap:wrap;gap:28px}.fcf7-dashboard .fcf7-pro-benefit-item{align-items:center;color:var(--fcf7Title);display:flex;flex-direction:column;font-size:12.5px;font-weight:600;gap:10px;text-align:center;width:92px}.fcf7-dashboard .fcf7-pro-benefit-icon{align-items:center;border-radius:12px;display:inline-flex;font-size:20px;height:48px;justify-content:center;width:48px}.fcf7-dashboard .fcf7-pro-benefit-icon.blue{background:#dbeafe;color:#2563eb}.fcf7-dashboard .fcf7-pro-benefit-icon.purple{background:#f3e8ff;color:#9333ea}.fcf7-dashboard .fcf7-pro-benefit-icon.pink{background:#fce7f3;color:#db2777}.fcf7-dashboard .fcf7-pro-benefit-icon.green{background:#dcfce7;color:#059669}.fcf7-dashboard .fcf7-pro-benefit-icon.orange{background:#ffedd5;color:#ea580c}.fcf7-dashboard .fcf7-switcher-wrapper{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher{display:inline-block;height:22px;position:relative;width:40px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]{height:0;opacity:0;width:0}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider{background:var(--fcf7Primary)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider:before{transform:translateX(-18px)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:disabled+.fcf7-switch-slider{background:var(--fcf7Border);cursor:not-allowed}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider{background:#cbd5e1;border-radius:26px;cursor:pointer;inset:0;position:absolute;transition:all .25s ease}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider:before{background:#fff;border-radius:50%;bottom:3px;box-shadow:0 1px 3px rgba(0,0,0,.25);content:"";height:16px;right:3px;position:absolute;transition:all .25s ease;width:16px}.fcf7-dashboard .fcf7-elements-header{align-items:center;border-bottom:1px solid var(--fcf7Border);display:flex;gap:16px;justify-content:space-between;margin:0 0 26px;padding:0 0 20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-header-right{align-items:center;display:flex;gap:15px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-title{font-size:20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-info{font-size:14px;margin:5px 0 0}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter{border:1px solid var(--fcf7Border);border-radius:8px;font-size:14px;height:40px;padding:0 12px 0 30px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search{position:relative}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search span{color:#94a3b8;display:flex;position:absolute;left:12px;top:50%;transform:translateY(-50%)}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input{border:1px solid var(--fcf7Border);border-radius:8px;height:40px;padding:0 14px 0 30px;width:220px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-action-area{align-items:center;display:flex;gap:16px;justify-content:space-between}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list{background-color:var(--fcf7Shade);border-radius:8px;display:flex;gap:5px;padding:5px}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button{background:transparent;border:none;border-radius:6px;color:var(--fcf7Title);cursor:pointer;font-size:14px;line-height:1;padding:8px 14px;transition:.2s}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button.fcf7-tab-item-active,.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button:hover{background-color:#fff}.fcf7-dashboard .fcf7-elements-action-btns{display:flex;gap:10px}.fcf7-dashboard .fcf7-save-btn{background:var(--fcf7Primary);border:1px solid transparent;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;line-height:1;min-width:130px;padding:10px 16px}.fcf7-dashboard .fcf7-save-btn:disabled{cursor:default;opacity:.7}.fcf7-dashboard .fcf7-save-btn--saved{background:var(--fcf7Ok)}.fcf7-dashboard .fcf7-save-btn--error{background:#dc2626}.fcf7-dashboard .fcf7-elements-tab-content{margin:20px 0 0}.fcf7-dashboard .fcf7-elements-group{background-color:var(--fcf7Shade);border-radius:12px;padding:10px}.fcf7-dashboard .fcf7-elements-group:not(:last-child){margin-bottom:20px}.fcf7-dashboard .fcf7-elements-group-header{align-items:center;background-color:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:10px;padding:16px 20px}.fcf7-dashboard .fcf7-elements-group-header .fcf7-elements-group-title{font-size:16px}.fcf7-dashboard .fcf7-elements-group-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.fcf7-dashboard .fcf7-element-card{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:15px 18px;transition:opacity .2s ease}.fcf7-dashboard .fcf7-element-card.is-inactive{opacity:.65}.fcf7-dashboard .fcf7-element-card .fcf7-element-title{align-items:center;display:flex;font-size:15px;gap:8px;margin:0 0 8px}.fcf7-dashboard .fcf7-element-card .fcf7-element-meta{align-items:center;display:flex;font-size:13px;gap:10px}.fcf7-dashboard .fcf7-element-card .fcf7-element-metalink{color:var(--fcf7Primary);font-weight:600}.fcf7-dashboard .fcf7-element-pro-badge{background:#ffb440;border-radius:10px;color:#5a3d00;display:inline-flex;font-size:10px;font-weight:700;line-height:1;padding:3px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-no-results{background-color:var(--fcf7Shade);border-radius:10px;color:var(--fcf7Title);font-size:15px;font-weight:500;padding:20px;text-align:center}.fcf7-dashboard .fcf7-doclist{border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.fcf7-dashboard .fcf7-doc-row{align-items:center;border-bottom:1px solid var(--fcf7Border);color:var(--fcf7Title);display:flex;gap:12px;padding:14px 18px}.fcf7-dashboard .fcf7-doc-row:last-child{border-bottom:0}.fcf7-dashboard .fcf7-doc-row:hover{background:#f8fafc}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-name{flex:1 1 auto;font-size:14px;font-weight:500}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-tag{background:var(--fcf7Shade);border-radius:6px;color:#475569;font-family:Menlo,Consolas,monospace;font-size:12px;padding:3px 9px}.fcf7-dashboard .fcf7-doc-row svg{color:#94a3b8;font-size:16px}.fcf7-dashboard .fcf7-config-page{display:flex;flex-direction:column;gap:24px}.fcf7-dashboard .fcf7-config-container{background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;max-width:720px;padding:26px}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop,.fcf7-dashboard .fcf7-config-container input{border:1px solid var(--fcf7Border)!important;border-radius:5px!important;height:40px!important;padding:0 14px!important}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop{padding:0 14px 0 30px!important}.fcf7-dashboard .fcf7-config-heading{align-items:center;display:flex;font-size:18px;gap:8px;margin-bottom:6px}.fcf7-dashboard .fcf7-config-heading svg{color:var(--fcf7Primary);height:18px;width:18px}.fcf7-dashboard .fcf7-config-text{color:var(--fcf7Body);font-size:13.5px;margin-bottom:20px}.fcf7-dashboard .fcf7-config-form{display:flex;flex-direction:column;gap:20px}.fcf7-dashboard .fcf7-config-grid{display:grid;gap:16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.fcf7-dashboard .fcf7-config-grid{grid-template-columns:1fr}}.fcf7-dashboard .fcf7-gsheet-banner{border-radius:8px;font-size:13px;margin-bottom:20px;padding:10px 14px}.fcf7-dashboard .fcf7-gsheet-banner--success{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}.fcf7-dashboard .fcf7-gsheet-banner--error{background:#fdeeee;border:1px solid #f3b7b7;color:#c53030}.fcf7-dashboard .fcf7-gsheet-redirect-uri{align-items:flex-end;display:flex;gap:10px;margin-bottom:20px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .components-base-control{flex:1}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn{align-items:center;background:#fff;border:1px solid var(--fcf7Border);border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:6px;height:40px;padding:0 14px;white-space:nowrap}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn svg{height:14px;width:14px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn:hover{background:#f6f7f7}.fcf7-dashboard .fcf7-gsheet-connect{align-items:center;border-top:1px solid var(--fcf7Border);display:flex;gap:12px;margin-top:20px;padding-top:20px}.fcf7-dashboard .fcf7-gsheet-connect button{border-radius:8px}.fcf7-dashboard .fcf7-gsheet-connected{color:var(--fcf7Body);font-size:13.5px}.fcf7-dashboard .fcf7-stripe-mode-badge{border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-stripe-mode-badge--test{background:#fff6e5;border:1px solid #f3ddab;color:#a86400}.fcf7-dashboard .fcf7-stripe-mode-badge--live{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}
  • compactform/trunk/assets/dashboard/index.asset.php

    r3719086 r3721164  
    1 <?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-components', 'wp-element', 'wp-hooks', 'wp-i18n'), 'version' => '8f33d0c5e853bf00562f');
     1<?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-components', 'wp-element', 'wp-hooks', 'wp-i18n'), 'version' => '1c1882e6dfee2d9c3ec9');
  • compactform/trunk/assets/dashboard/index.css

    r3719086 r3721164  
    1 .fcf7-dashboard{--fcf7Primary:#2563eb;--fcf7PrimaryDark:#1d4ed8;--fcf7PrimaryFg:#fff;--fcf7Ok:#16a34a;--fcf7Body:#475569;--fcf7Title:#1e293b;--fcf7White:#fff;--fcf7Shade:#f1f5f9;--fcf7SoftAccent:#eff4ff;--fcf7Border:#e5e7eb;background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;margin:20px auto 0;max-width:1320px;min-height:calc(100vh - 120px);padding:0;position:relative;width:calc(100% - 20px)}.fcf7-dashboard *{box-sizing:border-box;margin:0;padding:0}.fcf7-dashboard a{box-shadow:unset!important;outline:none!important;text-decoration:none;transition:.25s}.fcf7-dashboard h1,.fcf7-dashboard h2,.fcf7-dashboard h3,.fcf7-dashboard h4,.fcf7-dashboard h5,.fcf7-dashboard h6{color:var(--fcf7Title);font-weight:600;line-height:1.25}.fcf7-dashboard,.fcf7-dashboard p{color:var(--fcf7Body);font-size:15px;line-height:1.5}.fcf7-dashboard svg{height:1em;width:1em}.fcf7-dashboard img{max-width:100%}.fcf7-dashboard-header{align-items:center;background-color:#fff;border-bottom:1px solid var(--fcf7Border);border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 30px;position:sticky;top:32px;z-index:2}.fcf7-dashboard-header .fcf7-logo{align-items:center;color:var(--fcf7Title);display:flex;font-size:18px;font-weight:700;gap:12px}.fcf7-dashboard-header .fcf7-logo-img{display:block;height:34px;max-width:190px;width:auto}.fcf7-dashboard-header .fcf7-logo-mark{align-items:center;background:var(--fcf7Primary);border-radius:10px;color:#fff;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.fcf7-dashboard-header .fcf7-logo-badge{background:var(--fcf7SoftAccent);border:1px solid #dbe4fb;border-radius:999px;color:var(--fcf7PrimaryDark);font-size:11px;font-weight:600;padding:2px 9px}.fcf7-dashboard-header .fcf7-doc-link{align-items:center;border:1px solid var(--fcf7Border);border-radius:8px;color:var(--fcf7Body);display:inline-flex;font-size:14px;font-weight:500;gap:8px;height:40px;padding:0 16px}.fcf7-dashboard-header .fcf7-doc-link svg{font-size:16px}.fcf7-dashboard-header .fcf7-doc-link:hover{background-color:var(--fcf7Primary);border-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages{display:grid;flex-grow:1;grid-template-columns:260px 1fr}.fcf7-dashboard-pages .fcf7-dashboard-sidebar{align-self:flex-start;padding:26px;position:sticky;top:113px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list{display:flex;flex-direction:column;gap:8px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item{align-items:center;background-color:var(--fcf7Shade);border:none;border-radius:8px;color:var(--fcf7Title);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;line-height:1.25;padding:11px 16px;transition:.2s}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item.fcf7-tab-item-active,.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item:hover{background-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-icon{align-items:center;display:flex;font-size:18px;justify-content:center}.fcf7-dashboard-pages .fcf7-dashboard-content{border-left:1px solid var(--fcf7Border);min-width:0;padding:30px}@keyframes fcf7TabFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fcf7-dashboard .fcf7-banner{align-items:center;background:linear-gradient(120deg,#172e6e,#1e46b8 55%,#2f6fe4);border-radius:12px;color:#fff;display:flex;gap:24px;justify-content:space-between;margin-bottom:30px;padding:28px 32px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text h2{color:#fff;font-size:22px;margin-bottom:8px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text p{color:hsla(0,0%,100%,.88);max-width:620px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat{align-items:center;background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.22);border-radius:12px;display:flex;flex:0 0 auto;flex-direction:column;min-width:104px;padding:14px 20px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num{font-size:30px;font-weight:700;line-height:1}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num span{font-size:17px;font-weight:600;opacity:.65}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-label{font-size:11px;letter-spacing:1px;margin-top:6px;opacity:.85;text-transform:uppercase}.fcf7-dashboard .fcf7-welcome-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.fcf7-dashboard .fcf7-info-card{background:var(--fcf7SoftAccent);border:1px solid #e3ebfb;border-radius:12px;padding:26px}.fcf7-dashboard .fcf7-info-card .fcf7-card-icon{align-items:center;background:#fff;border-radius:12px;color:var(--fcf7Primary);display:inline-flex;font-size:20px;height:48px;justify-content:center;margin:0 0 15px;width:48px}.fcf7-dashboard .fcf7-info-card .fcf7-card-title{font-size:17px;margin:0 0 8px}.fcf7-dashboard .fcf7-info-card .fcf7-card-desc{font-size:13.5px}.fcf7-dashboard .fcf7-info-card .fcf7-card-link{align-items:center;color:var(--fcf7PrimaryDark);display:inline-flex;font-weight:600;gap:5px;margin:15px 0 0}.fcf7-dashboard .fcf7-info-card .fcf7-card-link span{align-items:center;display:flex;justify-content:center}.fcf7-dashboard .fcf7-info-card .fcf7-card-link:hover{color:var(--fcf7Primary)}.fcf7-dashboard .fcf7-switcher-wrapper{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher{display:inline-block;height:22px;position:relative;width:40px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]{height:0;opacity:0;width:0}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider{background:var(--fcf7Primary)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider:before{transform:translateX(18px)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:disabled+.fcf7-switch-slider{background:var(--fcf7Border);cursor:not-allowed}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider{background:#cbd5e1;border-radius:26px;cursor:pointer;inset:0;position:absolute;transition:all .25s ease}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider:before{background:#fff;border-radius:50%;bottom:3px;box-shadow:0 1px 3px rgba(0,0,0,.25);content:"";height:16px;left:3px;position:absolute;transition:all .25s ease;width:16px}.fcf7-dashboard .fcf7-elements-header{align-items:center;border-bottom:1px solid var(--fcf7Border);display:flex;gap:16px;justify-content:space-between;margin:0 0 26px;padding:0 0 20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-header-right{align-items:center;display:flex;gap:15px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-title{font-size:20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-info{font-size:14px;margin:5px 0 0}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter{border:1px solid var(--fcf7Border);border-radius:8px;font-size:14px;height:40px;padding:0 30px 0 12px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search{position:relative}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search span{color:#94a3b8;display:flex;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input{border:1px solid var(--fcf7Border);border-radius:8px;height:40px;padding:0 30px 0 14px;width:220px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-action-area{align-items:center;display:flex;gap:16px;justify-content:space-between}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list{background-color:var(--fcf7Shade);border-radius:8px;display:flex;gap:5px;padding:5px}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button{background:transparent;border:none;border-radius:6px;color:var(--fcf7Title);cursor:pointer;font-size:14px;line-height:1;padding:8px 14px;transition:.2s}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button.fcf7-tab-item-active,.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button:hover{background-color:#fff}.fcf7-dashboard .fcf7-elements-action-btns{display:flex;gap:10px}.fcf7-dashboard .fcf7-save-btn{background:var(--fcf7Primary);border:1px solid transparent;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;line-height:1;min-width:130px;padding:10px 16px}.fcf7-dashboard .fcf7-save-btn:disabled{cursor:default;opacity:.7}.fcf7-dashboard .fcf7-save-btn--saved{background:var(--fcf7Ok)}.fcf7-dashboard .fcf7-save-btn--error{background:#dc2626}.fcf7-dashboard .fcf7-elements-tab-content{margin:20px 0 0}.fcf7-dashboard .fcf7-elements-group{background-color:var(--fcf7Shade);border-radius:12px;padding:10px}.fcf7-dashboard .fcf7-elements-group:not(:last-child){margin-bottom:20px}.fcf7-dashboard .fcf7-elements-group-header{align-items:center;background-color:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:10px;padding:16px 20px}.fcf7-dashboard .fcf7-elements-group-header .fcf7-elements-group-title{font-size:16px}.fcf7-dashboard .fcf7-elements-group-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.fcf7-dashboard .fcf7-element-card{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:15px 18px;transition:opacity .2s ease}.fcf7-dashboard .fcf7-element-card.is-inactive{opacity:.65}.fcf7-dashboard .fcf7-element-card .fcf7-element-title{align-items:center;display:flex;font-size:15px;gap:8px;margin:0 0 8px}.fcf7-dashboard .fcf7-element-card .fcf7-element-meta{align-items:center;display:flex;font-size:13px;gap:10px}.fcf7-dashboard .fcf7-element-card .fcf7-element-metalink{color:var(--fcf7Primary);font-weight:600}.fcf7-dashboard .fcf7-element-pro-badge{background:#ffb440;border-radius:10px;color:#5a3d00;display:inline-flex;font-size:10px;font-weight:700;line-height:1;padding:3px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-no-results{background-color:var(--fcf7Shade);border-radius:10px;color:var(--fcf7Title);font-size:15px;font-weight:500;padding:20px;text-align:center}.fcf7-dashboard .fcf7-doclist{border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.fcf7-dashboard .fcf7-doc-row{align-items:center;border-bottom:1px solid var(--fcf7Border);color:var(--fcf7Title);display:flex;gap:12px;padding:14px 18px}.fcf7-dashboard .fcf7-doc-row:last-child{border-bottom:0}.fcf7-dashboard .fcf7-doc-row:hover{background:#f8fafc}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-name{flex:1 1 auto;font-size:14px;font-weight:500}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-tag{background:var(--fcf7Shade);border-radius:6px;color:#475569;font-family:Menlo,Consolas,monospace;font-size:12px;padding:3px 9px}.fcf7-dashboard .fcf7-doc-row svg{color:#94a3b8;font-size:16px}.fcf7-dashboard .fcf7-config-page{display:flex;flex-direction:column;gap:24px}.fcf7-dashboard .fcf7-config-container{background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;max-width:720px;padding:26px}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop,.fcf7-dashboard .fcf7-config-container input{border:1px solid var(--fcf7Border)!important;border-radius:5px!important;height:40px!important;padding:0 14px!important}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop{padding:0 30px 0 14px!important}.fcf7-dashboard .fcf7-config-heading{align-items:center;display:flex;font-size:18px;gap:8px;margin-bottom:6px}.fcf7-dashboard .fcf7-config-heading svg{color:var(--fcf7Primary);height:18px;width:18px}.fcf7-dashboard .fcf7-config-text{color:var(--fcf7Body);font-size:13.5px;margin-bottom:20px}.fcf7-dashboard .fcf7-config-form{display:flex;flex-direction:column;gap:20px}.fcf7-dashboard .fcf7-config-grid{display:grid;gap:16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.fcf7-dashboard .fcf7-config-grid{grid-template-columns:1fr}}.fcf7-dashboard .fcf7-gsheet-banner{border-radius:8px;font-size:13px;margin-bottom:20px;padding:10px 14px}.fcf7-dashboard .fcf7-gsheet-banner--success{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}.fcf7-dashboard .fcf7-gsheet-banner--error{background:#fdeeee;border:1px solid #f3b7b7;color:#c53030}.fcf7-dashboard .fcf7-gsheet-redirect-uri{align-items:flex-end;display:flex;gap:10px;margin-bottom:20px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .components-base-control{flex:1}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn{align-items:center;background:#fff;border:1px solid var(--fcf7Border);border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:6px;height:40px;padding:0 14px;white-space:nowrap}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn svg{height:14px;width:14px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn:hover{background:#f6f7f7}.fcf7-dashboard .fcf7-gsheet-connect{align-items:center;border-top:1px solid var(--fcf7Border);display:flex;gap:12px;margin-top:20px;padding-top:20px}.fcf7-dashboard .fcf7-gsheet-connect button{border-radius:8px}.fcf7-dashboard .fcf7-gsheet-connected{color:var(--fcf7Body);font-size:13.5px}.fcf7-dashboard .fcf7-stripe-mode-badge{border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-stripe-mode-badge--test{background:#fff6e5;border:1px solid #f3ddab;color:#a86400}.fcf7-dashboard .fcf7-stripe-mode-badge--live{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}
     1.fcf7-dashboard{--fcf7Primary:#2563eb;--fcf7PrimaryDark:#1d4ed8;--fcf7PrimaryFg:#fff;--fcf7Ok:#16a34a;--fcf7Body:#475569;--fcf7Title:#1e293b;--fcf7White:#fff;--fcf7Shade:#f1f5f9;--fcf7SoftAccent:#eff4ff;--fcf7Border:#e5e7eb;background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;margin:20px auto 0;max-width:1320px;min-height:calc(100vh - 120px);padding:0;position:relative;width:calc(100% - 20px)}.fcf7-dashboard *{box-sizing:border-box;margin:0;padding:0}.fcf7-dashboard a{box-shadow:unset!important;outline:none!important;text-decoration:none;transition:.25s}.fcf7-dashboard h1,.fcf7-dashboard h2,.fcf7-dashboard h3,.fcf7-dashboard h4,.fcf7-dashboard h5,.fcf7-dashboard h6{color:var(--fcf7Title);font-weight:600;line-height:1.25}.fcf7-dashboard,.fcf7-dashboard p{color:var(--fcf7Body);font-size:15px;line-height:1.5}.fcf7-dashboard svg{height:1em;width:1em}.fcf7-dashboard img{max-width:100%}.fcf7-dashboard-header{align-items:center;background-color:#fff;border-bottom:1px solid var(--fcf7Border);border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 30px;position:sticky;top:32px;z-index:2}.fcf7-dashboard-header .fcf7-logo{align-items:center;color:var(--fcf7Title);display:flex;font-size:18px;font-weight:700;gap:12px}.fcf7-dashboard-header .fcf7-logo-img{display:block;height:34px;max-width:190px;width:auto}.fcf7-dashboard-header .fcf7-logo-mark{align-items:center;background:var(--fcf7Primary);border-radius:10px;color:#fff;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.fcf7-dashboard-header .fcf7-logo-badge{background:var(--fcf7SoftAccent);border:1px solid #dbe4fb;border-radius:999px;color:var(--fcf7PrimaryDark);font-size:11px;font-weight:600;padding:2px 9px}.fcf7-dashboard-header .fcf7-doc-link{align-items:center;border:1px solid var(--fcf7Border);border-radius:8px;color:var(--fcf7Body);display:inline-flex;font-size:14px;font-weight:500;gap:8px;height:40px;padding:0 16px}.fcf7-dashboard-header .fcf7-doc-link svg{font-size:16px}.fcf7-dashboard-header .fcf7-doc-link:hover{background-color:var(--fcf7Primary);border-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages{display:grid;flex-grow:1;grid-template-columns:260px 1fr}.fcf7-dashboard-pages .fcf7-dashboard-sidebar{align-self:flex-start;padding:26px;position:sticky;top:113px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list{display:flex;flex-direction:column;gap:8px}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item{align-items:center;background-color:var(--fcf7Shade);border:none;border-radius:8px;color:var(--fcf7Title);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;line-height:1.25;padding:11px 16px;transition:.2s}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item.fcf7-tab-item-active,.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-item:hover{background-color:var(--fcf7Primary);color:#fff}.fcf7-dashboard-pages .fcf7-dashboard-sidebar .fcf7-tab-list .fcf7-tab-icon{align-items:center;display:flex;font-size:18px;justify-content:center}.fcf7-dashboard-pages .fcf7-dashboard-content{border-left:1px solid var(--fcf7Border);min-width:0;padding:30px}@keyframes fcf7TabFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fcf7-dashboard .fcf7-banner{align-items:center;background:linear-gradient(120deg,#172e6e,#1e46b8 55%,#2f6fe4);border-radius:12px;color:#fff;display:flex;gap:24px;justify-content:space-between;margin-bottom:30px;padding:28px 32px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text h2{color:#fff;font-size:22px;margin-bottom:8px}.fcf7-dashboard .fcf7-banner .fcf7-banner-text p{color:hsla(0,0%,100%,.88);max-width:620px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat{align-items:center;background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.22);border-radius:12px;display:flex;flex:0 0 auto;flex-direction:column;min-width:104px;padding:14px 20px}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num{font-size:30px;font-weight:700;line-height:1}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-num span{font-size:17px;font-weight:600;opacity:.65}.fcf7-dashboard .fcf7-banner .fcf7-banner-stat-label{font-size:11px;letter-spacing:1px;margin-top:6px;opacity:.85;text-transform:uppercase}.fcf7-dashboard .fcf7-welcome-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.fcf7-dashboard .fcf7-info-card{background:var(--fcf7SoftAccent);border:1px solid #e3ebfb;border-radius:12px;padding:26px}.fcf7-dashboard .fcf7-info-card .fcf7-card-icon{align-items:center;background:#fff;border-radius:12px;color:var(--fcf7Primary);display:inline-flex;font-size:20px;height:48px;justify-content:center;margin:0 0 15px;width:48px}.fcf7-dashboard .fcf7-info-card .fcf7-card-title{font-size:17px;margin:0 0 8px}.fcf7-dashboard .fcf7-info-card .fcf7-card-desc{font-size:13.5px}.fcf7-dashboard .fcf7-info-card .fcf7-card-link{align-items:center;color:var(--fcf7PrimaryDark);display:inline-flex;font-weight:600;gap:5px;margin:15px 0 0}.fcf7-dashboard .fcf7-info-card .fcf7-card-link span{align-items:center;display:flex;justify-content:center}.fcf7-dashboard .fcf7-info-card .fcf7-card-link:hover{color:var(--fcf7Primary)}.fcf7-dashboard .fcf7-pro-hero{align-items:center;background-color:#eef1fd;background-image:url(images/background.f6c6809b.webp);background-position:50%;background-size:cover;border-radius:12px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;margin-bottom:20px;padding:32px}.fcf7-dashboard .fcf7-pro-hero-content{flex:1 1 300px;max-width:400px;min-width:280px}.fcf7-dashboard .fcf7-pro-badge{align-items:center;background:var(--fcf7Primary);border-radius:999px;color:#fff;display:inline-flex;font-size:12.5px;font-weight:600;gap:6px;margin-bottom:16px;padding:6px 14px}.fcf7-dashboard .fcf7-pro-hero-content h2{color:var(--fcf7Title);font-size:28px;line-height:1.25;margin:0 0 12px}.fcf7-dashboard .fcf7-pro-hero-content h2 span{color:var(--fcf7Primary)}.fcf7-dashboard .fcf7-pro-hero-content p{color:var(--fcf7Body);font-size:14px;line-height:1.6;margin:0 0 22px}.fcf7-dashboard .fcf7-btn-pro{align-items:center;background:var(--fcf7Primary);border-radius:8px;color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:12px 22px}.fcf7-dashboard .fcf7-btn-pro:hover{background:var(--fcf7PrimaryDark);color:#fff}.fcf7-dashboard .fcf7-pro-mock{flex:0 1 300px;height:210px;margin-right:10px;min-width:260px;position:relative}.fcf7-dashboard .fcf7-pro-mock-fields{background:#fff;border-radius:10px;box-shadow:0 12px 30px rgba(30,58,138,.14);left:0;padding:14px;position:absolute;top:10px;width:190px}.fcf7-dashboard .fcf7-pro-mock-row{align-items:center;color:var(--fcf7Body);display:flex;font-size:12.5px;gap:8px;padding:6px 0}.fcf7-dashboard .fcf7-pro-mock-row svg{color:var(--fcf7Primary);flex:0 0 auto}.fcf7-dashboard .fcf7-pro-mock-form{background:#fff;border-radius:10px;box-shadow:0 16px 34px rgba(30,58,138,.18);left:110px;padding:18px;position:absolute;top:30px;width:190px}.fcf7-dashboard .fcf7-pro-mock-form label{color:var(--fcf7Body);display:block;font-size:11px;margin:10px 0 5px}.fcf7-dashboard .fcf7-pro-mock-form label:first-of-type{margin-top:0}.fcf7-dashboard .fcf7-mock-input{background:var(--fcf7Shade);border-radius:4px;display:block;height:10px}.fcf7-dashboard .fcf7-mock-textarea{height:22px}.fcf7-dashboard .fcf7-mock-submit{background:var(--fcf7Primary);border-radius:6px;color:#fff;display:block;font-size:12px;font-weight:600;margin-top:14px;padding:8px;text-align:center}.fcf7-dashboard .fcf7-pro-mock-form-badge{align-items:center;background:linear-gradient(120deg,#7c3aed,#a855f7);border-radius:999px;color:#fff;display:inline-flex;font-size:11px;font-weight:700;gap:4px;padding:5px 10px;position:absolute;right:-10px;top:-14px}.fcf7-dashboard .fcf7-pro-hero-badges{display:flex;flex:0 1 210px;flex-direction:column;gap:10px;min-width:190px}.fcf7-dashboard .fcf7-pro-feature-pill{align-items:center;background:#fff;border-radius:999px;box-shadow:0 6px 16px rgba(30,58,138,.08);display:inline-flex;font-size:12.5px;font-weight:600;gap:8px;padding:10px 16px;white-space:nowrap}.fcf7-dashboard .fcf7-pro-feature-pill.purple{color:#9333ea}.fcf7-dashboard .fcf7-pro-feature-pill.green{color:#059669}.fcf7-dashboard .fcf7-pro-feature-pill.orange{color:#ea580c}.fcf7-dashboard .fcf7-pro-feature-pill.blue{color:var(--fcf7PrimaryDark)}.fcf7-dashboard .fcf7-pro-benefits{align-items:center;background:var(--fcf7SoftAccent);border-radius:12px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;margin-bottom:20px;padding:26px 32px}.fcf7-dashboard .fcf7-pro-benefits-text h3{color:var(--fcf7Title);font-size:19px;margin:0 0 4px}.fcf7-dashboard .fcf7-pro-benefits-text p{color:var(--fcf7Body);font-size:13.5px;margin:0}.fcf7-dashboard .fcf7-pro-benefits-list{display:flex;flex-wrap:wrap;gap:28px}.fcf7-dashboard .fcf7-pro-benefit-item{align-items:center;color:var(--fcf7Title);display:flex;flex-direction:column;font-size:12.5px;font-weight:600;gap:10px;text-align:center;width:92px}.fcf7-dashboard .fcf7-pro-benefit-icon{align-items:center;border-radius:12px;display:inline-flex;font-size:20px;height:48px;justify-content:center;width:48px}.fcf7-dashboard .fcf7-pro-benefit-icon.blue{background:#dbeafe;color:#2563eb}.fcf7-dashboard .fcf7-pro-benefit-icon.purple{background:#f3e8ff;color:#9333ea}.fcf7-dashboard .fcf7-pro-benefit-icon.pink{background:#fce7f3;color:#db2777}.fcf7-dashboard .fcf7-pro-benefit-icon.green{background:#dcfce7;color:#059669}.fcf7-dashboard .fcf7-pro-benefit-icon.orange{background:#ffedd5;color:#ea580c}.fcf7-dashboard .fcf7-switcher-wrapper{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher{display:inline-block;height:22px;position:relative;width:40px}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]{height:0;opacity:0;width:0}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider{background:var(--fcf7Primary)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:checked+.fcf7-switch-slider:before{transform:translateX(18px)}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher input[type=checkbox]:disabled+.fcf7-switch-slider{background:var(--fcf7Border);cursor:not-allowed}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider{background:#cbd5e1;border-radius:26px;cursor:pointer;inset:0;position:absolute;transition:all .25s ease}.fcf7-dashboard .fcf7-switcher-wrapper .fcf7-switcher .fcf7-switch-slider:before{background:#fff;border-radius:50%;bottom:3px;box-shadow:0 1px 3px rgba(0,0,0,.25);content:"";height:16px;left:3px;position:absolute;transition:all .25s ease;width:16px}.fcf7-dashboard .fcf7-elements-header{align-items:center;border-bottom:1px solid var(--fcf7Border);display:flex;gap:16px;justify-content:space-between;margin:0 0 26px;padding:0 0 20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-header-right{align-items:center;display:flex;gap:15px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-title{font-size:20px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-info{font-size:14px;margin:5px 0 0}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter{border:1px solid var(--fcf7Border);border-radius:8px;font-size:14px;height:40px;padding:0 30px 0 12px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-filter:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search{position:relative}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search span{color:#94a3b8;display:flex;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input{border:1px solid var(--fcf7Border);border-radius:8px;height:40px;padding:0 30px 0 14px;width:220px}.fcf7-dashboard .fcf7-elements-header .fcf7-elements-search input:focus{border-color:var(--fcf7Primary);box-shadow:none;outline:none}.fcf7-dashboard .fcf7-elements-action-area{align-items:center;display:flex;gap:16px;justify-content:space-between}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list{background-color:var(--fcf7Shade);border-radius:8px;display:flex;gap:5px;padding:5px}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button{background:transparent;border:none;border-radius:6px;color:var(--fcf7Title);cursor:pointer;font-size:14px;line-height:1;padding:8px 14px;transition:.2s}.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button.fcf7-tab-item-active,.fcf7-dashboard .fcf7-elements-action-area .fcf7-tab-list button:hover{background-color:#fff}.fcf7-dashboard .fcf7-elements-action-btns{display:flex;gap:10px}.fcf7-dashboard .fcf7-save-btn{background:var(--fcf7Primary);border:1px solid transparent;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;line-height:1;min-width:130px;padding:10px 16px}.fcf7-dashboard .fcf7-save-btn:disabled{cursor:default;opacity:.7}.fcf7-dashboard .fcf7-save-btn--saved{background:var(--fcf7Ok)}.fcf7-dashboard .fcf7-save-btn--error{background:#dc2626}.fcf7-dashboard .fcf7-elements-tab-content{margin:20px 0 0}.fcf7-dashboard .fcf7-elements-group{background-color:var(--fcf7Shade);border-radius:12px;padding:10px}.fcf7-dashboard .fcf7-elements-group:not(:last-child){margin-bottom:20px}.fcf7-dashboard .fcf7-elements-group-header{align-items:center;background-color:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:10px;padding:16px 20px}.fcf7-dashboard .fcf7-elements-group-header .fcf7-elements-group-title{font-size:16px}.fcf7-dashboard .fcf7-elements-group-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.fcf7-dashboard .fcf7-element-card{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:15px 18px;transition:opacity .2s ease}.fcf7-dashboard .fcf7-element-card.is-inactive{opacity:.65}.fcf7-dashboard .fcf7-element-card .fcf7-element-title{align-items:center;display:flex;font-size:15px;gap:8px;margin:0 0 8px}.fcf7-dashboard .fcf7-element-card .fcf7-element-meta{align-items:center;display:flex;font-size:13px;gap:10px}.fcf7-dashboard .fcf7-element-card .fcf7-element-metalink{color:var(--fcf7Primary);font-weight:600}.fcf7-dashboard .fcf7-element-pro-badge{background:#ffb440;border-radius:10px;color:#5a3d00;display:inline-flex;font-size:10px;font-weight:700;line-height:1;padding:3px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-no-results{background-color:var(--fcf7Shade);border-radius:10px;color:var(--fcf7Title);font-size:15px;font-weight:500;padding:20px;text-align:center}.fcf7-dashboard .fcf7-doclist{border:1px solid var(--fcf7Border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.fcf7-dashboard .fcf7-doc-row{align-items:center;border-bottom:1px solid var(--fcf7Border);color:var(--fcf7Title);display:flex;gap:12px;padding:14px 18px}.fcf7-dashboard .fcf7-doc-row:last-child{border-bottom:0}.fcf7-dashboard .fcf7-doc-row:hover{background:#f8fafc}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-name{flex:1 1 auto;font-size:14px;font-weight:500}.fcf7-dashboard .fcf7-doc-row .fcf7-doc-row-tag{background:var(--fcf7Shade);border-radius:6px;color:#475569;font-family:Menlo,Consolas,monospace;font-size:12px;padding:3px 9px}.fcf7-dashboard .fcf7-doc-row svg{color:#94a3b8;font-size:16px}.fcf7-dashboard .fcf7-config-page{display:flex;flex-direction:column;gap:24px}.fcf7-dashboard .fcf7-config-container{background:#fff;border:1px solid var(--fcf7Border);border-radius:12px;max-width:720px;padding:26px}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop,.fcf7-dashboard .fcf7-config-container input{border:1px solid var(--fcf7Border)!important;border-radius:5px!important;height:40px!important;padding:0 14px!important}.fcf7-dashboard .fcf7-config-container .components-input-control__backdrop{padding:0 30px 0 14px!important}.fcf7-dashboard .fcf7-config-heading{align-items:center;display:flex;font-size:18px;gap:8px;margin-bottom:6px}.fcf7-dashboard .fcf7-config-heading svg{color:var(--fcf7Primary);height:18px;width:18px}.fcf7-dashboard .fcf7-config-text{color:var(--fcf7Body);font-size:13.5px;margin-bottom:20px}.fcf7-dashboard .fcf7-config-form{display:flex;flex-direction:column;gap:20px}.fcf7-dashboard .fcf7-config-grid{display:grid;gap:16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.fcf7-dashboard .fcf7-config-grid{grid-template-columns:1fr}}.fcf7-dashboard .fcf7-gsheet-banner{border-radius:8px;font-size:13px;margin-bottom:20px;padding:10px 14px}.fcf7-dashboard .fcf7-gsheet-banner--success{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}.fcf7-dashboard .fcf7-gsheet-banner--error{background:#fdeeee;border:1px solid #f3b7b7;color:#c53030}.fcf7-dashboard .fcf7-gsheet-redirect-uri{align-items:flex-end;display:flex;gap:10px;margin-bottom:20px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .components-base-control{flex:1}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn{align-items:center;background:#fff;border:1px solid var(--fcf7Border);border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:6px;height:40px;padding:0 14px;white-space:nowrap}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn svg{height:14px;width:14px}.fcf7-dashboard .fcf7-gsheet-redirect-uri .fcf7-copy-btn:hover{background:#f6f7f7}.fcf7-dashboard .fcf7-gsheet-connect{align-items:center;border-top:1px solid var(--fcf7Border);display:flex;gap:12px;margin-top:20px;padding-top:20px}.fcf7-dashboard .fcf7-gsheet-connect button{border-radius:8px}.fcf7-dashboard .fcf7-gsheet-connected{color:var(--fcf7Body);font-size:13.5px}.fcf7-dashboard .fcf7-stripe-mode-badge{border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.fcf7-dashboard .fcf7-stripe-mode-badge--test{background:#fff6e5;border:1px solid #f3ddab;color:#a86400}.fcf7-dashboard .fcf7-stripe-mode-badge--live{background:#edfaef;border:1px solid #b7ebc0;color:#1a7f37}
  • compactform/trunk/assets/dashboard/index.js

    r3719086 r3721164  
    1 (()=>{"use strict";const e=window.wp.element,t=window.wp.i18n,a=window.React;var n={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},r=a.createContext&&a.createContext(n),c=["attr","size","title"];function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},s.apply(null,arguments)}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach(function(t){i(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}function i(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function d(e){return e&&e.map((e,t)=>a.createElement(e.tag,l({key:t},e.attr),d(e.child)))}function f(e){return t=>a.createElement(h,s({attr:l({},e.attr)},t),d(e.child))}function h(e){var t=t=>{var n,r=e.attr,o=e.size,i=e.title,d=function(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;a[n]=e[n]}return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)a=c[n],-1===t.indexOf(a)&&{}.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}(e,c),f=o||t.size||"1em";return t.className&&(n=t.className),e.className&&(n=(n?n+" ":"")+e.className),a.createElement("svg",s({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,r,d,{className:n,style:l(l({color:e.color||t.color},t.style),e.style),height:f,width:f,xmlns:"http://www.w3.org/2000/svg"}),i&&a.createElement("title",null,i),e.children)};return void 0!==r?a.createElement(r.Consumer,null,e=>t(e)):t(n)}function m(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"},child:[]}]})(e)}function u(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"},child:[]},{tag:"path",attr:{d:"m9 12 2 2 4-4"},child:[]}]})(e)}function p(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]}]})(e)}function v(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"11",cy:"11",r:"8"},child:[]},{tag:"path",attr:{d:"m21 21-4.3-4.3"},child:[]}]})(e)}function g(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"},child:[]},{tag:"path",attr:{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"},child:[]}]})(e)}function x(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z"},child:[]},{tag:"path",attr:{d:"M21 16v2a4 4 0 0 1-4 4h-5"},child:[]}]})(e)}function j(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"},child:[]},{tag:"path",attr:{d:"M14 2v4a2 2 0 0 0 2 2h4"},child:[]},{tag:"path",attr:{d:"M10 9H8"},child:[]},{tag:"path",attr:{d:"M16 13H8"},child:[]},{tag:"path",attr:{d:"M16 17H8"},child:[]}]})(e)}function b(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"},child:[]},{tag:"path",attr:{d:"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z"},child:[]},{tag:"path",attr:{d:"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z"},child:[]},{tag:"path",attr:{d:"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"},child:[]}]})(e)}function _(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"m9 18 6-6-6-6"},child:[]}]})(e)}function k(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12 7v14"},child:[]},{tag:"path",attr:{d:"M16 12h2"},child:[]},{tag:"path",attr:{d:"M16 8h2"},child:[]},{tag:"path",attr:{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"},child:[]},{tag:"path",attr:{d:"M6 12h2"},child:[]},{tag:"path",attr:{d:"M6 8h2"},child:[]}]})(e)}const w=window.ReactJSXRuntime,C=(0,e.createContext)(null);function y({defaultValue:t,value:a,onValueChange:n,children:r}){const[c,s]=(0,e.useState)(t??""),o=void 0!==a?a:c,l=(0,e.useCallback)(e=>{void 0===a&&s(e),n?.(e)},[a,n]);return(0,w.jsx)(C.Provider,{value:{active:o,setActive:l},children:r})}function N({children:t}){const a=(0,e.useRef)(null),n=(0,e.useCallback)(e=>{const t=[...a.current.querySelectorAll("[role=tab]:not([disabled])")],n=t.indexOf(document.activeElement);"ArrowRight"===e.key&&t[(n+1)%t.length]?.focus(),"ArrowLeft"===e.key&&t[(n-1+t.length)%t.length]?.focus(),"Home"===e.key&&(e.preventDefault(),t[0]?.focus()),"End"===e.key&&(e.preventDefault(),t[t.length-1]?.focus())},[]);return(0,w.jsx)("div",{ref:a,role:"tablist",onKeyDown:n,className:"fcf7-tab-list",children:t})}const F=(0,e.memo)(function({value:t,disabled:a,children:n}){const{active:r,setActive:c}=(0,e.useContext)(C),s=r===t;return(0,w.jsx)("button",{role:"tab","aria-selected":s,tabIndex:s?0:-1,disabled:a,onClick:()=>!a&&c(t),className:"fcf7-tab-item "+(s?"fcf7-tab-item-active":""),children:n})}),L=(0,e.memo)(function({value:t,unmountOnHide:a=!1,children:n}){const{active:r}=(0,e.useContext)(C),c=r===t;return a&&!c?null:(0,w.jsx)("div",{role:"tabpanel",hidden:!c,style:{animation:c?"fcf7TabFadeIn 0.18s ease":void 0},className:"fcf7-tab-panel",children:n})}),S=(0,window.wp.hooks.createHooks)(),O=function({title:e,desc:t,icon:a,buttonText:n,link:r}){return(0,w.jsxs)("div",{className:"fcf7-info-card",children:[(0,w.jsx)("div",{className:"fcf7-card-icon",children:a}),(0,w.jsx)("h4",{className:"fcf7-card-title",children:e}),(0,w.jsx)("p",{className:"fcf7-card-desc",children:t}),(0,w.jsxs)("a",{className:"fcf7-card-link",href:r,target:"_blank",rel:"noopener noreferrer",children:[n,(0,w.jsx)("span",{children:(0,w.jsx)(_,{})})]})]})},P=()=>(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)("div",{className:"fcf7-banner",children:[(0,w.jsxs)("div",{className:"fcf7-banner-text",children:[(0,w.jsx)("h2",{children:(0,t.__)("Welcome to CompactForm","compactform")}),(0,w.jsx)("p",{children:(0,t.__)("Advanced fields and stylings for Contact Form 7, built by RSTheme. Enable what you need — each extension loads its assets only when a form actually uses it.","compactform")})]}),(0,w.jsxs)("div",{className:"fcf7-banner-stat",children:[(0,w.jsxs)("span",{className:"fcf7-banner-stat-num",children:[FCF7Local?.activeCount??0,(0,w.jsxs)("span",{children:["/",FCF7Local?.totalCount??0]})]}),(0,w.jsx)("span",{className:"fcf7-banner-stat-label",children:(0,t.__)("Active","compactform")})]})]}),(0,w.jsxs)("div",{className:"fcf7-welcome-grid",children:[(0,w.jsx)(O,{icon:(0,w.jsx)(x,{}),title:(0,t.__)("Need any help?","compactform"),desc:(0,t.__)("Run into an issue or need a hand? Our team is here to help on the support portal.","compactform"),buttonText:(0,t.__)("Create a ticket","compactform"),link:FCF7Local?.links?.support}),(0,w.jsx)(O,{icon:(0,w.jsx)(m,{}),title:(0,t.__)("Enjoying the plugin?","compactform"),desc:(0,t.__)("A quick review really helps and keeps development going.","compactform"),buttonText:(0,t.__)("Leave a review","compactform"),link:FCF7Local?.links?.review}),(0,w.jsx)(O,{icon:(0,w.jsx)(k,{}),title:(0,t.__)("Knowledge base","compactform"),desc:(0,t.__)("Read the docs to learn how to set up each extension step by step.","compactform"),buttonText:(0,t.__)("Read documentation","compactform"),link:FCF7Local?.links?.docs})]})]}),M=function({label:t,disabled:a=!1,checked:n,onChange:r}){const[c,s]=(0,e.useState)(!1),o=void 0!==n?n:c;return(0,w.jsxs)("label",{className:"fcf7-switcher-wrapper",children:[(0,w.jsxs)("span",{className:"fcf7-switcher",children:[(0,w.jsx)("input",{type:"checkbox",className:"fcf7-item-checkbox",checked:o,disabled:a,onChange:()=>{a||(r?r():s(!c))}}),(0,w.jsx)("span",{className:"fcf7-switch-slider"})]}),t&&(0,w.jsx)("span",{className:"fcf7-switch-label",children:t})]})},E=function({pageTitle:e,pageInfo:a,search:n,setSearch:r,filterTier:c,setFilterTier:s,allActive:o,onEnableAll:l}){return(0,w.jsxs)("div",{className:"fcf7-elements-header",children:[(0,w.jsxs)("div",{className:"fcf7-elements-header-left",children:[(0,w.jsx)("h4",{className:"fcf7-elements-title",children:e}),(0,w.jsx)("p",{className:"fcf7-elements-info",children:a})]}),(0,w.jsxs)("div",{className:"fcf7-elements-header-right",children:[(0,w.jsx)(M,{label:(0,t.__)("Enable All","compactform"),checked:o,onChange:l}),(0,w.jsxs)("div",{className:"fcf7-elements-search",children:[(0,w.jsx)("span",{children:(0,w.jsx)(v,{})}),(0,w.jsx)("input",{type:"text",placeholder:(0,t.__)("Search…","compactform"),value:n,onChange:e=>r(e.target.value.toLowerCase())})]}),(0,w.jsxs)("select",{className:"fcf7-elements-filter",value:c,onChange:e=>s(e.target.value),children:[(0,w.jsx)("option",{value:"",children:(0,t.__)("Free + Pro","compactform")}),(0,w.jsx)("option",{value:"free",children:(0,t.__)("Free","compactform")}),(0,w.jsx)("option",{value:"pro",children:(0,t.__)("Pro","compactform")})]})]})]})},T=function({elementsMap:e,saveStatus:a,handleSave:n}){const r=[{value:"all",title:(0,t.__)("All","compactform")},...Object.entries(e).filter(([e])=>"all"!==e).map(([e,t])=>({value:e,title:t.tabTitle}))];return(0,w.jsxs)("div",{className:"fcf7-elements-action-area",children:[(0,w.jsx)(N,{children:r.map((e,t)=>(0,w.jsx)(F,{value:e.value,children:e.title},t))}),(0,w.jsx)("div",{className:"fcf7-elements-action-btns",children:(0,w.jsxs)("button",{className:`fcf7-save-btn fcf7-save-btn--${a}`,onClick:n,disabled:"saving"===a,children:["saving"===a&&(0,t.__)("Saving…","compactform"),"saved"===a&&(0,t.__)("Saved!","compactform"),"error"===a&&(0,t.__)("Error!","compactform"),"idle"===a&&(0,t.__)("Save Changes","compactform")]})})]})},A=function({element:e,active:a,onToggle:n}){const r=e?.isPro&&!FCF7Local?.isProActive;return(0,w.jsxs)("div",{className:"fcf7-element-card"+(a?"":" is-inactive"),children:[(0,w.jsxs)("div",{className:"fcf7-element-left",children:[(0,w.jsxs)("h5",{className:"fcf7-element-title",children:[e?.title,e?.isPro&&(0,w.jsx)("span",{className:"fcf7-element-pro-badge",children:"Pro"})]}),(0,w.jsx)("div",{className:"fcf7-element-meta",children:e?.docUrl&&(0,w.jsx)("a",{className:"fcf7-element-metalink",href:e.docUrl,target:"_blank",rel:"noreferrer",children:(0,t.__)("Docs","compactform")})})]}),(0,w.jsx)(M,{checked:a,onChange:n,disabled:r})]})},D=function({elementsMap:e,inactive:a,setInactive:n,toggleElement:r,search:c,filterTier:s}){const o=!!FCF7Local?.isProActive,l=(e,l)=>{const i=Object.entries(l.elements).filter(([,e])=>(e=>{const t=!c||e.title.toLowerCase().includes(c),a=!s||"free"===s&&!e.isPro||"pro"===s&&e.isPro;return t&&a})(e));if(0===i.length)return null;const d=Object.entries(l.elements).filter(([,e])=>o||!e.isPro).map(([e])=>e),f=d.every(e=>!a.includes(e));return(0,w.jsxs)("div",{className:"fcf7-elements-group",children:[(0,w.jsxs)("div",{className:"fcf7-elements-group-header",children:[(0,w.jsx)("h3",{className:"fcf7-elements-group-title",children:l.title}),(0,w.jsx)(M,{label:(0,t.__)("Enable All","compactform"),checked:f,onChange:()=>{n(f?e=>[...new Set([...e,...d])]:e=>e.filter(e=>!d.includes(e)))}})]}),(0,w.jsx)("div",{className:"fcf7-elements-group-grid",children:i.map(([e,t])=>(0,w.jsx)(A,{element:t,active:!a.includes(e),onToggle:()=>r(e)},e))})]},e)},i=(0,w.jsx)("p",{className:"fcf7-no-results",children:(0,t.__)("No results found.","compactform")}),d=Object.entries(e).map(([e,t])=>l(e,t));return(0,w.jsxs)("div",{className:"fcf7-elements-tab-content",children:[(0,w.jsx)(L,{value:"all",unmountOnHide:!0,children:d.some(Boolean)?d:i}),Object.entries(e).filter(([e])=>"all"!==e).map(([e,t])=>(0,w.jsx)(L,{value:e,unmountOnHide:!0,children:l(e,t)??i},e))]})},H=function(){const[a,n]=(0,e.useState)(""),[r,c]=(0,e.useState)(""),[s,o]=(0,e.useState)(FCF7Local?.inactiveExtensions||[]),[l,i]=(0,e.useState)("idle"),[d,f]=(0,e.useState)("all"),h=FCF7Local.extensionsMap,m=!!FCF7Local?.isProActive,u=Object.values(h).flatMap(e=>Object.entries(e.elements).filter(([,e])=>m||!e.isPro).map(([e])=>e)),p=Object.values(h).flatMap(e=>Object.keys(e.elements)).length,v=u.filter(e=>!s.includes(e)).length,g=u.every(e=>!s.includes(e));return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(E,{pageTitle:(0,t.__)("Extensions","compactform"),pageInfo:`${p} ${(0,t.__)("Total Extensions","compactform")} | ${v} ${(0,t.__)("Active","compactform")}`,search:a,setSearch:n,filterTier:r,setFilterTier:c,allActive:g,onEnableAll:()=>{o(g?e=>[...new Set([...e,...u])]:e=>e.filter(e=>!u.includes(e)))}}),(0,w.jsxs)(y,{value:d,onValueChange:e=>f(e),children:[(0,w.jsx)(T,{elementsMap:h,saveStatus:l,handleSave:async()=>{i("saving");try{const e=new FormData;e.append("action","fcf7_save_elements_config"),e.append("nonce",FCF7Local.nonce),e.append("config",JSON.stringify(s)),e.append("type","extensions");const t=await fetch(FCF7Local.ajaxUrl,{method:"POST",body:e});(await t.json()).success?(FCF7Local.inactiveExtensions=s,i("saved")):i("error")}catch{i("error")}finally{setTimeout(()=>i("idle"),2500)}}}),(0,w.jsx)(D,{elementsMap:h,inactive:s,setInactive:o,toggleElement:e=>{o(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},search:a,filterTier:r})]})]})},z=window.wp.components;function W({status:e}){return(0,w.jsxs)("button",{type:"submit",className:`fcf7-save-btn fcf7-save-btn--${e}`,disabled:"saving"===e,children:["saving"===e&&(0,t.__)("Saving…","compactform"),"saved"===e&&(0,t.__)("Saved!","compactform"),"error"===e&&(0,t.__)("Error!","compactform"),"idle"===e&&(0,t.__)("Save Changes","compactform")]})}function B(){const a=FCF7Local?.recaptchaSettings||{},[n,r]=(0,e.useState)(a.siteKey||""),[c,s]=(0,e.useState)(""),[o,l]=(0,e.useState)(!!a.hasSecretKey),[i,d]=(0,e.useState)("idle");return(0,w.jsxs)("div",{className:"fcf7-config-container",children:[(0,w.jsxs)("h2",{className:"fcf7-config-heading",children:[(0,w.jsx)(u,{})," ",(0,t.__)("Google reCAPTCHA (v3)","compactform")]}),(0,w.jsx)("p",{className:"fcf7-config-text",children:(0,t.__)("Credentials for the Google reCAPTCHA field. Generate a v3 key pair at google.com/recaptcha/admin.","compactform")}),(0,w.jsxs)("form",{className:"fcf7-config-form",onSubmit:async e=>{e.preventDefault(),d("saving");try{const e=new FormData;e.append("action","fcf7_save_recaptcha_settings"),e.append("nonce",FCF7Local.nonce),e.append("site_key",n),e.append("secret_key",c);const t=await fetch(FCF7Local.ajaxUrl,{method:"POST",body:e}),a=await t.json();a.success?(FCF7Local.recaptchaSettings=a.data.settings,l(!!a.data.settings.hasSecretKey),s(""),d("saved")):d("error")}catch{d("error")}finally{setTimeout(()=>d("idle"),2500)}},children:[(0,w.jsxs)("div",{className:"fcf7-config-grid",children:[(0,w.jsx)(z.TextControl,{__next40pxDefaultSize:!0,label:(0,t.__)("Site Key","compactform"),value:n,onChange:r,autoComplete:"off"}),(0,w.jsx)(z.TextControl,{__next40pxDefaultSize:!0,type:"password",label:(0,t.__)("Secret Key","compactform"),value:c,onChange:s,placeholder:o?"••••••••••••••••":(0,t.__)("Not set","compactform"),help:o?(0,t.__)("Leave blank to keep the saved secret key.","compactform"):"",autoComplete:"new-password"})]}),(0,w.jsx)(W,{status:i})]})]})}const R=function(){const e=S.applyFilters("fcf7Dashboard.configurationSections",[]);return(0,w.jsxs)("div",{className:"fcf7-config-page",children:[(0,w.jsx)(B,{}),e]})},V=function(){const[a,n]=(0,e.useState)(()=>new URLSearchParams(location.search).get("tab")??"welcome"),r=S.applyFilters("fcf7Dashboard.tabs",[]);return(0,w.jsxs)(y,{value:a,onValueChange:e=>{n(e);const t=new URL(location.href);t.searchParams.set("tab",e),history.pushState({},"",t)},children:[(0,w.jsxs)("div",{className:"fcf7-dashboard-header",children:[(0,w.jsxs)("div",{className:"fcf7-logo",children:[FCF7Local?.logoUrl?(0,w.jsx)("img",{className:"fcf7-logo-img",src:FCF7Local.logoUrl,alt:(0,t.__)("CompactForm","compactform")}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("span",{className:"fcf7-logo-mark","aria-hidden":"true",children:"F"}),(0,t.__)("CompactForm","compactform")]}),(0,w.jsxs)("span",{className:"fcf7-logo-badge",children:["v",FCF7Local?.version]})]}),(0,w.jsxs)("a",{className:"fcf7-doc-link",href:FCF7Local?.links?.forms,children:[(0,w.jsx)(j,{}),(0,w.jsx)("span",{children:(0,t.__)("Contact Forms","compactform")})]})]}),(0,w.jsxs)("div",{className:"fcf7-dashboard-pages",children:[(0,w.jsx)("div",{className:"fcf7-dashboard-sidebar",children:(0,w.jsxs)(N,{children:[(0,w.jsxs)(F,{value:"welcome",children:[(0,w.jsx)("span",{className:"fcf7-tab-icon",children:(0,w.jsx)(g,{})}),(0,t.__)("Welcome","compactform")]}),(0,w.jsxs)(F,{value:"extensions",children:[(0,w.jsx)("span",{className:"fcf7-tab-icon",children:(0,w.jsx)(b,{})}),(0,t.__)("Extensions","compactform")]}),(0,w.jsxs)(F,{value:"configuration",children:[(0,w.jsx)("span",{className:"fcf7-tab-icon",children:(0,w.jsx)(p,{})}),(0,t.__)("Configuration","compactform")]}),r.map(e=>(0,w.jsxs)(F,{value:e.id,children:[(0,w.jsx)("span",{className:"fcf7-tab-icon",children:e.icon}),e.label]},e.id))]})}),(0,w.jsxs)("div",{className:"fcf7-dashboard-content",children:[(0,w.jsx)(L,{value:"welcome",unmountOnHide:!0,children:(0,w.jsx)(P,{})}),(0,w.jsx)(L,{value:"extensions",unmountOnHide:!0,children:(0,w.jsx)(H,{})}),(0,w.jsx)(L,{value:"configuration",unmountOnHide:!0,children:(0,w.jsx)(R,{})}),r.map(e=>(0,w.jsx)(L,{value:e.id,unmountOnHide:!0,children:e.render()},e.id))]})]})]})};window.FCF7Dashboard=window.FCF7Dashboard||{},window.FCF7Dashboard.hooks=S,document.addEventListener("DOMContentLoaded",()=>{const t=document.getElementById("fcf7-dashboard");t&&(0,e.createRoot)(t).render((0,w.jsx)(V,{}))})})();
     1(()=>{"use strict";const e=window.wp.element,t=window.wp.i18n,a=window.React;var r={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},c=a.createContext&&a.createContext(r),n=["attr","size","title"];function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},o.apply(null,arguments)}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach(function(t){l(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}function l(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function d(e){return e&&e.map((e,t)=>a.createElement(e.tag,i({key:t},e.attr),d(e.child)))}function f(e){return t=>a.createElement(h,o({attr:i({},e.attr)},t),d(e.child))}function h(e){var t=t=>{var r,c=e.attr,s=e.size,l=e.title,d=function(e,t){if(null==e)return{};var a,r,c=function(e,t){if(null==e)return{};var a={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;a[r]=e[r]}return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],-1===t.indexOf(a)&&{}.propertyIsEnumerable.call(e,a)&&(c[a]=e[a])}return c}(e,n),f=s||t.size||"1em";return t.className&&(r=t.className),e.className&&(r=(r?r+" ":"")+e.className),a.createElement("svg",o({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,c,d,{className:r,style:i(i({color:e.color||t.color},t.style),e.style),height:f,width:f,xmlns:"http://www.w3.org/2000/svg"}),l&&a.createElement("title",null,l),e.children)};return void 0!==c?a.createElement(c.Consumer,null,e=>t(e)):t(r)}function m(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"},child:[]}]})(e)}function u(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"},child:[]},{tag:"polyline",attr:{points:"17 8 12 3 7 8"},child:[]},{tag:"line",attr:{x1:"12",x2:"12",y1:"3",y2:"15"},child:[]}]})(e)}function p(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"polyline",attr:{points:"4 7 4 4 20 4 20 7"},child:[]},{tag:"line",attr:{x1:"9",x2:"15",y1:"20",y2:"20"},child:[]},{tag:"line",attr:{x1:"12",x2:"12",y1:"4",y2:"20"},child:[]}]})(e)}function x(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"},child:[]}]})(e)}function v(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{width:"18",height:"18",x:"3",y:"3",rx:"2"},child:[]},{tag:"path",attr:{d:"m9 12 2 2 4-4"},child:[]}]})(e)}function g(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"},child:[]},{tag:"path",attr:{d:"m9 12 2 2 4-4"},child:[]}]})(e)}function j(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]}]})(e)}function k(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"11",cy:"11",r:"8"},child:[]},{tag:"path",attr:{d:"m21 21-4.3-4.3"},child:[]}]})(e)}function _(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"},child:[]}]})(e)}function b(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12 22v-5"},child:[]},{tag:"path",attr:{d:"M9 8V2"},child:[]},{tag:"path",attr:{d:"M15 8V2"},child:[]},{tag:"path",attr:{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"},child:[]}]})(e)}function w(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor"},child:[]},{tag:"circle",attr:{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor"},child:[]},{tag:"circle",attr:{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor"},child:[]},{tag:"circle",attr:{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor"},child:[]},{tag:"path",attr:{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"},child:[]}]})(e)}function C(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{width:"20",height:"16",x:"2",y:"4",rx:"2"},child:[]},{tag:"path",attr:{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"},child:[]}]})(e)}function N(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{width:"7",height:"7",x:"3",y:"3",rx:"1"},child:[]},{tag:"rect",attr:{width:"7",height:"7",x:"14",y:"3",rx:"1"},child:[]},{tag:"rect",attr:{width:"7",height:"7",x:"14",y:"14",rx:"1"},child:[]},{tag:"rect",attr:{width:"7",height:"7",x:"3",y:"14",rx:"1"},child:[]}]})(e)}function y(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"},child:[]},{tag:"path",attr:{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"},child:[]}]})(e)}function L(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z"},child:[]},{tag:"path",attr:{d:"M21 16v2a4 4 0 0 1-4 4h-5"},child:[]}]})(e)}function F(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"},child:[]},{tag:"path",attr:{d:"M14 2v4a2 2 0 0 0 2 2h4"},child:[]},{tag:"path",attr:{d:"M10 9H8"},child:[]},{tag:"path",attr:{d:"M16 13H8"},child:[]},{tag:"path",attr:{d:"M16 17H8"},child:[]}]})(e)}function S(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z"},child:[]},{tag:"path",attr:{d:"M5 21h14"},child:[]}]})(e)}function O(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"},child:[]},{tag:"path",attr:{d:"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z"},child:[]},{tag:"path",attr:{d:"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z"},child:[]},{tag:"path",attr:{d:"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"},child:[]}]})(e)}function P(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"},child:[]}]})(e)}function M(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"12",cy:"12",r:"10"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"1"},child:[]}]})(e)}function T(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"m7 15 5 5 5-5"},child:[]},{tag:"path",attr:{d:"m7 9 5-5 5 5"},child:[]}]})(e)}function E(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"m9 18 6-6-6-6"},child:[]}]})(e)}function A(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M12 7v14"},child:[]},{tag:"path",attr:{d:"M16 12h2"},child:[]},{tag:"path",attr:{d:"M16 8h2"},child:[]},{tag:"path",attr:{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"},child:[]},{tag:"path",attr:{d:"M6 12h2"},child:[]},{tag:"path",attr:{d:"M6 8h2"},child:[]}]})(e)}function W(e){return f({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M5 12h14"},child:[]},{tag:"path",attr:{d:"m12 5 7 7-7 7"},child:[]}]})(e)}const B=window.ReactJSXRuntime,H=(0,e.createContext)(null);function z({defaultValue:t,value:a,onValueChange:r,children:c}){const[n,o]=(0,e.useState)(t??""),s=void 0!==a?a:n,i=(0,e.useCallback)(e=>{void 0===a&&o(e),r?.(e)},[a,r]);return(0,B.jsx)(H.Provider,{value:{active:s,setActive:i},children:c})}function D({children:t}){const a=(0,e.useRef)(null),r=(0,e.useCallback)(e=>{const t=[...a.current.querySelectorAll("[role=tab]:not([disabled])")],r=t.indexOf(document.activeElement);"ArrowRight"===e.key&&t[(r+1)%t.length]?.focus(),"ArrowLeft"===e.key&&t[(r-1+t.length)%t.length]?.focus(),"Home"===e.key&&(e.preventDefault(),t[0]?.focus()),"End"===e.key&&(e.preventDefault(),t[t.length-1]?.focus())},[]);return(0,B.jsx)("div",{ref:a,role:"tablist",onKeyDown:r,className:"fcf7-tab-list",children:t})}const R=(0,e.memo)(function({value:t,disabled:a,children:r}){const{active:c,setActive:n}=(0,e.useContext)(H),o=c===t;return(0,B.jsx)("button",{role:"tab","aria-selected":o,tabIndex:o?0:-1,disabled:a,onClick:()=>!a&&n(t),className:"fcf7-tab-item "+(o?"fcf7-tab-item-active":""),children:r})}),V=(0,e.memo)(function({value:t,unmountOnHide:a=!1,children:r}){const{active:c}=(0,e.useContext)(H),n=c===t;return a&&!n?null:(0,B.jsx)("div",{role:"tabpanel",hidden:!n,style:{animation:n?"fcf7TabFadeIn 0.18s ease":void 0},className:"fcf7-tab-panel",children:r})}),U=(0,window.wp.hooks.createHooks)(),I=function({title:e,desc:t,icon:a,buttonText:r,link:c}){return(0,B.jsxs)("div",{className:"fcf7-info-card",children:[(0,B.jsx)("div",{className:"fcf7-card-icon",children:a}),(0,B.jsx)("h4",{className:"fcf7-card-title",children:e}),(0,B.jsx)("p",{className:"fcf7-card-desc",children:t}),(0,B.jsxs)("a",{className:"fcf7-card-link",href:c,target:"_blank",rel:"noopener noreferrer",children:[r,(0,B.jsx)("span",{children:(0,B.jsx)(E,{})})]})]})},K=()=>{const e=!!FCF7Local?.isProActive;return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)("div",{className:"fcf7-banner",children:[(0,B.jsxs)("div",{className:"fcf7-banner-text",children:[(0,B.jsx)("h2",{children:(0,t.__)("Welcome to CompactForm","compactform")}),(0,B.jsx)("p",{children:(0,t.__)("Advanced fields and stylings for Contact Form 7, built by RSTheme. Enable what you need — each extension loads its assets only when a form actually uses it.","compactform")})]}),(0,B.jsxs)("div",{className:"fcf7-banner-stat",children:[(0,B.jsxs)("span",{className:"fcf7-banner-stat-num",children:[FCF7Local?.activeCount??0,(0,B.jsxs)("span",{children:["/",FCF7Local?.totalCount??0]})]}),(0,B.jsx)("span",{className:"fcf7-banner-stat-label",children:(0,t.__)("Active","compactform")})]})]}),!e&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)("div",{className:"fcf7-pro-hero",children:[(0,B.jsxs)("div",{className:"fcf7-pro-hero-content",children:[(0,B.jsxs)("span",{className:"fcf7-pro-badge",children:[(0,B.jsx)(S,{}),(0,t.__)("Go Pro","compactform")]}),(0,B.jsxs)("h2",{children:[(0,t.__)("Unlock the Full Power of","compactform")," ",(0,B.jsx)("span",{children:(0,t.__)("CompactForm Pro","compactform")})]}),(0,B.jsx)("p",{children:(0,t.__)("Get advanced form features, premium templates, integrations and more. Take your Contact Form 7 experience to the next level with CompactForm Pro.","compactform")}),(0,B.jsxs)("a",{className:"fcf7-btn-pro",href:"https://compactform.rstheme.com/pricing/",target:"_blank",children:[(0,B.jsx)(S,{}),(0,t.__)("Upgrade to Pro","compactform"),(0,B.jsx)(W,{})]})]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock",children:[(0,B.jsxs)("div",{className:"fcf7-pro-mock-fields",children:[(0,B.jsxs)("div",{className:"fcf7-pro-mock-row",children:[(0,B.jsx)(p,{})," ",(0,t.__)("Text Field","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock-row",children:[(0,B.jsx)(C,{})," ",(0,t.__)("Email","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock-row",children:[(0,B.jsx)(T,{})," ",(0,t.__)("Select","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock-row",children:[(0,B.jsx)(v,{})," ",(0,t.__)("Checkbox","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock-row",children:[(0,B.jsx)(M,{})," ",(0,t.__)("Radio","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock-row",children:[(0,B.jsx)(u,{})," ",(0,t.__)("File Upload","compactform")]})]}),(0,B.jsxs)("div",{className:"fcf7-pro-mock-form",children:[(0,B.jsxs)("span",{className:"fcf7-pro-mock-form-badge",children:[(0,B.jsx)(S,{}),(0,t.__)("PRO","compactform")]}),(0,B.jsx)("label",{children:(0,t.__)("Your Name","compactform")}),(0,B.jsx)("span",{className:"fcf7-mock-input"}),(0,B.jsx)("label",{children:(0,t.__)("Email Address","compactform")}),(0,B.jsx)("span",{className:"fcf7-mock-input"}),(0,B.jsx)("label",{children:(0,t.__)("Message","compactform")}),(0,B.jsx)("span",{className:"fcf7-mock-input fcf7-mock-textarea"}),(0,B.jsx)("span",{className:"fcf7-mock-submit",children:(0,t.__)("Submit","compactform")})]})]}),(0,B.jsxs)("div",{className:"fcf7-pro-hero-badges",children:[(0,B.jsxs)("span",{className:"fcf7-pro-feature-pill purple",children:[(0,B.jsx)(_,{}),(0,t.__)("More Fields & Extensions","compactform")]}),(0,B.jsxs)("span",{className:"fcf7-pro-feature-pill green",children:[(0,B.jsx)(b,{}),(0,t.__)("Third Party Integrations","compactform")]}),(0,B.jsxs)("span",{className:"fcf7-pro-feature-pill orange",children:[(0,B.jsx)(w,{}),(0,t.__)("Premium Templates","compactform")]}),(0,B.jsxs)("span",{className:"fcf7-pro-feature-pill blue",children:[(0,B.jsx)(m,{}),(0,t.__)("Advanced Features","compactform")]})]})]}),(0,B.jsxs)("div",{className:"fcf7-pro-benefits",children:[(0,B.jsxs)("div",{className:"fcf7-pro-benefits-text",children:[(0,B.jsx)("h3",{children:(0,t.__)("What you get with Pro?","compactform")}),(0,B.jsx)("p",{children:(0,t.__)("More flexibility. More control. More possibilities.","compactform")})]}),(0,B.jsxs)("div",{className:"fcf7-pro-benefits-list",children:[(0,B.jsxs)("div",{className:"fcf7-pro-benefit-item",children:[(0,B.jsx)("span",{className:"fcf7-pro-benefit-icon blue",children:(0,B.jsx)(N,{})}),(0,t.__)("Advanced Form Fields","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-benefit-item",children:[(0,B.jsx)("span",{className:"fcf7-pro-benefit-icon purple",children:(0,B.jsx)(_,{})}),(0,t.__)("Powerful Extensions","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-benefit-item",children:[(0,B.jsx)("span",{className:"fcf7-pro-benefit-icon pink",children:(0,B.jsx)(w,{})}),(0,t.__)("Premium Templates","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-benefit-item",children:[(0,B.jsx)("span",{className:"fcf7-pro-benefit-icon green",children:(0,B.jsx)(P,{})}),(0,t.__)("Third Party Integrations","compactform")]}),(0,B.jsxs)("div",{className:"fcf7-pro-benefit-item",children:[(0,B.jsx)("span",{className:"fcf7-pro-benefit-icon orange",children:(0,B.jsx)(g,{})}),(0,t.__)("Priority Support","compactform")]})]})]})]}),(0,B.jsxs)("div",{className:"fcf7-welcome-grid",children:[(0,B.jsx)(I,{icon:(0,B.jsx)(L,{}),title:(0,t.__)("Need any help?","compactform"),desc:(0,t.__)("Run into an issue or need a hand? Our team is here to help on the support portal.","compactform"),buttonText:(0,t.__)("Create a ticket","compactform"),link:FCF7Local?.links?.support}),(0,B.jsx)(I,{icon:(0,B.jsx)(x,{}),title:(0,t.__)("Enjoying the plugin?","compactform"),desc:(0,t.__)("A quick review really helps and keeps development going.","compactform"),buttonText:(0,t.__)("Leave a review","compactform"),link:FCF7Local?.links?.review}),(0,B.jsx)(I,{icon:(0,B.jsx)(A,{}),title:(0,t.__)("Knowledge base","compactform"),desc:(0,t.__)("Read the docs to learn how to set up each extension step by step.","compactform"),buttonText:(0,t.__)("Read documentation","compactform"),link:FCF7Local?.links?.docs})]})]})},$=function({label:t,disabled:a=!1,checked:r,onChange:c}){const[n,o]=(0,e.useState)(!1),s=void 0!==r?r:n;return(0,B.jsxs)("label",{className:"fcf7-switcher-wrapper",children:[(0,B.jsxs)("span",{className:"fcf7-switcher",children:[(0,B.jsx)("input",{type:"checkbox",className:"fcf7-item-checkbox",checked:s,disabled:a,onChange:()=>{a||(c?c():o(!n))}}),(0,B.jsx)("span",{className:"fcf7-switch-slider"})]}),t&&(0,B.jsx)("span",{className:"fcf7-switch-label",children:t})]})},G=function({pageTitle:e,pageInfo:a,search:r,setSearch:c,filterTier:n,setFilterTier:o,allActive:s,onEnableAll:i}){return(0,B.jsxs)("div",{className:"fcf7-elements-header",children:[(0,B.jsxs)("div",{className:"fcf7-elements-header-left",children:[(0,B.jsx)("h4",{className:"fcf7-elements-title",children:e}),(0,B.jsx)("p",{className:"fcf7-elements-info",children:a})]}),(0,B.jsxs)("div",{className:"fcf7-elements-header-right",children:[(0,B.jsx)($,{label:(0,t.__)("Enable All","compactform"),checked:s,onChange:i}),(0,B.jsxs)("div",{className:"fcf7-elements-search",children:[(0,B.jsx)("span",{children:(0,B.jsx)(k,{})}),(0,B.jsx)("input",{type:"text",placeholder:(0,t.__)("Search…","compactform"),value:r,onChange:e=>c(e.target.value.toLowerCase())})]}),(0,B.jsxs)("select",{className:"fcf7-elements-filter",value:n,onChange:e=>o(e.target.value),children:[(0,B.jsx)("option",{value:"",children:(0,t.__)("Free + Pro","compactform")}),(0,B.jsx)("option",{value:"free",children:(0,t.__)("Free","compactform")}),(0,B.jsx)("option",{value:"pro",children:(0,t.__)("Pro","compactform")})]})]})]})},Z=function({elementsMap:e,saveStatus:a,handleSave:r}){const c=[{value:"all",title:(0,t.__)("All","compactform")},...Object.entries(e).filter(([e])=>"all"!==e).map(([e,t])=>({value:e,title:t.tabTitle}))];return(0,B.jsxs)("div",{className:"fcf7-elements-action-area",children:[(0,B.jsx)(D,{children:c.map((e,t)=>(0,B.jsx)(R,{value:e.value,children:e.title},t))}),(0,B.jsx)("div",{className:"fcf7-elements-action-btns",children:(0,B.jsxs)("button",{className:`fcf7-save-btn fcf7-save-btn--${a}`,onClick:r,disabled:"saving"===a,children:["saving"===a&&(0,t.__)("Saving…","compactform"),"saved"===a&&(0,t.__)("Saved!","compactform"),"error"===a&&(0,t.__)("Error!","compactform"),"idle"===a&&(0,t.__)("Save Changes","compactform")]})})]})},q=function({element:e,active:a,onToggle:r}){const c=e?.isPro&&!FCF7Local?.isProActive;return(0,B.jsxs)("div",{className:"fcf7-element-card"+(a?"":" is-inactive"),children:[(0,B.jsxs)("div",{className:"fcf7-element-left",children:[(0,B.jsxs)("h5",{className:"fcf7-element-title",children:[e?.title,e?.isPro&&(0,B.jsx)("span",{className:"fcf7-element-pro-badge",children:"Pro"})]}),(0,B.jsx)("div",{className:"fcf7-element-meta",children:e?.docUrl&&(0,B.jsx)("a",{className:"fcf7-element-metalink",href:e.docUrl,target:"_blank",rel:"noreferrer",children:(0,t.__)("Docs","compactform")})})]}),(0,B.jsx)($,{checked:a,onChange:r,disabled:c})]})},J=function({elementsMap:e,inactive:a,setInactive:r,toggleElement:c,search:n,filterTier:o}){const s=!!FCF7Local?.isProActive,i=(e,i)=>{const l=Object.entries(i.elements).filter(([,e])=>(e=>{const t=!n||e.title.toLowerCase().includes(n),a=!o||"free"===o&&!e.isPro||"pro"===o&&e.isPro;return t&&a})(e));if(0===l.length)return null;const d=Object.entries(i.elements).filter(([,e])=>s||!e.isPro).map(([e])=>e),f=d.every(e=>!a.includes(e));return(0,B.jsxs)("div",{className:"fcf7-elements-group",children:[(0,B.jsxs)("div",{className:"fcf7-elements-group-header",children:[(0,B.jsx)("h3",{className:"fcf7-elements-group-title",children:i.title}),(0,B.jsx)($,{label:(0,t.__)("Enable All","compactform"),checked:f,onChange:()=>{r(f?e=>[...new Set([...e,...d])]:e=>e.filter(e=>!d.includes(e)))}})]}),(0,B.jsx)("div",{className:"fcf7-elements-group-grid",children:l.map(([e,t])=>(0,B.jsx)(q,{element:t,active:!a.includes(e),onToggle:()=>c(e)},e))})]},e)},l=(0,B.jsx)("p",{className:"fcf7-no-results",children:(0,t.__)("No results found.","compactform")}),d=Object.entries(e).map(([e,t])=>i(e,t));return(0,B.jsxs)("div",{className:"fcf7-elements-tab-content",children:[(0,B.jsx)(V,{value:"all",unmountOnHide:!0,children:d.some(Boolean)?d:l}),Object.entries(e).filter(([e])=>"all"!==e).map(([e,t])=>(0,B.jsx)(V,{value:e,unmountOnHide:!0,children:i(e,t)??l},e))]})},X=function(){const[a,r]=(0,e.useState)(""),[c,n]=(0,e.useState)(""),[o,s]=(0,e.useState)(FCF7Local?.inactiveExtensions||[]),[i,l]=(0,e.useState)("idle"),[d,f]=(0,e.useState)("all"),h=FCF7Local.extensionsMap,m=!!FCF7Local?.isProActive,u=Object.values(h).flatMap(e=>Object.entries(e.elements).filter(([,e])=>m||!e.isPro).map(([e])=>e)),p=Object.values(h).flatMap(e=>Object.keys(e.elements)).length,x=u.filter(e=>!o.includes(e)).length,v=u.every(e=>!o.includes(e));return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(G,{pageTitle:(0,t.__)("Extensions","compactform"),pageInfo:`${p} ${(0,t.__)("Total Extensions","compactform")} | ${x} ${(0,t.__)("Active","compactform")}`,search:a,setSearch:r,filterTier:c,setFilterTier:n,allActive:v,onEnableAll:()=>{s(v?e=>[...new Set([...e,...u])]:e=>e.filter(e=>!u.includes(e)))}}),(0,B.jsxs)(z,{value:d,onValueChange:e=>f(e),children:[(0,B.jsx)(Z,{elementsMap:h,saveStatus:i,handleSave:async()=>{l("saving");try{const e=new FormData;e.append("action","fcf7_save_elements_config"),e.append("nonce",FCF7Local.nonce),e.append("config",JSON.stringify(o)),e.append("type","extensions");const t=await fetch(FCF7Local.ajaxUrl,{method:"POST",body:e});(await t.json()).success?(FCF7Local.inactiveExtensions=o,l("saved")):l("error")}catch{l("error")}finally{setTimeout(()=>l("idle"),2500)}}}),(0,B.jsx)(J,{elementsMap:h,inactive:o,setInactive:s,toggleElement:e=>{s(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},search:a,filterTier:c})]})]})},Y=window.wp.components;function Q({status:e}){return(0,B.jsxs)("button",{type:"submit",className:`fcf7-save-btn fcf7-save-btn--${e}`,disabled:"saving"===e,children:["saving"===e&&(0,t.__)("Saving…","compactform"),"saved"===e&&(0,t.__)("Saved!","compactform"),"error"===e&&(0,t.__)("Error!","compactform"),"idle"===e&&(0,t.__)("Save Changes","compactform")]})}function ee(){const a=FCF7Local?.recaptchaSettings||{},[r,c]=(0,e.useState)(a.siteKey||""),[n,o]=(0,e.useState)(""),[s,i]=(0,e.useState)(!!a.hasSecretKey),[l,d]=(0,e.useState)("idle");return(0,B.jsxs)("div",{className:"fcf7-config-container",children:[(0,B.jsxs)("h2",{className:"fcf7-config-heading",children:[(0,B.jsx)(g,{})," ",(0,t.__)("Google reCAPTCHA (v3)","compactform")]}),(0,B.jsx)("p",{className:"fcf7-config-text",children:(0,t.__)("Credentials for the Google reCAPTCHA field. Generate a v3 key pair at google.com/recaptcha/admin.","compactform")}),(0,B.jsxs)("form",{className:"fcf7-config-form",onSubmit:async e=>{e.preventDefault(),d("saving");try{const e=new FormData;e.append("action","fcf7_save_recaptcha_settings"),e.append("nonce",FCF7Local.nonce),e.append("site_key",r),e.append("secret_key",n);const t=await fetch(FCF7Local.ajaxUrl,{method:"POST",body:e}),a=await t.json();a.success?(FCF7Local.recaptchaSettings=a.data.settings,i(!!a.data.settings.hasSecretKey),o(""),d("saved")):d("error")}catch{d("error")}finally{setTimeout(()=>d("idle"),2500)}},children:[(0,B.jsxs)("div",{className:"fcf7-config-grid",children:[(0,B.jsx)(Y.TextControl,{__next40pxDefaultSize:!0,label:(0,t.__)("Site Key","compactform"),value:r,onChange:c,autoComplete:"off"}),(0,B.jsx)(Y.TextControl,{__next40pxDefaultSize:!0,type:"password",label:(0,t.__)("Secret Key","compactform"),value:n,onChange:o,placeholder:s?"••••••••••••••••":(0,t.__)("Not set","compactform"),help:s?(0,t.__)("Leave blank to keep the saved secret key.","compactform"):"",autoComplete:"new-password"})]}),(0,B.jsx)(Q,{status:l})]})]})}const te=function(){const e=U.applyFilters("fcf7Dashboard.configurationSections",[]);return(0,B.jsxs)("div",{className:"fcf7-config-page",children:[(0,B.jsx)(ee,{}),e]})},ae=function(){const[a,r]=(0,e.useState)(()=>new URLSearchParams(location.search).get("tab")??"welcome"),c=U.applyFilters("fcf7Dashboard.tabs",[]);return(0,B.jsxs)(z,{value:a,onValueChange:e=>{r(e);const t=new URL(location.href);t.searchParams.set("tab",e),history.pushState({},"",t)},children:[(0,B.jsxs)("div",{className:"fcf7-dashboard-header",children:[(0,B.jsxs)("div",{className:"fcf7-logo",children:[FCF7Local?.logoUrl?(0,B.jsx)("img",{className:"fcf7-logo-img",src:FCF7Local.logoUrl,alt:(0,t.__)("CompactForm","compactform")}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)("span",{className:"fcf7-logo-mark","aria-hidden":"true",children:"F"}),(0,t.__)("CompactForm","compactform")]}),(0,B.jsxs)("span",{className:"fcf7-logo-badge",children:["v",FCF7Local?.version]})]}),(0,B.jsxs)("a",{className:"fcf7-doc-link",href:FCF7Local?.links?.forms,children:[(0,B.jsx)(F,{}),(0,B.jsx)("span",{children:(0,t.__)("Contact Forms","compactform")})]})]}),(0,B.jsxs)("div",{className:"fcf7-dashboard-pages",children:[(0,B.jsx)("div",{className:"fcf7-dashboard-sidebar",children:(0,B.jsxs)(D,{children:[(0,B.jsxs)(R,{value:"welcome",children:[(0,B.jsx)("span",{className:"fcf7-tab-icon",children:(0,B.jsx)(y,{})}),(0,t.__)("Welcome","compactform")]}),(0,B.jsxs)(R,{value:"extensions",children:[(0,B.jsx)("span",{className:"fcf7-tab-icon",children:(0,B.jsx)(O,{})}),(0,t.__)("Extensions","compactform")]}),(0,B.jsxs)(R,{value:"configuration",children:[(0,B.jsx)("span",{className:"fcf7-tab-icon",children:(0,B.jsx)(j,{})}),(0,t.__)("Configuration","compactform")]}),c.map(e=>(0,B.jsxs)(R,{value:e.id,children:[(0,B.jsx)("span",{className:"fcf7-tab-icon",children:e.icon}),e.label]},e.id))]})}),(0,B.jsxs)("div",{className:"fcf7-dashboard-content",children:[(0,B.jsx)(V,{value:"welcome",unmountOnHide:!0,children:(0,B.jsx)(K,{})}),(0,B.jsx)(V,{value:"extensions",unmountOnHide:!0,children:(0,B.jsx)(X,{})}),(0,B.jsx)(V,{value:"configuration",unmountOnHide:!0,children:(0,B.jsx)(te,{})}),c.map(e=>(0,B.jsx)(V,{value:e.id,unmountOnHide:!0,children:e.render()},e.id))]})]})]})};window.FCF7Dashboard=window.FCF7Dashboard||{},window.FCF7Dashboard.hooks=U,document.addEventListener("DOMContentLoaded",()=>{const t=document.getElementById("fcf7-dashboard");t&&(0,e.createRoot)(t).render((0,B.jsx)(ae,{}))})})();
  • compactform/trunk/assets/editor/index-rtl.css

    r3719086 r3721164  
    1 .fcf7b-ms-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.fcf7b-ms-tab{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:6px;color:#6b7280;cursor:pointer;font-size:11.5px;font-weight:600;padding:5px 10px}.fcf7b-ms-tab.is-active{background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-steps{display:flex;margin-bottom:14px}.fcf7b-ms-step{align-items:center;display:flex;flex:1 1 0;flex-direction:column;gap:6px;min-width:0;position:relative;text-align:center}.fcf7b-ms-step:not(:last-child):after{background:#0091fa;content:"";height:2px;right:50%;position:absolute;top:15px;width:100%;z-index:0}.fcf7b-ms-step-circle{align-items:center;background:#fff;border:2px solid #0091fa;border-radius:50%;color:#0091fa;cursor:pointer;display:flex;flex:0 0 auto;font-size:15px;height:32px;justify-content:center;padding:0;position:relative;width:32px;z-index:1}.fcf7b-ms-step-check{display:none;height:15px;width:15px}.fcf7b-ms-step.is-active .fcf7b-ms-step-circle,.fcf7b-ms-step.is-done .fcf7b-ms-step-circle{background:#0091fa;color:#fff}.fcf7b-ms-step.is-done .fcf7b-ms-step-num{display:none}.fcf7b-ms-step.is-done .fcf7b-ms-step-check{display:block}.fcf7b-ms-step-label{color:#1e2126;font-size:11px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-ms-nav-buttons,.fcf7b-ms-nav-buttons p{display:flex;gap:8px;justify-content:space-between;margin-top:10px;width:100%}.fcf7b-ms-nav-buttons button{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:7px;color:#1e2126;cursor:pointer;font-size:11.5px;font-weight:600;padding:7px 14px}.fcf7b-ms-nav-buttons button:disabled{cursor:not-allowed;opacity:.4}.fcf7b-ms-nav-buttons .fcf7b-ms-next:not(:disabled){background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;min-height:70px;padding:20px}.fcf7b-ms-panel>.fcf7b-ms-stack{display:block}.fcf7b-ms-cell{margin-bottom:10px}.fcf7b-ms-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-repeater{--fcf7-rep-accent:#0091fa;display:block}.fcf7-repeater-row{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:8px;margin-bottom:10px;padding:12px 14px;position:relative}.fcf7-repeater-row-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7-repeater-row-head:has(>.fcf7-repeater-row-title:empty){justify-content:flex-end}.fcf7-repeater-row-title{color:#1e2126;font-size:12px;font-weight:700;letter-spacing:.01em}.fcf7-repeater-remove{background:#fff;border:1px solid #e3e5ea;border-radius:6px;color:#b91c1c;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:4px 10px}.fcf7-repeater-remove:hover:not(:disabled){background:#fef2f2;border-color:#b91c1c}.fcf7-repeater-remove:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater-actions{display:flex}.fcf7-repeater-add{background:var(--fcf7-rep-accent);border:1px solid var(--fcf7-rep-accent);border-radius:7px;color:#fff;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:7px 14px}.fcf7-repeater-add:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater .fcf7-repeater-row{background:var(--fcf7b-panel);border-color:var(--fcf7b-border)}.fcf7-repeater .fcf7-repeater-row-title{color:var(--fcf7b-text)}.fcf7b-rep-dropbox{min-height:70px}.fcf7b-rep-dropbox>.fcf7b-rep-stack{display:block}.fcf7b-rep-cell{margin-bottom:10px}.fcf7b-rep-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-builder-root{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7b-radius:10px}@media(prefers-color-scheme:dark){.fcf7-builder-root{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25)}}.fcf7-builder-root button{transition:all .3s}.fcf7-builder-root,.fcf7b-app{box-sizing:border-box}.fcf7b-boot{color:var(--fcf7b-muted);padding:40px}.fcf7b-app{background:var(--fcf7b-bg);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);color:var(--fcf7b-text);font-size:13px;line-height:1.45;margin-top:6px;overflow:hidden}.fcf7b-app.fcf7-builder-theme-light{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7-field-bg:#fff;--fcf7-field-color:#1e2126;--fcf7-field-border:#d5d8dc;--fcf7-field-placeholder:#9aa1ad;--fcf7-label-color:#1e2126;--fcf7-muted:#6b7280;color-scheme:light}.fcf7b-app.fcf7-builder-theme-dark{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25);--fcf7-field-bg:#1b1e24;--fcf7-field-color:#e7e9ee;--fcf7-field-border:#3a3f4b;--fcf7-field-placeholder:#7c848f;--fcf7-label-color:#f2f4f8;--fcf7-muted:#9aa1ad;color-scheme:dark}.fcf7b-app *,.fcf7b-app :after,.fcf7b-app :before{box-sizing:border-box}.fcf7b-app.is-fullscreen{border:0;border-radius:0;display:flex;flex-direction:column;inset:0;margin:0;position:fixed;z-index:100000}.fcf7b-app.is-fullscreen .fcf7b-toolbar{flex:0 0 auto}.fcf7b-app.is-fullscreen .fcf7b-code,.fcf7b-app.is-fullscreen .fcf7b-columns{flex:1 1 auto;height:auto;min-height:0}.fcf7b-spinner{animation:fcf7b-spin .7s linear infinite;border:2px solid var(--fcf7b-border);border-radius:50%;border-top-color:var(--fcf7b-accent);display:inline-block;flex:0 0 auto;height:14px;width:14px}@keyframes fcf7b-spin{to{transform:rotate(-1turn)}}@media(prefers-reduced-motion:reduce){.fcf7b-spinner{animation-duration:2s}}.fcf7b-toolbar{align-items:center;background:var(--fcf7b-panel);border-bottom:1px solid var(--fcf7b-border);display:flex;gap:16px;padding:10px 14px;position:relative}.fcf7b-toolbar .fcf7b-brand{align-items:center;color:var(--fcf7b-accent);display:flex;font-weight:700;letter-spacing:.2px}.fcf7b-toolbar .fcf7b-brand .fcf7b-brand-logo{display:block;height:26px;max-width:160px;width:auto}.fcf7b-toolbar .fcf7b-tabs{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;padding:3px}.fcf7b-toolbar .fcf7b-tabs button{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.fcf7b-toolbar .fcf7b-tabs button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-text)}.fcf7b-toolbar .fcf7b-tb-right{align-items:center;display:flex;gap:8px;margin-right:auto}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-count{color:var(--fcf7b-muted);font-size:12px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:14px;height:24px;place-items:center;width:26px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button:hover{color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:15px;height:30px;width:30px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:disabled{cursor:default;opacity:.3}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);height:26px;width:28px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost:hover:not(:disabled){background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-tb-div{align-self:stretch;background:var(--fcf7b-border);margin:3px;width:1px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg{display:inline-flex;position:relative}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);padding:8px;position:absolute;left:0;top:calc(100% + 8px);z-index:100003}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-swatches{display:grid;gap:6px;grid-template-columns:repeat(6,1fr)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw{border:1px solid var(--fcf7b-border);border-radius:5px;cursor:pointer;height:22px;padding:0}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-active{border-color:var(--fcf7b-accent);box-shadow:0 0 0 2px var(--fcf7b-accent-soft)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-default{background:linear-gradient(-45deg,transparent 45%,var(--fcf7b-danger) 45%,var(--fcf7b-danger) 55%,transparent 55%) var(--fcf7b-panel-2)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-custom{align-items:center;border-top:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:flex;font-size:11px;gap:10px;justify-content:space-between;margin-top:8px;padding-top:8px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{overflow:visible}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:92px;overflow:hidden;padding:7px 16px;position:relative;transition:background .15s ease,opacity .15s ease}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:hover{background:color-mix(in srgb,var(--fcf7b-accent),#000 20%)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:disabled{cursor:default;opacity:.7}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--saved{background:#16a34a}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--error{background:#dc2626}.fcf7b-progress{background:transparent;bottom:-1px;height:2px;right:0;opacity:0;position:absolute;left:0;transition:opacity .25s ease}.fcf7b-progress.is-active{opacity:1}.fcf7b-progress-fill{background:var(--fcf7b-accent);display:block;height:100%;transition:width .3s ease;width:0}.fcf7b-progress--error .fcf7b-progress-fill{background:#dc2626}.fcf7b-columns{display:grid;grid-template-columns:232px 1fr 288px;height:640px}.fcf7b-palette,.fcf7b-props{background:var(--fcf7b-panel);overflow-y:auto}.fcf7b-bxsh-pop,.fcf7b-canvas-wrap,.fcf7b-code,.fcf7b-gs-body,.fcf7b-gs-sidebar,.fcf7b-gspanel-preview,.fcf7b-palette,.fcf7b-props,.fcf7b-select-list,.fcf7b-typo-pop,.fcf7b-unit-list{scrollbar-color:var(--fcf7b-border) transparent;scrollbar-width:thin}.fcf7b-bxsh-pop::-webkit-scrollbar,.fcf7b-canvas-wrap::-webkit-scrollbar,.fcf7b-code::-webkit-scrollbar,.fcf7b-gs-body::-webkit-scrollbar,.fcf7b-gs-sidebar::-webkit-scrollbar,.fcf7b-gspanel-preview::-webkit-scrollbar,.fcf7b-palette::-webkit-scrollbar,.fcf7b-props::-webkit-scrollbar,.fcf7b-select-list::-webkit-scrollbar,.fcf7b-typo-pop::-webkit-scrollbar,.fcf7b-unit-list::-webkit-scrollbar{height:9px;width:9px}.fcf7b-bxsh-pop::-webkit-scrollbar-track,.fcf7b-canvas-wrap::-webkit-scrollbar-track,.fcf7b-code::-webkit-scrollbar-track,.fcf7b-gs-body::-webkit-scrollbar-track,.fcf7b-gs-sidebar::-webkit-scrollbar-track,.fcf7b-gspanel-preview::-webkit-scrollbar-track,.fcf7b-palette::-webkit-scrollbar-track,.fcf7b-props::-webkit-scrollbar-track,.fcf7b-select-list::-webkit-scrollbar-track,.fcf7b-typo-pop::-webkit-scrollbar-track,.fcf7b-unit-list::-webkit-scrollbar-track{background:transparent}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb,.fcf7b-code::-webkit-scrollbar-thumb,.fcf7b-gs-body::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb,.fcf7b-palette::-webkit-scrollbar-thumb,.fcf7b-props::-webkit-scrollbar-thumb,.fcf7b-select-list::-webkit-scrollbar-thumb,.fcf7b-typo-pop::-webkit-scrollbar-thumb,.fcf7b-unit-list::-webkit-scrollbar-thumb{background:var(--fcf7b-border);background-clip:content-box;border:2px solid transparent;border-radius:10px}.fcf7b-bxsh-pop:hover::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap:hover::-webkit-scrollbar-thumb,.fcf7b-code:hover::-webkit-scrollbar-thumb,.fcf7b-gs-body:hover::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar:hover::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview:hover::-webkit-scrollbar-thumb,.fcf7b-palette:hover::-webkit-scrollbar-thumb,.fcf7b-props:hover::-webkit-scrollbar-thumb,.fcf7b-select-list:hover::-webkit-scrollbar-thumb,.fcf7b-typo-pop:hover::-webkit-scrollbar-thumb,.fcf7b-unit-list:hover::-webkit-scrollbar-thumb{background:var(--fcf7b-muted);background-clip:content-box}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb:hover,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb:hover,.fcf7b-code::-webkit-scrollbar-thumb:hover,.fcf7b-gs-body::-webkit-scrollbar-thumb:hover,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb:hover,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb:hover,.fcf7b-palette::-webkit-scrollbar-thumb:hover,.fcf7b-props::-webkit-scrollbar-thumb:hover,.fcf7b-select-list::-webkit-scrollbar-thumb:hover,.fcf7b-typo-pop::-webkit-scrollbar-thumb:hover,.fcf7b-unit-list::-webkit-scrollbar-thumb:hover{background:var(--fcf7b-accent);background-clip:content-box}.fcf7b-palette{border-left:1px solid var(--fcf7b-border);padding:12px}.fcf7b-app .fcf7b-search{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;color:var(--fcf7b-text);margin-bottom:12px;padding:8px 10px;width:100%}.fcf7b-app .fcf7b-search::placeholder{color:var(--fcf7b-muted)}.fcf7b-pal-group{margin-bottom:16px}.fcf7b-pal-title{color:var(--fcf7b-muted);font-size:10.5px;font-weight:700;letter-spacing:.8px;margin:0 2px 8px 0;text-transform:uppercase}.fcf7b-pal-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.fcf7b-pal-item{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:9px;color:var(--fcf7b-text);cursor:grab;display:flex;flex-direction:column;gap:6px;padding:12px 6px;position:relative;transition:all .12s}.fcf7b-pal-item:hover{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);transform:translateY(-1px)}.fcf7b-pal-item:active{cursor:grabbing}.fcf7b-pal-pro{display:grid;right:6px;place-items:center;position:absolute;top:6px}.fcf7b-pal-pro svg{fill:#ffad00;height:14px;width:14px}.fcf7b-pal-icon{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;display:grid;font-size:18px;height:30px;place-items:center;width:30px}.fcf7b-pal-label{font-size:11.5px;font-weight:600}.fcf7b-canvas-wrap{background-size:18px 18px;overflow-y:auto;padding:40px 22px}.fcf7b-canvas-grid{margin:0 auto;max-width:1100px;transition:max-width .18s ease;width:100%}.fcf7b-canvas-row{display:block}.fcf7b-gs{position:relative}.fcf7b-gs>.fcf7b-ghost.is-open,.fcf7b-gs>.fcf7b-ghost.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gs-backdrop{backdrop-filter:blur(2px);background:rgba(15,18,26,.55);inset:0;position:fixed;z-index:99}.fcf7b-gs-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;height:800px;inset:0;margin:auto;max-height:90vh;max-width:90vw;overflow:hidden;position:fixed;text-align:right;width:800px;z-index:100}.fcf7b-gs-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);flex:0 0 auto;font-size:14px;font-weight:700;padding:16px 20px;position:relative}.fcf7b-gs-close{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:16px;height:28px;place-items:center;position:absolute;left:12px;top:10px;width:28px}.fcf7b-gs-close:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-gs-main{display:flex;flex:1 1 auto;min-height:0}.fcf7b-gs-sidebar{background:var(--fcf7b-panel-2);border-left:1px solid var(--fcf7b-border);flex:0 0 220px;overflow-y:auto;padding:12px}.fcf7b-gs-navitem{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:2px;padding:8px 10px;text-align:right;width:100%}.fcf7b-gs-navitem i{font-size:15px}.fcf7b-gs-navitem:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-gs-navitem.active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gs-body{flex:1 1 auto;overflow-y:auto;padding:20px}.fcf7b-gspanel-sec+.fcf7b-gspanel-sec{margin-top:28px}.fcf7b-gspanel-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);font-size:13px;font-weight:700;margin:0 0 16px;padding-bottom:12px}.fcf7b-gspanel-head--split{align-items:center;display:flex;gap:12px;justify-content:space-between}.fcf7b-gspanel-notice{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-right:3px solid var(--fcf7b-danger);border-radius:6px;color:var(--fcf7b-muted);font-size:12px;line-height:1.6;margin-bottom:16px;padding:10px 12px}.fcf7b-gspanel-notice a{color:var(--fcf7b-accent)}.fcf7b-gspanel-toggle{align-items:center;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;margin-bottom:20px}.fcf7b-gspanel-switch{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.fcf7b-gspanel-switchlabel{color:var(--fcf7b-text);font-size:12px;font-weight:600}.fcf7b-gspanel-switchlabel em{color:var(--fcf7b-muted);display:block;font-size:11px;font-style:normal;font-weight:400;line-height:1.6;margin-top:4px}.fcf7b-gspanel-field{margin-bottom:18px}.fcf7b-gspanel-field label{color:var(--fcf7b-text);display:block;font-size:12px;font-weight:600;margin-bottom:6px}.fcf7b-gspanel-field input[type=number],.fcf7b-gspanel-field input[type=text],.fcf7b-gspanel-field textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;box-sizing:border-box;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-field textarea{display:block;font-family:inherit;line-height:1.6;min-height:96px;resize:vertical}.fcf7b-gspanel-row{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.fcf7b-gspanel-rowlabel{align-items:center;color:var(--fcf7b-text);display:inline-flex;font-size:12px;font-weight:600;gap:6px}.fcf7b-gspanel-num{align-items:center;display:inline-flex;gap:5px}.fcf7b-gspanel-num input{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:6px 8px;text-align:center;width:82px}.fcf7b-gspanel-num em{color:var(--fcf7b-muted);font-size:11px;font-style:normal}.fcf7b-gspanel-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.6;margin:6px 0 0}.fcf7b-gspanel-desc code{background:var(--fcf7b-panel-2);border-radius:4px;padding:1px 4px}.fcf7b-gspanel-intro{margin:-8px 0 18px}.fcf7b-gspanel-subhead{color:var(--fcf7b-muted);font-size:12px;font-weight:700;letter-spacing:.04em;margin:26px 0 14px;text-transform:uppercase}.fcf7b-gspanel-colorrow{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:6px 0}.fcf7b-gspanel-colorrow>span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-gspanel-cols{display:flex;gap:12px}.fcf7b-gspanel-cols>*{flex:1 1 0;min-width:0}.fcf7b-gspanel-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.fcf7b-gspanel-rowline{align-items:center;display:flex;gap:8px}.fcf7b-gspanel-cell{flex:1 1 0;min-width:0}.fcf7b-gspanel-cell input[type=number],.fcf7b-gspanel-cell input[type=text]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-cell--narrow{flex:0 0 130px}.fcf7b-gspanel-del{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:30px;place-items:center;width:30px}.fcf7b-gspanel-del:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-gspanel-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11px;font-weight:600;gap:6px;padding:6px 12px}.fcf7b-gspanel-add:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gspanel-none{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11px;margin:0;padding:10px 12px}.fcf7b-gspanel-rowhead{color:var(--fcf7b-muted);font-size:11px;font-weight:600}.fcf7b-gspanel-headspacer{flex:0 0 30px}.fcf7b-gspanel-lead{margin:0 0 10px}.fcf7b-gspanel-warn{color:var(--fcf7b-danger)}.fcf7b-gspanel-tabs{background:var(--fcf7b-panel-2);border-radius:8px;display:flex;gap:3px;margin:0 0 18px;padding:3px}.fcf7b-gspanel-tab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:11px;font-weight:600;min-width:0;padding:6px 10px}.fcf7b-gspanel-tab:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-tab.is-active{background:var(--fcf7b-panel);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fcf7b-text)}.fcf7b-gspanel-pinned{border-top:1px solid var(--fcf7b-border);margin-top:20px;padding-top:16px}.fcf7b-gspanel-more{margin-top:10px}.fcf7b-gspanel-more summary{color:var(--fcf7b-muted);cursor:pointer;font-size:11px;font-weight:600}.fcf7b-gspanel-more summary:hover{color:var(--fcf7b-accent)}.fcf7b-gspanel-textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;line-height:1.6;padding:8px 10px;resize:vertical;width:100%}.fcf7b-gspanel-testrow{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.fcf7b-gspanel-testrow button[disabled]{cursor:default;opacity:.5}.fcf7b-gspanel-testrow button[disabled]:hover{border-color:var(--fcf7b-border);color:var(--fcf7b-muted)}.fcf7b-gspanel-testmsg{color:var(--fcf7b-muted);font-size:11px;line-height:1.5}.fcf7b-gspanel-testmsg.is-ok{color:var(--fcf7b-accent)}.fcf7b-gspanel-testmsg.is-fail{color:var(--fcf7b-danger)}.fcf7b-gspanel-preview{color:var(--fcf7b-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.7;margin:0;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.fcf7b-gspanel-devsw,.fcf7b-gspanel-preview{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px}.fcf7b-gspanel-devsw{display:inline-flex;gap:2px;padding:2px}.fcf7b-gspanel-devsw button{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;height:22px;justify-content:center;padding:0;width:24px}.fcf7b-gspanel-devsw button:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-devsw button.is-active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gspanel-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;margin-top:10px;padding:6px 10px;width:100%}.fcf7b-gspanel-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}@keyframes fcf7b-tpl-spin{to{transform:rotate(-1turn)}}@keyframes fcf7b-tpl-shimmer{to{background-position:300% 0}}.fcf7b-tpl-pop{width:1040px}.fcf7b-tpl-head{align-items:center;display:flex;gap:8px}.fcf7b-tpl-logo{height:20px;object-fit:contain;width:20px}.fcf7b-tpl-refresh{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:15px;height:28px;place-items:center;position:absolute;left:46px;top:10px;width:28px}.fcf7b-tpl-refresh:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-refresh.is-busy i{animation:fcf7b-tpl-spin .8s linear infinite}.fcf7b-tpl-search{background:transparent!important;border:1px solid var(--fcf7b-border)!important;border-radius:6px;color:var(--fcf7b-text);font-size:13px;margin-bottom:10px;padding:6px 10px;width:100%}.fcf7b-tpl-sidebar .fcf7b-gs-navitem{text-transform:capitalize}.fcf7b-tpl-navall.is-on{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-count,.fcf7b-tpl-navall.is-on{box-shadow:inset 0 0 0 1px var(--fcf7b-border)}.fcf7b-tpl-count{background:var(--fcf7b-panel-2);border-radius:999px;color:var(--fcf7b-muted);font-size:11px;font-weight:700;margin-right:auto;padding:1px 7px}.fcf7b-gs-navitem.active .fcf7b-tpl-count{background:hsla(0,0%,100%,.25);box-shadow:none;color:#fff}.fcf7b-tpl-body{display:block}.fcf7b-tpl-note{color:var(--fcf7b-muted);font-size:13px;margin:0 0 12px}.fcf7b-tpl-note--error{color:#dc2626}.fcf7b-tpl-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.fcf7b-tpl-grid[hidden]{display:none}.fcf7b-tpl-card{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.fcf7b-tpl-thumb{background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:grid;font-size:28px;height:190px;overflow:hidden;place-items:center;position:relative}.fcf7b-tpl-thumb img{height:100%;object-fit:cover;object-position:top center;width:100%}.fcf7b-tpl-skel{gap:10px;padding:0 12px 12px}.fcf7b-tpl-skel span{animation:fcf7b-tpl-shimmer 1.2s linear infinite;background:linear-gradient(-90deg,var(--fcf7b-panel-2) 0,var(--fcf7b-border) 50%,var(--fcf7b-panel-2) 100%);background-size:200% 100%;border-radius:6px}.fcf7b-tpl-skel-thumb{border-radius:0;height:190px;margin:0 -12px}.fcf7b-tpl-skel-line{height:12px;width:70%}.fcf7b-tpl-skel-line--short{width:45%}.fcf7b-tpl-skel-btn{align-self:flex-end;height:30px;margin-top:4px;width:72px}.fcf7b-tpl-zoom{background:rgba(15,18,26,.55);border:0;border-radius:6px;color:#fff;cursor:pointer;display:grid;font-size:15px;height:28px;right:8px;opacity:.65;place-items:center;position:absolute;top:8px;transition:opacity .12s ease;width:28px}.fcf7b-tpl-zoom:focus-visible,.fcf7b-tpl-zoom:hover{background:rgba(15,18,26,.75);opacity:1}.fcf7b-tpl-card:hover .fcf7b-tpl-zoom{opacity:1}.fcf7b-tpl-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.fcf7b-tpl-badge{color:green!important;font-size:11px;font-weight:600;text-transform:capitalize}.fcf7b-tpl-badge--pro{background:#fc0;border-radius:4px;color:#000!important;inset-block-start:10px;inset-inline-end:10px;padding:2px 8px;position:absolute}.fcf7b-tpl-navhead{color:var(--fcf7b-heading);font-size:12px;font-weight:700;letter-spacing:.04em;margin:14px 0 6px;padding:0 10px;text-transform:uppercase}.fcf7b-tpl-meta{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.fcf7b-tpl-meta strong{color:var(--fcf7b-text);font-size:15px}.fcf7b-tpl-meta span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-tpl-actions{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding:0 12px 12px}.fcf7b-tpl-preview{align-items:center;background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:6px 12px;text-decoration:none}.fcf7b-tpl-preview:focus,.fcf7b-tpl-preview:hover{border-color:var(--fcf7b-accent);box-shadow:none;color:var(--fcf7b-accent)}.fcf7b-tpl-import{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-tpl-import:disabled{cursor:default;opacity:.6}.fcf7b-tpl-light{align-items:center;background:rgba(15,18,26,.88);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100004}.fcf7b-tpl-light-panel{background:#fff;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.45);max-height:92vh;overflow:auto;width:min(1100px,92vw)}.fcf7b-tpl-light img{display:block;height:auto;width:100%}.fcf7b-tpl-light-bar{align-items:center;display:flex;gap:8px;position:fixed;left:16px;top:16px;z-index:1}.fcf7b-tpl-light-count{color:#fff;font-size:12px;font-weight:600}.fcf7b-tpl-light-close,.fcf7b-tpl-light-nav{background:hsla(0,0%,100%,.14);border:0;border-radius:8px;color:#fff;cursor:pointer;display:grid;flex:0 0 auto;font-size:18px;height:32px;place-items:center;width:32px}.fcf7b-tpl-light-close:hover,.fcf7b-tpl-light-nav:hover{background:hsla(0,0%,100%,.28)}.fcf7b-tpl-light-close{margin-right:4px}.fcf7b-ctl-device{color:var(--fcf7b-accent);font-size:12px;margin-right:6px;vertical-align:middle}.fcf7b-empty{color:var(--fcf7b-muted);padding:80px 20px;text-align:center}.fcf7b-empty-emoji{font-size:34px;margin-bottom:10px}.fcf7b-cell{margin-bottom:var(--fcf7b-cell-gap,20px);position:relative}.fcf7b-cell>.fcf7b-card{height:100%}.fcf7b-cell.is-drop-after:after,.fcf7b-cell.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";height:3px;right:0;position:absolute;left:0;z-index:2}.fcf7b-cell.is-drop-before:before{top:0}.fcf7b-cell.is-drop-after:after{bottom:0}.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap{flex:0 1 auto;max-width:none;width:auto}.is-drop-in.is-drop-in{background:color-mix(in srgb,var(--fcf7b-accent) 10%,transparent);border-radius:4px;outline:2px solid var(--fcf7b-accent);outline-offset:2px}.fcf7b-card{border:1px dashed transparent;cursor:pointer;position:relative;transition:all .12s}.fcf7b-card.is-selected,.fcf7b-card:hover{border-color:var(--fcf7b-accent)}.fcf7b-card.is-selected>.fcf7b-hdl,.fcf7b-card:hover>.fcf7b-hdl{opacity:1;visibility:visible}.fcf7b-card.is-selected{background:color-mix(in srgb,var(--fcf7b-accent) 7%,transparent)}.fcf7b-card-body h1,.fcf7b-card-body h2,.fcf7b-card-body h3,.fcf7b-card-body h4,.fcf7b-card-body h5,.fcf7b-card-body h6{color:var(--fcf7b-heading)}.fcf7b-hdl{align-items:center;color:var(--fcf7b-accent-fg);display:inline-flex;font-size:12px;line-height:1;opacity:0;position:absolute;transition:opacity .12s;visibility:hidden;z-index:3}.fcf7b-hdl .fcf7b-hdl-grip,.fcf7b-hdl button{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-size:13px;height:18px;justify-content:center;line-height:1;padding:0;width:20px}.fcf7b-hdl .fcf7b-hdl-grip:hover,.fcf7b-hdl button:hover{background:hsla(0,0%,100%,.22)}.fcf7b-hdl .fcf7b-hdl-grip.danger:hover,.fcf7b-hdl button.danger:hover{background:var(--fcf7b-danger)}.fcf7b-hdl button{width:26px}.fcf7b-hdl .fcf7b-hdl-grip{cursor:move}.fcf7b-hdl .fcf7b-hdl-global{align-items:center;display:inline-flex;font-size:11px;height:18px;justify-content:center;opacity:.85;width:18px}.fcf7b-hdl-tab{background:var(--fcf7b-accent);border-radius:4px 4px 0 0;bottom:100%;right:50%;overflow:hidden;transform:translateX(50%)}.fcf7b-hdl-box{border-end-end-radius:4px;inset-inline-start:0}.fcf7b-hdl-box,.fcf7b-hdl-pen{background:var(--fcf7b-accent);top:0}.fcf7b-hdl-pen{border-end-start-radius:4px;inset-inline-end:0}.fcf7b-pv-ms{align-items:center;display:flex;gap:8px}.fcf7b-pv-ms-chips{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:4px;min-width:0}.fcf7b-pv-ms-placeholder{color:var(--fcf7b-muted)}.fcf7b-pv-ms-chip{align-items:center;background:hsla(0,0%,50%,.2);border-radius:3px;display:inline-flex;font-size:11.5px;gap:5px;padding:1px 7px 1px 5px}.fcf7b-pv-ms-chip>span{opacity:.5}.fcf7b-pv-ms-caret{border-right:4px solid transparent;border-left:4px solid transparent;border-top:5px solid;flex:none;height:0;opacity:.5;width:0}.fcf7b-pv-stars.fcf7-rating .icon{display:inline-flex;gap:4px}.fcf7b-pv-stars.fcf7-rating .fcf7-star{color:#d5d8dc;display:inline-flex;transition:color .15s ease-in-out}.fcf7b-pv-stars.fcf7-rating .fcf7-star svg{height:24px;width:24px}.fcf7b-pv-stars.fcf7-rating .fcf7-star.is-active{color:#f5a623}.fcf7b-pv-sigink{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.fcf7b-pv-file{color:var(--fcf7b-text);font-size:12.5px;width:100%}.fcf7b-pv-quiz .wpcf7-quiz-label{display:inline-block}.fcf7b-pv-choices .fcf7b-pv-inline{font:inherit}.fcf7b-pv-inline{align-items:center;display:flex;font-size:12.5px;gap:4px}.fcf7b-pv-html-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;padding:10px;text-align:center}.fcf7b-pv-desc,.fcf7b-pv-html-empty{color:var(--fcf7b-muted);font-size:11px}.fcf7b-pv-heading{margin:4px 0}.fcf7b-pv-divider{border:0;border-top:1px solid var(--fcf7b-divider-color,var(--fcf7b-border));margin:4px 0;width:100%}.fcf7b-pv-submit{background:var(--fcf7b-accent);border:0;border-radius:8px;color:#fff;font-weight:600;padding:9px 20px}.fcf7b-pv-stars{color:#f5b301;font-size:20px;letter-spacing:3px}.fcf7b-pv-star{display:inline-block}.fcf7b-pv-custom{display:block}.fcf7b-pv-icon{font-size:22px;line-height:1}.fcf7b-pv-sp-canvas{align-items:center;border-radius:4px;display:inline-flex;font-size:18px;font-style:italic;font-weight:600;justify-content:center;letter-spacing:2px}.fcf7b-pv-slotpicker{display:flex;flex-direction:column;font-size:12px;gap:8px}.fcf7b-pv-slotpicker-cal{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;max-width:240px;padding:8px}.fcf7b-pv-slotpicker-cal-head{align-items:center;display:flex;font-weight:600;justify-content:space-between;margin-bottom:6px}.fcf7b-pv-slotpicker-cal-head button{background:transparent;border:0;color:var(--fcf7b-text);cursor:pointer;line-height:1;padding:2px 6px}.fcf7b-pv-slotpicker-cal-grid{display:grid;gap:2px;grid-template-columns:repeat(7,1fr);text-align:center}.fcf7b-pv-slotpicker-cal-dow{color:var(--fcf7b-muted);font-size:10px;padding:2px 0}.fcf7b-pv-slotpicker-cal-day{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;padding:4px 0}.fcf7b-pv-slotpicker-cal-day:hover:not(:disabled){background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-muted{visibility:hidden}.fcf7b-pv-slotpicker-cal-day.is-disabled{color:var(--fcf7b-muted);cursor:not-allowed;opacity:.4}.fcf7b-pv-slotpicker-cal-day.is-in-range{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-selected{background:var(--fcf7b-accent);color:#fff}.fcf7b-pv-slotpicker-range{color:var(--fcf7b-text);font-size:12px}.fcf7b-pv-slotpicker-slots{display:flex;flex-wrap:wrap;gap:6px}.fcf7b-pv-slotpicker-hint{color:var(--fcf7b-muted);font-size:11.5px}.fcf7b-pv-slotpicker-slot{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:4px 8px}.fcf7b-pv-slotpicker-slot:hover{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-slot.is-active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-ctnbox{min-height:20px;outline:1px dashed var(--fcf7b-border);outline-offset:2px}.fcf7b-ctn-item{position:relative;width:100%}.fcf7b-ctn-item.is-drop-after:after,.fcf7b-ctn-item.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";position:absolute;z-index:2}.fcf7b-ctn-item.is-drop-x:after,.fcf7b-ctn-item.is-drop-x:before{bottom:0;top:0;width:3px}.fcf7b-ctn-item.is-drop-x.is-drop-before:before{right:-8px}.fcf7b-ctn-item.is-drop-x.is-drop-after:after{left:-8px}.fcf7b-ctn-item.is-drop-y:after,.fcf7b-ctn-item.is-drop-y:before{height:3px;right:0;left:0}.fcf7b-ctn-item.is-drop-y.is-drop-before:before{top:-8px}.fcf7b-ctn-item.is-drop-y.is-drop-after:after{bottom:-8px}.fcf7b-ctn-item>.fcf7b-card,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap>.fcf7-container{height:100%}.fcf7b-ctnpick{border:1px dashed var(--fcf7b-border);border-radius:6px;flex:1 1 100%;padding:12px 14px 14px}.fcf7b-ctnpick-head{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center;margin-bottom:10px;position:relative}.fcf7b-ctnpick-head button{background:none;border:0;color:var(--fcf7b-muted);cursor:pointer;line-height:1;padding:2px;position:absolute;left:0}.fcf7b-ctnpick-head button:hover{color:var(--fcf7b-text)}.fcf7b-ctnpick-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.fcf7b-ctnpick-item{background:none;border:1px solid transparent;border-radius:5px;cursor:pointer;line-height:0;padding:0}.fcf7b-ctnpick-item:hover .fcf7b-ctnpick-box{outline:2px solid var(--fcf7b-accent)}.fcf7b-ctnpick-box{border-radius:3px;display:flex;gap:2px;height:42px;overflow:hidden;width:86px}.fcf7b-ctnpick-cell{background:var(--fcf7b-border);border-radius:2px;flex-basis:0}.fcf7b-ctnpick-nest{display:flex;flex-basis:0}.fcf7b-ctnpick-nest>.fcf7b-ctnpick-box{flex:1 1 auto;height:auto;width:auto}.fcf7b-ctnpick-glyph{background:var(--fcf7b-border);font-size:15px}.fcf7b-ctn-empty,.fcf7b-ctnpick-glyph{align-items:center;color:var(--fcf7b-muted);justify-content:center;line-height:1}.fcf7b-ctn-empty{background:none;border:1px dashed var(--fcf7b-border);border-radius:6px;cursor:pointer;display:flex;flex:1 1 100%;font-size:18px;min-height:46px;padding:8px;width:100%}.fcf7b-divider[data-pattern]{background-color:var(--fcf7b-divider-color,var(--fcf7-field-border,var(--fcf7b-border,currentColor)));border:0;height:12px;-webkit-mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x;mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x}.fcf7b-divider[data-pattern][data-pattern=wavy]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-20 5q5-5 10 0T0 5t10 0 10 0 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=zigzag]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m-5 2 5 6 5-6 5 6 5-6 5 6 5-6%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=curved]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-10 7A5 4 0 0 1 0 7a5 4 0 0 1 10 0 5 4 0 0 1 10 0 5 4 0 0 1 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=slashes]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-width=%271.6%27 d=%27m1 9 6-8%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=dots]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Ccircle cx=%275%27 cy=%275%27 r=%272.4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=squares]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M2.5 2.5h5v5h-5z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=rhombus]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m5 1 4 4-4 4-4-4Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=triangles]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m1 9 5-8 5 8Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=arrows]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m1 1 5 4-5 4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=multiple]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M0 1h10v1.5H0zM0 4.25h10v1.5H0zM0 7.5h10V9H0z%27/%3E%3C/svg%3E")}.fcf7b-toolbar .fcf7b-tb-group .fcf7b-ghost.is-set{background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-nav{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);box-shadow:0 10px 30px rgba(16,18,27,.18),var(--fcf7b-shadow);display:flex;flex-direction:column;overflow:hidden;position:fixed;z-index:100001}.fcf7b-nav-head{align-items:center;background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-heading);cursor:move;display:flex;font-size:12px;font-weight:600;gap:6px;padding:8px 10px 8px 8px;-webkit-user-select:none;user-select:none}.fcf7b-nav-head i{color:var(--fcf7b-accent);font-size:14px;font-weight:400}.fcf7b-nav-head button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:15px;line-height:1;margin-right:auto;padding:2px}.fcf7b-nav-head button:hover{color:var(--fcf7b-danger)}.fcf7b-nav-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 0 10px}.fcf7b-nav-empty{color:var(--fcf7b-muted);font-size:12px;padding:18px 12px;text-align:center}.fcf7b-nav-row{align-items:center;border:1px solid transparent;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;gap:6px;padding:4px 6px 4px 8px;position:relative}.fcf7b-nav-row:hover{background:var(--fcf7b-panel-2)}.fcf7b-nav-row.is-selected{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-nav-row.is-step{color:var(--fcf7b-muted);cursor:default;font-style:italic}.fcf7b-nav-row.is-step:hover{background:transparent}.fcf7b-nav-row.is-drop-after:after,.fcf7b-nav-row.is-drop-before:before{background:var(--fcf7b-accent);border-radius:2px;content:"";height:2px;right:4px;position:absolute;left:4px}.fcf7b-nav-row.is-drop-before:before{top:-1px}.fcf7b-nav-row.is-drop-after:after{bottom:-1px}.fcf7b-nav-row.is-drop-inside{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);border-radius:6px}.fcf7b-nav-row:hover .fcf7b-nav-acts{opacity:1}.fcf7b-nav-caret{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:16px;padding:0;place-items:center;width:16px}.fcf7b-nav-caret.is-empty{cursor:default;pointer-events:none}.fcf7b-nav-icon{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px;opacity:.9}.fcf7b-nav-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-nav-acts{display:flex;flex:0 0 auto;gap:2px;opacity:0;transition:opacity .15s ease}.fcf7b-nav-acts button{background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;line-height:1;padding:1px 2px}.fcf7b-nav-acts button:hover{color:var(--fcf7b-accent)}.fcf7b-nav-acts button.danger:hover{color:var(--fcf7b-danger)}.fcf7b-nav-resize{background:linear-gradient(-135deg,transparent 0 45%,var(--fcf7b-border) 45% 55%,transparent 55%),linear-gradient(-135deg,transparent 0 70%,var(--fcf7b-border) 70% 80%,transparent 80%);bottom:0;cursor:nesw-resize;height:14px;position:absolute;left:0;width:14px}.fcf7b-nav-peek .fcf7b-card{border-color:var(--fcf7b-accent)}.fcf7b-props{border-right:1px solid var(--fcf7b-border);padding:14px}.fcf7b-props input,.fcf7b-props select{outline:none!important}.fcf7b-props-head{align-items:center;border-bottom:1px solid var(--fcf7b-border);display:flex;font-size:13px;font-weight:700;gap:8px;padding-bottom:10px}.fcf7b-props-head-icon{color:var(--fcf7b-muted);font-size:15px;font-weight:400;line-height:1}.fcf7b-props-banners{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.fcf7b-props-banners>span{display:block}.fcf7b-props-empty{color:var(--fcf7b-muted);padding-top:60px;text-align:center}.fcf7b-props-tabs{border-bottom:1px solid var(--fcf7b-border);display:flex;gap:4px;margin:-4px -4px 12px;padding:0 4px}.fcf7b-ptab{align-items:center;background:none;border:0;display:flex;flex:1;flex-direction:column;gap:3px;padding:10px 8px}.fcf7b-ptab>i{font-size:15px;font-weight:400;line-height:1}.fcf7b-ptab{border-bottom:2px solid transparent;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;font-weight:600;margin-bottom:-1px}.fcf7b-ptab.active{border-bottom-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-sec{border-bottom:1px solid var(--fcf7b-border);margin:0 -14px}.fcf7b-sec-head{align-items:center;background:none;border:0;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;font-weight:700;gap:6px;padding:12px 14px;text-align:right;width:100%}.fcf7b-sec-head:hover{color:var(--fcf7b-accent)}.fcf7b-sec-arrow{color:var(--fcf7b-muted);font-size:15px;line-height:1;transition:transform .15s ease}.fcf7b-sec.open .fcf7b-sec-arrow{transform:rotate(-90deg)}.fcf7b-sec-body{padding:2px 14px 14px}.fcf7b-popgroup{margin-bottom:13px}.fcf7b-popgroup-head{align-items:center;display:flex;gap:8px}.fcf7b-popgroup-head>.fcf7b-prop-label{margin:0}.fcf7b-popgroup-tools{align-items:center;display:flex;gap:6px;margin-right:auto}.fcf7b-popgroup-reset{background:none;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:14px;height:22px;padding:0;width:22px}.fcf7b-popgroup-reset:hover{color:var(--fcf7b-accent)}.fcf7b-popgroup-pop{position:relative}.fcf7b-popgroup-edit{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;height:24px;width:26px}.fcf7b-popgroup-edit.is-open,.fcf7b-popgroup-edit:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-popgroup-edit.is-on{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-popgroup-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;left:0;text-align:right;top:calc(100% + 8px);width:252px;z-index:60}.fcf7b-popgroup-panel>.fcf7b-prop:last-child{margin-bottom:0}.fcf7b-ctl-sep{border-top:1px solid var(--fcf7b-border);height:0;margin:3px 0 13px}.fcf7b-ctl-heading{color:var(--fcf7b-text);font-size:11px;font-weight:700;letter-spacing:.5px;margin:0 0 5px;padding-inline-start:10px;position:relative;text-transform:uppercase}.fcf7b-ctl-heading:before{background:var(--fcf7b-accent);bottom:2px;content:"";inset-inline-start:0;position:absolute;top:2px;width:3px}.fcf7b-ctabs{margin-bottom:13px}.fcf7b-ctabs-nav{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;margin-bottom:12px;padding:3px}.fcf7b-ctab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-ctab.active,.fcf7b-ctab:hover{color:var(--fcf7b-text)}.fcf7b-ctab.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow)}.fcf7b-choose{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px}.fcf7b-choose-btn{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;height:26px;justify-content:center;line-height:1;min-width:28px;padding:0 8px}.fcf7b-choose-btn i{font-size:14px;font-weight:400}.fcf7b-choose-btn:hover{color:var(--fcf7b-text)}.fcf7b-choose-btn.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-choose-btn+.fcf7b-choose-btn{position:relative}.fcf7b-choose-btn+.fcf7b-choose-btn:before{background:var(--fcf7b-border);bottom:5px;content:"";right:-2px;position:absolute;top:5px;width:1px}.fcf7b-choose-btn.active+.fcf7b-choose-btn:before,.fcf7b-choose-btn.active:before{display:none}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose{display:flex}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose>.fcf7b-choose-btn{flex:1 1 0;min-width:0}.fcf7b-ctxmenu-backdrop{inset:0;position:fixed;z-index:100002}.fcf7b-ctxmenu{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:2px;min-width:212px;padding:4px;position:fixed}.fcf7b-ctxmenu-title{color:var(--fcf7b-muted);font-size:11px;font-weight:600;letter-spacing:.02em;padding:6px 10px 4px;text-transform:uppercase}.fcf7b-ctxmenu button{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:8px;padding:7px 10px;text-align:right;width:100%}.fcf7b-ctxmenu button i{color:var(--fcf7b-muted);font-size:14px}.fcf7b-ctxmenu button:hover{background:var(--fcf7b-panel-2)}.fcf7b-ctxmenu button:disabled{cursor:default;opacity:.4}.fcf7b-ctxmenu button:disabled:hover{background:transparent}.fcf7b-ctxmenu button.danger{color:var(--fcf7b-danger)}.fcf7b-ctxmenu button.danger i{color:inherit}.fcf7b-ctxmenu-key{color:var(--fcf7b-muted);font-family:Segoe UI Symbol,SF Pro Text,-apple-system,system-ui,sans-serif;font-size:11.5px;margin-right:auto;padding-right:16px;white-space:nowrap}.fcf7b-ctxmenu button.danger .fcf7b-ctxmenu-key{color:var(--fcf7b-danger);opacity:.7}.fcf7b-ctxmenu-sep{background:var(--fcf7b-border);height:1px;margin:3px 4px}.fcf7b-prop{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.fcf7b-prop-label{align-items:center;color:var(--fcf7b-text);display:flex;font-size:11.5px;font-weight:600}.fcf7b-prop-label i{font-weight:400}.fcf7b-prop-hint{color:var(--fcf7b-muted);font-size:10.5px;font-weight:400}.fcf7b-prop-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.4;margin:0 0 14px}.fcf7b-prop .fcf7b-prop-desc{margin-bottom:0}.fcf7b-prop input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop select,.fcf7b-prop textarea{background:var(--fcf7b-panel-2);border-color:var(--fcf7b-border)!important;border-radius:7px;border-style:solid;border-width:1px;color:var(--fcf7b-text)!important;font-size:12.5px;padding:7px 9px;width:100%}.fcf7b-prop textarea.fcf7b-code-input{font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-x:auto;resize:vertical;tab-size:2;white-space:pre}.fcf7b-prop-check{align-items:center;cursor:pointer;flex-direction:row;gap:8px}.fcf7b-prop-check input{height:16px;width:16px}.fcf7b-prop .fcf7b-dim-box{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;display:grid;grid-template-columns:repeat(4,1fr) 34px;overflow:hidden}.fcf7b-prop .fcf7b-dim-box input{background:transparent;border:0;border-color:var(--fcf7b-border)!important;border-radius:0!important;border-style:solid;border-width:0 0 0 1px!important;box-shadow:none!important;color:var(--fcf7b-text);font-size:12px;min-height:auto;min-width:0;padding:8px 2px;text-align:center;width:100%}.fcf7b-prop .fcf7b-dim-link{align-items:center;background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:14px;justify-content:center}.fcf7b-prop .fcf7b-dim-link.is-linked{color:var(--fcf7b-accent)}.fcf7b-prop .fcf7b-dim-custom{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0;width:100%}.fcf7b-prop .fcf7b-dim-labels{display:grid;grid-template-columns:repeat(4,1fr) 34px;margin-top:3px}.fcf7b-prop .fcf7b-dim-labels span{color:var(--fcf7b-muted);font-size:9px;letter-spacing:.3px;text-align:center;text-transform:uppercase}.fcf7b-prop .fcf7b-border,.fcf7b-prop .fcf7b-border .fcf7b-ctl-row{margin-bottom:13px}.fcf7b-opts{font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}.fcf7b-prop .CodeMirror{background:#1e1e1e;border:1px solid #000;border-radius:7px;color:#d4d4d4;font-size:12px;height:260px;line-height:1.55;max-width:100%}.fcf7b-prop .CodeMirror-gutters{background:#1a1a1a;border-left:1px solid #2b2b2b}.fcf7b-prop .CodeMirror-linenumber{color:#6a6a6a}.fcf7b-prop .CodeMirror-cursor{border-right-color:#d4d4d4}.fcf7b-prop .CodeMirror-activeline-background{background:#262626}.fcf7b-prop .CodeMirror-focused .CodeMirror-selected,.fcf7b-prop .CodeMirror-selected{background:#264f78}.fcf7b-prop .CodeMirror-matchingtag{background:rgba(86,156,214,.22)}.fcf7b-prop .cm-tag{color:#569cd6}.fcf7b-prop .cm-attribute{color:#9cdcfe}.fcf7b-prop .cm-string{color:#ce9178}.fcf7b-prop .cm-bracket,.fcf7b-prop .cm-punctuation{color:gray}.fcf7b-prop .cm-comment{color:#6a9955}.fcf7b-prop .cm-atom,.fcf7b-prop .cm-keyword{color:#c586c0}.fcf7b-prop .cm-number{color:#b5cea8}.fcf7b-prop .cm-error{color:#f48771}.fcf7b-prop .CodeMirror-lint-markers{background:#1a1a1a}.fcf7b-date-list{flex-direction:column}.fcf7b-date-list,.fcf7b-date-list-add{display:flex;gap:6px}.fcf7b-date-list-add input[type=date]{flex:1;min-width:0}.fcf7b-date-list-add input[type=number]{flex:0 0 auto;width:70px!important}.fcf7b-date-list-add input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-add input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-add button{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;cursor:pointer;flex-shrink:0;width:26px}.fcf7b-date-list-add button:disabled{cursor:default;opacity:.4}.fcf7b-date-list-chips{display:flex;flex-wrap:wrap;gap:5px}.fcf7b-date-list-chip{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:20px;display:inline-flex;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;gap:4px;padding:2px 8px 2px 4px}.fcf7b-date-list-chip input[type=number]{background:transparent;border:0;color:inherit;font:inherit;margin:0!important;min-height:30px;padding:0!important;text-align:center;width:70px!important}.fcf7b-date-list-chip input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-chip input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-chip button{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;height:16px;justify-content:center;line-height:1;width:16px}.fcf7b-date-list-chip button:hover{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-price-map-empty{color:var(--fcf7b-muted);font-size:12px;margin:0}.fcf7b-price-map{display:flex;flex-direction:column;gap:6px}.fcf7b-price-map-row{align-items:center;display:flex;gap:6px}.fcf7b-price-map-label{flex:1;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-price-map input[type=number]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;flex:0 0 auto;width:80px!important}.fcf7b-price-map input[type=number]::-webkit-inner-spin-button,.fcf7b-price-map input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl{display:flex;flex-direction:column;gap:6px}.fcf7b-steps-ctl-row{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:6px;padding:4px;transition:border-color .12s}.fcf7b-steps-ctl-row.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-handle{color:var(--fcf7b-muted);cursor:grab;display:flex;flex:0 0 auto;font-size:14px;opacity:.5}.fcf7b-steps-ctl-handle:hover{opacity:1}.fcf7b-steps-ctl-handle:active{cursor:grabbing}.fcf7b-steps-ctl-index{align-items:center;background:var(--fcf7b-border);border-radius:50%;color:var(--fcf7b-muted);display:flex;flex:0 0 auto;font-size:10px;font-weight:600;height:18px;justify-content:center;margin-top:1px;width:18px}.fcf7b-steps-ctl-label{background:transparent!important;border:0!important;flex:1 1 auto;font-size:12.5px;min-width:0;padding:6px 4px!important}.fcf7b-steps-ctl-price{-moz-appearance:textfield;flex:0 0 auto;margin:0!important;padding:0!important;text-align:center;width:35px!important}.fcf7b-steps-ctl-price::-webkit-inner-spin-button,.fcf7b-steps-ctl-price::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl-remove{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:0 0 auto;font-size:13px;padding:4px 6px}.fcf7b-steps-ctl-remove:hover:not(:disabled){background:var(--fcf7b-danger);color:#fff}.fcf7b-steps-ctl-remove:disabled{cursor:not-allowed;opacity:.35}.fcf7b-steps-ctl--time-price .fcf7b-steps-ctl-row{gap:0}.fcf7b-steps-ctl--time-price input[type=time]::-webkit-calendar-picker-indicator{margin-right:0}.fcf7b-steps-ctl-drop-end{border-radius:3px;height:6px}.fcf7b-steps-ctl-drop-end.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-add{align-items:center;align-self:flex-start;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;margin-top:2px;padding:7px 10px}.fcf7b-steps-ctl-add:hover{background:var(--fcf7b-accent-soft);border-style:solid}.fcf7b-width-btns{display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.fcf7b-width-btn{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:7px 6px}.fcf7b-width-btn.active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-width .fcf7b-slider{margin-bottom:0;margin-top:12px}.fcf7b-prop--inline{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;justify-content:space-between}.fcf7b-prop--inline>.fcf7b-prop-desc{flex:0 0 100%;margin-top:-2px}.fcf7b-prop--inline>.fcf7b-prop-label{align-items:center;display:flex;flex:0 0 auto;margin:0}.fcf7b-prop--inline>.fcf7b-select,.fcf7b-prop--inline>input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop--inline>select{flex:1 1 auto;line-height:1;max-width:130px;min-height:auto;padding:9px}.fcf7b-prop--inline>.fcf7b-select{padding:0;width:115px}.fcf7b-prop--inline>.fcf7b-bxsh,.fcf7b-prop--inline>.fcf7b-color,.fcf7b-prop--inline>.fcf7b-typo{flex:0 0 auto}.fcf7b-ctl-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7b-ctl-head .fcf7b-prop-label{margin:0}.fcf7b-ctl-head .fcf7b-ctl-unit{background:transparent;border:none;color:var(--fcf7b-text);cursor:pointer;flex:0 0 auto;font-size:11px;line-height:1;min-height:auto;min-width:auto;padding:0;text-align:center;width:auto}.fcf7b-ctl-head .fcf7b-ctl-unit.is-static{background:transparent;border-color:transparent;color:var(--fcf7b-muted);cursor:default;padding-left:0}.fcf7b-unit{flex:0 0 auto;position:relative}.fcf7b-unit-trigger{align-items:center;display:inline-flex;gap:3px;justify-content:center;min-width:42px}.fcf7b-unit-trigger i{font-size:13px;line-height:1}.fcf7b-unit-trigger.is-custom{color:var(--fcf7b-accent)}.fcf7b-unit-caret{color:var(--fcf7b-muted);font-size:14px!important;transition:transform .15s}.fcf7b-unit-trigger.is-open .fcf7b-unit-caret{transform:rotate(-180deg)}.fcf7b-unit-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);min-width:54px;padding:4px;position:absolute;left:0;top:calc(100% + 4px);z-index:20}.fcf7b-unit-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.fcf7b-unit-list li{margin:0}.fcf7b-unit-opt{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:11px;justify-content:center;line-height:1;padding:6px 8px;width:100%}.fcf7b-unit-opt i{font-size:13px}.fcf7b-unit-opt:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-unit-opt.is-active{color:var(--fcf7b-accent)}.fcf7b-select{position:relative;width:100%}.fcf7b-select-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:6px;justify-content:space-between;line-height:1.2;min-height:auto;padding:7px 9px;text-align:right;width:100%}.fcf7b-select-cur{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:15px;transition:transform .15s}.fcf7b-select-trigger.is-open .fcf7b-select-caret{transform:rotate(-180deg)}.fcf7b-select-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);right:0;padding:4px;position:absolute;left:0;top:calc(100% + 4px);z-index:30}.fcf7b-select-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.fcf7b-select-list li{margin:0}.fcf7b-select-opt{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:block;font-size:12px;line-height:1;overflow:hidden;padding:7px 9px;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:100%}.fcf7b-select-opt:hover{background:var(--fcf7b-panel-2)}.fcf7b-select-opt.is-active{color:var(--fcf7b-accent);font-weight:600}.fcf7b-select-list.is-multi .fcf7b-select-opt{align-items:center;display:flex;gap:6px}.fcf7b-select-check{flex:0 0 auto;font-size:14px}.fcf7b-select-optlabel{min-width:0;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-hasremove{align-items:center;display:flex;gap:2px}.fcf7b-select-hasremove .fcf7b-select-opt{flex:1 1 auto}.fcf7b-select-hasremove.is-drop{box-shadow:inset 0 2px 0 var(--fcf7b-accent)}.fcf7b-select-grip{color:var(--fcf7b-muted);cursor:grab;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:18px}.fcf7b-select-grip:active{cursor:grabbing}.fcf7b-select-grip:hover{color:var(--fcf7b-accent)}.fcf7b-select-remove{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:24px}.fcf7b-select-remove:hover{color:var(--fcf7b-danger)}.fcf7b-select-create{border-top:1px solid var(--fcf7b-border);padding-top:4px}.fcf7b-select-createinput{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:5px;box-shadow:unset!important;color:var(--fcf7b-text);font-size:12px;line-height:1.2;margin:0;min-height:auto!important;padding:7px 9px;width:100%}.fcf7b-select-createinput::placeholder{color:var(--fcf7b-muted)}.fcf7b-select-createinput:focus{outline:none}.fcf7b-switch{align-items:center;background:var(--fcf7b-border);border:0;border-radius:999px;cursor:pointer;display:inline-flex;flex:0 0 auto;height:22px;padding:0;position:relative;transition:background .15s;width:40px}.fcf7b-switch.is-on{background:var(--fcf7b-accent)}.fcf7b-switch.has-label{min-width:48px;padding:0 24px 0 8px;width:auto}.fcf7b-switch.has-label.is-on{padding:0 8px 0 24px}.fcf7b-switch-label{color:var(--fcf7b-text);font-size:10px;font-weight:600;line-height:1;white-space:nowrap}.fcf7b-switch.is-on .fcf7b-switch-label{color:#fff}.fcf7b-switch-knob{background:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.3);height:18px;right:2px;position:absolute;top:2px;transition:right .15s;width:18px}.fcf7b-switch.is-on .fcf7b-switch-knob{right:calc(100% - 20px)}.fcf7b-bxsh{position:relative}.fcf7b-bxsh-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;gap:8px;padding:5px 8px}.fcf7b-bxsh-trigger i{color:var(--fcf7b-muted);font-size:13px}.fcf7b-bxsh-trigger.is-set{border-color:var(--fcf7b-accent)}.fcf7b-bxsh-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-bxsh-pop .fcf7b-color-pop{width:216px}.fcf7b-slider{gap:0}.fcf7b-slider-row{align-items:center;display:flex;gap:10px}.fcf7b-slider-num{flex:0 0 65px;text-align:center}.fcf7b-slider-custom,.fcf7b-slider-num{line-height:1;min-height:auto!important}.fcf7b-slider-custom{flex:1 1 auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0}.fcf7b-slider-range{appearance:none;background:var(--fcf7b-border);border-radius:3px;cursor:pointer;flex:1 1 auto;height:4px;outline:none}.fcf7b-slider-range::-webkit-slider-thumb{appearance:none;background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;box-shadow:0 0 0 1px var(--fcf7b-border);cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-thumb{background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-track{background:var(--fcf7b-border);border-radius:3px;height:4px}.fcf7b-ctl-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.fcf7b-ctl-row>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);flex:0 0 auto;font-size:11.5px;font-weight:600}.fcf7b-ctl-row>.fcf7b-select,.fcf7b-ctl-row>input,.fcf7b-ctl-row>select{flex:0 0 160px;line-height:1;max-width:160px;min-height:auto;min-width:0;padding:9px}.fcf7b-ctl-row>.fcf7b-select{padding:0}.fcf7b-cond-ctl .fcf7b-cond-body{border:1px dashed var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:10px}.fcf7b-cond-ctl .fcf7b-cond-hint{color:var(--fcf7b-muted);font-size:11px;margin:0}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row{border:1px dashed var(--fcf7b-border);border-radius:8px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row.is-open{border-style:solid}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head{align-items:center;cursor:pointer;display:flex;gap:6px;padding:8px 6px 8px 8px;-webkit-user-select:none;user-select:none}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head:hover{background:var(--fcf7b-panel-2)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-title{color:var(--fcf7b-text);flex:1 1 auto;font-size:12px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;flex:0 0 auto;height:20px;justify-content:center;padding:0;width:20px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove:hover{background:var(--fcf7b-border);color:var(--fcf7b-text)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-body{border-top:1px solid var(--fcf7b-border);display:flex;flex-direction:column;gap:8px;padding:4px 10px 10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack{display:flex;flex-direction:column;gap:4px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);font-size:11.5px;font-weight:600}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack textarea{resize:vertical}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:7px 10px;width:max-content}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add:hover{background:var(--fcf7b-panel-2)}.fcf7b-typo{position:relative}.fcf7b-typo .fcf7b-ctl-row>.fcf7b-select,.fcf7b-typo .fcf7b-ctl-row>input,.fcf7b-typo .fcf7b-ctl-row>select{flex:0 0 130px;max-width:130px}.fcf7b-typo-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;gap:8px;padding:8px}.fcf7b-typo-trigger.is-open,.fcf7b-typo-trigger.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-typo-aa{color:var(--fcf7b-text);font-size:14px;font-weight:700;line-height:1}.fcf7b-typo-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-typo-pop .fcf7b-slider{margin-bottom:0}.fcf7b-typo-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 10px}.fcf7b-typo-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-color{position:relative}.fcf7b-color-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:8px;padding:5px 8px}.fcf7b-color-trigger.is-open{border-color:var(--fcf7b-accent)}.fcf7b-color-swatch{border:1px solid var(--fcf7b-border);border-radius:5px;flex:0 0 auto;height:22px;width:22px}.fcf7b-color-swatch.is-empty{background-image:linear-gradient(-45deg,#c4c4c4 25%,transparent 0),linear-gradient(45deg,#c4c4c4 25%,transparent 0),linear-gradient(-45deg,transparent 75%,#c4c4c4 0),linear-gradient(45deg,transparent 75%,#c4c4c4 0);background-position:100% 0,100% 4px,right 4px top -4px,right -4px top 0;background-size:8px 8px}.fcf7b-color-value{font-size:11px;letter-spacing:.3px;min-width:54px;text-align:right;text-transform:uppercase}.fcf7b-color-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:236px;z-index:50}.fcf7b-pop-head{align-items:center;color:var(--fcf7b-text);display:flex;font-size:12px;font-weight:600;justify-content:space-between;margin-bottom:10px}.fcf7b-pop-tools{display:flex;gap:4px}.fcf7b-pop-tools button{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;display:grid;font-size:13px;height:24px;justify-content:center;width:24px}.fcf7b-pop-tools button:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-cp-area{border-radius:7px;cursor:crosshair;height:150px;overflow:hidden;position:relative;touch-action:none}.fcf7b-cp-area-black,.fcf7b-cp-area-white{inset:0;position:absolute}.fcf7b-cp-area-white{background:linear-gradient(-90deg,#fff,hsla(0,0%,100%,0))}.fcf7b-cp-area-black{background:linear-gradient(0deg,#000,transparent)}.fcf7b-cp-area-handle{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.45);height:14px;pointer-events:none;position:absolute;transform:translate(50%,-50%);width:14px}.fcf7b-cp-slider{border-radius:6px;cursor:pointer;height:12px;margin-top:12px;position:relative;touch-action:none}.fcf7b-cp-hue{background:linear-gradient(-90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.fcf7b-cp-alpha{background-image:linear-gradient(to left,transparent,var(--cp-color,#000)),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%);background-position:100% 0,100% 0,right 5px top 5px;background-size:100% 100%,10px 10px,10px 10px}.fcf7b-cp-slider-handle{background:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);height:14px;pointer-events:none;position:absolute;top:50%;transform:translate(50%,-50%);width:14px}.fcf7b-cp-foot{align-items:center;display:flex;gap:6px;margin-top:12px}.fcf7b-cp-hex{flex:1;min-width:0;text-transform:uppercase}.fcf7b-cp-fmt{color:var(--fcf7b-muted);font-size:10px;font-weight:700;letter-spacing:.5px}.fcf7b-cp-none{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 8px}.fcf7b-cp-none:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-iconpick{position:relative}.fcf7b-iconpick-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;justify-content:center;min-height:30px;min-width:34px;padding:4px 8px}.fcf7b-iconpick-trigger i{font-size:18px}.fcf7b-iconpick-trigger.is-open,.fcf7b-iconpick-trigger.is-set,.fcf7b-iconpick-trigger:hover{border-color:var(--fcf7b-accent)}.fcf7b-iconpick-placeholder{color:var(--fcf7b-muted)}.fcf7b-iconpick-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:260px;z-index:50}.fcf7b-iconpick-gridwrap{position:relative}.fcf7b-iconpick-grid{align-content:start;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);display:grid;gap:4px;grid-template-columns:repeat(6,1fr);height:184px;overflow-y:auto;padding:2px}.fcf7b-iconpick-grid.is-loading{opacity:.35;pointer-events:none}.fcf7b-iconpick-loader{gap:8px;inset:0;position:absolute}.fcf7b-iconpick-loader,.fcf7b-iconpick-more{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center}.fcf7b-iconpick-more{gap:6px;grid-column:1/-1;padding:10px 0}.fcf7b-iconpick-cell{align-items:center;aspect-ratio:1;background:none;border:1px solid transparent;border-radius:8px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:18px;justify-content:center}.fcf7b-iconpick-cell.active,.fcf7b-iconpick-cell:hover{background:var(--fcf7b-accent-soft)}.fcf7b-iconpick-cell.active{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-iconpick-search{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-sizing:border-box;color:var(--fcf7b-text);font-size:13px;margin-bottom:6px;padding:7px 10px;width:100%}.fcf7b-iconpick-search:focus{border-color:var(--fcf7b-accent);outline:none}.fcf7b-iconpick-empty{color:var(--fcf7b-muted);font-size:12px;grid-column:1/-1;padding:20px 0;text-align:center}.fcf7b-iconpick-selected{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:8px;margin-top:8px;min-height:34px;padding:8px 10px}.fcf7b-iconpick-selected i{flex:0 0 auto;font-size:18px}.fcf7b-iconpick-selected code{color:var(--fcf7b-text);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-code{background:var(--fcf7b-panel);height:640px;overflow-y:auto;padding:20px}.fcf7b-code-note{color:var(--fcf7b-muted);margin-bottom:12px;max-width:640px}.fcf7b-code pre.fcf7b-code-pre{background:#1e1e1e;border:1px solid #000;border-radius:10px;color:#d4d4d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;overflow-x:auto;padding:16px;white-space:pre-wrap;word-break:break-word}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-tag{color:#569cd6}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-attr{color:#9cdcfe}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-str{color:#ce9178}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-punct{color:gray}@media(max-width:1200px){.fcf7b-columns{grid-template-columns:200px 1fr 250px}}
     1.fcf7b-ms-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.fcf7b-ms-tab{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:6px;color:#6b7280;cursor:pointer;font-size:11.5px;font-weight:600;padding:5px 10px}.fcf7b-ms-tab.is-active{background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-steps{display:flex;margin-bottom:14px}.fcf7b-ms-step{align-items:center;display:flex;flex:1 1 0;flex-direction:column;gap:6px;min-width:0;position:relative;text-align:center}.fcf7b-ms-step:not(:last-child):after{background:#0091fa;content:"";height:2px;right:50%;position:absolute;top:15px;width:100%;z-index:0}.fcf7b-ms-step-circle{align-items:center;background:#fff;border:2px solid #0091fa;border-radius:50%;color:#0091fa;cursor:pointer;display:flex;flex:0 0 auto;font-size:15px;height:32px;justify-content:center;padding:0;position:relative;width:32px;z-index:1}.fcf7b-ms-step-check{display:none;height:15px;width:15px}.fcf7b-ms-step.is-active .fcf7b-ms-step-circle,.fcf7b-ms-step.is-done .fcf7b-ms-step-circle{background:#0091fa;color:#fff}.fcf7b-ms-step.is-done .fcf7b-ms-step-num{display:none}.fcf7b-ms-step.is-done .fcf7b-ms-step-check{display:block}.fcf7b-ms-step-label{color:#1e2126;font-size:11px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-ms-nav-buttons,.fcf7b-ms-nav-buttons p{display:flex;gap:8px;justify-content:space-between;margin-top:10px;width:100%}.fcf7b-ms-nav-buttons button{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:7px;color:#1e2126;cursor:pointer;font-size:11.5px;font-weight:600;padding:7px 14px}.fcf7b-ms-nav-buttons button:disabled{cursor:not-allowed;opacity:.4}.fcf7b-ms-nav-buttons .fcf7b-ms-next:not(:disabled){background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;min-height:70px;padding:20px}.fcf7b-ms-panel>.fcf7b-ms-stack{display:block}.fcf7b-ms-cell{margin-bottom:10px}.fcf7b-ms-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-repeater{--fcf7-rep-accent:#0091fa;display:block}.fcf7-repeater-row{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:8px;margin-bottom:10px;padding:12px 14px;position:relative}.fcf7-repeater-row-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7-repeater-row-head:has(>.fcf7-repeater-row-title:empty){justify-content:flex-end}.fcf7-repeater-row-title{color:#1e2126;font-size:12px;font-weight:700;letter-spacing:.01em}.fcf7-repeater-remove{background:#fff;border:1px solid #e3e5ea;border-radius:6px;color:#b91c1c;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:4px 10px}.fcf7-repeater-remove:hover:not(:disabled){background:#fef2f2;border-color:#b91c1c}.fcf7-repeater-remove:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater-actions{display:flex}.fcf7-repeater-add{background:var(--fcf7-rep-accent);border:1px solid var(--fcf7-rep-accent);border-radius:7px;color:#fff;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:7px 14px}.fcf7-repeater-add:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater .fcf7-repeater-row{background:var(--fcf7b-panel);border-color:var(--fcf7b-border)}.fcf7-repeater .fcf7-repeater-row-title{color:var(--fcf7b-text)}.fcf7b-rep-dropbox{min-height:70px}.fcf7b-rep-dropbox>.fcf7b-rep-stack{display:block}.fcf7b-rep-cell{margin-bottom:10px}.fcf7b-rep-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-builder-root{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7b-radius:10px}@media(prefers-color-scheme:dark){.fcf7-builder-root{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25)}}.fcf7-builder-root button{transition:all .3s}.fcf7-builder-root,.fcf7b-app{box-sizing:border-box}.fcf7b-boot{color:var(--fcf7b-muted);padding:40px}.fcf7b-app{background:var(--fcf7b-bg);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);color:var(--fcf7b-text);font-size:13px;line-height:1.45;margin-top:6px;overflow:hidden}.fcf7b-app.fcf7-builder-theme-light{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7-field-bg:#fff;--fcf7-field-color:#1e2126;--fcf7-field-border:#d5d8dc;--fcf7-field-placeholder:#9aa1ad;--fcf7-label-color:#1e2126;--fcf7-muted:#6b7280;color-scheme:light}.fcf7b-app.fcf7-builder-theme-dark{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25);--fcf7-field-bg:#1b1e24;--fcf7-field-color:#e7e9ee;--fcf7-field-border:#3a3f4b;--fcf7-field-placeholder:#7c848f;--fcf7-label-color:#f2f4f8;--fcf7-muted:#9aa1ad;color-scheme:dark}.fcf7b-app *,.fcf7b-app :after,.fcf7b-app :before{box-sizing:border-box}.fcf7b-app.is-fullscreen{border:0;border-radius:0;display:flex;flex-direction:column;inset:0;margin:0;position:fixed;z-index:100000}.fcf7b-app.is-fullscreen .fcf7b-toolbar{flex:0 0 auto}.fcf7b-app.is-fullscreen .fcf7b-code,.fcf7b-app.is-fullscreen .fcf7b-columns{flex:1 1 auto;height:auto;min-height:0}.fcf7b-spinner{animation:fcf7b-spin .7s linear infinite;border:2px solid var(--fcf7b-border);border-radius:50%;border-top-color:var(--fcf7b-accent);display:inline-block;flex:0 0 auto;height:14px;width:14px}@keyframes fcf7b-spin{to{transform:rotate(-1turn)}}@media(prefers-reduced-motion:reduce){.fcf7b-spinner{animation-duration:2s}}.fcf7b-toolbar{align-items:center;background:var(--fcf7b-panel);border-bottom:1px solid var(--fcf7b-border);display:flex;gap:16px;padding:10px 14px;position:relative}.fcf7b-toolbar .fcf7b-brand{align-items:center;color:var(--fcf7b-accent);display:flex;font-weight:700;letter-spacing:.2px}.fcf7b-toolbar .fcf7b-brand .fcf7b-brand-logo{display:block;height:26px;max-width:160px;width:auto}.fcf7b-toolbar .fcf7b-tabs{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;padding:3px}.fcf7b-toolbar .fcf7b-tabs button{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.fcf7b-toolbar .fcf7b-tabs button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-text)}.fcf7b-toolbar .fcf7b-tb-right{align-items:center;display:flex;gap:8px;margin-right:auto}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-count{color:var(--fcf7b-muted);font-size:12px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:14px;height:24px;place-items:center;width:26px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button:hover{color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:15px;height:30px;width:30px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:disabled{cursor:default;opacity:.3}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);height:26px;width:28px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost:hover:not(:disabled){background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-tb-div{align-self:stretch;background:var(--fcf7b-border);margin:3px;width:1px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg{display:inline-flex;position:relative}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);padding:8px;position:absolute;left:0;top:calc(100% + 8px);z-index:100003}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-swatches{display:grid;gap:6px;grid-template-columns:repeat(6,1fr)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw{border:1px solid var(--fcf7b-border);border-radius:5px;cursor:pointer;height:22px;padding:0}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-active{border-color:var(--fcf7b-accent);box-shadow:0 0 0 2px var(--fcf7b-accent-soft)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-default{background:linear-gradient(-45deg,transparent 45%,var(--fcf7b-danger) 45%,var(--fcf7b-danger) 55%,transparent 55%) var(--fcf7b-panel-2)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-custom{align-items:center;border-top:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:flex;font-size:11px;gap:10px;justify-content:space-between;margin-top:8px;padding-top:8px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{overflow:visible}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:92px;overflow:hidden;padding:7px 16px;position:relative;transition:background .15s ease,opacity .15s ease}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:hover{background:color-mix(in srgb,var(--fcf7b-accent),#000 20%)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:disabled{cursor:default;opacity:.7}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--saved{background:#16a34a}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--error{background:#dc2626}.fcf7b-progress{background:transparent;bottom:-1px;height:2px;right:0;opacity:0;position:absolute;left:0;transition:opacity .25s ease}.fcf7b-progress.is-active{opacity:1}.fcf7b-progress-fill{background:var(--fcf7b-accent);display:block;height:100%;transition:width .3s ease;width:0}.fcf7b-progress--error .fcf7b-progress-fill{background:#dc2626}.fcf7b-columns{display:grid;grid-template-columns:232px 1fr 288px;height:640px}.fcf7b-palette,.fcf7b-props{background:var(--fcf7b-panel);overflow-y:auto}.fcf7b-bxsh-pop,.fcf7b-canvas-wrap,.fcf7b-code,.fcf7b-gs-body,.fcf7b-gs-sidebar,.fcf7b-gspanel-preview,.fcf7b-palette,.fcf7b-props,.fcf7b-select-list,.fcf7b-typo-pop,.fcf7b-unit-list{scrollbar-color:var(--fcf7b-border) transparent;scrollbar-width:thin}.fcf7b-bxsh-pop::-webkit-scrollbar,.fcf7b-canvas-wrap::-webkit-scrollbar,.fcf7b-code::-webkit-scrollbar,.fcf7b-gs-body::-webkit-scrollbar,.fcf7b-gs-sidebar::-webkit-scrollbar,.fcf7b-gspanel-preview::-webkit-scrollbar,.fcf7b-palette::-webkit-scrollbar,.fcf7b-props::-webkit-scrollbar,.fcf7b-select-list::-webkit-scrollbar,.fcf7b-typo-pop::-webkit-scrollbar,.fcf7b-unit-list::-webkit-scrollbar{height:9px;width:9px}.fcf7b-bxsh-pop::-webkit-scrollbar-track,.fcf7b-canvas-wrap::-webkit-scrollbar-track,.fcf7b-code::-webkit-scrollbar-track,.fcf7b-gs-body::-webkit-scrollbar-track,.fcf7b-gs-sidebar::-webkit-scrollbar-track,.fcf7b-gspanel-preview::-webkit-scrollbar-track,.fcf7b-palette::-webkit-scrollbar-track,.fcf7b-props::-webkit-scrollbar-track,.fcf7b-select-list::-webkit-scrollbar-track,.fcf7b-typo-pop::-webkit-scrollbar-track,.fcf7b-unit-list::-webkit-scrollbar-track{background:transparent}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb,.fcf7b-code::-webkit-scrollbar-thumb,.fcf7b-gs-body::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb,.fcf7b-palette::-webkit-scrollbar-thumb,.fcf7b-props::-webkit-scrollbar-thumb,.fcf7b-select-list::-webkit-scrollbar-thumb,.fcf7b-typo-pop::-webkit-scrollbar-thumb,.fcf7b-unit-list::-webkit-scrollbar-thumb{background:var(--fcf7b-border);background-clip:content-box;border:2px solid transparent;border-radius:10px}.fcf7b-bxsh-pop:hover::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap:hover::-webkit-scrollbar-thumb,.fcf7b-code:hover::-webkit-scrollbar-thumb,.fcf7b-gs-body:hover::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar:hover::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview:hover::-webkit-scrollbar-thumb,.fcf7b-palette:hover::-webkit-scrollbar-thumb,.fcf7b-props:hover::-webkit-scrollbar-thumb,.fcf7b-select-list:hover::-webkit-scrollbar-thumb,.fcf7b-typo-pop:hover::-webkit-scrollbar-thumb,.fcf7b-unit-list:hover::-webkit-scrollbar-thumb{background:var(--fcf7b-muted);background-clip:content-box}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb:hover,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb:hover,.fcf7b-code::-webkit-scrollbar-thumb:hover,.fcf7b-gs-body::-webkit-scrollbar-thumb:hover,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb:hover,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb:hover,.fcf7b-palette::-webkit-scrollbar-thumb:hover,.fcf7b-props::-webkit-scrollbar-thumb:hover,.fcf7b-select-list::-webkit-scrollbar-thumb:hover,.fcf7b-typo-pop::-webkit-scrollbar-thumb:hover,.fcf7b-unit-list::-webkit-scrollbar-thumb:hover{background:var(--fcf7b-accent);background-clip:content-box}.fcf7b-palette{border-left:1px solid var(--fcf7b-border);padding:12px}.fcf7b-app .fcf7b-search{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;color:var(--fcf7b-text);margin-bottom:12px;padding:8px 10px;width:100%}.fcf7b-app .fcf7b-search::placeholder{color:var(--fcf7b-muted)}.fcf7b-pal-group{margin-bottom:16px}.fcf7b-pal-title{color:var(--fcf7b-muted);font-size:10.5px;font-weight:700;letter-spacing:.8px;margin:0 2px 8px 0;text-transform:uppercase}.fcf7b-pal-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.fcf7b-pal-item{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:9px;color:var(--fcf7b-text);cursor:grab;display:flex;flex-direction:column;gap:6px;padding:12px 6px;position:relative;transition:all .12s}.fcf7b-pal-item:hover{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);transform:translateY(-1px)}.fcf7b-pal-item:active{cursor:grabbing}.fcf7b-pal-pro{display:grid;right:6px;place-items:center;position:absolute;top:6px}.fcf7b-pal-pro svg{fill:#ffad00;height:14px;width:14px}.fcf7b-pal-icon{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;display:grid;font-size:18px;height:30px;place-items:center;width:30px}.fcf7b-pal-label{font-size:11.5px;font-weight:600}.fcf7b-canvas-wrap{background-size:18px 18px;overflow-y:auto;padding:40px 22px}.fcf7b-canvas-grid{margin:0 auto;max-width:1100px;transition:max-width .18s ease;width:100%}.fcf7b-canvas-row{display:block}.fcf7b-gs{position:relative}.fcf7b-gs>.fcf7b-ghost.is-open,.fcf7b-gs>.fcf7b-ghost.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gs-backdrop{backdrop-filter:blur(2px);background:rgba(15,18,26,.55);inset:0;position:fixed;z-index:99}.fcf7b-gs-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;height:800px;inset:0;margin:auto;max-height:90vh;max-width:90vw;overflow:hidden;position:fixed;text-align:right;width:800px;z-index:100}.fcf7b-gs-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);flex:0 0 auto;font-size:14px;font-weight:700;padding:16px 20px;position:relative}.fcf7b-gs-close{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:16px;height:28px;place-items:center;position:absolute;left:12px;top:10px;width:28px}.fcf7b-gs-close:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-gs-main{display:flex;flex:1 1 auto;min-height:0}.fcf7b-gs-sidebar{background:var(--fcf7b-panel-2);border-left:1px solid var(--fcf7b-border);flex:0 0 220px;overflow-y:auto;padding:12px}.fcf7b-gs-navitem{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:2px;padding:8px 10px;text-align:right;width:100%}.fcf7b-gs-navitem i{font-size:15px}.fcf7b-gs-navitem:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-gs-navitem.active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gs-body{flex:1 1 auto;overflow-y:auto;padding:20px}.fcf7b-gspanel-sec+.fcf7b-gspanel-sec{margin-top:28px}.fcf7b-gspanel-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);font-size:13px;font-weight:700;margin:0 0 16px;padding-bottom:12px}.fcf7b-gspanel-head--split{align-items:center;display:flex;gap:12px;justify-content:space-between}.fcf7b-gspanel-notice{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-right:3px solid var(--fcf7b-danger);border-radius:6px;color:var(--fcf7b-muted);font-size:12px;line-height:1.6;margin-bottom:16px;padding:10px 12px}.fcf7b-gspanel-notice a{color:var(--fcf7b-accent)}.fcf7b-gspanel-toggle{align-items:center;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;margin-bottom:20px}.fcf7b-gspanel-switch{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.fcf7b-gspanel-switchlabel{color:var(--fcf7b-text);font-size:12px;font-weight:600}.fcf7b-gspanel-switchlabel em{color:var(--fcf7b-muted);display:block;font-size:11px;font-style:normal;font-weight:400;line-height:1.6;margin-top:4px}.fcf7b-gspanel-field{margin-bottom:18px}.fcf7b-gspanel-field label{color:var(--fcf7b-text);display:block;font-size:12px;font-weight:600;margin-bottom:6px}.fcf7b-gspanel-field input[type=number],.fcf7b-gspanel-field input[type=text],.fcf7b-gspanel-field textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;box-sizing:border-box;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-field textarea{display:block;font-family:inherit;line-height:1.6;min-height:96px;resize:vertical}.fcf7b-gspanel-row{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.fcf7b-gspanel-rowlabel{align-items:center;color:var(--fcf7b-text);display:inline-flex;font-size:12px;font-weight:600;gap:6px}.fcf7b-gspanel-num{align-items:center;display:inline-flex;gap:5px}.fcf7b-gspanel-num input{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:6px 8px;text-align:center;width:82px}.fcf7b-gspanel-num em{color:var(--fcf7b-muted);font-size:11px;font-style:normal}.fcf7b-gspanel-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.6;margin:6px 0 0}.fcf7b-gspanel-desc code{background:var(--fcf7b-panel-2);border-radius:4px;padding:1px 4px}.fcf7b-gspanel-intro{margin:-8px 0 18px}.fcf7b-gspanel-subhead{color:var(--fcf7b-muted);font-size:12px;font-weight:700;letter-spacing:.04em;margin:26px 0 14px;text-transform:uppercase}.fcf7b-gspanel-colorrow{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:6px 0}.fcf7b-gspanel-colorrow>span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-gspanel-cols{display:flex;gap:12px}.fcf7b-gspanel-cols>*{flex:1 1 0;min-width:0}.fcf7b-gspanel-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.fcf7b-gspanel-rowline{align-items:center;display:flex;gap:8px}.fcf7b-gspanel-cell{flex:1 1 0;min-width:0}.fcf7b-gspanel-cell input[type=number],.fcf7b-gspanel-cell input[type=text]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-cell--narrow{flex:0 0 130px}.fcf7b-gspanel-del{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:30px;place-items:center;width:30px}.fcf7b-gspanel-del:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-gspanel-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11px;font-weight:600;gap:6px;padding:6px 12px}.fcf7b-gspanel-add:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gspanel-none{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11px;margin:0;padding:10px 12px}.fcf7b-gspanel-rowhead{color:var(--fcf7b-muted);font-size:11px;font-weight:600}.fcf7b-gspanel-headspacer{flex:0 0 30px}.fcf7b-gspanel-lead{margin:0 0 10px}.fcf7b-gspanel-warn{color:var(--fcf7b-danger)}.fcf7b-gspanel-tabs{background:var(--fcf7b-panel-2);border-radius:8px;display:flex;gap:3px;margin:0 0 18px;padding:3px}.fcf7b-gspanel-tab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:11px;font-weight:600;min-width:0;padding:6px 10px}.fcf7b-gspanel-tab:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-tab.is-active{background:var(--fcf7b-panel);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fcf7b-text)}.fcf7b-gspanel-pinned{border-top:1px solid var(--fcf7b-border);margin-top:20px;padding-top:16px}.fcf7b-gspanel-more{margin-top:10px}.fcf7b-gspanel-more summary{color:var(--fcf7b-muted);cursor:pointer;font-size:11px;font-weight:600}.fcf7b-gspanel-more summary:hover{color:var(--fcf7b-accent)}.fcf7b-gspanel-textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;line-height:1.6;padding:8px 10px;resize:vertical;width:100%}.fcf7b-gspanel-testrow{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.fcf7b-gspanel-testrow button[disabled]{cursor:default;opacity:.5}.fcf7b-gspanel-testrow button[disabled]:hover{border-color:var(--fcf7b-border);color:var(--fcf7b-muted)}.fcf7b-gspanel-testmsg{color:var(--fcf7b-muted);font-size:11px;line-height:1.5}.fcf7b-gspanel-testmsg.is-ok{color:var(--fcf7b-accent)}.fcf7b-gspanel-testmsg.is-fail{color:var(--fcf7b-danger)}.fcf7b-gspanel-preview{color:var(--fcf7b-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.7;margin:0;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.fcf7b-gspanel-devsw,.fcf7b-gspanel-preview{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px}.fcf7b-gspanel-devsw{display:inline-flex;gap:2px;padding:2px}.fcf7b-gspanel-devsw button{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;height:22px;justify-content:center;padding:0;width:24px}.fcf7b-gspanel-devsw button:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-devsw button.is-active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gspanel-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;margin-top:10px;padding:6px 10px;width:100%}.fcf7b-gspanel-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}@keyframes fcf7b-tpl-spin{to{transform:rotate(-1turn)}}@keyframes fcf7b-tpl-shimmer{to{background-position:300% 0}}.fcf7b-tpl-pop{width:1040px}.fcf7b-tpl-head{align-items:center;display:flex;gap:8px}.fcf7b-tpl-logo{height:20px;object-fit:contain;width:20px}.fcf7b-tpl-refresh{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:15px;height:28px;place-items:center;position:absolute;left:46px;top:10px;width:28px}.fcf7b-tpl-refresh:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-refresh.is-busy i{animation:fcf7b-tpl-spin .8s linear infinite}.fcf7b-tpl-search{background:transparent!important;border:1px solid var(--fcf7b-border)!important;border-radius:6px;color:var(--fcf7b-text);font-size:13px;margin-bottom:10px;padding:6px 10px;width:100%}.fcf7b-tpl-sidebar .fcf7b-gs-navitem{text-transform:capitalize}.fcf7b-tpl-navall.is-on{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-count,.fcf7b-tpl-navall.is-on{box-shadow:inset 0 0 0 1px var(--fcf7b-border)}.fcf7b-tpl-count{background:var(--fcf7b-panel-2);border-radius:999px;color:var(--fcf7b-muted);font-size:11px;font-weight:700;margin-right:auto;padding:1px 7px}.fcf7b-gs-navitem.active .fcf7b-tpl-count{background:hsla(0,0%,100%,.25);box-shadow:none;color:#fff}.fcf7b-tpl-body{display:block}.fcf7b-tpl-note{color:var(--fcf7b-muted);font-size:13px;margin:0 0 12px}.fcf7b-tpl-note--error{color:#dc2626}.fcf7b-tpl-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.fcf7b-tpl-grid[hidden]{display:none}.fcf7b-tpl-card{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.fcf7b-tpl-thumb{background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:grid;font-size:28px;height:190px;overflow:hidden;place-items:center;position:relative}.fcf7b-tpl-thumb img{height:100%;object-fit:cover;object-position:top center;width:100%}.fcf7b-tpl-skel{gap:10px;padding:0 12px 12px}.fcf7b-tpl-skel span{animation:fcf7b-tpl-shimmer 1.2s linear infinite;background:linear-gradient(-90deg,var(--fcf7b-panel-2) 0,var(--fcf7b-border) 50%,var(--fcf7b-panel-2) 100%);background-size:200% 100%;border-radius:6px}.fcf7b-tpl-skel-thumb{border-radius:0;height:190px;margin:0 -12px}.fcf7b-tpl-skel-line{height:12px;width:70%}.fcf7b-tpl-skel-line--short{width:45%}.fcf7b-tpl-skel-btn{align-self:flex-end;height:30px;margin-top:4px;width:72px}.fcf7b-tpl-zoom{background:rgba(15,18,26,.55);border:0;border-radius:6px;color:#fff;cursor:pointer;display:grid;font-size:15px;height:28px;right:8px;opacity:.65;place-items:center;position:absolute;top:8px;transition:opacity .12s ease;width:28px}.fcf7b-tpl-zoom:focus-visible,.fcf7b-tpl-zoom:hover{background:rgba(15,18,26,.75);opacity:1}.fcf7b-tpl-card:hover .fcf7b-tpl-zoom{opacity:1}.fcf7b-tpl-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.fcf7b-tpl-badge{color:green!important;font-size:11px;font-weight:600;text-transform:capitalize}.fcf7b-tpl-badge--pro{background:#fc0;border-radius:4px;color:#000!important;inset-block-start:10px;inset-inline-end:10px;padding:2px 8px;position:absolute}.fcf7b-tpl-navhead{color:var(--fcf7b-heading);font-size:12px;font-weight:700;letter-spacing:.04em;margin:14px 0 6px;padding:0 10px;text-transform:uppercase}.fcf7b-tpl-meta{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.fcf7b-tpl-meta strong{color:var(--fcf7b-text);font-size:15px}.fcf7b-tpl-meta span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-tpl-actions{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding:0 12px 12px}.fcf7b-tpl-preview{align-items:center;background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:6px 12px;text-decoration:none}.fcf7b-tpl-preview:focus,.fcf7b-tpl-preview:hover{border-color:var(--fcf7b-accent);box-shadow:none;color:var(--fcf7b-accent)}.fcf7b-tpl-import{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-tpl-import:disabled{cursor:default;opacity:.6}.fcf7b-tpl-light{align-items:center;background:rgba(15,18,26,.88);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100004}.fcf7b-tpl-light-panel{background:#fff;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.45);max-height:92vh;overflow:auto;width:min(1100px,92vw)}.fcf7b-tpl-light img{display:block;height:auto;width:100%}.fcf7b-tpl-light-bar{align-items:center;display:flex;gap:8px;position:fixed;left:16px;top:16px;z-index:1}.fcf7b-tpl-light-count{color:#fff;font-size:12px;font-weight:600}.fcf7b-tpl-light-close,.fcf7b-tpl-light-nav{background:hsla(0,0%,100%,.14);border:0;border-radius:8px;color:#fff;cursor:pointer;display:grid;flex:0 0 auto;font-size:18px;height:32px;place-items:center;width:32px}.fcf7b-tpl-light-close:hover,.fcf7b-tpl-light-nav:hover{background:hsla(0,0%,100%,.28)}.fcf7b-tpl-light-close{margin-right:4px}.fcf7b-ctl-device{font-size:12px;margin-right:6px;vertical-align:middle}.fcf7b-empty{color:var(--fcf7b-muted);padding:80px 20px;text-align:center}.fcf7b-empty-emoji{font-size:34px;margin-bottom:10px}.fcf7b-cell{margin-bottom:var(--fcf7b-cell-gap,20px);position:relative}.fcf7b-cell>.fcf7b-card{height:100%}.fcf7b-cell.is-drop-after:after,.fcf7b-cell.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";height:3px;right:0;position:absolute;left:0;z-index:2}.fcf7b-cell.is-drop-before:before{top:0}.fcf7b-cell.is-drop-after:after{bottom:0}.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap{flex:0 1 auto;max-width:none;width:auto}.is-drop-in.is-drop-in{background:color-mix(in srgb,var(--fcf7b-accent) 10%,transparent);border-radius:4px;outline:2px solid var(--fcf7b-accent);outline-offset:2px}.fcf7b-card{border:1px dashed transparent;cursor:pointer;position:relative;transition:all .12s}.fcf7b-card.is-selected,.fcf7b-card:hover{border-color:var(--fcf7b-accent)}.fcf7b-card.is-selected>.fcf7b-hdl,.fcf7b-card:hover>.fcf7b-hdl{opacity:1;visibility:visible}.fcf7b-card.is-selected{background:color-mix(in srgb,var(--fcf7b-accent) 7%,transparent)}.fcf7b-card-body h1,.fcf7b-card-body h2,.fcf7b-card-body h3,.fcf7b-card-body h4,.fcf7b-card-body h5,.fcf7b-card-body h6{color:var(--fcf7b-heading)}.fcf7b-hdl{align-items:center;color:var(--fcf7b-accent-fg);display:inline-flex;font-size:12px;line-height:1;opacity:0;position:absolute;transition:opacity .12s;visibility:hidden;z-index:3}.fcf7b-hdl .fcf7b-hdl-grip,.fcf7b-hdl button{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-size:13px;height:18px;justify-content:center;line-height:1;padding:0;width:20px}.fcf7b-hdl .fcf7b-hdl-grip:hover,.fcf7b-hdl button:hover{background:hsla(0,0%,100%,.22)}.fcf7b-hdl .fcf7b-hdl-grip.danger:hover,.fcf7b-hdl button.danger:hover{background:var(--fcf7b-danger)}.fcf7b-hdl button{width:26px}.fcf7b-hdl .fcf7b-hdl-grip{cursor:move}.fcf7b-hdl .fcf7b-hdl-global{align-items:center;display:inline-flex;font-size:11px;height:18px;justify-content:center;opacity:.85;width:18px}.fcf7b-hdl-tab{background:var(--fcf7b-accent);border-radius:4px 4px 0 0;bottom:100%;right:50%;overflow:hidden;transform:translateX(50%)}.fcf7b-hdl-box{border-end-end-radius:4px;inset-inline-start:0}.fcf7b-hdl-box,.fcf7b-hdl-pen{background:var(--fcf7b-accent);top:0}.fcf7b-hdl-pen{border-end-start-radius:4px;inset-inline-end:0}.fcf7b-pv-ms{align-items:center;display:flex;gap:8px}.fcf7b-pv-ms-chips{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:4px;min-width:0}.fcf7b-pv-ms-placeholder{color:var(--fcf7b-muted)}.fcf7b-pv-ms-chip{align-items:center;background:hsla(0,0%,50%,.2);border-radius:3px;display:inline-flex;font-size:11.5px;gap:5px;padding:1px 7px 1px 5px}.fcf7b-pv-ms-chip>span{opacity:.5}.fcf7b-pv-ms-caret{border-right:4px solid transparent;border-left:4px solid transparent;border-top:5px solid;flex:none;height:0;opacity:.5;width:0}.fcf7b-pv-stars.fcf7-rating .icon{display:inline-flex;gap:4px}.fcf7b-pv-stars.fcf7-rating .fcf7-star{color:#d5d8dc;display:inline-flex;transition:color .15s ease-in-out}.fcf7b-pv-stars.fcf7-rating .fcf7-star svg{height:24px;width:24px}.fcf7b-pv-stars.fcf7-rating .fcf7-star.is-active{color:#f5a623}.fcf7b-pv-sigink{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.fcf7b-pv-file{color:var(--fcf7b-text);font-size:12.5px;width:100%}.fcf7b-pv-quiz .wpcf7-quiz-label{display:inline-block}.fcf7b-pv-choices .fcf7b-pv-inline{font:inherit}.fcf7b-pv-inline{align-items:center;display:flex;font-size:12.5px;gap:4px}.fcf7b-pv-html-empty{padding:10px;text-align:center}.fcf7b-pv-hidden,.fcf7b-pv-html-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-family:Consolas,Monaco,Courier New,monospace;font-size:11px}.fcf7b-pv-hidden{align-items:center;display:flex;gap:8px;padding:8px 10px}.fcf7b-pv-hidden-name{color:var(--fcf7b-text)}.fcf7b-pv-hidden-value:before{content:"= "}.fcf7b-pv-desc{color:var(--fcf7b-muted);font-size:11px}.fcf7b-pv-heading{margin:4px 0}.fcf7b-pv-divider{border:0;border-top:1px solid var(--fcf7b-divider-color,var(--fcf7b-border));margin:4px 0;width:100%}.fcf7b-pv-submit{background:var(--fcf7b-accent);border:0;border-radius:8px;color:#fff;font-weight:600;padding:9px 20px}.fcf7b-pv-stars{color:#f5b301;font-size:20px;letter-spacing:3px}.fcf7b-pv-star{display:inline-block}.fcf7b-pv-custom{display:block}.fcf7b-pv-icon{font-size:22px;line-height:1}.fcf7b-pv-sp-canvas{align-items:center;border-radius:4px;display:inline-flex;font-size:18px;font-style:italic;font-weight:600;justify-content:center;letter-spacing:2px}.fcf7b-pv-slotpicker{display:flex;flex-direction:column;font-size:12px;gap:8px}.fcf7b-pv-slotpicker-cal{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;max-width:240px;padding:8px}.fcf7b-pv-slotpicker-cal-head{align-items:center;display:flex;font-weight:600;justify-content:space-between;margin-bottom:6px}.fcf7b-pv-slotpicker-cal-head button{background:transparent;border:0;color:var(--fcf7b-text);cursor:pointer;line-height:1;padding:2px 6px}.fcf7b-pv-slotpicker-cal-grid{display:grid;gap:2px;grid-template-columns:repeat(7,1fr);text-align:center}.fcf7b-pv-slotpicker-cal-dow{color:var(--fcf7b-muted);font-size:10px;padding:2px 0}.fcf7b-pv-slotpicker-cal-day{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;padding:4px 0}.fcf7b-pv-slotpicker-cal-day:hover:not(:disabled){background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-muted{visibility:hidden}.fcf7b-pv-slotpicker-cal-day.is-disabled{color:var(--fcf7b-muted);cursor:not-allowed;opacity:.4}.fcf7b-pv-slotpicker-cal-day.is-in-range{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-selected{background:var(--fcf7b-accent);color:#fff}.fcf7b-pv-slotpicker-range{color:var(--fcf7b-text);font-size:12px}.fcf7b-pv-slotpicker-slots{display:flex;flex-wrap:wrap;gap:6px}.fcf7b-pv-slotpicker-hint{color:var(--fcf7b-muted);font-size:11.5px}.fcf7b-pv-slotpicker-slot{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:4px 8px}.fcf7b-pv-slotpicker-slot:hover{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-slot.is-active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-ctnbox{min-height:20px;outline:1px dashed var(--fcf7b-border);outline-offset:2px}.fcf7b-ctn-item{position:relative;width:100%}.fcf7b-ctn-item.is-drop-after:after,.fcf7b-ctn-item.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";position:absolute;z-index:2}.fcf7b-ctn-item.is-drop-x:after,.fcf7b-ctn-item.is-drop-x:before{bottom:0;top:0;width:3px}.fcf7b-ctn-item.is-drop-x.is-drop-before:before{right:-8px}.fcf7b-ctn-item.is-drop-x.is-drop-after:after{left:-8px}.fcf7b-ctn-item.is-drop-y:after,.fcf7b-ctn-item.is-drop-y:before{height:3px;right:0;left:0}.fcf7b-ctn-item.is-drop-y.is-drop-before:before{top:-8px}.fcf7b-ctn-item.is-drop-y.is-drop-after:after{bottom:-8px}.fcf7b-ctn-item>.fcf7b-card,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap>.fcf7-container{height:100%}.fcf7b-ctnpick{border:1px dashed var(--fcf7b-border);border-radius:6px;flex:1 1 100%;padding:12px 14px 14px}.fcf7b-ctnpick-head{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center;margin-bottom:10px;position:relative}.fcf7b-ctnpick-head button{background:none;border:0;color:var(--fcf7b-muted);cursor:pointer;line-height:1;padding:2px;position:absolute;left:0}.fcf7b-ctnpick-head button:hover{color:var(--fcf7b-text)}.fcf7b-ctnpick-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.fcf7b-ctnpick-item{background:none;border:1px solid transparent;border-radius:5px;cursor:pointer;line-height:0;padding:0}.fcf7b-ctnpick-item:hover .fcf7b-ctnpick-box{outline:2px solid var(--fcf7b-accent)}.fcf7b-ctnpick-box{border-radius:3px;display:flex;gap:2px;height:42px;overflow:hidden;width:86px}.fcf7b-ctnpick-cell{background:var(--fcf7b-border);border-radius:2px;flex-basis:0}.fcf7b-ctnpick-nest{display:flex;flex-basis:0}.fcf7b-ctnpick-nest>.fcf7b-ctnpick-box{flex:1 1 auto;height:auto;width:auto}.fcf7b-ctnpick-glyph{background:var(--fcf7b-border);font-size:15px}.fcf7b-ctn-empty,.fcf7b-ctnpick-glyph{align-items:center;color:var(--fcf7b-muted);justify-content:center;line-height:1}.fcf7b-ctn-empty{background:none;border:1px dashed var(--fcf7b-border);border-radius:6px;cursor:pointer;display:flex;flex:1 1 100%;font-size:18px;min-height:46px;padding:8px;width:100%}.fcf7b-divider[data-pattern]{background-color:var(--fcf7b-divider-color,var(--fcf7-field-border,var(--fcf7b-border,currentColor)));border:0;height:12px;-webkit-mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x;mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x}.fcf7b-divider[data-pattern][data-pattern=wavy]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-20 5q5-5 10 0T0 5t10 0 10 0 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=zigzag]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m-5 2 5 6 5-6 5 6 5-6 5 6 5-6%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=curved]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-10 7A5 4 0 0 1 0 7a5 4 0 0 1 10 0 5 4 0 0 1 10 0 5 4 0 0 1 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=slashes]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-width=%271.6%27 d=%27m1 9 6-8%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=dots]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Ccircle cx=%275%27 cy=%275%27 r=%272.4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=squares]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M2.5 2.5h5v5h-5z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=rhombus]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m5 1 4 4-4 4-4-4Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=triangles]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m1 9 5-8 5 8Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=arrows]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m1 1 5 4-5 4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=multiple]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M0 1h10v1.5H0zM0 4.25h10v1.5H0zM0 7.5h10V9H0z%27/%3E%3C/svg%3E")}.fcf7b-toolbar .fcf7b-tb-group .fcf7b-ghost.is-set{background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-nav{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);box-shadow:0 10px 30px rgba(16,18,27,.18),var(--fcf7b-shadow);display:flex;flex-direction:column;overflow:hidden;position:fixed;z-index:100001}.fcf7b-nav-head{align-items:center;background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-heading);cursor:move;display:flex;font-size:12px;font-weight:600;gap:6px;padding:8px 10px 8px 8px;-webkit-user-select:none;user-select:none}.fcf7b-nav-head i{color:var(--fcf7b-accent);font-size:14px;font-weight:400}.fcf7b-nav-head button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:15px;line-height:1;margin-right:auto;padding:2px}.fcf7b-nav-head button:hover{color:var(--fcf7b-danger)}.fcf7b-nav-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 0 10px}.fcf7b-nav-empty{color:var(--fcf7b-muted);font-size:12px;padding:18px 12px;text-align:center}.fcf7b-nav-row{align-items:center;border:1px solid transparent;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;gap:6px;padding:4px 6px 4px 8px;position:relative}.fcf7b-nav-row:hover{background:var(--fcf7b-panel-2)}.fcf7b-nav-row.is-selected{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-nav-row.is-step{color:var(--fcf7b-muted);cursor:default;font-style:italic}.fcf7b-nav-row.is-step:hover{background:transparent}.fcf7b-nav-row.is-drop-after:after,.fcf7b-nav-row.is-drop-before:before{background:var(--fcf7b-accent);border-radius:2px;content:"";height:2px;right:4px;position:absolute;left:4px}.fcf7b-nav-row.is-drop-before:before{top:-1px}.fcf7b-nav-row.is-drop-after:after{bottom:-1px}.fcf7b-nav-row.is-drop-inside{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);border-radius:6px}.fcf7b-nav-row:hover .fcf7b-nav-acts{opacity:1}.fcf7b-nav-caret{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:16px;padding:0;place-items:center;width:16px}.fcf7b-nav-caret.is-empty{cursor:default;pointer-events:none}.fcf7b-nav-icon{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px;opacity:.9}.fcf7b-nav-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-nav-acts{display:flex;flex:0 0 auto;gap:2px;opacity:0;transition:opacity .15s ease}.fcf7b-nav-acts button{background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;line-height:1;padding:1px 2px}.fcf7b-nav-acts button:hover{color:var(--fcf7b-accent)}.fcf7b-nav-acts button.danger:hover{color:var(--fcf7b-danger)}.fcf7b-nav-resize{background:linear-gradient(-135deg,transparent 0 45%,var(--fcf7b-border) 45% 55%,transparent 55%),linear-gradient(-135deg,transparent 0 70%,var(--fcf7b-border) 70% 80%,transparent 80%);bottom:0;cursor:nesw-resize;height:14px;position:absolute;left:0;width:14px}.fcf7b-nav-peek .fcf7b-card{border-color:var(--fcf7b-accent)}.fcf7b-props{border-right:1px solid var(--fcf7b-border);padding:14px}.fcf7b-props input,.fcf7b-props select{outline:none!important}.fcf7b-props-head{align-items:center;border-bottom:1px solid var(--fcf7b-border);display:flex;font-size:13px;font-weight:700;gap:8px;padding-bottom:10px}.fcf7b-props-head-icon{color:var(--fcf7b-muted);font-size:15px;font-weight:400;line-height:1}.fcf7b-props-banners{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.fcf7b-props-banners>span{display:block}.fcf7b-props-empty{color:var(--fcf7b-muted);padding-top:60px;text-align:center}.fcf7b-props-tabs{border-bottom:1px solid var(--fcf7b-border);display:flex;gap:4px;margin:-4px -4px 12px;padding:0 4px}.fcf7b-ptab{align-items:center;background:none;border:0;display:flex;flex:1;flex-direction:column;gap:3px;padding:10px 8px}.fcf7b-ptab>i{font-size:15px;font-weight:400;line-height:1}.fcf7b-ptab{border-bottom:2px solid transparent;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;font-weight:600;margin-bottom:-1px}.fcf7b-ptab.active{border-bottom-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-sec{border-bottom:1px solid var(--fcf7b-border);margin:0 -14px}.fcf7b-sec-head{align-items:center;background:none;border:0;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;font-weight:700;gap:6px;padding:12px 14px;text-align:right;width:100%}.fcf7b-sec-head:hover{color:var(--fcf7b-accent)}.fcf7b-sec-arrow{color:var(--fcf7b-muted);font-size:15px;line-height:1;transition:transform .15s ease}.fcf7b-sec.open .fcf7b-sec-arrow{transform:rotate(-90deg)}.fcf7b-sec-body{padding:2px 14px 14px}.fcf7b-popgroup{margin-bottom:13px}.fcf7b-popgroup-head{align-items:center;display:flex;gap:8px}.fcf7b-popgroup-head>.fcf7b-prop-label{margin:0}.fcf7b-popgroup-tools{align-items:center;display:flex;gap:6px;margin-right:auto}.fcf7b-popgroup-reset{background:none;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:14px;height:22px;padding:0;width:22px}.fcf7b-popgroup-reset:hover{color:var(--fcf7b-accent)}.fcf7b-popgroup-pop{position:relative}.fcf7b-popgroup-edit{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;height:24px;width:26px}.fcf7b-popgroup-edit.is-open,.fcf7b-popgroup-edit:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-popgroup-edit.is-on{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-popgroup-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;left:0;text-align:right;top:calc(100% + 8px);width:252px;z-index:60}.fcf7b-popgroup-panel>.fcf7b-prop:last-child{margin-bottom:0}.fcf7b-ctl-sep{border-top:1px solid var(--fcf7b-border);height:0;margin:3px 0 13px}.fcf7b-ctl-heading{color:var(--fcf7b-text);font-size:11px;font-weight:700;letter-spacing:.5px;margin:0 0 5px;padding-inline-start:10px;position:relative;text-transform:uppercase}.fcf7b-ctl-heading:before{background:var(--fcf7b-accent);bottom:2px;content:"";inset-inline-start:0;position:absolute;top:2px;width:3px}.fcf7b-ctabs{margin-bottom:13px}.fcf7b-ctabs-nav{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;margin-bottom:12px;padding:3px}.fcf7b-ctab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-ctab.active,.fcf7b-ctab:hover{color:var(--fcf7b-text)}.fcf7b-ctab.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow)}.fcf7b-choose{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px}.fcf7b-choose-btn{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;height:26px;justify-content:center;line-height:1;min-width:28px;padding:0 8px}.fcf7b-choose-btn i{font-size:14px;font-weight:400}.fcf7b-choose-btn:hover{color:var(--fcf7b-text)}.fcf7b-choose-btn.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-choose-btn+.fcf7b-choose-btn{position:relative}.fcf7b-choose-btn+.fcf7b-choose-btn:before{background:var(--fcf7b-border);bottom:5px;content:"";right:-2px;position:absolute;top:5px;width:1px}.fcf7b-choose-btn.active+.fcf7b-choose-btn:before,.fcf7b-choose-btn.active:before{display:none}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose{display:flex}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose>.fcf7b-choose-btn{flex:1 1 0;min-width:0}.fcf7b-ctxmenu-backdrop{inset:0;position:fixed;z-index:100002}.fcf7b-ctxmenu{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:2px;min-width:212px;padding:4px;position:fixed}.fcf7b-ctxmenu-title{color:var(--fcf7b-muted);font-size:11px;font-weight:600;letter-spacing:.02em;padding:6px 10px 4px;text-transform:uppercase}.fcf7b-ctxmenu button{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:8px;padding:7px 10px;text-align:right;width:100%}.fcf7b-ctxmenu button i{color:var(--fcf7b-muted);font-size:14px}.fcf7b-ctxmenu button:hover{background:var(--fcf7b-panel-2)}.fcf7b-ctxmenu button:disabled{cursor:default;opacity:.4}.fcf7b-ctxmenu button:disabled:hover{background:transparent}.fcf7b-ctxmenu button.danger{color:var(--fcf7b-danger)}.fcf7b-ctxmenu button.danger i{color:inherit}.fcf7b-ctxmenu-key{color:var(--fcf7b-muted);font-family:Segoe UI Symbol,SF Pro Text,-apple-system,system-ui,sans-serif;font-size:11.5px;margin-right:auto;padding-right:16px;white-space:nowrap}.fcf7b-ctxmenu button.danger .fcf7b-ctxmenu-key{color:var(--fcf7b-danger);opacity:.7}.fcf7b-ctxmenu-sep{background:var(--fcf7b-border);height:1px;margin:3px 4px}.fcf7b-prop{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.fcf7b-prop-label{align-items:center;color:var(--fcf7b-text);display:flex;font-size:11.5px;font-weight:600}.fcf7b-prop-label i{font-weight:400}.fcf7b-prop-hint{color:var(--fcf7b-muted);font-size:10.5px;font-weight:400}.fcf7b-prop-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.4;margin:0 0 14px}.fcf7b-prop .fcf7b-prop-desc{margin-bottom:0}.fcf7b-prop input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop select,.fcf7b-prop textarea{background:var(--fcf7b-panel-2);border-color:var(--fcf7b-border)!important;border-radius:7px;border-style:solid;border-width:1px;color:var(--fcf7b-text)!important;font-size:12.5px;padding:7px 9px;width:100%}.fcf7b-prop textarea.fcf7b-code-input{font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-x:auto;resize:vertical;tab-size:2;white-space:pre}.fcf7b-prop-check{align-items:center;cursor:pointer;flex-direction:row;gap:8px}.fcf7b-prop-check input{height:16px;width:16px}.fcf7b-prop .fcf7b-dim-box{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;display:grid;grid-template-columns:repeat(4,1fr) 34px;overflow:hidden}.fcf7b-prop .fcf7b-dim-box input{background:transparent;border:0;border-color:var(--fcf7b-border)!important;border-radius:0!important;border-style:solid;border-width:0 0 0 1px!important;box-shadow:none!important;color:var(--fcf7b-text);font-size:12px;min-height:auto;min-width:0;padding:8px 2px;text-align:center;width:100%}.fcf7b-prop .fcf7b-dim-link{align-items:center;background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:14px;justify-content:center}.fcf7b-prop .fcf7b-dim-link.is-linked{color:var(--fcf7b-accent)}.fcf7b-prop .fcf7b-dim-custom{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0;width:100%}.fcf7b-prop .fcf7b-dim-labels{display:grid;grid-template-columns:repeat(4,1fr) 34px;margin-top:3px}.fcf7b-prop .fcf7b-dim-labels span{color:var(--fcf7b-muted);font-size:9px;letter-spacing:.3px;text-align:center;text-transform:uppercase}.fcf7b-prop .fcf7b-border,.fcf7b-prop .fcf7b-border .fcf7b-ctl-row{margin-bottom:13px}.fcf7b-opts{font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}.fcf7b-prop .CodeMirror{background:#1e1e1e;border:1px solid #000;border-radius:7px;color:#d4d4d4;font-size:12px;height:260px;line-height:1.55;max-width:100%}.fcf7b-prop .CodeMirror-gutters{background:#1a1a1a;border-left:1px solid #2b2b2b}.fcf7b-prop .CodeMirror-linenumber{color:#6a6a6a}.fcf7b-prop .CodeMirror-cursor{border-right-color:#d4d4d4}.fcf7b-prop .CodeMirror-activeline-background{background:#262626}.fcf7b-prop .CodeMirror-focused .CodeMirror-selected,.fcf7b-prop .CodeMirror-selected{background:#264f78}.fcf7b-prop .CodeMirror-matchingtag{background:rgba(86,156,214,.22)}.fcf7b-prop .cm-tag{color:#569cd6}.fcf7b-prop .cm-attribute{color:#9cdcfe}.fcf7b-prop .cm-string{color:#ce9178}.fcf7b-prop .cm-bracket,.fcf7b-prop .cm-punctuation{color:gray}.fcf7b-prop .cm-comment{color:#6a9955}.fcf7b-prop .cm-atom,.fcf7b-prop .cm-keyword{color:#c586c0}.fcf7b-prop .cm-number{color:#b5cea8}.fcf7b-prop .cm-error{color:#f48771}.fcf7b-prop .CodeMirror-lint-markers{background:#1a1a1a}.fcf7b-date-list{flex-direction:column}.fcf7b-date-list,.fcf7b-date-list-add{display:flex;gap:6px}.fcf7b-date-list-add input[type=date]{flex:1;min-width:0}.fcf7b-date-list-add input[type=number]{flex:0 0 auto;width:70px!important}.fcf7b-date-list-add input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-add input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-add button{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;cursor:pointer;flex-shrink:0;width:26px}.fcf7b-date-list-add button:disabled{cursor:default;opacity:.4}.fcf7b-date-list-chips{display:flex;flex-wrap:wrap;gap:5px}.fcf7b-date-list-chip{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:20px;display:inline-flex;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;gap:4px;padding:2px 8px 2px 4px}.fcf7b-date-list-chip input[type=number]{background:transparent;border:0;color:inherit;font:inherit;margin:0!important;min-height:30px;padding:0!important;text-align:center;width:70px!important}.fcf7b-date-list-chip input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-chip input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-chip button{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;height:16px;justify-content:center;line-height:1;width:16px}.fcf7b-date-list-chip button:hover{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-price-map-empty{color:var(--fcf7b-muted);font-size:12px;margin:0}.fcf7b-price-map{display:flex;flex-direction:column;gap:6px}.fcf7b-price-map-row{align-items:center;display:flex;gap:6px}.fcf7b-price-map-label{flex:1;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-price-map input[type=number]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;flex:0 0 auto;width:80px!important}.fcf7b-price-map input[type=number]::-webkit-inner-spin-button,.fcf7b-price-map input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl{display:flex;flex-direction:column;gap:6px}.fcf7b-steps-ctl-row{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:6px;padding:4px;transition:border-color .12s}.fcf7b-steps-ctl-row.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-handle{color:var(--fcf7b-muted);cursor:grab;display:flex;flex:0 0 auto;font-size:14px;opacity:.5}.fcf7b-steps-ctl-handle:hover{opacity:1}.fcf7b-steps-ctl-handle:active{cursor:grabbing}.fcf7b-steps-ctl-index{align-items:center;background:var(--fcf7b-border);border-radius:50%;color:var(--fcf7b-muted);display:flex;flex:0 0 auto;font-size:10px;font-weight:600;height:18px;justify-content:center;margin-top:1px;width:18px}.fcf7b-steps-ctl-label{background:transparent!important;border:0!important;flex:1 1 auto;font-size:12.5px;min-width:0;padding:6px 4px!important}.fcf7b-steps-ctl-price{-moz-appearance:textfield;flex:0 0 auto;margin:0!important;padding:0!important;text-align:center;width:35px!important}.fcf7b-steps-ctl-price::-webkit-inner-spin-button,.fcf7b-steps-ctl-price::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl-remove{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:0 0 auto;font-size:13px;padding:4px 6px}.fcf7b-steps-ctl-remove:hover:not(:disabled){background:var(--fcf7b-danger);color:#fff}.fcf7b-steps-ctl-remove:disabled{cursor:not-allowed;opacity:.35}.fcf7b-steps-ctl--time-price .fcf7b-steps-ctl-row{gap:0}.fcf7b-steps-ctl--time-price input[type=time]::-webkit-calendar-picker-indicator{margin-right:0}.fcf7b-steps-ctl-drop-end{border-radius:3px;height:6px}.fcf7b-steps-ctl-drop-end.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-add{align-items:center;align-self:flex-start;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;margin-top:2px;padding:7px 10px}.fcf7b-steps-ctl-add:hover{background:var(--fcf7b-accent-soft);border-style:solid}.fcf7b-width-btns{display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.fcf7b-width-btn{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:7px 6px}.fcf7b-width-btn.active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-width .fcf7b-slider{margin-bottom:0;margin-top:12px}.fcf7b-prop--inline{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;justify-content:space-between}.fcf7b-prop--inline>.fcf7b-prop-desc{flex:0 0 100%;margin-top:-2px}.fcf7b-prop--inline>.fcf7b-prop-label{align-items:center;display:flex;flex:0 0 auto;margin:0}.fcf7b-prop--inline>.fcf7b-select,.fcf7b-prop--inline>input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop--inline>select{flex:1 1 auto;line-height:1;max-width:130px;min-height:auto;padding:9px}.fcf7b-prop--inline>.fcf7b-select{padding:0;width:115px}.fcf7b-prop--inline>.fcf7b-bxsh,.fcf7b-prop--inline>.fcf7b-color,.fcf7b-prop--inline>.fcf7b-typo{flex:0 0 auto}.fcf7b-ctl-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7b-ctl-head .fcf7b-prop-label{margin:0}.fcf7b-ctl-head .fcf7b-ctl-unit{background:transparent;border:none;color:var(--fcf7b-text);cursor:pointer;flex:0 0 auto;font-size:11px;line-height:1;min-height:auto;min-width:auto;padding:0;text-align:center;width:auto}.fcf7b-ctl-head .fcf7b-ctl-unit.is-static{background:transparent;border-color:transparent;color:var(--fcf7b-muted);cursor:default;padding-left:0}.fcf7b-unit{flex:0 0 auto;position:relative}.fcf7b-unit-trigger{align-items:center;display:inline-flex;gap:3px;justify-content:center;min-width:42px}.fcf7b-unit-trigger i{font-size:13px;line-height:1}.fcf7b-unit-trigger.is-custom{color:var(--fcf7b-accent)}.fcf7b-unit-caret{color:var(--fcf7b-muted);font-size:14px!important;transition:transform .15s}.fcf7b-unit-trigger.is-open .fcf7b-unit-caret{transform:rotate(-180deg)}.fcf7b-unit-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);min-width:54px;padding:4px;position:absolute;left:0;top:calc(100% + 4px);z-index:20}.fcf7b-unit-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.fcf7b-unit-list li{margin:0}.fcf7b-unit-opt{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:11px;justify-content:center;line-height:1;padding:6px 8px;width:100%}.fcf7b-unit-opt i{font-size:13px}.fcf7b-unit-opt:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-unit-opt.is-active{color:var(--fcf7b-accent)}.fcf7b-select{position:relative;width:100%}.fcf7b-select-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:6px;justify-content:space-between;line-height:1.2;min-height:auto;padding:7px 9px;text-align:right;width:100%}.fcf7b-select-cur{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:15px;transition:transform .15s}.fcf7b-select-trigger.is-open .fcf7b-select-caret{transform:rotate(-180deg)}.fcf7b-select-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);right:0;padding:4px;position:absolute;left:0;top:calc(100% + 4px);z-index:30}.fcf7b-select-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.fcf7b-select-list li{margin:0}.fcf7b-select-opt{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:block;font-size:12px;line-height:1;overflow:hidden;padding:7px 9px;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:100%}.fcf7b-select-opt:hover{background:var(--fcf7b-panel-2)}.fcf7b-select-opt.is-active{color:var(--fcf7b-accent);font-weight:600}.fcf7b-select-list.is-multi .fcf7b-select-opt{align-items:center;display:flex;gap:6px}.fcf7b-select-check{flex:0 0 auto;font-size:14px}.fcf7b-select-optlabel{min-width:0;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-hasremove{align-items:center;display:flex;gap:2px}.fcf7b-select-hasremove .fcf7b-select-opt{flex:1 1 auto}.fcf7b-select-hasremove.is-drop{box-shadow:inset 0 2px 0 var(--fcf7b-accent)}.fcf7b-select-grip{color:var(--fcf7b-muted);cursor:grab;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:18px}.fcf7b-select-grip:active{cursor:grabbing}.fcf7b-select-grip:hover{color:var(--fcf7b-accent)}.fcf7b-select-remove{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:24px}.fcf7b-select-remove:hover{color:var(--fcf7b-danger)}.fcf7b-select-create{border-top:1px solid var(--fcf7b-border);padding-top:4px}.fcf7b-select-createinput{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:5px;box-shadow:unset!important;color:var(--fcf7b-text);font-size:12px;line-height:1.2;margin:0;min-height:auto!important;padding:7px 9px;width:100%}.fcf7b-select-createinput::placeholder{color:var(--fcf7b-muted)}.fcf7b-select-createinput:focus{outline:none}.fcf7b-switch{align-items:center;background:var(--fcf7b-border);border:0;border-radius:999px;cursor:pointer;display:inline-flex;flex:0 0 auto;height:22px;padding:0;position:relative;transition:background .15s;width:40px}.fcf7b-switch.is-on{background:var(--fcf7b-accent)}.fcf7b-switch.has-label{min-width:48px;padding:0 24px 0 8px;width:auto}.fcf7b-switch.has-label.is-on{padding:0 8px 0 24px}.fcf7b-switch-label{color:var(--fcf7b-text);font-size:10px;font-weight:600;line-height:1;white-space:nowrap}.fcf7b-switch.is-on .fcf7b-switch-label{color:#fff}.fcf7b-switch-knob{background:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.3);height:18px;right:2px;position:absolute;top:2px;transition:right .15s;width:18px}.fcf7b-switch.is-on .fcf7b-switch-knob{right:calc(100% - 20px)}.fcf7b-bxsh{position:relative}.fcf7b-bxsh-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;gap:8px;padding:5px 8px}.fcf7b-bxsh-trigger i{color:var(--fcf7b-muted);font-size:13px}.fcf7b-bxsh-trigger.is-set{border-color:var(--fcf7b-accent)}.fcf7b-bxsh-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-bxsh-pop .fcf7b-color-pop{width:216px}.fcf7b-slider{gap:0}.fcf7b-slider-row{align-items:center;display:flex;gap:10px}.fcf7b-slider-num{flex:0 0 65px;text-align:center}.fcf7b-slider-custom,.fcf7b-slider-num{line-height:1;min-height:auto!important}.fcf7b-slider-custom{flex:1 1 auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0}.fcf7b-slider-range{appearance:none;background:var(--fcf7b-border);border-radius:3px;cursor:pointer;flex:1 1 auto;height:4px;outline:none}.fcf7b-slider-range::-webkit-slider-thumb{appearance:none;background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;box-shadow:0 0 0 1px var(--fcf7b-border);cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-thumb{background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-track{background:var(--fcf7b-border);border-radius:3px;height:4px}.fcf7b-ctl-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.fcf7b-ctl-row>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);flex:0 0 auto;font-size:11.5px;font-weight:600}.fcf7b-ctl-row>.fcf7b-select,.fcf7b-ctl-row>input,.fcf7b-ctl-row>select{flex:0 0 160px;line-height:1;max-width:160px;min-height:auto;min-width:0;padding:9px}.fcf7b-ctl-row>.fcf7b-select{padding:0}.fcf7b-cond-ctl .fcf7b-cond-body{border:1px dashed var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:10px}.fcf7b-cond-ctl .fcf7b-cond-hint{color:var(--fcf7b-muted);font-size:11px;margin:0}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row{border:1px dashed var(--fcf7b-border);border-radius:8px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row.is-open{border-style:solid}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head{align-items:center;cursor:pointer;display:flex;gap:6px;padding:8px 6px 8px 8px;-webkit-user-select:none;user-select:none}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head:hover{background:var(--fcf7b-panel-2)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-title{color:var(--fcf7b-text);flex:1 1 auto;font-size:12px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;flex:0 0 auto;height:20px;justify-content:center;padding:0;width:20px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove:hover{background:var(--fcf7b-border);color:var(--fcf7b-text)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-body{border-top:1px solid var(--fcf7b-border);display:flex;flex-direction:column;gap:8px;padding:4px 10px 10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack{display:flex;flex-direction:column;gap:4px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);font-size:11.5px;font-weight:600}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack textarea{resize:vertical}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:7px 10px;width:max-content}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add:hover{background:var(--fcf7b-panel-2)}.fcf7b-typo{position:relative}.fcf7b-typo .fcf7b-ctl-row>.fcf7b-select,.fcf7b-typo .fcf7b-ctl-row>input,.fcf7b-typo .fcf7b-ctl-row>select{flex:0 0 130px;max-width:130px}.fcf7b-typo-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;gap:8px;padding:8px}.fcf7b-typo-trigger.is-open,.fcf7b-typo-trigger.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-typo-aa{color:var(--fcf7b-text);font-size:14px;font-weight:700;line-height:1}.fcf7b-typo-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-typo-pop .fcf7b-slider{margin-bottom:0}.fcf7b-typo-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 10px}.fcf7b-typo-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-color{position:relative}.fcf7b-color-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:8px;padding:5px 8px}.fcf7b-color-trigger.is-open{border-color:var(--fcf7b-accent)}.fcf7b-color-swatch{border:1px solid var(--fcf7b-border);border-radius:5px;flex:0 0 auto;height:22px;width:22px}.fcf7b-color-swatch.is-empty{background-image:linear-gradient(-45deg,#c4c4c4 25%,transparent 0),linear-gradient(45deg,#c4c4c4 25%,transparent 0),linear-gradient(-45deg,transparent 75%,#c4c4c4 0),linear-gradient(45deg,transparent 75%,#c4c4c4 0);background-position:100% 0,100% 4px,right 4px top -4px,right -4px top 0;background-size:8px 8px}.fcf7b-color-value{font-size:11px;letter-spacing:.3px;min-width:54px;text-align:right;text-transform:uppercase}.fcf7b-color-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:236px;z-index:50}.fcf7b-pop-head{align-items:center;color:var(--fcf7b-text);display:flex;font-size:12px;font-weight:600;justify-content:space-between;margin-bottom:10px}.fcf7b-pop-tools{display:flex;gap:4px}.fcf7b-pop-tools button{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;display:grid;font-size:13px;height:24px;justify-content:center;width:24px}.fcf7b-pop-tools button:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-cp-area{border-radius:7px;cursor:crosshair;height:150px;overflow:hidden;position:relative;touch-action:none}.fcf7b-cp-area-black,.fcf7b-cp-area-white{inset:0;position:absolute}.fcf7b-cp-area-white{background:linear-gradient(-90deg,#fff,hsla(0,0%,100%,0))}.fcf7b-cp-area-black{background:linear-gradient(0deg,#000,transparent)}.fcf7b-cp-area-handle{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.45);height:14px;pointer-events:none;position:absolute;transform:translate(50%,-50%);width:14px}.fcf7b-cp-slider{border-radius:6px;cursor:pointer;height:12px;margin-top:12px;position:relative;touch-action:none}.fcf7b-cp-hue{background:linear-gradient(-90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.fcf7b-cp-alpha{background-image:linear-gradient(to left,transparent,var(--cp-color,#000)),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%);background-position:100% 0,100% 0,right 5px top 5px;background-size:100% 100%,10px 10px,10px 10px}.fcf7b-cp-slider-handle{background:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);height:14px;pointer-events:none;position:absolute;top:50%;transform:translate(50%,-50%);width:14px}.fcf7b-cp-foot{align-items:center;display:flex;gap:6px;margin-top:12px}.fcf7b-cp-hex{flex:1;min-width:0;text-transform:uppercase}.fcf7b-cp-fmt{color:var(--fcf7b-muted);font-size:10px;font-weight:700;letter-spacing:.5px}.fcf7b-cp-none{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 8px}.fcf7b-cp-none:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-iconpick{position:relative}.fcf7b-iconpick-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;justify-content:center;min-height:30px;min-width:34px;padding:4px 8px}.fcf7b-iconpick-trigger i{font-size:18px}.fcf7b-iconpick-trigger.is-open,.fcf7b-iconpick-trigger.is-set,.fcf7b-iconpick-trigger:hover{border-color:var(--fcf7b-accent)}.fcf7b-iconpick-placeholder{color:var(--fcf7b-muted)}.fcf7b-iconpick-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;left:0;top:calc(100% + 8px);width:260px;z-index:50}.fcf7b-iconpick-gridwrap{position:relative}.fcf7b-iconpick-grid{align-content:start;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);display:grid;gap:4px;grid-template-columns:repeat(6,1fr);height:184px;overflow-y:auto;padding:2px}.fcf7b-iconpick-grid.is-loading{opacity:.35;pointer-events:none}.fcf7b-iconpick-loader{gap:8px;inset:0;position:absolute}.fcf7b-iconpick-loader,.fcf7b-iconpick-more{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center}.fcf7b-iconpick-more{gap:6px;grid-column:1/-1;padding:10px 0}.fcf7b-iconpick-cell{align-items:center;aspect-ratio:1;background:none;border:1px solid transparent;border-radius:8px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:18px;justify-content:center}.fcf7b-iconpick-cell.active,.fcf7b-iconpick-cell:hover{background:var(--fcf7b-accent-soft)}.fcf7b-iconpick-cell.active{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-iconpick-search{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-sizing:border-box;color:var(--fcf7b-text);font-size:13px;margin-bottom:6px;padding:7px 10px;width:100%}.fcf7b-iconpick-search:focus{border-color:var(--fcf7b-accent);outline:none}.fcf7b-iconpick-empty{color:var(--fcf7b-muted);font-size:12px;grid-column:1/-1;padding:20px 0;text-align:center}.fcf7b-iconpick-selected{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:8px;margin-top:8px;min-height:34px;padding:8px 10px}.fcf7b-iconpick-selected i{flex:0 0 auto;font-size:18px}.fcf7b-iconpick-selected code{color:var(--fcf7b-text);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-code{background:var(--fcf7b-panel);height:640px;overflow-y:auto;padding:20px}.fcf7b-code-note{color:var(--fcf7b-muted);margin-bottom:12px;max-width:640px}.fcf7b-code pre.fcf7b-code-pre{background:#1e1e1e;border:1px solid #000;border-radius:10px;color:#d4d4d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;overflow-x:auto;padding:16px;white-space:pre-wrap;word-break:break-word}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-tag{color:#569cd6}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-attr{color:#9cdcfe}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-str{color:#ce9178}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-punct{color:gray}@media(max-width:1200px){.fcf7b-columns{grid-template-columns:200px 1fr 250px}}
  • compactform/trunk/assets/editor/index.asset.php

    r3719086 r3721164  
    1 <?php return array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-hooks', 'wp-i18n'), 'version' => 'b096b9de93a7e52df4f2');
     1<?php return array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-hooks', 'wp-i18n'), 'version' => '676aa3a21ea6674a9ac2');
  • compactform/trunk/assets/editor/index.css

    r3719086 r3721164  
    1 .fcf7b-ms-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.fcf7b-ms-tab{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:6px;color:#6b7280;cursor:pointer;font-size:11.5px;font-weight:600;padding:5px 10px}.fcf7b-ms-tab.is-active{background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-steps{display:flex;margin-bottom:14px}.fcf7b-ms-step{align-items:center;display:flex;flex:1 1 0;flex-direction:column;gap:6px;min-width:0;position:relative;text-align:center}.fcf7b-ms-step:not(:last-child):after{background:#0091fa;content:"";height:2px;left:50%;position:absolute;top:15px;width:100%;z-index:0}.fcf7b-ms-step-circle{align-items:center;background:#fff;border:2px solid #0091fa;border-radius:50%;color:#0091fa;cursor:pointer;display:flex;flex:0 0 auto;font-size:15px;height:32px;justify-content:center;padding:0;position:relative;width:32px;z-index:1}.fcf7b-ms-step-check{display:none;height:15px;width:15px}.fcf7b-ms-step.is-active .fcf7b-ms-step-circle,.fcf7b-ms-step.is-done .fcf7b-ms-step-circle{background:#0091fa;color:#fff}.fcf7b-ms-step.is-done .fcf7b-ms-step-num{display:none}.fcf7b-ms-step.is-done .fcf7b-ms-step-check{display:block}.fcf7b-ms-step-label{color:#1e2126;font-size:11px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-ms-nav-buttons,.fcf7b-ms-nav-buttons p{display:flex;gap:8px;justify-content:space-between;margin-top:10px;width:100%}.fcf7b-ms-nav-buttons button{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:7px;color:#1e2126;cursor:pointer;font-size:11.5px;font-weight:600;padding:7px 14px}.fcf7b-ms-nav-buttons button:disabled{cursor:not-allowed;opacity:.4}.fcf7b-ms-nav-buttons .fcf7b-ms-next:not(:disabled){background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;min-height:70px;padding:20px}.fcf7b-ms-panel>.fcf7b-ms-stack{display:block}.fcf7b-ms-cell{margin-bottom:10px}.fcf7b-ms-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-repeater{--fcf7-rep-accent:#0091fa;display:block}.fcf7-repeater-row{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:8px;margin-bottom:10px;padding:12px 14px;position:relative}.fcf7-repeater-row-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7-repeater-row-head:has(>.fcf7-repeater-row-title:empty){justify-content:flex-end}.fcf7-repeater-row-title{color:#1e2126;font-size:12px;font-weight:700;letter-spacing:.01em}.fcf7-repeater-remove{background:#fff;border:1px solid #e3e5ea;border-radius:6px;color:#b91c1c;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:4px 10px}.fcf7-repeater-remove:hover:not(:disabled){background:#fef2f2;border-color:#b91c1c}.fcf7-repeater-remove:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater-actions{display:flex}.fcf7-repeater-add{background:var(--fcf7-rep-accent);border:1px solid var(--fcf7-rep-accent);border-radius:7px;color:#fff;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:7px 14px}.fcf7-repeater-add:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater .fcf7-repeater-row{background:var(--fcf7b-panel);border-color:var(--fcf7b-border)}.fcf7-repeater .fcf7-repeater-row-title{color:var(--fcf7b-text)}.fcf7b-rep-dropbox{min-height:70px}.fcf7b-rep-dropbox>.fcf7b-rep-stack{display:block}.fcf7b-rep-cell{margin-bottom:10px}.fcf7b-rep-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-builder-root{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7b-radius:10px}@media(prefers-color-scheme:dark){.fcf7-builder-root{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25)}}.fcf7-builder-root button{transition:all .3s}.fcf7-builder-root,.fcf7b-app{box-sizing:border-box}.fcf7b-boot{color:var(--fcf7b-muted);padding:40px}.fcf7b-app{background:var(--fcf7b-bg);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);color:var(--fcf7b-text);font-size:13px;line-height:1.45;margin-top:6px;overflow:hidden}.fcf7b-app.fcf7-builder-theme-light{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7-field-bg:#fff;--fcf7-field-color:#1e2126;--fcf7-field-border:#d5d8dc;--fcf7-field-placeholder:#9aa1ad;--fcf7-label-color:#1e2126;--fcf7-muted:#6b7280;color-scheme:light}.fcf7b-app.fcf7-builder-theme-dark{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#1497ff;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25);--fcf7-field-bg:#1b1e24;--fcf7-field-color:#e7e9ee;--fcf7-field-border:#3a3f4b;--fcf7-field-placeholder:#7c848f;--fcf7-label-color:#f2f4f8;--fcf7-muted:#9aa1ad;color-scheme:dark}.fcf7b-app *,.fcf7b-app :after,.fcf7b-app :before{box-sizing:border-box}.fcf7b-app.is-fullscreen{border:0;border-radius:0;display:flex;flex-direction:column;inset:0;margin:0;position:fixed;z-index:100000}.fcf7b-app.is-fullscreen .fcf7b-toolbar{flex:0 0 auto}.fcf7b-app.is-fullscreen .fcf7b-code,.fcf7b-app.is-fullscreen .fcf7b-columns{flex:1 1 auto;height:auto;min-height:0}.fcf7b-spinner{animation:fcf7b-spin .7s linear infinite;border:2px solid var(--fcf7b-border);border-radius:50%;border-top-color:var(--fcf7b-accent);display:inline-block;flex:0 0 auto;height:14px;width:14px}@keyframes fcf7b-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.fcf7b-spinner{animation-duration:2s}}.fcf7b-toolbar{align-items:center;background:var(--fcf7b-panel);border-bottom:1px solid var(--fcf7b-border);display:flex;gap:16px;padding:10px 14px;position:relative}.fcf7b-toolbar .fcf7b-brand{align-items:center;color:var(--fcf7b-accent);display:flex;font-weight:700;letter-spacing:.2px}.fcf7b-toolbar .fcf7b-brand .fcf7b-brand-logo{display:block;height:26px;max-width:160px;width:auto}.fcf7b-toolbar .fcf7b-tabs{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;padding:3px}.fcf7b-toolbar .fcf7b-tabs button{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.fcf7b-toolbar .fcf7b-tabs button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-text)}.fcf7b-toolbar .fcf7b-tb-right{align-items:center;display:flex;gap:8px;margin-left:auto}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-count{color:var(--fcf7b-muted);font-size:12px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:14px;height:24px;place-items:center;width:26px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button:hover{color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:15px;height:30px;width:30px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:disabled{cursor:default;opacity:.3}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);height:26px;width:28px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost:hover:not(:disabled){background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-tb-div{align-self:stretch;background:var(--fcf7b-border);margin:3px;width:1px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg{display:inline-flex;position:relative}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:100003}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-swatches{display:grid;gap:6px;grid-template-columns:repeat(6,1fr)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw{border:1px solid var(--fcf7b-border);border-radius:5px;cursor:pointer;height:22px;padding:0}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-active{border-color:var(--fcf7b-accent);box-shadow:0 0 0 2px var(--fcf7b-accent-soft)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-default{background:linear-gradient(45deg,transparent 45%,var(--fcf7b-danger) 45%,var(--fcf7b-danger) 55%,transparent 55%) var(--fcf7b-panel-2)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-custom{align-items:center;border-top:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:flex;font-size:11px;gap:10px;justify-content:space-between;margin-top:8px;padding-top:8px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{overflow:visible}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:92px;overflow:hidden;padding:7px 16px;position:relative;transition:background .15s ease,opacity .15s ease}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:hover{background:color-mix(in srgb,var(--fcf7b-accent),#000 20%)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:disabled{cursor:default;opacity:.7}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--saved{background:#16a34a}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--error{background:#dc2626}.fcf7b-progress{background:transparent;bottom:-1px;height:2px;left:0;opacity:0;position:absolute;right:0;transition:opacity .25s ease}.fcf7b-progress.is-active{opacity:1}.fcf7b-progress-fill{background:var(--fcf7b-accent);display:block;height:100%;transition:width .3s ease;width:0}.fcf7b-progress--error .fcf7b-progress-fill{background:#dc2626}.fcf7b-columns{display:grid;grid-template-columns:232px 1fr 288px;height:640px}.fcf7b-palette,.fcf7b-props{background:var(--fcf7b-panel);overflow-y:auto}.fcf7b-bxsh-pop,.fcf7b-canvas-wrap,.fcf7b-code,.fcf7b-gs-body,.fcf7b-gs-sidebar,.fcf7b-gspanel-preview,.fcf7b-palette,.fcf7b-props,.fcf7b-select-list,.fcf7b-typo-pop,.fcf7b-unit-list{scrollbar-color:var(--fcf7b-border) transparent;scrollbar-width:thin}.fcf7b-bxsh-pop::-webkit-scrollbar,.fcf7b-canvas-wrap::-webkit-scrollbar,.fcf7b-code::-webkit-scrollbar,.fcf7b-gs-body::-webkit-scrollbar,.fcf7b-gs-sidebar::-webkit-scrollbar,.fcf7b-gspanel-preview::-webkit-scrollbar,.fcf7b-palette::-webkit-scrollbar,.fcf7b-props::-webkit-scrollbar,.fcf7b-select-list::-webkit-scrollbar,.fcf7b-typo-pop::-webkit-scrollbar,.fcf7b-unit-list::-webkit-scrollbar{height:9px;width:9px}.fcf7b-bxsh-pop::-webkit-scrollbar-track,.fcf7b-canvas-wrap::-webkit-scrollbar-track,.fcf7b-code::-webkit-scrollbar-track,.fcf7b-gs-body::-webkit-scrollbar-track,.fcf7b-gs-sidebar::-webkit-scrollbar-track,.fcf7b-gspanel-preview::-webkit-scrollbar-track,.fcf7b-palette::-webkit-scrollbar-track,.fcf7b-props::-webkit-scrollbar-track,.fcf7b-select-list::-webkit-scrollbar-track,.fcf7b-typo-pop::-webkit-scrollbar-track,.fcf7b-unit-list::-webkit-scrollbar-track{background:transparent}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb,.fcf7b-code::-webkit-scrollbar-thumb,.fcf7b-gs-body::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb,.fcf7b-palette::-webkit-scrollbar-thumb,.fcf7b-props::-webkit-scrollbar-thumb,.fcf7b-select-list::-webkit-scrollbar-thumb,.fcf7b-typo-pop::-webkit-scrollbar-thumb,.fcf7b-unit-list::-webkit-scrollbar-thumb{background:var(--fcf7b-border);background-clip:content-box;border:2px solid transparent;border-radius:10px}.fcf7b-bxsh-pop:hover::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap:hover::-webkit-scrollbar-thumb,.fcf7b-code:hover::-webkit-scrollbar-thumb,.fcf7b-gs-body:hover::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar:hover::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview:hover::-webkit-scrollbar-thumb,.fcf7b-palette:hover::-webkit-scrollbar-thumb,.fcf7b-props:hover::-webkit-scrollbar-thumb,.fcf7b-select-list:hover::-webkit-scrollbar-thumb,.fcf7b-typo-pop:hover::-webkit-scrollbar-thumb,.fcf7b-unit-list:hover::-webkit-scrollbar-thumb{background:var(--fcf7b-muted);background-clip:content-box}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb:hover,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb:hover,.fcf7b-code::-webkit-scrollbar-thumb:hover,.fcf7b-gs-body::-webkit-scrollbar-thumb:hover,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb:hover,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb:hover,.fcf7b-palette::-webkit-scrollbar-thumb:hover,.fcf7b-props::-webkit-scrollbar-thumb:hover,.fcf7b-select-list::-webkit-scrollbar-thumb:hover,.fcf7b-typo-pop::-webkit-scrollbar-thumb:hover,.fcf7b-unit-list::-webkit-scrollbar-thumb:hover{background:var(--fcf7b-accent);background-clip:content-box}.fcf7b-palette{border-right:1px solid var(--fcf7b-border);padding:12px}.fcf7b-app .fcf7b-search{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;color:var(--fcf7b-text);margin-bottom:12px;padding:8px 10px;width:100%}.fcf7b-app .fcf7b-search::placeholder{color:var(--fcf7b-muted)}.fcf7b-pal-group{margin-bottom:16px}.fcf7b-pal-title{color:var(--fcf7b-muted);font-size:10.5px;font-weight:700;letter-spacing:.8px;margin:0 0 8px 2px;text-transform:uppercase}.fcf7b-pal-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.fcf7b-pal-item{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:9px;color:var(--fcf7b-text);cursor:grab;display:flex;flex-direction:column;gap:6px;padding:12px 6px;position:relative;transition:all .12s}.fcf7b-pal-item:hover{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);transform:translateY(-1px)}.fcf7b-pal-item:active{cursor:grabbing}.fcf7b-pal-pro{display:grid;left:6px;place-items:center;position:absolute;top:6px}.fcf7b-pal-pro svg{fill:#ffad00;height:14px;width:14px}.fcf7b-pal-icon{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;display:grid;font-size:18px;height:30px;place-items:center;width:30px}.fcf7b-pal-label{font-size:11.5px;font-weight:600}.fcf7b-canvas-wrap{background-size:18px 18px;overflow-y:auto;padding:40px 22px}.fcf7b-canvas-grid{margin:0 auto;max-width:1100px;transition:max-width .18s ease;width:100%}.fcf7b-canvas-row{display:block}.fcf7b-gs{position:relative}.fcf7b-gs>.fcf7b-ghost.is-open,.fcf7b-gs>.fcf7b-ghost.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gs-backdrop{backdrop-filter:blur(2px);background:rgba(15,18,26,.55);inset:0;position:fixed;z-index:99}.fcf7b-gs-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;height:800px;inset:0;margin:auto;max-height:90vh;max-width:90vw;overflow:hidden;position:fixed;text-align:left;width:800px;z-index:100}.fcf7b-gs-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);flex:0 0 auto;font-size:14px;font-weight:700;padding:16px 20px;position:relative}.fcf7b-gs-close{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:16px;height:28px;place-items:center;position:absolute;right:12px;top:10px;width:28px}.fcf7b-gs-close:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-gs-main{display:flex;flex:1 1 auto;min-height:0}.fcf7b-gs-sidebar{background:var(--fcf7b-panel-2);border-right:1px solid var(--fcf7b-border);flex:0 0 220px;overflow-y:auto;padding:12px}.fcf7b-gs-navitem{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:2px;padding:8px 10px;text-align:left;width:100%}.fcf7b-gs-navitem i{font-size:15px}.fcf7b-gs-navitem:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-gs-navitem.active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gs-body{flex:1 1 auto;overflow-y:auto;padding:20px}.fcf7b-gspanel-sec+.fcf7b-gspanel-sec{margin-top:28px}.fcf7b-gspanel-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);font-size:13px;font-weight:700;margin:0 0 16px;padding-bottom:12px}.fcf7b-gspanel-head--split{align-items:center;display:flex;gap:12px;justify-content:space-between}.fcf7b-gspanel-notice{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-left:3px solid var(--fcf7b-danger);border-radius:6px;color:var(--fcf7b-muted);font-size:12px;line-height:1.6;margin-bottom:16px;padding:10px 12px}.fcf7b-gspanel-notice a{color:var(--fcf7b-accent)}.fcf7b-gspanel-toggle{align-items:center;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;margin-bottom:20px}.fcf7b-gspanel-switch{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.fcf7b-gspanel-switchlabel{color:var(--fcf7b-text);font-size:12px;font-weight:600}.fcf7b-gspanel-switchlabel em{color:var(--fcf7b-muted);display:block;font-size:11px;font-style:normal;font-weight:400;line-height:1.6;margin-top:4px}.fcf7b-gspanel-field{margin-bottom:18px}.fcf7b-gspanel-field label{color:var(--fcf7b-text);display:block;font-size:12px;font-weight:600;margin-bottom:6px}.fcf7b-gspanel-field input[type=number],.fcf7b-gspanel-field input[type=text],.fcf7b-gspanel-field textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;box-sizing:border-box;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-field textarea{display:block;font-family:inherit;line-height:1.6;min-height:96px;resize:vertical}.fcf7b-gspanel-row{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.fcf7b-gspanel-rowlabel{align-items:center;color:var(--fcf7b-text);display:inline-flex;font-size:12px;font-weight:600;gap:6px}.fcf7b-gspanel-num{align-items:center;display:inline-flex;gap:5px}.fcf7b-gspanel-num input{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:6px 8px;text-align:center;width:82px}.fcf7b-gspanel-num em{color:var(--fcf7b-muted);font-size:11px;font-style:normal}.fcf7b-gspanel-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.6;margin:6px 0 0}.fcf7b-gspanel-desc code{background:var(--fcf7b-panel-2);border-radius:4px;padding:1px 4px}.fcf7b-gspanel-intro{margin:-8px 0 18px}.fcf7b-gspanel-subhead{color:var(--fcf7b-muted);font-size:12px;font-weight:700;letter-spacing:.04em;margin:26px 0 14px;text-transform:uppercase}.fcf7b-gspanel-colorrow{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:6px 0}.fcf7b-gspanel-colorrow>span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-gspanel-cols{display:flex;gap:12px}.fcf7b-gspanel-cols>*{flex:1 1 0;min-width:0}.fcf7b-gspanel-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.fcf7b-gspanel-rowline{align-items:center;display:flex;gap:8px}.fcf7b-gspanel-cell{flex:1 1 0;min-width:0}.fcf7b-gspanel-cell input[type=number],.fcf7b-gspanel-cell input[type=text]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-cell--narrow{flex:0 0 130px}.fcf7b-gspanel-del{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:30px;place-items:center;width:30px}.fcf7b-gspanel-del:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-gspanel-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11px;font-weight:600;gap:6px;padding:6px 12px}.fcf7b-gspanel-add:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gspanel-none{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11px;margin:0;padding:10px 12px}.fcf7b-gspanel-rowhead{color:var(--fcf7b-muted);font-size:11px;font-weight:600}.fcf7b-gspanel-headspacer{flex:0 0 30px}.fcf7b-gspanel-lead{margin:0 0 10px}.fcf7b-gspanel-warn{color:var(--fcf7b-danger)}.fcf7b-gspanel-tabs{background:var(--fcf7b-panel-2);border-radius:8px;display:flex;gap:3px;margin:0 0 18px;padding:3px}.fcf7b-gspanel-tab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:11px;font-weight:600;min-width:0;padding:6px 10px}.fcf7b-gspanel-tab:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-tab.is-active{background:var(--fcf7b-panel);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fcf7b-text)}.fcf7b-gspanel-pinned{border-top:1px solid var(--fcf7b-border);margin-top:20px;padding-top:16px}.fcf7b-gspanel-more{margin-top:10px}.fcf7b-gspanel-more summary{color:var(--fcf7b-muted);cursor:pointer;font-size:11px;font-weight:600}.fcf7b-gspanel-more summary:hover{color:var(--fcf7b-accent)}.fcf7b-gspanel-textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;line-height:1.6;padding:8px 10px;resize:vertical;width:100%}.fcf7b-gspanel-testrow{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.fcf7b-gspanel-testrow button[disabled]{cursor:default;opacity:.5}.fcf7b-gspanel-testrow button[disabled]:hover{border-color:var(--fcf7b-border);color:var(--fcf7b-muted)}.fcf7b-gspanel-testmsg{color:var(--fcf7b-muted);font-size:11px;line-height:1.5}.fcf7b-gspanel-testmsg.is-ok{color:var(--fcf7b-accent)}.fcf7b-gspanel-testmsg.is-fail{color:var(--fcf7b-danger)}.fcf7b-gspanel-preview{color:var(--fcf7b-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.7;margin:0;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.fcf7b-gspanel-devsw,.fcf7b-gspanel-preview{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px}.fcf7b-gspanel-devsw{display:inline-flex;gap:2px;padding:2px}.fcf7b-gspanel-devsw button{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;height:22px;justify-content:center;padding:0;width:24px}.fcf7b-gspanel-devsw button:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-devsw button.is-active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gspanel-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;margin-top:10px;padding:6px 10px;width:100%}.fcf7b-gspanel-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}@keyframes fcf7b-tpl-spin{to{transform:rotate(1turn)}}@keyframes fcf7b-tpl-shimmer{to{background-position:-200% 0}}.fcf7b-tpl-pop{width:1040px}.fcf7b-tpl-head{align-items:center;display:flex;gap:8px}.fcf7b-tpl-logo{height:20px;object-fit:contain;width:20px}.fcf7b-tpl-refresh{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:15px;height:28px;place-items:center;position:absolute;right:46px;top:10px;width:28px}.fcf7b-tpl-refresh:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-refresh.is-busy i{animation:fcf7b-tpl-spin .8s linear infinite}.fcf7b-tpl-search{background:transparent!important;border:1px solid var(--fcf7b-border)!important;border-radius:6px;color:var(--fcf7b-text);font-size:13px;margin-bottom:10px;padding:6px 10px;width:100%}.fcf7b-tpl-sidebar .fcf7b-gs-navitem{text-transform:capitalize}.fcf7b-tpl-navall.is-on{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-count,.fcf7b-tpl-navall.is-on{box-shadow:inset 0 0 0 1px var(--fcf7b-border)}.fcf7b-tpl-count{background:var(--fcf7b-panel-2);border-radius:999px;color:var(--fcf7b-muted);font-size:11px;font-weight:700;margin-left:auto;padding:1px 7px}.fcf7b-gs-navitem.active .fcf7b-tpl-count{background:hsla(0,0%,100%,.25);box-shadow:none;color:#fff}.fcf7b-tpl-body{display:block}.fcf7b-tpl-note{color:var(--fcf7b-muted);font-size:13px;margin:0 0 12px}.fcf7b-tpl-note--error{color:#dc2626}.fcf7b-tpl-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.fcf7b-tpl-grid[hidden]{display:none}.fcf7b-tpl-card{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.fcf7b-tpl-thumb{background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:grid;font-size:28px;height:190px;overflow:hidden;place-items:center;position:relative}.fcf7b-tpl-thumb img{height:100%;object-fit:cover;object-position:top center;width:100%}.fcf7b-tpl-skel{gap:10px;padding:0 12px 12px}.fcf7b-tpl-skel span{animation:fcf7b-tpl-shimmer 1.2s linear infinite;background:linear-gradient(90deg,var(--fcf7b-panel-2) 0,var(--fcf7b-border) 50%,var(--fcf7b-panel-2) 100%);background-size:200% 100%;border-radius:6px}.fcf7b-tpl-skel-thumb{border-radius:0;height:190px;margin:0 -12px}.fcf7b-tpl-skel-line{height:12px;width:70%}.fcf7b-tpl-skel-line--short{width:45%}.fcf7b-tpl-skel-btn{align-self:flex-end;height:30px;margin-top:4px;width:72px}.fcf7b-tpl-zoom{background:rgba(15,18,26,.55);border:0;border-radius:6px;color:#fff;cursor:pointer;display:grid;font-size:15px;height:28px;left:8px;opacity:.65;place-items:center;position:absolute;top:8px;transition:opacity .12s ease;width:28px}.fcf7b-tpl-zoom:focus-visible,.fcf7b-tpl-zoom:hover{background:rgba(15,18,26,.75);opacity:1}.fcf7b-tpl-card:hover .fcf7b-tpl-zoom{opacity:1}.fcf7b-tpl-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.fcf7b-tpl-badge{color:green!important;font-size:11px;font-weight:600;text-transform:capitalize}.fcf7b-tpl-badge--pro{background:#fc0;border-radius:4px;color:#000!important;inset-block-start:10px;inset-inline-end:10px;padding:2px 8px;position:absolute}.fcf7b-tpl-navhead{color:var(--fcf7b-heading);font-size:12px;font-weight:700;letter-spacing:.04em;margin:14px 0 6px;padding:0 10px;text-transform:uppercase}.fcf7b-tpl-meta{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.fcf7b-tpl-meta strong{color:var(--fcf7b-text);font-size:15px}.fcf7b-tpl-meta span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-tpl-actions{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding:0 12px 12px}.fcf7b-tpl-preview{align-items:center;background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:6px 12px;text-decoration:none}.fcf7b-tpl-preview:focus,.fcf7b-tpl-preview:hover{border-color:var(--fcf7b-accent);box-shadow:none;color:var(--fcf7b-accent)}.fcf7b-tpl-import{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-tpl-import:disabled{cursor:default;opacity:.6}.fcf7b-tpl-light{align-items:center;background:rgba(15,18,26,.88);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100004}.fcf7b-tpl-light-panel{background:#fff;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.45);max-height:92vh;overflow:auto;width:min(1100px,92vw)}.fcf7b-tpl-light img{display:block;height:auto;width:100%}.fcf7b-tpl-light-bar{align-items:center;display:flex;gap:8px;position:fixed;right:16px;top:16px;z-index:1}.fcf7b-tpl-light-count{color:#fff;font-size:12px;font-weight:600}.fcf7b-tpl-light-close,.fcf7b-tpl-light-nav{background:hsla(0,0%,100%,.14);border:0;border-radius:8px;color:#fff;cursor:pointer;display:grid;flex:0 0 auto;font-size:18px;height:32px;place-items:center;width:32px}.fcf7b-tpl-light-close:hover,.fcf7b-tpl-light-nav:hover{background:hsla(0,0%,100%,.28)}.fcf7b-tpl-light-close{margin-left:4px}.fcf7b-ctl-device{color:var(--fcf7b-accent);font-size:12px;margin-left:6px;vertical-align:middle}.fcf7b-empty{color:var(--fcf7b-muted);padding:80px 20px;text-align:center}.fcf7b-empty-emoji{font-size:34px;margin-bottom:10px}.fcf7b-cell{margin-bottom:var(--fcf7b-cell-gap,20px);position:relative}.fcf7b-cell>.fcf7b-card{height:100%}.fcf7b-cell.is-drop-after:after,.fcf7b-cell.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";height:3px;left:0;position:absolute;right:0;z-index:2}.fcf7b-cell.is-drop-before:before{top:0}.fcf7b-cell.is-drop-after:after{bottom:0}.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap{flex:0 1 auto;max-width:none;width:auto}.is-drop-in.is-drop-in{background:color-mix(in srgb,var(--fcf7b-accent) 10%,transparent);border-radius:4px;outline:2px solid var(--fcf7b-accent);outline-offset:2px}.fcf7b-card{border:1px dashed transparent;cursor:pointer;position:relative;transition:all .12s}.fcf7b-card.is-selected,.fcf7b-card:hover{border-color:var(--fcf7b-accent)}.fcf7b-card.is-selected>.fcf7b-hdl,.fcf7b-card:hover>.fcf7b-hdl{opacity:1;visibility:visible}.fcf7b-card.is-selected{background:color-mix(in srgb,var(--fcf7b-accent) 7%,transparent)}.fcf7b-card-body h1,.fcf7b-card-body h2,.fcf7b-card-body h3,.fcf7b-card-body h4,.fcf7b-card-body h5,.fcf7b-card-body h6{color:var(--fcf7b-heading)}.fcf7b-hdl{align-items:center;color:var(--fcf7b-accent-fg);display:inline-flex;font-size:12px;line-height:1;opacity:0;position:absolute;transition:opacity .12s;visibility:hidden;z-index:3}.fcf7b-hdl .fcf7b-hdl-grip,.fcf7b-hdl button{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-size:13px;height:18px;justify-content:center;line-height:1;padding:0;width:20px}.fcf7b-hdl .fcf7b-hdl-grip:hover,.fcf7b-hdl button:hover{background:hsla(0,0%,100%,.22)}.fcf7b-hdl .fcf7b-hdl-grip.danger:hover,.fcf7b-hdl button.danger:hover{background:var(--fcf7b-danger)}.fcf7b-hdl button{width:26px}.fcf7b-hdl .fcf7b-hdl-grip{cursor:move}.fcf7b-hdl .fcf7b-hdl-global{align-items:center;display:inline-flex;font-size:11px;height:18px;justify-content:center;opacity:.85;width:18px}.fcf7b-hdl-tab{background:var(--fcf7b-accent);border-radius:4px 4px 0 0;bottom:100%;left:50%;overflow:hidden;transform:translateX(-50%)}.fcf7b-hdl-box{border-end-end-radius:4px;inset-inline-start:0}.fcf7b-hdl-box,.fcf7b-hdl-pen{background:var(--fcf7b-accent);top:0}.fcf7b-hdl-pen{border-end-start-radius:4px;inset-inline-end:0}.fcf7b-pv-ms{align-items:center;display:flex;gap:8px}.fcf7b-pv-ms-chips{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:4px;min-width:0}.fcf7b-pv-ms-placeholder{color:var(--fcf7b-muted)}.fcf7b-pv-ms-chip{align-items:center;background:hsla(0,0%,50%,.2);border-radius:3px;display:inline-flex;font-size:11.5px;gap:5px;padding:1px 5px 1px 7px}.fcf7b-pv-ms-chip>span{opacity:.5}.fcf7b-pv-ms-caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid;flex:none;height:0;opacity:.5;width:0}.fcf7b-pv-stars.fcf7-rating .icon{display:inline-flex;gap:4px}.fcf7b-pv-stars.fcf7-rating .fcf7-star{color:#d5d8dc;display:inline-flex;transition:color .15s ease-in-out}.fcf7b-pv-stars.fcf7-rating .fcf7-star svg{height:24px;width:24px}.fcf7b-pv-stars.fcf7-rating .fcf7-star.is-active{color:#f5a623}.fcf7b-pv-sigink{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.fcf7b-pv-file{color:var(--fcf7b-text);font-size:12.5px;width:100%}.fcf7b-pv-quiz .wpcf7-quiz-label{display:inline-block}.fcf7b-pv-choices .fcf7b-pv-inline{font:inherit}.fcf7b-pv-inline{align-items:center;display:flex;font-size:12.5px;gap:4px}.fcf7b-pv-html-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;padding:10px;text-align:center}.fcf7b-pv-desc,.fcf7b-pv-html-empty{color:var(--fcf7b-muted);font-size:11px}.fcf7b-pv-heading{margin:4px 0}.fcf7b-pv-divider{border:0;border-top:1px solid var(--fcf7b-divider-color,var(--fcf7b-border));margin:4px 0;width:100%}.fcf7b-pv-submit{background:var(--fcf7b-accent);border:0;border-radius:8px;color:#fff;font-weight:600;padding:9px 20px}.fcf7b-pv-stars{color:#f5b301;font-size:20px;letter-spacing:3px}.fcf7b-pv-star{display:inline-block}.fcf7b-pv-custom{display:block}.fcf7b-pv-icon{font-size:22px;line-height:1}.fcf7b-pv-sp-canvas{align-items:center;border-radius:4px;display:inline-flex;font-size:18px;font-style:italic;font-weight:600;justify-content:center;letter-spacing:2px}.fcf7b-pv-slotpicker{display:flex;flex-direction:column;font-size:12px;gap:8px}.fcf7b-pv-slotpicker-cal{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;max-width:240px;padding:8px}.fcf7b-pv-slotpicker-cal-head{align-items:center;display:flex;font-weight:600;justify-content:space-between;margin-bottom:6px}.fcf7b-pv-slotpicker-cal-head button{background:transparent;border:0;color:var(--fcf7b-text);cursor:pointer;line-height:1;padding:2px 6px}.fcf7b-pv-slotpicker-cal-grid{display:grid;gap:2px;grid-template-columns:repeat(7,1fr);text-align:center}.fcf7b-pv-slotpicker-cal-dow{color:var(--fcf7b-muted);font-size:10px;padding:2px 0}.fcf7b-pv-slotpicker-cal-day{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;padding:4px 0}.fcf7b-pv-slotpicker-cal-day:hover:not(:disabled){background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-muted{visibility:hidden}.fcf7b-pv-slotpicker-cal-day.is-disabled{color:var(--fcf7b-muted);cursor:not-allowed;opacity:.4}.fcf7b-pv-slotpicker-cal-day.is-in-range{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-selected{background:var(--fcf7b-accent);color:#fff}.fcf7b-pv-slotpicker-range{color:var(--fcf7b-text);font-size:12px}.fcf7b-pv-slotpicker-slots{display:flex;flex-wrap:wrap;gap:6px}.fcf7b-pv-slotpicker-hint{color:var(--fcf7b-muted);font-size:11.5px}.fcf7b-pv-slotpicker-slot{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:4px 8px}.fcf7b-pv-slotpicker-slot:hover{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-slot.is-active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-ctnbox{min-height:20px;outline:1px dashed var(--fcf7b-border);outline-offset:2px}.fcf7b-ctn-item{position:relative;width:100%}.fcf7b-ctn-item.is-drop-after:after,.fcf7b-ctn-item.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";position:absolute;z-index:2}.fcf7b-ctn-item.is-drop-x:after,.fcf7b-ctn-item.is-drop-x:before{bottom:0;top:0;width:3px}.fcf7b-ctn-item.is-drop-x.is-drop-before:before{left:-8px}.fcf7b-ctn-item.is-drop-x.is-drop-after:after{right:-8px}.fcf7b-ctn-item.is-drop-y:after,.fcf7b-ctn-item.is-drop-y:before{height:3px;left:0;right:0}.fcf7b-ctn-item.is-drop-y.is-drop-before:before{top:-8px}.fcf7b-ctn-item.is-drop-y.is-drop-after:after{bottom:-8px}.fcf7b-ctn-item>.fcf7b-card,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap>.fcf7-container{height:100%}.fcf7b-ctnpick{border:1px dashed var(--fcf7b-border);border-radius:6px;flex:1 1 100%;padding:12px 14px 14px}.fcf7b-ctnpick-head{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center;margin-bottom:10px;position:relative}.fcf7b-ctnpick-head button{background:none;border:0;color:var(--fcf7b-muted);cursor:pointer;line-height:1;padding:2px;position:absolute;right:0}.fcf7b-ctnpick-head button:hover{color:var(--fcf7b-text)}.fcf7b-ctnpick-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.fcf7b-ctnpick-item{background:none;border:1px solid transparent;border-radius:5px;cursor:pointer;line-height:0;padding:0}.fcf7b-ctnpick-item:hover .fcf7b-ctnpick-box{outline:2px solid var(--fcf7b-accent)}.fcf7b-ctnpick-box{border-radius:3px;display:flex;gap:2px;height:42px;overflow:hidden;width:86px}.fcf7b-ctnpick-cell{background:var(--fcf7b-border);border-radius:2px;flex-basis:0}.fcf7b-ctnpick-nest{display:flex;flex-basis:0}.fcf7b-ctnpick-nest>.fcf7b-ctnpick-box{flex:1 1 auto;height:auto;width:auto}.fcf7b-ctnpick-glyph{background:var(--fcf7b-border);font-size:15px}.fcf7b-ctn-empty,.fcf7b-ctnpick-glyph{align-items:center;color:var(--fcf7b-muted);justify-content:center;line-height:1}.fcf7b-ctn-empty{background:none;border:1px dashed var(--fcf7b-border);border-radius:6px;cursor:pointer;display:flex;flex:1 1 100%;font-size:18px;min-height:46px;padding:8px;width:100%}.fcf7b-divider[data-pattern]{background-color:var(--fcf7b-divider-color,var(--fcf7-field-border,var(--fcf7b-border,currentColor)));border:0;height:12px;-webkit-mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x;mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x}.fcf7b-divider[data-pattern][data-pattern=wavy]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-20 5q5-5 10 0T0 5t10 0 10 0 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=zigzag]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m-5 2 5 6 5-6 5 6 5-6 5 6 5-6%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=curved]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-10 7A5 4 0 0 1 0 7a5 4 0 0 1 10 0 5 4 0 0 1 10 0 5 4 0 0 1 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=slashes]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-width=%271.6%27 d=%27m1 9 6-8%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=dots]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Ccircle cx=%275%27 cy=%275%27 r=%272.4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=squares]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M2.5 2.5h5v5h-5z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=rhombus]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m5 1 4 4-4 4-4-4Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=triangles]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m1 9 5-8 5 8Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=arrows]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m1 1 5 4-5 4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=multiple]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M0 1h10v1.5H0zM0 4.25h10v1.5H0zM0 7.5h10V9H0z%27/%3E%3C/svg%3E")}.fcf7b-toolbar .fcf7b-tb-group .fcf7b-ghost.is-set{background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-nav{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);box-shadow:0 10px 30px rgba(16,18,27,.18),var(--fcf7b-shadow);display:flex;flex-direction:column;overflow:hidden;position:fixed;z-index:100001}.fcf7b-nav-head{align-items:center;background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-heading);cursor:move;display:flex;font-size:12px;font-weight:600;gap:6px;padding:8px 8px 8px 10px;-webkit-user-select:none;user-select:none}.fcf7b-nav-head i{color:var(--fcf7b-accent);font-size:14px;font-weight:400}.fcf7b-nav-head button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:15px;line-height:1;margin-left:auto;padding:2px}.fcf7b-nav-head button:hover{color:var(--fcf7b-danger)}.fcf7b-nav-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 0 10px}.fcf7b-nav-empty{color:var(--fcf7b-muted);font-size:12px;padding:18px 12px;text-align:center}.fcf7b-nav-row{align-items:center;border:1px solid transparent;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;gap:6px;padding:4px 8px 4px 6px;position:relative}.fcf7b-nav-row:hover{background:var(--fcf7b-panel-2)}.fcf7b-nav-row.is-selected{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-nav-row.is-step{color:var(--fcf7b-muted);cursor:default;font-style:italic}.fcf7b-nav-row.is-step:hover{background:transparent}.fcf7b-nav-row.is-drop-after:after,.fcf7b-nav-row.is-drop-before:before{background:var(--fcf7b-accent);border-radius:2px;content:"";height:2px;left:4px;position:absolute;right:4px}.fcf7b-nav-row.is-drop-before:before{top:-1px}.fcf7b-nav-row.is-drop-after:after{bottom:-1px}.fcf7b-nav-row.is-drop-inside{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);border-radius:6px}.fcf7b-nav-row:hover .fcf7b-nav-acts{opacity:1}.fcf7b-nav-caret{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:16px;padding:0;place-items:center;width:16px}.fcf7b-nav-caret.is-empty{cursor:default;pointer-events:none}.fcf7b-nav-icon{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px;opacity:.9}.fcf7b-nav-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-nav-acts{display:flex;flex:0 0 auto;gap:2px;opacity:0;transition:opacity .15s ease}.fcf7b-nav-acts button{background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;line-height:1;padding:1px 2px}.fcf7b-nav-acts button:hover{color:var(--fcf7b-accent)}.fcf7b-nav-acts button.danger:hover{color:var(--fcf7b-danger)}.fcf7b-nav-resize{background:linear-gradient(135deg,transparent 0 45%,var(--fcf7b-border) 45% 55%,transparent 55%),linear-gradient(135deg,transparent 0 70%,var(--fcf7b-border) 70% 80%,transparent 80%);bottom:0;cursor:nwse-resize;height:14px;position:absolute;right:0;width:14px}.fcf7b-nav-peek .fcf7b-card{border-color:var(--fcf7b-accent)}.fcf7b-props{border-left:1px solid var(--fcf7b-border);padding:14px}.fcf7b-props input,.fcf7b-props select{outline:none!important}.fcf7b-props-head{align-items:center;border-bottom:1px solid var(--fcf7b-border);display:flex;font-size:13px;font-weight:700;gap:8px;padding-bottom:10px}.fcf7b-props-head-icon{color:var(--fcf7b-muted);font-size:15px;font-weight:400;line-height:1}.fcf7b-props-banners{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.fcf7b-props-banners>span{display:block}.fcf7b-props-empty{color:var(--fcf7b-muted);padding-top:60px;text-align:center}.fcf7b-props-tabs{border-bottom:1px solid var(--fcf7b-border);display:flex;gap:4px;margin:-4px -4px 12px;padding:0 4px}.fcf7b-ptab{align-items:center;background:none;border:0;display:flex;flex:1;flex-direction:column;gap:3px;padding:10px 8px}.fcf7b-ptab>i{font-size:15px;font-weight:400;line-height:1}.fcf7b-ptab{border-bottom:2px solid transparent;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;font-weight:600;margin-bottom:-1px}.fcf7b-ptab.active{border-bottom-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-sec{border-bottom:1px solid var(--fcf7b-border);margin:0 -14px}.fcf7b-sec-head{align-items:center;background:none;border:0;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;font-weight:700;gap:6px;padding:12px 14px;text-align:left;width:100%}.fcf7b-sec-head:hover{color:var(--fcf7b-accent)}.fcf7b-sec-arrow{color:var(--fcf7b-muted);font-size:15px;line-height:1;transition:transform .15s ease}.fcf7b-sec.open .fcf7b-sec-arrow{transform:rotate(90deg)}.fcf7b-sec-body{padding:2px 14px 14px}.fcf7b-popgroup{margin-bottom:13px}.fcf7b-popgroup-head{align-items:center;display:flex;gap:8px}.fcf7b-popgroup-head>.fcf7b-prop-label{margin:0}.fcf7b-popgroup-tools{align-items:center;display:flex;gap:6px;margin-left:auto}.fcf7b-popgroup-reset{background:none;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:14px;height:22px;padding:0;width:22px}.fcf7b-popgroup-reset:hover{color:var(--fcf7b-accent)}.fcf7b-popgroup-pop{position:relative}.fcf7b-popgroup-edit{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;height:24px;width:26px}.fcf7b-popgroup-edit.is-open,.fcf7b-popgroup-edit:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-popgroup-edit.is-on{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-popgroup-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;right:0;text-align:left;top:calc(100% + 8px);width:252px;z-index:60}.fcf7b-popgroup-panel>.fcf7b-prop:last-child{margin-bottom:0}.fcf7b-ctl-sep{border-top:1px solid var(--fcf7b-border);height:0;margin:3px 0 13px}.fcf7b-ctl-heading{color:var(--fcf7b-text);font-size:11px;font-weight:700;letter-spacing:.5px;margin:0 0 5px;padding-inline-start:10px;position:relative;text-transform:uppercase}.fcf7b-ctl-heading:before{background:var(--fcf7b-accent);bottom:2px;content:"";inset-inline-start:0;position:absolute;top:2px;width:3px}.fcf7b-ctabs{margin-bottom:13px}.fcf7b-ctabs-nav{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;margin-bottom:12px;padding:3px}.fcf7b-ctab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-ctab.active,.fcf7b-ctab:hover{color:var(--fcf7b-text)}.fcf7b-ctab.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow)}.fcf7b-choose{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px}.fcf7b-choose-btn{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;height:26px;justify-content:center;line-height:1;min-width:28px;padding:0 8px}.fcf7b-choose-btn i{font-size:14px;font-weight:400}.fcf7b-choose-btn:hover{color:var(--fcf7b-text)}.fcf7b-choose-btn.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-choose-btn+.fcf7b-choose-btn{position:relative}.fcf7b-choose-btn+.fcf7b-choose-btn:before{background:var(--fcf7b-border);bottom:5px;content:"";left:-2px;position:absolute;top:5px;width:1px}.fcf7b-choose-btn.active+.fcf7b-choose-btn:before,.fcf7b-choose-btn.active:before{display:none}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose{display:flex}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose>.fcf7b-choose-btn{flex:1 1 0;min-width:0}.fcf7b-ctxmenu-backdrop{inset:0;position:fixed;z-index:100002}.fcf7b-ctxmenu{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:2px;min-width:212px;padding:4px;position:fixed}.fcf7b-ctxmenu-title{color:var(--fcf7b-muted);font-size:11px;font-weight:600;letter-spacing:.02em;padding:6px 10px 4px;text-transform:uppercase}.fcf7b-ctxmenu button{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:8px;padding:7px 10px;text-align:left;width:100%}.fcf7b-ctxmenu button i{color:var(--fcf7b-muted);font-size:14px}.fcf7b-ctxmenu button:hover{background:var(--fcf7b-panel-2)}.fcf7b-ctxmenu button:disabled{cursor:default;opacity:.4}.fcf7b-ctxmenu button:disabled:hover{background:transparent}.fcf7b-ctxmenu button.danger{color:var(--fcf7b-danger)}.fcf7b-ctxmenu button.danger i{color:inherit}.fcf7b-ctxmenu-key{color:var(--fcf7b-muted);font-family:Segoe UI Symbol,SF Pro Text,-apple-system,system-ui,sans-serif;font-size:11.5px;margin-left:auto;padding-left:16px;white-space:nowrap}.fcf7b-ctxmenu button.danger .fcf7b-ctxmenu-key{color:var(--fcf7b-danger);opacity:.7}.fcf7b-ctxmenu-sep{background:var(--fcf7b-border);height:1px;margin:3px 4px}.fcf7b-prop{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.fcf7b-prop-label{align-items:center;color:var(--fcf7b-text);display:flex;font-size:11.5px;font-weight:600}.fcf7b-prop-label i{font-weight:400}.fcf7b-prop-hint{color:var(--fcf7b-muted);font-size:10.5px;font-weight:400}.fcf7b-prop-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.4;margin:0 0 14px}.fcf7b-prop .fcf7b-prop-desc{margin-bottom:0}.fcf7b-prop input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop select,.fcf7b-prop textarea{background:var(--fcf7b-panel-2);border-color:var(--fcf7b-border)!important;border-radius:7px;border-style:solid;border-width:1px;color:var(--fcf7b-text)!important;font-size:12.5px;padding:7px 9px;width:100%}.fcf7b-prop textarea.fcf7b-code-input{font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-x:auto;resize:vertical;tab-size:2;white-space:pre}.fcf7b-prop-check{align-items:center;cursor:pointer;flex-direction:row;gap:8px}.fcf7b-prop-check input{height:16px;width:16px}.fcf7b-prop .fcf7b-dim-box{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;display:grid;grid-template-columns:repeat(4,1fr) 34px;overflow:hidden}.fcf7b-prop .fcf7b-dim-box input{background:transparent;border:0;border-color:var(--fcf7b-border)!important;border-radius:0!important;border-style:solid;border-width:0 1px 0 0!important;box-shadow:none!important;color:var(--fcf7b-text);font-size:12px;min-height:auto;min-width:0;padding:8px 2px;text-align:center;width:100%}.fcf7b-prop .fcf7b-dim-link{align-items:center;background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:14px;justify-content:center}.fcf7b-prop .fcf7b-dim-link.is-linked{color:var(--fcf7b-accent)}.fcf7b-prop .fcf7b-dim-custom{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0;width:100%}.fcf7b-prop .fcf7b-dim-labels{display:grid;grid-template-columns:repeat(4,1fr) 34px;margin-top:3px}.fcf7b-prop .fcf7b-dim-labels span{color:var(--fcf7b-muted);font-size:9px;letter-spacing:.3px;text-align:center;text-transform:uppercase}.fcf7b-prop .fcf7b-border,.fcf7b-prop .fcf7b-border .fcf7b-ctl-row{margin-bottom:13px}.fcf7b-opts{font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}.fcf7b-prop .CodeMirror{background:#1e1e1e;border:1px solid #000;border-radius:7px;color:#d4d4d4;font-size:12px;height:260px;line-height:1.55;max-width:100%}.fcf7b-prop .CodeMirror-gutters{background:#1a1a1a;border-right:1px solid #2b2b2b}.fcf7b-prop .CodeMirror-linenumber{color:#6a6a6a}.fcf7b-prop .CodeMirror-cursor{border-left-color:#d4d4d4}.fcf7b-prop .CodeMirror-activeline-background{background:#262626}.fcf7b-prop .CodeMirror-focused .CodeMirror-selected,.fcf7b-prop .CodeMirror-selected{background:#264f78}.fcf7b-prop .CodeMirror-matchingtag{background:rgba(86,156,214,.22)}.fcf7b-prop .cm-tag{color:#569cd6}.fcf7b-prop .cm-attribute{color:#9cdcfe}.fcf7b-prop .cm-string{color:#ce9178}.fcf7b-prop .cm-bracket,.fcf7b-prop .cm-punctuation{color:gray}.fcf7b-prop .cm-comment{color:#6a9955}.fcf7b-prop .cm-atom,.fcf7b-prop .cm-keyword{color:#c586c0}.fcf7b-prop .cm-number{color:#b5cea8}.fcf7b-prop .cm-error{color:#f48771}.fcf7b-prop .CodeMirror-lint-markers{background:#1a1a1a}.fcf7b-date-list{flex-direction:column}.fcf7b-date-list,.fcf7b-date-list-add{display:flex;gap:6px}.fcf7b-date-list-add input[type=date]{flex:1;min-width:0}.fcf7b-date-list-add input[type=number]{flex:0 0 auto;width:70px!important}.fcf7b-date-list-add input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-add input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-add button{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;cursor:pointer;flex-shrink:0;width:26px}.fcf7b-date-list-add button:disabled{cursor:default;opacity:.4}.fcf7b-date-list-chips{display:flex;flex-wrap:wrap;gap:5px}.fcf7b-date-list-chip{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:20px;display:inline-flex;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;gap:4px;padding:2px 4px 2px 8px}.fcf7b-date-list-chip input[type=number]{background:transparent;border:0;color:inherit;font:inherit;margin:0!important;min-height:30px;padding:0!important;text-align:center;width:70px!important}.fcf7b-date-list-chip input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-chip input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-chip button{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;height:16px;justify-content:center;line-height:1;width:16px}.fcf7b-date-list-chip button:hover{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-price-map-empty{color:var(--fcf7b-muted);font-size:12px;margin:0}.fcf7b-price-map{display:flex;flex-direction:column;gap:6px}.fcf7b-price-map-row{align-items:center;display:flex;gap:6px}.fcf7b-price-map-label{flex:1;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-price-map input[type=number]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;flex:0 0 auto;width:80px!important}.fcf7b-price-map input[type=number]::-webkit-inner-spin-button,.fcf7b-price-map input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl{display:flex;flex-direction:column;gap:6px}.fcf7b-steps-ctl-row{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:6px;padding:4px;transition:border-color .12s}.fcf7b-steps-ctl-row.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-handle{color:var(--fcf7b-muted);cursor:grab;display:flex;flex:0 0 auto;font-size:14px;opacity:.5}.fcf7b-steps-ctl-handle:hover{opacity:1}.fcf7b-steps-ctl-handle:active{cursor:grabbing}.fcf7b-steps-ctl-index{align-items:center;background:var(--fcf7b-border);border-radius:50%;color:var(--fcf7b-muted);display:flex;flex:0 0 auto;font-size:10px;font-weight:600;height:18px;justify-content:center;margin-top:1px;width:18px}.fcf7b-steps-ctl-label{background:transparent!important;border:0!important;flex:1 1 auto;font-size:12.5px;min-width:0;padding:6px 4px!important}.fcf7b-steps-ctl-price{-moz-appearance:textfield;flex:0 0 auto;margin:0!important;padding:0!important;text-align:center;width:35px!important}.fcf7b-steps-ctl-price::-webkit-inner-spin-button,.fcf7b-steps-ctl-price::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl-remove{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:0 0 auto;font-size:13px;padding:4px 6px}.fcf7b-steps-ctl-remove:hover:not(:disabled){background:var(--fcf7b-danger);color:#fff}.fcf7b-steps-ctl-remove:disabled{cursor:not-allowed;opacity:.35}.fcf7b-steps-ctl--time-price .fcf7b-steps-ctl-row{gap:0}.fcf7b-steps-ctl--time-price input[type=time]::-webkit-calendar-picker-indicator{margin-left:0}.fcf7b-steps-ctl-drop-end{border-radius:3px;height:6px}.fcf7b-steps-ctl-drop-end.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-add{align-items:center;align-self:flex-start;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;margin-top:2px;padding:7px 10px}.fcf7b-steps-ctl-add:hover{background:var(--fcf7b-accent-soft);border-style:solid}.fcf7b-width-btns{display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.fcf7b-width-btn{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:7px 6px}.fcf7b-width-btn.active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-width .fcf7b-slider{margin-bottom:0;margin-top:12px}.fcf7b-prop--inline{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;justify-content:space-between}.fcf7b-prop--inline>.fcf7b-prop-desc{flex:0 0 100%;margin-top:-2px}.fcf7b-prop--inline>.fcf7b-prop-label{align-items:center;display:flex;flex:0 0 auto;margin:0}.fcf7b-prop--inline>.fcf7b-select,.fcf7b-prop--inline>input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop--inline>select{flex:1 1 auto;line-height:1;max-width:130px;min-height:auto;padding:9px}.fcf7b-prop--inline>.fcf7b-select{padding:0;width:115px}.fcf7b-prop--inline>.fcf7b-bxsh,.fcf7b-prop--inline>.fcf7b-color,.fcf7b-prop--inline>.fcf7b-typo{flex:0 0 auto}.fcf7b-ctl-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7b-ctl-head .fcf7b-prop-label{margin:0}.fcf7b-ctl-head .fcf7b-ctl-unit{background:transparent;border:none;color:var(--fcf7b-text);cursor:pointer;flex:0 0 auto;font-size:11px;line-height:1;min-height:auto;min-width:auto;padding:0;text-align:center;width:auto}.fcf7b-ctl-head .fcf7b-ctl-unit.is-static{background:transparent;border-color:transparent;color:var(--fcf7b-muted);cursor:default;padding-right:0}.fcf7b-unit{flex:0 0 auto;position:relative}.fcf7b-unit-trigger{align-items:center;display:inline-flex;gap:3px;justify-content:center;min-width:42px}.fcf7b-unit-trigger i{font-size:13px;line-height:1}.fcf7b-unit-trigger.is-custom{color:var(--fcf7b-accent)}.fcf7b-unit-caret{color:var(--fcf7b-muted);font-size:14px!important;transition:transform .15s}.fcf7b-unit-trigger.is-open .fcf7b-unit-caret{transform:rotate(180deg)}.fcf7b-unit-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);min-width:54px;padding:4px;position:absolute;right:0;top:calc(100% + 4px);z-index:20}.fcf7b-unit-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.fcf7b-unit-list li{margin:0}.fcf7b-unit-opt{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:11px;justify-content:center;line-height:1;padding:6px 8px;width:100%}.fcf7b-unit-opt i{font-size:13px}.fcf7b-unit-opt:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-unit-opt.is-active{color:var(--fcf7b-accent)}.fcf7b-select{position:relative;width:100%}.fcf7b-select-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:6px;justify-content:space-between;line-height:1.2;min-height:auto;padding:7px 9px;text-align:left;width:100%}.fcf7b-select-cur{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:15px;transition:transform .15s}.fcf7b-select-trigger.is-open .fcf7b-select-caret{transform:rotate(180deg)}.fcf7b-select-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);left:0;padding:4px;position:absolute;right:0;top:calc(100% + 4px);z-index:30}.fcf7b-select-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.fcf7b-select-list li{margin:0}.fcf7b-select-opt{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:block;font-size:12px;line-height:1;overflow:hidden;padding:7px 9px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.fcf7b-select-opt:hover{background:var(--fcf7b-panel-2)}.fcf7b-select-opt.is-active{color:var(--fcf7b-accent);font-weight:600}.fcf7b-select-list.is-multi .fcf7b-select-opt{align-items:center;display:flex;gap:6px}.fcf7b-select-check{flex:0 0 auto;font-size:14px}.fcf7b-select-optlabel{min-width:0;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-hasremove{align-items:center;display:flex;gap:2px}.fcf7b-select-hasremove .fcf7b-select-opt{flex:1 1 auto}.fcf7b-select-hasremove.is-drop{box-shadow:inset 0 2px 0 var(--fcf7b-accent)}.fcf7b-select-grip{color:var(--fcf7b-muted);cursor:grab;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:18px}.fcf7b-select-grip:active{cursor:grabbing}.fcf7b-select-grip:hover{color:var(--fcf7b-accent)}.fcf7b-select-remove{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:24px}.fcf7b-select-remove:hover{color:var(--fcf7b-danger)}.fcf7b-select-create{border-top:1px solid var(--fcf7b-border);padding-top:4px}.fcf7b-select-createinput{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:5px;box-shadow:unset!important;color:var(--fcf7b-text);font-size:12px;line-height:1.2;margin:0;min-height:auto!important;padding:7px 9px;width:100%}.fcf7b-select-createinput::placeholder{color:var(--fcf7b-muted)}.fcf7b-select-createinput:focus{outline:none}.fcf7b-switch{align-items:center;background:var(--fcf7b-border);border:0;border-radius:999px;cursor:pointer;display:inline-flex;flex:0 0 auto;height:22px;padding:0;position:relative;transition:background .15s;width:40px}.fcf7b-switch.is-on{background:var(--fcf7b-accent)}.fcf7b-switch.has-label{min-width:48px;padding:0 8px 0 24px;width:auto}.fcf7b-switch.has-label.is-on{padding:0 24px 0 8px}.fcf7b-switch-label{color:var(--fcf7b-text);font-size:10px;font-weight:600;line-height:1;white-space:nowrap}.fcf7b-switch.is-on .fcf7b-switch-label{color:#fff}.fcf7b-switch-knob{background:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.3);height:18px;left:2px;position:absolute;top:2px;transition:left .15s;width:18px}.fcf7b-switch.is-on .fcf7b-switch-knob{left:calc(100% - 20px)}.fcf7b-bxsh{position:relative}.fcf7b-bxsh-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;gap:8px;padding:5px 8px}.fcf7b-bxsh-trigger i{color:var(--fcf7b-muted);font-size:13px}.fcf7b-bxsh-trigger.is-set{border-color:var(--fcf7b-accent)}.fcf7b-bxsh-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-bxsh-pop .fcf7b-color-pop{width:216px}.fcf7b-slider{gap:0}.fcf7b-slider-row{align-items:center;display:flex;gap:10px}.fcf7b-slider-num{flex:0 0 65px;text-align:center}.fcf7b-slider-custom,.fcf7b-slider-num{line-height:1;min-height:auto!important}.fcf7b-slider-custom{flex:1 1 auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0}.fcf7b-slider-range{appearance:none;background:var(--fcf7b-border);border-radius:3px;cursor:pointer;flex:1 1 auto;height:4px;outline:none}.fcf7b-slider-range::-webkit-slider-thumb{appearance:none;background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;box-shadow:0 0 0 1px var(--fcf7b-border);cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-thumb{background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-track{background:var(--fcf7b-border);border-radius:3px;height:4px}.fcf7b-ctl-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.fcf7b-ctl-row>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);flex:0 0 auto;font-size:11.5px;font-weight:600}.fcf7b-ctl-row>.fcf7b-select,.fcf7b-ctl-row>input,.fcf7b-ctl-row>select{flex:0 0 160px;line-height:1;max-width:160px;min-height:auto;min-width:0;padding:9px}.fcf7b-ctl-row>.fcf7b-select{padding:0}.fcf7b-cond-ctl .fcf7b-cond-body{border:1px dashed var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:10px}.fcf7b-cond-ctl .fcf7b-cond-hint{color:var(--fcf7b-muted);font-size:11px;margin:0}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row{border:1px dashed var(--fcf7b-border);border-radius:8px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row.is-open{border-style:solid}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head{align-items:center;cursor:pointer;display:flex;gap:6px;padding:8px 8px 8px 6px;-webkit-user-select:none;user-select:none}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head:hover{background:var(--fcf7b-panel-2)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-title{color:var(--fcf7b-text);flex:1 1 auto;font-size:12px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;flex:0 0 auto;height:20px;justify-content:center;padding:0;width:20px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove:hover{background:var(--fcf7b-border);color:var(--fcf7b-text)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-body{border-top:1px solid var(--fcf7b-border);display:flex;flex-direction:column;gap:8px;padding:4px 10px 10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack{display:flex;flex-direction:column;gap:4px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);font-size:11.5px;font-weight:600}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack textarea{resize:vertical}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:7px 10px;width:max-content}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add:hover{background:var(--fcf7b-panel-2)}.fcf7b-typo{position:relative}.fcf7b-typo .fcf7b-ctl-row>.fcf7b-select,.fcf7b-typo .fcf7b-ctl-row>input,.fcf7b-typo .fcf7b-ctl-row>select{flex:0 0 130px;max-width:130px}.fcf7b-typo-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;gap:8px;padding:8px}.fcf7b-typo-trigger.is-open,.fcf7b-typo-trigger.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-typo-aa{color:var(--fcf7b-text);font-size:14px;font-weight:700;line-height:1}.fcf7b-typo-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-typo-pop .fcf7b-slider{margin-bottom:0}.fcf7b-typo-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 10px}.fcf7b-typo-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-color{position:relative}.fcf7b-color-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:8px;padding:5px 8px}.fcf7b-color-trigger.is-open{border-color:var(--fcf7b-accent)}.fcf7b-color-swatch{border:1px solid var(--fcf7b-border);border-radius:5px;flex:0 0 auto;height:22px;width:22px}.fcf7b-color-swatch.is-empty{background-image:linear-gradient(45deg,#c4c4c4 25%,transparent 0),linear-gradient(-45deg,#c4c4c4 25%,transparent 0),linear-gradient(45deg,transparent 75%,#c4c4c4 0),linear-gradient(-45deg,transparent 75%,#c4c4c4 0);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.fcf7b-color-value{font-size:11px;letter-spacing:.3px;min-width:54px;text-align:left;text-transform:uppercase}.fcf7b-color-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:236px;z-index:50}.fcf7b-pop-head{align-items:center;color:var(--fcf7b-text);display:flex;font-size:12px;font-weight:600;justify-content:space-between;margin-bottom:10px}.fcf7b-pop-tools{display:flex;gap:4px}.fcf7b-pop-tools button{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;display:grid;font-size:13px;height:24px;justify-content:center;width:24px}.fcf7b-pop-tools button:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-cp-area{border-radius:7px;cursor:crosshair;height:150px;overflow:hidden;position:relative;touch-action:none}.fcf7b-cp-area-black,.fcf7b-cp-area-white{inset:0;position:absolute}.fcf7b-cp-area-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.fcf7b-cp-area-black{background:linear-gradient(0deg,#000,transparent)}.fcf7b-cp-area-handle{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.45);height:14px;pointer-events:none;position:absolute;transform:translate(-50%,-50%);width:14px}.fcf7b-cp-slider{border-radius:6px;cursor:pointer;height:12px;margin-top:12px;position:relative;touch-action:none}.fcf7b-cp-hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.fcf7b-cp-alpha{background-image:linear-gradient(to right,transparent,var(--cp-color,#000)),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%);background-position:0 0,0 0,5px 5px;background-size:100% 100%,10px 10px,10px 10px}.fcf7b-cp-slider-handle{background:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);height:14px;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:14px}.fcf7b-cp-foot{align-items:center;display:flex;gap:6px;margin-top:12px}.fcf7b-cp-hex{flex:1;min-width:0;text-transform:uppercase}.fcf7b-cp-fmt{color:var(--fcf7b-muted);font-size:10px;font-weight:700;letter-spacing:.5px}.fcf7b-cp-none{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 8px}.fcf7b-cp-none:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-iconpick{position:relative}.fcf7b-iconpick-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;justify-content:center;min-height:30px;min-width:34px;padding:4px 8px}.fcf7b-iconpick-trigger i{font-size:18px}.fcf7b-iconpick-trigger.is-open,.fcf7b-iconpick-trigger.is-set,.fcf7b-iconpick-trigger:hover{border-color:var(--fcf7b-accent)}.fcf7b-iconpick-placeholder{color:var(--fcf7b-muted)}.fcf7b-iconpick-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:260px;z-index:50}.fcf7b-iconpick-gridwrap{position:relative}.fcf7b-iconpick-grid{align-content:start;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);display:grid;gap:4px;grid-template-columns:repeat(6,1fr);height:184px;overflow-y:auto;padding:2px}.fcf7b-iconpick-grid.is-loading{opacity:.35;pointer-events:none}.fcf7b-iconpick-loader{gap:8px;inset:0;position:absolute}.fcf7b-iconpick-loader,.fcf7b-iconpick-more{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center}.fcf7b-iconpick-more{gap:6px;grid-column:1/-1;padding:10px 0}.fcf7b-iconpick-cell{align-items:center;aspect-ratio:1;background:none;border:1px solid transparent;border-radius:8px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:18px;justify-content:center}.fcf7b-iconpick-cell.active,.fcf7b-iconpick-cell:hover{background:var(--fcf7b-accent-soft)}.fcf7b-iconpick-cell.active{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-iconpick-search{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-sizing:border-box;color:var(--fcf7b-text);font-size:13px;margin-bottom:6px;padding:7px 10px;width:100%}.fcf7b-iconpick-search:focus{border-color:var(--fcf7b-accent);outline:none}.fcf7b-iconpick-empty{color:var(--fcf7b-muted);font-size:12px;grid-column:1/-1;padding:20px 0;text-align:center}.fcf7b-iconpick-selected{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:8px;margin-top:8px;min-height:34px;padding:8px 10px}.fcf7b-iconpick-selected i{flex:0 0 auto;font-size:18px}.fcf7b-iconpick-selected code{color:var(--fcf7b-text);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-code{background:var(--fcf7b-panel);height:640px;overflow-y:auto;padding:20px}.fcf7b-code-note{color:var(--fcf7b-muted);margin-bottom:12px;max-width:640px}.fcf7b-code pre.fcf7b-code-pre{background:#1e1e1e;border:1px solid #000;border-radius:10px;color:#d4d4d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;overflow-x:auto;padding:16px;white-space:pre-wrap;word-break:break-word}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-tag{color:#569cd6}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-attr{color:#9cdcfe}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-str{color:#ce9178}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-punct{color:gray}@media(max-width:1200px){.fcf7b-columns{grid-template-columns:200px 1fr 250px}}
     1.fcf7b-ms-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.fcf7b-ms-tab{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:6px;color:#6b7280;cursor:pointer;font-size:11.5px;font-weight:600;padding:5px 10px}.fcf7b-ms-tab.is-active{background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-steps{display:flex;margin-bottom:14px}.fcf7b-ms-step{align-items:center;display:flex;flex:1 1 0;flex-direction:column;gap:6px;min-width:0;position:relative;text-align:center}.fcf7b-ms-step:not(:last-child):after{background:#0091fa;content:"";height:2px;left:50%;position:absolute;top:15px;width:100%;z-index:0}.fcf7b-ms-step-circle{align-items:center;background:#fff;border:2px solid #0091fa;border-radius:50%;color:#0091fa;cursor:pointer;display:flex;flex:0 0 auto;font-size:15px;height:32px;justify-content:center;padding:0;position:relative;width:32px;z-index:1}.fcf7b-ms-step-check{display:none;height:15px;width:15px}.fcf7b-ms-step.is-active .fcf7b-ms-step-circle,.fcf7b-ms-step.is-done .fcf7b-ms-step-circle{background:#0091fa;color:#fff}.fcf7b-ms-step.is-done .fcf7b-ms-step-num{display:none}.fcf7b-ms-step.is-done .fcf7b-ms-step-check{display:block}.fcf7b-ms-step-label{color:#1e2126;font-size:11px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-ms-nav-buttons,.fcf7b-ms-nav-buttons p{display:flex;gap:8px;justify-content:space-between;margin-top:10px;width:100%}.fcf7b-ms-nav-buttons button{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:7px;color:#1e2126;cursor:pointer;font-size:11.5px;font-weight:600;padding:7px 14px}.fcf7b-ms-nav-buttons button:disabled{cursor:not-allowed;opacity:.4}.fcf7b-ms-nav-buttons .fcf7b-ms-next:not(:disabled){background:#0091fa;border-color:#0091fa;color:#fff}.fcf7b-ms-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;min-height:70px;padding:20px}.fcf7b-ms-panel>.fcf7b-ms-stack{display:block}.fcf7b-ms-cell{margin-bottom:10px}.fcf7b-ms-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-repeater{--fcf7-rep-accent:#0091fa;display:block}.fcf7-repeater-row{background:#fbfbfd;border:1px solid #e3e5ea;border-radius:8px;margin-bottom:10px;padding:12px 14px;position:relative}.fcf7-repeater-row-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7-repeater-row-head:has(>.fcf7-repeater-row-title:empty){justify-content:flex-end}.fcf7-repeater-row-title{color:#1e2126;font-size:12px;font-weight:700;letter-spacing:.01em}.fcf7-repeater-remove{background:#fff;border:1px solid #e3e5ea;border-radius:6px;color:#b91c1c;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:4px 10px}.fcf7-repeater-remove:hover:not(:disabled){background:#fef2f2;border-color:#b91c1c}.fcf7-repeater-remove:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater-actions{display:flex}.fcf7-repeater-add{background:var(--fcf7-rep-accent);border:1px solid var(--fcf7-rep-accent);border-radius:7px;color:#fff;cursor:pointer;font-size:11.5px;font-weight:600;line-height:1.6;padding:7px 14px}.fcf7-repeater-add:disabled{cursor:not-allowed;opacity:.4}.fcf7-repeater .fcf7-repeater-row{background:var(--fcf7b-panel);border-color:var(--fcf7b-border)}.fcf7-repeater .fcf7-repeater-row-title{color:var(--fcf7b-text)}.fcf7b-rep-dropbox{min-height:70px}.fcf7b-rep-dropbox>.fcf7b-rep-stack{display:block}.fcf7b-rep-cell{margin-bottom:10px}.fcf7b-rep-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11.5px;margin:0 15px;padding:24px 10px;text-align:center}.fcf7-builder-root{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7b-radius:10px}@media(prefers-color-scheme:dark){.fcf7-builder-root{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25)}}.fcf7-builder-root button{transition:all .3s}.fcf7-builder-root,.fcf7b-app{box-sizing:border-box}.fcf7b-boot{color:var(--fcf7b-muted);padding:40px}.fcf7b-app{background:var(--fcf7b-bg);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);color:var(--fcf7b-text);font-size:13px;line-height:1.45;margin-top:6px;overflow:hidden}.fcf7b-app.fcf7-builder-theme-light{--fcf7b-bg:#f4f5f7;--fcf7b-panel:#fff;--fcf7b-panel-2:#fbfbfd;--fcf7b-border:#e3e5ea;--fcf7b-heading:#000;--fcf7b-text:#1e2126;--fcf7b-muted:#6b7280;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#eef4fe;--fcf7b-danger:#dc2626;--fcf7b-shadow:0 1px 2px rgba(16,18,27,.06),0 2px 8px rgba(16,18,27,.05);--fcf7-field-bg:#fff;--fcf7-field-color:#1e2126;--fcf7-field-border:#d5d8dc;--fcf7-field-placeholder:#9aa1ad;--fcf7-label-color:#1e2126;--fcf7-muted:#6b7280;color-scheme:light}.fcf7b-app.fcf7-builder-theme-dark{--fcf7b-bg:#16181d;--fcf7b-panel:#1e2127;--fcf7b-panel-2:#23262e;--fcf7b-border:#31353f;--fcf7b-text:#e7e9ee;--fcf7b-heading:#fff;--fcf7b-muted:#9aa1ad;--fcf7b-accent:#186af8;--fcf7b-accent-fg:#fff;--fcf7b-accent-soft:#2a3445;--fcf7b-danger:#f87171;--fcf7b-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.25);--fcf7-field-bg:#1b1e24;--fcf7-field-color:#e7e9ee;--fcf7-field-border:#3a3f4b;--fcf7-field-placeholder:#7c848f;--fcf7-label-color:#f2f4f8;--fcf7-muted:#9aa1ad;color-scheme:dark}.fcf7b-app *,.fcf7b-app :after,.fcf7b-app :before{box-sizing:border-box}.fcf7b-app.is-fullscreen{border:0;border-radius:0;display:flex;flex-direction:column;inset:0;margin:0;position:fixed;z-index:100000}.fcf7b-app.is-fullscreen .fcf7b-toolbar{flex:0 0 auto}.fcf7b-app.is-fullscreen .fcf7b-code,.fcf7b-app.is-fullscreen .fcf7b-columns{flex:1 1 auto;height:auto;min-height:0}.fcf7b-spinner{animation:fcf7b-spin .7s linear infinite;border:2px solid var(--fcf7b-border);border-radius:50%;border-top-color:var(--fcf7b-accent);display:inline-block;flex:0 0 auto;height:14px;width:14px}@keyframes fcf7b-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.fcf7b-spinner{animation-duration:2s}}.fcf7b-toolbar{align-items:center;background:var(--fcf7b-panel);border-bottom:1px solid var(--fcf7b-border);display:flex;gap:16px;padding:10px 14px;position:relative}.fcf7b-toolbar .fcf7b-brand{align-items:center;color:var(--fcf7b-accent);display:flex;font-weight:700;letter-spacing:.2px}.fcf7b-toolbar .fcf7b-brand .fcf7b-brand-logo{display:block;height:26px;max-width:160px;width:auto}.fcf7b-toolbar .fcf7b-tabs{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;padding:3px}.fcf7b-toolbar .fcf7b-tabs button{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px}.fcf7b-toolbar .fcf7b-tabs button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-text)}.fcf7b-toolbar .fcf7b-tb-right{align-items:center;display:flex;gap:8px;margin-left:auto}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-count{color:var(--fcf7b-muted);font-size:12px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:14px;height:24px;place-items:center;width:26px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button:hover{color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-devices button.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:15px;height:30px;width:30px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-ghost:disabled{cursor:default;opacity:.3}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:2px;padding:2px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);height:26px;width:28px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-ghost:hover:not(:disabled){background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-tb-group .fcf7b-tb-div{align-self:stretch;background:var(--fcf7b-border);margin:3px;width:1px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg{display:inline-flex;position:relative}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:100003}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-swatches{display:grid;gap:6px;grid-template-columns:repeat(6,1fr)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw{border:1px solid var(--fcf7b-border);border-radius:5px;cursor:pointer;height:22px;padding:0}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-active{border-color:var(--fcf7b-accent);box-shadow:0 0 0 2px var(--fcf7b-accent-soft)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-sw.is-default{background:linear-gradient(45deg,transparent 45%,var(--fcf7b-danger) 45%,var(--fcf7b-danger) 55%,transparent 55%) var(--fcf7b-panel-2)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-custom{align-items:center;border-top:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:flex;font-size:11px;gap:10px;justify-content:space-between;margin-top:8px;padding-top:8px}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-canvasbg-pop{overflow:visible}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-width:92px;overflow:hidden;padding:7px 16px;position:relative;transition:background .15s ease,opacity .15s ease}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:hover{background:color-mix(in srgb,var(--fcf7b-accent),#000 20%)}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save:disabled{cursor:default;opacity:.7}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--saved{background:#16a34a}.fcf7b-toolbar .fcf7b-tb-right .fcf7b-save--error{background:#dc2626}.fcf7b-progress{background:transparent;bottom:-1px;height:2px;left:0;opacity:0;position:absolute;right:0;transition:opacity .25s ease}.fcf7b-progress.is-active{opacity:1}.fcf7b-progress-fill{background:var(--fcf7b-accent);display:block;height:100%;transition:width .3s ease;width:0}.fcf7b-progress--error .fcf7b-progress-fill{background:#dc2626}.fcf7b-columns{display:grid;grid-template-columns:232px 1fr 288px;height:640px}.fcf7b-palette,.fcf7b-props{background:var(--fcf7b-panel);overflow-y:auto}.fcf7b-bxsh-pop,.fcf7b-canvas-wrap,.fcf7b-code,.fcf7b-gs-body,.fcf7b-gs-sidebar,.fcf7b-gspanel-preview,.fcf7b-palette,.fcf7b-props,.fcf7b-select-list,.fcf7b-typo-pop,.fcf7b-unit-list{scrollbar-color:var(--fcf7b-border) transparent;scrollbar-width:thin}.fcf7b-bxsh-pop::-webkit-scrollbar,.fcf7b-canvas-wrap::-webkit-scrollbar,.fcf7b-code::-webkit-scrollbar,.fcf7b-gs-body::-webkit-scrollbar,.fcf7b-gs-sidebar::-webkit-scrollbar,.fcf7b-gspanel-preview::-webkit-scrollbar,.fcf7b-palette::-webkit-scrollbar,.fcf7b-props::-webkit-scrollbar,.fcf7b-select-list::-webkit-scrollbar,.fcf7b-typo-pop::-webkit-scrollbar,.fcf7b-unit-list::-webkit-scrollbar{height:9px;width:9px}.fcf7b-bxsh-pop::-webkit-scrollbar-track,.fcf7b-canvas-wrap::-webkit-scrollbar-track,.fcf7b-code::-webkit-scrollbar-track,.fcf7b-gs-body::-webkit-scrollbar-track,.fcf7b-gs-sidebar::-webkit-scrollbar-track,.fcf7b-gspanel-preview::-webkit-scrollbar-track,.fcf7b-palette::-webkit-scrollbar-track,.fcf7b-props::-webkit-scrollbar-track,.fcf7b-select-list::-webkit-scrollbar-track,.fcf7b-typo-pop::-webkit-scrollbar-track,.fcf7b-unit-list::-webkit-scrollbar-track{background:transparent}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb,.fcf7b-code::-webkit-scrollbar-thumb,.fcf7b-gs-body::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb,.fcf7b-palette::-webkit-scrollbar-thumb,.fcf7b-props::-webkit-scrollbar-thumb,.fcf7b-select-list::-webkit-scrollbar-thumb,.fcf7b-typo-pop::-webkit-scrollbar-thumb,.fcf7b-unit-list::-webkit-scrollbar-thumb{background:var(--fcf7b-border);background-clip:content-box;border:2px solid transparent;border-radius:10px}.fcf7b-bxsh-pop:hover::-webkit-scrollbar-thumb,.fcf7b-canvas-wrap:hover::-webkit-scrollbar-thumb,.fcf7b-code:hover::-webkit-scrollbar-thumb,.fcf7b-gs-body:hover::-webkit-scrollbar-thumb,.fcf7b-gs-sidebar:hover::-webkit-scrollbar-thumb,.fcf7b-gspanel-preview:hover::-webkit-scrollbar-thumb,.fcf7b-palette:hover::-webkit-scrollbar-thumb,.fcf7b-props:hover::-webkit-scrollbar-thumb,.fcf7b-select-list:hover::-webkit-scrollbar-thumb,.fcf7b-typo-pop:hover::-webkit-scrollbar-thumb,.fcf7b-unit-list:hover::-webkit-scrollbar-thumb{background:var(--fcf7b-muted);background-clip:content-box}.fcf7b-bxsh-pop::-webkit-scrollbar-thumb:hover,.fcf7b-canvas-wrap::-webkit-scrollbar-thumb:hover,.fcf7b-code::-webkit-scrollbar-thumb:hover,.fcf7b-gs-body::-webkit-scrollbar-thumb:hover,.fcf7b-gs-sidebar::-webkit-scrollbar-thumb:hover,.fcf7b-gspanel-preview::-webkit-scrollbar-thumb:hover,.fcf7b-palette::-webkit-scrollbar-thumb:hover,.fcf7b-props::-webkit-scrollbar-thumb:hover,.fcf7b-select-list::-webkit-scrollbar-thumb:hover,.fcf7b-typo-pop::-webkit-scrollbar-thumb:hover,.fcf7b-unit-list::-webkit-scrollbar-thumb:hover{background:var(--fcf7b-accent);background-clip:content-box}.fcf7b-palette{border-right:1px solid var(--fcf7b-border);padding:12px}.fcf7b-app .fcf7b-search{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;color:var(--fcf7b-text);margin-bottom:12px;padding:8px 10px;width:100%}.fcf7b-app .fcf7b-search::placeholder{color:var(--fcf7b-muted)}.fcf7b-pal-group{margin-bottom:16px}.fcf7b-pal-title{color:var(--fcf7b-muted);font-size:10.5px;font-weight:700;letter-spacing:.8px;margin:0 0 8px 2px;text-transform:uppercase}.fcf7b-pal-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.fcf7b-pal-item{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:9px;color:var(--fcf7b-text);cursor:grab;display:flex;flex-direction:column;gap:6px;padding:12px 6px;position:relative;transition:all .12s}.fcf7b-pal-item:hover{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);transform:translateY(-1px)}.fcf7b-pal-item:active{cursor:grabbing}.fcf7b-pal-pro{display:grid;left:6px;place-items:center;position:absolute;top:6px}.fcf7b-pal-pro svg{fill:#ffad00;height:14px;width:14px}.fcf7b-pal-icon{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;display:grid;font-size:18px;height:30px;place-items:center;width:30px}.fcf7b-pal-label{font-size:11.5px;font-weight:600}.fcf7b-canvas-wrap{background-size:18px 18px;overflow-y:auto;padding:40px 22px}.fcf7b-canvas-grid{margin:0 auto;max-width:1100px;transition:max-width .18s ease;width:100%}.fcf7b-canvas-row{display:block}.fcf7b-gs{position:relative}.fcf7b-gs>.fcf7b-ghost.is-open,.fcf7b-gs>.fcf7b-ghost.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gs-backdrop{backdrop-filter:blur(2px);background:rgba(15,18,26,.55);inset:0;position:fixed;z-index:99}.fcf7b-gs-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;height:800px;inset:0;margin:auto;max-height:90vh;max-width:90vw;overflow:hidden;position:fixed;text-align:left;width:800px;z-index:100}.fcf7b-gs-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);flex:0 0 auto;font-size:14px;font-weight:700;padding:16px 20px;position:relative}.fcf7b-gs-close{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:16px;height:28px;place-items:center;position:absolute;right:12px;top:10px;width:28px}.fcf7b-gs-close:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-gs-main{display:flex;flex:1 1 auto;min-height:0}.fcf7b-gs-sidebar{background:var(--fcf7b-panel-2);border-right:1px solid var(--fcf7b-border);flex:0 0 220px;overflow-y:auto;padding:12px}.fcf7b-gs-navitem{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:2px;padding:8px 10px;text-align:left;width:100%}.fcf7b-gs-navitem i{font-size:15px}.fcf7b-gs-navitem:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-gs-navitem.active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gs-body{flex:1 1 auto;overflow-y:auto;padding:20px}.fcf7b-gspanel-sec+.fcf7b-gspanel-sec{margin-top:28px}.fcf7b-gspanel-head{border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-text);font-size:13px;font-weight:700;margin:0 0 16px;padding-bottom:12px}.fcf7b-gspanel-head--split{align-items:center;display:flex;gap:12px;justify-content:space-between}.fcf7b-gspanel-notice{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-left:3px solid var(--fcf7b-danger);border-radius:6px;color:var(--fcf7b-muted);font-size:12px;line-height:1.6;margin-bottom:16px;padding:10px 12px}.fcf7b-gspanel-notice a{color:var(--fcf7b-accent)}.fcf7b-gspanel-toggle{align-items:center;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;margin-bottom:20px}.fcf7b-gspanel-switch{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.fcf7b-gspanel-switchlabel{color:var(--fcf7b-text);font-size:12px;font-weight:600}.fcf7b-gspanel-switchlabel em{color:var(--fcf7b-muted);display:block;font-size:11px;font-style:normal;font-weight:400;line-height:1.6;margin-top:4px}.fcf7b-gspanel-field{margin-bottom:18px}.fcf7b-gspanel-field label{color:var(--fcf7b-text);display:block;font-size:12px;font-weight:600;margin-bottom:6px}.fcf7b-gspanel-field input[type=number],.fcf7b-gspanel-field input[type=text],.fcf7b-gspanel-field textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;box-sizing:border-box;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-field textarea{display:block;font-family:inherit;line-height:1.6;min-height:96px;resize:vertical}.fcf7b-gspanel-row{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.fcf7b-gspanel-rowlabel{align-items:center;color:var(--fcf7b-text);display:inline-flex;font-size:12px;font-weight:600;gap:6px}.fcf7b-gspanel-num{align-items:center;display:inline-flex;gap:5px}.fcf7b-gspanel-num input{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:6px 8px;text-align:center;width:82px}.fcf7b-gspanel-num em{color:var(--fcf7b-muted);font-size:11px;font-style:normal}.fcf7b-gspanel-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.6;margin:6px 0 0}.fcf7b-gspanel-desc code{background:var(--fcf7b-panel-2);border-radius:4px;padding:1px 4px}.fcf7b-gspanel-intro{margin:-8px 0 18px}.fcf7b-gspanel-subhead{color:var(--fcf7b-muted);font-size:12px;font-weight:700;letter-spacing:.04em;margin:26px 0 14px;text-transform:uppercase}.fcf7b-gspanel-colorrow{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:6px 0}.fcf7b-gspanel-colorrow>span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-gspanel-cols{display:flex;gap:12px}.fcf7b-gspanel-cols>*{flex:1 1 0;min-width:0}.fcf7b-gspanel-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.fcf7b-gspanel-rowline{align-items:center;display:flex;gap:8px}.fcf7b-gspanel-cell{flex:1 1 0;min-width:0}.fcf7b-gspanel-cell input[type=number],.fcf7b-gspanel-cell input[type=text]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;padding:8px 10px;width:100%}.fcf7b-gspanel-cell--narrow{flex:0 0 130px}.fcf7b-gspanel-del{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:30px;place-items:center;width:30px}.fcf7b-gspanel-del:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-gspanel-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11px;font-weight:600;gap:6px;padding:6px 12px}.fcf7b-gspanel-add:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-gspanel-none{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-size:11px;margin:0;padding:10px 12px}.fcf7b-gspanel-rowhead{color:var(--fcf7b-muted);font-size:11px;font-weight:600}.fcf7b-gspanel-headspacer{flex:0 0 30px}.fcf7b-gspanel-lead{margin:0 0 10px}.fcf7b-gspanel-warn{color:var(--fcf7b-danger)}.fcf7b-gspanel-tabs{background:var(--fcf7b-panel-2);border-radius:8px;display:flex;gap:3px;margin:0 0 18px;padding:3px}.fcf7b-gspanel-tab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:11px;font-weight:600;min-width:0;padding:6px 10px}.fcf7b-gspanel-tab:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-tab.is-active{background:var(--fcf7b-panel);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fcf7b-text)}.fcf7b-gspanel-pinned{border-top:1px solid var(--fcf7b-border);margin-top:20px;padding-top:16px}.fcf7b-gspanel-more{margin-top:10px}.fcf7b-gspanel-more summary{color:var(--fcf7b-muted);cursor:pointer;font-size:11px;font-weight:600}.fcf7b-gspanel-more summary:hover{color:var(--fcf7b-accent)}.fcf7b-gspanel-textarea{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);font-size:12px;line-height:1.6;padding:8px 10px;resize:vertical;width:100%}.fcf7b-gspanel-testrow{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.fcf7b-gspanel-testrow button[disabled]{cursor:default;opacity:.5}.fcf7b-gspanel-testrow button[disabled]:hover{border-color:var(--fcf7b-border);color:var(--fcf7b-muted)}.fcf7b-gspanel-testmsg{color:var(--fcf7b-muted);font-size:11px;line-height:1.5}.fcf7b-gspanel-testmsg.is-ok{color:var(--fcf7b-accent)}.fcf7b-gspanel-testmsg.is-fail{color:var(--fcf7b-danger)}.fcf7b-gspanel-preview{color:var(--fcf7b-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.7;margin:0;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.fcf7b-gspanel-devsw,.fcf7b-gspanel-preview{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px}.fcf7b-gspanel-devsw{display:inline-flex;gap:2px;padding:2px}.fcf7b-gspanel-devsw button{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;height:22px;justify-content:center;padding:0;width:24px}.fcf7b-gspanel-devsw button:hover{color:var(--fcf7b-text)}.fcf7b-gspanel-devsw button.is-active{background:var(--fcf7b-accent);color:#fff}.fcf7b-gspanel-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;margin-top:10px;padding:6px 10px;width:100%}.fcf7b-gspanel-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}@keyframes fcf7b-tpl-spin{to{transform:rotate(1turn)}}@keyframes fcf7b-tpl-shimmer{to{background-position:-200% 0}}.fcf7b-tpl-pop{width:1040px}.fcf7b-tpl-head{align-items:center;display:flex;gap:8px}.fcf7b-tpl-logo{height:20px;object-fit:contain;width:20px}.fcf7b-tpl-refresh{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:grid;font-size:15px;height:28px;place-items:center;position:absolute;right:46px;top:10px;width:28px}.fcf7b-tpl-refresh:hover{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-refresh.is-busy i{animation:fcf7b-tpl-spin .8s linear infinite}.fcf7b-tpl-search{background:transparent!important;border:1px solid var(--fcf7b-border)!important;border-radius:6px;color:var(--fcf7b-text);font-size:13px;margin-bottom:10px;padding:6px 10px;width:100%}.fcf7b-tpl-sidebar .fcf7b-gs-navitem{text-transform:capitalize}.fcf7b-tpl-navall.is-on{background:var(--fcf7b-panel);color:var(--fcf7b-text)}.fcf7b-tpl-count,.fcf7b-tpl-navall.is-on{box-shadow:inset 0 0 0 1px var(--fcf7b-border)}.fcf7b-tpl-count{background:var(--fcf7b-panel-2);border-radius:999px;color:var(--fcf7b-muted);font-size:11px;font-weight:700;margin-left:auto;padding:1px 7px}.fcf7b-gs-navitem.active .fcf7b-tpl-count{background:hsla(0,0%,100%,.25);box-shadow:none;color:#fff}.fcf7b-tpl-body{display:block}.fcf7b-tpl-note{color:var(--fcf7b-muted);font-size:13px;margin:0 0 12px}.fcf7b-tpl-note--error{color:#dc2626}.fcf7b-tpl-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.fcf7b-tpl-grid[hidden]{display:none}.fcf7b-tpl-card{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.fcf7b-tpl-thumb{background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-muted);display:grid;font-size:28px;height:190px;overflow:hidden;place-items:center;position:relative}.fcf7b-tpl-thumb img{height:100%;object-fit:cover;object-position:top center;width:100%}.fcf7b-tpl-skel{gap:10px;padding:0 12px 12px}.fcf7b-tpl-skel span{animation:fcf7b-tpl-shimmer 1.2s linear infinite;background:linear-gradient(90deg,var(--fcf7b-panel-2) 0,var(--fcf7b-border) 50%,var(--fcf7b-panel-2) 100%);background-size:200% 100%;border-radius:6px}.fcf7b-tpl-skel-thumb{border-radius:0;height:190px;margin:0 -12px}.fcf7b-tpl-skel-line{height:12px;width:70%}.fcf7b-tpl-skel-line--short{width:45%}.fcf7b-tpl-skel-btn{align-self:flex-end;height:30px;margin-top:4px;width:72px}.fcf7b-tpl-zoom{background:rgba(15,18,26,.55);border:0;border-radius:6px;color:#fff;cursor:pointer;display:grid;font-size:15px;height:28px;left:8px;opacity:.65;place-items:center;position:absolute;top:8px;transition:opacity .12s ease;width:28px}.fcf7b-tpl-zoom:focus-visible,.fcf7b-tpl-zoom:hover{background:rgba(15,18,26,.75);opacity:1}.fcf7b-tpl-card:hover .fcf7b-tpl-zoom{opacity:1}.fcf7b-tpl-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.fcf7b-tpl-badge{color:green!important;font-size:11px;font-weight:600;text-transform:capitalize}.fcf7b-tpl-badge--pro{background:#fc0;border-radius:4px;color:#000!important;inset-block-start:10px;inset-inline-end:10px;padding:2px 8px;position:absolute}.fcf7b-tpl-navhead{color:var(--fcf7b-heading);font-size:12px;font-weight:700;letter-spacing:.04em;margin:14px 0 6px;padding:0 10px;text-transform:uppercase}.fcf7b-tpl-meta{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.fcf7b-tpl-meta strong{color:var(--fcf7b-text);font-size:15px}.fcf7b-tpl-meta span{color:var(--fcf7b-muted);font-size:12px}.fcf7b-tpl-actions{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding:0 12px 12px}.fcf7b-tpl-preview{align-items:center;background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:6px 12px;text-decoration:none}.fcf7b-tpl-preview:focus,.fcf7b-tpl-preview:hover{border-color:var(--fcf7b-accent);box-shadow:none;color:var(--fcf7b-accent)}.fcf7b-tpl-import{background:var(--fcf7b-accent);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-tpl-import:disabled{cursor:default;opacity:.6}.fcf7b-tpl-light{align-items:center;background:rgba(15,18,26,.88);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100004}.fcf7b-tpl-light-panel{background:#fff;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.45);max-height:92vh;overflow:auto;width:min(1100px,92vw)}.fcf7b-tpl-light img{display:block;height:auto;width:100%}.fcf7b-tpl-light-bar{align-items:center;display:flex;gap:8px;position:fixed;right:16px;top:16px;z-index:1}.fcf7b-tpl-light-count{color:#fff;font-size:12px;font-weight:600}.fcf7b-tpl-light-close,.fcf7b-tpl-light-nav{background:hsla(0,0%,100%,.14);border:0;border-radius:8px;color:#fff;cursor:pointer;display:grid;flex:0 0 auto;font-size:18px;height:32px;place-items:center;width:32px}.fcf7b-tpl-light-close:hover,.fcf7b-tpl-light-nav:hover{background:hsla(0,0%,100%,.28)}.fcf7b-tpl-light-close{margin-left:4px}.fcf7b-ctl-device{font-size:12px;margin-left:6px;vertical-align:middle}.fcf7b-empty{color:var(--fcf7b-muted);padding:80px 20px;text-align:center}.fcf7b-empty-emoji{font-size:34px;margin-bottom:10px}.fcf7b-cell{margin-bottom:var(--fcf7b-cell-gap,20px);position:relative}.fcf7b-cell>.fcf7b-card{height:100%}.fcf7b-cell.is-drop-after:after,.fcf7b-cell.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";height:3px;left:0;position:absolute;right:0;z-index:2}.fcf7b-cell.is-drop-before:before{top:0}.fcf7b-cell.is-drop-after:after{bottom:0}.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap{flex:0 1 auto;max-width:none;width:auto}.is-drop-in.is-drop-in{background:color-mix(in srgb,var(--fcf7b-accent) 10%,transparent);border-radius:4px;outline:2px solid var(--fcf7b-accent);outline-offset:2px}.fcf7b-card{border:1px dashed transparent;cursor:pointer;position:relative;transition:all .12s}.fcf7b-card.is-selected,.fcf7b-card:hover{border-color:var(--fcf7b-accent)}.fcf7b-card.is-selected>.fcf7b-hdl,.fcf7b-card:hover>.fcf7b-hdl{opacity:1;visibility:visible}.fcf7b-card.is-selected{background:color-mix(in srgb,var(--fcf7b-accent) 7%,transparent)}.fcf7b-card-body h1,.fcf7b-card-body h2,.fcf7b-card-body h3,.fcf7b-card-body h4,.fcf7b-card-body h5,.fcf7b-card-body h6{color:var(--fcf7b-heading)}.fcf7b-hdl{align-items:center;color:var(--fcf7b-accent-fg);display:inline-flex;font-size:12px;line-height:1;opacity:0;position:absolute;transition:opacity .12s;visibility:hidden;z-index:3}.fcf7b-hdl .fcf7b-hdl-grip,.fcf7b-hdl button{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-size:13px;height:18px;justify-content:center;line-height:1;padding:0;width:20px}.fcf7b-hdl .fcf7b-hdl-grip:hover,.fcf7b-hdl button:hover{background:hsla(0,0%,100%,.22)}.fcf7b-hdl .fcf7b-hdl-grip.danger:hover,.fcf7b-hdl button.danger:hover{background:var(--fcf7b-danger)}.fcf7b-hdl button{width:26px}.fcf7b-hdl .fcf7b-hdl-grip{cursor:move}.fcf7b-hdl .fcf7b-hdl-global{align-items:center;display:inline-flex;font-size:11px;height:18px;justify-content:center;opacity:.85;width:18px}.fcf7b-hdl-tab{background:var(--fcf7b-accent);border-radius:4px 4px 0 0;bottom:100%;left:50%;overflow:hidden;transform:translateX(-50%)}.fcf7b-hdl-box{border-end-end-radius:4px;inset-inline-start:0}.fcf7b-hdl-box,.fcf7b-hdl-pen{background:var(--fcf7b-accent);top:0}.fcf7b-hdl-pen{border-end-start-radius:4px;inset-inline-end:0}.fcf7b-pv-ms{align-items:center;display:flex;gap:8px}.fcf7b-pv-ms-chips{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:4px;min-width:0}.fcf7b-pv-ms-placeholder{color:var(--fcf7b-muted)}.fcf7b-pv-ms-chip{align-items:center;background:hsla(0,0%,50%,.2);border-radius:3px;display:inline-flex;font-size:11.5px;gap:5px;padding:1px 5px 1px 7px}.fcf7b-pv-ms-chip>span{opacity:.5}.fcf7b-pv-ms-caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid;flex:none;height:0;opacity:.5;width:0}.fcf7b-pv-stars.fcf7-rating .icon{display:inline-flex;gap:4px}.fcf7b-pv-stars.fcf7-rating .fcf7-star{color:#d5d8dc;display:inline-flex;transition:color .15s ease-in-out}.fcf7b-pv-stars.fcf7-rating .fcf7-star svg{height:24px;width:24px}.fcf7b-pv-stars.fcf7-rating .fcf7-star.is-active{color:#f5a623}.fcf7b-pv-sigink{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.fcf7b-pv-file{color:var(--fcf7b-text);font-size:12.5px;width:100%}.fcf7b-pv-quiz .wpcf7-quiz-label{display:inline-block}.fcf7b-pv-choices .fcf7b-pv-inline{font:inherit}.fcf7b-pv-inline{align-items:center;display:flex;font-size:12.5px;gap:4px}.fcf7b-pv-html-empty{padding:10px;text-align:center}.fcf7b-pv-hidden,.fcf7b-pv-html-empty{border:1px dashed var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);font-family:Consolas,Monaco,Courier New,monospace;font-size:11px}.fcf7b-pv-hidden{align-items:center;display:flex;gap:8px;padding:8px 10px}.fcf7b-pv-hidden-name{color:var(--fcf7b-text)}.fcf7b-pv-hidden-value:before{content:"= "}.fcf7b-pv-desc{color:var(--fcf7b-muted);font-size:11px}.fcf7b-pv-heading{margin:4px 0}.fcf7b-pv-divider{border:0;border-top:1px solid var(--fcf7b-divider-color,var(--fcf7b-border));margin:4px 0;width:100%}.fcf7b-pv-submit{background:var(--fcf7b-accent);border:0;border-radius:8px;color:#fff;font-weight:600;padding:9px 20px}.fcf7b-pv-stars{color:#f5b301;font-size:20px;letter-spacing:3px}.fcf7b-pv-star{display:inline-block}.fcf7b-pv-custom{display:block}.fcf7b-pv-icon{font-size:22px;line-height:1}.fcf7b-pv-sp-canvas{align-items:center;border-radius:4px;display:inline-flex;font-size:18px;font-style:italic;font-weight:600;justify-content:center;letter-spacing:2px}.fcf7b-pv-slotpicker{display:flex;flex-direction:column;font-size:12px;gap:8px}.fcf7b-pv-slotpicker-cal{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;max-width:240px;padding:8px}.fcf7b-pv-slotpicker-cal-head{align-items:center;display:flex;font-weight:600;justify-content:space-between;margin-bottom:6px}.fcf7b-pv-slotpicker-cal-head button{background:transparent;border:0;color:var(--fcf7b-text);cursor:pointer;line-height:1;padding:2px 6px}.fcf7b-pv-slotpicker-cal-grid{display:grid;gap:2px;grid-template-columns:repeat(7,1fr);text-align:center}.fcf7b-pv-slotpicker-cal-dow{color:var(--fcf7b-muted);font-size:10px;padding:2px 0}.fcf7b-pv-slotpicker-cal-day{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;padding:4px 0}.fcf7b-pv-slotpicker-cal-day:hover:not(:disabled){background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-muted{visibility:hidden}.fcf7b-pv-slotpicker-cal-day.is-disabled{color:var(--fcf7b-muted);cursor:not-allowed;opacity:.4}.fcf7b-pv-slotpicker-cal-day.is-in-range{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-cal-day.is-selected{background:var(--fcf7b-accent);color:#fff}.fcf7b-pv-slotpicker-range{color:var(--fcf7b-text);font-size:12px}.fcf7b-pv-slotpicker-slots{display:flex;flex-wrap:wrap;gap:6px}.fcf7b-pv-slotpicker-hint{color:var(--fcf7b-muted);font-size:11.5px}.fcf7b-pv-slotpicker-slot{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:4px 8px}.fcf7b-pv-slotpicker-slot:hover{background:var(--fcf7b-accent-soft)}.fcf7b-pv-slotpicker-slot.is-active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-ctnbox{min-height:20px;outline:1px dashed var(--fcf7b-border);outline-offset:2px}.fcf7b-ctn-item{position:relative;width:100%}.fcf7b-ctn-item.is-drop-after:after,.fcf7b-ctn-item.is-drop-before:before{background:var(--fcf7b-accent);border-radius:3px;content:"";position:absolute;z-index:2}.fcf7b-ctn-item.is-drop-x:after,.fcf7b-ctn-item.is-drop-x:before{bottom:0;top:0;width:3px}.fcf7b-ctn-item.is-drop-x.is-drop-before:before{left:-8px}.fcf7b-ctn-item.is-drop-x.is-drop-after:after{right:-8px}.fcf7b-ctn-item.is-drop-y:after,.fcf7b-ctn-item.is-drop-y:before{height:3px;left:0;right:0}.fcf7b-ctn-item.is-drop-y.is-drop-before:before{top:-8px}.fcf7b-ctn-item.is-drop-y.is-drop-after:after{bottom:-8px}.fcf7b-ctn-item>.fcf7b-card,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap,.fcf7b-ctn-item>.fcf7b-card>.fcf7b-card-body>.fcf7b-field-wrap>.fcf7-container{height:100%}.fcf7b-ctnpick{border:1px dashed var(--fcf7b-border);border-radius:6px;flex:1 1 100%;padding:12px 14px 14px}.fcf7b-ctnpick-head{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center;margin-bottom:10px;position:relative}.fcf7b-ctnpick-head button{background:none;border:0;color:var(--fcf7b-muted);cursor:pointer;line-height:1;padding:2px;position:absolute;right:0}.fcf7b-ctnpick-head button:hover{color:var(--fcf7b-text)}.fcf7b-ctnpick-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.fcf7b-ctnpick-item{background:none;border:1px solid transparent;border-radius:5px;cursor:pointer;line-height:0;padding:0}.fcf7b-ctnpick-item:hover .fcf7b-ctnpick-box{outline:2px solid var(--fcf7b-accent)}.fcf7b-ctnpick-box{border-radius:3px;display:flex;gap:2px;height:42px;overflow:hidden;width:86px}.fcf7b-ctnpick-cell{background:var(--fcf7b-border);border-radius:2px;flex-basis:0}.fcf7b-ctnpick-nest{display:flex;flex-basis:0}.fcf7b-ctnpick-nest>.fcf7b-ctnpick-box{flex:1 1 auto;height:auto;width:auto}.fcf7b-ctnpick-glyph{background:var(--fcf7b-border);font-size:15px}.fcf7b-ctn-empty,.fcf7b-ctnpick-glyph{align-items:center;color:var(--fcf7b-muted);justify-content:center;line-height:1}.fcf7b-ctn-empty{background:none;border:1px dashed var(--fcf7b-border);border-radius:6px;cursor:pointer;display:flex;flex:1 1 100%;font-size:18px;min-height:46px;padding:8px;width:100%}.fcf7b-divider[data-pattern]{background-color:var(--fcf7b-divider-color,var(--fcf7-field-border,var(--fcf7b-border,currentColor)));border:0;height:12px;-webkit-mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x;mask:var(--fcf7b-divider-mask) center/var(--fcf7b-divider-psize,auto) 100% repeat-x}.fcf7b-divider[data-pattern][data-pattern=wavy]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-20 5q5-5 10 0T0 5t10 0 10 0 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=zigzag]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m-5 2 5 6 5-6 5 6 5-6 5 6 5-6%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=curved]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2720%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-width=%271.6%27 d=%27M-10 7A5 4 0 0 1 0 7a5 4 0 0 1 10 0 5 4 0 0 1 10 0 5 4 0 0 1 10 0%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=slashes]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-width=%271.6%27 d=%27m1 9 6-8%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=dots]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Ccircle cx=%275%27 cy=%275%27 r=%272.4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=squares]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M2.5 2.5h5v5h-5z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=rhombus]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m5 1 4 4-4 4-4-4Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=triangles]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27m1 9 5-8 5 8Z%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=arrows]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath fill=%27none%27 stroke=%27%23000%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.6%27 d=%27m1 1 5 4-5 4%27/%3E%3C/svg%3E")}.fcf7b-divider[data-pattern][data-pattern=multiple]{--fcf7b-divider-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%2710%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M0 1h10v1.5H0zM0 4.25h10v1.5H0zM0 7.5h10V9H0z%27/%3E%3C/svg%3E")}.fcf7b-toolbar .fcf7b-tb-group .fcf7b-ghost.is-set{background:var(--fcf7b-panel);color:var(--fcf7b-accent)}.fcf7b-nav{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);box-shadow:0 10px 30px rgba(16,18,27,.18),var(--fcf7b-shadow);display:flex;flex-direction:column;overflow:hidden;position:fixed;z-index:100001}.fcf7b-nav-head{align-items:center;background:var(--fcf7b-panel-2);border-bottom:1px solid var(--fcf7b-border);color:var(--fcf7b-heading);cursor:move;display:flex;font-size:12px;font-weight:600;gap:6px;padding:8px 8px 8px 10px;-webkit-user-select:none;user-select:none}.fcf7b-nav-head i{color:var(--fcf7b-accent);font-size:14px;font-weight:400}.fcf7b-nav-head button{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:15px;line-height:1;margin-left:auto;padding:2px}.fcf7b-nav-head button:hover{color:var(--fcf7b-danger)}.fcf7b-nav-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 0 10px}.fcf7b-nav-empty{color:var(--fcf7b-muted);font-size:12px;padding:18px 12px;text-align:center}.fcf7b-nav-row{align-items:center;border:1px solid transparent;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12px;gap:6px;padding:4px 8px 4px 6px;position:relative}.fcf7b-nav-row:hover{background:var(--fcf7b-panel-2)}.fcf7b-nav-row.is-selected{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-nav-row.is-step{color:var(--fcf7b-muted);cursor:default;font-style:italic}.fcf7b-nav-row.is-step:hover{background:transparent}.fcf7b-nav-row.is-drop-after:after,.fcf7b-nav-row.is-drop-before:before{background:var(--fcf7b-accent);border-radius:2px;content:"";height:2px;left:4px;position:absolute;right:4px}.fcf7b-nav-row.is-drop-before:before{top:-1px}.fcf7b-nav-row.is-drop-after:after{bottom:-1px}.fcf7b-nav-row.is-drop-inside{background:var(--fcf7b-accent-soft);border-color:var(--fcf7b-accent);border-radius:6px}.fcf7b-nav-row:hover .fcf7b-nav-acts{opacity:1}.fcf7b-nav-caret{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:16px;padding:0;place-items:center;width:16px}.fcf7b-nav-caret.is-empty{cursor:default;pointer-events:none}.fcf7b-nav-icon{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px;opacity:.9}.fcf7b-nav-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-nav-acts{display:flex;flex:0 0 auto;gap:2px;opacity:0;transition:opacity .15s ease}.fcf7b-nav-acts button{background:transparent;border:0;border-radius:4px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;line-height:1;padding:1px 2px}.fcf7b-nav-acts button:hover{color:var(--fcf7b-accent)}.fcf7b-nav-acts button.danger:hover{color:var(--fcf7b-danger)}.fcf7b-nav-resize{background:linear-gradient(135deg,transparent 0 45%,var(--fcf7b-border) 45% 55%,transparent 55%),linear-gradient(135deg,transparent 0 70%,var(--fcf7b-border) 70% 80%,transparent 80%);bottom:0;cursor:nwse-resize;height:14px;position:absolute;right:0;width:14px}.fcf7b-nav-peek .fcf7b-card{border-color:var(--fcf7b-accent)}.fcf7b-props{border-left:1px solid var(--fcf7b-border);padding:14px}.fcf7b-props input,.fcf7b-props select{outline:none!important}.fcf7b-props-head{align-items:center;border-bottom:1px solid var(--fcf7b-border);display:flex;font-size:13px;font-weight:700;gap:8px;padding-bottom:10px}.fcf7b-props-head-icon{color:var(--fcf7b-muted);font-size:15px;font-weight:400;line-height:1}.fcf7b-props-banners{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.fcf7b-props-banners>span{display:block}.fcf7b-props-empty{color:var(--fcf7b-muted);padding-top:60px;text-align:center}.fcf7b-props-tabs{border-bottom:1px solid var(--fcf7b-border);display:flex;gap:4px;margin:-4px -4px 12px;padding:0 4px}.fcf7b-ptab{align-items:center;background:none;border:0;display:flex;flex:1;flex-direction:column;gap:3px;padding:10px 8px}.fcf7b-ptab>i{font-size:15px;font-weight:400;line-height:1}.fcf7b-ptab{border-bottom:2px solid transparent;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;font-weight:600;margin-bottom:-1px}.fcf7b-ptab.active{border-bottom-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-sec{border-bottom:1px solid var(--fcf7b-border);margin:0 -14px}.fcf7b-sec-head{align-items:center;background:none;border:0;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;font-weight:700;gap:6px;padding:12px 14px;text-align:left;width:100%}.fcf7b-sec-head:hover{color:var(--fcf7b-accent)}.fcf7b-sec-arrow{color:var(--fcf7b-muted);font-size:15px;line-height:1;transition:transform .15s ease}.fcf7b-sec.open .fcf7b-sec-arrow{transform:rotate(90deg)}.fcf7b-sec-body{padding:2px 14px 14px}.fcf7b-popgroup{margin-bottom:13px}.fcf7b-popgroup-head{align-items:center;display:flex;gap:8px}.fcf7b-popgroup-head>.fcf7b-prop-label{margin:0}.fcf7b-popgroup-tools{align-items:center;display:flex;gap:6px;margin-left:auto}.fcf7b-popgroup-reset{background:none;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;font-size:14px;height:22px;padding:0;width:22px}.fcf7b-popgroup-reset:hover{color:var(--fcf7b-accent)}.fcf7b-popgroup-pop{position:relative}.fcf7b-popgroup-edit{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:13px;height:24px;width:26px}.fcf7b-popgroup-edit.is-open,.fcf7b-popgroup-edit:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-popgroup-edit.is-on{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-popgroup-panel{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;right:0;text-align:left;top:calc(100% + 8px);width:252px;z-index:60}.fcf7b-popgroup-panel>.fcf7b-prop:last-child{margin-bottom:0}.fcf7b-ctl-sep{border-top:1px solid var(--fcf7b-border);height:0;margin:3px 0 13px}.fcf7b-ctl-heading{color:var(--fcf7b-text);font-size:11px;font-weight:700;letter-spacing:.5px;margin:0 0 5px;padding-inline-start:10px;position:relative;text-transform:uppercase}.fcf7b-ctl-heading:before{background:var(--fcf7b-accent);bottom:2px;content:"";inset-inline-start:0;position:absolute;top:2px;width:3px}.fcf7b-ctabs{margin-bottom:13px}.fcf7b-ctabs-nav{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:4px;margin-bottom:12px;padding:3px}.fcf7b-ctab{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:1 1 0;font-size:12px;font-weight:600;padding:6px 12px}.fcf7b-ctab.active,.fcf7b-ctab:hover{color:var(--fcf7b-text)}.fcf7b-ctab.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow)}.fcf7b-choose{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px}.fcf7b-choose-btn{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;height:26px;justify-content:center;line-height:1;min-width:28px;padding:0 8px}.fcf7b-choose-btn i{font-size:14px;font-weight:400}.fcf7b-choose-btn:hover{color:var(--fcf7b-text)}.fcf7b-choose-btn.active{background:var(--fcf7b-panel);box-shadow:var(--fcf7b-shadow);color:var(--fcf7b-accent)}.fcf7b-choose-btn+.fcf7b-choose-btn{position:relative}.fcf7b-choose-btn+.fcf7b-choose-btn:before{background:var(--fcf7b-border);bottom:5px;content:"";left:-2px;position:absolute;top:5px;width:1px}.fcf7b-choose-btn.active+.fcf7b-choose-btn:before,.fcf7b-choose-btn.active:before{display:none}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose{display:flex}.fcf7b-prop:not(.fcf7b-prop--inline)>.fcf7b-choose>.fcf7b-choose-btn{flex:1 1 0;min-width:0}.fcf7b-ctxmenu-backdrop{inset:0;position:fixed;z-index:100002}.fcf7b-ctxmenu{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:2px;min-width:212px;padding:4px;position:fixed}.fcf7b-ctxmenu-title{color:var(--fcf7b-muted);font-size:11px;font-weight:600;letter-spacing:.02em;padding:6px 10px 4px;text-transform:uppercase}.fcf7b-ctxmenu button{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:8px;padding:7px 10px;text-align:left;width:100%}.fcf7b-ctxmenu button i{color:var(--fcf7b-muted);font-size:14px}.fcf7b-ctxmenu button:hover{background:var(--fcf7b-panel-2)}.fcf7b-ctxmenu button:disabled{cursor:default;opacity:.4}.fcf7b-ctxmenu button:disabled:hover{background:transparent}.fcf7b-ctxmenu button.danger{color:var(--fcf7b-danger)}.fcf7b-ctxmenu button.danger i{color:inherit}.fcf7b-ctxmenu-key{color:var(--fcf7b-muted);font-family:Segoe UI Symbol,SF Pro Text,-apple-system,system-ui,sans-serif;font-size:11.5px;margin-left:auto;padding-left:16px;white-space:nowrap}.fcf7b-ctxmenu button.danger .fcf7b-ctxmenu-key{color:var(--fcf7b-danger);opacity:.7}.fcf7b-ctxmenu-sep{background:var(--fcf7b-border);height:1px;margin:3px 4px}.fcf7b-prop{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.fcf7b-prop-label{align-items:center;color:var(--fcf7b-text);display:flex;font-size:11.5px;font-weight:600}.fcf7b-prop-label i{font-weight:400}.fcf7b-prop-hint{color:var(--fcf7b-muted);font-size:10.5px;font-weight:400}.fcf7b-prop-desc{color:var(--fcf7b-muted);font-size:11px;line-height:1.4;margin:0 0 14px}.fcf7b-prop .fcf7b-prop-desc{margin-bottom:0}.fcf7b-prop input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop select,.fcf7b-prop textarea{background:var(--fcf7b-panel-2);border-color:var(--fcf7b-border)!important;border-radius:7px;border-style:solid;border-width:1px;color:var(--fcf7b-text)!important;font-size:12.5px;padding:7px 9px;width:100%}.fcf7b-prop textarea.fcf7b-code-input{font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;line-height:1.5;overflow-x:auto;resize:vertical;tab-size:2;white-space:pre}.fcf7b-prop-check{align-items:center;cursor:pointer;flex-direction:row;gap:8px}.fcf7b-prop-check input{height:16px;width:16px}.fcf7b-prop .fcf7b-dim-box{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;display:grid;grid-template-columns:repeat(4,1fr) 34px;overflow:hidden}.fcf7b-prop .fcf7b-dim-box input{background:transparent;border:0;border-color:var(--fcf7b-border)!important;border-radius:0!important;border-style:solid;border-width:0 1px 0 0!important;box-shadow:none!important;color:var(--fcf7b-text);font-size:12px;min-height:auto;min-width:0;padding:8px 2px;text-align:center;width:100%}.fcf7b-prop .fcf7b-dim-link{align-items:center;background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:14px;justify-content:center}.fcf7b-prop .fcf7b-dim-link.is-linked{color:var(--fcf7b-accent)}.fcf7b-prop .fcf7b-dim-custom{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0;width:100%}.fcf7b-prop .fcf7b-dim-labels{display:grid;grid-template-columns:repeat(4,1fr) 34px;margin-top:3px}.fcf7b-prop .fcf7b-dim-labels span{color:var(--fcf7b-muted);font-size:9px;letter-spacing:.3px;text-align:center;text-transform:uppercase}.fcf7b-prop .fcf7b-border,.fcf7b-prop .fcf7b-border .fcf7b-ctl-row{margin-bottom:13px}.fcf7b-opts{font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}.fcf7b-prop .CodeMirror{background:#1e1e1e;border:1px solid #000;border-radius:7px;color:#d4d4d4;font-size:12px;height:260px;line-height:1.55;max-width:100%}.fcf7b-prop .CodeMirror-gutters{background:#1a1a1a;border-right:1px solid #2b2b2b}.fcf7b-prop .CodeMirror-linenumber{color:#6a6a6a}.fcf7b-prop .CodeMirror-cursor{border-left-color:#d4d4d4}.fcf7b-prop .CodeMirror-activeline-background{background:#262626}.fcf7b-prop .CodeMirror-focused .CodeMirror-selected,.fcf7b-prop .CodeMirror-selected{background:#264f78}.fcf7b-prop .CodeMirror-matchingtag{background:rgba(86,156,214,.22)}.fcf7b-prop .cm-tag{color:#569cd6}.fcf7b-prop .cm-attribute{color:#9cdcfe}.fcf7b-prop .cm-string{color:#ce9178}.fcf7b-prop .cm-bracket,.fcf7b-prop .cm-punctuation{color:gray}.fcf7b-prop .cm-comment{color:#6a9955}.fcf7b-prop .cm-atom,.fcf7b-prop .cm-keyword{color:#c586c0}.fcf7b-prop .cm-number{color:#b5cea8}.fcf7b-prop .cm-error{color:#f48771}.fcf7b-prop .CodeMirror-lint-markers{background:#1a1a1a}.fcf7b-date-list{flex-direction:column}.fcf7b-date-list,.fcf7b-date-list-add{display:flex;gap:6px}.fcf7b-date-list-add input[type=date]{flex:1;min-width:0}.fcf7b-date-list-add input[type=number]{flex:0 0 auto;width:70px!important}.fcf7b-date-list-add input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-add input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-add button{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;cursor:pointer;flex-shrink:0;width:26px}.fcf7b-date-list-add button:disabled{cursor:default;opacity:.4}.fcf7b-date-list-chips{display:flex;flex-wrap:wrap;gap:5px}.fcf7b-date-list-chip{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:20px;display:inline-flex;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;gap:4px;padding:2px 4px 2px 8px}.fcf7b-date-list-chip input[type=number]{background:transparent;border:0;color:inherit;font:inherit;margin:0!important;min-height:30px;padding:0!important;text-align:center;width:70px!important}.fcf7b-date-list-chip input[type=number]::-webkit-inner-spin-button,.fcf7b-date-list-chip input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-date-list-chip button{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:13px;height:16px;justify-content:center;line-height:1;width:16px}.fcf7b-date-list-chip button:hover{background:var(--fcf7b-accent-soft);color:var(--fcf7b-accent)}.fcf7b-price-map-empty{color:var(--fcf7b-muted);font-size:12px;margin:0}.fcf7b-price-map{display:flex;flex-direction:column;gap:6px}.fcf7b-price-map-row{align-items:center;display:flex;gap:6px}.fcf7b-price-map-label{flex:1;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-price-map input[type=number]{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:inherit;flex:0 0 auto;width:80px!important}.fcf7b-price-map input[type=number]::-webkit-inner-spin-button,.fcf7b-price-map input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl{display:flex;flex-direction:column;gap:6px}.fcf7b-steps-ctl-row{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;display:flex;gap:6px;padding:4px;transition:border-color .12s}.fcf7b-steps-ctl-row.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-handle{color:var(--fcf7b-muted);cursor:grab;display:flex;flex:0 0 auto;font-size:14px;opacity:.5}.fcf7b-steps-ctl-handle:hover{opacity:1}.fcf7b-steps-ctl-handle:active{cursor:grabbing}.fcf7b-steps-ctl-index{align-items:center;background:var(--fcf7b-border);border-radius:50%;color:var(--fcf7b-muted);display:flex;flex:0 0 auto;font-size:10px;font-weight:600;height:18px;justify-content:center;margin-top:1px;width:18px}.fcf7b-steps-ctl-label{background:transparent!important;border:0!important;flex:1 1 auto;font-size:12.5px;min-width:0;padding:6px 4px!important}.fcf7b-steps-ctl-price{-moz-appearance:textfield;flex:0 0 auto;margin:0!important;padding:0!important;text-align:center;width:35px!important}.fcf7b-steps-ctl-price::-webkit-inner-spin-button,.fcf7b-steps-ctl-price::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.fcf7b-steps-ctl-remove{background:transparent;border:0;border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;flex:0 0 auto;font-size:13px;padding:4px 6px}.fcf7b-steps-ctl-remove:hover:not(:disabled){background:var(--fcf7b-danger);color:#fff}.fcf7b-steps-ctl-remove:disabled{cursor:not-allowed;opacity:.35}.fcf7b-steps-ctl--time-price .fcf7b-steps-ctl-row{gap:0}.fcf7b-steps-ctl--time-price input[type=time]::-webkit-calendar-picker-indicator{margin-left:0}.fcf7b-steps-ctl-drop-end{border-radius:3px;height:6px}.fcf7b-steps-ctl-drop-end.is-drop-before{border-top:3px solid var(--fcf7b-accent)}.fcf7b-steps-ctl-add{align-items:center;align-self:flex-start;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;margin-top:2px;padding:7px 10px}.fcf7b-steps-ctl-add:hover{background:var(--fcf7b-accent-soft);border-style:solid}.fcf7b-width-btns{display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.fcf7b-width-btn{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;font-size:11.5px;padding:7px 6px}.fcf7b-width-btn.active{background:var(--fcf7b-accent);border-color:var(--fcf7b-accent);color:#fff}.fcf7b-width .fcf7b-slider{margin-bottom:0;margin-top:12px}.fcf7b-prop--inline{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;justify-content:space-between}.fcf7b-prop--inline>.fcf7b-prop-desc{flex:0 0 100%;margin-top:-2px}.fcf7b-prop--inline>.fcf7b-prop-label{align-items:center;display:flex;flex:0 0 auto;margin:0}.fcf7b-prop--inline>.fcf7b-select,.fcf7b-prop--inline>input:not([type=checkbox]):not([type=radio]):not([type=range]),.fcf7b-prop--inline>select{flex:1 1 auto;line-height:1;max-width:130px;min-height:auto;padding:9px}.fcf7b-prop--inline>.fcf7b-select{padding:0;width:115px}.fcf7b-prop--inline>.fcf7b-bxsh,.fcf7b-prop--inline>.fcf7b-color,.fcf7b-prop--inline>.fcf7b-typo{flex:0 0 auto}.fcf7b-ctl-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.fcf7b-ctl-head .fcf7b-prop-label{margin:0}.fcf7b-ctl-head .fcf7b-ctl-unit{background:transparent;border:none;color:var(--fcf7b-text);cursor:pointer;flex:0 0 auto;font-size:11px;line-height:1;min-height:auto;min-width:auto;padding:0;text-align:center;width:auto}.fcf7b-ctl-head .fcf7b-ctl-unit.is-static{background:transparent;border-color:transparent;color:var(--fcf7b-muted);cursor:default;padding-right:0}.fcf7b-unit{flex:0 0 auto;position:relative}.fcf7b-unit-trigger{align-items:center;display:inline-flex;gap:3px;justify-content:center;min-width:42px}.fcf7b-unit-trigger i{font-size:13px;line-height:1}.fcf7b-unit-trigger.is-custom{color:var(--fcf7b-accent)}.fcf7b-unit-caret{color:var(--fcf7b-muted);font-size:14px!important;transition:transform .15s}.fcf7b-unit-trigger.is-open .fcf7b-unit-caret{transform:rotate(180deg)}.fcf7b-unit-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);min-width:54px;padding:4px;position:absolute;right:0;top:calc(100% + 4px);z-index:20}.fcf7b-unit-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.fcf7b-unit-list li{margin:0}.fcf7b-unit-opt{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--fcf7b-muted);cursor:pointer;display:flex;font-size:11px;justify-content:center;line-height:1;padding:6px 8px;width:100%}.fcf7b-unit-opt i{font-size:13px}.fcf7b-unit-opt:hover{background:var(--fcf7b-panel-2);color:var(--fcf7b-text)}.fcf7b-unit-opt.is-active{color:var(--fcf7b-accent)}.fcf7b-select{position:relative;width:100%}.fcf7b-select-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:12.5px;gap:6px;justify-content:space-between;line-height:1.2;min-height:auto;padding:7px 9px;text-align:left;width:100%}.fcf7b-select-cur{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:15px;transition:transform .15s}.fcf7b-select-trigger.is-open .fcf7b-select-caret{transform:rotate(180deg)}.fcf7b-select-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.35);left:0;padding:4px;position:absolute;right:0;top:calc(100% + 4px);z-index:30}.fcf7b-select-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.fcf7b-select-list li{margin:0}.fcf7b-select-opt{background:transparent;border:0;border-radius:5px;color:var(--fcf7b-text);cursor:pointer;display:block;font-size:12px;line-height:1;overflow:hidden;padding:7px 9px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.fcf7b-select-opt:hover{background:var(--fcf7b-panel-2)}.fcf7b-select-opt.is-active{color:var(--fcf7b-accent);font-weight:600}.fcf7b-select-list.is-multi .fcf7b-select-opt{align-items:center;display:flex;gap:6px}.fcf7b-select-check{flex:0 0 auto;font-size:14px}.fcf7b-select-optlabel{min-width:0;text-overflow:ellipsis;white-space:nowrap}.fcf7b-select-hasremove{align-items:center;display:flex;gap:2px}.fcf7b-select-hasremove .fcf7b-select-opt{flex:1 1 auto}.fcf7b-select-hasremove.is-drop{box-shadow:inset 0 2px 0 var(--fcf7b-accent)}.fcf7b-select-grip{color:var(--fcf7b-muted);cursor:grab;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:18px}.fcf7b-select-grip:active{cursor:grabbing}.fcf7b-select-grip:hover{color:var(--fcf7b-accent)}.fcf7b-select-remove{background:transparent;border:0;color:var(--fcf7b-muted);cursor:pointer;display:grid;flex:0 0 auto;font-size:14px;height:24px;place-items:center;width:24px}.fcf7b-select-remove:hover{color:var(--fcf7b-danger)}.fcf7b-select-create{border-top:1px solid var(--fcf7b-border);padding-top:4px}.fcf7b-select-createinput{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:5px;box-shadow:unset!important;color:var(--fcf7b-text);font-size:12px;line-height:1.2;margin:0;min-height:auto!important;padding:7px 9px;width:100%}.fcf7b-select-createinput::placeholder{color:var(--fcf7b-muted)}.fcf7b-select-createinput:focus{outline:none}.fcf7b-switch{align-items:center;background:var(--fcf7b-border);border:0;border-radius:999px;cursor:pointer;display:inline-flex;flex:0 0 auto;height:22px;padding:0;position:relative;transition:background .15s;width:40px}.fcf7b-switch.is-on{background:var(--fcf7b-accent)}.fcf7b-switch.has-label{min-width:48px;padding:0 8px 0 24px;width:auto}.fcf7b-switch.has-label.is-on{padding:0 24px 0 8px}.fcf7b-switch-label{color:var(--fcf7b-text);font-size:10px;font-weight:600;line-height:1;white-space:nowrap}.fcf7b-switch.is-on .fcf7b-switch-label{color:#fff}.fcf7b-switch-knob{background:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.3);height:18px;left:2px;position:absolute;top:2px;transition:left .15s;width:18px}.fcf7b-switch.is-on .fcf7b-switch-knob{left:calc(100% - 20px)}.fcf7b-bxsh{position:relative}.fcf7b-bxsh-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;gap:8px;padding:5px 8px}.fcf7b-bxsh-trigger i{color:var(--fcf7b-muted);font-size:13px}.fcf7b-bxsh-trigger.is-set{border-color:var(--fcf7b-accent)}.fcf7b-bxsh-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-bxsh-pop .fcf7b-color-pop{width:216px}.fcf7b-slider{gap:0}.fcf7b-slider-row{align-items:center;display:flex;gap:10px}.fcf7b-slider-num{flex:0 0 65px;text-align:center}.fcf7b-slider-custom,.fcf7b-slider-num{line-height:1;min-height:auto!important}.fcf7b-slider-custom{flex:1 1 auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;min-width:0}.fcf7b-slider-range{appearance:none;background:var(--fcf7b-border);border-radius:3px;cursor:pointer;flex:1 1 auto;height:4px;outline:none}.fcf7b-slider-range::-webkit-slider-thumb{appearance:none;background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;box-shadow:0 0 0 1px var(--fcf7b-border);cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-thumb{background:var(--fcf7b-accent);border:2px solid var(--fcf7b-panel);border-radius:50%;cursor:pointer;height:15px;width:15px}.fcf7b-slider-range::-moz-range-track{background:var(--fcf7b-border);border-radius:3px;height:4px}.fcf7b-ctl-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.fcf7b-ctl-row>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);flex:0 0 auto;font-size:11.5px;font-weight:600}.fcf7b-ctl-row>.fcf7b-select,.fcf7b-ctl-row>input,.fcf7b-ctl-row>select{flex:0 0 160px;line-height:1;max-width:160px;min-height:auto;min-width:0;padding:9px}.fcf7b-ctl-row>.fcf7b-select{padding:0}.fcf7b-cond-ctl .fcf7b-cond-body{border:1px dashed var(--fcf7b-border);border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:10px}.fcf7b-cond-ctl .fcf7b-cond-hint{color:var(--fcf7b-muted);font-size:11px;margin:0}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row{border:1px dashed var(--fcf7b-border);border-radius:8px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-row.is-open{border-style:solid}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head{align-items:center;cursor:pointer;display:flex;gap:6px;padding:8px 8px 8px 6px;-webkit-user-select:none;user-select:none}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-head:hover{background:var(--fcf7b-panel-2)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-caret{color:var(--fcf7b-muted);flex:0 0 auto;font-size:14px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-title{color:var(--fcf7b-text);flex:1 1 auto;font-size:12px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--fcf7b-muted);cursor:pointer;display:flex;flex:0 0 auto;height:20px;justify-content:center;padding:0;width:20px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-remove:hover{background:var(--fcf7b-border);color:var(--fcf7b-text)}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-body{border-top:1px solid var(--fcf7b-border);display:flex;flex-direction:column;gap:8px;padding:4px 10px 10px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack{display:flex;flex-direction:column;gap:4px}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack>.fcf7b-ctl-rowlabel{color:var(--fcf7b-text);font-size:11.5px;font-weight:600}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-stack textarea{resize:vertical}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add{align-items:center;background:transparent;border:1px dashed var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-accent);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:7px 10px;width:max-content}.fcf7b-redirect-cond-ctl .fcf7b-redirect-cond-add:hover{background:var(--fcf7b-panel-2)}.fcf7b-typo{position:relative}.fcf7b-typo .fcf7b-ctl-row>.fcf7b-select,.fcf7b-typo .fcf7b-ctl-row>input,.fcf7b-typo .fcf7b-ctl-row>select{flex:0 0 130px;max-width:130px}.fcf7b-typo-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-muted);cursor:pointer;display:inline-flex;font-size:13px;gap:8px;padding:8px}.fcf7b-typo-trigger.is-open,.fcf7b-typo-trigger.is-set{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-typo-aa{color:var(--fcf7b-text);font-size:14px;font-weight:700;line-height:1}.fcf7b-typo-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:252px;z-index:50}.fcf7b-typo-pop .fcf7b-slider{margin-bottom:0}.fcf7b-typo-reset{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 10px}.fcf7b-typo-reset:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-color{position:relative}.fcf7b-color-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:8px;padding:5px 8px}.fcf7b-color-trigger.is-open{border-color:var(--fcf7b-accent)}.fcf7b-color-swatch{border:1px solid var(--fcf7b-border);border-radius:5px;flex:0 0 auto;height:22px;width:22px}.fcf7b-color-swatch.is-empty{background-image:linear-gradient(45deg,#c4c4c4 25%,transparent 0),linear-gradient(-45deg,#c4c4c4 25%,transparent 0),linear-gradient(45deg,transparent 75%,#c4c4c4 0),linear-gradient(-45deg,transparent 75%,#c4c4c4 0);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.fcf7b-color-value{font-size:11px;letter-spacing:.3px;min-width:54px;text-align:left;text-transform:uppercase}.fcf7b-color-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:236px;z-index:50}.fcf7b-pop-head{align-items:center;color:var(--fcf7b-text);display:flex;font-size:12px;font-weight:600;justify-content:space-between;margin-bottom:10px}.fcf7b-pop-tools{display:flex;gap:4px}.fcf7b-pop-tools button{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;display:flex;display:grid;font-size:13px;height:24px;justify-content:center;width:24px}.fcf7b-pop-tools button:hover{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-cp-area{border-radius:7px;cursor:crosshair;height:150px;overflow:hidden;position:relative;touch-action:none}.fcf7b-cp-area-black,.fcf7b-cp-area-white{inset:0;position:absolute}.fcf7b-cp-area-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.fcf7b-cp-area-black{background:linear-gradient(0deg,#000,transparent)}.fcf7b-cp-area-handle{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.45);height:14px;pointer-events:none;position:absolute;transform:translate(-50%,-50%);width:14px}.fcf7b-cp-slider{border-radius:6px;cursor:pointer;height:12px;margin-top:12px;position:relative;touch-action:none}.fcf7b-cp-hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.fcf7b-cp-alpha{background-image:linear-gradient(to right,transparent,var(--cp-color,#000)),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%);background-position:0 0,0 0,5px 5px;background-size:100% 100%,10px 10px,10px 10px}.fcf7b-cp-slider-handle{background:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);height:14px;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:14px}.fcf7b-cp-foot{align-items:center;display:flex;gap:6px;margin-top:12px}.fcf7b-cp-hex{flex:1;min-width:0;text-transform:uppercase}.fcf7b-cp-fmt{color:var(--fcf7b-muted);font-size:10px;font-weight:700;letter-spacing:.5px}.fcf7b-cp-none{background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:6px;color:var(--fcf7b-muted);cursor:pointer;font-size:11px;padding:5px 8px}.fcf7b-cp-none:hover{border-color:var(--fcf7b-danger);color:var(--fcf7b-danger)}.fcf7b-iconpick{position:relative}.fcf7b-iconpick-trigger{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:7px;color:var(--fcf7b-text);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;justify-content:center;min-height:30px;min-width:34px;padding:4px 8px}.fcf7b-iconpick-trigger i{font-size:18px}.fcf7b-iconpick-trigger.is-open,.fcf7b-iconpick-trigger.is-set,.fcf7b-iconpick-trigger:hover{border-color:var(--fcf7b-accent)}.fcf7b-iconpick-placeholder{color:var(--fcf7b-muted)}.fcf7b-iconpick-pop{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:10px;box-shadow:var(--fcf7b-shadow);padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:260px;z-index:50}.fcf7b-iconpick-gridwrap{position:relative}.fcf7b-iconpick-grid{align-content:start;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:var(--fcf7b-radius);display:grid;gap:4px;grid-template-columns:repeat(6,1fr);height:184px;overflow-y:auto;padding:2px}.fcf7b-iconpick-grid.is-loading{opacity:.35;pointer-events:none}.fcf7b-iconpick-loader{gap:8px;inset:0;position:absolute}.fcf7b-iconpick-loader,.fcf7b-iconpick-more{align-items:center;color:var(--fcf7b-muted);display:flex;font-size:12px;justify-content:center}.fcf7b-iconpick-more{gap:6px;grid-column:1/-1;padding:10px 0}.fcf7b-iconpick-cell{align-items:center;aspect-ratio:1;background:none;border:1px solid transparent;border-radius:8px;color:var(--fcf7b-text);cursor:pointer;display:flex;font-size:18px;justify-content:center}.fcf7b-iconpick-cell.active,.fcf7b-iconpick-cell:hover{background:var(--fcf7b-accent-soft)}.fcf7b-iconpick-cell.active{border-color:var(--fcf7b-accent);color:var(--fcf7b-accent)}.fcf7b-iconpick-search{background:var(--fcf7b-panel);border:1px solid var(--fcf7b-border);border-radius:8px;box-sizing:border-box;color:var(--fcf7b-text);font-size:13px;margin-bottom:6px;padding:7px 10px;width:100%}.fcf7b-iconpick-search:focus{border-color:var(--fcf7b-accent);outline:none}.fcf7b-iconpick-empty{color:var(--fcf7b-muted);font-size:12px;grid-column:1/-1;padding:20px 0;text-align:center}.fcf7b-iconpick-selected{align-items:center;background:var(--fcf7b-panel-2);border:1px solid var(--fcf7b-border);border-radius:8px;display:flex;gap:8px;margin-top:8px;min-height:34px;padding:8px 10px}.fcf7b-iconpick-selected i{flex:0 0 auto;font-size:18px}.fcf7b-iconpick-selected code{color:var(--fcf7b-text);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcf7b-code{background:var(--fcf7b-panel);height:640px;overflow-y:auto;padding:20px}.fcf7b-code-note{color:var(--fcf7b-muted);margin-bottom:12px;max-width:640px}.fcf7b-code pre.fcf7b-code-pre{background:#1e1e1e;border:1px solid #000;border-radius:10px;color:#d4d4d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;overflow-x:auto;padding:16px;white-space:pre-wrap;word-break:break-word}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-tag{color:#569cd6}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-attr{color:#9cdcfe}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-str{color:#ce9178}.fcf7b-code pre.fcf7b-code-pre .fcf7b-tok-punct{color:gray}@media(max-width:1200px){.fcf7b-columns{grid-template-columns:200px 1fr 250px}}
  • compactform/trunk/assets/editor/index.js

    r3719086 r3721164  
    1 (()=>{"use strict";const e=window.wp.element,t=window.wp.i18n,n=window.ReactJSXRuntime;function a({className:t="",triggerClassName:a="",popClassName:s="",backdropClassName:l="",trigger:r,children:c,onOpenChange:i,title:o}){const[d,f]=(0,e.useState)(!1),p=(0,e.useRef)(null),m=(0,e.useRef)(i);m.current=i;const u=e=>{f(e),m.current&&m.current(e)};return(0,e.useEffect)(()=>{if(!d)return;const e=e=>{p.current&&!p.current.contains(e.target)&&u(!1)},t=e=>{"Escape"===e.key&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[d]),(0,n.jsxs)("div",{className:t,ref:p,children:[(0,n.jsx)("button",{type:"button",title:o,"aria-expanded":d,className:`${a}${d?" is-open":""}`.trim(),onClick:()=>u(!d),children:"function"==typeof r?r(d):r}),d&&l&&(0,n.jsx)("div",{className:l,onMouseDown:()=>u(!1)}),d&&(0,n.jsx)("div",{className:s,children:"function"==typeof c?c({close:()=>u(!1)}):c})]})}const s=(e,t,n)=>Math.min(n,Math.max(t,e)),l=e=>s(Math.round(e),0,255).toString(16).padStart(2,"0");function r(e){let t=String(e||"").replace("#","").trim();return/^[0-9a-f]{3}$/i.test(t)&&(t=t.split("").map(e=>e+e).join("")),/^[0-9a-f]{6}$/i.test(t)&&(t+="ff"),/^[0-9a-f]{8}$/i.test(t)?{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16),a:parseInt(t.slice(6,8),16)/255}:null}function c(e,t,n,a){let s="#"+l(e)+l(t)+l(n);return null!=a&&a<1&&(s+=l(255*a)),s}function i(e,t,n){e/=255,t/=255,n/=255;const a=Math.max(e,t,n),s=a-Math.min(e,t,n);let l=0;return s&&(l=a===e?(t-n)/s%6:a===t?(n-e)/s+2:(e-t)/s+4,l*=60,l<0&&(l+=360)),{h:l,s:0===a?0:s/a,v:a}}function o(e,t,n){const a=n*t,s=a*(1-Math.abs(e/60%2-1)),l=n-a;let r=0,c=0,i=0;return e<60?(r=a,c=s):e<120?(r=s,c=a):e<180?(c=a,i=s):e<240?(c=s,i=a):e<300?(r=s,i=a):(r=a,i=s),{r:255*(r+l),g:255*(c+l),b:255*(i+l)}}function d({ctrl:l,field:d,value:f="",onChange:p,onGestureStart:m,onGestureEnd:u}){const[h,b]=(0,e.useState)({h:0,s:0,v:0}),[g,v]=(0,e.useState)(1),[x,j]=(0,e.useState)(f),y=(0,e.useRef)(null),_=(0,e.useRef)(!1),N=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(f)?f:"";(0,e.useEffect)(()=>{_.current||j(f||"")},[f]);const w=e=>{p(e)},k=(e,t)=>{const{r:n,g:a,b:s}=o(e.h,e.s,e.v);w(c(n,a,s,t))},C=e=>{const t=r(e.startsWith("#")?e:"#"+e);t&&(b(i(t.r,t.g,t.b)),v(t.a),w(c(t.r,t.g,t.b,t.a)))},S=(e,t)=>n=>{n.preventDefault();const a=e.getBoundingClientRect();m&&m();const l=e=>{t(s((e.clientX-a.left)/a.width,0,1),s((e.clientY-a.top)/a.height,0,1))};l(n);const r=()=>{document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",r),u&&u()};document.addEventListener("pointermove",l),document.addEventListener("pointerup",r)},{r:E,g:I,b:$}=o(h.h,h.s,h.v),G=c(E,I,$);return(0,n.jsxs)(a,{className:"fcf7b-color",triggerClassName:"fcf7b-color-trigger",popClassName:"fcf7b-color-pop",onOpenChange:e=>{if(!e)return;const t=r(N||"#000000");t&&(b(i(t.r,t.g,t.b)),v(t.a))},trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-color-swatch"+(N?"":" is-empty"),style:N?{background:N}:null}),(0,n.jsx)("span",{className:"fcf7b-color-value",children:N?N.toUpperCase():(0,t.__)("None","compactform")})]}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Color Picker","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-pop-tools",children:[(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>{w(""),b({h:0,s:0,v:0}),v(1)},children:(0,n.jsx)("i",{className:"ri-refresh-line"})}),window.EyeDropper?(0,n.jsx)("button",{type:"button",title:(0,t.__)("Pick from screen","compactform"),onClick:()=>{if(window.EyeDropper)try{(new window.EyeDropper).open().then(e=>e&&C(e.sRGBHex)).catch(()=>{})}catch(e){}},children:(0,n.jsx)("i",{className:"ri-sip-line"})}):null]})]}),(0,n.jsxs)("div",{className:"fcf7b-cp-area",ref:y,style:{background:`hsl(${h.h} 100% 50%)`},onPointerDown:e=>S(y.current,(e,t)=>((e,t)=>{const n={...h,s:e,v:t};b(n),k(n,g)})(e,1-t))(e),children:[(0,n.jsx)("div",{className:"fcf7b-cp-area-white"}),(0,n.jsx)("div",{className:"fcf7b-cp-area-black"}),(0,n.jsx)("span",{className:"fcf7b-cp-area-handle",style:{left:100*h.s+"%",top:100*(1-h.v)+"%"}})]}),(0,n.jsx)("div",{className:"fcf7b-cp-slider fcf7b-cp-hue",onPointerDown:e=>S(e.currentTarget,e=>(e=>{const t={...h,h:e};b(t),k(t,g)})(360*e))(e),children:(0,n.jsx)("span",{className:"fcf7b-cp-slider-handle",style:{left:h.h/360*100+"%"}})}),(0,n.jsx)("div",{className:"fcf7b-cp-slider fcf7b-cp-alpha",style:{"--cp-color":G},onPointerDown:e=>S(e.currentTarget,e=>{return v(t=e),void k(h,t);var t})(e),children:(0,n.jsx)("span",{className:"fcf7b-cp-slider-handle",style:{left:100*g+"%"}})}),(0,n.jsxs)("div",{className:"fcf7b-cp-foot",children:[(0,n.jsx)("input",{className:"fcf7b-cp-hex",value:x,placeholder:"#rrggbb",onFocus:()=>{_.current=!0},onBlur:()=>{_.current=!1,j(f||"")},onChange:e=>{j(e.target.value),C(e.target.value)}}),(0,n.jsx)("span",{className:"fcf7b-cp-fmt",children:"HEX"}),(0,n.jsx)("button",{type:"button",className:"fcf7b-cp-none",onClick:()=>w(""),children:(0,t.__)("Clear","compactform")})]})]})}const f="fcf7b-canvas-bg",p=e=>"string"==typeof e&&/^#[0-9a-f]{3}([0-9a-f]{3}([0-9a-f]{2})?)?$/i.test(e),m=()=>{try{const e=window.localStorage.getItem(f)||"";return p(e)?e:""}catch(e){return""}},u=[["",(0,t.__)("Theme default","compactform")],["#ffffff",(0,t.__)("White","compactform")],["#f4f5f7",(0,t.__)("Light grey","compactform")],["#e5e7eb",(0,t.__)("Grey","compactform")],["#1e2127",(0,t.__)("Dark","compactform")],["#000000",(0,t.__)("Black","compactform")]];function h({value:a,onChange:s,disabled:l=!1}){const[r,c]=(0,e.useState)(!1),i=(0,e.useRef)(null);return(0,e.useEffect)(()=>{if(!r)return;const e=e=>{i.current&&!i.current.contains(e.target)&&c(!1)},t=e=>{"Escape"===e.key&&(i.current&&i.current.querySelector(".fcf7b-color-pop")||c(!1))};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[r]),(0,n.jsxs)("span",{className:"fcf7b-canvasbg",ref:i,children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost"+(r?" is-set":""),title:(0,t.__)("Canvas background","compactform"),disabled:l,onClick:()=>c(!r),children:(0,n.jsx)("i",{className:"ri-paint-fill"})}),r&&(0,n.jsxs)("div",{className:"fcf7b-canvasbg-pop",children:[(0,n.jsx)("div",{className:"fcf7b-canvasbg-swatches",children:u.map(([e,t])=>(0,n.jsx)("button",{type:"button",title:t,className:`fcf7b-canvasbg-sw${a===e?" is-active":""}${e?"":" is-default"}`,style:e?{background:e}:null,onClick:()=>{s(e),c(!1)}},e||"default"))}),(0,n.jsxs)("div",{className:"fcf7b-canvasbg-custom",children:[(0,n.jsx)("span",{children:(0,t.__)("Custom","compactform")}),(0,n.jsx)(d,{value:a,onChange:s})]})]})]})}const b=window.FCF7Builder||{fields:[],categories:{},tabs:{},ajaxUrl:"",nonce:"",formId:0},g=b.fields||[],v={};g.forEach(e=>{v[e.type]=e});const x=b.instanceMarkup||{},j={value:null},y={value:{}};function _(e,t){const n=t&&t.length>1&&t.includes(e);j.value={kind:"move",id:e,ids:n?t.slice():[e]}}function N(){const e=j.value;return e&&"move"===e.kind?e.ids&&e.ids.length?e.ids:[e.id]:[]}const w={value:null},k=new Set;let C=null;function S(e,t,n){const a=w.value,s=null==e?null:{scope:e,index:t};C=s&&n||null,(s||a)&&(s&&a&&a.scope===s.scope&&a.index===s.index||(w.value=s,k.forEach(e=>e())))}const E=()=>S(null);function I(){const e=C;return E(),!!e&&(e(),!0)}function $(e,t,n="y",a=!1){const s=t.getBoundingClientRect(),l="x"===n?e.clientX-s.left>s.width/2:e.clientY-s.top>s.height/2;return(a?!l:l)?1:0}function G(e,t,n,a="y",s=!1){const l=Array.from(t.querySelectorAll(n));for(let t=0;t<l.length;t++)if(!$(e,l[t],a,s))return t;return l.length}function P(t){const[,n]=(0,e.useState)(0);(0,e.useEffect)(()=>{const e=()=>n(e=>e+1);return k.add(e),()=>{k.delete(e)}},[]);const a=w.value;return a&&a.scope===t?a.index:-1}"undefined"!=typeof document&&(document.addEventListener("dragend",()=>{j.value=null,E()}),document.addEventListener("drop",E));const D={value:null};function F(e,t){const n=new Set(t),a=new Map((e||[]).map(e=>[e.id,e]));return(t||[]).filter(e=>{let t=a.get(e);t=t&&t.parentId?a.get(t.parentId):null;const s=new Set;for(;t&&!s.has(t.id);){if(n.has(t.id))return!1;s.add(t.id),t=t.parentId?a.get(t.parentId):null}return!0})}function O(e,t){const n=F(e,Array.isArray(t)?t:[t]).slice().sort((t,n)=>e.findIndex(e=>e.id===t)-e.findIndex(e=>e.id===n)),a=[],s=[];return n.forEach(t=>{const n=function(e,t){const n=(e||[]).find(e=>e.id===t);if(!n)return[];const a=[],s=new Set,l=t=>{s.has(t.id)||(s.add(t.id),a.push(JSON.parse(JSON.stringify(t))),e.forEach(e=>{e.parentId===t.id&&l(e)}))};return l(n),a}(e,t);n.length&&(s.push(t),a.push(...n))}),!!a.length&&(D.value={fields:a,roots:s},!0)}const A=e=>!0===e.style_transfer||!1!==e.style_transfer&&(!!e.selector||!!e.selectors||!!e.popover_toggle),M=e=>((v[e]||{}).controls||[]).filter(A).map(e=>e.key);function T(e){const t=D.value&&D.value.fields[0];if(!t||!e)return{};const n=new Set(M(e.type)),a={};return M(t.type).forEach(e=>{e in t&&n.has(e)&&(a[e]=t[e])}),JSON.parse(JSON.stringify(a))}const L=b.fontFamilies||{},R=b.borderStyles||{},B=["desktop","tablet","mobile"],z={tablet:1024,mobile:767};function U(e,t={}){if("desktop"===e)return null;const n=parseInt(t[e],10);return n>=320&&n<=2560?n:z[e]}const H={desktop:"ri-computer-line",tablet:"ri-tablet-line",mobile:"ri-smartphone-line"},V=e=>"mobile"===e?["mobile","tablet","desktop"]:"tablet"===e?["tablet","desktop"]:["desktop"],W=new Set(["unit","linked","custom"]);function q(e){return""===e||null==e||"object"==typeof e&&(Array.isArray(e)?0===e.length:Object.keys(e).every(t=>W.has(t)||q(e[t])))}function J(e,t,n="desktop"){const a=t&&t.controls||[],s="mobile"===n?["mobile","tablet","desktop"]:"tablet"===n?["tablet","desktop"]:["desktop"];let l=null;const r=t=>{const n=e[t];if(!n||"object"!=typeof n||Array.isArray(n))return;const a=s.find(e=>!q(n[e]));l||(l={...e}),l[t]=a?n[a]:void 0};return a.length?(a.forEach(e=>{e.responsive&&r(e.key)}),l||e):(Object.keys(e).forEach(t=>{const n=e[t];if(!n||"object"!=typeof n||Array.isArray(n))return;const a=Object.keys(n);a.length&&a.every(e=>B.includes(e))&&r(t)}),l||e)}let Y=0;function K(){return"f_"+Math.random().toString(36).slice(2,10)}function X(e){const t=v[e];if(!t)return null;const n={...t.defaults||{},id:K(),type:e};return Object.prototype.hasOwnProperty.call(n,"name")&&(Y+=1,n.name=e.replace(/^fcf7_/,"").replace(/_/g,"-")+"-"+Y),Object.prototype.hasOwnProperty.call(n,"label")&&!n.label&&(n.label=t.title),n}const Z=e=>String(e||"").toLowerCase().replace(/[^a-z0-9_-]/g,"-").replace(/^-+|-+$/g,"");function Q(e){const t=Array.isArray(e)?e:[],n=new Map(t.map(e=>[e&&e.id,e]));return t.filter(e=>{if(!e||!e.name)return!1;if(!e.parentId)return!0;const t=n.get(e.parentId);return!!t&&"repeater"!==t.type})}const ee=Object.create(null);function te(e,t,n=120){if(!b.ajaxUrl)return window.Promise.resolve(null);const a=`${b.ajaxUrl}?action=fcf7_builder_icons&nonce=${encodeURIComponent(b.nonce||"")}&search=${encodeURIComponent(e)}&offset=${t}&limit=${n}`;return window.fetch(a,{credentials:"same-origin"}).then(e=>e.json()).then(e=>e?.success&&e.data?e.data:null).catch(()=>null)}const ne=(0,window.wp.hooks.createHooks)(),ae={},se={},le={registerComponent(e,t){e&&"function"==typeof t&&(ae[e]=t)},getComponent:e=>ae[e]||null,register(e,t){e&&t&&"function"==typeof t.mount&&(se[e]=t)},get:e=>se[e]||null},re=/^\[fcf7_(container|repeater)(\s[^\]]*)?\]$/,ce=/^\[\/fcf7_(container|repeater)\]$/,ie=/<\/?[a-zA-Z][^<>]*>|\[\/?[a-zA-Z_][^[\]]*\]/g;function oe(e){const t="<"===e[0],n="/"===e[1],a=t&&e.length>1&&"/"===e[e.length-2],s=n?2:1,l=e.length-(a?2:1),r=e.slice(s,l),c=r.match(/^(\S+)([\s\S]*)$/),i=[{k:"punct",t:e.slice(0,s)}];if(c){if(i.push({k:"tag",t:c[1]}),c[2]){const e=/"[^"]*"|[^"]+/g;let t;for(;t=e.exec(c[2]);)i.push('"'===t[0][0]?{k:"str",t:t[0]}:{k:"attr",t:t[0]})}}else r&&i.push({k:"tag",t:r});return i.push({k:"punct",t:e.slice(l)}),i}const de={mail:{recipient:"wpcf7-mail-recipient",sender:"wpcf7-mail-sender",subject:"wpcf7-mail-subject",additional_headers:"wpcf7-mail-additional-headers",body:"wpcf7-mail-body",attachments:"wpcf7-mail-attachments"},mail_2:{recipient:"wpcf7-mail-2-recipient",sender:"wpcf7-mail-2-sender",subject:"wpcf7-mail-2-subject",additional_headers:"wpcf7-mail-2-additional-headers",body:"wpcf7-mail-2-body",attachments:"wpcf7-mail-2-attachments"}},fe={mail:{use_html:"wpcf7-mail-use-html",exclude_blank:"wpcf7-mail-exclude-blank"},mail_2:{active:"wpcf7-mail-2-active",use_html:"wpcf7-mail-2-use-html",exclude_blank:"wpcf7-mail-2-exclude-blank"}};function pe(e,t="mail"){const n=de[t];n&&e&&(Object.keys(n).forEach(a=>{const s=e[a];if("string"!=typeof s)return;if("body"===a&&window.FCF7DefaultMail&&"function"==typeof window.FCF7DefaultMail.setBodyValue)return void window.FCF7DefaultMail.setBodyValue(t,s);const l=document.getElementById(n[a]);l&&l.value!==s&&(l.value=s,l.defaultValue=s,l.dispatchEvent(new Event("change",{bubbles:!0})))}),Object.keys(fe[t]||{}).forEach(n=>{const a=document.getElementById(fe[t][n]);if(!a||!(n in e))return;const s=!!e[n];a.checked!==s&&(a.checked=s,a.defaultChecked=s,a.dispatchEvent(new Event("change",{bubbles:!0})))}))}const me=e=>"custom"===e,ue=e=>me(e)?(0,n.jsx)("i",{className:"ri-pencil-line"}):e;function he({units:e,value:s,onChange:l}){return!e||e.length<2?(0,n.jsx)("span",{className:"fcf7b-ctl-unit is-static",children:ue(s||e&&e[0])}):(0,n.jsx)(a,{className:"fcf7b-unit",triggerClassName:"fcf7b-ctl-unit fcf7b-unit-trigger"+(me(s)?" is-custom":""),popClassName:"fcf7b-unit-pop",title:(0,t.__)("Unit","compactform"),trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-unit-cur",children:ue(s)}),(0,n.jsx)("i",{className:"ri-arrow-down-s-line fcf7b-unit-caret"})]}),children:({close:a})=>(0,n.jsx)("ul",{className:"fcf7b-unit-list",children:e.map(e=>(0,n.jsx)("li",{children:(0,n.jsx)("button",{type:"button",className:"fcf7b-unit-opt"+(e===s?" is-active":""),title:me(e)?(0,t.__)("Custom","compactform"):e,onClick:()=>{l(e),a()},children:ue(e)})},e))})})}const be=[["top",(0,t.__)("Top","compactform")],["right",(0,t.__)("Right","compactform")],["bottom",(0,t.__)("Bottom","compactform")],["left",(0,t.__)("Left","compactform")]],ge=["px","%","em","rem","custom"],ve={top:"",right:"",bottom:"",left:"",unit:"px",linked:!0,customValue:""};function xe({ctrl:e,value:a,inherited:s,onChange:l,device:r}){const c=a&&"object"==typeof a?a:{},i=s&&"object"==typeof s?s:{},o={...ve,unit:c.unit??i.unit??ve.unit,linked:c.linked??i.linked??ve.linked,...c},d=!1!==o.linked,f="custom"===o.unit;return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-dim",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-head",children:[(0,n.jsxs)("label",{className:"fcf7b-prop-label",children:[e?.label,e?.responsive?(0,n.jsx)("i",{className:`fcf7b-ctl-device ${H[r]}`,title:r}):null]}),(0,n.jsx)(he,{units:ge,value:o.unit,onChange:e=>l({...o,unit:e})})]}),f?(0,n.jsx)("input",{type:"text",className:"fcf7b-dim-custom",value:c.customValue??"",placeholder:(i.customValue??"")||"e.g. 10px 20px 30px 40px",onChange:e=>l({...o,customValue:e.target.value})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-dim-box",children:[be.map(([e])=>(0,n.jsx)("input",{type:"number",value:c[e]??"",placeholder:i[e]??"",onChange:t=>{return n=e,a=t.target.value,void l(d?{...o,top:a,right:a,bottom:a,left:a}:{...o,[n]:a});var n,a}},e)),(0,n.jsx)("button",{type:"button",className:"fcf7b-dim-link"+(d?" is-linked":""),title:d?(0,t.__)("Unlink sides","compactform"):(0,t.__)("Link sides","compactform"),onClick:()=>{if(d){const e=e=>""===e||null==e?"0":e;l({...o,linked:!1,top:e(o.top),right:e(o.right),bottom:e(o.bottom),left:e(o.left)})}else l({...o,linked:!0})},children:(0,n.jsx)("i",{className:d?"ri-links-line":"ri-link-unlink"})})]}),(0,n.jsxs)("div",{className:"fcf7b-dim-labels",children:[be.map(([e,t])=>(0,n.jsx)("span",{children:t},e)),(0,n.jsx)("span",{})]})]})]})}const je={columnGap:20,rowGap:20,padding:10},ye=e=>({top:String(e),right:String(e),bottom:String(e),left:String(e),unit:"px"}),_e={container:{columnGap:"containerColumnGap",rowGap:"containerRowGap",padding:"containerPadding"}};const Ne=[["tablet",(0,t.__)("Tablet","compactform")],["mobile",(0,t.__)("Mobile","compactform")]],we={desktop:(0,t.__)("Desktop","compactform"),tablet:(0,t.__)("Tablet","compactform"),mobile:(0,t.__)("Mobile","compactform")};function ke({breakpoints:a={},onChange:s,fieldGap:l,onFieldGapChange:r,containerColumnGap:c,onContainerColumnGapChange:i,containerRowGap:o,onContainerRowGapChange:d,containerPadding:f,onContainerPaddingChange:p}){const[m,u]=(0,e.useState)("desktop"),h=e=>e&&"object"==typeof e&&!Array.isArray(e)?e:null==e||""===e?{}:{desktop:e},b=(e,t)=>{const n=h(e),a=V(m).slice(1).find(e=>void 0!==n[e]);return void 0===a?t:String(n[a])},g=h(f),v=V(m).slice(1).find(e=>!q(g[e])),x=e=>h(e)[m]??"",j=(e,t,a,s,l)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-rowlabel",children:e}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:0,max:s,step:1,placeholder:b(t,l),value:x(t),onChange:e=>((e,t,n,a)=>{const s={...h(e)},l=parseInt(a,10);isNaN(l)?delete s[m]:s[m]=Math.max(0,Math.min(n,l)),t(Object.keys(s).length?s:void 0)})(t,a,s,e.target.value)}),(0,n.jsx)("em",{children:"px"})]})]});return(0,n.jsxs)("div",{className:"fcf7b-gspanel",children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-sec",children:[(0,n.jsx)("h3",{className:"fcf7b-gspanel-head",children:(0,t.__)("Breakpoints","compactform")}),Ne.map(([e,t])=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-rowlabel",children:[(0,n.jsx)("i",{className:H[e]}),t]}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:320,max:2560,step:1,placeholder:String(z[e]),value:a[e]??"",onChange:t=>((e,t)=>{const n={...a},l=parseInt(t,10);isNaN(l)?delete n[e]:n[e]=l,s(n)})(e,t.target.value)}),(0,n.jsx)("em",{children:"px"})]})]},e)),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("A device's styles apply at its width <strong>and below</strong>. Blank uses the default.","compactform"),{strong:(0,n.jsx)("strong",{})})})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-sec",children:[(0,n.jsxs)("h3",{className:"fcf7b-gspanel-head fcf7b-gspanel-head--split",children:[(0,t.__)("Spacing","compactform"),(0,n.jsx)("span",{className:"fcf7b-gspanel-devsw",children:B.map(e=>(0,n.jsx)("button",{type:"button",className:m===e?"is-active":"",title:we[e],onClick:()=>u(e),children:(0,n.jsx)("i",{className:H[e]})},e))})]}),j((0,t.__)("Field gap","compactform"),l,r,200,String(20)),j((0,t.__)("Container gap (horizontal)","compactform"),c,i,120,String(je.columnGap)),j((0,t.__)("Container gap (vertical)","compactform"),o,d,120,String(je.rowGap)),(0,n.jsx)(xe,{ctrl:{label:(0,t.__)("Container padding","compactform")},device:m,value:g[m],inherited:void 0===v?ye(je.padding):g[v],onChange:e=>{const t={...g};q(e)?delete t[m]:t[m]=e,p(Object.keys(t).length?t:void 0)}}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("Field gap sits below every top-level field; the Container values apply inside every Container. A field's or Container's own setting overrides these, and a blank one inherits the wider device.","compactform")})]})]})}function Ce({checked:e,onChange:t,labelOn:a="",labelOff:s=""}){const l=!!e,r=!(!a&&!s);return(0,n.jsxs)("button",{type:"button",role:"switch","aria-checked":l,className:`fcf7b-switch${l?" is-on":""}${r?" has-label":""}`,onClick:()=>t(!l),children:[r?(0,n.jsx)("span",{className:"fcf7b-switch-label",children:l?a:s}):null,(0,n.jsx)("span",{className:"fcf7b-switch-knob","aria-hidden":"true"})]})}const Se=(0,t.__)("Your submission looks automated and was not sent. Please try again.","compactform"),Ee=(0,t.__)("Your message contains words that are not allowed.","compactform"),Ie={honeypotEnabled:!0,minTimeEnabled:!1,minTimeSeconds:3,botMessage:"",bannedEnabled:!1,bannedWords:"",bannedMessage:""},$e=[{id:"traps",label:(0,t.__)("Bot traps","compactform")},{id:"words",label:(0,t.__)("Words","compactform")}];function Ge({value:a=Ie,onChange:s}){const l=a&&"object"==typeof a?{...Ie,...a}:{...Ie},r=e=>s({...l,...e}),[c,i]=(0,e.useState)("traps"),o=ne.applyFilters("fcf7b.spamProtectionPanes",[],{value:l,set:r}),d=[...$e,...o],f=o.find(e=>e.id===c),[p,m]=(0,e.useState)(""),[u,h]=(0,e.useState)(!1),[g,v]=(0,e.useState)(null),x=(0,e.useRef)(null),j=!!l.bannedEnabled,y=j&&!!(l.bannedWords||"").trim(),_=e=>{e.append("action","fcf7_sp_import_wordlist"),e.append("nonce",b.nonce||""),e.append("existing",l.bannedWords||""),h(!0),v(null),window.fetch(b.ajaxUrl,{method:"POST",credentials:"same-origin",body:e}).then(e=>e.json()).then(e=>{e&&e.success?(r({bannedWords:e.data.words}),v({state:"ok",message:e.data.added?(0,t.sprintf)(/* translators: 1: number of words added, 2: total number of words. */ /* translators: 1: number of words added, 2: total number of words. */
     1(()=>{"use strict";const e=window.wp.element,t=window.wp.i18n,n=window.ReactJSXRuntime;function a({className:t="",triggerClassName:a="",popClassName:s="",backdropClassName:l="",trigger:c,children:r,onOpenChange:i,title:o}){const[d,f]=(0,e.useState)(!1),p=(0,e.useRef)(null),m=(0,e.useRef)(i);m.current=i;const u=e=>{f(e),m.current&&m.current(e)};return(0,e.useEffect)(()=>{if(!d)return;const e=e=>{p.current&&!p.current.contains(e.target)&&u(!1)},t=e=>{"Escape"===e.key&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[d]),(0,n.jsxs)("div",{className:t,ref:p,children:[(0,n.jsx)("button",{type:"button",title:o,"aria-expanded":d,className:`${a}${d?" is-open":""}`.trim(),onClick:()=>u(!d),children:"function"==typeof c?c(d):c}),d&&l&&(0,n.jsx)("div",{className:l,onMouseDown:()=>u(!1)}),d&&(0,n.jsx)("div",{className:s,children:"function"==typeof r?r({close:()=>u(!1)}):r})]})}const s=(e,t,n)=>Math.min(n,Math.max(t,e)),l=e=>s(Math.round(e),0,255).toString(16).padStart(2,"0");function c(e){let t=String(e||"").replace("#","").trim();return/^[0-9a-f]{3}$/i.test(t)&&(t=t.split("").map(e=>e+e).join("")),/^[0-9a-f]{6}$/i.test(t)&&(t+="ff"),/^[0-9a-f]{8}$/i.test(t)?{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16),a:parseInt(t.slice(6,8),16)/255}:null}function r(e,t,n,a){let s="#"+l(e)+l(t)+l(n);return null!=a&&a<1&&(s+=l(255*a)),s}function i(e,t,n){e/=255,t/=255,n/=255;const a=Math.max(e,t,n),s=a-Math.min(e,t,n);let l=0;return s&&(l=a===e?(t-n)/s%6:a===t?(n-e)/s+2:(e-t)/s+4,l*=60,l<0&&(l+=360)),{h:l,s:0===a?0:s/a,v:a}}function o(e,t,n){const a=n*t,s=a*(1-Math.abs(e/60%2-1)),l=n-a;let c=0,r=0,i=0;return e<60?(c=a,r=s):e<120?(c=s,r=a):e<180?(r=a,i=s):e<240?(r=s,i=a):e<300?(c=s,i=a):(c=a,i=s),{r:255*(c+l),g:255*(r+l),b:255*(i+l)}}function d({ctrl:l,field:d,value:f="",onChange:p,onGestureStart:m,onGestureEnd:u}){const[h,b]=(0,e.useState)({h:0,s:0,v:0}),[g,x]=(0,e.useState)(1),[v,j]=(0,e.useState)(f),y=(0,e.useRef)(null),_=(0,e.useRef)(!1),N=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(f)?f:"";(0,e.useEffect)(()=>{_.current||j(f||"")},[f]);const w=e=>{p(e)},k=(e,t)=>{const{r:n,g:a,b:s}=o(e.h,e.s,e.v);w(r(n,a,s,t))},C=e=>{const t=c(e.startsWith("#")?e:"#"+e);t&&(b(i(t.r,t.g,t.b)),x(t.a),w(r(t.r,t.g,t.b,t.a)))},S=(e,t)=>n=>{n.preventDefault();const a=e.getBoundingClientRect();m&&m();const l=e=>{t(s((e.clientX-a.left)/a.width,0,1),s((e.clientY-a.top)/a.height,0,1))};l(n);const c=()=>{document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",c),u&&u()};document.addEventListener("pointermove",l),document.addEventListener("pointerup",c)},{r:E,g:I,b:P}=o(h.h,h.s,h.v),$=r(E,I,P);return(0,n.jsxs)(a,{className:"fcf7b-color",triggerClassName:"fcf7b-color-trigger",popClassName:"fcf7b-color-pop",onOpenChange:e=>{if(!e)return;const t=c(N||"#000000");t&&(b(i(t.r,t.g,t.b)),x(t.a))},trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-color-swatch"+(N?"":" is-empty"),style:N?{background:N}:null}),(0,n.jsx)("span",{className:"fcf7b-color-value",children:N?N.toUpperCase():(0,t.__)("None","compactform")})]}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Color Picker","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-pop-tools",children:[(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>{w(""),b({h:0,s:0,v:0}),x(1)},children:(0,n.jsx)("i",{className:"ri-refresh-line"})}),window.EyeDropper?(0,n.jsx)("button",{type:"button",title:(0,t.__)("Pick from screen","compactform"),onClick:()=>{if(window.EyeDropper)try{(new window.EyeDropper).open().then(e=>e&&C(e.sRGBHex)).catch(()=>{})}catch(e){}},children:(0,n.jsx)("i",{className:"ri-sip-line"})}):null]})]}),(0,n.jsxs)("div",{className:"fcf7b-cp-area",ref:y,style:{background:`hsl(${h.h} 100% 50%)`},onPointerDown:e=>S(y.current,(e,t)=>((e,t)=>{const n={...h,s:e,v:t};b(n),k(n,g)})(e,1-t))(e),children:[(0,n.jsx)("div",{className:"fcf7b-cp-area-white"}),(0,n.jsx)("div",{className:"fcf7b-cp-area-black"}),(0,n.jsx)("span",{className:"fcf7b-cp-area-handle",style:{left:100*h.s+"%",top:100*(1-h.v)+"%"}})]}),(0,n.jsx)("div",{className:"fcf7b-cp-slider fcf7b-cp-hue",onPointerDown:e=>S(e.currentTarget,e=>(e=>{const t={...h,h:e};b(t),k(t,g)})(360*e))(e),children:(0,n.jsx)("span",{className:"fcf7b-cp-slider-handle",style:{left:h.h/360*100+"%"}})}),(0,n.jsx)("div",{className:"fcf7b-cp-slider fcf7b-cp-alpha",style:{"--cp-color":$},onPointerDown:e=>S(e.currentTarget,e=>{return x(t=e),void k(h,t);var t})(e),children:(0,n.jsx)("span",{className:"fcf7b-cp-slider-handle",style:{left:100*g+"%"}})}),(0,n.jsxs)("div",{className:"fcf7b-cp-foot",children:[(0,n.jsx)("input",{className:"fcf7b-cp-hex",value:v,placeholder:"#rrggbb",onFocus:()=>{_.current=!0},onBlur:()=>{_.current=!1,j(f||"")},onChange:e=>{j(e.target.value),C(e.target.value)}}),(0,n.jsx)("span",{className:"fcf7b-cp-fmt",children:"HEX"}),(0,n.jsx)("button",{type:"button",className:"fcf7b-cp-none",onClick:()=>w(""),children:(0,t.__)("Clear","compactform")})]})]})}const f="fcf7b-canvas-bg",p=e=>"string"==typeof e&&/^#[0-9a-f]{3}([0-9a-f]{3}([0-9a-f]{2})?)?$/i.test(e),m=()=>{try{const e=window.localStorage.getItem(f)||"";return p(e)?e:""}catch(e){return""}},u=[["",(0,t.__)("Theme default","compactform")],["#ffffff",(0,t.__)("White","compactform")],["#f4f5f7",(0,t.__)("Light grey","compactform")],["#e5e7eb",(0,t.__)("Grey","compactform")],["#1e2127",(0,t.__)("Dark","compactform")],["#000000",(0,t.__)("Black","compactform")]];function h({value:a,onChange:s,disabled:l=!1}){const[c,r]=(0,e.useState)(!1),i=(0,e.useRef)(null);return(0,e.useEffect)(()=>{if(!c)return;const e=e=>{i.current&&!i.current.contains(e.target)&&r(!1)},t=e=>{"Escape"===e.key&&(i.current&&i.current.querySelector(".fcf7b-color-pop")||r(!1))};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[c]),(0,n.jsxs)("span",{className:"fcf7b-canvasbg",ref:i,children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost"+(c?" is-set":""),title:(0,t.__)("Canvas background","compactform"),disabled:l,onClick:()=>r(!c),children:(0,n.jsx)("i",{className:"ri-paint-fill"})}),c&&(0,n.jsxs)("div",{className:"fcf7b-canvasbg-pop",children:[(0,n.jsx)("div",{className:"fcf7b-canvasbg-swatches",children:u.map(([e,t])=>(0,n.jsx)("button",{type:"button",title:t,className:`fcf7b-canvasbg-sw${a===e?" is-active":""}${e?"":" is-default"}`,style:e?{background:e}:null,onClick:()=>{s(e),r(!1)}},e||"default"))}),(0,n.jsxs)("div",{className:"fcf7b-canvasbg-custom",children:[(0,n.jsx)("span",{children:(0,t.__)("Custom","compactform")}),(0,n.jsx)(d,{value:a,onChange:s})]})]})]})}const b=window.FCF7Builder||{fields:[],categories:{},tabs:{},ajaxUrl:"",nonce:"",formId:0},g=b.fields||[],x={};g.forEach(e=>{x[e.type]=e});const v=b.instanceMarkup||{},j={value:null},y={value:{}};function _(e,t){const n=t&&t.length>1&&t.includes(e);j.value={kind:"move",id:e,ids:n?t.slice():[e]}}function N(){const e=j.value;return e&&"move"===e.kind?e.ids&&e.ids.length?e.ids:[e.id]:[]}const w={value:null},k=new Set;let C=null;function S(e,t,n){const a=w.value,s=null==e?null:{scope:e,index:t};C=s&&n||null,(s||a)&&(s&&a&&a.scope===s.scope&&a.index===s.index||(w.value=s,k.forEach(e=>e())))}const E=()=>S(null);function I(){const e=C;return E(),!!e&&(e(),!0)}function P(e,t,n="y",a=!1){const s=t.getBoundingClientRect(),l="x"===n?e.clientX-s.left>s.width/2:e.clientY-s.top>s.height/2;return(a?!l:l)?1:0}function $(e,t,n,a="y",s=!1){const l=Array.from(t.querySelectorAll(n));for(let t=0;t<l.length;t++)if(!P(e,l[t],a,s))return t;return l.length}function G(t){const[,n]=(0,e.useState)(0);(0,e.useEffect)(()=>{const e=()=>n(e=>e+1);return k.add(e),()=>{k.delete(e)}},[]);const a=w.value;return a&&a.scope===t?a.index:-1}"undefined"!=typeof document&&(document.addEventListener("dragend",()=>{j.value=null,E()}),document.addEventListener("drop",E));const F={value:null};function D(e,t){const n=new Set(t),a=new Map((e||[]).map(e=>[e.id,e]));return(t||[]).filter(e=>{let t=a.get(e);t=t&&t.parentId?a.get(t.parentId):null;const s=new Set;for(;t&&!s.has(t.id);){if(n.has(t.id))return!1;s.add(t.id),t=t.parentId?a.get(t.parentId):null}return!0})}function A(e,t){const n=D(e,Array.isArray(t)?t:[t]).slice().sort((t,n)=>e.findIndex(e=>e.id===t)-e.findIndex(e=>e.id===n)),a=[],s=[];return n.forEach(t=>{const n=function(e,t){const n=(e||[]).find(e=>e.id===t);if(!n)return[];const a=[],s=new Set,l=t=>{s.has(t.id)||(s.add(t.id),a.push(JSON.parse(JSON.stringify(t))),e.forEach(e=>{e.parentId===t.id&&l(e)}))};return l(n),a}(e,t);n.length&&(s.push(t),a.push(...n))}),!!a.length&&(F.value={fields:a,roots:s},!0)}const O=e=>!0===e.style_transfer||!1!==e.style_transfer&&(!!e.selector||!!e.selectors||!!e.popover_toggle),M=e=>((x[e]||{}).controls||[]).filter(O).map(e=>e.key);function T(e){const t=F.value&&F.value.fields[0];if(!t||!e)return{};const n=new Set(M(e.type)),a={};return M(t.type).forEach(e=>{e in t&&n.has(e)&&(a[e]=t[e])}),JSON.parse(JSON.stringify(a))}const L=b.fontFamilies||{},R=b.borderStyles||{},B=["desktop","tablet","mobile"],z={tablet:1024,mobile:767};function U(e,t={}){if("desktop"===e)return null;const n=parseInt(t[e],10);return n>=320&&n<=2560?n:z[e]}const H={desktop:"ri-computer-line",tablet:"ri-tablet-line",mobile:"ri-smartphone-line"},V=e=>"mobile"===e?["mobile","tablet","desktop"]:"tablet"===e?["tablet","desktop"]:["desktop"],W=new Set(["unit","linked","custom"]);function q(e){return""===e||null==e||"object"==typeof e&&(Array.isArray(e)?0===e.length:Object.keys(e).every(t=>W.has(t)||q(e[t])))}function J(e,t,n="desktop"){const a=t&&t.controls||[],s="mobile"===n?["mobile","tablet","desktop"]:"tablet"===n?["tablet","desktop"]:["desktop"];let l=null;const c=t=>{const n=e[t];if(!n||"object"!=typeof n||Array.isArray(n))return;const a=s.find(e=>!q(n[e]));l||(l={...e}),l[t]=a?n[a]:void 0};return a.length?(a.forEach(e=>{e.responsive&&c(e.key)}),l||e):(Object.keys(e).forEach(t=>{const n=e[t];if(!n||"object"!=typeof n||Array.isArray(n))return;const a=Object.keys(n);a.length&&a.every(e=>B.includes(e))&&c(t)}),l||e)}let Y=0;function K(){return"f_"+Math.random().toString(36).slice(2,10)}function X(e){const t=x[e];if(!t)return null;const n={...t.defaults||{},id:K(),type:e};return Object.prototype.hasOwnProperty.call(n,"name")&&(Y+=1,n.name=e.replace(/^fcf7_/,"").replace(/_/g,"-")+"-"+Y),Object.prototype.hasOwnProperty.call(n,"label")&&!n.label&&(n.label=t.title),n}const Z=e=>String(e||"").replace(/[^A-Za-z0-9_-]/g,"-").replace(/^-+|-+$/g,"");function Q(e){const t=Array.isArray(e)?e:[],n=new Map(t.map(e=>[e&&e.id,e]));return t.filter(e=>{if(!e||!e.name)return!1;if(!e.parentId)return!0;const t=n.get(e.parentId);return!!t&&"repeater"!==t.type})}const ee=Object.create(null);function te(e,t,n=120){if(!b.ajaxUrl)return window.Promise.resolve(null);const a=`${b.ajaxUrl}?action=fcf7_builder_icons&nonce=${encodeURIComponent(b.nonce||"")}&search=${encodeURIComponent(e)}&offset=${t}&limit=${n}`;return window.fetch(a,{credentials:"same-origin"}).then(e=>e.json()).then(e=>e?.success&&e.data?e.data:null).catch(()=>null)}const ne=(0,window.wp.hooks.createHooks)(),ae={},se={},le={registerComponent(e,t){e&&"function"==typeof t&&(ae[e]=t)},getComponent:e=>ae[e]||null,register(e,t){e&&t&&"function"==typeof t.mount&&(se[e]=t)},get:e=>se[e]||null},ce=/^\[fcf7_(container|repeater)(\s[^\]]*)?\]$/,re=/^\[\/fcf7_(container|repeater)\]$/,ie=/<\/?[a-zA-Z][^<>]*>|\[\/?[a-zA-Z_][^[\]]*\]/g;function oe(e){const t="<"===e[0],n="/"===e[1],a=t&&e.length>1&&"/"===e[e.length-2],s=n?2:1,l=e.length-(a?2:1),c=e.slice(s,l),r=c.match(/^(\S+)([\s\S]*)$/),i=[{k:"punct",t:e.slice(0,s)}];if(r){if(i.push({k:"tag",t:r[1]}),r[2]){const e=/"[^"]*"|[^"]+/g;let t;for(;t=e.exec(r[2]);)i.push('"'===t[0][0]?{k:"str",t:t[0]}:{k:"attr",t:t[0]})}}else c&&i.push({k:"tag",t:c});return i.push({k:"punct",t:e.slice(l)}),i}const de={mail:{recipient:"wpcf7-mail-recipient",sender:"wpcf7-mail-sender",subject:"wpcf7-mail-subject",additional_headers:"wpcf7-mail-additional-headers",body:"wpcf7-mail-body",attachments:"wpcf7-mail-attachments"},mail_2:{recipient:"wpcf7-mail-2-recipient",sender:"wpcf7-mail-2-sender",subject:"wpcf7-mail-2-subject",additional_headers:"wpcf7-mail-2-additional-headers",body:"wpcf7-mail-2-body",attachments:"wpcf7-mail-2-attachments"}},fe={mail:{use_html:"wpcf7-mail-use-html",exclude_blank:"wpcf7-mail-exclude-blank"},mail_2:{active:"wpcf7-mail-2-active",use_html:"wpcf7-mail-2-use-html",exclude_blank:"wpcf7-mail-2-exclude-blank"}};function pe(e,t="mail"){const n=de[t];n&&e&&(Object.keys(n).forEach(a=>{const s=e[a];if("string"!=typeof s)return;if("body"===a&&window.FCF7DefaultMail&&"function"==typeof window.FCF7DefaultMail.setBodyValue)return void window.FCF7DefaultMail.setBodyValue(t,s);const l=document.getElementById(n[a]);l&&l.value!==s&&(l.value=s,l.defaultValue=s,l.dispatchEvent(new Event("change",{bubbles:!0})))}),Object.keys(fe[t]||{}).forEach(n=>{const a=document.getElementById(fe[t][n]);if(!a||!(n in e))return;const s=!!e[n];a.checked!==s&&(a.checked=s,a.defaultChecked=s,a.dispatchEvent(new Event("change",{bubbles:!0})))}))}const me=e=>"custom"===e,ue=e=>me(e)?(0,n.jsx)("i",{className:"ri-pencil-line"}):e;function he({units:e,value:s,onChange:l}){return!e||e.length<2?(0,n.jsx)("span",{className:"fcf7b-ctl-unit is-static",children:ue(s||e&&e[0])}):(0,n.jsx)(a,{className:"fcf7b-unit",triggerClassName:"fcf7b-ctl-unit fcf7b-unit-trigger"+(me(s)?" is-custom":""),popClassName:"fcf7b-unit-pop",title:(0,t.__)("Unit","compactform"),trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-unit-cur",children:ue(s)}),(0,n.jsx)("i",{className:"ri-arrow-down-s-line fcf7b-unit-caret"})]}),children:({close:a})=>(0,n.jsx)("ul",{className:"fcf7b-unit-list",children:e.map(e=>(0,n.jsx)("li",{children:(0,n.jsx)("button",{type:"button",className:"fcf7b-unit-opt"+(e===s?" is-active":""),title:me(e)?(0,t.__)("Custom","compactform"):e,onClick:()=>{l(e),a()},children:ue(e)})},e))})})}const be=[["top",(0,t.__)("Top","compactform")],["right",(0,t.__)("Right","compactform")],["bottom",(0,t.__)("Bottom","compactform")],["left",(0,t.__)("Left","compactform")]],ge=["px","%","em","rem","custom"],xe={top:"",right:"",bottom:"",left:"",unit:"px",linked:!0,customValue:""};function ve({ctrl:e,value:a,inherited:s,onChange:l,device:c}){const r=a&&"object"==typeof a?a:{},i=s&&"object"==typeof s?s:{},o={...xe,unit:r.unit??i.unit??xe.unit,linked:r.linked??i.linked??xe.linked,...r},d=!1!==o.linked,f="custom"===o.unit;return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-dim",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-head",children:[(0,n.jsxs)("label",{className:"fcf7b-prop-label",children:[e?.label,e?.responsive?(0,n.jsx)("i",{className:`fcf7b-ctl-device ${H[c]}`,title:c}):null]}),(0,n.jsx)(he,{units:ge,value:o.unit,onChange:e=>l({...o,unit:e})})]}),f?(0,n.jsx)("input",{type:"text",className:"fcf7b-dim-custom",value:r.customValue??"",placeholder:(i.customValue??"")||"e.g. 10px 20px 30px 40px",onChange:e=>l({...o,customValue:e.target.value})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-dim-box",children:[be.map(([e])=>(0,n.jsx)("input",{type:"number",value:r[e]??"",placeholder:i[e]??"",onChange:t=>{return n=e,a=t.target.value,void l(d?{...o,top:a,right:a,bottom:a,left:a}:{...o,[n]:a});var n,a}},e)),(0,n.jsx)("button",{type:"button",className:"fcf7b-dim-link"+(d?" is-linked":""),title:d?(0,t.__)("Unlink sides","compactform"):(0,t.__)("Link sides","compactform"),onClick:()=>{if(d){const e=e=>""===e||null==e?"0":e;l({...o,linked:!1,top:e(o.top),right:e(o.right),bottom:e(o.bottom),left:e(o.left)})}else l({...o,linked:!0})},children:(0,n.jsx)("i",{className:d?"ri-links-line":"ri-link-unlink"})})]}),(0,n.jsxs)("div",{className:"fcf7b-dim-labels",children:[be.map(([e,t])=>(0,n.jsx)("span",{children:t},e)),(0,n.jsx)("span",{})]})]})]})}const je={columnGap:20,rowGap:20,padding:10},ye=e=>({top:String(e),right:String(e),bottom:String(e),left:String(e),unit:"px"}),_e={container:{columnGap:"containerColumnGap",rowGap:"containerRowGap",padding:"containerPadding"}};const Ne=[["tablet",(0,t.__)("Tablet","compactform")],["mobile",(0,t.__)("Mobile","compactform")]],we={desktop:(0,t.__)("Desktop","compactform"),tablet:(0,t.__)("Tablet","compactform"),mobile:(0,t.__)("Mobile","compactform")};function ke({breakpoints:a={},onChange:s,fieldGap:l,onFieldGapChange:c,containerColumnGap:r,onContainerColumnGapChange:i,containerRowGap:o,onContainerRowGapChange:d,containerPadding:f,onContainerPaddingChange:p}){const[m,u]=(0,e.useState)("desktop"),h=e=>e&&"object"==typeof e&&!Array.isArray(e)?e:null==e||""===e?{}:{desktop:e},b=(e,t)=>{const n=h(e),a=V(m).slice(1).find(e=>void 0!==n[e]);return void 0===a?t:String(n[a])},g=h(f),x=V(m).slice(1).find(e=>!q(g[e])),v=e=>h(e)[m]??"",j=(e,t,a,s,l)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-rowlabel",children:e}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:0,max:s,step:1,placeholder:b(t,l),value:v(t),onChange:e=>((e,t,n,a)=>{const s={...h(e)},l=parseInt(a,10);isNaN(l)?delete s[m]:s[m]=Math.max(0,Math.min(n,l)),t(Object.keys(s).length?s:void 0)})(t,a,s,e.target.value)}),(0,n.jsx)("em",{children:"px"})]})]});return(0,n.jsxs)("div",{className:"fcf7b-gspanel",children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-sec",children:[(0,n.jsx)("h3",{className:"fcf7b-gspanel-head",children:(0,t.__)("Breakpoints","compactform")}),Ne.map(([e,t])=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-rowlabel",children:[(0,n.jsx)("i",{className:H[e]}),t]}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:320,max:2560,step:1,placeholder:String(z[e]),value:a[e]??"",onChange:t=>((e,t)=>{const n={...a},l=parseInt(t,10);isNaN(l)?delete n[e]:n[e]=l,s(n)})(e,t.target.value)}),(0,n.jsx)("em",{children:"px"})]})]},e)),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("A device's styles apply at its width <strong>and below</strong>. Blank uses the default.","compactform"),{strong:(0,n.jsx)("strong",{})})})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-sec",children:[(0,n.jsxs)("h3",{className:"fcf7b-gspanel-head fcf7b-gspanel-head--split",children:[(0,t.__)("Spacing","compactform"),(0,n.jsx)("span",{className:"fcf7b-gspanel-devsw",children:B.map(e=>(0,n.jsx)("button",{type:"button",className:m===e?"is-active":"",title:we[e],onClick:()=>u(e),children:(0,n.jsx)("i",{className:H[e]})},e))})]}),j((0,t.__)("Field gap","compactform"),l,c,200,String(20)),j((0,t.__)("Container gap (horizontal)","compactform"),r,i,120,String(je.columnGap)),j((0,t.__)("Container gap (vertical)","compactform"),o,d,120,String(je.rowGap)),(0,n.jsx)(ve,{ctrl:{label:(0,t.__)("Container padding","compactform")},device:m,value:g[m],inherited:void 0===x?ye(je.padding):g[x],onChange:e=>{const t={...g};q(e)?delete t[m]:t[m]=e,p(Object.keys(t).length?t:void 0)}}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("Field gap sits below every top-level field; the Container values apply inside every Container. A field's or Container's own setting overrides these, and a blank one inherits the wider device.","compactform")})]})]})}function Ce({checked:e,onChange:t,labelOn:a="",labelOff:s=""}){const l=!!e,c=!(!a&&!s);return(0,n.jsxs)("button",{type:"button",role:"switch","aria-checked":l,className:`fcf7b-switch${l?" is-on":""}${c?" has-label":""}`,onClick:()=>t(!l),children:[c?(0,n.jsx)("span",{className:"fcf7b-switch-label",children:l?a:s}):null,(0,n.jsx)("span",{className:"fcf7b-switch-knob","aria-hidden":"true"})]})}const Se=(0,t.__)("Your submission looks automated and was not sent. Please try again.","compactform"),Ee=(0,t.__)("Your message contains words that are not allowed.","compactform"),Ie={honeypotEnabled:!0,minTimeEnabled:!1,minTimeSeconds:3,botMessage:"",bannedEnabled:!1,bannedWords:"",bannedMessage:""},Pe=[{id:"traps",label:(0,t.__)("Bot traps","compactform")},{id:"words",label:(0,t.__)("Words","compactform")}];function $e({value:a=Ie,onChange:s}){const l=a&&"object"==typeof a?{...Ie,...a}:{...Ie},c=e=>s({...l,...e}),[r,i]=(0,e.useState)("traps"),o=ne.applyFilters("fcf7b.spamProtectionPanes",[],{value:l,set:c}),d=[...Pe,...o],f=o.find(e=>e.id===r),[p,m]=(0,e.useState)(""),[u,h]=(0,e.useState)(!1),[g,x]=(0,e.useState)(null),v=(0,e.useRef)(null),j=!!l.bannedEnabled,y=j&&!!(l.bannedWords||"").trim(),_=e=>{e.append("action","fcf7_sp_import_wordlist"),e.append("nonce",b.nonce||""),e.append("existing",l.bannedWords||""),h(!0),x(null),window.fetch(b.ajaxUrl,{method:"POST",credentials:"same-origin",body:e}).then(e=>e.json()).then(e=>{e&&e.success?(c({bannedWords:e.data.words}),x({state:"ok",message:e.data.added?(0,t.sprintf)(/* translators: 1: number of words added, 2: total number of words. */ /* translators: 1: number of words added, 2: total number of words. */
    22(0,t.__)("Added %1$d — %2$d words in total.","compactform"),e.data.added,e.data.total):(0,t.sprintf)(/* translators: %d: total number of words already listed. */ /* translators: %d: total number of words already listed. */
    3 (0,t.__)("Nothing new — all %d were already listed.","compactform"),e.data.total)})):v({state:"fail",message:e?.data?.message||(0,t.__)("Import failed.","compactform")})}).catch(()=>v({state:"fail",message:(0,t.__)("Import failed.","compactform")})).finally(()=>h(!1))},N=(e,a,s)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:e,children:(0,t.__)("Error message","compactform")}),(0,n.jsx)("input",{type:"text",id:e,value:l[a]||"",placeholder:s,onChange:e=>r({[a]:e.target.value})})]});return(0,n.jsxs)("div",{className:"fcf7b-gspanel",children:[(0,n.jsx)("h3",{className:"fcf7b-gspanel-head",children:(0,t.__)("Spam Protection","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-intro",children:(0,t.__)("Form-level rules, all checked on the server. The arithmetic CAPTCHA is a field — drop it on the canvas and use its own panel.","compactform")}),(0,n.jsx)("div",{className:"fcf7b-gspanel-tabs",children:d.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-tab"+(c===e.id?" is-active":""),onClick:()=>i(e.id),children:e.label},e.id))}),"traps"===c?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Honeypot","compactform"),(0,n.jsx)("em",{children:(0,t.__)("An invisible field bots fill in and people never see.","compactform")})]}),(0,n.jsx)(Ce,{checked:l.honeypotEnabled,onChange:e=>r({honeypotEnabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Minimum fill time","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Refuse a form that comes back faster than a person could type it.","compactform")})]}),(0,n.jsx)(Ce,{checked:l.minTimeEnabled,onChange:e=>r({minTimeEnabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),l.minTimeEnabled?(w=(0,t.__)("Minimum","compactform"),k="minTimeSeconds",(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-rowlabel",children:w}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:1,max:300,step:1,value:l[k],onChange:e=>r({[k]:""===e.target.value?"":parseInt(e.target.value,10)})}),(0,n.jsx)("em",{children:(0,t.__)("seconds","compactform")})]})]})):null,l.honeypotEnabled||l.minTimeEnabled?N("fcf7-sp-bot-msg","botMessage",Se):null]}):null,"words"===c?(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Banned words","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Refuse a submission whose answers contain a listed word.","compactform")})]}),(0,n.jsx)(Ce,{checked:j,onChange:e=>r({bannedEnabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}):null,"words"===c&&j?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-sp-banned",children:(0,t.__)("Word list","compactform")}),(0,n.jsx)("textarea",{id:"fcf7-sp-banned",rows:5,value:l.bannedWords||"",placeholder:(0,t.__)("casino, cheap loans, crypto giveaway","compactform"),onChange:e=>r({bannedWords:e.target.value})}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("Comma separated, checked against every answer. A single word matches whole words only — <word/> will not refuse “class”. A phrase may contain spaces, so <phrase/> is one entry. Empty switches it off.","compactform"),{word:(0,n.jsx)("code",{children:"ass"}),phrase:(0,n.jsx)("code",{children:"cheap loans"})})})]}),(0,n.jsx)("h4",{className:"fcf7b-gspanel-subhead",children:(0,t.__)("Import into the list","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-intro",children:(0,e.createInterpolateElement)((0,t.__)("Adds to what is already above rather than replacing it, so you can start from a ready-made list and keep writing your own. Duplicates are dropped, lines starting with <hash/> or <slashes/> are ignored, and the result is written back as one comma-separated list you can edit or prune afterwards.","compactform"),{hash:(0,n.jsx)("code",{children:"#"}),slashes:(0,n.jsx)("code",{children:"//"})})}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-sp-file",children:(0,t.__)("From a file","compactform")}),(0,n.jsx)("input",{type:"file",id:"fcf7-sp-file",ref:x,accept:".txt,.csv,text/plain,text/csv",disabled:u,onChange:e=>{(e=>{if(!e)return;if(e.size>1048576)return void v({state:"fail",message:(0,t.__)("That file is larger than 1 MB.","compactform")});const n=new window.FileReader;n.onload=()=>{const e=new window.FormData;e.append("text",String(n.result||"")),_(e)},n.onerror=()=>v({state:"fail",message:(0,t.__)("Could not read that file.","compactform")}),n.readAsText(e)})(e.target.files&&e.target.files[0]),e.target.value=""}}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("A plain .txt or .csv, up to 1 MB. Read in your browser — nothing is uploaded or stored on the server.","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-sp-url",children:(0,t.__)("From a URL","compactform")}),(0,n.jsx)("input",{type:"text",id:"fcf7-sp-url",value:p,placeholder:"https://example.com/badwords.txt",onChange:e=>m(e.target.value)}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("Fetched once, now. The address is not saved — the words are.","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-testrow",children:[(0,n.jsxs)("button",{type:"button",className:"fcf7b-gspanel-add",disabled:u||!p.trim(),onClick:()=>{const e=new window.FormData;e.append("url",p.trim()),_(e)},children:[(0,n.jsx)("i",{className:"ri-download-line"})," ",u?(0,t.__)("Importing…","compactform"):(0,t.__)("Import from URL","compactform")]}),g?(0,n.jsx)("span",{className:`fcf7b-gspanel-testmsg is-${g.state}`,children:g.message}):null]}),y?N("fcf7-sp-banned-msg","bannedMessage",Ee):null]}):null,f?f.render({value:l,set:r}):null]});var w,k}function Pe({value:s,options:l=[],onChange:r,multiple:c=!1,creatable:i=!1,onCreate:o,onRemove:d,onReorder:f,placeholder:p=""}){const m=c?Array.isArray(s)?s:""===s||null==s?[]:[s]:[],u=e=>c?m.some(t=>String(t)===String(e)):String(s)===String(e),[h,b]=(0,e.useState)(-1),[g,v]=(0,e.useState)(-1),x=l.filter(e=>e.custom).map(e=>e.value);let j;if(c){const e=l.filter(e=>u(e.value)).map(e=>e.label);j=e.length?e.join(", "):p||(0,t.__)("Select…","compactform")}else{const e=l.find(e=>String(e.value)===String(s));j=e?e.label:p||l[0]&&l[0].label||""}return(0,n.jsx)(a,{className:"fcf7b-select",triggerClassName:"fcf7b-select-trigger"+(c?" is-multi":""),popClassName:"fcf7b-select-pop",trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-select-cur",children:j}),(0,n.jsx)("i",{className:"ri-arrow-down-s-line fcf7b-select-caret"})]}),children:({close:e})=>(0,n.jsxs)("ul",{className:"fcf7b-select-list"+(c?" is-multi":""),children:[l.map(a=>{const s=i&&a.custom,l=s?x.indexOf(a.value):-1;return(0,n.jsxs)("li",{className:`${s?"fcf7b-select-hasremove":""}${s&&g===l?" is-drop":""}`.trim()||void 0,onDragOver:s?e=>{e.preventDefault(),v(l)}:void 0,onDrop:s?e=>{e.preventDefault(),(e=>{if(h>=0&&h!==e&&f){const t=[...x],[n]=t.splice(h,1);t.splice(e,0,n),f(t)}b(-1),v(-1)})(l)}:void 0,children:[s?(0,n.jsx)("span",{className:"fcf7b-select-grip",title:(0,t.__)("Drag to reorder","compactform"),draggable:!0,onDragStart:()=>b(l),onDragEnd:()=>{b(-1),v(-1)},children:(0,n.jsx)("i",{className:"ri-draggable"})}):null,(0,n.jsxs)("button",{type:"button",className:"fcf7b-select-opt"+(u(a.value)?" is-active":""),onClick:()=>((e,t)=>{c?r(u(e)?m.filter(t=>String(t)!==String(e)):[...m,e]):(r(e),t())})(a.value,e),children:[c?(0,n.jsx)("i",{className:"fcf7b-select-check ri-"+(u(a.value)?"checkbox-line":"checkbox-blank-line")}):null,(0,n.jsx)("span",{className:"fcf7b-select-optlabel",children:a.label})]}),s?(0,n.jsx)("button",{type:"button",className:"fcf7b-select-remove",title:(0,t.__)("Remove","compactform"),onClick:e=>{e.stopPropagation(),d&&d(a.value)},children:(0,n.jsx)("i",{className:"ri-close-line"})}):null]},String(a.value))}),i?(0,n.jsx)("li",{className:"fcf7b-select-create",children:(0,n.jsx)("input",{type:"text",className:"fcf7b-select-createinput",placeholder:(0,t.__)("Add…","compactform"),onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),o&&o(t.currentTarget.value),t.currentTarget.value="",c||e())}})}):null]})})}const De={enabled:!1,url:"",method:"POST",format:"json",bodyMode:"all",body:[],headers:[],meta:!1,timeout:10,blocking:!1},Fe=["POST","GET","PUT","PATCH","DELETE"].map(e=>({value:e,label:e})),Oe=[{value:"json",label:"JSON"},{value:"form",label:(0,t.__)("Form-encoded","compactform")}],Ae=[{value:"value",label:(0,t.__)("Fixed text","compactform")},{value:"field",label:(0,t.__)("From the form","compactform")}],Me=["GET","DELETE"],Te=[{id:"endpoint",label:(0,t.__)("Endpoint","compactform")},{id:"payload",label:(0,t.__)("Payload","compactform")},{id:"advanced",label:(0,t.__)("Advanced","compactform")}],Le=e=>String(e||"").replace(/[^A-Za-z0-9\-_]/g,""),Re=e=>Array.isArray(e)?e:e?[e]:[];function Be({value:a=De,onChange:s,fields:l=[]}){const r=a&&"object"==typeof a?{...De,...a}:{...De},c=e=>s({...r,...e}),[i,o]=(0,e.useState)("endpoint"),d=b.integrations?.webhook?.metaChoices||[],f=-1!==Me.indexOf(r.method),p=Q(l),m=[...p.map(e=>({value:Z(e.name),label:`${e.label||e.type} (${Z(e.name)})`})),...d.map(e=>({value:e.value,label:`${e.label} (metadata)`}))],u=[];(Array.isArray(r.body)?r.body:[]).forEach(e=>u.push(...Re(e&&e.source))),(Array.isArray(r.headers)?r.headers:[]).forEach(e=>{e&&"field"===e.mode&&e.value&&u.push(e.value)});const h=[...new Set(u)].filter(e=>!m.some(t=>String(t.value)===String(e))).map(e=>({value:e,label:`${e} (no longer in this form)`})),g=[...m,...h],v=e=>Array.isArray(r[e])?r[e]:[],x=(e,t,n)=>c({[e]:v(e).map((e,a)=>a===t?{...e,...n}:e)}),j=(e,t)=>c({[e]:[...v(e),t]}),y=(e,t)=>c({[e]:v(e).filter((e,n)=>n!==t)}),_=v("body").filter(e=>!!e.key!=Re(e.source).length>0).length,N=r.url&&!/^https?:\/\//i.test(r.url.trim()),w=e=>{const t=g.find(t=>String(t.value)===String(e));return`{${t?t.label.replace(/\s*\([^)]*\)$/,""):e}}`};return(0,n.jsxs)("div",{className:"fcf7b-gspanel",children:[(0,n.jsx)("h3",{className:"fcf7b-gspanel-head",children:(0,t.__)("Webhook","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-intro",children:(0,t.__)("Hands every submission straight to another service the moment the form is sent — Pabbly Connect, Zapier, Make or your own API. Spam and failed submissions are never sent.","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-switchlabel",children:(0,t.__)("Enable webhook for this form","compactform")}),(0,n.jsx)(Ce,{checked:r.enabled,onChange:e=>c({enabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),r.enabled?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"fcf7b-gspanel-tabs",children:Te.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-tab"+(i===e.id?" is-active":""),onClick:()=>o(e.id),children:e.label},e.id))}),"endpoint"===i?(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-wh-url",children:(0,t.__)("Request URL","compactform")}),(0,n.jsx)("input",{type:"text",id:"fcf7-wh-url",value:r.url||"",placeholder:"https://connect.pabbly.com/workflow/sendwebhookdata/…",onChange:e=>c({url:e.target.value})}),N?(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-warn",children:(0,e.createInterpolateElement)((0,t.__)("This doesn’t start with <http/> or <https/>, so it will be discarded when you save.","compactform"),{http:(0,n.jsx)("code",{children:"http://"}),https:(0,n.jsx)("code",{children:"https://"})})}):(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("The address the other service gave you — it may call this a webhook URL, an endpoint, or an incoming URL.","compactform")})]}):null,"payload"===i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Send every field","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Off — send only the keys you list below, renamed however the service expects.","compactform")})]}),(0,n.jsx)(Ce,{checked:"all"===r.bodyMode,onChange:e=>c({bodyMode:e?"all":"mapped"}),labelOn:(0,t.__)("All","compactform"),labelOff:(0,t.__)("Mapped","compactform")})]}),"all"===r.bodyMode?(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Include submission metadata","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Adds IP, page URL, date, site and user details alongside the answers.","compactform")})]}),(0,n.jsx)(Ce,{checked:r.meta,onChange:e=>c({meta:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}):(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{children:(0,t.__)("Payload keys","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-rows",children:[v("body").length?(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline fcf7b-gspanel-rowhead",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Name the service expects","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Value from this form","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-headspacer"})]}):null,v("body").map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline",children:[(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:(0,n.jsx)("input",{type:"text",value:e.key||"",placeholder:(0,t.__)("e.g. email","compactform"),onChange:e=>x("body",a,{key:e.target.value})})}),(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:(0,n.jsx)(Pe,{multiple:!0,value:Re(e.source),options:g,onChange:e=>x("body",a,{source:e}),placeholder:m.length?(0,t.__)("Pick a field…","compactform"):(0,t.__)("This form has no named fields yet","compactform")})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-del",title:(0,t.__)("Remove this key","compactform"),onClick:()=>y("body",a),children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},a)),v("body").length?null:(0,n.jsx)("p",{className:"fcf7b-gspanel-none",children:(0,t.__)("No keys yet — nothing would be sent.","compactform")})]}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gspanel-add",onClick:()=>j("body",{key:"",source:[]}),children:[(0,n.jsx)("i",{className:"ri-add-line"})," ",(0,t.__)("Add key","compactform")]}),_?(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-warn",children:(0,t.sprintf)(/* translators: %d: number of incomplete rows. */ /* translators: %d: number of incomplete rows. */
    4 (0,t._n)("%d row is missing a name or a value, and will be skipped.","%d rows are missing a name or a value, and will be skipped.",_,"compactform"),_)}):null,(0,n.jsxs)("details",{className:"fcf7b-gspanel-more",children:[(0,n.jsx)("summary",{children:(0,t.__)("Can one key take several fields?","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("Yes — pick more than one and they collapse into that single key, the same thing a mail-template line like <example/> does. A field the visitor never saw is blank, so only the branch they filled in is sent; anything with content is joined with a comma.","compactform"),{example:(0,n.jsx)("code",{children:"Doctor: [doctor-cardiology1][doctor-dermatology1]"})})})]})]})]}):null,"advanced"===i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-cols",children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{children:(0,t.__)("Method","compactform")}),(0,n.jsx)(Pe,{value:r.method,options:Fe,onChange:e=>c({method:e})})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{children:(0,t.__)("Format","compactform")}),f?(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.sprintf)(/* translators: %s: HTTP method, e.g. GET. */ /* translators: %s: HTTP method, e.g. GET. */
    5 (0,t.__)("%s carries everything in the address itself, so there is nothing to encode.","compactform"),r.method)}):(0,n.jsx)(Pe,{value:r.format,options:Oe,onChange:e=>c({format:e})})]})]}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("<post>POST</post> and <json>JSON</json> are what Pabbly, Zapier and Make all expect. Change them only if the service’s own instructions ask you to.","compactform"),{post:(0,n.jsx)("strong",{}),json:(0,n.jsx)("strong",{})})}),(0,n.jsx)("h4",{className:"fcf7b-gspanel-subhead",children:(0,t.__)("Request headers","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-lead",children:(0,t.__)("Only needed when the service asks you for an API key or a token.","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-rows",children:[v("headers").length?(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline fcf7b-gspanel-rowhead",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Header name","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-cell fcf7b-gspanel-cell--narrow",children:(0,t.__)("Value is","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Value","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-headspacer"})]}):null,v("headers").map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline",children:[(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:(0,n.jsx)("input",{type:"text",value:e.name||"",placeholder:"X-Api-Key",onChange:e=>x("headers",a,{name:Le(e.target.value)})})}),(0,n.jsx)("div",{className:"fcf7b-gspanel-cell fcf7b-gspanel-cell--narrow",children:(0,n.jsx)(Pe,{value:e.mode||"value",options:Ae,onChange:e=>x("headers",a,{mode:e,value:""})})}),(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:"field"===e.mode?(0,n.jsx)(Pe,{value:e.value||"",options:g,onChange:e=>x("headers",a,{value:e}),placeholder:(0,t.__)("Pick a field…","compactform")}):(0,n.jsx)("input",{type:"text",value:e.value||"",placeholder:(0,t.__)("Your API key","compactform"),onChange:e=>x("headers",a,{value:e.target.value})})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-del",title:(0,t.__)("Remove this header","compactform"),onClick:()=>y("headers",a),children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},a)),v("headers").length?null:(0,n.jsx)("p",{className:"fcf7b-gspanel-none",children:(0,t.sprintf)(/* translators: %s: content type name, e.g. JSON. */ /* translators: %s: content type name, e.g. JSON. */
    6 (0,t.__)("None — only the %s content type is sent.","compactform"),"json"===r.format?(0,t.__)("JSON","compactform"):(0,t.__)("form","compactform"))})]}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gspanel-add",onClick:()=>j("headers",{name:"",mode:"value",value:""}),children:[(0,n.jsx)("i",{className:"ri-add-line"})," ",(0,t.__)("Add header","compactform")]}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("Your headers are applied last, so one named <ct/> overrides the format above.","compactform"),{ct:(0,n.jsx)("code",{children:"Content-Type"})})}),(0,n.jsx)("h4",{className:"fcf7b-gspanel-subhead",children:(0,t.__)("Delivery","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Wait for a reply","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Off — fire and forget: the visitor never waits, but a failure can’t be logged.","compactform")})]}),(0,n.jsx)(Ce,{checked:r.blocking,onChange:e=>c({blocking:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),r.blocking?(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-rowlabel",children:(0,t.__)("Give up after","compactform")}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:1,max:30,step:1,value:r.timeout,onChange:e=>c({timeout:""===e.target.value?"":parseInt(e.target.value,10)})}),(0,n.jsx)("em",{children:(0,t.__)("sec","compactform")})]})]}):null,(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("A refused delivery is written to the WordPress debug log. The visitor never sees an error either way — their submission still goes through.","compactform")})]}):null,(0,n.jsxs)("div",{className:"fcf7b-gspanel-pinned",children:[(0,n.jsx)("pre",{className:"fcf7b-gspanel-preview",children:(()=>{const e=(()=>{const e={};return"mapped"===r.bodyMode?(v("body").forEach(t=>{const n=Re(t.source);t.key&&n.length&&(e[t.key]=n.map(w).join(", "))}),e):(p.forEach(t=>{e[Z(t.name)]=`{${t.label||t.type}}`}),r.meta&&d.forEach(t=>{void 0===e[t.label]&&(e[t.label]=`{${t.label}}`)}),e)})(),t=Object.keys(e).map(t=>`${t}=${e[t]}`).join("&"),n=r.url.trim()||"https://…",a=f?{}:{"Content-Type":"json"===r.format?"application/json":"application/x-www-form-urlencoded"};v("headers").forEach(e=>{const t=Le(e.name);t&&(a[t]="field"===e.mode?e.value?w(e.value):"":e.value||"")});const s=[`${r.method} ${n}${f&&t?`?${t}`:""}`];return Object.keys(a).forEach(e=>s.push(`${e}: ${a[e]}`)),f||(s.push(""),s.push("json"===r.format?JSON.stringify(e,null,2):t||"(nothing to send)")),s.join("\n")})()}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("One submission, as this form will send it. Each <token/> is replaced with the visitor’s own answer. Save the form when you’re happy with it.","compactform"),{token:(0,n.jsx)("code",{children:"{value}"})})})]})]}):null]})}const ze=[{id:"breakpoints",label:(0,t.__)("General","compactform"),icon:"ri-layout-4-line"},{id:"webhook",label:(0,t.__)("Webhook","compactform"),icon:"ri-send-plane-line",show:!!b.integrations?.webhook?.active},{id:"spamProtection",label:(0,t.__)("Spam Protection","compactform"),icon:"ri-shield-keyhole-line",show:!!b.configuration?.spamProtection?.active}].filter(e=>!1!==e.show);function Ue({schema:s,setSchema:l,breakpoints:r={},onBreakpointsChange:c,fieldGap:i,onFieldGapChange:o,containerColumnGap:d,onContainerColumnGapChange:f,containerRowGap:p,onContainerRowGapChange:m,containerPadding:u,onContainerPaddingChange:h,webhook:b,onWebhookChange:g,spamProtection:v,onSpamProtectionChange:x,fields:j=[]}){const[y,_]=(0,e.useState)(ze[0].id),N=ne.applyFilters("fcf7b.globalSettingsTabs",[]),w=[...ze,...N],k=N.find(e=>e.id===y);return(0,n.jsx)(a,{className:"fcf7b-gs",triggerClassName:"fcf7b-ghost",popClassName:"fcf7b-gs-pop",backdropClassName:"fcf7b-gs-backdrop",title:(0,t.__)("Global settings","compactform"),trigger:(0,n.jsx)("i",{className:"ri-settings-3-line"}),children:({close:e})=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gs-head",children:["Global Settings",(0,n.jsx)("button",{type:"button",className:"fcf7b-gs-close",title:"Close",onClick:e,children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsxs)("div",{className:"fcf7b-gs-main",children:[(0,n.jsx)("div",{className:"fcf7b-gs-sidebar",children:w.map(e=>(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem"+(y===e.id?" active":""),onClick:()=>_(e.id),children:[(0,n.jsx)("i",{className:e.icon}),e.label]},e.id))}),(0,n.jsxs)("div",{className:"fcf7b-gs-body",children:["breakpoints"===y&&(0,n.jsx)(ke,{breakpoints:r,onChange:c,fieldGap:i,onFieldGapChange:o,containerColumnGap:d,onContainerColumnGapChange:f,containerRowGap:p,onContainerRowGapChange:m,containerPadding:u,onContainerPaddingChange:h}),"webhook"===y&&(0,n.jsx)(Be,{value:b,onChange:g,fields:j}),"spamProtection"===y&&(0,n.jsx)(Ge,{value:v,onChange:x}),k&&k.render({schema:s,setSchema:l,fields:j})]})]})]})})}function He({view:e,setView:a,fieldsCount:s,renderLoading:l,device:r,setDevice:c,navOpen:i,setNavOpen:o,schema:d,setSchema:f,breakpoints:p,onBreakpointsChange:m,fieldGap:u,onFieldGapChange:b,containerColumnGap:g,onContainerColumnGapChange:v,containerRowGap:x,onContainerRowGapChange:j,containerPadding:y,onContainerPaddingChange:_,webhook:N,onWebhookChange:w,spamProtection:k,onSpamProtectionChange:C,fields:S,canUndo:E,canRedo:I,undo:$,redo:G,exportForm:P,onImportFile:D,importInput:F,canvasBg:O,setCanvasBg:A,theme:M,setTheme:T,fullscreen:L,setFullscreen:R,saveState:B,dirty:z,saveError:U,saveProgress:H,quickSave:V}){const W="saving"===B?(0,t.__)("Saving…","compactform"):"saved"===B?(0,t.__)("Saved ✓","compactform"):"error"===B?(0,t.__)("Retry","compactform"):(0,t.__)("Save","compactform"),q=window.FCF7Builder||{},J=("dark"===M?q.logoLightUrl:q.logoUrl)||"",Y=`fcf7b-save${"saved"===B?" fcf7b-save--saved":""}${"error"===B?" fcf7b-save--error":""}`;return(0,n.jsxs)("div",{className:"fcf7b-toolbar",children:[(0,n.jsx)("div",{className:"fcf7b-brand",children:J?(0,n.jsx)("img",{src:J,alt:"CompactForm",className:"fcf7b-brand-logo"}):(0,n.jsxs)(n.Fragment,{children:["⬤"," CompactForm"]})}),(0,n.jsxs)("div",{className:"fcf7b-tabs",children:[(0,n.jsx)("button",{type:"button",className:"preview"===e?"active":"",onClick:()=>a("preview"),children:(0,t.__)("Builder","compactform")}),(0,n.jsx)("button",{type:"button",className:"code"===e?"active":"",onClick:()=>a("code"),children:(0,t.__)("Generated CF7","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-tb-right",children:[(0,n.jsxs)("span",{className:"fcf7b-count",children:[(0,t.sprintf)(/* translators: %d: number of fields on the canvas. */ /* translators: %d: number of fields on the canvas. */
    7 (0,t._n)("%d field","%d fields",s,"compactform"),s),l?" · "+(0,t.__)("rendering…","compactform"):""]}),(0,n.jsx)("div",{className:"fcf7b-devices",children:[["desktop","ri-computer-line",(0,t.__)("Desktop","compactform")],["tablet","ri-tablet-line",(0,t.__)("Tablet","compactform")],["mobile","ri-smartphone-line",(0,t.__)("Mobile","compactform")]].map(([e,t,a])=>(0,n.jsx)("button",{type:"button",title:a,className:r===e?"active":"",onClick:()=>c(e),children:(0,n.jsx)("i",{className:t})},e))}),(0,n.jsxs)("div",{className:"fcf7b-tb-group",children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost"+(i?" is-set":""),title:(0,t.__)("Navigator (form structure)","compactform"),disabled:"preview"!==e,onClick:()=>o(!i),children:(0,n.jsx)("i",{className:"ri-stack-line"})}),(0,n.jsx)(Ue,{schema:d,setSchema:f,breakpoints:p,onBreakpointsChange:m,fieldGap:u,onFieldGapChange:b,containerColumnGap:g,onContainerColumnGapChange:v,containerRowGap:x,onContainerRowGapChange:j,containerPadding:y,onContainerPaddingChange:_,webhook:N,onWebhookChange:w,spamProtection:k,onSpamProtectionChange:C,fields:S})]}),(0,n.jsxs)("div",{className:"fcf7b-tb-group",children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Undo (Ctrl+Z)","compactform"),disabled:!E,onClick:$,children:(0,n.jsx)("i",{class:"ri-arrow-go-back-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Redo (Ctrl+Y)","compactform"),disabled:!I,onClick:G,children:(0,n.jsx)("i",{class:"ri-arrow-go-forward-line"})}),(0,n.jsx)("span",{className:"fcf7b-tb-div","aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Export form (JSON)","compactform"),onClick:P,children:(0,n.jsx)("i",{class:"ri-download-2-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Import form (JSON)","compactform"),onClick:()=>F.current&&F.current.click(),children:(0,n.jsx)("i",{class:"ri-upload-2-line"})}),(0,n.jsx)("input",{ref:F,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:D}),(0,n.jsx)("span",{className:"fcf7b-tb-div","aria-hidden":"true"}),(0,n.jsx)(h,{value:O,onChange:A,disabled:"preview"!==e}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:"light"===M?(0,t.__)("Dark theme","compactform"):(0,t.__)("Light theme","compactform"),onClick:()=>T("light"===M?"dark":"light"),children:"light"===M?(0,n.jsx)("i",{class:"ri-moon-line"}):(0,n.jsx)("i",{class:"ri-sun-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:L?(0,t.__)("Exit fullscreen","compactform"):(0,t.__)("Fullscreen","compactform"),onClick:()=>R(!L),children:L?(0,n.jsx)("i",{class:"ri-fullscreen-exit-line"}):(0,n.jsx)("i",{class:"ri-fullscreen-line"})})]}),(0,n.jsx)("button",{type:"button",className:Y,disabled:"saving"===B||!z&&"error"!==B,title:"error"===B?U:z?(0,t.__)("Save form layout","compactform"):(0,t.__)("No unsaved changes","compactform"),"aria-busy":"saving"===B,onClick:V,children:W})]}),(0,n.jsx)("div",{className:`fcf7b-progress${"idle"===B?"":" is-active"}${"error"===B?" fcf7b-progress--error":""}`,role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":H,children:(0,n.jsx)("span",{className:"fcf7b-progress-fill",style:{width:`${H}%`}})})]})}function Ve({search:a,setSearch:s,onAdd:l,schema:r,setSchema:c}){const[i,o]=(0,e.useState)("fields"),d=b.categories||{},f=g.filter(e=>!a||e.title.toLowerCase().includes(a.toLowerCase())),p=ne.applyFilters("fcf7b.paletteTabs",[]),m=p.find(e=>e.id===i),u=e=>(0,n.jsxs)("button",{className:"fcf7b-pal-item",type:"button",draggable:!0,onDragStart:()=>{j.value={kind:"new",type:e.type}},onDragEnd:()=>{j.value=null},onClick:()=>l(e.type,null),children:[(0,n.jsx)("span",{className:`fcf7b-pal-icon ${e.icon}`}),(0,n.jsx)("span",{className:"fcf7b-pal-label",children:e.title}),!!e.isPro&&(0,n.jsx)("span",{className:"fcf7b-pal-pro",title:(0,t.__)("Pro","compactform"),children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 640",children:(0,n.jsx)("path",{d:"M345 151.2C354.2 143.9 360 132.6 360 120C360 97.9 342.1 80 320 80C297.9 80 280 97.9 280 120C280 132.6 285.9 143.9 295 151.2L226.6 258.8C216.6 274.5 195.3 278.4 180.4 267.2L120.9 222.7C125.4 216.3 128 208.4 128 200C128 177.9 110.1 160 88 160C65.9 160 48 177.9 48 200C48 221.8 65.5 239.6 87.2 240L119.8 457.5C124.5 488.8 151.4 512 183.1 512L456.9 512C488.6 512 515.5 488.8 520.2 457.5L552.8 240C574.5 239.6 592 221.8 592 200C592 177.9 574.1 160 552 160C529.9 160 512 177.9 512 200C512 208.4 514.6 216.3 519.1 222.7L459.7 267.3C444.8 278.5 423.5 274.6 413.5 258.9L345 151.2z"})})}),ne.applyFilters("fcf7b.paletteItemBadge",null,e)]},e.type);return(0,n.jsxs)("div",{className:"fcf7b-palette",children:[!!p.length&&(0,n.jsxs)("div",{className:"fcf7b-pal-switch",children:[(0,n.jsx)("button",{type:"button",className:"fields"===i?"active":"",onClick:()=>o("fields"),children:"Fields"}),p.map(e=>(0,n.jsx)("button",{type:"button",className:i===e.id?"active":"",onClick:()=>o(e.id),children:e.label},e.id))]}),(0,n.jsx)("input",{className:"fcf7b-search",type:"search",placeholder:m?(0,t.sprintf)(/* translators: %s: name of the palette group being searched. */ /* translators: %s: name of the palette group being searched. */
    8 (0,t.__)("Search %s...","compactform"),m.label.toLowerCase()):(0,t.__)("Search fields...","compactform"),value:a,onChange:e=>s(e.target.value)}),m?m.render({search:a,onAdd:l,schema:r,setSchema:c}):Object.keys(d).map(e=>{const t=f.filter(t=>t.category===e);return t.length?(0,n.jsxs)("div",{className:"fcf7b-pal-group",children:[(0,n.jsx)("div",{className:"fcf7b-pal-title",children:d[e]}),(0,n.jsx)("div",{className:"fcf7b-pal-grid",children:t.map(u)})]},e):null})]})}function We(e,t){return e==t||String(e)===String(t)}function qe(e,t,n="desktop"){return!e||"object"!=typeof e||Object.keys(e).every(a=>{const{key:s,sub:l,negate:r}=function(e){let t=String(e);const n=t.endsWith("!");n&&(t=t.slice(0,-1));let a="";const s=t.indexOf("[");return s>-1&&t.endsWith("]")&&(a=t.slice(s+1,-1),t=t.slice(0,s)),{key:t,sub:a,negate:n}}(a),c=e[a],i=function(e,t,n,a){const s=v[e.type]||{},l=s.defaults||{};let r=void 0!==e[t]?e[t]:l[t];const c=(s.controls||[]).find(e=>e.key===t);if(c&&c.responsive&&r&&"object"==typeof r&&!Array.isArray(r)){const e=V(a).find(e=>void 0!==r[e]);r=e?r[e]:void 0}return n&&(r=r&&"object"==typeof r?r[n]:void 0),r??""}(t,s,l,n),o=Array.isArray(c)?c.some(e=>We(i,e)):We(i,c);return r?!o:o})}const Je=e=>null==e?"":String(e).replace(/[{};]|[\r\n]/g,"").trim(),Ye=(e,t=9999)=>{if(""===e||null==e||isNaN(e))return"";const n=Number(e);return Math.abs(n)<=t?String(n):""},Ke=(e,t)=>{if(!e||"object"!=typeof e)return"";if("custom"===e.unit){const n=Je(e.customValue);return""===n?"":t.replace(/\{\{TOP\}\}/g,n).replace(/\{\{RIGHT\}\}|\{\{BOTTOM\}\}|\{\{LEFT\}\}|\{\{UNIT\}\}/g,"").replace(/ {2,}/g," ").replace(/ ;/g,";").trim()}const n={};let a=!1;return["top","right","bottom","left"].forEach(t=>{const s=Ye(e[t]);""!==s&&(a=!0),n[t]=""!==s?s:"0"}),a?t.replace(/\{\{TOP\}\}/g,n.top).replace(/\{\{RIGHT\}\}/g,n.right).replace(/\{\{BOTTOM\}\}/g,n.bottom).replace(/\{\{LEFT\}\}/g,n.left).replace(/\{\{UNIT\}\}/g,e.unit||"px"):""},Xe={slider:(e,t)=>{if(!e||"object"!=typeof e)return"";if("custom"===e.unit){const n=Je(e.size);return""===n?"":t.replace(/\{\{SIZE\}\}/g,n).replace(/\{\{UNIT\}\}/g,"")}const n=Ye(e.size,5e3);return""===n?"":t.replace(/\{\{SIZE\}\}/g,n).replace(/\{\{UNIT\}\}/g,e.unit||"px")},dimensions:Ke,typography:e=>{if(!e||"object"!=typeof e)return"";const t=[],n=(window.FCF7Builder?.fontFamilies||{})[e.family]?.stack;n&&t.push(`font-family:${Je(n)}`);const a=(e,t)=>{if(!e||"object"!=typeof e)return"";if("custom"===e.unit)return Je(e.size);const n=Ye(e.size);return""===n?"":n+(e.unit||t)},s=a(e.size,"px");s&&t.push(`font-size:${s}`),e.weight&&t.push(`font-weight:${Je(e.weight)}`),e.transform&&t.push(`text-transform:${Je(e.transform)}`),e.style&&t.push(`font-style:${Je(e.style)}`),e.decoration&&t.push(`text-decoration:${Je(e.decoration)}`);const l=a(e.lineHeight,"em");l&&t.push(`line-height:${l}`);const r=a(e.letterSpacing,"px");return r&&t.push(`letter-spacing:${r}`),t.length?t.join(";")+";":""},border:(e,t,n)=>{if(!e||"object"!=typeof e||!e.style)return"";if("none"===e.style)return"border-style:none;";const a=[`border-style:${Je(e.style)}`],s=e.width&&"object"==typeof e.width?e.width:{},l=V(n).find(e=>void 0!==s[e]),r=l?s[l]:B.some(e=>void 0!==s[e])?null:s,c=r?Ke(r,"border-width:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};"):"";return c&&a.push(c.replace(/;$/,"")),e.color&&a.push(`border-color:${Je(e.color)}`),a.join(";")+";"},box_shadow:e=>{if(!e||"object"!=typeof e)return"";const t=Je(e.color),n=t=>{const n=Ye(e[t]);return""===n?"0":n},a=["horizontal","vertical","blur","spread"].some(t=>""!==Ye(e[t]));return""!==t||a?`box-shadow: ${e.inset?"inset ":""}${n("horizontal")}px ${n("vertical")}px ${n("blur")}px ${n("spread")}px${t?" "+t:""};`:""}},Ze=(e,t)=>{if(null==e||"object"==typeof e)return"";const n="boolean"==typeof e?e?"1":"":Je(e);return""===n?"":t.replace(/\{\{VALUE\}\}/g,n)};function Qe(e,t="desktop",n=".fcf7b-canvas-row"){const a=[];return(e||[]).forEach(e=>{const s=v[e.type];if(!s||!e.id)return;const l=`${n} .fcf7b-field-${e.id}`,r=e=>(e||[]).reduce((e,t)=>(t.id&&(e[t.id]=t),e),{}),c=r(s.sections),i=r(s.popovers),o=r(s.tab_groups),d=r(s.tab_items);(s.controls||[]).forEach(n=>{const s=n.key;if(!s||!(s in e))return;if(n.popover&&!e[n.popover])return;const r=c[n.section];if(r&&r.condition&&!qe(r.condition,e,"desktop"))return;const f=n.popover?i[n.popover]:null;if(f&&f.condition&&!qe(f.condition,e,"desktop"))return;const p=n.tab_group?o[n.tab_group]:null;if(p&&p.condition&&!qe(p.condition,e,"desktop"))return;const m=n.tab_item?d[n.tab_item]:null;if(m&&m.condition&&!qe(m.condition,e,"desktop"))return;if(n.condition&&!qe(n.condition,e,t))return;const u=n.selectors||(n.selector?{[n.selector]:""}:null);if(!u)return;let h=e[s];if(n.responsive&&h&&"object"==typeof h&&!Array.isArray(h)){const e=V(t);if(B.some(e=>void 0!==h[e])){const t=e.find(e=>!q(h[e]));h=t?h[t]:void 0}}if(void 0===h)return;const b=Xe[n.type]||Ze;Object.keys(u).forEach(e=>{const n=b(h,String(u[e]),t);if(!n||!n.trim())return;const s=e.replace(/\{\{WRAPPER\}\}/g,l);a.push(`${s}{${n.trim()}}`)})})}),a.join("\n")}function et({field:t,def:a,handlers:s,interactions:l={}}){const r=(0,e.useRef)(null);(0,e.useEffect)(()=>{const e=r.current;if(e)return s.mount(e,t,a,l),()=>s.unmount?.(e)},[]);const c=(0,e.useRef)(!1);return(0,e.useEffect)(()=>{c.current?r.current&&s.update?.(r.current,t,a,l):c.current=!0},[JSON.stringify(t)]),(0,n.jsx)("div",{className:"fcf7b-pv-custom",ref:r})}const tt=(e,t)=>e.field_icon?(0,n.jsxs)("span",{className:"fcf7b-pv-iconwrap fcf7-field-icon",children:[(0,n.jsx)("i",{className:e.field_icon}),t]}):t;function nt({field:e,def:t,children:a,wrapClass:s=""}){const l=e.label??(t.title||""),r=""!==(e.required_asterisk??"")?e.required_asterisk:"*",c=e.required?(0,n.jsxs)("span",{className:"fcf7b-req",children:[" ",r]}):null,i=(e.description||"").trim()?(0,n.jsx)("small",{className:"fcf7b-pv-desc fcf7b-desc",children:e.description.trim()}):null,o=(0,n.jsx)("span",{className:`wpcf7-form-control-wrap ${s}`.trim(),"data-name":e.name||"",children:a});return(0,n.jsxs)("div",{className:`fcf7b-pv-field fcf7b-field-wrap fcf7b-field-${e.id}`,children:[(0,n.jsxs)("div",{className:"fcf7b-field",children:[""!==l?(0,n.jsxs)("span",{className:"fcf7b-pv-label fcf7b-field-label",children:[l,c]}):null,tt(e,o)]}),i]})}function at(e,t={},a="desktop",s={}){const l=le.getComponent(e.type);if(l)return(0,n.jsx)(l,{field:e,def:t,device:a,onChange:s.onChange,beginGesture:s.beginGesture,endGesture:s.endGesture,allFields:s.allFields,actions:s.actions,selected:s.selected,multi:s.multi,openMenu:s.openMenu});const r=le.get(e.type);return r?(0,n.jsx)(et,{field:e,def:t,handlers:r,interactions:s},e.type):(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("input",{className:"fcf7b-pv-input wpcf7-form-control",type:"text",placeholder:e.placeholder||""})})}function st({field:e,def:a,nested:s,actions:l,openMenu:r,onAdd:c,multi:i=[]}){const o=a&&a.title?a.title:e.type,d="container"===e.type,f=t=>{t.stopPropagation(),l.select(e.id,t.ctrlKey||t.metaKey)},p=t=>{t.preventDefault(),t.stopPropagation(),i.includes(e.id)||l.select(e.id),r&&r(e.id,t.clientX,t.clientY)},m=ne.applyFilters("fcf7b.cardHandleBadge",null,e,a);return d&&!s?(0,n.jsxs)("div",{className:"fcf7b-hdl fcf7b-hdl-tab",onContextMenu:p,children:[c&&(0,n.jsx)("button",{type:"button",title:(0,t.__)("Add a container below","compactform"),onClick:e=>{e.stopPropagation(),c()},children:(0,n.jsx)("i",{className:"ri-add-line"})}),(0,n.jsx)("span",{className:"fcf7b-hdl-grip",title:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("%s — drag to reorder","compactform"),o),onClick:f,children:(0,n.jsx)("i",{className:"ri-draggable"})}),(0,n.jsx)("button",{type:"button",title:(0,t.__)("Delete","compactform"),className:"danger",onClick:t=>{t.stopPropagation(),l.remove(e.id)},children:(0,n.jsx)("i",{className:"ri-close-line"})})]}):d?(0,n.jsxs)("div",{className:"fcf7b-hdl fcf7b-hdl-box",onContextMenu:p,children:[(0,n.jsx)("button",{type:"button",title:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("%s — click to edit, drag to move","compactform"),o),onClick:f,children:(0,n.jsx)("i",{className:"ri-draggable"})}),m]}):(0,n.jsxs)("div",{className:"fcf7b-hdl fcf7b-hdl-pen",onContextMenu:p,children:[m,(0,n.jsx)("button",{type:"button",title:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("Edit %s","compactform"),o),onClick:f,children:(0,n.jsx)("i",{className:"ri-pencil-line"})})]})}const lt=/Mac|iPhone|iPad/i.test(window.navigator&&(window.navigator.userAgentData?.platform||window.navigator.platform)||"")?"⌘":"^";function rt({menu:t,fields:a,actions:s,onClose:l}){const r=(0,e.useRef)(null),[c,i]=(0,e.useState)(null);if((0,e.useLayoutEffect)(()=>{if(!t||!r.current)return void i(null);const e=r.current.getBoundingClientRect();i({x:Math.max(8,Math.min(t.x,window.innerWidth-e.width-8)),y:Math.max(8,Math.min(t.y,window.innerHeight-e.height-8))})},[t]),!t)return null;const o=!t.id,d=o?[]:t.ids&&t.ids.length?t.ids:[t.id],f=d.length>1,p=d.length;return(0,n.jsx)("div",{className:"fcf7b-ctxmenu-backdrop",onClick:e=>{e.stopPropagation(),l()},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),l()},children:(0,n.jsxs)("div",{ref:r,className:"fcf7b-ctxmenu",style:{left:c?c.x:t.x,top:c?c.y:t.y,visibility:c?"visible":"hidden"},onClick:e=>e.stopPropagation(),children:[f&&(0,n.jsxs)("div",{className:"fcf7b-ctxmenu-title",children:[p," selected"]}),!o&&(0,n.jsxs)("button",{type:"button",onClick:()=>{O(a,d),l()},children:[(0,n.jsx)("i",{className:"ri-file-copy-2-line"})," ",f?`Copy All (${p})`:"Copy",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[lt,"+C"]})]}),(0,n.jsxs)("button",{type:"button",disabled:!D.value,onClick:()=>{D.value&&s.paste(D.value,t.id),l()},children:[(0,n.jsx)("i",{className:"ri-clipboard-line"})," Paste",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[lt,"+V"]})]}),!o&&(0,n.jsxs)("button",{type:"button",disabled:!D.value,onClick:()=>{d.forEach(e=>{const t=T(a.find(t=>t.id===e));Object.keys(t).length&&s.updateField(e,t)}),l()},children:[(0,n.jsx)("i",{className:"ri-brush-line"})," ",f?"Paste Style to All":"Paste Style",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[lt,"+⇧+V"]})]}),!f&&!o&&(()=>{const e=a.find(e=>e.id===t.id),r=e?v[e.type]:null;return e?ne.applyFilters("fcf7b.cardContextMenuItems",[],e,r,s,l).map(e=>(0,n.jsx)("span",{children:e.render()},e.id)):null})(),!o&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"fcf7b-ctxmenu-sep"}),(0,n.jsxs)("button",{type:"button",onClick:()=>{l(),s.duplicateMany(d)},children:[(0,n.jsx)("i",{className:"ri-file-copy-line"})," ",f?`Duplicate All (${p})`:"Duplicate",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[lt,"+D"]})]}),(0,n.jsxs)("button",{type:"button",className:"danger",onClick:()=>{l(),s.removeMany(d)},children:[(0,n.jsx)("i",{className:"ri-delete-bin-line"})," ",f?`Delete All (${p})`:"Delete",(0,n.jsx)("span",{className:"fcf7b-ctxmenu-key",children:"⌦"})]})]})]})})}function ct({fields:a,selected:s,multi:l=[],actions:r,device:c="desktop",breakpoints:i={},background:o="",fieldGap:d,containerColumnGap:f,containerRowGap:m,containerPadding:u}){const h=P("root"),[b,g]=(0,e.useState)(null),y=(e,t,n)=>g({id:e,x:t,y:n,ids:e?r.targetIds(e):[]}),w={parentId:null,stepId:null},k=e=>{if(null==e||""===e)return;if("object"!=typeof e)return e;const t=V(c).find(t=>void 0!==e[t]&&""!==e[t]);return void 0===t?void 0:e[t]},C=k(d),G=[["column-gap",k(f)],["row-gap",k(m)]].filter(([,e])=>void 0!==e).map(([e,t])=>`${e}:${t}px`).join(";"),D=V(c).find(e=>u&&!q(u[e])),F=[G,D?Ke(u[D],"padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};"):""].filter(Boolean).join(";"),O=e=>{E(),j.value&&("new"===j.value.kind?r.add(j.value.type,e,w):"move"===j.value.kind&&r.move(N(),e,w),j.value=null)},A=a.map((e,t)=>{if(e.parentId)return null;const i=v[e.type]||{title:e.type,icon:""},o=x[e.id]?{...i,builderMarkup:x[e.id]}:i,d={onChange:(t,n)=>r.updateField(e.id,t,n),beginGesture:r.beginGesture,endGesture:r.endGesture,allFields:a,actions:r,selected:s,multi:l,openMenu:y},f=J(e,o,c);return(0,n.jsx)("div",{className:`fcf7b-cell fcf7b-field-${e.id}${h===t?" is-drop-before":""}${h===t+1&&(t+1>=a.length||a[t+1].parentId)?" is-drop-after":""}`,"data-index":t,onDragOver:e=>{e.preventDefault(),e.stopPropagation();const n=t+$(e,e.currentTarget,"y");S("root",n,()=>O(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:`fcf7b-card${l.includes(e.id)?" is-selected":""} ${ne.applyFilters("fcf7b.cardClassName","",e)}`.trim(),draggable:!0,onDragStart:t=>{t.target.closest&&t.target.closest("input, textarea, select")?t.preventDefault():(_(e.id,l),t.stopPropagation())},onClick:t=>{t.stopPropagation(),r.select(e.id,t.ctrlKey||t.metaKey)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),l.includes(e.id)||r.select(e.id),y(e.id,t.clientX,t.clientY)},children:[(0,n.jsx)(st,{field:e,def:o,nested:!1,actions:r,multi:l,openMenu:y,onAdd:()=>r.add("container",t+1,w)}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:at(f,o,c,d)})]})},e.id)});return(0,n.jsxs)("div",{className:`fcf7b-canvas-wrap is-${c}`,style:p(o)?{background:o}:null,onClick:()=>r.select(null),onClickCapture:e=>{e.target.closest&&e.target.closest("a[href]")&&e.preventDefault()},onContextMenu:e=>{e.preventDefault(),y(null,e.clientX,e.clientY)},onDragOver:e=>{e.preventDefault();const t=((e,t)=>{const n=e.querySelector(".fcf7b-canvas-row");if(!n)return a.length;const s=Array.from(n.querySelectorAll(":scope > .fcf7b-cell"));for(let e=0;e<s.length;e++){const n=s[e].getBoundingClientRect();if(t<n.top+n.height/2)return Number(s[e].dataset.index)}return a.length})(e.currentTarget,e.clientY);S("root",t,()=>O(t))},onDrop:e=>{e.preventDefault(),I()||O(a.length)},children:[a.length?(0,n.jsxs)("div",{className:"fcf7b-canvas-grid wpcf7",style:U(c,i)?{maxWidth:U(c,i)+"px"}:null,children:[(0,n.jsxs)("style",{children:[F?`.fcf7b-canvas-row .fcf7-container{${F}}\n`:"",Qe(a,c)]}),(0,n.jsx)("div",{className:"fcf7b-canvas-row",style:void 0===C?null:{"--fcf7b-cell-gap":C+"px"},children:A})]}):(0,n.jsxs)("div",{className:"fcf7b-empty"+(h>=0?" is-drop-in":""),children:[(0,n.jsx)("div",{className:"fcf7b-empty-emoji",children:"🧩"}),(0,n.jsx)("div",{children:(0,t.__)("Drag a field here, or click one on the left to add it.","compactform")})]}),(0,n.jsx)(rt,{menu:b,fields:a,actions:r,onClose:()=>g(null)})]})}const it={},ot={registerComponent(e,t){e&&"function"==typeof t&&(it[e]=t)},getComponent:e=>it[e]||null,getTypes:()=>Object.keys(it)};function dt({ctrl:e,value:t,update:a}){const s=["number","time","date"].includes(e.type)?e.type:"text",l=void 0!==t?t:e.default??"";return(0,n.jsx)("input",{type:s,value:l,placeholder:e.placeholder||void 0,min:"number"===s?0:void 0,onChange:t=>{return a(e.key,(n=t.target.value,e.slug?String(n).toLowerCase().replace(/[^a-z0-9_-]/g,"-"):n));var n},onBlur:t=>{if(!e.slug)return;const n=t.target.value.replace(/^-+|-+$/g,"");n!==t.target.value&&a(e.key,n)}})}function ft({ctrl:e,value:t,update:a,field:s,beginGesture:l,endGesture:r,allFields:c,device:i="desktop"}){const o=e.type;let d;if(e.responsive){const n=t&&"object"==typeof t&&!Array.isArray(t)?t:{};t=n[i];const l=V(i).slice(1).find(e=>!q(n[e]));d=l?n[l]:void 0,void 0===d&&s&&(d=function(e,t,n="desktop"){const a=(_e[e]||{})[t];if(!a)return;const s=function(e,t="desktop"){const n=(y.value||{})[e];if(q(n))return;if("object"!=typeof n||Array.isArray(n))return n;const a=V(t).find(e=>!q(n[e]));return void 0===a?void 0:n[a]}(a,n);return void 0===s?function(e,t){if("container"!==e)return;const n=je[t];return void 0!==n?"padding"===t?ye(n):n:void 0}(e,t):s}(s.type,e.key,i));const r=a;a=(t,a)=>{const s=t&&"object"==typeof t?t:{[t]:a};r(e.key,{...n,[i]:s[e.key]})}}const f=ot.getComponent(o)||dt,p={ctrl:e,value:t,inherited:d,update:a,field:s,allFields:c,device:i,beginGesture:l,endGesture:r},m=(0,n.jsx)(f,{...p}),u=t=>e.separator===t?(0,n.jsx)("div",{className:"fcf7b-ctl-sep","aria-hidden":"true"}):null,h=e.description?(0,n.jsx)("p",{className:"fcf7b-prop-desc",children:e.description}):null;if(f.standalone)return(0,n.jsxs)(n.Fragment,{children:[u("before"),m,h,u("after")]});const b=!1===e.label_block||"color"===o||"typography"===o||"icon"===o||"box_shadow"===o;return(0,n.jsxs)(n.Fragment,{children:[u("before"),(0,n.jsxs)("div",{className:"fcf7b-prop"+(b?" fcf7b-prop--inline":""),children:[(0,n.jsxs)("label",{className:"fcf7b-prop-label",children:[e.label,e.responsive?(0,n.jsx)("i",{className:`fcf7b-ctl-device ${H[i]}`,title:i}):null,e.hint?(0,n.jsx)("span",{className:"fcf7b-prop-hint",children:e.hint}):null]}),m,h]}),u("after")]})}function pt({toggleCtrl:e,controls:t,field:s,update:l,beginGesture:r,endGesture:c,allFields:i,device:o}){const d=!!s[e.key],f=(v[s.type]||{}).defaults||{},p=t.filter(e=>qe(e.condition,s,o));return(0,n.jsx)("div",{className:"fcf7b-popgroup"+(d?" is-on":""),children:(0,n.jsxs)("div",{className:"fcf7b-popgroup-head",children:[(0,n.jsx)("label",{className:"fcf7b-prop-label",children:e.label}),(0,n.jsxs)("span",{className:"fcf7b-popgroup-tools",children:[d?(0,n.jsx)("button",{type:"button",className:"fcf7b-popgroup-reset",title:"Reset",onClick:()=>{const n={[e.key]:!1};t.forEach(e=>{n[e.key]=f[e.key]}),l(n)},children:(0,n.jsx)("i",{className:"ri-restart-line","aria-hidden":"true"})}):null,(0,n.jsx)(a,{className:"fcf7b-popgroup-pop",triggerClassName:"fcf7b-popgroup-edit"+(d?" is-on":""),popClassName:"fcf7b-popgroup-panel",title:d?`Edit ${e.label}`:`Enable ${e.label}`,onOpenChange:t=>{t&&!d&&l(e.key,!0)},trigger:(0,n.jsx)("i",{className:"ri-pencil-line","aria-hidden":"true"}),children:p.map(e=>(0,n.jsx)(ft,{ctrl:e,field:s,value:s[e.key],update:l,beginGesture:r,endGesture:c,allFields:i,device:o},e.key))})]})]})})}function mt({items:t,controls:a,field:s,update:l,beginGesture:r,endGesture:c,allFields:i,device:o}){const d=(t||[]).filter(e=>qe(e.condition,s,o)),[f,p]=(0,e.useState)(d[0]?.id);if(!d.length)return null;const m=d.some(e=>e.id===f)?f:d[0].id,u=(a||[]).filter(e=>e.tab_item===m&&qe(e.condition,s,o));return(0,n.jsxs)("div",{className:"fcf7b-ctabs",children:[(0,n.jsx)("div",{className:"fcf7b-ctabs-nav",children:d.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-ctab"+(e.id===m?" active":""),onClick:()=>p(e.id),children:e.label},e.id))}),(0,n.jsx)("div",{className:"fcf7b-ctabs-body",children:u.map(e=>(0,n.jsx)(ft,{ctrl:e,field:s,value:s[e.key],update:l,beginGesture:r,endGesture:c,allFields:i,device:o},e.key))})]})}function ut({field:a,update:s,beginGesture:l,endGesture:r,allFields:c,device:i}){const[o,d]=(0,e.useState)("settings"),[f,p]=(0,e.useState)({});if(!a)return(0,n.jsxs)("div",{className:"fcf7b-props fcf7b-props-empty",children:[(0,n.jsx)("div",{className:"fcf7b-empty-emoji",children:(0,n.jsx)("i",{class:"ri-cursor-hand"})}),(0,n.jsx)("p",{children:(0,t.__)("Select a field to edit its settings.","compactform")})]});const m=v[a.type]||{controls:[],sections:[]},u=e=>(e||[]).reduce((e,t)=>(t.id&&(e[t.id]=t),e),{}),h=u(m.tab_groups),g=u(m.tab_items),x=Object.keys(b.tabs||{settings:(0,t.__)("Settings","compactform"),style:(0,t.__)("Style","compactform"),advanced:(0,t.__)("Advanced","compactform")}).filter(e=>m.controls.some(t=>t.tab===e)),j=x.includes(o)?o:x[0]||"settings",y=(m.sections||[]).filter(e=>e.tab===j&&qe(e.condition,a,i)).map(e=>({section:e,controls:m.controls.filter(t=>t.section===e.id&&!t.popover&&(e=>qe(e.condition,a,i)&&(!e.tab_group||qe((h[e.tab_group]||{}).condition,a,i))&&(!e.tab_item||qe((g[e.tab_item]||{}).condition,a,i)))(t))})).filter(e=>e.controls.length>0),_=`${a.type}|${j}`,N=f[_],w=y[0]?.section.id||"";let k;k=void 0===N?w:""===N?"":y.some(e=>e.section.id===N)?N:w;const C=e=>{const t=[],o=new Set;return e.forEach(e=>{if(e.tab_group){if(o.has(e.tab_group))return;o.add(e.tab_group);const d=h[e.tab_group]||{};return"before"===d.separator&&t.push((0,n.jsx)("div",{className:"fcf7b-ctl-sep","aria-hidden":"true"},`sep-b-${e.tab_group}`)),t.push((0,n.jsx)(mt,{items:(m.tab_items||[]).filter(t=>t.group===e.tab_group),controls:(m.controls||[]).filter(t=>t.tab_group===e.tab_group),field:a,update:s,beginGesture:l,endGesture:r,allFields:c,device:i},`${a.id}:tabs-${e.tab_group}`)),void("after"===d.separator&&t.push((0,n.jsx)("div",{className:"fcf7b-ctl-sep","aria-hidden":"true"},`sep-a-${e.tab_group}`)))}e.popover_toggle?t.push((0,n.jsx)(pt,{toggleCtrl:e,controls:(m.controls||[]).filter(t=>t.popover===e.key),field:a,update:s,beginGesture:l,endGesture:r,allFields:c,device:i},`${a.id}:${e.key}`)):t.push((0,n.jsx)(ft,{ctrl:e,field:a,value:a[e.key],update:s,beginGesture:l,endGesture:r,allFields:c,device:i},`${a.id}:${e.key}`))}),t},S=ne.applyFilters("fcf7b.propsBanners",[],a,m,c);return(0,n.jsxs)("div",{className:"fcf7b-props",children:[(0,n.jsxs)("div",{className:"fcf7b-props-head",children:[m.icon?(0,n.jsx)("span",{className:`fcf7b-props-head-icon ${m.icon}`,"aria-hidden":"true"}):null,(0,n.jsx)("span",{children:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("Edit %s","compactform"),m.title||a.type)})]}),S.length>0&&(0,n.jsx)("div",{className:"fcf7b-props-banners",children:S.map(e=>(0,n.jsx)("span",{children:e.render()},e.id))}),(0,n.jsx)("div",{className:"fcf7b-props-tabs",children:x.map(e=>{const{label:t,icon:a}=(e=>{const t=b.tabs?.[e];return t&&"object"==typeof t?t:{label:t||e,icon:""}})(e);return(0,n.jsxs)("button",{type:"button",className:"fcf7b-ptab"+(j===e?" active":""),onClick:()=>d(e),children:[a?(0,n.jsx)("i",{className:a,"aria-hidden":"true"}):null,(0,n.jsx)("span",{children:t})]},e)})}),(0,n.jsx)("div",{className:"fcf7b-props-body",children:y.map(({section:e,controls:t})=>{const a=e.id===k;return(0,n.jsxs)("div",{className:"fcf7b-sec"+(a?" open":""),children:[(0,n.jsxs)("button",{type:"button",className:"fcf7b-sec-head","aria-expanded":a,onClick:()=>{return t=e.id,p(e=>({...e,[_]:k===t?"":t}));var t},children:[(0,n.jsx)("i",{className:"ri-arrow-right-s-line fcf7b-sec-arrow","aria-hidden":"true"}),(0,n.jsx)("span",{children:e.label})]}),a&&(0,n.jsx)("div",{className:"fcf7b-sec-body",children:C(t)})]},e.id)})})]})}const ht="fcf7b-nav-box",bt=e=>Array.isArray(e.steps)&&e.steps.length?e.steps:[{id:"step_1",label:(0,t.sprintf)(/* translators: %d: step number. */ /* translators: %d: step number. */(0,t.__)("Step %d","compactform"),1)}];function gt({fields:a,selected:s,multi:l=[],actions:r,onClose:c}){const[i,o]=(0,e.useState)(()=>function(e){const t=Math.min(Math.max(220,e.w||220),window.innerWidth-16),n=Math.min(Math.max(180,e.h||180),window.innerHeight-16);return{w:t,h:n,x:Math.max(8,Math.min(e.x||0,window.innerWidth-t-8)),y:Math.max(8,Math.min(e.y||0,window.innerHeight-n-8))}}(function(){try{const e=JSON.parse(window.localStorage.getItem(ht));if(e&&"object"==typeof e)return e}catch(e){}return null}()||{x:window.innerWidth-360,y:120,w:300,h:420})),[d,f]=(0,e.useState)(()=>new Set),[p,m]=(0,e.useState)(null),[u,h]=(0,e.useState)(null),b=(0,e.useRef)(null);(0,e.useEffect)(()=>{try{window.localStorage.setItem(ht,JSON.stringify(i))}catch(e){}},[i]);const g=new Map(a.map(e=>[e.id,e]));(0,e.useEffect)(()=>{if(!s)return;const e=(e=>{const t=[];let n=g.get(e);for(;n&&n.parentId;)t.push(n.parentId),n=g.get(n.parentId);return t})(s);e.length&&f(t=>{if(!e.some(e=>t.has(e)))return t;const n=new Set(t);return e.forEach(e=>n.delete(e)),n})},[s]);const x=e=>t=>{t.button||(t.preventDefault(),t.currentTarget.setPointerCapture(t.pointerId),b.current={kind:e,sx:t.clientX,sy:t.clientY,...i})},y=e=>document.querySelector(`.fcf7b-field-${e}`),w=(e,t)=>{const n=y(e);n&&n.classList.toggle("fcf7b-nav-peek",t)},k=(e,t)=>{if(!e)return a.filter(e=>!e.parentId);const n=g.get(e);if(n&&"multistep"===n.type){const s=bt(n),l=new Set(s.map(e=>e.id)),r=t===s[0].id;return a.filter(n=>n.parentId===e&&(n.stepId===t||r&&!l.has(n.stepId)))}return a.filter(t=>t.parentId===e)},C=(e,t,n)=>{const s=k(e,t);if(n<s.length)return a.indexOf(s[n]);if(s.length)return a.indexOf(s[s.length-1])+1;const l=e?a.findIndex(t=>t.id===e):-1;return-1===l?a.length:l+1},S=(e,t)=>{let n=g.get(e);for(;n;){if(n.id===t)return!0;n=n.parentId?g.get(n.parentId):null}return!1},I=(e,t,n)=>{const a=t.getBoundingClientRect(),s=(e.clientY-a.top)/(a.height||1);return"container"===(l=n.type)||"repeater"===l||"multistep"===l?s<.3?"before":s>.7?"after":"inside":s>.5?"after":"before";var l},$=(e,s)=>{const c=v[e.type]||{title:e.type,icon:"ri-square-line"},i=a.filter(t=>t.parentId===e.id),o=!!i.length||"multistep"===e.type,u=!d.has(e.id),b=(e.label||e.name||c.title||e.type).toString(),g=p&&p.id===e.id?` is-drop-${p.where}`:"";return(0,n.jsxs)("div",{className:"fcf7b-nav-node",children:[(0,n.jsxs)("div",{className:`fcf7b-nav-row${l.includes(e.id)?" is-selected":""}${g}`,style:{paddingLeft:6+14*s},draggable:!0,onDragStart:t=>{_(e.id,l),t.stopPropagation()},onDragEnd:()=>m(null),onDragOver:t=>{t.preventDefault(),t.stopPropagation(),j.value&&m({id:e.id,where:I(t,t.currentTarget,e)})},onDrop:t=>{t.preventDefault(),t.stopPropagation(),((e,t)=>{if(m(null),E(),!j.value)return;let n,a,s;if("inside"===t)n=e.id,a="multistep"===e.type?bt(e)[0].id:null,s=k(n,a).length;else{n=e.parentId||null,a=e.stepId||null;const l=k(n,a),r=l.findIndex(t=>t.id===e.id);s=(-1===r?l.length:r)+("after"===t?1:0)}if(n&&N().some(e=>S(n,e)))return void(j.value=null);const l={parentId:n,stepId:a},c=C(n,a,s);"new"===j.value.kind?r.add(j.value.type,c,l):"move"===j.value.kind&&r.move(N(),c,l),j.value=null})(e,I(t,t.currentTarget,e))},onClick:t=>((e,t)=>{if(r.select(e,t),t)return;const n=y(e);n&&n.scrollIntoView({block:"nearest",behavior:"smooth"})})(e.id,t.ctrlKey||t.metaKey),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),w(e.id,!1),l.includes(e.id)||r.select(e.id),h({id:e.id,x:t.clientX,y:t.clientY,ids:r.targetIds(e.id)})},onMouseEnter:()=>w(e.id,!0),onMouseLeave:()=>w(e.id,!1),children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-nav-caret"+(o?"":" is-empty"),tabIndex:o?0:-1,onClick:t=>{var n;t.stopPropagation(),o&&(n=e.id,f(e=>{const t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}))},children:o?(0,n.jsx)("i",{className:u?"ri-arrow-down-s-line":"ri-arrow-right-s-line"}):null}),(0,n.jsx)("i",{className:`fcf7b-nav-icon ${c.icon||"ri-square-line"}`}),(0,n.jsx)("span",{className:"fcf7b-nav-label",title:`${b} · ${c.title||e.type}`,children:b}),(0,n.jsxs)("span",{className:"fcf7b-nav-acts",children:[(0,n.jsx)("button",{type:"button",title:(0,t.__)("Duplicate","compactform"),onClick:t=>{t.stopPropagation(),r.duplicate(e.id)},children:(0,n.jsx)("i",{className:"ri-file-copy-line"})}),(0,n.jsx)("button",{type:"button",className:"danger",title:(0,t.__)("Delete","compactform"),onClick:t=>{t.stopPropagation(),w(e.id,!1),r.remove(e.id)},children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]})]}),u&&"multistep"===e.type&&bt(e).map((t,l)=>{const c=new Set(bt(e).map(e=>e.id)),i=0===l,o=a.filter(n=>n.parentId===e.id&&(n.stepId===t.id||i&&!c.has(n.stepId)));return(0,n.jsxs)("div",{className:"fcf7b-nav-node",children:[(0,n.jsxs)("div",{className:"fcf7b-nav-row is-step",style:{paddingLeft:6+14*(s+1)},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:n=>{if(n.preventDefault(),n.stopPropagation(),m(null),E(),!j.value)return;const a=C(e.id,t.id,o.length),s={parentId:e.id,stepId:t.id};"new"===j.value.kind?r.add(j.value.type,a,s):N().some(t=>S(e.id,t))||r.move(N(),a,s),j.value=null},children:[(0,n.jsx)("span",{className:"fcf7b-nav-caret is-empty"}),(0,n.jsx)("i",{className:"fcf7b-nav-icon ri-stack-line"}),(0,n.jsx)("span",{className:"fcf7b-nav-label",children:t.label||`Step ${l+1}`})]}),o.map(e=>$(e,s+2))]},t.id)}),u&&"multistep"!==e.type&&i.map(e=>$(e,s+1))]},e.id)},G=a.filter(e=>!e.parentId);return(0,n.jsxs)("div",{className:"fcf7b-nav",style:{left:i.x,top:i.y,width:i.w,height:i.h},onClick:e=>e.stopPropagation(),onPointerMove:e=>{const t=b.current;if(!t)return;const n=e.clientX-t.sx,a=e.clientY-t.sy;"move"===t.kind?o({...i,x:t.x+n,y:t.y+a}):o({...i,w:Math.max(220,t.w+n),h:Math.max(180,t.h+a)})},onPointerUp:e=>{if(b.current){try{e.currentTarget.releasePointerCapture(e.pointerId)}catch(e){}b.current=null}},children:[(0,n.jsxs)("div",{className:"fcf7b-nav-head",onPointerDown:x("move"),children:[(0,n.jsx)("i",{className:"ri-stack-line"}),(0,n.jsx)("span",{children:(0,t.__)("Navigator","compactform")}),(0,n.jsx)("button",{type:"button",title:(0,t.__)("Close","compactform"),onPointerDown:e=>e.stopPropagation(),onClick:c,children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsx)("div",{className:"fcf7b-nav-body",onDragOver:e=>{e.preventDefault(),m(null)},onDrop:e=>{if(e.preventDefault(),E(),!j.value)return;const t={parentId:null,stepId:null};"new"===j.value.kind?r.add(j.value.type,a.length,t):"move"===j.value.kind&&r.move(N(),a.length,t),j.value=null},children:G.length?G.map(e=>$(e,0)):(0,n.jsx)("div",{className:"fcf7b-nav-empty",children:"No fields yet."})}),(0,n.jsx)("span",{className:"fcf7b-nav-resize",onPointerDown:x("resize")}),(0,n.jsx)(rt,{menu:u,fields:a,actions:r,onClose:()=>h(null)})]})}function vt(e,t,n){const a={...e};return void 0===n?delete a[t]:a[t]=n,a}function xt(a){const[s,l]=(0,e.useState)(a.initial),[r,c]=(0,e.useState)("preview"),[i,o]=(0,e.useState)(""),[d,p]=(0,e.useState)(()=>{try{return"dark"===window.localStorage.getItem("fcf7b-theme")?"dark":"light"}catch(e){return"light"}}),[u,h]=(0,e.useState)(!1),[g,v]=(0,e.useState)(()=>{try{return"1"===window.localStorage.getItem("fcf7b-nav-open")}catch(e){return!1}}),[x,_]=(0,e.useState)(m),[N,w]=(0,e.useState)("desktop");window.CF7_BUILDER_STATE=s;const{selected:k,multi:C,actions:S}=function(t,n){const[a,s]=(0,e.useState)(null),[l,r]=(0,e.useState)([]),c=e=>n({...t,fields:e}),i=(e,n,a)=>{const s=n&&"object"==typeof n?n:{[n]:a};c(t.fields.map(t=>t.id===e?{...t,...s}:t))},o=e=>{s(e),r(e?[e]:[])},d={select(e,t){if(!t||!e)return void o(e);const n=l.includes(e),a=n?l.filter(t=>t!==e):[...l,e];r(a),s(n?a[a.length-1]||null:e)},targetIds:e=>e&&l.length>1&&l.includes(e)?l.slice():[e],add(e,n,a){let s=a?{...X(e),...a}:X(e);if(!s||!s.type)return null;s=ne.applyFilters("fcf7b.newField",s,j.value);const l=t.fields.slice(),r=null==n||n>l.length?l.length:n;return l.splice(r,0,s),c(l),o(s.id),s},remove(e){d.removeMany([e])},removeMany(e){const n=new Set((e||[]).filter(Boolean));if(!n.size)return;let i=!0;for(;i;)i=!1,t.fields.forEach(e=>{e.parentId&&n.has(e.parentId)&&!n.has(e.id)&&(n.add(e.id),i=!0)});c(t.fields.filter(e=>!n.has(e.id)));const o=l.filter(e=>!n.has(e));r(o),n.has(a)&&s(o[o.length-1]||null)},insert(e,n,a){const s=(e||[]).map(e=>{const t=X(e.type);return t?{...t,...e.overrides||{}}:null}).filter(Boolean);if(!s.length&&!a)return[];let l=t.fields.slice();if(a&&(l=l.map(e=>a[e.id]?{...e,...a[e.id]}:e)),s.length){const e=null==n||n>l.length?l.length:n;l.splice(e,0,...s)}return c(l),s.length&&o(s[0].id),s},duplicate(e){d.duplicateMany([e])},duplicateMany(e){const n=t.fields.slice(),a=F(n,(e||[]).filter(Boolean)).sort((e,t)=>n.findIndex(t=>t.id===e)-n.findIndex(e=>e.id===t)),l=[],i=[];let o=-1;a.forEach(e=>{const t=n.findIndex(t=>t.id===e);if(-1===t)return;const a={[e]:K()},s=[],r=e=>{n.forEach(t=>{t.parentId!==e||a[t.id]||(a[t.id]=K(),s.push(t),r(t.id))})};r(e);const c=e=>{const t=JSON.parse(JSON.stringify(e));return t.id=a[e.id],t.parentId&&a[t.parentId]&&(t.parentId=a[t.parentId]),t.name&&(t.name+="-copy"),t};o=Math.max(o,t);const d=[c(n[t]),...s.map(c)];i.push(...d),l.push(d[0].id)}),i.length&&(n.splice(o+1,0,...i),c(n),r(l),s(l[l.length-1]))},paste(e,n){const a=e&&e.fields||[];if(!a.length)return;const l=t.fields.slice(),i=n?l.findIndex(e=>e.id===n):-1,o=-1===i?null:l[i],d=o&&["container","repeater","multistep"].includes(o.type),f=d&&"multistep"===o.type?Array.isArray(o.steps)&&o.steps[0]&&o.steps[0].id||"step_1":null,p={};a.forEach(e=>{p[e.id]=K()});const m=new Set(e.roots&&e.roots.length?e.roots:[a[0].id]),u=a.map(e=>{const t=JSON.parse(JSON.stringify(e));return t.id=p[e.id],m.has(e.id)?d?(t.parentId=o.id,t.stepId=f):(t.parentId=o&&o.parentId||null,t.stepId=o&&o.stepId||null):t.parentId&&p[t.parentId]&&(t.parentId=p[t.parentId]),t.name&&(t.name+="-copy"),t});let h=-1===i?l.length:i+1;if(d){const e=l.reduce((e,t,n)=>t.parentId!==o.id||"multistep"===o.type&&t.stepId!==f?e:n,-1);h=-1===e?i+1:e+1}l.splice(h,0,...u),c(l);const b=u.filter((e,t)=>m.has(a[t].id)).map(e=>e.id);r(b),s(b[0]||u[0].id)},move(e,n,a){let s=t.fields.slice();const l=F(s,(Array.isArray(e)?e:[e]).filter(Boolean)).sort((e,t)=>s.findIndex(t=>t.id===e)-s.findIndex(e=>e.id===t));if(!l.length)return;const r=new Set(l),i=s.filter(e=>r.has(e.id)),o=s.filter((e,t)=>r.has(e.id)&&t<n).length;s=s.filter(e=>!r.has(e.id));let d=n-o;d<0&&(d=0),d>s.length&&(d=s.length),s.splice(d,0,...i.map(e=>a?{...e,...a}:e)),c(s)},updateField:i,update(e,t){i(a,e,t)}};return{selected:a,multi:l,actions:d}}(s,l),E=function(t,n){const[a,s]=(0,e.useState)(!1),[l,r]=(0,e.useState)(!1),c=(0,e.useRef)({stack:[],idx:-1,lock:!1});return(0,e.useEffect)(()=>{const e=c.current;e.lock?e.lock=!1:(e.gesture&&e.gesturePushed?e.stack[e.idx]=t:(e.stack=e.stack.slice(0,e.idx+1),e.stack.push(t),e.stack.length>100&&e.stack.shift(),e.idx=e.stack.length-1,e.gesture&&(e.gesturePushed=!0)),s(e.idx>0),r(!1))},[t]),{canUndo:a,canRedo:l,undo:()=>{const e=c.current;e.idx<=0||(e.idx-=1,e.lock=!0,n(e.stack[e.idx]),s(e.idx>0),r(!0))},redo:()=>{const e=c.current;e.idx>=e.stack.length-1||(e.idx+=1,e.lock=!0,n(e.stack[e.idx]),s(!0),r(e.idx<e.stack.length-1))},beginGesture:()=>{c.current.gesture=!0,c.current.gesturePushed=!1},endGesture:()=>{c.current.gesture=!1,c.current.gesturePushed=!1}}}(s,l),I=function(n){const[a,s]=(0,e.useState)({markup:"",loading:!1}),[l,r]=(0,e.useState)("idle"),[c,i]=(0,e.useState)(0),[o,d]=(0,e.useState)(""),[f,p]=(0,e.useState)(!1),m=(0,e.useRef)(JSON.stringify(n)),u=(0,e.useRef)(null),h=(0,e.useRef)(!1),g=()=>{const e=new window.FormData;return e.append("action","fcf7_builder_render"),e.append("nonce",b.nonce),e.append("schema",JSON.stringify(n)),window.fetch(b.ajaxUrl,{method:"POST",body:e,credentials:"same-origin"}).then(e=>e.json()).then(e=>{const t=e&&e.success&&e.data.markup||"";return s({markup:t,loading:!1}),t})};return(0,e.useEffect)(()=>{g().then(e=>{const t=document.querySelector('textarea[name="wpcf7-form"], textarea#wpcf7-form');t&&e&&t.value!==e&&(t.value=e,t.defaultValue=e,t.dispatchEvent(new Event("change",{bubbles:!0})));const a=document.getElementById("fcf7-builder-schema-input");a&&(a.value=JSON.stringify(n))})},[]),(0,e.useEffect)(()=>{const e=document.getElementById("fcf7-builder-root");e&&e.querySelectorAll("input, textarea, select").forEach(e=>{"checkbox"===e.type||"radio"===e.type?e.defaultChecked=e.checked:"SELECT"===e.tagName?[...e.options].forEach(e=>{e.defaultSelected=e.selected}):e.defaultValue=e.value})}),(0,e.useEffect)(()=>{p(JSON.stringify(n)!==m.current)},[JSON.stringify(n)]),(0,e.useEffect)(()=>{if(!f)return;const e=e=>{if(!h.current)return e.preventDefault(),e.returnValue="",""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[f]),(0,e.useEffect)(()=>{const e=document.getElementById("wpcf7-admin-form-element");if(!e)return;const t=e=>{const t=e.submitter||document.activeElement;if(t&&t.closest&&t.closest(".fcf7b-app"))return void e.preventDefault();const a=document.getElementById("fcf7-builder-schema-input");a&&(a.value=JSON.stringify(n)),h.current=!0};return e.addEventListener("submit",t),()=>e.removeEventListener("submit",t)},[n]),{saveState:l,saveProgress:c,saveError:o,dirty:f,quickSave:()=>{"saving"!==l&&f&&(r("saving"),i(12),(()=>{if(Number(b.formId))return Promise.resolve(b.formId);const e=document.getElementById("title")||document.querySelector('input[name="post_title"]'),n=e?e.value.trim():"";if(!n)return window.alert((0,t.__)("Please give this form a title first.","compactform")),Promise.resolve(null);const a=new window.FormData;return a.append("action","fcf7_builder_create_form"),a.append("nonce",b.saveNonce||""),a.append("title",n),window.fetch(b.ajaxUrl,{method:"POST",body:a,credentials:"same-origin"}).then(e=>e.json()).then(e=>e&&e.success&&e.data&&e.data.formId?(b.formId=e.data.formId,u.current=e.data.editUrl||null,b.formId):(window.alert(e?.data?.message||(0,t.__)("Could not create the form.","compactform")),null)).catch(e=>(window.alert(String(e)),null))})().then(e=>{if(!e)return r("idle"),void i(0);i(30),g().then(t=>{i(60),((e,t)=>{r("saving");const a=JSON.stringify(n),s=document.getElementById("fcf7-builder-schema-input");s&&(s.value=a);const l=new window.FormData;l.append("action","fcf7_builder_save"),l.append("nonce",b.saveNonce||""),l.append("form_id",e),l.append("schema",a),window.fetch(b.ajaxUrl,{method:"POST",body:l,credentials:"same-origin"}).then(e=>e.text().then(t=>({status:e.status,text:t}))).then(e=>{i(100);let n=null;try{n=JSON.parse(e.text)}catch(e){}if(n&&n.success){m.current=a,ne.doAction("fcf7b.afterSave",n.data),n.data&&n.data.mail&&pe(n.data.mail),n.data&&n.data.mailDefault&&window.FCF7DefaultMail&&window.FCF7DefaultMail.boxes&&["mail","mail_2"].forEach(e=>{n.data.mailDefault[e]&&window.FCF7DefaultMail.boxes[e]&&(window.FCF7DefaultMail.boxes[e].fields=n.data.mailDefault[e])});const e=document.querySelector('textarea[name="wpcf7-form"], textarea#wpcf7-form');if(e&&t&&e.value!==t&&(e.value=t,e.defaultValue=t,e.dispatchEvent(new Event("change",{bubbles:!0}))),p(!1),r("saved"),u.current)return h.current=!0,document.getElementById("wpcf7-admin-form-element")?.remove(),void(window.location.href=u.current)}else{const t=n?.data?.message?n.data.message:`HTTP ${e.status} — ${(e.text||"no response").slice(0,200)}`;window.console?.error("CompactForm Quick save failed:",t),d(t),r("error")}}).catch(e=>{window.console?.error("CompactForm Quick save request failed:",e),i(100),d(String(e)),r("error")}).then(()=>window.setTimeout(()=>{r("idle"),i(0)},3e3))})(e,t)})}))},render:a}}(s);!function({schema:t,selected:n,multi:a,actions:s,undo:l,redo:r}){(0,e.useEffect)(()=>{const e=e=>{const c=e.target;if(c&&(c.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(c.tagName||"")))return;if(document.querySelector(".fcf7b-gs-backdrop, .fcf7b-ctxmenu-backdrop"))return;const i=e.ctrlKey||e.metaKey;if(i&&"z"===e.key.toLowerCase())return e.preventDefault(),void(e.shiftKey?r():l());if(i&&"y"===e.key.toLowerCase())return e.preventDefault(),void r();if(i&&"c"===e.key.toLowerCase()&&!e.shiftKey){const n=window.getSelection();if(n&&n.toString())return;return void(a.length&&O(t.fields,a)&&e.preventDefault())}if(i&&"v"===e.key.toLowerCase()){if(!D.value)return;if(e.preventDefault(),e.shiftKey){const e=T(t.fields.filter(e=>e.id===n)[0]);Object.keys(e).length&&s.updateField(n,e)}else s.paste(D.value,n)}else{if(i&&"d"===e.key.toLowerCase())return e.preventDefault(),void(a.length&&s.duplicateMany(a));"Delete"===e.key&&a.length&&(e.preventDefault(),s.removeMany(a))}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n,a,t])}({schema:s,selected:k,multi:C,actions:S,undo:E.undo,redo:E.redo});const{exportForm:$,onImportFile:G,importInput:P}=function(n,a,s){const l=(0,e.useRef)(null),r=e=>{if(!e||!Array.isArray(e.fields))return void window.alert((0,t.__)("Could not import: not a CompactForm export.","compactform"));const l=e.mail&&"object"==typeof e.mail,r=l?(0,t.sprintf)(/* translators: %d: number of fields in the imported file. */ /* translators: %d: number of fields in the imported file. */
     3(0,t.__)("Nothing new — all %d were already listed.","compactform"),e.data.total)})):x({state:"fail",message:e?.data?.message||(0,t.__)("Import failed.","compactform")})}).catch(()=>x({state:"fail",message:(0,t.__)("Import failed.","compactform")})).finally(()=>h(!1))},N=(e,a,s)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:e,children:(0,t.__)("Error message","compactform")}),(0,n.jsx)("input",{type:"text",id:e,value:l[a]||"",placeholder:s,onChange:e=>c({[a]:e.target.value})})]});return(0,n.jsxs)("div",{className:"fcf7b-gspanel",children:[(0,n.jsx)("h3",{className:"fcf7b-gspanel-head",children:(0,t.__)("Spam Protection","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-intro",children:(0,t.__)("Form-level rules, all checked on the server. The arithmetic CAPTCHA is a field — drop it on the canvas and use its own panel.","compactform")}),(0,n.jsx)("div",{className:"fcf7b-gspanel-tabs",children:d.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-tab"+(r===e.id?" is-active":""),onClick:()=>i(e.id),children:e.label},e.id))}),"traps"===r?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Honeypot","compactform"),(0,n.jsx)("em",{children:(0,t.__)("An invisible field bots fill in and people never see.","compactform")})]}),(0,n.jsx)(Ce,{checked:l.honeypotEnabled,onChange:e=>c({honeypotEnabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Minimum fill time","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Refuse a form that comes back faster than a person could type it.","compactform")})]}),(0,n.jsx)(Ce,{checked:l.minTimeEnabled,onChange:e=>c({minTimeEnabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),l.minTimeEnabled?(w=(0,t.__)("Minimum","compactform"),k="minTimeSeconds",(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-rowlabel",children:w}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:1,max:300,step:1,value:l[k],onChange:e=>c({[k]:""===e.target.value?"":parseInt(e.target.value,10)})}),(0,n.jsx)("em",{children:(0,t.__)("seconds","compactform")})]})]})):null,l.honeypotEnabled||l.minTimeEnabled?N("fcf7-sp-bot-msg","botMessage",Se):null]}):null,"words"===r?(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Banned words","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Refuse a submission whose answers contain a listed word.","compactform")})]}),(0,n.jsx)(Ce,{checked:j,onChange:e=>c({bannedEnabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}):null,"words"===r&&j?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-sp-banned",children:(0,t.__)("Word list","compactform")}),(0,n.jsx)("textarea",{id:"fcf7-sp-banned",rows:5,value:l.bannedWords||"",placeholder:(0,t.__)("casino, cheap loans, crypto giveaway","compactform"),onChange:e=>c({bannedWords:e.target.value})}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("Comma separated, checked against every answer. A single word matches whole words only — <word/> will not refuse “class”. A phrase may contain spaces, so <phrase/> is one entry. Empty switches it off.","compactform"),{word:(0,n.jsx)("code",{children:"ass"}),phrase:(0,n.jsx)("code",{children:"cheap loans"})})})]}),(0,n.jsx)("h4",{className:"fcf7b-gspanel-subhead",children:(0,t.__)("Import into the list","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-intro",children:(0,e.createInterpolateElement)((0,t.__)("Adds to what is already above rather than replacing it, so you can start from a ready-made list and keep writing your own. Duplicates are dropped, lines starting with <hash/> or <slashes/> are ignored, and the result is written back as one comma-separated list you can edit or prune afterwards.","compactform"),{hash:(0,n.jsx)("code",{children:"#"}),slashes:(0,n.jsx)("code",{children:"//"})})}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-sp-file",children:(0,t.__)("From a file","compactform")}),(0,n.jsx)("input",{type:"file",id:"fcf7-sp-file",ref:v,accept:".txt,.csv,text/plain,text/csv",disabled:u,onChange:e=>{(e=>{if(!e)return;if(e.size>1048576)return void x({state:"fail",message:(0,t.__)("That file is larger than 1 MB.","compactform")});const n=new window.FileReader;n.onload=()=>{const e=new window.FormData;e.append("text",String(n.result||"")),_(e)},n.onerror=()=>x({state:"fail",message:(0,t.__)("Could not read that file.","compactform")}),n.readAsText(e)})(e.target.files&&e.target.files[0]),e.target.value=""}}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("A plain .txt or .csv, up to 1 MB. Read in your browser — nothing is uploaded or stored on the server.","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-sp-url",children:(0,t.__)("From a URL","compactform")}),(0,n.jsx)("input",{type:"text",id:"fcf7-sp-url",value:p,placeholder:"https://example.com/badwords.txt",onChange:e=>m(e.target.value)}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("Fetched once, now. The address is not saved — the words are.","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-testrow",children:[(0,n.jsxs)("button",{type:"button",className:"fcf7b-gspanel-add",disabled:u||!p.trim(),onClick:()=>{const e=new window.FormData;e.append("url",p.trim()),_(e)},children:[(0,n.jsx)("i",{className:"ri-download-line"})," ",u?(0,t.__)("Importing…","compactform"):(0,t.__)("Import from URL","compactform")]}),g?(0,n.jsx)("span",{className:`fcf7b-gspanel-testmsg is-${g.state}`,children:g.message}):null]}),y?N("fcf7-sp-banned-msg","bannedMessage",Ee):null]}):null,f?f.render({value:l,set:c}):null]});var w,k}function Ge({value:s,options:l=[],onChange:c,multiple:r=!1,creatable:i=!1,onCreate:o,onRemove:d,onReorder:f,placeholder:p=""}){const m=r?Array.isArray(s)?s:""===s||null==s?[]:[s]:[],u=e=>r?m.some(t=>String(t)===String(e)):String(s)===String(e),[h,b]=(0,e.useState)(-1),[g,x]=(0,e.useState)(-1),v=l.filter(e=>e.custom).map(e=>e.value);let j;if(r){const e=l.filter(e=>u(e.value)).map(e=>e.label);j=e.length?e.join(", "):p||(0,t.__)("Select…","compactform")}else{const e=l.find(e=>String(e.value)===String(s));j=e?e.label:p||l[0]&&l[0].label||""}return(0,n.jsx)(a,{className:"fcf7b-select",triggerClassName:"fcf7b-select-trigger"+(r?" is-multi":""),popClassName:"fcf7b-select-pop",trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-select-cur",children:j}),(0,n.jsx)("i",{className:"ri-arrow-down-s-line fcf7b-select-caret"})]}),children:({close:e})=>(0,n.jsxs)("ul",{className:"fcf7b-select-list"+(r?" is-multi":""),children:[l.map(a=>{const s=i&&a.custom,l=s?v.indexOf(a.value):-1;return(0,n.jsxs)("li",{className:`${s?"fcf7b-select-hasremove":""}${s&&g===l?" is-drop":""}`.trim()||void 0,onDragOver:s?e=>{e.preventDefault(),x(l)}:void 0,onDrop:s?e=>{e.preventDefault(),(e=>{if(h>=0&&h!==e&&f){const t=[...v],[n]=t.splice(h,1);t.splice(e,0,n),f(t)}b(-1),x(-1)})(l)}:void 0,children:[s?(0,n.jsx)("span",{className:"fcf7b-select-grip",title:(0,t.__)("Drag to reorder","compactform"),draggable:!0,onDragStart:()=>b(l),onDragEnd:()=>{b(-1),x(-1)},children:(0,n.jsx)("i",{className:"ri-draggable"})}):null,(0,n.jsxs)("button",{type:"button",className:"fcf7b-select-opt"+(u(a.value)?" is-active":""),onClick:()=>((e,t)=>{r?c(u(e)?m.filter(t=>String(t)!==String(e)):[...m,e]):(c(e),t())})(a.value,e),children:[r?(0,n.jsx)("i",{className:"fcf7b-select-check ri-"+(u(a.value)?"checkbox-line":"checkbox-blank-line")}):null,(0,n.jsx)("span",{className:"fcf7b-select-optlabel",children:a.label})]}),s?(0,n.jsx)("button",{type:"button",className:"fcf7b-select-remove",title:(0,t.__)("Remove","compactform"),onClick:e=>{e.stopPropagation(),d&&d(a.value)},children:(0,n.jsx)("i",{className:"ri-close-line"})}):null]},String(a.value))}),i?(0,n.jsx)("li",{className:"fcf7b-select-create",children:(0,n.jsx)("input",{type:"text",className:"fcf7b-select-createinput",placeholder:(0,t.__)("Add…","compactform"),onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),o&&o(t.currentTarget.value),t.currentTarget.value="",r||e())}})}):null]})})}const Fe={enabled:!1,url:"",method:"POST",format:"json",bodyMode:"all",body:[],headers:[],meta:!1,timeout:10,blocking:!1},De=["POST","GET","PUT","PATCH","DELETE"].map(e=>({value:e,label:e})),Ae=[{value:"json",label:"JSON"},{value:"form",label:(0,t.__)("Form-encoded","compactform")}],Oe=[{value:"value",label:(0,t.__)("Fixed text","compactform")},{value:"field",label:(0,t.__)("From the form","compactform")}],Me=["GET","DELETE"],Te=[{id:"endpoint",label:(0,t.__)("Endpoint","compactform")},{id:"payload",label:(0,t.__)("Payload","compactform")},{id:"advanced",label:(0,t.__)("Advanced","compactform")}],Le=e=>String(e||"").replace(/[^A-Za-z0-9\-_]/g,""),Re=e=>Array.isArray(e)?e:e?[e]:[];function Be({value:a=Fe,onChange:s,fields:l=[]}){const c=a&&"object"==typeof a?{...Fe,...a}:{...Fe},r=e=>s({...c,...e}),[i,o]=(0,e.useState)("endpoint"),d=b.integrations?.webhook?.metaChoices||[],f=-1!==Me.indexOf(c.method),p=Q(l),m=[...p.map(e=>({value:Z(e.name),label:`${e.label||e.type} (${Z(e.name)})`})),...d.map(e=>({value:e.value,label:`${e.label} (metadata)`}))],u=[];(Array.isArray(c.body)?c.body:[]).forEach(e=>u.push(...Re(e&&e.source))),(Array.isArray(c.headers)?c.headers:[]).forEach(e=>{e&&"field"===e.mode&&e.value&&u.push(e.value)});const h=[...new Set(u)].filter(e=>!m.some(t=>String(t.value)===String(e))).map(e=>({value:e,label:`${e} (no longer in this form)`})),g=[...m,...h],x=e=>Array.isArray(c[e])?c[e]:[],v=(e,t,n)=>r({[e]:x(e).map((e,a)=>a===t?{...e,...n}:e)}),j=(e,t)=>r({[e]:[...x(e),t]}),y=(e,t)=>r({[e]:x(e).filter((e,n)=>n!==t)}),_=x("body").filter(e=>!!e.key!=Re(e.source).length>0).length,N=c.url&&!/^https?:\/\//i.test(c.url.trim()),w=e=>{const t=g.find(t=>String(t.value)===String(e));return`{${t?t.label.replace(/\s*\([^)]*\)$/,""):e}}`};return(0,n.jsxs)("div",{className:"fcf7b-gspanel",children:[(0,n.jsx)("h3",{className:"fcf7b-gspanel-head",children:(0,t.__)("Webhook","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-intro",children:(0,t.__)("Hands every submission straight to another service the moment the form is sent — Pabbly Connect, Zapier, Make or your own API. Spam and failed submissions are never sent.","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-switchlabel",children:(0,t.__)("Enable webhook for this form","compactform")}),(0,n.jsx)(Ce,{checked:c.enabled,onChange:e=>r({enabled:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),c.enabled?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"fcf7b-gspanel-tabs",children:Te.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-tab"+(i===e.id?" is-active":""),onClick:()=>o(e.id),children:e.label},e.id))}),"endpoint"===i?(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{htmlFor:"fcf7-wh-url",children:(0,t.__)("Request URL","compactform")}),(0,n.jsx)("input",{type:"text",id:"fcf7-wh-url",value:c.url||"",placeholder:"https://connect.pabbly.com/workflow/sendwebhookdata/…",onChange:e=>r({url:e.target.value})}),N?(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-warn",children:(0,e.createInterpolateElement)((0,t.__)("This doesn’t start with <http/> or <https/>, so it will be discarded when you save.","compactform"),{http:(0,n.jsx)("code",{children:"http://"}),https:(0,n.jsx)("code",{children:"https://"})})}):(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("The address the other service gave you — it may call this a webhook URL, an endpoint, or an incoming URL.","compactform")})]}):null,"payload"===i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Send every field","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Off — send only the keys you list below, renamed however the service expects.","compactform")})]}),(0,n.jsx)(Ce,{checked:"all"===c.bodyMode,onChange:e=>r({bodyMode:e?"all":"mapped"}),labelOn:(0,t.__)("All","compactform"),labelOff:(0,t.__)("Mapped","compactform")})]}),"all"===c.bodyMode?(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Include submission metadata","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Adds IP, page URL, date, site and user details alongside the answers.","compactform")})]}),(0,n.jsx)(Ce,{checked:c.meta,onChange:e=>r({meta:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}):(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{children:(0,t.__)("Payload keys","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-rows",children:[x("body").length?(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline fcf7b-gspanel-rowhead",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Name the service expects","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Value from this form","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-headspacer"})]}):null,x("body").map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline",children:[(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:(0,n.jsx)("input",{type:"text",value:e.key||"",placeholder:(0,t.__)("e.g. email","compactform"),onChange:e=>v("body",a,{key:e.target.value})})}),(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:(0,n.jsx)(Ge,{multiple:!0,value:Re(e.source),options:g,onChange:e=>v("body",a,{source:e}),placeholder:m.length?(0,t.__)("Pick a field…","compactform"):(0,t.__)("This form has no named fields yet","compactform")})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-del",title:(0,t.__)("Remove this key","compactform"),onClick:()=>y("body",a),children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},a)),x("body").length?null:(0,n.jsx)("p",{className:"fcf7b-gspanel-none",children:(0,t.__)("No keys yet — nothing would be sent.","compactform")})]}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gspanel-add",onClick:()=>j("body",{key:"",source:[]}),children:[(0,n.jsx)("i",{className:"ri-add-line"})," ",(0,t.__)("Add key","compactform")]}),_?(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-warn",children:(0,t.sprintf)(/* translators: %d: number of incomplete rows. */ /* translators: %d: number of incomplete rows. */
     4(0,t._n)("%d row is missing a name or a value, and will be skipped.","%d rows are missing a name or a value, and will be skipped.",_,"compactform"),_)}):null,(0,n.jsxs)("details",{className:"fcf7b-gspanel-more",children:[(0,n.jsx)("summary",{children:(0,t.__)("Can one key take several fields?","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("Yes — pick more than one and they collapse into that single key, the same thing a mail-template line like <example/> does. A field the visitor never saw is blank, so only the branch they filled in is sent; anything with content is joined with a comma.","compactform"),{example:(0,n.jsx)("code",{children:"Doctor: [doctor-cardiology1][doctor-dermatology1]"})})})]})]})]}):null,"advanced"===i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-cols",children:[(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{children:(0,t.__)("Method","compactform")}),(0,n.jsx)(Ge,{value:c.method,options:De,onChange:e=>r({method:e})})]}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-field",children:[(0,n.jsx)("label",{children:(0,t.__)("Format","compactform")}),f?(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.sprintf)(/* translators: %s: HTTP method, e.g. GET. */ /* translators: %s: HTTP method, e.g. GET. */
     5(0,t.__)("%s carries everything in the address itself, so there is nothing to encode.","compactform"),c.method)}):(0,n.jsx)(Ge,{value:c.format,options:Ae,onChange:e=>r({format:e})})]})]}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("<post>POST</post> and <json>JSON</json> are what Pabbly, Zapier and Make all expect. Change them only if the service’s own instructions ask you to.","compactform"),{post:(0,n.jsx)("strong",{}),json:(0,n.jsx)("strong",{})})}),(0,n.jsx)("h4",{className:"fcf7b-gspanel-subhead",children:(0,t.__)("Request headers","compactform")}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc fcf7b-gspanel-lead",children:(0,t.__)("Only needed when the service asks you for an API key or a token.","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-rows",children:[x("headers").length?(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline fcf7b-gspanel-rowhead",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Header name","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-cell fcf7b-gspanel-cell--narrow",children:(0,t.__)("Value is","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-cell",children:(0,t.__)("Value","compactform")}),(0,n.jsx)("span",{className:"fcf7b-gspanel-headspacer"})]}):null,x("headers").map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-gspanel-rowline",children:[(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:(0,n.jsx)("input",{type:"text",value:e.name||"",placeholder:"X-Api-Key",onChange:e=>v("headers",a,{name:Le(e.target.value)})})}),(0,n.jsx)("div",{className:"fcf7b-gspanel-cell fcf7b-gspanel-cell--narrow",children:(0,n.jsx)(Ge,{value:e.mode||"value",options:Oe,onChange:e=>v("headers",a,{mode:e,value:""})})}),(0,n.jsx)("div",{className:"fcf7b-gspanel-cell",children:"field"===e.mode?(0,n.jsx)(Ge,{value:e.value||"",options:g,onChange:e=>v("headers",a,{value:e}),placeholder:(0,t.__)("Pick a field…","compactform")}):(0,n.jsx)("input",{type:"text",value:e.value||"",placeholder:(0,t.__)("Your API key","compactform"),onChange:e=>v("headers",a,{value:e.target.value})})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-gspanel-del",title:(0,t.__)("Remove this header","compactform"),onClick:()=>y("headers",a),children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},a)),x("headers").length?null:(0,n.jsx)("p",{className:"fcf7b-gspanel-none",children:(0,t.sprintf)(/* translators: %s: content type name, e.g. JSON. */ /* translators: %s: content type name, e.g. JSON. */
     6(0,t.__)("None — only the %s content type is sent.","compactform"),"json"===c.format?(0,t.__)("JSON","compactform"):(0,t.__)("form","compactform"))})]}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gspanel-add",onClick:()=>j("headers",{name:"",mode:"value",value:""}),children:[(0,n.jsx)("i",{className:"ri-add-line"})," ",(0,t.__)("Add header","compactform")]}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("Your headers are applied last, so one named <ct/> overrides the format above.","compactform"),{ct:(0,n.jsx)("code",{children:"Content-Type"})})}),(0,n.jsx)("h4",{className:"fcf7b-gspanel-subhead",children:(0,t.__)("Delivery","compactform")}),(0,n.jsxs)("div",{className:"fcf7b-gspanel-switch",children:[(0,n.jsxs)("span",{className:"fcf7b-gspanel-switchlabel",children:[(0,t.__)("Wait for a reply","compactform"),(0,n.jsx)("em",{children:(0,t.__)("Off — fire and forget: the visitor never waits, but a failure can’t be logged.","compactform")})]}),(0,n.jsx)(Ce,{checked:c.blocking,onChange:e=>r({blocking:e}),labelOn:(0,t.__)("Yes","compactform"),labelOff:(0,t.__)("No","compactform")})]}),c.blocking?(0,n.jsxs)("div",{className:"fcf7b-gspanel-row",children:[(0,n.jsx)("span",{className:"fcf7b-gspanel-rowlabel",children:(0,t.__)("Give up after","compactform")}),(0,n.jsxs)("span",{className:"fcf7b-gspanel-num",children:[(0,n.jsx)("input",{type:"number",min:1,max:30,step:1,value:c.timeout,onChange:e=>r({timeout:""===e.target.value?"":parseInt(e.target.value,10)})}),(0,n.jsx)("em",{children:(0,t.__)("sec","compactform")})]})]}):null,(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,t.__)("A refused delivery is written to the WordPress debug log. The visitor never sees an error either way — their submission still goes through.","compactform")})]}):null,(0,n.jsxs)("div",{className:"fcf7b-gspanel-pinned",children:[(0,n.jsx)("pre",{className:"fcf7b-gspanel-preview",children:(()=>{const e=(()=>{const e={};return"mapped"===c.bodyMode?(x("body").forEach(t=>{const n=Re(t.source);t.key&&n.length&&(e[t.key]=n.map(w).join(", "))}),e):(p.forEach(t=>{e[Z(t.name)]=`{${t.label||t.type}}`}),c.meta&&d.forEach(t=>{void 0===e[t.label]&&(e[t.label]=`{${t.label}}`)}),e)})(),t=Object.keys(e).map(t=>`${t}=${e[t]}`).join("&"),n=c.url.trim()||"https://…",a=f?{}:{"Content-Type":"json"===c.format?"application/json":"application/x-www-form-urlencoded"};x("headers").forEach(e=>{const t=Le(e.name);t&&(a[t]="field"===e.mode?e.value?w(e.value):"":e.value||"")});const s=[`${c.method} ${n}${f&&t?`?${t}`:""}`];return Object.keys(a).forEach(e=>s.push(`${e}: ${a[e]}`)),f||(s.push(""),s.push("json"===c.format?JSON.stringify(e,null,2):t||"(nothing to send)")),s.join("\n")})()}),(0,n.jsx)("p",{className:"fcf7b-gspanel-desc",children:(0,e.createInterpolateElement)((0,t.__)("One submission, as this form will send it. Each <token/> is replaced with the visitor’s own answer. Save the form when you’re happy with it.","compactform"),{token:(0,n.jsx)("code",{children:"{value}"})})})]})]}):null]})}const ze=[{id:"breakpoints",label:(0,t.__)("General","compactform"),icon:"ri-layout-4-line"},{id:"webhook",label:(0,t.__)("Webhook","compactform"),icon:"ri-send-plane-line",show:!!b.integrations?.webhook?.active},{id:"spamProtection",label:(0,t.__)("Spam Protection","compactform"),icon:"ri-shield-keyhole-line",show:!!b.configuration?.spamProtection?.active}].filter(e=>!1!==e.show);function Ue({schema:s,setSchema:l,breakpoints:c={},onBreakpointsChange:r,fieldGap:i,onFieldGapChange:o,containerColumnGap:d,onContainerColumnGapChange:f,containerRowGap:p,onContainerRowGapChange:m,containerPadding:u,onContainerPaddingChange:h,webhook:b,onWebhookChange:g,spamProtection:x,onSpamProtectionChange:v,fields:j=[]}){const[y,_]=(0,e.useState)(ze[0].id),N=ne.applyFilters("fcf7b.globalSettingsTabs",[]),w=[...ze,...N],k=N.find(e=>e.id===y);return(0,n.jsx)(a,{className:"fcf7b-gs",triggerClassName:"fcf7b-ghost",popClassName:"fcf7b-gs-pop",backdropClassName:"fcf7b-gs-backdrop",title:(0,t.__)("Global settings","compactform"),trigger:(0,n.jsx)("i",{className:"ri-settings-3-line"}),children:({close:e})=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gs-head",children:["Global Settings",(0,n.jsx)("button",{type:"button",className:"fcf7b-gs-close",title:"Close",onClick:e,children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsxs)("div",{className:"fcf7b-gs-main",children:[(0,n.jsx)("div",{className:"fcf7b-gs-sidebar",children:w.map(e=>(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem"+(y===e.id?" active":""),onClick:()=>_(e.id),children:[(0,n.jsx)("i",{className:e.icon}),e.label]},e.id))}),(0,n.jsxs)("div",{className:"fcf7b-gs-body",children:["breakpoints"===y&&(0,n.jsx)(ke,{breakpoints:c,onChange:r,fieldGap:i,onFieldGapChange:o,containerColumnGap:d,onContainerColumnGapChange:f,containerRowGap:p,onContainerRowGapChange:m,containerPadding:u,onContainerPaddingChange:h}),"webhook"===y&&(0,n.jsx)(Be,{value:b,onChange:g,fields:j}),"spamProtection"===y&&(0,n.jsx)($e,{value:x,onChange:v}),k&&k.render({schema:s,setSchema:l,fields:j})]})]})]})})}const He=window.FCF7Builder||{ajaxUrl:"",nonce:""};function Ve(e,t={}){if(!He.ajaxUrl)return window.Promise.resolve({ok:!1,message:""});const n=new window.URLSearchParams({action:e,nonce:He.nonce||"",...t});return window.fetch(`${He.ajaxUrl}?${n}`,{credentials:"same-origin"}).then(e=>e.json()).then(e=>e?.success?{ok:!0,data:e.data}:{ok:!1,message:e?.data?.message||""}).catch(()=>({ok:!1,message:""}))}const We={list:null,data:null,byId:Object.create(null)};function qe({images:a,index:s,setIndex:l,close:c}){const r=(0,e.useRef)(null);(0,e.useEffect)(()=>{const e=e=>{"Escape"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key||(e.stopPropagation(),"Escape"!==e.key?l(t=>(t+("ArrowRight"===e.key?1:a.length-1))%a.length):c())},t=e=>{r.current&&r.current.contains(e.target)&&e.stopPropagation()};return document.addEventListener("keydown",e,!0),document.addEventListener("mousedown",t,!0),()=>{document.removeEventListener("keydown",e,!0),document.removeEventListener("mousedown",t,!0)}},[a.length]);const i=e=>e.stopPropagation();return(0,e.createPortal)((0,n.jsxs)("div",{className:"fcf7b-tpl-light",ref:r,onMouseDown:i,onClick:c,children:[(0,n.jsxs)("div",{className:"fcf7b-tpl-light-bar",onClick:i,children:[a.length>1&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-tpl-light-nav",title:(0,t.__)("Previous","compactform"),onClick:()=>l(e=>(e+a.length-1)%a.length),children:(0,n.jsx)("i",{className:"ri-arrow-left-s-line"})}),(0,n.jsx)("span",{className:"fcf7b-tpl-light-count",children:`${s+1} / ${a.length}`}),(0,n.jsx)("button",{type:"button",className:"fcf7b-tpl-light-nav",title:(0,t.__)("Next","compactform"),onClick:()=>l(e=>(e+1)%a.length),children:(0,n.jsx)("i",{className:"ri-arrow-right-s-line"})})]}),(0,n.jsx)("button",{type:"button",className:"fcf7b-tpl-light-close",title:(0,t.__)("Close","compactform"),onClick:c,children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsx)("div",{className:"fcf7b-tpl-light-panel",children:(0,n.jsx)("img",{src:a[s],alt:"",onClick:i})})]}),document.body)}const Je=(window.FCF7Builder||{}).menuIconUrl||"";function Ye({onImport:a,close:s}){const l=We.data,[c,r]=(0,e.useState)(()=>l&&l.items||[]),[i,o]=(0,e.useState)(()=>l&&l.categories||[]),[d,f]=(0,e.useState)(()=>l&&l.badges||[]),[p,m]=(0,e.useState)(""),[u,h]=(0,e.useState)(""),[b,g]=(0,e.useState)(""),[x,v]=(0,e.useState)(""),[j,y]=(0,e.useState)(!l),[_,N]=(0,e.useState)(""),[w,k]=(0,e.useState)(""),[C,S]=(0,e.useState)(null),E=e=>{y(!0),N(""),function(e=!1){if(e)We.list=null,We.data=null,We.byId=Object.create(null);else if(We.list)return We.list;const t=Ve("fcf7_templates_list",e?{refresh:"1"}:{}).then(e=>(e.ok?We.data=e.data:We.list=null,e));return We.list=t,t}(e).then(e=>{y(!1),e.ok?(r(e.data.items||[]),o(e.data.categories||[]),f(e.data.badges||[])):N(e.message||(0,t.__)("Could not reach the template library.","compactform"))})};(0,e.useEffect)(()=>{l||E(!1)},[]);const I=x.trim().toLowerCase(),P=c.filter(e=>!I||String(e.name||"").toLowerCase().includes(I)),$=e=>P.filter(t=>("plan"===e||!p||t.subscription===p)&&("badge"===e||!b||(t.badge||[]).includes(b))&&("category"===e||!u||(t.category||[]).includes(u))),G=["free","pro"].filter(e=>c.some(t=>t.subscription===e)),F=$(null),D=$("plan"),A=$("badge"),O=$("category"),M=(e,t,n)=>e.filter(e=>(e[t]||[]).includes(n)).length;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"fcf7b-gs-head fcf7b-tpl-head",children:[Je&&(0,n.jsx)("img",{className:"fcf7b-tpl-logo",src:Je,alt:""}),(0,t.__)("Templates","compactform"),(0,n.jsx)("button",{type:"button",className:"fcf7b-tpl-refresh"+(j?" is-busy":""),title:(0,t.__)("Refresh","compactform"),disabled:j,onClick:()=>E(!0),children:(0,n.jsx)("i",{className:"ri-refresh-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-gs-close",title:(0,t.__)("Close","compactform"),onClick:s,children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsxs)("div",{className:"fcf7b-gs-main",children:[(0,n.jsxs)("div",{className:"fcf7b-gs-sidebar fcf7b-tpl-sidebar",children:[(0,n.jsx)("input",{type:"search",className:"fcf7b-tpl-search",placeholder:(0,t.__)("Search templates…","compactform"),value:x,onChange:e=>v(e.target.value)}),G.length>1&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"fcf7b-tpl-navhead",children:(0,t.__)("Plan","compactform")}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem fcf7b-tpl-navall"+(p?"":" is-on"),onClick:()=>m(""),children:[(0,t.__)("All","compactform"),(0,n.jsx)("span",{className:"fcf7b-tpl-count",children:D.length})]}),G.map(e=>(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem"+(p===e?" active":""),onClick:()=>m(e),children:["pro"===e?(0,t.__)("Pro","compactform"):(0,t.__)("Free","compactform"),(0,n.jsx)("span",{className:"fcf7b-tpl-count",children:D.filter(t=>t.subscription===e).length})]},e))]}),!!d.length&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"fcf7b-tpl-navhead",children:(0,t.__)("Badges","compactform")}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem fcf7b-tpl-navall"+(b?"":" is-on"),onClick:()=>g(""),children:[(0,t.__)("All","compactform"),(0,n.jsx)("span",{className:"fcf7b-tpl-count",children:A.length})]}),d.map(e=>(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem"+(b===e?" active":""),onClick:()=>g(e),children:[e,(0,n.jsx)("span",{className:"fcf7b-tpl-count",children:M(A,"badge",e)})]},e))]}),!!i.length&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"fcf7b-tpl-navhead",children:(0,t.__)("Categories","compactform")}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem fcf7b-tpl-navall"+(u?"":" is-on"),onClick:()=>h(""),children:[(0,t.__)("All","compactform"),(0,n.jsx)("span",{className:"fcf7b-tpl-count",children:O.length})]}),i.map(e=>(0,n.jsxs)("button",{type:"button",className:"fcf7b-gs-navitem"+(u===e?" active":""),onClick:()=>h(e),children:[e,(0,n.jsx)("span",{className:"fcf7b-tpl-count",children:M(O,"category",e)})]},e))]})]}),(0,n.jsxs)("div",{className:"fcf7b-gs-body fcf7b-tpl-body",children:[j&&(0,n.jsx)("div",{className:"fcf7b-tpl-grid","aria-label":(0,t.__)("Loading templates…","compactform"),"aria-busy":"true",children:Array.from({length:F.length||6}).map((e,t)=>(0,n.jsxs)("div",{className:"fcf7b-tpl-card fcf7b-tpl-skel",children:[(0,n.jsx)("span",{className:"fcf7b-tpl-skel-thumb"}),(0,n.jsx)("span",{className:"fcf7b-tpl-skel-line"}),(0,n.jsx)("span",{className:"fcf7b-tpl-skel-line fcf7b-tpl-skel-line--short"}),(0,n.jsx)("span",{className:"fcf7b-tpl-skel-btn"})]},t))}),!j&&_&&(0,n.jsx)("p",{className:"fcf7b-tpl-note fcf7b-tpl-note--error",children:_}),!j&&!_&&!F.length&&(0,n.jsx)("p",{className:"fcf7b-tpl-note",children:(0,t.__)("No templates match.","compactform")}),(0,n.jsx)("div",{className:"fcf7b-tpl-grid",hidden:j,children:F.map(e=>(0,n.jsxs)("div",{className:"fcf7b-tpl-card",children:[(0,n.jsxs)("div",{className:"fcf7b-tpl-thumb",children:[e.image[0]?(0,n.jsx)("img",{src:e.image[0],alt:"",loading:"lazy"}):(0,n.jsx)("i",{className:"ri-file-list-3-line"}),!!e.image.length&&(0,n.jsx)("button",{type:"button",className:"fcf7b-tpl-zoom",title:(0,t.__)("View screenshot","compactform"),onClick:()=>S({images:e.image,index:0}),children:(0,n.jsx)("i",{className:"ri-zoom-in-line"})}),"pro"===e.subscription&&(0,n.jsx)("span",{className:"fcf7b-tpl-badge fcf7b-tpl-badge--pro",children:(0,t.__)("Pro","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-tpl-meta",children:[!!(e.badge||[]).length&&(0,n.jsx)("div",{className:"fcf7b-tpl-badges",children:(e.badge||[]).map(e=>(0,n.jsx)("span",{className:"fcf7b-tpl-badge",children:e},e))}),(0,n.jsx)("strong",{children:e.name}),(0,n.jsx)("span",{children:e.description})]}),(0,n.jsxs)("div",{className:"fcf7b-tpl-actions",children:[e.preview&&(0,n.jsxs)("a",{className:"fcf7b-tpl-preview",href:e.preview,target:"_blank",rel:"noreferrer",children:[(0,n.jsx)("i",{className:"ri-external-link-line"}),(0,t.__)("Preview","compactform")]}),(0,n.jsx)("button",{type:"button",className:"fcf7b-tpl-import",disabled:!!w,onClick:()=>(e=>{k(e.id),function(e){if(We.byId[e])return We.byId[e];const t=Ve("fcf7_templates_get",{id:e}).then(t=>(t.ok||delete We.byId[e],t));return We.byId[e]=t,t}(e.id).then(e=>{k(""),e.ok?(s(),a(e.data.schema)):window.alert(e.message||(0,t.__)("Could not download that template.","compactform"))})})(e),children:w===e.id?(0,t.__)("Importing…","compactform"):(0,t.__)("Import","compactform")})]})]},e.id))})]})]}),C&&(0,n.jsx)(qe,{images:C.images,index:C.index,setIndex:e=>S(t=>({...t,index:e(t.index)})),close:()=>S(null)})]})}function Ke({onImport:e}){return(0,n.jsx)(a,{className:"fcf7b-gs fcf7b-tpl",triggerClassName:"fcf7b-ghost",popClassName:"fcf7b-gs-pop fcf7b-tpl-pop",backdropClassName:"fcf7b-gs-backdrop",title:(0,t.__)("Templates","compactform"),trigger:(0,n.jsx)("i",{className:"ri-layout-masonry-line"}),children:({close:t})=>(0,n.jsx)(Ye,{onImport:e,close:t})})}function Xe({view:e,setView:a,fieldsCount:s,renderLoading:l,device:c,setDevice:r,navOpen:i,setNavOpen:o,schema:d,setSchema:f,breakpoints:p,onBreakpointsChange:m,fieldGap:u,onFieldGapChange:b,containerColumnGap:g,onContainerColumnGapChange:x,containerRowGap:v,onContainerRowGapChange:j,containerPadding:y,onContainerPaddingChange:_,webhook:N,onWebhookChange:w,spamProtection:k,onSpamProtectionChange:C,fields:S,canUndo:E,canRedo:I,undo:P,redo:$,exportForm:G,onImportFile:F,importInput:D,importSchema:A,canvasBg:O,setCanvasBg:M,theme:T,setTheme:L,fullscreen:R,setFullscreen:B,saveState:z,dirty:U,saveError:H,saveProgress:V,quickSave:W}){const q="saving"===z?(0,t.__)("Saving…","compactform"):"saved"===z?(0,t.__)("Saved ✓","compactform"):"error"===z?(0,t.__)("Retry","compactform"):(0,t.__)("Save","compactform"),J=window.FCF7Builder||{},Y=("dark"===T?J.logoLightUrl:J.logoUrl)||"",K=`fcf7b-save${"saved"===z?" fcf7b-save--saved":""}${"error"===z?" fcf7b-save--error":""}`;return(0,n.jsxs)("div",{className:"fcf7b-toolbar",children:[(0,n.jsx)("div",{className:"fcf7b-brand",children:Y?(0,n.jsx)("img",{src:Y,alt:"CompactForm",className:"fcf7b-brand-logo"}):(0,n.jsxs)(n.Fragment,{children:["⬤"," CompactForm"]})}),(0,n.jsxs)("div",{className:"fcf7b-tabs",children:[(0,n.jsx)("button",{type:"button",className:"preview"===e?"active":"",onClick:()=>a("preview"),children:(0,t.__)("Builder","compactform")}),(0,n.jsx)("button",{type:"button",className:"code"===e?"active":"",onClick:()=>a("code"),children:(0,t.__)("Generated CF7","compactform")})]}),(0,n.jsxs)("div",{className:"fcf7b-tb-right",children:[(0,n.jsxs)("span",{className:"fcf7b-count",children:[(0,t.sprintf)(/* translators: %d: number of fields on the canvas. */ /* translators: %d: number of fields on the canvas. */
     7(0,t._n)("%d field","%d fields",s,"compactform"),s),l?" · "+(0,t.__)("rendering…","compactform"):""]}),(0,n.jsx)("div",{className:"fcf7b-devices",children:[["desktop","ri-computer-line",(0,t.__)("Desktop","compactform")],["tablet","ri-tablet-line",(0,t.__)("Tablet","compactform")],["mobile","ri-smartphone-line",(0,t.__)("Mobile","compactform")]].map(([e,t,a])=>(0,n.jsx)("button",{type:"button",title:a,className:c===e?"active":"",onClick:()=>r(e),children:(0,n.jsx)("i",{className:t})},e))}),(0,n.jsxs)("div",{className:"fcf7b-tb-group",children:[(0,n.jsx)(Ke,{onImport:A}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost"+(i?" is-set":""),title:(0,t.__)("Navigator (form structure)","compactform"),disabled:"preview"!==e,onClick:()=>o(!i),children:(0,n.jsx)("i",{className:"ri-stack-line"})}),(0,n.jsx)(Ue,{schema:d,setSchema:f,breakpoints:p,onBreakpointsChange:m,fieldGap:u,onFieldGapChange:b,containerColumnGap:g,onContainerColumnGapChange:x,containerRowGap:v,onContainerRowGapChange:j,containerPadding:y,onContainerPaddingChange:_,webhook:N,onWebhookChange:w,spamProtection:k,onSpamProtectionChange:C,fields:S})]}),(0,n.jsxs)("div",{className:"fcf7b-tb-group",children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Undo (Ctrl+Z)","compactform"),disabled:!E,onClick:P,children:(0,n.jsx)("i",{class:"ri-arrow-go-back-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Redo (Ctrl+Y)","compactform"),disabled:!I,onClick:$,children:(0,n.jsx)("i",{class:"ri-arrow-go-forward-line"})}),(0,n.jsx)("span",{className:"fcf7b-tb-div","aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Export form (JSON)","compactform"),onClick:G,children:(0,n.jsx)("i",{class:"ri-download-2-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:(0,t.__)("Import form (JSON)","compactform"),onClick:()=>D.current&&D.current.click(),children:(0,n.jsx)("i",{class:"ri-upload-2-line"})}),(0,n.jsx)("input",{ref:D,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:F}),(0,n.jsx)("span",{className:"fcf7b-tb-div","aria-hidden":"true"}),(0,n.jsx)(h,{value:O,onChange:M,disabled:"preview"!==e}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:"light"===T?(0,t.__)("Dark theme","compactform"):(0,t.__)("Light theme","compactform"),onClick:()=>L("light"===T?"dark":"light"),children:"light"===T?(0,n.jsx)("i",{class:"ri-moon-line"}):(0,n.jsx)("i",{class:"ri-sun-line"})}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ghost",title:R?(0,t.__)("Exit fullscreen","compactform"):(0,t.__)("Fullscreen","compactform"),onClick:()=>B(!R),children:R?(0,n.jsx)("i",{class:"ri-fullscreen-exit-line"}):(0,n.jsx)("i",{class:"ri-fullscreen-line"})})]}),(0,n.jsx)("button",{type:"button",className:K,disabled:"saving"===z||!U&&"error"!==z,title:"error"===z?H:U?(0,t.__)("Save form layout","compactform"):(0,t.__)("No unsaved changes","compactform"),"aria-busy":"saving"===z,onClick:W,children:q})]}),(0,n.jsx)("div",{className:`fcf7b-progress${"idle"===z?"":" is-active"}${"error"===z?" fcf7b-progress--error":""}`,role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":V,children:(0,n.jsx)("span",{className:"fcf7b-progress-fill",style:{width:`${V}%`}})})]})}function Ze({search:a,setSearch:s,onAdd:l,schema:c,setSchema:r}){const[i,o]=(0,e.useState)("fields"),d=b.categories||{},f=g.filter(e=>!a||e.title.toLowerCase().includes(a.toLowerCase())),p=ne.applyFilters("fcf7b.paletteTabs",[]),m=p.find(e=>e.id===i),u=e=>(0,n.jsxs)("button",{className:"fcf7b-pal-item",type:"button",draggable:!0,onDragStart:()=>{j.value={kind:"new",type:e.type}},onDragEnd:()=>{j.value=null},onClick:()=>l(e.type,null),children:[(0,n.jsx)("span",{className:`fcf7b-pal-icon ${e.icon}`}),(0,n.jsx)("span",{className:"fcf7b-pal-label",children:e.title}),!!e.isPro&&(0,n.jsx)("span",{className:"fcf7b-pal-pro",title:(0,t.__)("Pro","compactform"),children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 640",children:(0,n.jsx)("path",{d:"M345 151.2C354.2 143.9 360 132.6 360 120C360 97.9 342.1 80 320 80C297.9 80 280 97.9 280 120C280 132.6 285.9 143.9 295 151.2L226.6 258.8C216.6 274.5 195.3 278.4 180.4 267.2L120.9 222.7C125.4 216.3 128 208.4 128 200C128 177.9 110.1 160 88 160C65.9 160 48 177.9 48 200C48 221.8 65.5 239.6 87.2 240L119.8 457.5C124.5 488.8 151.4 512 183.1 512L456.9 512C488.6 512 515.5 488.8 520.2 457.5L552.8 240C574.5 239.6 592 221.8 592 200C592 177.9 574.1 160 552 160C529.9 160 512 177.9 512 200C512 208.4 514.6 216.3 519.1 222.7L459.7 267.3C444.8 278.5 423.5 274.6 413.5 258.9L345 151.2z"})})}),ne.applyFilters("fcf7b.paletteItemBadge",null,e)]},e.type);return(0,n.jsxs)("div",{className:"fcf7b-palette",children:[!!p.length&&(0,n.jsxs)("div",{className:"fcf7b-pal-switch",children:[(0,n.jsx)("button",{type:"button",className:"fields"===i?"active":"",onClick:()=>o("fields"),children:"Fields"}),p.map(e=>(0,n.jsx)("button",{type:"button",className:i===e.id?"active":"",onClick:()=>o(e.id),children:e.label},e.id))]}),(0,n.jsx)("input",{className:"fcf7b-search",type:"search",placeholder:m?(0,t.sprintf)(/* translators: %s: name of the palette group being searched. */ /* translators: %s: name of the palette group being searched. */
     8(0,t.__)("Search %s...","compactform"),m.label.toLowerCase()):(0,t.__)("Search fields...","compactform"),value:a,onChange:e=>s(e.target.value)}),m?m.render({search:a,onAdd:l,schema:c,setSchema:r}):Object.keys(d).map(e=>{const t=f.filter(t=>t.category===e);return t.length?(0,n.jsxs)("div",{className:"fcf7b-pal-group",children:[(0,n.jsx)("div",{className:"fcf7b-pal-title",children:d[e]}),(0,n.jsx)("div",{className:"fcf7b-pal-grid",children:t.map(u)})]},e):null})]})}function Qe(e,t){return e==t||String(e)===String(t)}function et(e,t,n="desktop"){return!e||"object"!=typeof e||Object.keys(e).every(a=>{const{key:s,sub:l,negate:c}=function(e){let t=String(e);const n=t.endsWith("!");n&&(t=t.slice(0,-1));let a="";const s=t.indexOf("[");return s>-1&&t.endsWith("]")&&(a=t.slice(s+1,-1),t=t.slice(0,s)),{key:t,sub:a,negate:n}}(a),r=e[a],i=function(e,t,n,a){const s=x[e.type]||{},l=s.defaults||{};let c=void 0!==e[t]?e[t]:l[t];const r=(s.controls||[]).find(e=>e.key===t);if(r&&r.responsive&&c&&"object"==typeof c&&!Array.isArray(c)){const e=V(a).find(e=>void 0!==c[e]);c=e?c[e]:void 0}return n&&(c=c&&"object"==typeof c?c[n]:void 0),c??""}(t,s,l,n),o=Array.isArray(r)?r.some(e=>Qe(i,e)):Qe(i,r);return c?!o:o})}const tt=e=>null==e?"":String(e).replace(/[{};]|[\r\n]/g,"").trim(),nt=(e,t=9999)=>{if(""===e||null==e||isNaN(e))return"";const n=Number(e);return Math.abs(n)<=t?String(n):""},at=(e,t)=>{if(!e||"object"!=typeof e)return"";if("custom"===e.unit){const n=tt(e.customValue);return""===n?"":t.replace(/\{\{TOP\}\}/g,n).replace(/\{\{RIGHT\}\}|\{\{BOTTOM\}\}|\{\{LEFT\}\}|\{\{UNIT\}\}/g,"").replace(/ {2,}/g," ").replace(/ ;/g,";").trim()}const n={};let a=!1;return["top","right","bottom","left"].forEach(t=>{const s=nt(e[t]);""!==s&&(a=!0),n[t]=""!==s?s:"0"}),a?t.replace(/\{\{TOP\}\}/g,n.top).replace(/\{\{RIGHT\}\}/g,n.right).replace(/\{\{BOTTOM\}\}/g,n.bottom).replace(/\{\{LEFT\}\}/g,n.left).replace(/\{\{UNIT\}\}/g,e.unit||"px"):""},st={slider:(e,t)=>{if(!e||"object"!=typeof e)return"";if("custom"===e.unit){const n=tt(e.size);return""===n?"":t.replace(/\{\{SIZE\}\}/g,n).replace(/\{\{UNIT\}\}/g,"")}const n=nt(e.size,5e3);return""===n?"":t.replace(/\{\{SIZE\}\}/g,n).replace(/\{\{UNIT\}\}/g,e.unit||"px")},dimensions:at,typography:e=>{if(!e||"object"!=typeof e)return"";const t=[],n=(window.FCF7Builder?.fontFamilies||{})[e.family]?.stack;n&&t.push(`font-family:${tt(n)}`);const a=(e,t)=>{if(!e||"object"!=typeof e)return"";if("custom"===e.unit)return tt(e.size);const n=nt(e.size);return""===n?"":n+(e.unit||t)},s=a(e.size,"px");s&&t.push(`font-size:${s}`),e.weight&&t.push(`font-weight:${tt(e.weight)}`),e.transform&&t.push(`text-transform:${tt(e.transform)}`),e.style&&t.push(`font-style:${tt(e.style)}`),e.decoration&&t.push(`text-decoration:${tt(e.decoration)}`);const l=a(e.lineHeight,"em");l&&t.push(`line-height:${l}`);const c=a(e.letterSpacing,"px");return c&&t.push(`letter-spacing:${c}`),t.length?t.join(";")+";":""},border:(e,t,n)=>{if(!e||"object"!=typeof e||!e.style)return"";if("none"===e.style)return"border-style:none;";const a=[`border-style:${tt(e.style)}`],s=e.width&&"object"==typeof e.width?e.width:{},l=V(n).find(e=>void 0!==s[e]),c=l?s[l]:B.some(e=>void 0!==s[e])?null:s,r=c?at(c,"border-width:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};"):"";return r&&a.push(r.replace(/;$/,"")),e.color&&a.push(`border-color:${tt(e.color)}`),a.join(";")+";"},box_shadow:e=>{if(!e||"object"!=typeof e)return"";const t=tt(e.color),n=t=>{const n=nt(e[t]);return""===n?"0":n},a=["horizontal","vertical","blur","spread"].some(t=>""!==nt(e[t]));return""!==t||a?`box-shadow: ${e.inset?"inset ":""}${n("horizontal")}px ${n("vertical")}px ${n("blur")}px ${n("spread")}px${t?" "+t:""};`:""}},lt=(e,t)=>{if(null==e||"object"==typeof e)return"";const n="boolean"==typeof e?e?"1":"":tt(e);return""===n?"":t.replace(/\{\{VALUE\}\}/g,n)};function ct(e,t="desktop",n=".fcf7b-canvas-row"){const a=[];return(e||[]).forEach(e=>{const s=x[e.type];if(!s||!e.id)return;const l=`${n} .fcf7b-field-${e.id}`,c=e=>(e||[]).reduce((e,t)=>(t.id&&(e[t.id]=t),e),{}),r=c(s.sections),i=c(s.popovers),o=c(s.tab_groups),d=c(s.tab_items);(s.controls||[]).forEach(n=>{const s=n.key;if(!s||!(s in e))return;if(n.popover&&!e[n.popover])return;const c=r[n.section];if(c&&c.condition&&!et(c.condition,e,"desktop"))return;const f=n.popover?i[n.popover]:null;if(f&&f.condition&&!et(f.condition,e,"desktop"))return;const p=n.tab_group?o[n.tab_group]:null;if(p&&p.condition&&!et(p.condition,e,"desktop"))return;const m=n.tab_item?d[n.tab_item]:null;if(m&&m.condition&&!et(m.condition,e,"desktop"))return;if(n.condition&&!et(n.condition,e,t))return;const u=n.selectors||(n.selector?{[n.selector]:""}:null);if(!u)return;let h=e[s];if(n.responsive&&h&&"object"==typeof h&&!Array.isArray(h)){const e=V(t);if(B.some(e=>void 0!==h[e])){const t=e.find(e=>!q(h[e]));h=t?h[t]:void 0}}if(void 0===h)return;const b=st[n.type]||lt;Object.keys(u).forEach(e=>{const n=b(h,String(u[e]),t);if(!n||!n.trim())return;const s=e.replace(/\{\{WRAPPER\}\}/g,l);a.push(`${s}{${n.trim()}}`)})})}),a.join("\n")}function rt({field:t,def:a,handlers:s,interactions:l={}}){const c=(0,e.useRef)(null);(0,e.useEffect)(()=>{const e=c.current;if(e)return s.mount(e,t,a,l),()=>s.unmount?.(e)},[]);const r=(0,e.useRef)(!1);return(0,e.useEffect)(()=>{r.current?c.current&&s.update?.(c.current,t,a,l):r.current=!0},[JSON.stringify(t)]),(0,n.jsx)("div",{className:"fcf7b-pv-custom",ref:c})}const it=(e,t)=>e.field_icon?(0,n.jsxs)("span",{className:"fcf7b-pv-iconwrap fcf7-field-icon",children:[(0,n.jsx)("i",{className:e.field_icon}),t]}):t;function ot({field:e,def:t,children:a,wrapClass:s=""}){const l=e.label??(t.title||""),c=""!==(e.required_asterisk??"")?e.required_asterisk:"*",r=e.required?(0,n.jsxs)("span",{className:"fcf7b-req",children:[" ",c]}):null,i=(e.description||"").trim()?(0,n.jsx)("small",{className:"fcf7b-pv-desc fcf7b-desc",children:e.description.trim()}):null,o=(0,n.jsx)("span",{className:`wpcf7-form-control-wrap ${s}`.trim(),"data-name":e.name||"",children:a});return(0,n.jsxs)("div",{className:`fcf7b-pv-field fcf7b-field-wrap fcf7b-field-${e.id}`,children:[(0,n.jsxs)("div",{className:"fcf7b-field",children:[""!==l?(0,n.jsxs)("span",{className:"fcf7b-pv-label fcf7b-field-label",children:[l,r]}):null,it(e,o)]}),i]})}function dt(e,t={},a="desktop",s={}){const l=le.getComponent(e.type);if(l)return(0,n.jsx)(l,{field:e,def:t,device:a,onChange:s.onChange,beginGesture:s.beginGesture,endGesture:s.endGesture,allFields:s.allFields,actions:s.actions,selected:s.selected,multi:s.multi,openMenu:s.openMenu});const c=le.get(e.type);return c?(0,n.jsx)(rt,{field:e,def:t,handlers:c,interactions:s},e.type):(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("input",{className:"fcf7b-pv-input wpcf7-form-control",type:"text",placeholder:e.placeholder||""})})}function ft({field:e,def:a,nested:s,actions:l,openMenu:c,onAdd:r,multi:i=[]}){const o=a&&a.title?a.title:e.type,d="container"===e.type,f=t=>{t.stopPropagation(),l.select(e.id,t.ctrlKey||t.metaKey)},p=t=>{t.preventDefault(),t.stopPropagation(),i.includes(e.id)||l.select(e.id),c&&c(e.id,t.clientX,t.clientY)},m=ne.applyFilters("fcf7b.cardHandleBadge",null,e,a);return d&&!s?(0,n.jsxs)("div",{className:"fcf7b-hdl fcf7b-hdl-tab",onContextMenu:p,children:[r&&(0,n.jsx)("button",{type:"button",title:(0,t.__)("Add a container below","compactform"),onClick:e=>{e.stopPropagation(),r()},children:(0,n.jsx)("i",{className:"ri-add-line"})}),(0,n.jsx)("span",{className:"fcf7b-hdl-grip",title:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("%s — drag to reorder","compactform"),o),onClick:f,children:(0,n.jsx)("i",{className:"ri-draggable"})}),(0,n.jsx)("button",{type:"button",title:(0,t.__)("Delete","compactform"),className:"danger",onClick:t=>{t.stopPropagation(),l.remove(e.id)},children:(0,n.jsx)("i",{className:"ri-close-line"})})]}):d?(0,n.jsxs)("div",{className:"fcf7b-hdl fcf7b-hdl-box",onContextMenu:p,children:[(0,n.jsx)("button",{type:"button",title:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("%s — click to edit, drag to move","compactform"),o),onClick:f,children:(0,n.jsx)("i",{className:"ri-draggable"})}),m]}):(0,n.jsxs)("div",{className:"fcf7b-hdl fcf7b-hdl-pen",onContextMenu:p,children:[m,(0,n.jsx)("button",{type:"button",title:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("Edit %s","compactform"),o),onClick:f,children:(0,n.jsx)("i",{className:"ri-pencil-line"})})]})}const pt=/Mac|iPhone|iPad/i.test(window.navigator&&(window.navigator.userAgentData?.platform||window.navigator.platform)||"")?"⌘":"^";function mt({menu:t,fields:a,actions:s,onClose:l}){const c=(0,e.useRef)(null),[r,i]=(0,e.useState)(null);if((0,e.useLayoutEffect)(()=>{if(!t||!c.current)return void i(null);const e=c.current.getBoundingClientRect();i({x:Math.max(8,Math.min(t.x,window.innerWidth-e.width-8)),y:Math.max(8,Math.min(t.y,window.innerHeight-e.height-8))})},[t]),!t)return null;const o=!t.id,d=o?[]:t.ids&&t.ids.length?t.ids:[t.id],f=d.length>1,p=d.length;return(0,n.jsx)("div",{className:"fcf7b-ctxmenu-backdrop",onClick:e=>{e.stopPropagation(),l()},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),l()},children:(0,n.jsxs)("div",{ref:c,className:"fcf7b-ctxmenu",style:{left:r?r.x:t.x,top:r?r.y:t.y,visibility:r?"visible":"hidden"},onClick:e=>e.stopPropagation(),children:[f&&(0,n.jsxs)("div",{className:"fcf7b-ctxmenu-title",children:[p," selected"]}),!o&&(0,n.jsxs)("button",{type:"button",onClick:()=>{A(a,d),l()},children:[(0,n.jsx)("i",{className:"ri-file-copy-2-line"})," ",f?`Copy All (${p})`:"Copy",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[pt,"+C"]})]}),(0,n.jsxs)("button",{type:"button",disabled:!F.value,onClick:()=>{F.value&&s.paste(F.value,t.id),l()},children:[(0,n.jsx)("i",{className:"ri-clipboard-line"})," Paste",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[pt,"+V"]})]}),!o&&(0,n.jsxs)("button",{type:"button",disabled:!F.value,onClick:()=>{d.forEach(e=>{const t=T(a.find(t=>t.id===e));Object.keys(t).length&&s.updateField(e,t)}),l()},children:[(0,n.jsx)("i",{className:"ri-brush-line"})," ",f?"Paste Style to All":"Paste Style",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[pt,"+⇧+V"]})]}),!f&&!o&&(()=>{const e=a.find(e=>e.id===t.id),c=e?x[e.type]:null;return e?ne.applyFilters("fcf7b.cardContextMenuItems",[],e,c,s,l).map(e=>(0,n.jsx)("span",{children:e.render()},e.id)):null})(),!o&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"fcf7b-ctxmenu-sep"}),(0,n.jsxs)("button",{type:"button",onClick:()=>{l(),s.duplicateMany(d)},children:[(0,n.jsx)("i",{className:"ri-file-copy-line"})," ",f?`Duplicate All (${p})`:"Duplicate",(0,n.jsxs)("span",{className:"fcf7b-ctxmenu-key",children:[pt,"+D"]})]}),(0,n.jsxs)("button",{type:"button",className:"danger",onClick:()=>{l(),s.removeMany(d)},children:[(0,n.jsx)("i",{className:"ri-delete-bin-line"})," ",f?`Delete All (${p})`:"Delete",(0,n.jsx)("span",{className:"fcf7b-ctxmenu-key",children:"⌦"})]})]})]})})}function ut({fields:a,selected:s,multi:l=[],actions:c,device:r="desktop",breakpoints:i={},background:o="",fieldGap:d,containerColumnGap:f,containerRowGap:m,containerPadding:u}){const h=G("root"),[b,g]=(0,e.useState)(null),y=(e,t,n)=>g({id:e,x:t,y:n,ids:e?c.targetIds(e):[]}),w={parentId:null,stepId:null},k=e=>{if(null==e||""===e)return;if("object"!=typeof e)return e;const t=V(r).find(t=>void 0!==e[t]&&""!==e[t]);return void 0===t?void 0:e[t]},C=k(d),$=[["column-gap",k(f)],["row-gap",k(m)]].filter(([,e])=>void 0!==e).map(([e,t])=>`${e}:${t}px`).join(";"),F=V(r).find(e=>u&&!q(u[e])),D=[$,F?at(u[F],"padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};"):""].filter(Boolean).join(";"),A=e=>{E(),j.value&&("new"===j.value.kind?c.add(j.value.type,e,w):"move"===j.value.kind&&c.move(N(),e,w),j.value=null)},O=a.map((e,t)=>{if(e.parentId)return null;const i=x[e.type]||{title:e.type,icon:""},o=v[e.id]?{...i,builderMarkup:v[e.id]}:i,d={onChange:(t,n)=>c.updateField(e.id,t,n),beginGesture:c.beginGesture,endGesture:c.endGesture,allFields:a,actions:c,selected:s,multi:l,openMenu:y},f=J(e,o,r);return(0,n.jsx)("div",{className:`fcf7b-cell fcf7b-field-${e.id}${h===t?" is-drop-before":""}${h===t+1&&(t+1>=a.length||a[t+1].parentId)?" is-drop-after":""}`,"data-index":t,onDragOver:e=>{e.preventDefault(),e.stopPropagation();const n=t+P(e,e.currentTarget,"y");S("root",n,()=>A(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:`fcf7b-card${l.includes(e.id)?" is-selected":""} ${ne.applyFilters("fcf7b.cardClassName","",e)}`.trim(),draggable:!0,onDragStart:t=>{t.target.closest&&t.target.closest("input, textarea, select")?t.preventDefault():(_(e.id,l),t.stopPropagation())},onClick:t=>{t.stopPropagation(),c.select(e.id,t.ctrlKey||t.metaKey)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),l.includes(e.id)||c.select(e.id),y(e.id,t.clientX,t.clientY)},children:[(0,n.jsx)(ft,{field:e,def:o,nested:!1,actions:c,multi:l,openMenu:y,onAdd:()=>c.add("container",t+1,w)}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:dt(f,o,r,d)})]})},e.id)});return(0,n.jsxs)("div",{className:`fcf7b-canvas-wrap is-${r}`,style:p(o)?{background:o}:null,onClick:()=>c.select(null),onClickCapture:e=>{e.target.closest&&e.target.closest("a[href]")&&e.preventDefault()},onContextMenu:e=>{e.preventDefault(),y(null,e.clientX,e.clientY)},onDragOver:e=>{e.preventDefault();const t=((e,t)=>{const n=e.querySelector(".fcf7b-canvas-row");if(!n)return a.length;const s=Array.from(n.querySelectorAll(":scope > .fcf7b-cell"));for(let e=0;e<s.length;e++){const n=s[e].getBoundingClientRect();if(t<n.top+n.height/2)return Number(s[e].dataset.index)}return a.length})(e.currentTarget,e.clientY);S("root",t,()=>A(t))},onDrop:e=>{e.preventDefault(),I()||A(a.length)},children:[a.length?(0,n.jsxs)("div",{className:"fcf7b-canvas-grid wpcf7",style:U(r,i)?{maxWidth:U(r,i)+"px"}:null,children:[(0,n.jsxs)("style",{children:[D?`.fcf7b-canvas-row .fcf7-container{${D}}\n`:"",ct(a,r)]}),(0,n.jsx)("div",{className:"fcf7b-canvas-row",style:void 0===C?null:{"--fcf7b-cell-gap":C+"px"},children:O})]}):(0,n.jsxs)("div",{className:"fcf7b-empty"+(h>=0?" is-drop-in":""),children:[(0,n.jsx)("div",{className:"fcf7b-empty-emoji",children:"🧩"}),(0,n.jsx)("div",{children:(0,t.__)("Drag a field here, or click one on the left to add it.","compactform")})]}),(0,n.jsx)(mt,{menu:b,fields:a,actions:c,onClose:()=>g(null)})]})}const ht={},bt={registerComponent(e,t){e&&"function"==typeof t&&(ht[e]=t)},getComponent:e=>ht[e]||null,getTypes:()=>Object.keys(ht)};function gt({ctrl:e,value:t,update:a}){const s=["number","time","date"].includes(e.type)?e.type:"text",l=void 0!==t?t:e.default??"";return(0,n.jsx)("input",{type:s,value:l,placeholder:e.placeholder||void 0,min:"number"===s?0:void 0,onChange:t=>{return a(e.key,(n=t.target.value,e.slug?String(n).replace(/[^A-Za-z0-9_-]/g,"-"):n));var n},onBlur:t=>{if(!e.slug)return;const n=t.target.value.replace(/^-+|-+$/g,"");n!==t.target.value&&a(e.key,n)}})}function xt({ctrl:e,value:t,update:a,field:s,beginGesture:l,endGesture:c,allFields:r,device:i="desktop"}){const o=e.type;let d;if(e.responsive){const n=t&&"object"==typeof t&&!Array.isArray(t)?t:{};t=n[i];const l=V(i).slice(1).find(e=>!q(n[e]));d=l?n[l]:void 0,void 0===d&&s&&(d=function(e,t,n="desktop"){const a=(_e[e]||{})[t];if(!a)return;const s=function(e,t="desktop"){const n=(y.value||{})[e];if(q(n))return;if("object"!=typeof n||Array.isArray(n))return n;const a=V(t).find(e=>!q(n[e]));return void 0===a?void 0:n[a]}(a,n);return void 0===s?function(e,t){if("container"!==e)return;const n=je[t];return void 0!==n?"padding"===t?ye(n):n:void 0}(e,t):s}(s.type,e.key,i));const c=a;a=(t,a)=>{const s=t&&"object"==typeof t?t:{[t]:a};c(e.key,{...n,[i]:s[e.key]})}}const f=bt.getComponent(o)||gt,p={ctrl:e,value:t,inherited:d,update:a,field:s,allFields:r,device:i,beginGesture:l,endGesture:c},m=(0,n.jsx)(f,{...p}),u=t=>e.separator===t?(0,n.jsx)("div",{className:"fcf7b-ctl-sep","aria-hidden":"true"}):null,h=e.description?(0,n.jsx)("p",{className:"fcf7b-prop-desc",children:e.description}):null;if(f.standalone)return(0,n.jsxs)(n.Fragment,{children:[u("before"),m,h,u("after")]});const b=!1===e.label_block||"color"===o||"typography"===o||"icon"===o||"box_shadow"===o;return(0,n.jsxs)(n.Fragment,{children:[u("before"),(0,n.jsxs)("div",{className:"fcf7b-prop"+(b?" fcf7b-prop--inline":""),children:[(0,n.jsxs)("label",{className:"fcf7b-prop-label",children:[e.label,e.responsive?(0,n.jsx)("i",{className:`fcf7b-ctl-device ${H[i]}`,title:i}):null,e.hint?(0,n.jsx)("span",{className:"fcf7b-prop-hint",children:e.hint}):null]}),m,h]}),u("after")]})}function vt({toggleCtrl:e,controls:t,field:s,update:l,beginGesture:c,endGesture:r,allFields:i,device:o}){const d=!!s[e.key],f=(x[s.type]||{}).defaults||{},p=t.filter(e=>et(e.condition,s,o));return(0,n.jsx)("div",{className:"fcf7b-popgroup"+(d?" is-on":""),children:(0,n.jsxs)("div",{className:"fcf7b-popgroup-head",children:[(0,n.jsx)("label",{className:"fcf7b-prop-label",children:e.label}),(0,n.jsxs)("span",{className:"fcf7b-popgroup-tools",children:[d?(0,n.jsx)("button",{type:"button",className:"fcf7b-popgroup-reset",title:"Reset",onClick:()=>{const n={[e.key]:!1};t.forEach(e=>{n[e.key]=f[e.key]}),l(n)},children:(0,n.jsx)("i",{className:"ri-restart-line","aria-hidden":"true"})}):null,(0,n.jsx)(a,{className:"fcf7b-popgroup-pop",triggerClassName:"fcf7b-popgroup-edit"+(d?" is-on":""),popClassName:"fcf7b-popgroup-panel",title:d?`Edit ${e.label}`:`Enable ${e.label}`,onOpenChange:t=>{t&&!d&&l(e.key,!0)},trigger:(0,n.jsx)("i",{className:"ri-pencil-line","aria-hidden":"true"}),children:p.map(e=>(0,n.jsx)(xt,{ctrl:e,field:s,value:s[e.key],update:l,beginGesture:c,endGesture:r,allFields:i,device:o},e.key))})]})]})})}function jt({items:t,controls:a,field:s,update:l,beginGesture:c,endGesture:r,allFields:i,device:o}){const d=(t||[]).filter(e=>et(e.condition,s,o)),[f,p]=(0,e.useState)(d[0]?.id);if(!d.length)return null;const m=d.some(e=>e.id===f)?f:d[0].id,u=(a||[]).filter(e=>e.tab_item===m&&et(e.condition,s,o));return(0,n.jsxs)("div",{className:"fcf7b-ctabs",children:[(0,n.jsx)("div",{className:"fcf7b-ctabs-nav",children:d.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-ctab"+(e.id===m?" active":""),onClick:()=>p(e.id),children:e.label},e.id))}),(0,n.jsx)("div",{className:"fcf7b-ctabs-body",children:u.map(e=>(0,n.jsx)(xt,{ctrl:e,field:s,value:s[e.key],update:l,beginGesture:c,endGesture:r,allFields:i,device:o},e.key))})]})}function yt({field:a,update:s,beginGesture:l,endGesture:c,allFields:r,device:i}){const[o,d]=(0,e.useState)("settings"),[f,p]=(0,e.useState)({});if(!a)return(0,n.jsxs)("div",{className:"fcf7b-props fcf7b-props-empty",children:[(0,n.jsx)("div",{className:"fcf7b-empty-emoji",children:(0,n.jsx)("i",{class:"ri-cursor-hand"})}),(0,n.jsx)("p",{children:(0,t.__)("Select a field to edit its settings.","compactform")})]});const m=x[a.type]||{controls:[],sections:[]},u=e=>(e||[]).reduce((e,t)=>(t.id&&(e[t.id]=t),e),{}),h=u(m.tab_groups),g=u(m.tab_items),v=Object.keys(b.tabs||{settings:(0,t.__)("Settings","compactform"),style:(0,t.__)("Style","compactform"),advanced:(0,t.__)("Advanced","compactform")}).filter(e=>m.controls.some(t=>t.tab===e)),j=v.includes(o)?o:v[0]||"settings",y=(m.sections||[]).filter(e=>e.tab===j&&et(e.condition,a,i)).map(e=>({section:e,controls:m.controls.filter(t=>t.section===e.id&&!t.popover&&(e=>et(e.condition,a,i)&&(!e.tab_group||et((h[e.tab_group]||{}).condition,a,i))&&(!e.tab_item||et((g[e.tab_item]||{}).condition,a,i)))(t))})).filter(e=>e.controls.length>0),_=`${a.type}|${j}`,N=f[_],w=y[0]?.section.id||"";let k;k=void 0===N?w:""===N?"":y.some(e=>e.section.id===N)?N:w;const C=e=>{const t=[],o=new Set;return e.forEach(e=>{if(e.tab_group){if(o.has(e.tab_group))return;o.add(e.tab_group);const d=h[e.tab_group]||{};return"before"===d.separator&&t.push((0,n.jsx)("div",{className:"fcf7b-ctl-sep","aria-hidden":"true"},`sep-b-${e.tab_group}`)),t.push((0,n.jsx)(jt,{items:(m.tab_items||[]).filter(t=>t.group===e.tab_group),controls:(m.controls||[]).filter(t=>t.tab_group===e.tab_group),field:a,update:s,beginGesture:l,endGesture:c,allFields:r,device:i},`${a.id}:tabs-${e.tab_group}`)),void("after"===d.separator&&t.push((0,n.jsx)("div",{className:"fcf7b-ctl-sep","aria-hidden":"true"},`sep-a-${e.tab_group}`)))}e.popover_toggle?t.push((0,n.jsx)(vt,{toggleCtrl:e,controls:(m.controls||[]).filter(t=>t.popover===e.key),field:a,update:s,beginGesture:l,endGesture:c,allFields:r,device:i},`${a.id}:${e.key}`)):t.push((0,n.jsx)(xt,{ctrl:e,field:a,value:a[e.key],update:s,beginGesture:l,endGesture:c,allFields:r,device:i},`${a.id}:${e.key}`))}),t},S=ne.applyFilters("fcf7b.propsBanners",[],a,m,r);return(0,n.jsxs)("div",{className:"fcf7b-props",children:[(0,n.jsxs)("div",{className:"fcf7b-props-head",children:[m.icon?(0,n.jsx)("span",{className:`fcf7b-props-head-icon ${m.icon}`,"aria-hidden":"true"}):null,(0,n.jsx)("span",{children:(0,t.sprintf)(/* translators: %s: field name. */ /* translators: %s: field name. */(0,t.__)("Edit %s","compactform"),m.title||a.type)})]}),S.length>0&&(0,n.jsx)("div",{className:"fcf7b-props-banners",children:S.map(e=>(0,n.jsx)("span",{children:e.render()},e.id))}),(0,n.jsx)("div",{className:"fcf7b-props-tabs",children:v.map(e=>{const{label:t,icon:a}=(e=>{const t=b.tabs?.[e];return t&&"object"==typeof t?t:{label:t||e,icon:""}})(e);return(0,n.jsxs)("button",{type:"button",className:"fcf7b-ptab"+(j===e?" active":""),onClick:()=>d(e),children:[a?(0,n.jsx)("i",{className:a,"aria-hidden":"true"}):null,(0,n.jsx)("span",{children:t})]},e)})}),(0,n.jsx)("div",{className:"fcf7b-props-body",children:y.map(({section:e,controls:t})=>{const a=e.id===k;return(0,n.jsxs)("div",{className:"fcf7b-sec"+(a?" open":""),children:[(0,n.jsxs)("button",{type:"button",className:"fcf7b-sec-head","aria-expanded":a,onClick:()=>{return t=e.id,p(e=>({...e,[_]:k===t?"":t}));var t},children:[(0,n.jsx)("i",{className:"ri-arrow-right-s-line fcf7b-sec-arrow","aria-hidden":"true"}),(0,n.jsx)("span",{children:e.label})]}),a&&(0,n.jsx)("div",{className:"fcf7b-sec-body",children:C(t)})]},e.id)})})]})}const _t="fcf7b-nav-box",Nt=e=>Array.isArray(e.steps)&&e.steps.length?e.steps:[{id:"step_1",label:(0,t.sprintf)(/* translators: %d: step number. */ /* translators: %d: step number. */(0,t.__)("Step %d","compactform"),1)}];function wt({fields:a,selected:s,multi:l=[],actions:c,onClose:r}){const[i,o]=(0,e.useState)(()=>function(e){const t=Math.min(Math.max(220,e.w||220),window.innerWidth-16),n=Math.min(Math.max(180,e.h||180),window.innerHeight-16);return{w:t,h:n,x:Math.max(8,Math.min(e.x||0,window.innerWidth-t-8)),y:Math.max(8,Math.min(e.y||0,window.innerHeight-n-8))}}(function(){try{const e=JSON.parse(window.localStorage.getItem(_t));if(e&&"object"==typeof e)return e}catch(e){}return null}()||{x:window.innerWidth-360,y:120,w:300,h:420})),[d,f]=(0,e.useState)(()=>new Set),[p,m]=(0,e.useState)(null),[u,h]=(0,e.useState)(null),b=(0,e.useRef)(null);(0,e.useEffect)(()=>{try{window.localStorage.setItem(_t,JSON.stringify(i))}catch(e){}},[i]);const g=new Map(a.map(e=>[e.id,e]));(0,e.useEffect)(()=>{if(!s)return;const e=(e=>{const t=[];let n=g.get(e);for(;n&&n.parentId;)t.push(n.parentId),n=g.get(n.parentId);return t})(s);e.length&&f(t=>{if(!e.some(e=>t.has(e)))return t;const n=new Set(t);return e.forEach(e=>n.delete(e)),n})},[s]);const v=e=>t=>{t.button||(t.preventDefault(),t.currentTarget.setPointerCapture(t.pointerId),b.current={kind:e,sx:t.clientX,sy:t.clientY,...i})},y=e=>document.querySelector(`.fcf7b-field-${e}`),w=(e,t)=>{const n=y(e);n&&n.classList.toggle("fcf7b-nav-peek",t)},k=(e,t)=>{if(!e)return a.filter(e=>!e.parentId);const n=g.get(e);if(n&&"multistep"===n.type){const s=Nt(n),l=new Set(s.map(e=>e.id)),c=t===s[0].id;return a.filter(n=>n.parentId===e&&(n.stepId===t||c&&!l.has(n.stepId)))}return a.filter(t=>t.parentId===e)},C=(e,t,n)=>{const s=k(e,t);if(n<s.length)return a.indexOf(s[n]);if(s.length)return a.indexOf(s[s.length-1])+1;const l=e?a.findIndex(t=>t.id===e):-1;return-1===l?a.length:l+1},S=(e,t)=>{let n=g.get(e);for(;n;){if(n.id===t)return!0;n=n.parentId?g.get(n.parentId):null}return!1},I=(e,t,n)=>{const a=t.getBoundingClientRect(),s=(e.clientY-a.top)/(a.height||1);return"container"===(l=n.type)||"repeater"===l||"multistep"===l?s<.3?"before":s>.7?"after":"inside":s>.5?"after":"before";var l},P=(e,s)=>{const r=x[e.type]||{title:e.type,icon:"ri-square-line"},i=a.filter(t=>t.parentId===e.id),o=!!i.length||"multistep"===e.type,u=!d.has(e.id),b=(e.label||e.name||r.title||e.type).toString(),g=p&&p.id===e.id?` is-drop-${p.where}`:"";return(0,n.jsxs)("div",{className:"fcf7b-nav-node",children:[(0,n.jsxs)("div",{className:`fcf7b-nav-row${l.includes(e.id)?" is-selected":""}${g}`,style:{paddingLeft:6+14*s},draggable:!0,onDragStart:t=>{_(e.id,l),t.stopPropagation()},onDragEnd:()=>m(null),onDragOver:t=>{t.preventDefault(),t.stopPropagation(),j.value&&m({id:e.id,where:I(t,t.currentTarget,e)})},onDrop:t=>{t.preventDefault(),t.stopPropagation(),((e,t)=>{if(m(null),E(),!j.value)return;let n,a,s;if("inside"===t)n=e.id,a="multistep"===e.type?Nt(e)[0].id:null,s=k(n,a).length;else{n=e.parentId||null,a=e.stepId||null;const l=k(n,a),c=l.findIndex(t=>t.id===e.id);s=(-1===c?l.length:c)+("after"===t?1:0)}if(n&&N().some(e=>S(n,e)))return void(j.value=null);const l={parentId:n,stepId:a},r=C(n,a,s);"new"===j.value.kind?c.add(j.value.type,r,l):"move"===j.value.kind&&c.move(N(),r,l),j.value=null})(e,I(t,t.currentTarget,e))},onClick:t=>((e,t)=>{if(c.select(e,t),t)return;const n=y(e);n&&n.scrollIntoView({block:"nearest",behavior:"smooth"})})(e.id,t.ctrlKey||t.metaKey),onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),w(e.id,!1),l.includes(e.id)||c.select(e.id),h({id:e.id,x:t.clientX,y:t.clientY,ids:c.targetIds(e.id)})},onMouseEnter:()=>w(e.id,!0),onMouseLeave:()=>w(e.id,!1),children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-nav-caret"+(o?"":" is-empty"),tabIndex:o?0:-1,onClick:t=>{var n;t.stopPropagation(),o&&(n=e.id,f(e=>{const t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}))},children:o?(0,n.jsx)("i",{className:u?"ri-arrow-down-s-line":"ri-arrow-right-s-line"}):null}),(0,n.jsx)("i",{className:`fcf7b-nav-icon ${r.icon||"ri-square-line"}`}),(0,n.jsx)("span",{className:"fcf7b-nav-label",title:`${b} · ${r.title||e.type}`,children:b}),(0,n.jsxs)("span",{className:"fcf7b-nav-acts",children:[(0,n.jsx)("button",{type:"button",title:(0,t.__)("Duplicate","compactform"),onClick:t=>{t.stopPropagation(),c.duplicate(e.id)},children:(0,n.jsx)("i",{className:"ri-file-copy-line"})}),(0,n.jsx)("button",{type:"button",className:"danger",title:(0,t.__)("Delete","compactform"),onClick:t=>{t.stopPropagation(),w(e.id,!1),c.remove(e.id)},children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]})]}),u&&"multistep"===e.type&&Nt(e).map((t,l)=>{const r=new Set(Nt(e).map(e=>e.id)),i=0===l,o=a.filter(n=>n.parentId===e.id&&(n.stepId===t.id||i&&!r.has(n.stepId)));return(0,n.jsxs)("div",{className:"fcf7b-nav-node",children:[(0,n.jsxs)("div",{className:"fcf7b-nav-row is-step",style:{paddingLeft:6+14*(s+1)},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:n=>{if(n.preventDefault(),n.stopPropagation(),m(null),E(),!j.value)return;const a=C(e.id,t.id,o.length),s={parentId:e.id,stepId:t.id};"new"===j.value.kind?c.add(j.value.type,a,s):N().some(t=>S(e.id,t))||c.move(N(),a,s),j.value=null},children:[(0,n.jsx)("span",{className:"fcf7b-nav-caret is-empty"}),(0,n.jsx)("i",{className:"fcf7b-nav-icon ri-stack-line"}),(0,n.jsx)("span",{className:"fcf7b-nav-label",children:t.label||`Step ${l+1}`})]}),o.map(e=>P(e,s+2))]},t.id)}),u&&"multistep"!==e.type&&i.map(e=>P(e,s+1))]},e.id)},$=a.filter(e=>!e.parentId);return(0,n.jsxs)("div",{className:"fcf7b-nav",style:{left:i.x,top:i.y,width:i.w,height:i.h},onClick:e=>e.stopPropagation(),onPointerMove:e=>{const t=b.current;if(!t)return;const n=e.clientX-t.sx,a=e.clientY-t.sy;"move"===t.kind?o({...i,x:t.x+n,y:t.y+a}):o({...i,w:Math.max(220,t.w+n),h:Math.max(180,t.h+a)})},onPointerUp:e=>{if(b.current){try{e.currentTarget.releasePointerCapture(e.pointerId)}catch(e){}b.current=null}},children:[(0,n.jsxs)("div",{className:"fcf7b-nav-head",onPointerDown:v("move"),children:[(0,n.jsx)("i",{className:"ri-stack-line"}),(0,n.jsx)("span",{children:(0,t.__)("Navigator","compactform")}),(0,n.jsx)("button",{type:"button",title:(0,t.__)("Close","compactform"),onPointerDown:e=>e.stopPropagation(),onClick:r,children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsx)("div",{className:"fcf7b-nav-body",onDragOver:e=>{e.preventDefault(),m(null)},onDrop:e=>{if(e.preventDefault(),E(),!j.value)return;const t={parentId:null,stepId:null};"new"===j.value.kind?c.add(j.value.type,a.length,t):"move"===j.value.kind&&c.move(N(),a.length,t),j.value=null},children:$.length?$.map(e=>P(e,0)):(0,n.jsx)("div",{className:"fcf7b-nav-empty",children:"No fields yet."})}),(0,n.jsx)("span",{className:"fcf7b-nav-resize",onPointerDown:v("resize")}),(0,n.jsx)(mt,{menu:u,fields:a,actions:c,onClose:()=>h(null)})]})}function kt(e,t,n){const a={...e};return void 0===n?delete a[t]:a[t]=n,a}function Ct(a){const[s,l]=(0,e.useState)(a.initial),[c,r]=(0,e.useState)("preview"),[i,o]=(0,e.useState)(""),[d,p]=(0,e.useState)(()=>{try{return"dark"===window.localStorage.getItem("fcf7b-theme")?"dark":"light"}catch(e){return"light"}}),[u,h]=(0,e.useState)(!1),[g,x]=(0,e.useState)(()=>{try{return"1"===window.localStorage.getItem("fcf7b-nav-open")}catch(e){return!1}}),[v,_]=(0,e.useState)(m),[N,w]=(0,e.useState)("desktop");window.CF7_BUILDER_STATE=s;const{selected:k,multi:C,actions:S}=function(t,n){const[a,s]=(0,e.useState)(null),[l,c]=(0,e.useState)([]),r=e=>n({...t,fields:e}),i=(e,n,a)=>{const s=n&&"object"==typeof n?n:{[n]:a};r(t.fields.map(t=>t.id===e?{...t,...s}:t))},o=e=>{s(e),c(e?[e]:[])},d={select(e,t){if(!t||!e)return void o(e);const n=l.includes(e),a=n?l.filter(t=>t!==e):[...l,e];c(a),s(n?a[a.length-1]||null:e)},targetIds:e=>e&&l.length>1&&l.includes(e)?l.slice():[e],add(e,n,a){let s=a?{...X(e),...a}:X(e);if(!s||!s.type)return null;s=ne.applyFilters("fcf7b.newField",s,j.value);const l=t.fields.slice(),c=null==n||n>l.length?l.length:n;return l.splice(c,0,s),r(l),o(s.id),s},remove(e){d.removeMany([e])},removeMany(e){const n=new Set((e||[]).filter(Boolean));if(!n.size)return;let i=!0;for(;i;)i=!1,t.fields.forEach(e=>{e.parentId&&n.has(e.parentId)&&!n.has(e.id)&&(n.add(e.id),i=!0)});r(t.fields.filter(e=>!n.has(e.id)));const o=l.filter(e=>!n.has(e));c(o),n.has(a)&&s(o[o.length-1]||null)},insert(e,n,a){const s=(e||[]).map(e=>{const t=X(e.type);return t?{...t,...e.overrides||{}}:null}).filter(Boolean);if(!s.length&&!a)return[];let l=t.fields.slice();if(a&&(l=l.map(e=>a[e.id]?{...e,...a[e.id]}:e)),s.length){const e=null==n||n>l.length?l.length:n;l.splice(e,0,...s)}return r(l),s.length&&o(s[0].id),s},duplicate(e){d.duplicateMany([e])},duplicateMany(e){const n=t.fields.slice(),a=D(n,(e||[]).filter(Boolean)).sort((e,t)=>n.findIndex(t=>t.id===e)-n.findIndex(e=>e.id===t)),l=[],i=[];let o=-1;a.forEach(e=>{const t=n.findIndex(t=>t.id===e);if(-1===t)return;const a={[e]:K()},s=[],c=e=>{n.forEach(t=>{t.parentId!==e||a[t.id]||(a[t.id]=K(),s.push(t),c(t.id))})};c(e);const r=e=>{const t=JSON.parse(JSON.stringify(e));return t.id=a[e.id],t.parentId&&a[t.parentId]&&(t.parentId=a[t.parentId]),t.name&&(t.name+="-copy"),t};o=Math.max(o,t);const d=[r(n[t]),...s.map(r)];i.push(...d),l.push(d[0].id)}),i.length&&(n.splice(o+1,0,...i),r(n),c(l),s(l[l.length-1]))},paste(e,n){const a=e&&e.fields||[];if(!a.length)return;const l=t.fields.slice(),i=n?l.findIndex(e=>e.id===n):-1,o=-1===i?null:l[i],d=o&&["container","repeater","multistep"].includes(o.type),f=d&&"multistep"===o.type?Array.isArray(o.steps)&&o.steps[0]&&o.steps[0].id||"step_1":null,p={};a.forEach(e=>{p[e.id]=K()});const m=new Set(e.roots&&e.roots.length?e.roots:[a[0].id]),u=a.map(e=>{const t=JSON.parse(JSON.stringify(e));return t.id=p[e.id],m.has(e.id)?d?(t.parentId=o.id,t.stepId=f):(t.parentId=o&&o.parentId||null,t.stepId=o&&o.stepId||null):t.parentId&&p[t.parentId]&&(t.parentId=p[t.parentId]),t.name&&(t.name+="-copy"),t});let h=-1===i?l.length:i+1;if(d){const e=l.reduce((e,t,n)=>t.parentId!==o.id||"multistep"===o.type&&t.stepId!==f?e:n,-1);h=-1===e?i+1:e+1}l.splice(h,0,...u),r(l);const b=u.filter((e,t)=>m.has(a[t].id)).map(e=>e.id);c(b),s(b[0]||u[0].id)},move(e,n,a){let s=t.fields.slice();const l=D(s,(Array.isArray(e)?e:[e]).filter(Boolean)).sort((e,t)=>s.findIndex(t=>t.id===e)-s.findIndex(e=>e.id===t));if(!l.length)return;const c=new Set(l),i=s.filter(e=>c.has(e.id)),o=s.filter((e,t)=>c.has(e.id)&&t<n).length;s=s.filter(e=>!c.has(e.id));let d=n-o;d<0&&(d=0),d>s.length&&(d=s.length),s.splice(d,0,...i.map(e=>a?{...e,...a}:e)),r(s)},updateField:i,update(e,t){i(a,e,t)}};return{selected:a,multi:l,actions:d}}(s,l),E=function(t,n){const[a,s]=(0,e.useState)(!1),[l,c]=(0,e.useState)(!1),r=(0,e.useRef)({stack:[],idx:-1,lock:!1});return(0,e.useEffect)(()=>{const e=r.current;e.lock?e.lock=!1:(e.gesture&&e.gesturePushed?e.stack[e.idx]=t:(e.stack=e.stack.slice(0,e.idx+1),e.stack.push(t),e.stack.length>100&&e.stack.shift(),e.idx=e.stack.length-1,e.gesture&&(e.gesturePushed=!0)),s(e.idx>0),c(!1))},[t]),{canUndo:a,canRedo:l,undo:()=>{const e=r.current;e.idx<=0||(e.idx-=1,e.lock=!0,n(e.stack[e.idx]),s(e.idx>0),c(!0))},redo:()=>{const e=r.current;e.idx>=e.stack.length-1||(e.idx+=1,e.lock=!0,n(e.stack[e.idx]),s(!0),c(e.idx<e.stack.length-1))},beginGesture:()=>{r.current.gesture=!0,r.current.gesturePushed=!1},endGesture:()=>{r.current.gesture=!1,r.current.gesturePushed=!1}}}(s,l),I=function(n){const[a,s]=(0,e.useState)({markup:"",loading:!1}),[l,c]=(0,e.useState)("idle"),[r,i]=(0,e.useState)(0),[o,d]=(0,e.useState)(""),[f,p]=(0,e.useState)(!1),m=(0,e.useRef)(JSON.stringify(n)),u=(0,e.useRef)(null),h=(0,e.useRef)(!1),g=()=>{const e=new window.FormData;return e.append("action","fcf7_builder_render"),e.append("nonce",b.nonce),e.append("schema",JSON.stringify(n)),window.fetch(b.ajaxUrl,{method:"POST",body:e,credentials:"same-origin"}).then(e=>e.json()).then(e=>{const t=e&&e.success&&e.data.markup||"";return s({markup:t,loading:!1}),t})};return(0,e.useEffect)(()=>{g().then(e=>{const t=document.querySelector('textarea[name="wpcf7-form"], textarea#wpcf7-form');t&&e&&t.value!==e&&(t.value=e,t.defaultValue=e,t.dispatchEvent(new Event("change",{bubbles:!0})));const a=document.getElementById("fcf7-builder-schema-input");a&&(a.value=JSON.stringify(n))})},[]),(0,e.useEffect)(()=>{const e=document.getElementById("fcf7-builder-root");e&&e.querySelectorAll("input, textarea, select").forEach(e=>{"checkbox"===e.type||"radio"===e.type?e.defaultChecked=e.checked:"SELECT"===e.tagName?[...e.options].forEach(e=>{e.defaultSelected=e.selected}):e.defaultValue=e.value})}),(0,e.useEffect)(()=>{p(JSON.stringify(n)!==m.current)},[JSON.stringify(n)]),(0,e.useEffect)(()=>{if(!f)return;const e=e=>{if(!h.current)return e.preventDefault(),e.returnValue="",""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[f]),(0,e.useEffect)(()=>{const e=document.getElementById("wpcf7-admin-form-element");if(!e)return;const t=e=>{const t=e.submitter||document.activeElement;if(t&&t.closest&&t.closest(".fcf7b-app"))return void e.preventDefault();const a=document.getElementById("fcf7-builder-schema-input");a&&(a.value=JSON.stringify(n)),h.current=!0};return e.addEventListener("submit",t),()=>e.removeEventListener("submit",t)},[n]),{saveState:l,saveProgress:r,saveError:o,dirty:f,quickSave:()=>{"saving"!==l&&f&&(c("saving"),i(12),(()=>{if(Number(b.formId))return Promise.resolve(b.formId);const e=document.getElementById("title")||document.querySelector('input[name="post_title"]'),n=e?e.value.trim():"";if(!n)return window.alert((0,t.__)("Please give this form a title first.","compactform")),Promise.resolve(null);const a=new window.FormData;return a.append("action","fcf7_builder_create_form"),a.append("nonce",b.saveNonce||""),a.append("title",n),window.fetch(b.ajaxUrl,{method:"POST",body:a,credentials:"same-origin"}).then(e=>e.json()).then(e=>e&&e.success&&e.data&&e.data.formId?(b.formId=e.data.formId,u.current=e.data.editUrl||null,b.formId):(window.alert(e?.data?.message||(0,t.__)("Could not create the form.","compactform")),null)).catch(e=>(window.alert(String(e)),null))})().then(e=>{if(!e)return c("idle"),void i(0);i(30),g().then(t=>{i(60),((e,t)=>{c("saving");const a=JSON.stringify(n),s=document.getElementById("fcf7-builder-schema-input");s&&(s.value=a);const l=new window.FormData;l.append("action","fcf7_builder_save"),l.append("nonce",b.saveNonce||""),l.append("form_id",e),l.append("schema",a),window.fetch(b.ajaxUrl,{method:"POST",body:l,credentials:"same-origin"}).then(e=>e.text().then(t=>({status:e.status,text:t}))).then(e=>{i(100);let n=null;try{n=JSON.parse(e.text)}catch(e){}if(n&&n.success){m.current=a,ne.doAction("fcf7b.afterSave",n.data),n.data&&n.data.mail&&pe(n.data.mail),n.data&&n.data.mailDefault&&window.FCF7DefaultMail&&window.FCF7DefaultMail.boxes&&["mail","mail_2"].forEach(e=>{n.data.mailDefault[e]&&window.FCF7DefaultMail.boxes[e]&&(window.FCF7DefaultMail.boxes[e].fields=n.data.mailDefault[e])});const e=document.querySelector('textarea[name="wpcf7-form"], textarea#wpcf7-form');if(e&&t&&e.value!==t&&(e.value=t,e.defaultValue=t,e.dispatchEvent(new Event("change",{bubbles:!0}))),p(!1),c("saved"),u.current)return h.current=!0,document.getElementById("wpcf7-admin-form-element")?.remove(),void(window.location.href=u.current)}else{const t=n?.data?.message?n.data.message:`HTTP ${e.status} — ${(e.text||"no response").slice(0,200)}`;window.console?.error("CompactForm Quick save failed:",t),d(t),c("error")}}).catch(e=>{window.console?.error("CompactForm Quick save request failed:",e),i(100),d(String(e)),c("error")}).then(()=>window.setTimeout(()=>{c("idle"),i(0)},3e3))})(e,t)})}))},render:a}}(s);!function({schema:t,selected:n,multi:a,actions:s,undo:l,redo:c}){(0,e.useEffect)(()=>{const e=e=>{const r=e.target;if(r&&(r.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(r.tagName||"")))return;if(document.querySelector(".fcf7b-gs-backdrop, .fcf7b-ctxmenu-backdrop"))return;const i=e.ctrlKey||e.metaKey;if(i&&"z"===e.key.toLowerCase())return e.preventDefault(),void(e.shiftKey?c():l());if(i&&"y"===e.key.toLowerCase())return e.preventDefault(),void c();if(i&&"c"===e.key.toLowerCase()&&!e.shiftKey){const n=window.getSelection();if(n&&n.toString())return;return void(a.length&&A(t.fields,a)&&e.preventDefault())}if(i&&"v"===e.key.toLowerCase()){if(!F.value)return;if(e.preventDefault(),e.shiftKey){const e=T(t.fields.filter(e=>e.id===n)[0]);Object.keys(e).length&&s.updateField(n,e)}else s.paste(F.value,n)}else{if(i&&"d"===e.key.toLowerCase())return e.preventDefault(),void(a.length&&s.duplicateMany(a));"Delete"===e.key&&a.length&&(e.preventDefault(),s.removeMany(a))}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n,a,t])}({schema:s,selected:k,multi:C,actions:S,undo:E.undo,redo:E.redo});const{exportForm:P,onImportFile:$,importInput:G,importSchema:O}=function(n,a,s){const l=(0,e.useRef)(null),c=e=>{if(!e||!Array.isArray(e.fields))return void window.alert((0,t.__)("Could not import: not a CompactForm export.","compactform"));const l=e.mail&&"object"==typeof e.mail,c=l?(0,t.sprintf)(/* translators: %d: number of fields in the imported file. */ /* translators: %d: number of fields in the imported file. */
    99(0,t._n)("Import %d field and mail settings? This replaces the current form and saves it immediately.","Import %d fields and mail settings? This replaces the current form and saves it immediately.",e.fields.length,"compactform"),e.fields.length):(0,t.sprintf)(/* translators: %d: number of fields in the imported file. */ /* translators: %d: number of fields in the imported file. */
    10 (0,t._n)("Import %d field? This replaces the current form and saves it immediately.","Import %d fields? This replaces the current form and saves it immediately.",e.fields.length,"compactform"),e.fields.length);if(!window.confirm(r))return;s(null);const c={fields:e.fields,breakpoints:e.breakpoints||{},integrations:e.integrations||n.integrations,configuration:e.configuration||n.configuration};a(c),l&&Object.keys(e.mail).forEach(t=>pe(e.mail[t],t));const i=document.getElementById("fcf7-builder-schema-input");i&&(i.value=JSON.stringify(c));const o=document.getElementById("wpcf7-admin-form-element");window.setTimeout(()=>{o&&o.submit()},0)};return{exportForm:()=>{const e={...n},t={};["mail","mail_2"].forEach(e=>{const n=function(e="mail"){const t=de[e];if(!t)return null;const n={};let a=!1;return Object.keys(t).forEach(e=>{const s=document.getElementById(t[e]);s&&(a=!0,n[e]=s.value)}),Object.keys(fe[e]||{}).forEach(t=>{const s=document.getElementById(fe[e][t]);s&&(a=!0,n[t]=s.checked)}),a?n:null}(e);n&&(t[e]=n)}),Object.keys(t).length&&(e.mail=t);const a=new window.Blob([JSON.stringify(e,null,2)],{type:"application/json"}),s=window.URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=`compactform-${(()=>{const e=document.getElementById("title")||document.querySelector('input[name="post_title"]');return(e?e.value:"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b.formId||"export"})()}.json`,document.body.appendChild(l),l.click(),l.remove(),window.URL.revokeObjectURL(s)},onImportFile:e=>{const n=e.target.files&&e.target.files[0];if(e.target.value="",!n)return;const a=new window.FileReader;a.onload=()=>{let e;try{e=JSON.parse(a.result)}catch(e){return void window.alert((0,t.__)("Could not import: that file is not valid JSON.","compactform"))}r(e)},a.readAsText(n)},importInput:l,importSchema:r}}(s,l,S.select),A={...S,beginGesture:E.beginGesture,endGesture:E.endGesture};(0,e.useEffect)(()=>{ee[""]&&ee[""].icons.length||te("",0,60).then(e=>{e&&e.icons&&(ee[""]={icons:e.icons,offset:e.nextOffset,hasMore:!!e.hasMore,total:e.total||0})})},[]),(0,e.useEffect)(()=>{try{window.localStorage.setItem("fcf7b-theme",d)}catch(e){}},[d]),(0,e.useEffect)(()=>{try{window.localStorage.setItem("fcf7b-nav-open",g?"1":"0")}catch(e){}},[g]),(0,e.useEffect)(()=>{try{window.localStorage.setItem(f,x)}catch(e){}},[x]),(0,e.useEffect)(()=>{if(!u)return;const e=e=>{"Escape"===e.key&&h(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[u]);const M=s.fields.filter(e=>e.id===k)[0]||null;y.value={containerColumnGap:s.containerColumnGap,containerRowGap:s.containerRowGap,containerPadding:s.containerPadding};const L=(0,e.useMemo)(()=>function(e){const t=function(e){if(!e)return[];const t="    ";let n=0;const a=[];for(const s of e.split("\n")){const e=s.trim();""!==e&&(ce.test(e)||"</div>"===e||"</label>"===e?(n=Math.max(0,n-1),a.push(t.repeat(n)+e)):(a.push(t.repeat(n)+e),(re.test(e)||e.startsWith("<div")&&!e.includes("</div>")||e.startsWith("<label")&&!e.includes("</label>"))&&(n+=1)))}return a}(e),a=[];return t.forEach((e,s)=>{(function(e){const t=[];let n,a=0;for(ie.lastIndex=0;n=ie.exec(e);)n.index>a&&t.push({k:"text",t:e.slice(a,n.index)}),t.push(...oe(n[0])),a=ie.lastIndex;return a<e.length&&t.push({k:"text",t:e.slice(a)}),t})(e).forEach((e,t)=>{""!==e.t&&a.push((0,n.jsx)("span",{className:`fcf7b-tok fcf7b-tok-${e.k}`,children:e.t},`${s}-${t}`))}),s<t.length-1&&a.push("\n")}),a}(I.render.markup),[I.render.markup]);return(0,n.jsxs)("div",{className:`fcf7b-app fcf7-builder-theme-${d}${u?" is-fullscreen":""}`,children:[(0,n.jsx)(He,{view:r,setView:c,fieldsCount:s.fields.length,renderLoading:I.render.loading,device:N,setDevice:w,navOpen:g,setNavOpen:v,schema:s,setSchema:l,breakpoints:s.breakpoints||{},onBreakpointsChange:e=>l({...s,breakpoints:e}),fieldGap:s.fieldGap,onFieldGapChange:e=>l(vt(s,"fieldGap",e)),containerColumnGap:s.containerColumnGap,onContainerColumnGapChange:e=>l(vt(s,"containerColumnGap",e)),containerRowGap:s.containerRowGap,onContainerRowGapChange:e=>l(vt(s,"containerRowGap",e)),containerPadding:s.containerPadding,onContainerPaddingChange:e=>l(vt(s,"containerPadding",e)),webhook:s.integrations?.webhook,onWebhookChange:e=>l({...s,integrations:{...s.integrations,webhook:e}}),spamProtection:s.configuration?.spamProtection,onSpamProtectionChange:e=>l({...s,configuration:{...s.configuration,spamProtection:e}}),fields:s.fields,canUndo:E.canUndo,canRedo:E.canRedo,undo:E.undo,redo:E.redo,exportForm:$,onImportFile:G,importInput:P,canvasBg:x,setCanvasBg:_,theme:d,setTheme:p,fullscreen:u,setFullscreen:h,saveState:I.saveState,dirty:I.dirty,saveError:I.saveError,saveProgress:I.saveProgress,quickSave:I.quickSave}),"code"===r?(0,n.jsxs)("div",{className:"fcf7b-code",children:[(0,n.jsx)("div",{className:"fcf7b-code-note",children:(0,t.__)("Generated from the builder on the server. Save the form with CF7’s Save button.","compactform")}),(0,n.jsx)("pre",{className:"fcf7b-code-pre",children:L.length?L:(0,t.__)("(empty form)","compactform")})]}):(0,n.jsxs)("div",{className:"fcf7b-columns",children:[(0,n.jsx)(Ve,{search:i,setSearch:o,onAdd:(e,t)=>A.add(e,null,t),schema:s,setSchema:l}),(0,n.jsx)(ct,{fields:s.fields,selected:k,multi:C,actions:A,device:N,breakpoints:s.breakpoints||{},background:x,fieldGap:s.fieldGap,containerColumnGap:s.containerColumnGap,containerRowGap:s.containerRowGap,containerPadding:s.containerPadding}),(0,n.jsx)(ut,{field:C.length>1?null:M,update:A.update,beginGesture:A.beginGesture,endGesture:A.endGesture,allFields:s.fields,device:N}),g&&(0,n.jsx)(gt,{fields:s.fields,selected:k,multi:C,actions:A,onClose:()=>v(!1)})]}),ne.applyFilters("fcf7b.appOverlays",[],{fields:s.fields,selected:k,multi:C,actions:A}).map(e=>(0,n.jsx)("span",{children:e.render()},e.id))]})}function jt({field:e,def:t}){return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("div",{className:"fcf7b-pv-server",dangerouslySetInnerHTML:{__html:t?.builderMarkup||""}})})}const yt=(e,t,n)=>({w:e||100,children:t,dir:n}),_t=[{key:"v",glyph:"↓",dir:"column",cells:[]},{key:"h",glyph:"→",dir:"row",cells:[]},{key:"2",cells:[yt(50),yt(50)]},{key:"3",cells:[yt(33.33),yt(33.33),yt(33.33)]},{key:"4",cells:[yt(25),yt(25),yt(25),yt(25)]},{key:"6",cells:[yt(16.66),yt(16.66),yt(16.66),yt(16.66),yt(16.66),yt(16.66)]},{key:"1-2",cells:[yt(33.33),yt(66.66)]},{key:"2-1",cells:[yt(66.66),yt(33.33)]},{key:"1-2-1",cells:[yt(25),yt(50),yt(25)]},{key:"l-rr",cells:[yt(50),yt(50,[yt(),yt()],"column")]},{key:"ll-r",cells:[yt(50,[yt(),yt()],"column"),yt(50)]},{key:"tt-b",dir:"column",cells:[yt(100,[yt(50),yt(50)],"row"),yt(100)]}];function Nt({cells:e,dir:t}){return(0,n.jsx)("span",{className:"fcf7b-ctnpick-box",style:{flexDirection:t||"row"},children:e.map((e,t)=>{const a={flex:`0 1 ${e.w}%`};return e.children?(0,n.jsx)("span",{className:"fcf7b-ctnpick-nest",style:a,children:(0,n.jsx)(Nt,{cells:e.children,dir:e.dir})},t):(0,n.jsx)("span",{className:"fcf7b-ctnpick-cell",style:a},t)})})}function wt({field:e,def:a}){const s=e.options||[],l=!!e.multiple;let r=null;l||"blank"!==e.first_option?!l&&"label"===e.first_option&&(e.first_option_text||"").trim()&&(r=e.first_option_text.trim()):r="";const c=[];if(null!==r&&c.push(r),s.forEach(e=>c.push(e)),c.length||c.push((0,t.__)("Select…","flexiforms-drag-drop-builder-for-cf7")),l){const t=c.slice(0,2);return(0,n.jsx)(nt,{field:e,def:a,children:(0,n.jsxs)("div",{className:"fcf7b-pv-input wpcf7-form-control fcf7b-pv-ms",children:[(0,n.jsx)("span",{className:"fcf7b-pv-ms-chips",children:t.length?t.map((e,t)=>(0,n.jsxs)("span",{className:"fcf7b-pv-ms-chip",children:[e,(0,n.jsx)("span",{children:"×"})]},t)):(0,n.jsx)("span",{className:"fcf7b-pv-ms-placeholder",children:"Select options…"})}),(0,n.jsx)("span",{className:"fcf7b-pv-ms-caret"})]})})}const i=Array.isArray(e.default_option)?e.default_option[0]:e.default_option;return(0,n.jsx)(nt,{field:e,def:a,children:(0,n.jsx)("select",{className:"fcf7b-pv-input wpcf7-form-control wpcf7-select",defaultValue:i||void 0,children:c.map((e,t)=>(0,n.jsx)("option",{children:e},t))},`${c.join("\0")}|${i||""}`)})}function kt({field:e,def:a}){const s="checkbox"===e.type?"checkbox":"radio",l=e=>(0,t.sprintf)((0,t.__)("Option %d","compactform"),e),r=e.options||[l(1),l(2)],c=Array.isArray(e.default_option)?e.default_option:e.default_option?[e.default_option]:[],i=`fcf7b-pv-${e.id}`;
    11 /* translators: %d: option number. */return(0,n.jsx)(nt,{field:e,def:a,children:(0,n.jsx)("span",{className:`fcf7b-pv-choices wpcf7-form-control wpcf7-${s}`,children:r.map((e,t)=>(0,n.jsx)("span",{className:`wpcf7-list-item${0===t?" first":""}${t===r.length-1?" last":""}`,children:(0,n.jsxs)("label",{children:[(0,n.jsx)("input",{type:s,name:i,defaultChecked:c.includes(e)}),(0,n.jsxs)("span",{className:"wpcf7-list-item-label",children:[" ",e]})]})},t))},`${r.join("|")}|${c.join("|")}`)})}const Ct={email:"email",tel:"tel",url:"url",number:"number",date:"date"};function St({field:e,def:t}){const a=e.defaultValue||"";return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("input",{className:`fcf7b-pv-input wpcf7-form-control wpcf7-${"tel"===e.type?"tel":Ct[e.type]||"text"}`,type:Ct[e.type]||"text",placeholder:e.placeholder||"",defaultValue:a},a)})}const Et={fcf7_date_picker:{cls:"fcf7-datepicker",keys:["mode","date_format","min_date","max_date","default_date"],global:"fcf7DatePicker"},fcf7_time_picker:{cls:"fcf7-timepicker",keys:["time_format","interval","min_time","max_time","default_time"],global:"fcf7TimePicker"},fcf7_datetime_picker:{cls:"fcf7-datetimepicker",keys:["mode","date_format","time_format","interval","min_date","max_date","default_date","default_time"],global:"fcf7DateTimePicker"}};function It({field:t,def:a}){const s=Et[t.type]||Et.fcf7_date_picker,l=(0,e.useRef)(null),r={};s.keys.forEach(e=>{r[e]=null==t[e]?"":String(t[e])});const c=JSON.stringify(r);return(0,e.useEffect)(()=>{const e=l.current;if(!e)return;const t=window[s.global];return t&&t.init&&t.init(e.closest(".fcf7b-pv-field")||document),()=>{e._flatpickr&&e._flatpickr.destroy()}},[c]),(0,n.jsx)(nt,{field:t,def:a,wrapClass:"fcf7-field-picker-wrapper",children:(0,n.jsx)("input",{ref:l,type:"text",className:`fcf7b-pv-input wpcf7-form-control ${s.cls}`,placeholder:t.placeholder||"","data-config":c},c)})}const $t=(e,t)=>""===e||null==e||isNaN(e)?t:Number(e),Gt=(e,t,n)=>Math.max(t,Math.min(n,e)),Pt=e=>`calc(var(--fcf7-range-handle-size) / 2 + ${Math.round(1e5*e)/1e5} * (100% - var(--fcf7-range-handle-size)))`;function Dt({ctrl:e,value:t,update:a}){return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-prop--inline fcf7b-switch-row",children:[(0,n.jsx)("span",{className:"fcf7b-prop-label",children:e.label}),(0,n.jsx)(Ce,{checked:t,onChange:t=>a(e.key,t),labelOn:e.label_on||"",labelOff:e.label_off||""})]})}function Ft({ctrl:e}){return(0,n.jsx)("div",{className:"fcf7b-ctl-heading",children:e.label})}function Ot({value:s,onChange:l}){const[r,c]=(0,e.useState)(""),[i,o]=(0,e.useState)(()=>ee[""]||{icons:[],offset:0,hasMore:!0,total:0}),[d,f]=(0,e.useState)(""),p=(0,e.useRef)(!1),m=(0,e.useRef)(0),u=r.trim().toLowerCase(),h=(e,t,n)=>{if(!n&&p.current)return;p.current=!0;const a=++m.current;f(n?"reset":"more"),te(e,t,n?60:void 0).then(t=>{a===m.current&&o(t?a=>{const s={icons:(n?[]:a.icons).concat(t.icons||[]),offset:t.nextOffset,hasMore:!!t.hasMore,total:t.total||0};return ee[e]=s,s}:e=>({...e,hasMore:!1}))}).then(()=>{a===m.current&&(p.current=!1,f(""))})};return(0,e.useEffect)(()=>{const e=ee[u];if(e?.icons.length)return o(e),void f("");f("reset");const t=setTimeout(()=>h(u,0,!0),u?250:0);return()=>clearTimeout(t)},[u]),(0,n.jsxs)(a,{className:"fcf7b-iconpick",triggerClassName:"fcf7b-iconpick-trigger"+(s?" is-set":""),popClassName:"fcf7b-iconpick-pop",title:(0,t.__)("Choose Icon","compactform"),trigger:s?(0,n.jsx)("i",{className:s}):(0,n.jsx)("span",{className:"fcf7b-iconpick-placeholder",children:(0,t.__)("Choose","compactform")}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Icon","compactform")}),(0,n.jsx)("div",{className:"fcf7b-pop-tools",children:s?(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>l(""),children:(0,n.jsx)("i",{className:"ri-refresh-line"})}):null})]}),(0,n.jsx)("input",{className:"fcf7b-iconpick-search",type:"search",placeholder:(0,t.__)("Search icons…","compactform"),value:r,autoFocus:!0,onChange:e=>c(e.target.value)}),(0,n.jsxs)("div",{className:"fcf7b-iconpick-gridwrap",children:[(0,n.jsxs)("div",{className:"fcf7b-iconpick-grid"+("reset"===d?" is-loading":""),onScroll:e=>{if(p.current||!i.hasMore)return;const t=e.currentTarget;t.scrollTop+t.clientHeight>=t.scrollHeight-48&&h(u,i.offset,!1)},"aria-busy":!!d,children:[i.icons.map(e=>(0,n.jsx)("button",{type:"button",title:e,className:"fcf7b-iconpick-cell"+(s===e?" active":""),onClick:()=>l(e),children:(0,n.jsx)("i",{className:e})},e)),i.icons.length||d?null:(0,n.jsx)("div",{className:"fcf7b-iconpick-empty",children:(0,t.__)("No icons found","compactform")}),"more"===d?(0,n.jsxs)("div",{className:"fcf7b-iconpick-more",children:[(0,n.jsx)("span",{className:"fcf7b-spinner"}),(0,t.__)("Loading…","compactform")]}):null]}),"reset"===d?(0,n.jsxs)("div",{className:"fcf7b-iconpick-loader",role:"status","aria-live":"polite",children:[(0,n.jsx)("span",{className:"fcf7b-spinner"}),(0,n.jsx)("span",{children:(0,t.__)("Loading icons…","compactform")})]}):null]}),(0,n.jsx)("div",{className:"fcf7b-iconpick-selected",children:s?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("i",{className:s}),(0,n.jsx)("code",{children:s})]}):(0,n.jsx)("span",{className:"fcf7b-iconpick-placeholder",children:(0,t.__)("No icon selected","compactform")})})]})}function At({ctrl:e,value:t,inherited:a,onChange:s,onGestureStart:l,onGestureEnd:r,device:c}){const i=e.units&&e.units.length?e.units:["px"],o=e=>e&&"object"==typeof e?e:{size:0!==e&&!e||isNaN(e)?"":String(e),unit:void 0},d=o(t),f=o(a),p=d.size??"",m=f.size??"",u=i.includes(d.unit)?d.unit:i.includes(f.unit)?f.unit:i[0],h="custom"===u,b=e.ranges&&e.ranges[u]||{},g=b.min??e.min??0,v=b.max??e.max??100,x=b.step??e.step??1,j=e=>s({size:e,unit:u});return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-slider",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-head",children:[(0,n.jsxs)("label",{className:"fcf7b-prop-label",children:[e.label,e.responsive?(0,n.jsx)("i",{className:`fcf7b-ctl-device ${H[c]}`,title:c}):null]}),(0,n.jsx)(he,{units:i,value:u,onChange:e=>s({size:"custom"!==e&&isNaN(p)?"":p,unit:e})})]}),(0,n.jsx)("div",{className:"fcf7b-slider-row",children:h?(0,n.jsx)("input",{type:"text",className:"fcf7b-slider-custom",value:p,placeholder:m||"e.g. calc(100% - 20px)",onChange:e=>j(e.target.value)}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{type:"range",className:"fcf7b-slider-range",min:g,max:v,step:x,value:""!==p?p:""!==m?m:g,onPointerDown:()=>{l&&l();const e=()=>{document.removeEventListener("pointerup",e),r&&r()};document.addEventListener("pointerup",e)},onChange:e=>j(e.target.value)}),(0,n.jsx)("input",{type:"number",className:"fcf7b-slider-num",min:g,max:v,step:x,value:p,placeholder:m,onChange:e=>j(e.target.value)})]})})]})}le.registerComponent("heading",function({field:e}){const t=["h1","h2","h3","h4","h5","h6","p","span"].includes(e.level)?e.level:"h3";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsx)(t,{className:"fcf7b-pv-heading fcf7b-heading",children:e.label||"Heading"})})}),le.registerComponent("divider",function({field:e}){const t=e.divider_pattern||"";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsx)("div",{className:"fcf7b-pv-divider fcf7b-divider",...t?{"data-pattern":t}:{}})})}),le.registerComponent("html",function({field:e}){const t=e.html||"";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:t.trim()?(0,n.jsx)("div",{className:"fcf7b-pv-html fcf7b-html",dangerouslySetInnerHTML:{__html:t}}):(0,n.jsx)("div",{className:"fcf7b-pv-html fcf7b-pv-html-empty",children:"HTML"})})}),le.registerComponent("submit",function({field:e}){return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsx)("input",{type:"submit",className:"fcf7b-pv-submit wpcf7-form-control wpcf7-submit has-spinner",value:e.label||(0,t.__)("Send","compactform")})})}),le.registerComponent("acceptance",function({field:e,def:t}){const a=!Object.prototype.hasOwnProperty.call(e,"text"),s=(a?e.label:e.text)||"I accept the terms and conditions.",l=a?{...e,label:""}:e;return(0,n.jsx)(nt,{field:l,def:t,children:(0,n.jsx)("span",{className:"fcf7b-pv-choices wpcf7-form-control wpcf7-acceptance",children:(0,n.jsx)("span",{className:"wpcf7-list-item",children:(0,n.jsxs)("label",{className:"fcf7b-pv-inline",children:[(0,n.jsx)("input",{type:"checkbox"}),(0,n.jsxs)("span",{className:"wpcf7-list-item-label",children:[" ",s]})]})})})})}),le.registerComponent("multistep",function({field:a,allFields:s=[],actions:l,selected:r,multi:c=[],device:i="desktop",openMenu:o}){const d=Array.isArray(a.steps)&&a.steps.length?a.steps:[{id:"step_1",label:(0,t.sprintf)(/* translators: %d: step number. */ /* translators: %d: step number. */(0,t.__)("Step %d","compactform"),1)}],[f,p]=(0,e.useState)(d[0].id),m=d.find(e=>e.id===f)||d[0],u=d.findIndex(e=>e.id===m.id),h=`${a.id}:${m.id}`,b=P(h),g=new Set(d.map(e=>e.id)),y=m.id===d[0].id,w=e=>e.parentId===a.id&&(e.stepId===m.id||y&&!g.has(e.stepId)),k=s.filter(w),C=e=>{if(E(),!j.value||!l)return;if(N().includes(a.id))return;const t=s.reduce((e,t,n)=>w(t)?n:e,-1),n=e>=k.length?-1===t?s.length:t+1:s.indexOf(k[e]);"new"===j.value.kind?l.add(j.value.type,n,{parentId:a.id,stepId:m.id}):"move"===j.value.kind&&l.move(N(),n,{parentId:a.id,stepId:m.id}),j.value=null},D=e=>p(d[Math.max(0,Math.min(d.length-1,e))].id);return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${a.id}`,children:(0,n.jsxs)("div",{className:"fcf7b-multistep",children:["circles"===a.navStyle?(0,n.jsx)("div",{className:"fcf7b-ms-steps",children:d.map((e,t)=>{const a=t<u?"is-done":t===u?"is-active":"is-upcoming";return(0,n.jsxs)("div",{className:`fcf7b-ms-step ${a}`,children:[(0,n.jsxs)("button",{type:"button",className:"fcf7b-ms-step-circle",onClick:t=>{t.stopPropagation(),p(e.id)},children:[(0,n.jsx)("span",{className:"fcf7b-ms-step-num",children:t+1}),(0,n.jsx)("svg",{className:"fcf7b-ms-step-check",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})})]}),(0,n.jsx)("span",{className:"fcf7b-ms-step-label",children:e.label||`Step ${t+1}`})]},e.id)})}):(0,n.jsx)("div",{className:"fcf7b-ms-tabs",children:d.map((e,t)=>(0,n.jsx)("button",{type:"button",className:"fcf7b-ms-tab"+(e.id===m.id?" is-active":""),onClick:t=>{t.stopPropagation(),p(e.id)},children:e.label||`Step ${t+1}`},e.id))}),(0,n.jsx)("div",{className:"fcf7b-ms-panel"+(!k.length&&b>=0?" is-drop-in":""),onDragOver:e=>{e.preventDefault(),e.stopPropagation();const t=G(e,e.currentTarget,":scope > .fcf7b-ms-stack > .fcf7b-ms-cell");S(h,t,()=>C(t))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:k.length?(0,n.jsx)("div",{className:"fcf7b-ms-stack",children:k.map((e,t)=>{const a=v[e.type]||{title:e.type,icon:""},d=x[e.id]?{...a,builderMarkup:x[e.id]}:a,f={onChange:(t,n)=>l.updateField(e.id,t,n),beginGesture:l.beginGesture,endGesture:l.endGesture,allFields:s,actions:l,selected:r,multi:c,openMenu:o};return(0,n.jsx)("div",{className:`fcf7b-cell fcf7b-ms-cell fcf7b-field-${e.id}${b===t?" is-drop-before":""}${b===t+1&&t===k.length-1?" is-drop-after":""}`,onDragOver:e=>{e.preventDefault(),e.stopPropagation();const n=t+$(e,e.currentTarget);S(h,n,()=>C(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:"fcf7b-card"+(c.includes(e.id)?" is-selected":""),draggable:!0,onClick:t=>{t.stopPropagation(),l.select(e.id,t.ctrlKey||t.metaKey)},onDragStart:t=>{_(e.id,c),t.stopPropagation()},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),c.includes(e.id)||l.select(e.id),o&&o(e.id,t.clientX,t.clientY)},children:[(0,n.jsx)(st,{field:e,def:a,nested:!0,actions:l,multi:c,openMenu:o}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:at(J(e,d,i),d,i,f)})]})},e.id)})}):(0,n.jsx)("div",{className:"fcf7b-ms-empty",children:"Drag a field here"})}),(0,n.jsxs)("div",{className:"fcf7b-ms-nav-buttons",children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ms-prev",disabled:u<=0,onClick:e=>{e.stopPropagation(),D(u-1)},children:"Previous"}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ms-next",disabled:u>=d.length-1,onClick:e=>{e.stopPropagation(),D(u+1)},children:"Next"})]})]})})}),le.registerComponent("repeater",function({field:e,allFields:a=[],actions:s,selected:l,multi:r=[],device:c="desktop",openMenu:i}){const o=P(e.id),d=a.filter(t=>t.parentId===e.id),f=(e.rowTitle||"").trim(),p=t=>{if(E(),!j.value||!s)return;if(N().includes(e.id))return;const n=a.reduce((t,n,a)=>n.parentId===e.id?a:t,-1),l=t>=d.length?-1===n?a.length:n+1:a.indexOf(d[t]);"new"===j.value.kind?s.add(j.value.type,l,{parentId:e.id}):"move"===j.value.kind&&s.move(N(),l,{parentId:e.id}),j.value=null};return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsxs)("div",{className:"fcf7-repeater",children:[(0,n.jsx)("div",{className:"fcf7-repeater-rows",children:(0,n.jsxs)("div",{className:"fcf7-repeater-row",children:[(0,n.jsxs)("div",{className:"fcf7-repeater-row-head",children:[(0,n.jsx)("span",{className:"fcf7-repeater-row-title",children:f?`${f} 1`:""}),(0,n.jsx)("button",{type:"button",className:"fcf7-repeater-remove",disabled:!0,children:e.removeLabel||(0,t.__)("Remove","compactform")})]}),(0,n.jsx)("div",{className:"fcf7-repeater-row-body fcf7b-rep-dropbox"+(!d.length&&o>=0?" is-drop-in":""),onDragOver:t=>{t.preventDefault(),t.stopPropagation();const n=G(t,t.currentTarget,":scope > .fcf7b-rep-stack > .fcf7b-rep-cell");S(e.id,n,()=>p(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:d.length?(0,n.jsx)("div",{className:"fcf7b-rep-stack",children:d.map((t,a)=>{const f=v[t.type]||{title:t.type,icon:""},m=x[t.id]?{...f,builderMarkup:x[t.id]}:f,u={onChange:(e,n)=>s.updateField(t.id,e,n),beginGesture:s.beginGesture,endGesture:s.endGesture,selected:l,multi:r,openMenu:i};return(0,n.jsx)("div",{className:`fcf7b-cell fcf7b-rep-cell fcf7b-field-${t.id}${o===a?" is-drop-before":""}${o===a+1&&a===d.length-1?" is-drop-after":""}`,onDragOver:t=>{t.preventDefault(),t.stopPropagation();const n=a+$(t,t.currentTarget);S(e.id,n,()=>p(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:"fcf7b-card"+(r.includes(t.id)?" is-selected":""),draggable:!0,onClick:e=>{e.stopPropagation(),s.select(t.id,e.ctrlKey||e.metaKey)},onDragStart:e=>{_(t.id,r),e.stopPropagation()},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),r.includes(t.id)||s.select(t.id),i&&i(t.id,e.clientX,e.clientY)},children:[(0,n.jsx)(st,{field:t,def:f,nested:!0,actions:s,multi:r,openMenu:i}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:at(J(t,m,c),m,c,u)})]})},t.id)})}):(0,n.jsx)("div",{className:"fcf7b-rep-empty",children:"Drag the fields to repeat here"})})]})}),(0,n.jsx)("div",{className:"fcf7-repeater-actions",children:(0,n.jsx)("button",{type:"button",className:"fcf7-repeater-add",disabled:!0,children:e.addLabel||(0,t.__)("Add More","compactform")})})]})})}),le.registerComponent("container",function({field:a,allFields:s=[],actions:l,selected:r,multi:c=[],device:i="desktop",openMenu:o}){const d=P(a.id),[f,p]=(0,e.useState)(!1),m=s.filter(e=>e.parentId===a.id),u=a.direction||"row",h=0===u.indexOf("column")?"y":"x",b=u.indexOf("-reverse")>-1,g="x"===h?"is-drop-x":"is-drop-y",y=(e,t)=>{const n=t.getBoundingClientRect();return e.clientY-n.top<8||n.bottom-e.clientY<8||e.clientX-n.left<8||n.right-e.clientX<8},w=e=>{if(E(),!j.value||!l)return;if(N().some(e=>((e,t)=>{let n=s.find(t=>t.id===e);for(;n;){if(n.id===t)return!0;n=n.parentId?s.find(e=>e.id===n.parentId):null}return!1})(a.id,e)))return;const t=(e=>{if(e<m.length)return s.indexOf(m[e]);const t=s.reduce((e,t,n)=>t.parentId===a.id?n:e,-1);return-1===t?s.length:t+1})(e);"new"===j.value.kind?l.add(j.value.type,t,{parentId:a.id,stepId:null}):l.move(N(),t,{parentId:a.id,stepId:null}),j.value=null},k=(e,t)=>{const n=[];return e.forEach(e=>{const a=K(),s={id:a,parentId:t,width:{desktop:{size:e.w,unit:"%"}}};e.children&&(s.wrap={desktop:"nowrap"}),e.dir&&(s.direction={desktop:e.dir}),n.push({type:"container",overrides:s}),e.children&&n.push(...k(e.children,a))}),n};return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${a.id}`,children:(0,n.jsx)("div",{className:"fcf7-container fcf7b-ctnbox"+(!m.length&&d>=0?" is-drop-in":""),onDragOver:e=>{if(y(e,e.currentTarget))return;e.preventDefault(),e.stopPropagation();const t=G(e,e.currentTarget,":scope > .fcf7b-ctn-item",h,b);S(a.id,t,()=>w(t))},onDrop:e=>{y(e,e.currentTarget)||(e.preventDefault(),e.stopPropagation(),I())},children:m.length?m.map((e,t)=>{const f=v[e.type]||{title:e.type,icon:""},p=x[e.id]?{...f,builderMarkup:x[e.id]}:f,u=J(e,p,i),j={onChange:(t,n)=>l.updateField(e.id,t,n),beginGesture:l.beginGesture,endGesture:l.endGesture,allFields:s,actions:l,selected:r,multi:c,openMenu:o};return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id} fcf7b-ctn-item ${g}${d===t?" is-drop-before":""}${d===t+1&&t===m.length-1?" is-drop-after":""}`,onDragOver:e=>{e.preventDefault(),e.stopPropagation();const n=t+$(e,e.currentTarget,h,b);S(a.id,n,()=>w(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:"fcf7b-card"+(c.includes(e.id)?" is-selected":""),draggable:!0,onClick:t=>{t.stopPropagation(),l.select(e.id,t.ctrlKey||t.metaKey)},onDragStart:t=>{t.target.closest&&t.target.closest("input, textarea, select")?t.preventDefault():(_(e.id,c),t.stopPropagation())},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),c.includes(e.id)||l.select(e.id),o&&o(e.id,t.clientX,t.clientY)},children:[(0,n.jsx)(st,{field:e,def:f,nested:!0,actions:l,multi:c,openMenu:o}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:at(u,p,i,j)})]})},e.id)}):f||a.parentId?(0,n.jsx)("button",{type:"button",className:"fcf7b-ctn-empty",title:(0,t.__)("Drag a field here","compactform"),onClick:e=>{e.stopPropagation(),l.select(a.id)},children:(0,n.jsx)("i",{className:"ri-add-line"})}):(0,n.jsxs)("div",{className:"fcf7b-ctnpick",onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"fcf7b-ctnpick-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Select your structure","compactform")}),(0,n.jsx)("button",{type:"button",title:(0,t.__)("Skip — drop fields in yourself","compactform"),onClick:()=>p(!0),children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsx)("div",{className:"fcf7b-ctnpick-grid",children:_t.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-ctnpick-item",title:e.glyph?"column"===e.dir?(0,t.__)("Vertical","compactform"):(0,t.__)("Horizontal","compactform"):(0,t.sprintf)(/* translators: %d: number of columns in the layout preset. */ /* translators: %d: number of columns in the layout preset. */
    12 (0,t.__)("%d columns","compactform"),e.cells.length),onClick:()=>(e=>{if(!l||!l.insert)return;const t={};e.dir&&(t.direction={desktop:e.dir}),e.cells.length&&(t.wrap={desktop:"nowrap"});const n=Object.keys(t).length?{[a.id]:t}:null;l.insert(k(e.cells,a.id),null,n),p(!0)})(e),children:e.glyph?(0,n.jsx)("span",{className:"fcf7b-ctnpick-box fcf7b-ctnpick-glyph",children:e.glyph}):(0,n.jsx)(Nt,{cells:e.cells,dir:e.dir})},e.key))})]})})})}),le.registerComponent("text",St),le.registerComponent("email",St),le.registerComponent("tel",St),le.registerComponent("url",St),le.registerComponent("number",St),le.registerComponent("date",St),le.registerComponent("fcf7_date_picker",It),le.registerComponent("fcf7_time_picker",It),le.registerComponent("fcf7_datetime_picker",It),le.registerComponent("textarea",function({field:e,def:t}){const a=e.defaultValue||"";return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("textarea",{className:"fcf7b-pv-input wpcf7-form-control wpcf7-textarea",rows:3,placeholder:e.placeholder||"",defaultValue:a},a)})}),le.registerComponent("quiz",function({field:e,def:t}){const a=(e.options||[]).find(e=>String(e).includes("|")),s=a?String(a).split("|")[0].trim():"1 + 1 = ?";return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsxs)("label",{className:"fcf7b-pv-quiz",children:[(0,n.jsx)("span",{className:"wpcf7-quiz-label",children:s}),(0,n.jsx)("input",{className:"fcf7b-pv-input wpcf7-form-control wpcf7-quiz",type:"text",disabled:!0})]})})}),le.registerComponent("file",function({field:e,def:t}){return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("input",{className:"fcf7b-pv-file wpcf7-form-control wpcf7-file",type:"file",disabled:!0})})}),le.registerComponent("select",wt),le.registerComponent("fcf7_country_dropdown",wt),le.registerComponent("radio",kt),le.registerComponent("checkbox",kt),le.registerComponent("fcf7_star_rating",function({field:e,def:t,onChange:a}){const s=parseInt(e.selected,10)||0;return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("div",{className:"fcf7b-pv-stars fcf7-rating",children:(0,n.jsx)("span",{className:"icon",children:Array.from({length:5}).map((e,t)=>{const l=t+1;return(0,n.jsx)("span",{className:"fcf7b-pv-star fcf7-star"+(l<=s?" is-active":""),title:a?`Set default rating to ${l}`:void 0,onClick:a?()=>a("selected",l===s?0:l):void 0,children:(0,n.jsx)("svg",{viewBox:"0 0 640 640",fill:"currentColor",children:(0,n.jsx)("path",{d:"M341.5 45.1C337.4 37.1 329.1 32 320.1 32C311.1 32 302.8 37.1 298.7 45.1L225.1 189.3L65.2 214.7C56.3 216.1 48.9 222.4 46.1 231C43.3 239.6 45.6 249 51.9 255.4L166.3 369.9L141.1 529.8C139.7 538.7 143.4 547.7 150.7 553C158 558.3 167.6 559.1 175.7 555L320.1 481.6L464.4 555C472.4 559.1 482.1 558.3 489.4 553C496.7 547.7 500.4 538.8 499 529.8L473.7 369.9L588.1 255.4C594.5 249 596.7 239.6 593.9 231C591.1 222.4 583.8 216.1 574.8 214.7L415 189.3L341.5 45.1z"})})},l)})})})})}),le.registerComponent("fcf7_signature",function({field:e,def:a}){const s=e.bg_color||"#bceeff",l=e.pen_color||"#000000",r=e.clear_text||(0,t.__)("Clear","compactform");return(0,n.jsx)(nt,{field:e,def:a,children:(0,n.jsxs)("span",{className:"wpcf7-form-control fcf7-signature-frame",children:[(0,n.jsxs)("span",{className:"fcf7-signature-pad",children:[(0,n.jsx)("canvas",{style:{backgroundColor:s}}),(0,n.jsx)("svg",{className:"fcf7b-pv-sigink",viewBox:"0 0 200 60",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 42c14-22 22-26 27-16s2 22 9 22 12-24 20-30 12 8 19 8 11-10 18-10 14 12 23 10 16-10 24-16",fill:"none",stroke:l,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(0,n.jsx)("span",{className:"fcf7-signature-actions",children:(0,n.jsx)("button",{type:"button",className:"fcf7-signature-clear",disabled:!0,children:r})})]})})}),le.registerComponent("fcf7_range_slider",function({field:e,def:a}){const s="2"===String(e.handles??"1"),l=$t(e.min,0);let r=$t(e.max,100);r<=l&&(r=l+100);let c=$t(e.step,1);c<=0&&(c=1);const i=Gt($t(s?e.default_max:e.default_value,r),l,r),o=s?Gt($t(e.default_min,l),l,i):l,d=r-l||1,f=e=>Gt((e-l)/d,0,1),p=s?f(o):0,m=f(i),u=e.suffix||"",h=e.separator||"-",b=e.min_label||(0,t.__)("Min","compactform"),g=e.max_label||(0,t.__)("Max","compactform"),v=e.value_pos||"bubble",x=!e.hide_value,j=!e.hide_minmax,y=Gt(Math.floor($t(e.ticks,0)),0,50),_=(e=>{const t=String(e).indexOf(".");return-1===t?0:String(e).length-t-1})(c),N=e=>_>0?Number(e).toFixed(_):String(Math.round(e)),w=(e,t,a,s)=>(0,n.jsxs)("span",{className:"fcf7-range-readout-item","data-handle":t,style:{"--pos":Pt(a)},children:["split"===v&&s?(0,n.jsx)("span",{className:"fcf7-range-readout-label",children:s}):null,(0,n.jsx)("span",{className:"fcf7-range-number",children:N(e)}),(0,n.jsx)("span",{className:"fcf7-range-suffix",children:u})]},t),k=x?(0,n.jsxs)("span",{className:"fcf7-range-readout",children:[s?w(o,"from",p,b):null,s?(0,n.jsx)("span",{className:"fcf7-range-readout-sep",children:h}):null,w(i,"to",m,s?g:"")]}):null,C="bottom"!==v&&"split"!==v,S=y>0?Array.from({length:y+1},(e,t)=>t):[];return(0,n.jsx)(nt,{field:e,def:a,children:(0,n.jsxs)("span",{className:`wpcf7-form-control fcf7-range fcf7-range--${s?"double":"single"} fcf7-range--value-${v}`,style:{"--fcf7-range-from":s?Pt(p):"0%","--fcf7-range-to":Pt(m)},children:[C?k:null,(0,n.jsxs)("span",{className:"fcf7-range-track",children:[(0,n.jsx)("span",{className:"fcf7-range-rail"}),(0,n.jsx)("span",{className:"fcf7-range-fill"}),y>0?(0,n.jsx)("span",{className:"fcf7-range-ticks",children:S.map(e=>(0,n.jsx)("span",{className:"fcf7-range-tick",style:{"--pos":Pt(e/y)}},e))}):null,s?(0,n.jsx)("input",{type:"range",className:"fcf7-range-input fcf7-range-input--from",min:l,max:r,value:o,readOnly:!0,tabIndex:-1}):null,(0,n.jsx)("input",{type:"range",className:"fcf7-range-input fcf7-range-input--to",min:l,max:r,value:i,readOnly:!0,tabIndex:-1})]}),y>0?(0,n.jsx)("span",{className:"fcf7-range-tick-labels",children:S.map(e=>(0,n.jsx)("span",{className:"fcf7-range-tick-label",style:{"--pos":Pt(e/y)},children:N(l+(r-l)*e/y)},e))}):null,j?(0,n.jsxs)("span",{className:"fcf7-range-scale",children:[(0,n.jsxs)("span",{className:"fcf7-range-scale-min",children:[b?(0,n.jsx)("span",{className:"fcf7-range-scale-label",children:b}):null,(0,n.jsxs)("span",{className:"fcf7-range-scale-number",children:[l,u]})]}),(0,n.jsxs)("span",{className:"fcf7-range-scale-max",children:[g?(0,n.jsx)("span",{className:"fcf7-range-scale-label",children:g}):null,(0,n.jsxs)("span",{className:"fcf7-range-scale-number",children:[r,u]})]})]}):null,C?null:k]})})}),le.registerComponent("fcf7_google_recaptcha",function({field:e,def:t}){return(0,n.jsx)(nt,{field:e,def:t,children:(0,n.jsx)("span",{className:"fcf7b-pv-recaptcha"})})}),le.registerComponent("fcf7_spam_protection",function({field:a,def:s}){const l="canvas"===a.method,r=parseInt(a.canvas_width,10)||160,c=parseInt(a.canvas_height,10)||50,i=a.canvas_bg||"",o=a.canvas_color||"",d=a.noise||"medium",f=a.operations||"plus",p=parseInt(a.max_operand,10)||10,m=(0,e.useRef)(null),u=(0,e.useRef)(null),[h,g]=(0,e.useState)(""),[v,x]=(0,e.useState)("7 + 3 ="),[j,y]=(0,e.useState)(0),[_,N]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{if(!b.ajaxUrl)return;let e=!1;N(!0);const t=new window.FormData;return t.append("action","fcf7_spam_protection_refresh"),t.append("nonce",b.nonce||""),t.append("method",l?"canvas":"text"),t.append("ops",f),t.append("max",String(p)),t.append("width",String(r)),t.append("height",String(c)),t.append("bg",i),t.append("color",o),t.append("noise",d),window.fetch(b.ajaxUrl,{method:"POST",credentials:"same-origin",body:t}).then(e=>e.json()).then(t=>{!e&&t&&t.success&&(g(t.data.image||""),t.data.question&&x(t.data.question),u.current&&(u.current.value=""))}).catch(()=>{}).finally(()=>{e||N(!1)}),()=>{e=!0}},[l,f,p,r,c,i,o,d,j]),(0,e.useEffect)(()=>{const e=m.current;if(!e||!e.getContext)return;const t=e.getContext("2d");if(t.clearRect(0,0,e.width,e.height),!h)return;const n=new window.Image;n.onload=()=>t.drawImage(n,0,0,e.width,e.height),n.src=h},[h,r,c]),(0,n.jsx)(nt,{field:a,def:s,children:(0,n.jsxs)("div",{className:"wpcf7-fcf7_spam_protection fcf7-sp",children:[(0,n.jsxs)("div",{className:"fcf7-sp-challenge",children:[l?(0,n.jsx)("canvas",{ref:m,className:"fcf7-sp-canvas",width:r,height:c}):(0,n.jsx)("span",{className:"fcf7-sp-question",children:v}),"yes"!==a.hide_refresh&&(0,n.jsx)("button",{type:"button",className:"fcf7-sp-refresh"+(_?" is-busy":""),disabled:_,onClick:e=>{e.preventDefault(),e.stopPropagation(),y(e=>e+1)},children:(0,n.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:(0,n.jsx)("path",{fill:"currentColor",d:"M12 5V2L8 6l4 4V7a5 5 0 1 1-5 5H5a7 7 0 1 0 7-7z"})})})]}),(0,n.jsx)("input",{ref:u,type:"text",className:"fcf7-sp-answer fcf7b-pv-input wpcf7-form-control wpcf7-validates-as-required",placeholder:a.answer_placeholder||(0,t.__)("Your answer","compactform")},a.answer_placeholder||"")]})})}),Dt.standalone=!0,Ft.standalone=!0;const Mt=[{v:"is",t:(0,t.__)("is","compactform")},{v:"is_not",t:(0,t.__)("is not","compactform")},{v:"contains",t:(0,t.__)("contains","compactform")},{v:"not_contains",t:(0,t.__)("doesn't contain","compactform")},{v:"gt",t:(0,t.__)("greater than","compactform")},{v:"lt",t:(0,t.__)("less than","compactform")},{v:"empty",t:(0,t.__)("is empty","compactform")},{v:"filled",t:(0,t.__)("is not empty","compactform")}],Tt={enabled:!1,action:"show",field:"",operator:"is",value:""};function Lt({value:e,onChange:a,field:s,allFields:l}){const r=e&&"object"==typeof e?{...Tt,...e}:{...Tt},c=e=>a({...r,...e}),i=Q(l).filter(e=>e.id!==s.id).map(e=>({name:Z(e.name),label:e.label||e.type})),o="empty"!==r.operator&&"filled"!==r.operator;return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-cond-ctl",children:[(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-prop--inline fcf7b-switch-row",children:[(0,n.jsx)("span",{className:"fcf7b-prop-label",children:(0,t.__)("Enable conditional logic","compactform")}),(0,n.jsx)(Ce,{checked:r.enabled,onChange:e=>c({enabled:e})})]}),r.enabled?(0,n.jsxs)("div",{className:"fcf7b-cond-body",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Action","compactform")}),(0,n.jsx)(Pe,{value:r.action,options:[{value:"show",label:(0,t.__)("Show","compactform")},{value:"hide",label:(0,t.__)("Hide","compactform")}],onChange:e=>c({action:e})})]}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Field","compactform")}),(0,n.jsx)(Pe,{value:r.field,options:[{value:"",label:(0,t.__)("— select —","compactform")},...i.map(e=>({value:e.name,label:`${e.label} (${e.name})`}))],onChange:e=>c({field:e})})]}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Condition","compactform")}),(0,n.jsx)(Pe,{value:r.operator,options:Mt.map(e=>({value:e.v,label:e.t})),onChange:e=>c({operator:e})})]}),o?(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Value","compactform")}),(0,n.jsx)("input",{type:"text",value:r.value,onChange:e=>c({value:e.target.value})})]}):null,r.field?null:(0,n.jsx)("p",{className:"fcf7b-cond-hint",children:(0,t.__)("Pick the field this one reacts to.","compactform")})]}):null]})}const Rt=["","100","200","300","400","500","600","700","800","900"],Bt=[["",(0,t.__)("Default","compactform")],["none",(0,t.__)("None","compactform")],["uppercase",(0,t.__)("Uppercase","compactform")],["lowercase",(0,t.__)("Lowercase","compactform")],["capitalize",(0,t.__)("Capitalize","compactform")]],zt=[["",(0,t.__)("Default","compactform")],["normal",(0,t.__)("Normal","compactform")],["italic",(0,t.__)("Italic","compactform")]],Ut=[["",(0,t.__)("Default","compactform")],["none",(0,t.__)("None","compactform")],["underline",(0,t.__)("Underline","compactform")],["line-through",(0,t.__)("Line through","compactform")]],Ht={family:"",weight:"",transform:"",style:"",decoration:"",size:{size:"",unit:"px"},lineHeight:{size:"",unit:"em"},letterSpacing:{size:"",unit:"px"}},Vt=e=>!(!e||""===e.size||null==e.size),Wt=(e,t)=>!!(e.family||t.family||e.weight||t.weight||e.transform||t.transform||e.style||t.style||e.decoration||t.decoration||Vt(e.size)||Vt(t.size)||Vt(e.lineHeight)||Vt(t.lineHeight)||Vt(e.letterSpacing)||Vt(t.letterSpacing));function qt({value:e,inherited:s,onChange:l,onGestureStart:r,onGestureEnd:c}){const i=e&&"object"==typeof e?{...Ht,...e}:{...Ht},o=s&&"object"==typeof s?{...Ht,...s}:{...Ht},d=e=>l({...i,...e}),f=e=>i[e]||o[e],p=(e,t)=>(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:e}),t]});return(0,n.jsxs)(a,{className:"fcf7b-typo",triggerClassName:"fcf7b-typo-trigger"+(Wt(i,o)?" is-set":""),popClassName:"fcf7b-typo-pop",title:(0,t.__)("Edit typography","compactform"),trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-typo-aa",style:L[i.family]?.stack?{fontFamily:L[i.family].stack}:null,children:"Aa"}),(0,n.jsx)("i",{className:"ri-pencil-line"})]}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Typography","compactform")}),(0,n.jsx)("div",{className:"fcf7b-pop-tools",children:(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>l({...Ht}),children:(0,n.jsx)("i",{className:"ri-refresh-line"})})})]}),(0,n.jsx)(At,{ctrl:{label:(0,t.__)("Size","compactform"),units:["px","em","rem","%","custom"],ranges:{px:{min:0,max:100,step:1},em:{min:0,max:10,step:.1},rem:{min:0,max:10,step:.1},"%":{min:0,max:300,step:1}}},value:i.size,inherited:o.size,onChange:e=>d({size:e}),onGestureStart:r,onGestureEnd:c}),p((0,t.__)("Weight","compactform"),(0,n.jsx)(Pe,{value:f("weight"),options:Rt.map(e=>({value:e,label:""===e?(0,t.__)("Default","compactform"):e})),onChange:e=>d({weight:e})})),p((0,t.__)("Transform","compactform"),(0,n.jsx)(Pe,{value:f("transform"),options:Bt.map(([e,t])=>({value:e,label:t})),onChange:e=>d({transform:e})})),p((0,t.__)("Style","compactform"),(0,n.jsx)(Pe,{value:f("style"),options:zt.map(([e,t])=>({value:e,label:t})),onChange:e=>d({style:e})})),p((0,t.__)("Decoration","compactform"),(0,n.jsx)(Pe,{value:f("decoration"),options:Ut.map(([e,t])=>({value:e,label:t})),onChange:e=>d({decoration:e})})),(0,n.jsx)(At,{ctrl:{label:(0,t.__)("Line Height","compactform"),units:["em","px","%","custom"],ranges:{em:{min:0,max:5,step:.1},px:{min:0,max:100,step:1},"%":{min:0,max:300,step:1}}},value:i.lineHeight,inherited:o.lineHeight,onChange:e=>d({lineHeight:e}),onGestureStart:r,onGestureEnd:c}),(0,n.jsx)(At,{ctrl:{label:(0,t.__)("Letter Spacing","compactform"),units:["px","em","custom"],ranges:{px:{min:-5,max:20,step:.1},em:{min:-1,max:2,step:.01}}},value:i.letterSpacing,inherited:o.letterSpacing,onChange:e=>d({letterSpacing:e}),onGestureStart:r,onGestureEnd:c})]})}const Jt={style:"",color:"",width:{desktop:{top:"",right:"",bottom:"",left:"",unit:"px",linked:!0}}};function Yt({ctrl:e,value:a,onChange:s,device:l="desktop",onGestureStart:r,onGestureEnd:c}){const i=a&&"object"==typeof a?{...Jt,...a}:{...Jt},o=e=>s({...i,...e}),f=i.width&&"object"==typeof i.width&&!Array.isArray(i.width)?i.width:{},p=V(l).find(e=>void 0!==f[e]);return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-border",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:e?.label}),(0,n.jsx)(Pe,{value:i.style,options:Object.keys(R).map(e=>({value:e,label:R[e]})),onChange:e=>o({style:e})})]}),i.style&&"none"!==i.style?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(xe,{ctrl:{label:(0,t.__)("Width","compactform"),responsive:!0},value:p?f[p]:void 0,onChange:e=>o({width:{...f,[l]:e}}),device:l}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:"Color"}),(0,n.jsx)(d,{value:i.color,onChange:e=>o({color:e}),onGestureStart:r,onGestureEnd:c})]})]}):null]})}const Kt={horizontal:"",vertical:"",blur:"",spread:"",color:"",inset:!1},Xt=["horizontal","vertical","blur","spread"],Zt=e=>{const t=Number(e);return""===e||null==e||isNaN(t)?0:t};function Qt({value:e,onChange:s,onGestureStart:l,onGestureEnd:r}){const c=e&&"object"==typeof e?{...Kt,...e}:{...Kt},i=e=>s({...c,...e}),o=function(e){const t=Xt.some(t=>""!==e[t]&&null!=e[t]&&!isNaN(Number(e[t])));return e.color||t?`${e.inset?"inset ":""}${Zt(e.horizontal)}px ${Zt(e.vertical)}px ${Zt(e.blur)}px ${Zt(e.spread)}px${e.color?" "+e.color:""}`:""}(c),f=(e,t,a,s)=>(0,n.jsx)(At,{ctrl:{label:e,units:["px"],min:a,max:s,step:1},value:{size:c[t]??"",unit:"px"},onChange:e=>i({[t]:e.size}),onGestureStart:l,onGestureEnd:r});return(0,n.jsxs)(a,{className:"fcf7b-bxsh",triggerClassName:"fcf7b-bxsh-trigger"+(o?" is-set":""),popClassName:"fcf7b-bxsh-pop",title:(0,t.__)("Edit box shadow","compactform"),trigger:(0,n.jsx)("i",{className:"ri-pencil-line"}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Box Shadow","compactform")}),(0,n.jsx)("div",{className:"fcf7b-pop-tools",children:(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>s({...Kt}),children:(0,n.jsx)("i",{className:"ri-refresh-line"})})})]}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Color","compactform")}),(0,n.jsx)(d,{value:c.color,onChange:e=>i({color:e}),onGestureStart:l,onGestureEnd:r})]}),f((0,t.__)("Horizontal","compactform"),"horizontal",-100,100),f((0,t.__)("Vertical","compactform"),"vertical",-100,100),f((0,t.__)("Blur","compactform"),"blur",0,100),f((0,t.__)("Spread","compactform"),"spread",-100,100),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Position","compactform")}),(0,n.jsx)(Pe,{value:c.inset?"inset":"outline",options:[{value:"outline",label:(0,t.__)("Outline","compactform")},{value:"inset",label:(0,t.__)("Inset","compactform")}],onChange:e=>i({inset:"inset"===e})})]})]})}const en=({ctrl:e,value:t,update:a,device:s,beginGesture:l,endGesture:r})=>(0,n.jsx)(Yt,{ctrl:e,value:t,device:s,onChange:t=>a(e.key,t),onGestureStart:l,onGestureEnd:r});en.standalone=!0;const tn=({ctrl:e,value:t,inherited:a,update:s,device:l})=>(0,n.jsx)(xe,{ctrl:e,value:t,inherited:a,device:l,onChange:t=>s(e.key,t)});tn.standalone=!0;const nn=({ctrl:e,value:t,inherited:a,update:s,device:l,beginGesture:r,endGesture:c})=>(0,n.jsx)(At,{ctrl:e,value:t,inherited:a,device:l,onChange:t=>s(e.key,t),onGestureStart:r,onGestureEnd:c});nn.standalone=!0;const an=({ctrl:e,value:t,update:a,field:s,allFields:l})=>(0,n.jsx)(Lt,{value:t,field:s,allFields:l,onChange:t=>a(e.key,t)});function sn(){const t=document.getElementById("fcf7-builder-root");if(!t)return;t.addEventListener("keydown",e=>{if("Enter"!==e.key)return;const t=e.target?.tagName;"TEXTAREA"===t||e.target?.isContentEditable||e.preventDefault()},!0),ne.doAction("fcf7b.registerFieldPreviews",le),ne.doAction("fcf7b.registerControls",ot),g.forEach(e=>{e.builderMarkup&&(le.getComponent(e.type)||le.get(e.type)||le.registerComponent(e.type,jt))});const a=document.getElementById("fcf7-builder-schema-input");let s={version:1,fields:[]};if(a?.value)try{s=JSON.parse(a.value)}catch(e){}Array.isArray(s.fields)||(s.fields=Object.values(s.fields||{})),s.fields=s.fields.filter(e=>e&&"object"==typeof e&&!Array.isArray(e)&&e.type);const l=new Set(s.fields.filter(e=>!v[e.type]).map(e=>e.id));if(l.size){let e=!0;for(;e;)e=!1,s.fields.forEach(t=>{!l.has(t.id)&&t.parentId&&l.has(t.parentId)&&(l.add(t.id),e=!0)});s.fields=s.fields.filter(e=>!l.has(e.id))}const r=s.integrations&&s.integrations.googleSheet||{},c=s.integrations&&s.integrations.webhook||{};s.integrations={...s.integrations||{},googleSheet:{enabled:!!r.enabled,sheetId:r.sheetId||"",tabId:r.tabId||""},webhook:{enabled:!!c.enabled,url:c.url||"",method:c.method||"POST",format:c.format||"json",bodyMode:"mapped"===c.bodyMode?"mapped":"all",body:Array.isArray(c.body)?c.body:[],headers:Array.isArray(c.headers)?c.headers:[],meta:!!c.meta,timeout:void 0===c.timeout?10:c.timeout,blocking:!!c.blocking}};const i=s.configuration&&s.configuration.spamProtection||{},o=s.configuration&&s.configuration.defaultMail||{};s.configuration={...s.configuration||{},spamProtection:{...i,honeypotEnabled:void 0===i.honeypotEnabled||!!i.honeypotEnabled,minTimeEnabled:!!i.minTimeEnabled,minTimeSeconds:void 0===i.minTimeSeconds?3:i.minTimeSeconds,botMessage:i.botMessage||"",bannedEnabled:!!i.bannedEnabled,bannedWords:i.bannedWords||"",bannedMessage:i.bannedMessage||""},defaultMail:{template:o.template||"html-table",template2:o.template2||"html-table"}},e.createRoot?(0,e.createRoot)(t).render((0,n.jsx)(xt,{initial:s})):(0,e.render)((0,n.jsx)(xt,{initial:s}),t)}an.standalone=!0,ot.registerComponent("text",dt),ot.registerComponent("number",dt),ot.registerComponent("time",dt),ot.registerComponent("date",dt),ot.registerComponent("textarea",function({ctrl:e,value:t,update:a}){const s=void 0!==t?t:e.default??"";return(0,n.jsx)("textarea",{rows:3,value:s,placeholder:e.placeholder||void 0,onChange:t=>a(e.key,t.target.value)})}),ot.registerComponent("html",function({ctrl:t,value:a,update:s}){const l=void 0!==a?a:t.default??"",r=(0,e.useRef)(null),c=(0,e.useRef)(null),i=(0,e.useRef)(null);return i.current=e=>s(t.key,e),(0,e.useEffect)(()=>{const e=window.FCF7CodeEditor?.settings;if(!e||!window.wp?.codeEditor||!r.current)return;const t=window.wp.codeEditor.initialize(r.current,e);c.current=t.codemirror,c.current.on("change",e=>i.current(e.getValue()));const n=requestAnimationFrame(()=>c.current?.refresh());return()=>{cancelAnimationFrame(n),c.current?.toTextArea(),c.current=null}},[]),(0,e.useEffect)(()=>{const e=c.current;e&&e.getValue()!==l&&e.setValue(l)},[l]),(0,n.jsx)("textarea",{ref:r,className:"fcf7b-code-input",rows:8,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",value:l,placeholder:t.placeholder||void 0,onChange:e=>s(t.key,e.target.value)})}),ot.registerComponent("select",function({ctrl:e,value:a,inherited:s,update:l,field:r,allFields:c}){const i=!(!e.multiSelect&&!e.multiple),o=!(!e.create&&!e.insert_option),d=void 0!==a?a:s??(i?[]:""),f=Array.isArray(d)?d.map(String):d?[String(d)]:[],p=e.options||{};let m;if(e.sourceFields){const t=e.sourceFieldsRows?function(e){const t=Array.isArray(e)?e:[],n=new Map(t.map(e=>[e&&e.id,e])),a=new Map;return t.forEach(e=>{if(!e||!e.name||!e.parentId)return;const t=n.get(e.parentId);t&&"repeater"===t.type&&a.set(Z(e.name),Z(t.name||""))}),a}(c):new Map,n=e.sourceFieldsRows?(Array.isArray(c)?c:[]).filter(e=>e&&e.name):Q(c);m=[...i?[]:[{value:"",label:e.emptyLabel||"— none —"}],...n.filter(e=>e.id!==r?.id).filter(t=>!e.sourceFieldsType||t.type===e.sourceFieldsType).map(e=>{const n=Z(e.name),a=t.get(n);return{value:n,label:a?`${e.label||e.type} (${n}) — ${a}`:`${e.label||e.type} (${n})`}})];const a=new Set;m=m.filter(e=>!a.has(e.value)&&(a.add(e.value),!0))}else e.get_option?(m=(Array.isArray(r?.[e.get_option])?r[e.get_option]:[]).map(e=>({value:String(e),label:String(e)})),i||(m=[{value:"",label:(0,t.__)("None","compactform")},...m])):m=Array.isArray(e.optionList)?e.optionList:Object.keys(p).map(e=>({value:e,label:p[e]}));if(!o)return(0,n.jsx)(Pe,{value:d,options:m,multiple:i,onChange:t=>l(e.key,t)});const u=`${e.key}__opts`,h=m.map(e=>String(e.value)),b=new Set(h),g=[...Array.isArray(r?.[u])?r[u].map(String):[]];f.forEach(e=>{b.has(e)||g.includes(e)||g.push(e)});const v=(e,t)=>[...h.filter(t=>e.has(t)),...t.filter(t=>e.has(t))],x=(t,n)=>{l(i?{[e.key]:v(t,n),[u]:n}:{[e.key]:[...t][0]??"",[u]:n})};return m=[...m,...g.map(e=>({value:e,label:e,custom:!0}))],(0,n.jsx)(Pe,{value:d,options:m,multiple:i,creatable:o,onChange:e=>{const t=new Set((Array.isArray(e)?e:e?[e]:[]).map(String));x(t,g)},onCreate:e=>{const t=String(e).trim();if(""===t||b.has(t))return;const n=g.includes(t)?g:[...g,t],a=new Set(f);a.add(t),x(a,n)},onRemove:e=>{const t=String(e),n=g.filter(e=>e!==t),a=new Set(f);a.delete(t),x(a,n)},onReorder:e=>{x(new Set(f),e.map(String))}})}),ot.registerComponent("choose",function({ctrl:e,value:t,inherited:a,update:s}){const l=e.options||{},r=Array.isArray(e.optionList)?e.optionList.map(e=>e.value):Object.keys(l),c=void 0!==t?t:a??"",i=!1!==e.toggle;return(0,n.jsx)("div",{className:"fcf7b-choose",role:"radiogroup","aria-label":e.label||"",children:r.map(t=>{const a=l[t],r=a&&"object"==typeof a,o=r?a.icon:null,d=r?a.title||t:String(a??t),f=String(c)===String(t);return(0,n.jsx)("button",{type:"button",className:"fcf7b-choose-btn"+(f?" active":""),title:d,"aria-label":d,"aria-pressed":f,onClick:()=>s(e.key,f&&i?"":t),children:o?(0,n.jsx)("i",{className:o}):d},t)})})}),ot.registerComponent("options",function({ctrl:e,value:a,update:s}){return(0,n.jsx)("textarea",{rows:4,className:"fcf7b-opts",value:(a||[]).join("\n"),placeholder:(0,t.__)("One option per line","compactform"),onChange:t=>s(e.key,t.target.value.split("\n"))})}),ot.registerComponent("date_list",function({ctrl:t,value:a,update:s}){const[l,r]=(0,e.useState)(""),c=a||[];return(0,n.jsxs)("div",{className:"fcf7b-date-list",children:[(0,n.jsxs)("div",{className:"fcf7b-date-list-add",children:[(0,n.jsx)("input",{type:"date",value:l,onChange:e=>r(e.target.value)}),(0,n.jsx)("button",{type:"button",onClick:()=>{l&&!c.includes(l)&&(s(t.key,[...c,l].sort()),r(""))},disabled:!l,children:"+"})]}),c.length>0&&(0,n.jsx)("div",{className:"fcf7b-date-list-chips",children:c.map(e=>(0,n.jsxs)("span",{className:"fcf7b-date-list-chip",children:[e,(0,n.jsx)("button",{type:"button",onClick:()=>(e=>{s(t.key,c.filter(t=>t!==e))})(e),children:"×"})]},e))})]})}),ot.registerComponent("time_ranges",function({ctrl:e,value:a,update:s}){const l=Array.isArray(a)?a:[],r=t=>s(e.key,t),c=(e,t,n)=>{r(l.map((a,s)=>s===e?{...a,[t]:n}:a))};return(0,n.jsxs)("div",{className:"fcf7b-steps-ctl",children:[l.map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-steps-ctl-row",children:[(0,n.jsx)("input",{type:"time",className:"fcf7b-steps-ctl-label",value:e.from||"",onChange:e=>c(a,"from",e.target.value)}),(0,n.jsx)("span",{children:"–"}),(0,n.jsx)("input",{type:"time",className:"fcf7b-steps-ctl-label",value:e.to||"",onChange:e=>c(a,"to",e.target.value)}),(0,n.jsx)("button",{type:"button",className:"fcf7b-steps-ctl-remove",title:(0,t.__)("Remove range","compactform"),onClick:()=>(e=>r(l.filter((t,n)=>n!==e)))(a),children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},a)),(0,n.jsxs)("button",{type:"button",className:"fcf7b-steps-ctl-add",onClick:()=>r([...l,{from:"12:00",to:"13:00"}]),children:[(0,n.jsx)("i",{className:"ri-add-line"})," Add Blocked Range"]})]})}),ot.registerComponent("price_map",function({ctrl:e,value:t,update:a,field:s}){const l=Array.isArray(s?.options)?s.options:[],r=Array.isArray(t)?t:[],c=e=>{const t=r.find(t=>t.option===e);return t?t.price:""};return l.length?(0,n.jsx)("div",{className:"fcf7b-price-map",children:l.map(t=>(0,n.jsxs)("div",{className:"fcf7b-price-map-row",children:[(0,n.jsx)("span",{className:"fcf7b-price-map-label",children:t}),(0,n.jsx)("input",{type:"number",min:"0",step:"0.01",placeholder:"0.00",value:c(t),onChange:n=>((t,n)=>{a(e.key,l.map(e=>({option:e,price:e===t?n:c(e)})))})(t,n.target.value)})]},t))}):(0,n.jsx)("p",{className:"fcf7b-price-map-empty",children:"Add options above first."})}),ot.registerComponent("switcher",Dt),ot.registerComponent("heading",Ft),ot.registerComponent("steps",function({ctrl:a,value:s,update:l}){
     10(0,t._n)("Import %d field? This replaces the current form and saves it immediately.","Import %d fields? This replaces the current form and saves it immediately.",e.fields.length,"compactform"),e.fields.length);if(!window.confirm(c))return;s(null);const r={fields:e.fields,breakpoints:e.breakpoints||{},integrations:e.integrations||n.integrations,configuration:e.configuration||n.configuration};a(r),l&&Object.keys(e.mail).forEach(t=>pe(e.mail[t],t));const i=document.getElementById("fcf7-builder-schema-input");i&&(i.value=JSON.stringify(r));const o=document.getElementById("wpcf7-admin-form-element");window.setTimeout(()=>{o&&o.submit()},0)};return{exportForm:()=>{const e={...n},t={};["mail","mail_2"].forEach(e=>{const n=function(e="mail"){const t=de[e];if(!t)return null;const n={};let a=!1;return Object.keys(t).forEach(e=>{const s=document.getElementById(t[e]);s&&(a=!0,n[e]=s.value)}),Object.keys(fe[e]||{}).forEach(t=>{const s=document.getElementById(fe[e][t]);s&&(a=!0,n[t]=s.checked)}),a?n:null}(e);n&&(t[e]=n)}),Object.keys(t).length&&(e.mail=t);const a=new window.Blob([JSON.stringify(e,null,2)],{type:"application/json"}),s=window.URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=`compactform-${(()=>{const e=document.getElementById("title")||document.querySelector('input[name="post_title"]');return(e?e.value:"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b.formId||"export"})()}.json`,document.body.appendChild(l),l.click(),l.remove(),window.URL.revokeObjectURL(s)},onImportFile:e=>{const n=e.target.files&&e.target.files[0];if(e.target.value="",!n)return;const a=new window.FileReader;a.onload=()=>{let e;try{e=JSON.parse(a.result)}catch(e){return void window.alert((0,t.__)("Could not import: that file is not valid JSON.","compactform"))}c(e)},a.readAsText(n)},importInput:l,importSchema:c}}(s,l,S.select),M={...S,beginGesture:E.beginGesture,endGesture:E.endGesture};(0,e.useEffect)(()=>{ee[""]&&ee[""].icons.length||te("",0,60).then(e=>{e&&e.icons&&(ee[""]={icons:e.icons,offset:e.nextOffset,hasMore:!!e.hasMore,total:e.total||0})})},[]),(0,e.useEffect)(()=>{try{window.localStorage.setItem("fcf7b-theme",d)}catch(e){}},[d]),(0,e.useEffect)(()=>{try{window.localStorage.setItem("fcf7b-nav-open",g?"1":"0")}catch(e){}},[g]),(0,e.useEffect)(()=>{try{window.localStorage.setItem(f,v)}catch(e){}},[v]),(0,e.useEffect)(()=>{if(!u)return;const e=e=>{"Escape"===e.key&&h(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[u]);const L=s.fields.filter(e=>e.id===k)[0]||null;y.value={containerColumnGap:s.containerColumnGap,containerRowGap:s.containerRowGap,containerPadding:s.containerPadding};const R=(0,e.useMemo)(()=>function(e){const t=function(e){if(!e)return[];const t="    ";let n=0;const a=[];for(const s of e.split("\n")){const e=s.trim();""!==e&&(re.test(e)||"</div>"===e||"</label>"===e?(n=Math.max(0,n-1),a.push(t.repeat(n)+e)):(a.push(t.repeat(n)+e),(ce.test(e)||e.startsWith("<div")&&!e.includes("</div>")||e.startsWith("<label")&&!e.includes("</label>"))&&(n+=1)))}return a}(e),a=[];return t.forEach((e,s)=>{(function(e){const t=[];let n,a=0;for(ie.lastIndex=0;n=ie.exec(e);)n.index>a&&t.push({k:"text",t:e.slice(a,n.index)}),t.push(...oe(n[0])),a=ie.lastIndex;return a<e.length&&t.push({k:"text",t:e.slice(a)}),t})(e).forEach((e,t)=>{""!==e.t&&a.push((0,n.jsx)("span",{className:`fcf7b-tok fcf7b-tok-${e.k}`,children:e.t},`${s}-${t}`))}),s<t.length-1&&a.push("\n")}),a}(I.render.markup),[I.render.markup]);return(0,n.jsxs)("div",{className:`fcf7b-app fcf7-builder-theme-${d}${u?" is-fullscreen":""}`,children:[(0,n.jsx)(Xe,{view:c,setView:r,fieldsCount:s.fields.length,renderLoading:I.render.loading,device:N,setDevice:w,navOpen:g,setNavOpen:x,schema:s,setSchema:l,breakpoints:s.breakpoints||{},onBreakpointsChange:e=>l({...s,breakpoints:e}),fieldGap:s.fieldGap,onFieldGapChange:e=>l(kt(s,"fieldGap",e)),containerColumnGap:s.containerColumnGap,onContainerColumnGapChange:e=>l(kt(s,"containerColumnGap",e)),containerRowGap:s.containerRowGap,onContainerRowGapChange:e=>l(kt(s,"containerRowGap",e)),containerPadding:s.containerPadding,onContainerPaddingChange:e=>l(kt(s,"containerPadding",e)),webhook:s.integrations?.webhook,onWebhookChange:e=>l({...s,integrations:{...s.integrations,webhook:e}}),spamProtection:s.configuration?.spamProtection,onSpamProtectionChange:e=>l({...s,configuration:{...s.configuration,spamProtection:e}}),fields:s.fields,canUndo:E.canUndo,canRedo:E.canRedo,undo:E.undo,redo:E.redo,exportForm:P,onImportFile:$,importInput:G,importSchema:O,canvasBg:v,setCanvasBg:_,theme:d,setTheme:p,fullscreen:u,setFullscreen:h,saveState:I.saveState,dirty:I.dirty,saveError:I.saveError,saveProgress:I.saveProgress,quickSave:I.quickSave}),"code"===c?(0,n.jsxs)("div",{className:"fcf7b-code",children:[(0,n.jsx)("div",{className:"fcf7b-code-note",children:(0,t.__)("Generated from the builder on the server. Save the form with CF7’s Save button.","compactform")}),(0,n.jsx)("pre",{className:"fcf7b-code-pre",children:R.length?R:(0,t.__)("(empty form)","compactform")})]}):(0,n.jsxs)("div",{className:"fcf7b-columns",children:[(0,n.jsx)(Ze,{search:i,setSearch:o,onAdd:(e,t)=>M.add(e,null,t),schema:s,setSchema:l}),(0,n.jsx)(ut,{fields:s.fields,selected:k,multi:C,actions:M,device:N,breakpoints:s.breakpoints||{},background:v,fieldGap:s.fieldGap,containerColumnGap:s.containerColumnGap,containerRowGap:s.containerRowGap,containerPadding:s.containerPadding}),(0,n.jsx)(yt,{field:C.length>1?null:L,update:M.update,beginGesture:M.beginGesture,endGesture:M.endGesture,allFields:s.fields,device:N}),g&&(0,n.jsx)(wt,{fields:s.fields,selected:k,multi:C,actions:M,onClose:()=>x(!1)})]}),ne.applyFilters("fcf7b.appOverlays",[],{fields:s.fields,selected:k,multi:C,actions:M}).map(e=>(0,n.jsx)("span",{children:e.render()},e.id))]})}function St({field:e,def:t}){return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("div",{className:"fcf7b-pv-server",dangerouslySetInnerHTML:{__html:t?.builderMarkup||""}})})}const Et=(e,t,n)=>({w:e||100,children:t,dir:n}),It=[{key:"v",glyph:"↓",dir:"column",cells:[]},{key:"h",glyph:"→",dir:"row",cells:[]},{key:"2",cells:[Et(50),Et(50)]},{key:"3",cells:[Et(33.33),Et(33.33),Et(33.33)]},{key:"4",cells:[Et(25),Et(25),Et(25),Et(25)]},{key:"6",cells:[Et(16.66),Et(16.66),Et(16.66),Et(16.66),Et(16.66),Et(16.66)]},{key:"1-2",cells:[Et(33.33),Et(66.66)]},{key:"2-1",cells:[Et(66.66),Et(33.33)]},{key:"1-2-1",cells:[Et(25),Et(50),Et(25)]},{key:"l-rr",cells:[Et(50),Et(50,[Et(),Et()],"column")]},{key:"ll-r",cells:[Et(50,[Et(),Et()],"column"),Et(50)]},{key:"tt-b",dir:"column",cells:[Et(100,[Et(50),Et(50)],"row"),Et(100)]}];function Pt({cells:e,dir:t}){return(0,n.jsx)("span",{className:"fcf7b-ctnpick-box",style:{flexDirection:t||"row"},children:e.map((e,t)=>{const a={flex:`0 1 ${e.w}%`};return e.children?(0,n.jsx)("span",{className:"fcf7b-ctnpick-nest",style:a,children:(0,n.jsx)(Pt,{cells:e.children,dir:e.dir})},t):(0,n.jsx)("span",{className:"fcf7b-ctnpick-cell",style:a},t)})})}function $t({field:e,def:a}){const s=e.options||[],l=!!e.multiple;let c=null;l||"blank"!==e.first_option?!l&&"label"===e.first_option&&(e.first_option_text||"").trim()&&(c=e.first_option_text.trim()):c="";const r=[];if(null!==c&&r.push(c),s.forEach(e=>r.push(e)),r.length||r.push((0,t.__)("Select…","flexiforms-drag-drop-builder-for-cf7")),l){const t=r.slice(0,2);return(0,n.jsx)(ot,{field:e,def:a,children:(0,n.jsxs)("div",{className:"fcf7b-pv-input wpcf7-form-control fcf7b-pv-ms",children:[(0,n.jsx)("span",{className:"fcf7b-pv-ms-chips",children:t.length?t.map((e,t)=>(0,n.jsxs)("span",{className:"fcf7b-pv-ms-chip",children:[e,(0,n.jsx)("span",{children:"×"})]},t)):(0,n.jsx)("span",{className:"fcf7b-pv-ms-placeholder",children:"Select options…"})}),(0,n.jsx)("span",{className:"fcf7b-pv-ms-caret"})]})})}const i=Array.isArray(e.default_option)?e.default_option[0]:e.default_option;return(0,n.jsx)(ot,{field:e,def:a,children:(0,n.jsx)("select",{className:"fcf7b-pv-input wpcf7-form-control wpcf7-select",defaultValue:i||void 0,children:r.map((e,t)=>(0,n.jsx)("option",{children:e},t))},`${r.join("\0")}|${i||""}`)})}function Gt({field:e,def:a}){const s="checkbox"===e.type?"checkbox":"radio",l=e=>(0,t.sprintf)((0,t.__)("Option %d","compactform"),e),c=e.options||[l(1),l(2)],r=Array.isArray(e.default_option)?e.default_option:e.default_option?[e.default_option]:[],i=`fcf7b-pv-${e.id}`;
     11/* translators: %d: option number. */return(0,n.jsx)(ot,{field:e,def:a,children:(0,n.jsx)("span",{className:`fcf7b-pv-choices wpcf7-form-control wpcf7-${s}`,children:c.map((e,t)=>(0,n.jsx)("span",{className:`wpcf7-list-item${0===t?" first":""}${t===c.length-1?" last":""}`,children:(0,n.jsxs)("label",{children:[(0,n.jsx)("input",{type:s,name:i,defaultChecked:r.includes(e)}),(0,n.jsxs)("span",{className:"wpcf7-list-item-label",children:[" ",e]})]})},t))},`${c.join("|")}|${r.join("|")}`)})}const Ft={email:"email",tel:"tel",url:"url",number:"number",date:"date"};function Dt({field:e,def:t}){const a=e.defaultValue||"";return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("input",{className:`fcf7b-pv-input wpcf7-form-control wpcf7-${"tel"===e.type?"tel":Ft[e.type]||"text"}`,type:Ft[e.type]||"text",placeholder:e.placeholder||"",defaultValue:a},a)})}const At={fcf7_date_picker:{cls:"fcf7-datepicker",keys:["mode","date_format","min_date","max_date","default_date"],global:"fcf7DatePicker"},fcf7_time_picker:{cls:"fcf7-timepicker",keys:["time_format","interval","min_time","max_time","default_time"],global:"fcf7TimePicker"},fcf7_datetime_picker:{cls:"fcf7-datetimepicker",keys:["mode","date_format","time_format","interval","min_date","max_date","default_date","default_time"],global:"fcf7DateTimePicker"}};function Ot({field:t,def:a}){const s=At[t.type]||At.fcf7_date_picker,l=(0,e.useRef)(null),c={};s.keys.forEach(e=>{c[e]=null==t[e]?"":String(t[e])});const r=JSON.stringify(c);return(0,e.useEffect)(()=>{const e=l.current;if(!e)return;const t=window[s.global];return t&&t.init&&t.init(e.closest(".fcf7b-pv-field")||document),()=>{e._flatpickr&&e._flatpickr.destroy()}},[r]),(0,n.jsx)(ot,{field:t,def:a,wrapClass:"fcf7-field-picker-wrapper",children:(0,n.jsx)("input",{ref:l,type:"text",className:`fcf7b-pv-input wpcf7-form-control ${s.cls}`,placeholder:t.placeholder||"","data-config":r},r)})}const Mt=(e,t)=>""===e||null==e||isNaN(e)?t:Number(e),Tt=(e,t,n)=>Math.max(t,Math.min(n,e)),Lt=e=>`calc(var(--fcf7-range-handle-size) / 2 + ${Math.round(1e5*e)/1e5} * (100% - var(--fcf7-range-handle-size)))`;function Rt({ctrl:e,value:t,update:a}){return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-prop--inline fcf7b-switch-row",children:[(0,n.jsx)("span",{className:"fcf7b-prop-label",children:e.label}),(0,n.jsx)(Ce,{checked:t,onChange:t=>a(e.key,t),labelOn:e.label_on||"",labelOff:e.label_off||""})]})}function Bt({ctrl:e}){return(0,n.jsx)("div",{className:"fcf7b-ctl-heading",children:e.label})}function zt({value:s,onChange:l}){const[c,r]=(0,e.useState)(""),[i,o]=(0,e.useState)(()=>ee[""]||{icons:[],offset:0,hasMore:!0,total:0}),[d,f]=(0,e.useState)(""),p=(0,e.useRef)(!1),m=(0,e.useRef)(0),u=c.trim().toLowerCase(),h=(e,t,n)=>{if(!n&&p.current)return;p.current=!0;const a=++m.current;f(n?"reset":"more"),te(e,t,n?60:void 0).then(t=>{a===m.current&&o(t?a=>{const s={icons:(n?[]:a.icons).concat(t.icons||[]),offset:t.nextOffset,hasMore:!!t.hasMore,total:t.total||0};return ee[e]=s,s}:e=>({...e,hasMore:!1}))}).then(()=>{a===m.current&&(p.current=!1,f(""))})};return(0,e.useEffect)(()=>{const e=ee[u];if(e?.icons.length)return o(e),void f("");f("reset");const t=setTimeout(()=>h(u,0,!0),u?250:0);return()=>clearTimeout(t)},[u]),(0,n.jsxs)(a,{className:"fcf7b-iconpick",triggerClassName:"fcf7b-iconpick-trigger"+(s?" is-set":""),popClassName:"fcf7b-iconpick-pop",title:(0,t.__)("Choose Icon","compactform"),trigger:s?(0,n.jsx)("i",{className:s}):(0,n.jsx)("span",{className:"fcf7b-iconpick-placeholder",children:(0,t.__)("Choose","compactform")}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Icon","compactform")}),(0,n.jsx)("div",{className:"fcf7b-pop-tools",children:s?(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>l(""),children:(0,n.jsx)("i",{className:"ri-refresh-line"})}):null})]}),(0,n.jsx)("input",{className:"fcf7b-iconpick-search",type:"search",placeholder:(0,t.__)("Search icons…","compactform"),value:c,autoFocus:!0,onChange:e=>r(e.target.value)}),(0,n.jsxs)("div",{className:"fcf7b-iconpick-gridwrap",children:[(0,n.jsxs)("div",{className:"fcf7b-iconpick-grid"+("reset"===d?" is-loading":""),onScroll:e=>{if(p.current||!i.hasMore)return;const t=e.currentTarget;t.scrollTop+t.clientHeight>=t.scrollHeight-48&&h(u,i.offset,!1)},"aria-busy":!!d,children:[i.icons.map(e=>(0,n.jsx)("button",{type:"button",title:e,className:"fcf7b-iconpick-cell"+(s===e?" active":""),onClick:()=>l(e),children:(0,n.jsx)("i",{className:e})},e)),i.icons.length||d?null:(0,n.jsx)("div",{className:"fcf7b-iconpick-empty",children:(0,t.__)("No icons found","compactform")}),"more"===d?(0,n.jsxs)("div",{className:"fcf7b-iconpick-more",children:[(0,n.jsx)("span",{className:"fcf7b-spinner"}),(0,t.__)("Loading…","compactform")]}):null]}),"reset"===d?(0,n.jsxs)("div",{className:"fcf7b-iconpick-loader",role:"status","aria-live":"polite",children:[(0,n.jsx)("span",{className:"fcf7b-spinner"}),(0,n.jsx)("span",{children:(0,t.__)("Loading icons…","compactform")})]}):null]}),(0,n.jsx)("div",{className:"fcf7b-iconpick-selected",children:s?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("i",{className:s}),(0,n.jsx)("code",{children:s})]}):(0,n.jsx)("span",{className:"fcf7b-iconpick-placeholder",children:(0,t.__)("No icon selected","compactform")})})]})}function Ut({ctrl:e,value:t,inherited:a,onChange:s,onGestureStart:l,onGestureEnd:c,device:r}){const i=e.units&&e.units.length?e.units:["px"],o=e=>e&&"object"==typeof e?e:{size:0!==e&&!e||isNaN(e)?"":String(e),unit:void 0},d=o(t),f=o(a),p=d.size??"",m=f.size??"",u=i.includes(d.unit)?d.unit:i.includes(f.unit)?f.unit:i[0],h="custom"===u,b=e.ranges&&e.ranges[u]||{},g=b.min??e.min??0,x=b.max??e.max??100,v=b.step??e.step??1,j=e=>s({size:e,unit:u});return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-slider",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-head",children:[(0,n.jsxs)("label",{className:"fcf7b-prop-label",children:[e.label,e.responsive?(0,n.jsx)("i",{className:`fcf7b-ctl-device ${H[r]}`,title:r}):null]}),(0,n.jsx)(he,{units:i,value:u,onChange:e=>s({size:"custom"!==e&&isNaN(p)?"":p,unit:e})})]}),(0,n.jsx)("div",{className:"fcf7b-slider-row",children:h?(0,n.jsx)("input",{type:"text",className:"fcf7b-slider-custom",value:p,placeholder:m||"e.g. calc(100% - 20px)",onChange:e=>j(e.target.value)}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{type:"range",className:"fcf7b-slider-range",min:g,max:x,step:v,value:""!==p?p:""!==m?m:g,onPointerDown:()=>{l&&l();const e=()=>{document.removeEventListener("pointerup",e),c&&c()};document.addEventListener("pointerup",e)},onChange:e=>j(e.target.value)}),(0,n.jsx)("input",{type:"number",className:"fcf7b-slider-num",min:g,max:x,step:v,value:p,placeholder:m,onChange:e=>j(e.target.value)})]})})]})}le.registerComponent("heading",function({field:e}){const t=["h1","h2","h3","h4","h5","h6","p","span"].includes(e.level)?e.level:"h3";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsx)(t,{className:"fcf7b-pv-heading fcf7b-heading",children:e.label||"Heading"})})}),le.registerComponent("divider",function({field:e}){const t=e.divider_pattern||"";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsx)("div",{className:"fcf7b-pv-divider fcf7b-divider",...t?{"data-pattern":t}:{}})})}),le.registerComponent("html",function({field:e}){const t=e.html||"";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:t.trim()?(0,n.jsx)("div",{className:"fcf7b-pv-html fcf7b-html",dangerouslySetInnerHTML:{__html:t}}):(0,n.jsx)("div",{className:"fcf7b-pv-html fcf7b-pv-html-empty",children:"HTML"})})}),le.registerComponent("submit",function({field:e}){return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsx)("input",{type:"submit",className:"fcf7b-pv-submit wpcf7-form-control wpcf7-submit has-spinner",value:e.label||(0,t.__)("Send","compactform")})})}),le.registerComponent("acceptance",function({field:e,def:t}){const a=!Object.prototype.hasOwnProperty.call(e,"text"),s=(a?e.label:e.text)||"I accept the terms and conditions.",l=a?{...e,label:""}:e;return(0,n.jsx)(ot,{field:l,def:t,children:(0,n.jsx)("span",{className:"fcf7b-pv-choices wpcf7-form-control wpcf7-acceptance",children:(0,n.jsx)("span",{className:"wpcf7-list-item",children:(0,n.jsxs)("label",{className:"fcf7b-pv-inline",children:[(0,n.jsx)("input",{type:"checkbox"}),(0,n.jsxs)("span",{className:"wpcf7-list-item-label",children:[" ",s]})]})})})})}),le.registerComponent("multistep",function({field:a,allFields:s=[],actions:l,selected:c,multi:r=[],device:i="desktop",openMenu:o}){const d=Array.isArray(a.steps)&&a.steps.length?a.steps:[{id:"step_1",label:(0,t.sprintf)(/* translators: %d: step number. */ /* translators: %d: step number. */(0,t.__)("Step %d","compactform"),1)}],[f,p]=(0,e.useState)(d[0].id),m=d.find(e=>e.id===f)||d[0],u=d.findIndex(e=>e.id===m.id),h=`${a.id}:${m.id}`,b=G(h),g=new Set(d.map(e=>e.id)),y=m.id===d[0].id,w=e=>e.parentId===a.id&&(e.stepId===m.id||y&&!g.has(e.stepId)),k=s.filter(w),C=e=>{if(E(),!j.value||!l)return;if(N().includes(a.id))return;const t=s.reduce((e,t,n)=>w(t)?n:e,-1),n=e>=k.length?-1===t?s.length:t+1:s.indexOf(k[e]);"new"===j.value.kind?l.add(j.value.type,n,{parentId:a.id,stepId:m.id}):"move"===j.value.kind&&l.move(N(),n,{parentId:a.id,stepId:m.id}),j.value=null},F=e=>p(d[Math.max(0,Math.min(d.length-1,e))].id);return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${a.id}`,children:(0,n.jsxs)("div",{className:"fcf7b-multistep",children:["circles"===a.navStyle?(0,n.jsx)("div",{className:"fcf7b-ms-steps",children:d.map((e,t)=>{const a=t<u?"is-done":t===u?"is-active":"is-upcoming";return(0,n.jsxs)("div",{className:`fcf7b-ms-step ${a}`,children:[(0,n.jsxs)("button",{type:"button",className:"fcf7b-ms-step-circle",onClick:t=>{t.stopPropagation(),p(e.id)},children:[(0,n.jsx)("span",{className:"fcf7b-ms-step-num",children:t+1}),(0,n.jsx)("svg",{className:"fcf7b-ms-step-check",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})})]}),(0,n.jsx)("span",{className:"fcf7b-ms-step-label",children:e.label||`Step ${t+1}`})]},e.id)})}):(0,n.jsx)("div",{className:"fcf7b-ms-tabs",children:d.map((e,t)=>(0,n.jsx)("button",{type:"button",className:"fcf7b-ms-tab"+(e.id===m.id?" is-active":""),onClick:t=>{t.stopPropagation(),p(e.id)},children:e.label||`Step ${t+1}`},e.id))}),(0,n.jsx)("div",{className:"fcf7b-ms-panel"+(!k.length&&b>=0?" is-drop-in":""),onDragOver:e=>{e.preventDefault(),e.stopPropagation();const t=$(e,e.currentTarget,":scope > .fcf7b-ms-stack > .fcf7b-ms-cell");S(h,t,()=>C(t))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:k.length?(0,n.jsx)("div",{className:"fcf7b-ms-stack",children:k.map((e,t)=>{const a=x[e.type]||{title:e.type,icon:""},d=v[e.id]?{...a,builderMarkup:v[e.id]}:a,f={onChange:(t,n)=>l.updateField(e.id,t,n),beginGesture:l.beginGesture,endGesture:l.endGesture,allFields:s,actions:l,selected:c,multi:r,openMenu:o};return(0,n.jsx)("div",{className:`fcf7b-cell fcf7b-ms-cell fcf7b-field-${e.id}${b===t?" is-drop-before":""}${b===t+1&&t===k.length-1?" is-drop-after":""}`,onDragOver:e=>{e.preventDefault(),e.stopPropagation();const n=t+P(e,e.currentTarget);S(h,n,()=>C(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:"fcf7b-card"+(r.includes(e.id)?" is-selected":""),draggable:!0,onClick:t=>{t.stopPropagation(),l.select(e.id,t.ctrlKey||t.metaKey)},onDragStart:t=>{_(e.id,r),t.stopPropagation()},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),r.includes(e.id)||l.select(e.id),o&&o(e.id,t.clientX,t.clientY)},children:[(0,n.jsx)(ft,{field:e,def:a,nested:!0,actions:l,multi:r,openMenu:o}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:dt(J(e,d,i),d,i,f)})]})},e.id)})}):(0,n.jsx)("div",{className:"fcf7b-ms-empty",children:"Drag a field here"})}),(0,n.jsxs)("div",{className:"fcf7b-ms-nav-buttons",children:[(0,n.jsx)("button",{type:"button",className:"fcf7b-ms-prev",disabled:u<=0,onClick:e=>{e.stopPropagation(),F(u-1)},children:"Previous"}),(0,n.jsx)("button",{type:"button",className:"fcf7b-ms-next",disabled:u>=d.length-1,onClick:e=>{e.stopPropagation(),F(u+1)},children:"Next"})]})]})})}),le.registerComponent("repeater",function({field:e,allFields:a=[],actions:s,selected:l,multi:c=[],device:r="desktop",openMenu:i}){const o=G(e.id),d=a.filter(t=>t.parentId===e.id),f=(e.rowTitle||"").trim(),p=t=>{if(E(),!j.value||!s)return;if(N().includes(e.id))return;const n=a.reduce((t,n,a)=>n.parentId===e.id?a:t,-1),l=t>=d.length?-1===n?a.length:n+1:a.indexOf(d[t]);"new"===j.value.kind?s.add(j.value.type,l,{parentId:e.id}):"move"===j.value.kind&&s.move(N(),l,{parentId:e.id}),j.value=null};return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsxs)("div",{className:"fcf7-repeater",children:[(0,n.jsx)("div",{className:"fcf7-repeater-rows",children:(0,n.jsxs)("div",{className:"fcf7-repeater-row",children:[(0,n.jsxs)("div",{className:"fcf7-repeater-row-head",children:[(0,n.jsx)("span",{className:"fcf7-repeater-row-title",children:f?`${f} 1`:""}),(0,n.jsx)("button",{type:"button",className:"fcf7-repeater-remove",disabled:!0,children:e.removeLabel||(0,t.__)("Remove","compactform")})]}),(0,n.jsx)("div",{className:"fcf7-repeater-row-body fcf7b-rep-dropbox"+(!d.length&&o>=0?" is-drop-in":""),onDragOver:t=>{t.preventDefault(),t.stopPropagation();const n=$(t,t.currentTarget,":scope > .fcf7b-rep-stack > .fcf7b-rep-cell");S(e.id,n,()=>p(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:d.length?(0,n.jsx)("div",{className:"fcf7b-rep-stack",children:d.map((t,a)=>{const f=x[t.type]||{title:t.type,icon:""},m=v[t.id]?{...f,builderMarkup:v[t.id]}:f,u={onChange:(e,n)=>s.updateField(t.id,e,n),beginGesture:s.beginGesture,endGesture:s.endGesture,selected:l,multi:c,openMenu:i};return(0,n.jsx)("div",{className:`fcf7b-cell fcf7b-rep-cell fcf7b-field-${t.id}${o===a?" is-drop-before":""}${o===a+1&&a===d.length-1?" is-drop-after":""}`,onDragOver:t=>{t.preventDefault(),t.stopPropagation();const n=a+P(t,t.currentTarget);S(e.id,n,()=>p(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:"fcf7b-card"+(c.includes(t.id)?" is-selected":""),draggable:!0,onClick:e=>{e.stopPropagation(),s.select(t.id,e.ctrlKey||e.metaKey)},onDragStart:e=>{_(t.id,c),e.stopPropagation()},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),c.includes(t.id)||s.select(t.id),i&&i(t.id,e.clientX,e.clientY)},children:[(0,n.jsx)(ft,{field:t,def:f,nested:!0,actions:s,multi:c,openMenu:i}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:dt(J(t,m,r),m,r,u)})]})},t.id)})}):(0,n.jsx)("div",{className:"fcf7b-rep-empty",children:"Drag the fields to repeat here"})})]})}),(0,n.jsx)("div",{className:"fcf7-repeater-actions",children:(0,n.jsx)("button",{type:"button",className:"fcf7-repeater-add",disabled:!0,children:e.addLabel||(0,t.__)("Add More","compactform")})})]})})}),le.registerComponent("container",function({field:a,allFields:s=[],actions:l,selected:c,multi:r=[],device:i="desktop",openMenu:o}){const d=G(a.id),[f,p]=(0,e.useState)(!1),m=s.filter(e=>e.parentId===a.id),u=a.direction||"row",h=0===u.indexOf("column")?"y":"x",b=u.indexOf("-reverse")>-1,g="x"===h?"is-drop-x":"is-drop-y",y=(e,t)=>{const n=t.getBoundingClientRect();return e.clientY-n.top<8||n.bottom-e.clientY<8||e.clientX-n.left<8||n.right-e.clientX<8},w=e=>{if(E(),!j.value||!l)return;if(N().some(e=>((e,t)=>{let n=s.find(t=>t.id===e);for(;n;){if(n.id===t)return!0;n=n.parentId?s.find(e=>e.id===n.parentId):null}return!1})(a.id,e)))return;const t=(e=>{if(e<m.length)return s.indexOf(m[e]);const t=s.reduce((e,t,n)=>t.parentId===a.id?n:e,-1);return-1===t?s.length:t+1})(e);"new"===j.value.kind?l.add(j.value.type,t,{parentId:a.id,stepId:null}):l.move(N(),t,{parentId:a.id,stepId:null}),j.value=null},k=(e,t)=>{const n=[];return e.forEach(e=>{const a=K(),s={id:a,parentId:t,width:{desktop:{size:e.w,unit:"%"}}};e.children&&(s.wrap={desktop:"nowrap"}),e.dir&&(s.direction={desktop:e.dir}),n.push({type:"container",overrides:s}),e.children&&n.push(...k(e.children,a))}),n};return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${a.id}`,children:(0,n.jsx)("div",{className:"fcf7-container fcf7b-ctnbox"+(!m.length&&d>=0?" is-drop-in":""),onDragOver:e=>{if(y(e,e.currentTarget))return;e.preventDefault(),e.stopPropagation();const t=$(e,e.currentTarget,":scope > .fcf7b-ctn-item",h,b);S(a.id,t,()=>w(t))},onDrop:e=>{y(e,e.currentTarget)||(e.preventDefault(),e.stopPropagation(),I())},children:m.length?m.map((e,t)=>{const f=x[e.type]||{title:e.type,icon:""},p=v[e.id]?{...f,builderMarkup:v[e.id]}:f,u=J(e,p,i),j={onChange:(t,n)=>l.updateField(e.id,t,n),beginGesture:l.beginGesture,endGesture:l.endGesture,allFields:s,actions:l,selected:c,multi:r,openMenu:o};return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id} fcf7b-ctn-item ${g}${d===t?" is-drop-before":""}${d===t+1&&t===m.length-1?" is-drop-after":""}`,onDragOver:e=>{e.preventDefault(),e.stopPropagation();const n=t+P(e,e.currentTarget,h,b);S(a.id,n,()=>w(n))},onDrop:e=>{e.preventDefault(),e.stopPropagation(),I()},children:(0,n.jsxs)("div",{className:"fcf7b-card"+(r.includes(e.id)?" is-selected":""),draggable:!0,onClick:t=>{t.stopPropagation(),l.select(e.id,t.ctrlKey||t.metaKey)},onDragStart:t=>{t.target.closest&&t.target.closest("input, textarea, select")?t.preventDefault():(_(e.id,r),t.stopPropagation())},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),r.includes(e.id)||l.select(e.id),o&&o(e.id,t.clientX,t.clientY)},children:[(0,n.jsx)(ft,{field:e,def:f,nested:!0,actions:l,multi:r,openMenu:o}),(0,n.jsx)("div",{className:"fcf7b-card-body",children:dt(u,p,i,j)})]})},e.id)}):f||a.parentId?(0,n.jsx)("button",{type:"button",className:"fcf7b-ctn-empty",title:(0,t.__)("Drag a field here","compactform"),onClick:e=>{e.stopPropagation(),l.select(a.id)},children:(0,n.jsx)("i",{className:"ri-add-line"})}):(0,n.jsxs)("div",{className:"fcf7b-ctnpick",onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"fcf7b-ctnpick-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Select your structure","compactform")}),(0,n.jsx)("button",{type:"button",title:(0,t.__)("Skip — drop fields in yourself","compactform"),onClick:()=>p(!0),children:(0,n.jsx)("i",{className:"ri-close-line"})})]}),(0,n.jsx)("div",{className:"fcf7b-ctnpick-grid",children:It.map(e=>(0,n.jsx)("button",{type:"button",className:"fcf7b-ctnpick-item",title:e.glyph?"column"===e.dir?(0,t.__)("Vertical","compactform"):(0,t.__)("Horizontal","compactform"):(0,t.sprintf)(/* translators: %d: number of columns in the layout preset. */ /* translators: %d: number of columns in the layout preset. */
     12(0,t.__)("%d columns","compactform"),e.cells.length),onClick:()=>(e=>{if(!l||!l.insert)return;const t={};e.dir&&(t.direction={desktop:e.dir}),e.cells.length&&(t.wrap={desktop:"nowrap"});const n=Object.keys(t).length?{[a.id]:t}:null;l.insert(k(e.cells,a.id),null,n),p(!0)})(e),children:e.glyph?(0,n.jsx)("span",{className:"fcf7b-ctnpick-box fcf7b-ctnpick-glyph",children:e.glyph}):(0,n.jsx)(Pt,{cells:e.cells,dir:e.dir})},e.key))})]})})})}),le.registerComponent("text",Dt),le.registerComponent("email",Dt),le.registerComponent("tel",Dt),le.registerComponent("url",Dt),le.registerComponent("number",Dt),le.registerComponent("date",Dt),le.registerComponent("fcf7_date_picker",Ot),le.registerComponent("fcf7_time_picker",Ot),le.registerComponent("fcf7_datetime_picker",Ot),le.registerComponent("textarea",function({field:e,def:t}){const a=e.defaultValue||"";return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("textarea",{className:"fcf7b-pv-input wpcf7-form-control wpcf7-textarea",rows:3,placeholder:e.placeholder||"",defaultValue:a},a)})}),le.registerComponent("quiz",function({field:e,def:t}){const a=(e.options||[]).find(e=>String(e).includes("|")),s=a?String(a).split("|")[0].trim():"1 + 1 = ?";return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsxs)("label",{className:"fcf7b-pv-quiz",children:[(0,n.jsx)("span",{className:"wpcf7-quiz-label",children:s}),(0,n.jsx)("input",{className:"fcf7b-pv-input wpcf7-form-control wpcf7-quiz",type:"text",disabled:!0})]})})}),le.registerComponent("file",function({field:e,def:t}){return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("input",{className:"fcf7b-pv-file wpcf7-form-control wpcf7-file",type:"file",disabled:!0})})}),le.registerComponent("hidden",function({field:e}){const a=e.name||(0,t.__)("field","compactform"),s=e.value||"";return(0,n.jsx)("div",{className:`fcf7b-field-wrap fcf7b-field-${e.id}`,children:(0,n.jsxs)("div",{className:"fcf7b-pv-hidden",children:[(0,n.jsx)("span",{className:"ri-eye-off-line","aria-hidden":"true"}),(0,n.jsx)("span",{className:"fcf7b-pv-hidden-name",children:a}),(0,n.jsx)("span",{className:"fcf7b-pv-hidden-value",children:s||(0,t.__)("(empty)","compactform")})]})})}),le.registerComponent("select",$t),le.registerComponent("fcf7_country_dropdown",$t),le.registerComponent("radio",Gt),le.registerComponent("checkbox",Gt),le.registerComponent("fcf7_star_rating",function({field:e,def:t,onChange:a}){const s=parseInt(e.selected,10)||0;return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("div",{className:"fcf7b-pv-stars fcf7-rating",children:(0,n.jsx)("span",{className:"icon",children:Array.from({length:5}).map((e,t)=>{const l=t+1;return(0,n.jsx)("span",{className:"fcf7b-pv-star fcf7-star"+(l<=s?" is-active":""),title:a?`Set default rating to ${l}`:void 0,onClick:a?()=>a("selected",l===s?0:l):void 0,children:(0,n.jsx)("svg",{viewBox:"0 0 640 640",fill:"currentColor",children:(0,n.jsx)("path",{d:"M341.5 45.1C337.4 37.1 329.1 32 320.1 32C311.1 32 302.8 37.1 298.7 45.1L225.1 189.3L65.2 214.7C56.3 216.1 48.9 222.4 46.1 231C43.3 239.6 45.6 249 51.9 255.4L166.3 369.9L141.1 529.8C139.7 538.7 143.4 547.7 150.7 553C158 558.3 167.6 559.1 175.7 555L320.1 481.6L464.4 555C472.4 559.1 482.1 558.3 489.4 553C496.7 547.7 500.4 538.8 499 529.8L473.7 369.9L588.1 255.4C594.5 249 596.7 239.6 593.9 231C591.1 222.4 583.8 216.1 574.8 214.7L415 189.3L341.5 45.1z"})})},l)})})})})}),le.registerComponent("fcf7_signature",function({field:e,def:a}){const s=e.bg_color||"#bceeff",l=e.pen_color||"#000000",c=e.clear_text||(0,t.__)("Clear","compactform");return(0,n.jsx)(ot,{field:e,def:a,children:(0,n.jsxs)("span",{className:"wpcf7-form-control fcf7-signature-frame",children:[(0,n.jsxs)("span",{className:"fcf7-signature-pad",children:[(0,n.jsx)("canvas",{style:{backgroundColor:s}}),(0,n.jsx)("svg",{className:"fcf7b-pv-sigink",viewBox:"0 0 200 60",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 42c14-22 22-26 27-16s2 22 9 22 12-24 20-30 12 8 19 8 11-10 18-10 14 12 23 10 16-10 24-16",fill:"none",stroke:l,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(0,n.jsx)("span",{className:"fcf7-signature-actions",children:(0,n.jsx)("button",{type:"button",className:"fcf7-signature-clear",disabled:!0,children:c})})]})})}),le.registerComponent("fcf7_range_slider",function({field:e,def:a}){const s="2"===String(e.handles??"1"),l=Mt(e.min,0);let c=Mt(e.max,100);c<=l&&(c=l+100);let r=Mt(e.step,1);r<=0&&(r=1);const i=Tt(Mt(s?e.default_max:e.default_value,c),l,c),o=s?Tt(Mt(e.default_min,l),l,i):l,d=c-l||1,f=e=>Tt((e-l)/d,0,1),p=s?f(o):0,m=f(i),u=e.suffix||"",h=e.separator||"-",b=e.min_label||(0,t.__)("Min","compactform"),g=e.max_label||(0,t.__)("Max","compactform"),x=e.value_pos||"bubble",v=!e.hide_value,j=!e.hide_minmax,y=Tt(Math.floor(Mt(e.ticks,0)),0,50),_=(e=>{const t=String(e).indexOf(".");return-1===t?0:String(e).length-t-1})(r),N=e=>_>0?Number(e).toFixed(_):String(Math.round(e)),w=(e,t,a,s)=>(0,n.jsxs)("span",{className:"fcf7-range-readout-item","data-handle":t,style:{"--pos":Lt(a)},children:["split"===x&&s?(0,n.jsx)("span",{className:"fcf7-range-readout-label",children:s}):null,(0,n.jsx)("span",{className:"fcf7-range-number",children:N(e)}),(0,n.jsx)("span",{className:"fcf7-range-suffix",children:u})]},t),k=v?(0,n.jsxs)("span",{className:"fcf7-range-readout",children:[s?w(o,"from",p,b):null,s?(0,n.jsx)("span",{className:"fcf7-range-readout-sep",children:h}):null,w(i,"to",m,s?g:"")]}):null,C="bottom"!==x&&"split"!==x,S=y>0?Array.from({length:y+1},(e,t)=>t):[];return(0,n.jsx)(ot,{field:e,def:a,children:(0,n.jsxs)("span",{className:`wpcf7-form-control fcf7-range fcf7-range--${s?"double":"single"} fcf7-range--value-${x}`,style:{"--fcf7-range-from":s?Lt(p):"0%","--fcf7-range-to":Lt(m)},children:[C?k:null,(0,n.jsxs)("span",{className:"fcf7-range-track",children:[(0,n.jsx)("span",{className:"fcf7-range-rail"}),(0,n.jsx)("span",{className:"fcf7-range-fill"}),y>0?(0,n.jsx)("span",{className:"fcf7-range-ticks",children:S.map(e=>(0,n.jsx)("span",{className:"fcf7-range-tick",style:{"--pos":Lt(e/y)}},e))}):null,s?(0,n.jsx)("input",{type:"range",className:"fcf7-range-input fcf7-range-input--from",min:l,max:c,value:o,readOnly:!0,tabIndex:-1}):null,(0,n.jsx)("input",{type:"range",className:"fcf7-range-input fcf7-range-input--to",min:l,max:c,value:i,readOnly:!0,tabIndex:-1})]}),y>0?(0,n.jsx)("span",{className:"fcf7-range-tick-labels",children:S.map(e=>(0,n.jsx)("span",{className:"fcf7-range-tick-label",style:{"--pos":Lt(e/y)},children:N(l+(c-l)*e/y)},e))}):null,j?(0,n.jsxs)("span",{className:"fcf7-range-scale",children:[(0,n.jsxs)("span",{className:"fcf7-range-scale-min",children:[b?(0,n.jsx)("span",{className:"fcf7-range-scale-label",children:b}):null,(0,n.jsxs)("span",{className:"fcf7-range-scale-number",children:[l,u]})]}),(0,n.jsxs)("span",{className:"fcf7-range-scale-max",children:[g?(0,n.jsx)("span",{className:"fcf7-range-scale-label",children:g}):null,(0,n.jsxs)("span",{className:"fcf7-range-scale-number",children:[c,u]})]})]}):null,C?null:k]})})}),le.registerComponent("fcf7_google_recaptcha",function({field:e,def:t}){return(0,n.jsx)(ot,{field:e,def:t,children:(0,n.jsx)("span",{className:"fcf7b-pv-recaptcha"})})}),le.registerComponent("fcf7_spam_protection",function({field:a,def:s}){const l="canvas"===a.method,c=parseInt(a.canvas_width,10)||160,r=parseInt(a.canvas_height,10)||50,i=a.canvas_bg||"",o=a.canvas_color||"",d=a.noise||"medium",f=a.operations||"plus",p=parseInt(a.max_operand,10)||10,m=(0,e.useRef)(null),u=(0,e.useRef)(null),[h,g]=(0,e.useState)(""),[x,v]=(0,e.useState)("7 + 3 ="),[j,y]=(0,e.useState)(0),[_,N]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{if(!b.ajaxUrl)return;let e=!1;N(!0);const t=new window.FormData;return t.append("action","fcf7_spam_protection_refresh"),t.append("nonce",b.nonce||""),t.append("method",l?"canvas":"text"),t.append("ops",f),t.append("max",String(p)),t.append("width",String(c)),t.append("height",String(r)),t.append("bg",i),t.append("color",o),t.append("noise",d),window.fetch(b.ajaxUrl,{method:"POST",credentials:"same-origin",body:t}).then(e=>e.json()).then(t=>{!e&&t&&t.success&&(g(t.data.image||""),t.data.question&&v(t.data.question),u.current&&(u.current.value=""))}).catch(()=>{}).finally(()=>{e||N(!1)}),()=>{e=!0}},[l,f,p,c,r,i,o,d,j]),(0,e.useEffect)(()=>{const e=m.current;if(!e||!e.getContext)return;const t=e.getContext("2d");if(t.clearRect(0,0,e.width,e.height),!h)return;const n=new window.Image;n.onload=()=>t.drawImage(n,0,0,e.width,e.height),n.src=h},[h,c,r]),(0,n.jsx)(ot,{field:a,def:s,children:(0,n.jsxs)("div",{className:"wpcf7-fcf7_spam_protection fcf7-sp",children:[(0,n.jsxs)("div",{className:"fcf7-sp-challenge",children:[l?(0,n.jsx)("canvas",{ref:m,className:"fcf7-sp-canvas",width:c,height:r}):(0,n.jsx)("span",{className:"fcf7-sp-question",children:x}),"yes"!==a.hide_refresh&&(0,n.jsx)("button",{type:"button",className:"fcf7-sp-refresh"+(_?" is-busy":""),disabled:_,onClick:e=>{e.preventDefault(),e.stopPropagation(),y(e=>e+1)},children:(0,n.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",children:(0,n.jsx)("path",{fill:"currentColor",d:"M12 5V2L8 6l4 4V7a5 5 0 1 1-5 5H5a7 7 0 1 0 7-7z"})})})]}),(0,n.jsx)("input",{ref:u,type:"text",className:"fcf7-sp-answer fcf7b-pv-input wpcf7-form-control wpcf7-validates-as-required",placeholder:a.answer_placeholder||(0,t.__)("Your answer","compactform")},a.answer_placeholder||"")]})})}),Rt.standalone=!0,Bt.standalone=!0;const Ht=[{v:"is",t:(0,t.__)("is","compactform")},{v:"is_not",t:(0,t.__)("is not","compactform")},{v:"contains",t:(0,t.__)("contains","compactform")},{v:"not_contains",t:(0,t.__)("doesn't contain","compactform")},{v:"gt",t:(0,t.__)("greater than","compactform")},{v:"lt",t:(0,t.__)("less than","compactform")},{v:"empty",t:(0,t.__)("is empty","compactform")},{v:"filled",t:(0,t.__)("is not empty","compactform")}],Vt={enabled:!1,action:"show",field:"",operator:"is",value:""};function Wt({value:e,onChange:a,field:s,allFields:l}){const c=e&&"object"==typeof e?{...Vt,...e}:{...Vt},r=e=>a({...c,...e}),i=Q(l).filter(e=>e.id!==s.id).map(e=>({name:Z(e.name),label:e.label||e.type})),o="empty"!==c.operator&&"filled"!==c.operator;return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-cond-ctl",children:[(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-prop--inline fcf7b-switch-row",children:[(0,n.jsx)("span",{className:"fcf7b-prop-label",children:(0,t.__)("Enable conditional logic","compactform")}),(0,n.jsx)(Ce,{checked:c.enabled,onChange:e=>r({enabled:e})})]}),c.enabled?(0,n.jsxs)("div",{className:"fcf7b-cond-body",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Action","compactform")}),(0,n.jsx)(Ge,{value:c.action,options:[{value:"show",label:(0,t.__)("Show","compactform")},{value:"hide",label:(0,t.__)("Hide","compactform")}],onChange:e=>r({action:e})})]}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Field","compactform")}),(0,n.jsx)(Ge,{value:c.field,options:[{value:"",label:(0,t.__)("— select —","compactform")},...i.map(e=>({value:e.name,label:`${e.label} (${e.name})`}))],onChange:e=>r({field:e})})]}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Condition","compactform")}),(0,n.jsx)(Ge,{value:c.operator,options:Ht.map(e=>({value:e.v,label:e.t})),onChange:e=>r({operator:e})})]}),o?(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Value","compactform")}),(0,n.jsx)("input",{type:"text",value:c.value,onChange:e=>r({value:e.target.value})})]}):null,c.field?null:(0,n.jsx)("p",{className:"fcf7b-cond-hint",children:(0,t.__)("Pick the field this one reacts to.","compactform")})]}):null]})}const qt=["","100","200","300","400","500","600","700","800","900"],Jt=[["",(0,t.__)("Default","compactform")],["none",(0,t.__)("None","compactform")],["uppercase",(0,t.__)("Uppercase","compactform")],["lowercase",(0,t.__)("Lowercase","compactform")],["capitalize",(0,t.__)("Capitalize","compactform")]],Yt=[["",(0,t.__)("Default","compactform")],["normal",(0,t.__)("Normal","compactform")],["italic",(0,t.__)("Italic","compactform")]],Kt=[["",(0,t.__)("Default","compactform")],["none",(0,t.__)("None","compactform")],["underline",(0,t.__)("Underline","compactform")],["line-through",(0,t.__)("Line through","compactform")]],Xt={family:"",weight:"",transform:"",style:"",decoration:"",size:{size:"",unit:"px"},lineHeight:{size:"",unit:"em"},letterSpacing:{size:"",unit:"px"}},Zt=e=>!(!e||""===e.size||null==e.size),Qt=(e,t)=>!!(e.family||t.family||e.weight||t.weight||e.transform||t.transform||e.style||t.style||e.decoration||t.decoration||Zt(e.size)||Zt(t.size)||Zt(e.lineHeight)||Zt(t.lineHeight)||Zt(e.letterSpacing)||Zt(t.letterSpacing));function en({value:e,inherited:s,onChange:l,onGestureStart:c,onGestureEnd:r}){const i=e&&"object"==typeof e?{...Xt,...e}:{...Xt},o=s&&"object"==typeof s?{...Xt,...s}:{...Xt},d=e=>l({...i,...e}),f=e=>i[e]||o[e],p=(e,t)=>(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:e}),t]});return(0,n.jsxs)(a,{className:"fcf7b-typo",triggerClassName:"fcf7b-typo-trigger"+(Qt(i,o)?" is-set":""),popClassName:"fcf7b-typo-pop",title:(0,t.__)("Edit typography","compactform"),trigger:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"fcf7b-typo-aa",style:L[i.family]?.stack?{fontFamily:L[i.family].stack}:null,children:"Aa"}),(0,n.jsx)("i",{className:"ri-pencil-line"})]}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Typography","compactform")}),(0,n.jsx)("div",{className:"fcf7b-pop-tools",children:(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>l({...Xt}),children:(0,n.jsx)("i",{className:"ri-refresh-line"})})})]}),(0,n.jsx)(Ut,{ctrl:{label:(0,t.__)("Size","compactform"),units:["px","em","rem","%","custom"],ranges:{px:{min:0,max:100,step:1},em:{min:0,max:10,step:.1},rem:{min:0,max:10,step:.1},"%":{min:0,max:300,step:1}}},value:i.size,inherited:o.size,onChange:e=>d({size:e}),onGestureStart:c,onGestureEnd:r}),p((0,t.__)("Weight","compactform"),(0,n.jsx)(Ge,{value:f("weight"),options:qt.map(e=>({value:e,label:""===e?(0,t.__)("Default","compactform"):e})),onChange:e=>d({weight:e})})),p((0,t.__)("Transform","compactform"),(0,n.jsx)(Ge,{value:f("transform"),options:Jt.map(([e,t])=>({value:e,label:t})),onChange:e=>d({transform:e})})),p((0,t.__)("Style","compactform"),(0,n.jsx)(Ge,{value:f("style"),options:Yt.map(([e,t])=>({value:e,label:t})),onChange:e=>d({style:e})})),p((0,t.__)("Decoration","compactform"),(0,n.jsx)(Ge,{value:f("decoration"),options:Kt.map(([e,t])=>({value:e,label:t})),onChange:e=>d({decoration:e})})),(0,n.jsx)(Ut,{ctrl:{label:(0,t.__)("Line Height","compactform"),units:["em","px","%","custom"],ranges:{em:{min:0,max:5,step:.1},px:{min:0,max:100,step:1},"%":{min:0,max:300,step:1}}},value:i.lineHeight,inherited:o.lineHeight,onChange:e=>d({lineHeight:e}),onGestureStart:c,onGestureEnd:r}),(0,n.jsx)(Ut,{ctrl:{label:(0,t.__)("Letter Spacing","compactform"),units:["px","em","custom"],ranges:{px:{min:-5,max:20,step:.1},em:{min:-1,max:2,step:.01}}},value:i.letterSpacing,inherited:o.letterSpacing,onChange:e=>d({letterSpacing:e}),onGestureStart:c,onGestureEnd:r})]})}const tn={style:"",color:"",width:{desktop:{top:"",right:"",bottom:"",left:"",unit:"px",linked:!0}}};function nn({ctrl:e,value:a,onChange:s,device:l="desktop",onGestureStart:c,onGestureEnd:r}){const i=a&&"object"==typeof a?{...tn,...a}:{...tn},o=e=>s({...i,...e}),f=i.width&&"object"==typeof i.width&&!Array.isArray(i.width)?i.width:{},p=V(l).find(e=>void 0!==f[e]);return(0,n.jsxs)("div",{className:"fcf7b-prop fcf7b-border",children:[(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:e?.label}),(0,n.jsx)(Ge,{value:i.style,options:Object.keys(R).map(e=>({value:e,label:R[e]})),onChange:e=>o({style:e})})]}),i.style&&"none"!==i.style?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(ve,{ctrl:{label:(0,t.__)("Width","compactform"),responsive:!0},value:p?f[p]:void 0,onChange:e=>o({width:{...f,[l]:e}}),device:l}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:"Color"}),(0,n.jsx)(d,{value:i.color,onChange:e=>o({color:e}),onGestureStart:c,onGestureEnd:r})]})]}):null]})}const an={horizontal:"",vertical:"",blur:"",spread:"",color:"",inset:!1},sn=["horizontal","vertical","blur","spread"],ln=e=>{const t=Number(e);return""===e||null==e||isNaN(t)?0:t};function cn({value:e,onChange:s,onGestureStart:l,onGestureEnd:c}){const r=e&&"object"==typeof e?{...an,...e}:{...an},i=e=>s({...r,...e}),o=function(e){const t=sn.some(t=>""!==e[t]&&null!=e[t]&&!isNaN(Number(e[t])));return e.color||t?`${e.inset?"inset ":""}${ln(e.horizontal)}px ${ln(e.vertical)}px ${ln(e.blur)}px ${ln(e.spread)}px${e.color?" "+e.color:""}`:""}(r),f=(e,t,a,s)=>(0,n.jsx)(Ut,{ctrl:{label:e,units:["px"],min:a,max:s,step:1},value:{size:r[t]??"",unit:"px"},onChange:e=>i({[t]:e.size}),onGestureStart:l,onGestureEnd:c});return(0,n.jsxs)(a,{className:"fcf7b-bxsh",triggerClassName:"fcf7b-bxsh-trigger"+(o?" is-set":""),popClassName:"fcf7b-bxsh-pop",title:(0,t.__)("Edit box shadow","compactform"),trigger:(0,n.jsx)("i",{className:"ri-pencil-line"}),children:[(0,n.jsxs)("div",{className:"fcf7b-pop-head",children:[(0,n.jsx)("span",{children:(0,t.__)("Box Shadow","compactform")}),(0,n.jsx)("div",{className:"fcf7b-pop-tools",children:(0,n.jsx)("button",{type:"button",title:(0,t.__)("Reset","compactform"),onClick:()=>s({...an}),children:(0,n.jsx)("i",{className:"ri-refresh-line"})})})]}),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Color","compactform")}),(0,n.jsx)(d,{value:r.color,onChange:e=>i({color:e}),onGestureStart:l,onGestureEnd:c})]}),f((0,t.__)("Horizontal","compactform"),"horizontal",-100,100),f((0,t.__)("Vertical","compactform"),"vertical",-100,100),f((0,t.__)("Blur","compactform"),"blur",0,100),f((0,t.__)("Spread","compactform"),"spread",-100,100),(0,n.jsxs)("div",{className:"fcf7b-ctl-row",children:[(0,n.jsx)("span",{className:"fcf7b-ctl-rowlabel",children:(0,t.__)("Position","compactform")}),(0,n.jsx)(Ge,{value:r.inset?"inset":"outline",options:[{value:"outline",label:(0,t.__)("Outline","compactform")},{value:"inset",label:(0,t.__)("Inset","compactform")}],onChange:e=>i({inset:"inset"===e})})]})]})}const rn=({ctrl:e,value:t,update:a,device:s,beginGesture:l,endGesture:c})=>(0,n.jsx)(nn,{ctrl:e,value:t,device:s,onChange:t=>a(e.key,t),onGestureStart:l,onGestureEnd:c});rn.standalone=!0;const on=({ctrl:e,value:t,inherited:a,update:s,device:l})=>(0,n.jsx)(ve,{ctrl:e,value:t,inherited:a,device:l,onChange:t=>s(e.key,t)});on.standalone=!0;const dn=({ctrl:e,value:t,inherited:a,update:s,device:l,beginGesture:c,endGesture:r})=>(0,n.jsx)(Ut,{ctrl:e,value:t,inherited:a,device:l,onChange:t=>s(e.key,t),onGestureStart:c,onGestureEnd:r});dn.standalone=!0;const fn=({ctrl:e,value:t,update:a,field:s,allFields:l})=>(0,n.jsx)(Wt,{value:t,field:s,allFields:l,onChange:t=>a(e.key,t)});function pn(){const t=document.getElementById("fcf7-builder-root");if(!t)return;t.addEventListener("keydown",e=>{if("Enter"!==e.key)return;const t=e.target?.tagName;"TEXTAREA"===t||e.target?.isContentEditable||e.preventDefault()},!0),ne.doAction("fcf7b.registerFieldPreviews",le),ne.doAction("fcf7b.registerControls",bt),g.forEach(e=>{e.builderMarkup&&(le.getComponent(e.type)||le.get(e.type)||le.registerComponent(e.type,St))});const a=document.getElementById("fcf7-builder-schema-input");let s={version:1,fields:[]};if(a?.value)try{s=JSON.parse(a.value)}catch(e){}Array.isArray(s.fields)||(s.fields=Object.values(s.fields||{})),s.fields=s.fields.filter(e=>e&&"object"==typeof e&&!Array.isArray(e)&&e.type);const l=new Set(s.fields.filter(e=>!x[e.type]).map(e=>e.id));if(l.size){let e=!0;for(;e;)e=!1,s.fields.forEach(t=>{!l.has(t.id)&&t.parentId&&l.has(t.parentId)&&(l.add(t.id),e=!0)});s.fields=s.fields.filter(e=>!l.has(e.id))}const c=s.integrations&&s.integrations.googleSheet||{},r=s.integrations&&s.integrations.webhook||{};s.integrations={...s.integrations||{},googleSheet:{enabled:!!c.enabled,sheetId:c.sheetId||"",tabId:c.tabId||""},webhook:{enabled:!!r.enabled,url:r.url||"",method:r.method||"POST",format:r.format||"json",bodyMode:"mapped"===r.bodyMode?"mapped":"all",body:Array.isArray(r.body)?r.body:[],headers:Array.isArray(r.headers)?r.headers:[],meta:!!r.meta,timeout:void 0===r.timeout?10:r.timeout,blocking:!!r.blocking}};const i=s.configuration&&s.configuration.spamProtection||{},o=s.configuration&&s.configuration.defaultMail||{};s.configuration={...s.configuration||{},spamProtection:{...i,honeypotEnabled:void 0===i.honeypotEnabled||!!i.honeypotEnabled,minTimeEnabled:!!i.minTimeEnabled,minTimeSeconds:void 0===i.minTimeSeconds?3:i.minTimeSeconds,botMessage:i.botMessage||"",bannedEnabled:!!i.bannedEnabled,bannedWords:i.bannedWords||"",bannedMessage:i.bannedMessage||""},defaultMail:{template:o.template||"html-table",template2:o.template2||"html-table"}},e.createRoot?(0,e.createRoot)(t).render((0,n.jsx)(Ct,{initial:s})):(0,e.render)((0,n.jsx)(Ct,{initial:s}),t)}fn.standalone=!0,bt.registerComponent("text",gt),bt.registerComponent("number",gt),bt.registerComponent("time",gt),bt.registerComponent("date",gt),bt.registerComponent("textarea",function({ctrl:e,value:t,update:a}){const s=void 0!==t?t:e.default??"";return(0,n.jsx)("textarea",{rows:3,value:s,placeholder:e.placeholder||void 0,onChange:t=>a(e.key,t.target.value)})}),bt.registerComponent("html",function({ctrl:t,value:a,update:s}){const l=void 0!==a?a:t.default??"",c=(0,e.useRef)(null),r=(0,e.useRef)(null),i=(0,e.useRef)(null);return i.current=e=>s(t.key,e),(0,e.useEffect)(()=>{const e=window.FCF7CodeEditor?.settings;if(!e||!window.wp?.codeEditor||!c.current)return;const t=window.wp.codeEditor.initialize(c.current,e);r.current=t.codemirror,r.current.on("change",e=>i.current(e.getValue()));const n=requestAnimationFrame(()=>r.current?.refresh());return()=>{cancelAnimationFrame(n),r.current?.toTextArea(),r.current=null}},[]),(0,e.useEffect)(()=>{const e=r.current;e&&e.getValue()!==l&&e.setValue(l)},[l]),(0,n.jsx)("textarea",{ref:c,className:"fcf7b-code-input",rows:8,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",value:l,placeholder:t.placeholder||void 0,onChange:e=>s(t.key,e.target.value)})}),bt.registerComponent("select",function({ctrl:e,value:a,inherited:s,update:l,field:c,allFields:r}){const i=!(!e.multiSelect&&!e.multiple),o=!(!e.create&&!e.insert_option),d=void 0!==a?a:s??(i?[]:""),f=Array.isArray(d)?d.map(String):d?[String(d)]:[],p=e.options||{};let m;if(e.sourceFields){const t=e.sourceFieldsRows?function(e){const t=Array.isArray(e)?e:[],n=new Map(t.map(e=>[e&&e.id,e])),a=new Map;return t.forEach(e=>{if(!e||!e.name||!e.parentId)return;const t=n.get(e.parentId);t&&"repeater"===t.type&&a.set(Z(e.name),Z(t.name||""))}),a}(r):new Map,n=e.sourceFieldsRows?(Array.isArray(r)?r:[]).filter(e=>e&&e.name):Q(r);m=[...i?[]:[{value:"",label:e.emptyLabel||"— none —"}],...n.filter(e=>e.id!==c?.id).filter(t=>!e.sourceFieldsType||t.type===e.sourceFieldsType).map(e=>{const n=Z(e.name),a=t.get(n);return{value:n,label:a?`${e.label||e.type} (${n}) — ${a}`:`${e.label||e.type} (${n})`}})];const a=new Set;m=m.filter(e=>!a.has(e.value)&&(a.add(e.value),!0))}else e.get_option?(m=(Array.isArray(c?.[e.get_option])?c[e.get_option]:[]).map(e=>({value:String(e),label:String(e)})),i||(m=[{value:"",label:(0,t.__)("None","compactform")},...m])):m=Array.isArray(e.optionList)?e.optionList:Object.keys(p).map(e=>({value:e,label:p[e]}));if(!o)return(0,n.jsx)(Ge,{value:d,options:m,multiple:i,onChange:t=>l(e.key,t)});const u=`${e.key}__opts`,h=m.map(e=>String(e.value)),b=new Set(h),g=[...Array.isArray(c?.[u])?c[u].map(String):[]];f.forEach(e=>{b.has(e)||g.includes(e)||g.push(e)});const x=(e,t)=>[...h.filter(t=>e.has(t)),...t.filter(t=>e.has(t))],v=(t,n)=>{l(i?{[e.key]:x(t,n),[u]:n}:{[e.key]:[...t][0]??"",[u]:n})};return m=[...m,...g.map(e=>({value:e,label:e,custom:!0}))],(0,n.jsx)(Ge,{value:d,options:m,multiple:i,creatable:o,onChange:e=>{const t=new Set((Array.isArray(e)?e:e?[e]:[]).map(String));v(t,g)},onCreate:e=>{const t=String(e).trim();if(""===t||b.has(t))return;const n=g.includes(t)?g:[...g,t],a=new Set(f);a.add(t),v(a,n)},onRemove:e=>{const t=String(e),n=g.filter(e=>e!==t),a=new Set(f);a.delete(t),v(a,n)},onReorder:e=>{v(new Set(f),e.map(String))}})}),bt.registerComponent("choose",function({ctrl:e,value:t,inherited:a,update:s}){const l=e.options||{},c=Array.isArray(e.optionList)?e.optionList.map(e=>e.value):Object.keys(l),r=void 0!==t?t:a??"",i=!1!==e.toggle;return(0,n.jsx)("div",{className:"fcf7b-choose",role:"radiogroup","aria-label":e.label||"",children:c.map(t=>{const a=l[t],c=a&&"object"==typeof a,o=c?a.icon:null,d=c?a.title||t:String(a??t),f=String(r)===String(t);return(0,n.jsx)("button",{type:"button",className:"fcf7b-choose-btn"+(f?" active":""),title:d,"aria-label":d,"aria-pressed":f,onClick:()=>s(e.key,f&&i?"":t),children:o?(0,n.jsx)("i",{className:o}):d},t)})})}),bt.registerComponent("options",function({ctrl:e,value:a,update:s}){return(0,n.jsx)("textarea",{rows:4,className:"fcf7b-opts",value:(a||[]).join("\n"),placeholder:(0,t.__)("One option per line","compactform"),onChange:t=>s(e.key,t.target.value.split("\n"))})}),bt.registerComponent("date_list",function({ctrl:t,value:a,update:s}){const[l,c]=(0,e.useState)(""),r=a||[];return(0,n.jsxs)("div",{className:"fcf7b-date-list",children:[(0,n.jsxs)("div",{className:"fcf7b-date-list-add",children:[(0,n.jsx)("input",{type:"date",value:l,onChange:e=>c(e.target.value)}),(0,n.jsx)("button",{type:"button",onClick:()=>{l&&!r.includes(l)&&(s(t.key,[...r,l].sort()),c(""))},disabled:!l,children:"+"})]}),r.length>0&&(0,n.jsx)("div",{className:"fcf7b-date-list-chips",children:r.map(e=>(0,n.jsxs)("span",{className:"fcf7b-date-list-chip",children:[e,(0,n.jsx)("button",{type:"button",onClick:()=>(e=>{s(t.key,r.filter(t=>t!==e))})(e),children:"×"})]},e))})]})}),bt.registerComponent("time_ranges",function({ctrl:e,value:a,update:s}){const l=Array.isArray(a)?a:[],c=t=>s(e.key,t),r=(e,t,n)=>{c(l.map((a,s)=>s===e?{...a,[t]:n}:a))};return(0,n.jsxs)("div",{className:"fcf7b-steps-ctl",children:[l.map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-steps-ctl-row",children:[(0,n.jsx)("input",{type:"time",className:"fcf7b-steps-ctl-label",value:e.from||"",onChange:e=>r(a,"from",e.target.value)}),(0,n.jsx)("span",{children:"–"}),(0,n.jsx)("input",{type:"time",className:"fcf7b-steps-ctl-label",value:e.to||"",onChange:e=>r(a,"to",e.target.value)}),(0,n.jsx)("button",{type:"button",className:"fcf7b-steps-ctl-remove",title:(0,t.__)("Remove range","compactform"),onClick:()=>(e=>c(l.filter((t,n)=>n!==e)))(a),children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},a)),(0,n.jsxs)("button",{type:"button",className:"fcf7b-steps-ctl-add",onClick:()=>c([...l,{from:"12:00",to:"13:00"}]),children:[(0,n.jsx)("i",{className:"ri-add-line"})," Add Blocked Range"]})]})}),bt.registerComponent("price_map",function({ctrl:e,value:t,update:a,field:s}){const l=Array.isArray(s?.options)?s.options:[],c=Array.isArray(t)?t:[],r=e=>{const t=c.find(t=>t.option===e);return t?t.price:""};return l.length?(0,n.jsx)("div",{className:"fcf7b-price-map",children:l.map(t=>(0,n.jsxs)("div",{className:"fcf7b-price-map-row",children:[(0,n.jsx)("span",{className:"fcf7b-price-map-label",children:t}),(0,n.jsx)("input",{type:"number",min:"0",step:"0.01",placeholder:"0.00",value:r(t),onChange:n=>((t,n)=>{a(e.key,l.map(e=>({option:e,price:e===t?n:r(e)})))})(t,n.target.value)})]},t))}):(0,n.jsx)("p",{className:"fcf7b-price-map-empty",children:"Add options above first."})}),bt.registerComponent("switcher",Rt),bt.registerComponent("heading",Bt),bt.registerComponent("steps",function({ctrl:a,value:s,update:l}){
    1313/* translators: %d: step number. */
    14 const r=e=>(0,t.sprintf)((0,t.__)("Step %d","compactform"),e),c=Array.isArray(s)&&s.length?s:[{id:K(),label:r(1)}],[i,o]=(0,e.useState)(null),[d,f]=(0,e.useState)(-1),p=e=>l(a.key,e),m=e=>{i&&((e,t)=>{const n=c.findIndex(t=>t.id===e);if(-1===n||n===t)return;const a=[...c],[s]=a.splice(n,1);a.splice(t>n?t-1:t,0,s),p(a)})(i,e),o(null),f(-1)};return(0,n.jsxs)("div",{className:"fcf7b-steps-ctl",children:[c.map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-steps-ctl-row"+(d===a?" is-drop-before":""),onDragOver:e=>{e.preventDefault(),f(a)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),m(a)},children:[(0,n.jsx)("span",{className:"fcf7b-steps-ctl-handle",title:(0,t.__)("Drag to reorder","compactform"),draggable:!0,onDragStart:t=>{o(e.id),t.stopPropagation()},onDragEnd:()=>{o(null),f(-1)},children:(0,n.jsx)("i",{className:"ri-draggable"})}),(0,n.jsx)("span",{className:"fcf7b-steps-ctl-index",children:a+1}),(0,n.jsx)("input",{type:"text",className:"fcf7b-steps-ctl-label",value:e.label,placeholder:r(a+1),onChange:t=>{return n=e.id,a=t.target.value,p(c.map(e=>e.id===n?{...e,label:a}:e));var n,a}}),(0,n.jsx)("button",{type:"button",className:"fcf7b-steps-ctl-remove",title:(0,t.__)("Remove step","compactform"),disabled:c.length<=1,onClick:()=>{return t=e.id,void(c.length<=1||p(c.filter(e=>e.id!==t)));var t},children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},e.id)),(0,n.jsx)("div",{className:"fcf7b-steps-ctl-drop-end"+(d===c.length?" is-drop-before":""),onDragOver:e=>{e.preventDefault(),f(c.length)},onDrop:e=>{e.preventDefault(),m(c.length)}}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-steps-ctl-add",onClick:()=>p([...c,{id:K(),label:r(c.length+1)}]),children:[(0,n.jsx)("i",{className:"ri-add-line"})," Add Step"]})]})}),ot.registerComponent("color",({ctrl:e,field:t,value:a,update:s,beginGesture:l,endGesture:r})=>(0,n.jsx)(d,{ctrl:e,field:t,value:a,onChange:t=>s(e.key,t),onGestureStart:l,onGestureEnd:r})),ot.registerComponent("typography",({ctrl:e,value:t,inherited:a,update:s,beginGesture:l,endGesture:r})=>(0,n.jsx)(qt,{value:t,inherited:a,onChange:t=>s(e.key,t),onGestureStart:l,onGestureEnd:r})),ot.registerComponent("border",en),ot.registerComponent("box_shadow",({ctrl:e,value:t,update:a,beginGesture:s,endGesture:l})=>(0,n.jsx)(Qt,{value:t,onChange:t=>a(e.key,t),onGestureStart:s,onGestureEnd:l})),ot.registerComponent("icon",({ctrl:e,value:t,update:a})=>(0,n.jsx)(Ot,{value:t,onChange:t=>a(e.key,t)})),ot.registerComponent("dimensions",tn),ot.registerComponent("slider",nn),ot.registerComponent("conditions",an),window.FCF7Builder=window.FCF7Builder||{},window.FCF7Builder.hooks=ne,window.FCF7Builder.drag=j,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",sn):sn()})();
     14const c=e=>(0,t.sprintf)((0,t.__)("Step %d","compactform"),e),r=Array.isArray(s)&&s.length?s:[{id:K(),label:c(1)}],[i,o]=(0,e.useState)(null),[d,f]=(0,e.useState)(-1),p=e=>l(a.key,e),m=e=>{i&&((e,t)=>{const n=r.findIndex(t=>t.id===e);if(-1===n||n===t)return;const a=[...r],[s]=a.splice(n,1);a.splice(t>n?t-1:t,0,s),p(a)})(i,e),o(null),f(-1)};return(0,n.jsxs)("div",{className:"fcf7b-steps-ctl",children:[r.map((e,a)=>(0,n.jsxs)("div",{className:"fcf7b-steps-ctl-row"+(d===a?" is-drop-before":""),onDragOver:e=>{e.preventDefault(),f(a)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),m(a)},children:[(0,n.jsx)("span",{className:"fcf7b-steps-ctl-handle",title:(0,t.__)("Drag to reorder","compactform"),draggable:!0,onDragStart:t=>{o(e.id),t.stopPropagation()},onDragEnd:()=>{o(null),f(-1)},children:(0,n.jsx)("i",{className:"ri-draggable"})}),(0,n.jsx)("span",{className:"fcf7b-steps-ctl-index",children:a+1}),(0,n.jsx)("input",{type:"text",className:"fcf7b-steps-ctl-label",value:e.label,placeholder:c(a+1),onChange:t=>{return n=e.id,a=t.target.value,p(r.map(e=>e.id===n?{...e,label:a}:e));var n,a}}),(0,n.jsx)("button",{type:"button",className:"fcf7b-steps-ctl-remove",title:(0,t.__)("Remove step","compactform"),disabled:r.length<=1,onClick:()=>{return t=e.id,void(r.length<=1||p(r.filter(e=>e.id!==t)));var t},children:(0,n.jsx)("i",{className:"ri-delete-bin-line"})})]},e.id)),(0,n.jsx)("div",{className:"fcf7b-steps-ctl-drop-end"+(d===r.length?" is-drop-before":""),onDragOver:e=>{e.preventDefault(),f(r.length)},onDrop:e=>{e.preventDefault(),m(r.length)}}),(0,n.jsxs)("button",{type:"button",className:"fcf7b-steps-ctl-add",onClick:()=>p([...r,{id:K(),label:c(r.length+1)}]),children:[(0,n.jsx)("i",{className:"ri-add-line"})," Add Step"]})]})}),bt.registerComponent("color",({ctrl:e,field:t,value:a,update:s,beginGesture:l,endGesture:c})=>(0,n.jsx)(d,{ctrl:e,field:t,value:a,onChange:t=>s(e.key,t),onGestureStart:l,onGestureEnd:c})),bt.registerComponent("typography",({ctrl:e,value:t,inherited:a,update:s,beginGesture:l,endGesture:c})=>(0,n.jsx)(en,{value:t,inherited:a,onChange:t=>s(e.key,t),onGestureStart:l,onGestureEnd:c})),bt.registerComponent("border",rn),bt.registerComponent("box_shadow",({ctrl:e,value:t,update:a,beginGesture:s,endGesture:l})=>(0,n.jsx)(cn,{value:t,onChange:t=>a(e.key,t),onGestureStart:s,onGestureEnd:l})),bt.registerComponent("icon",({ctrl:e,value:t,update:a})=>(0,n.jsx)(zt,{value:t,onChange:t=>a(e.key,t)})),bt.registerComponent("dimensions",on),bt.registerComponent("slider",dn),bt.registerComponent("conditions",fn),window.FCF7Builder=window.FCF7Builder||{},window.FCF7Builder.hooks=ne,window.FCF7Builder.drag=j,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",pn):pn()})();
  • compactform/trunk/assets/js/custom-action.min.js

    r3719086 r3721164  
    1 function _slicedToArray(t,e){return _arrayWithHoles(t)||_iterableToArrayLimit(t,e)||_unsupportedIterableToArray(t,e)||_nonIterableRest()}function _nonIterableRest(){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 _iterableToArrayLimit(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,a,o,i,l=[],u=!0,c=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=o.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(t){c=!0,a=t}finally{try{if(!u&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,e){var r;if(t)return"string"==typeof t?_arrayLikeToArray(t,e):"Map"===(r="Object"===(r={}.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:r)||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(t,e):void 0}function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}(()=>{function l(r,t){var e=["action","method","enctype"].map(function(t){return[t,r.getAttribute(t)]}),n=_toConsumableArray(r.querySelectorAll('[name^="_wpcf7"], .fcf7b-cond-hidden input, .fcf7b-cond-hidden select, .fcf7b-cond-hidden textarea')).filter(function(t){return!t.disabled});n.forEach(function(t){t.disabled=!0}),r.setAttribute("action",t),r.setAttribute("method","post"),r.setAttribute("enctype","multipart/form-data"),HTMLFormElement.prototype.submit.call(r),e.forEach(function(t){var t=_slicedToArray(t,2),e=t[0],t=t[1];null===t?r.removeAttribute(e):r.setAttribute(e,t)}),n.forEach(function(t){t.disabled=!1})}var u=window.FCF7CustomAction||{},n=!1;document.addEventListener("submit",function(t){var o,e,r,i=t.target;i instanceof HTMLFormElement&&(e=t.submitter?t.submitter.closest("[data-fcf7-action]"):i.querySelector("[data-fcf7-action]"))&&(t.preventDefault(),t.stopPropagation(),n||(o=e.getAttribute("data-fcf7-action"),"1"!==e.getAttribute("data-fcf7-validate")?l(i,o):(n=!0,i.setAttribute("aria-busy","true"),(t=i).querySelectorAll(".wpcf7-not-valid-tip").forEach(function(t){return t.remove()}),t.querySelectorAll(".wpcf7-not-valid").forEach(function(t){t.classList.remove("wpcf7-not-valid"),t.removeAttribute("aria-invalid")}),((r=(r=(t=e=i).querySelector('input[name="_wpcf7"]'))?r.value:null!=(t=null==(r=t.closest("[data-wpcf7-id]"))?void 0:r.getAttribute("data-wpcf7-id"))?t:"")&&u.ajaxUrl&&u.nonce?((t=new FormData(e)).set("action","fcf7_validate_step"),t.set("nonce",u.nonce),t.set("form_id",r),t.delete("step_id"),fetch(u.ajaxUrl,{method:"POST",body:t,credentials:"same-origin"}).then(function(t){return t.json()}).then(function(t){return(null==t||!t.success)&&null!=(t=null==t||null==(t=t.data)?void 0:t.invalid_fields)?t:[]}).catch(function(){return[]})):Promise.resolve([])).then(function(t){var n,e,r,a;t.length?(n=i,a=null,(t=t).forEach(function(t){var e,r=t.field,t=t.message,r=n.querySelector('[name="'.concat(r,'"], [name="').concat(r,'[]"]'));r&&(a=null!=a?a:r,r.classList.add("wpcf7-not-valid"),r.setAttribute("aria-invalid","true"),e=null!=(e=r.closest(".wpcf7-form-control-wrap"))?e:r.parentElement,(r=document.createElement("span")).className="wpcf7-not-valid-tip",r.setAttribute("role","alert"),r.textContent=null!=t?t:"",null!=e)&&e.appendChild(r)}),(t=n.querySelector(".wpcf7-response-output"))&&(t.textContent=null!=(t=u.invalidMessage)?t:""),t="invalid",r=(e=n).getAttribute("data-status"),e.setAttribute("data-status",t),e.classList.add(t),r&&r!==t&&e.classList.remove(r),null!=(t=a)&&t.focus()):l(i,o)}).finally(function(){n=!1,i.removeAttribute("aria-busy")}))))},!0)})();
     1function _slicedToArray(t,e){return _arrayWithHoles(t)||_iterableToArrayLimit(t,e)||_unsupportedIterableToArray(t,e)||_nonIterableRest()}function _nonIterableRest(){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 _iterableToArrayLimit(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,a,o,i,l=[],u=!0,c=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=o.call(r)).done)&&(l.push(n.value),l.length!==e);u=!0);}catch(t){c=!0,a=t}finally{try{if(!u&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,e){var r;if(t)return"string"==typeof t?_arrayLikeToArray(t,e):"Map"===(r="Object"===(r={}.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:r)||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(t,e):void 0}function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}(()=>{function l(r,t){var e=["action","method","enctype"].map(function(t){return[t,r.getAttribute(t)]}),n=_toConsumableArray(r.querySelectorAll('[name^="_wpcf7"], .fcf7b-cond-hidden input, .fcf7b-cond-hidden select, .fcf7b-cond-hidden textarea')).filter(function(t){return!t.disabled}),t=(n.forEach(function(t){t.disabled=!0}),r.setAttribute("action",t),r.setAttribute("method","post"),_toConsumableArray(r.querySelectorAll('input[type="file"]')).some(function(t){return!t.disabled&&t.files&&t.files.length}));r.setAttribute("enctype",t?"multipart/form-data":"application/x-www-form-urlencoded"),HTMLFormElement.prototype.submit.call(r),e.forEach(function(t){var t=_slicedToArray(t,2),e=t[0],t=t[1];null===t?r.removeAttribute(e):r.setAttribute(e,t)}),n.forEach(function(t){t.disabled=!1})}var u=window.FCF7CustomAction||{},n=!1;document.addEventListener("submit",function(t){var o,e,r,i=t.target;i instanceof HTMLFormElement&&(e=t.submitter?t.submitter.closest("[data-fcf7-action]"):i.querySelector("[data-fcf7-action]"))&&(t.preventDefault(),t.stopPropagation(),n||(o=e.getAttribute("data-fcf7-action"),"1"!==e.getAttribute("data-fcf7-validate")?l(i,o):(n=!0,i.setAttribute("aria-busy","true"),(t=i).querySelectorAll(".wpcf7-not-valid-tip").forEach(function(t){return t.remove()}),t.querySelectorAll(".wpcf7-not-valid").forEach(function(t){t.classList.remove("wpcf7-not-valid"),t.removeAttribute("aria-invalid")}),((r=(r=(t=e=i).querySelector('input[name="_wpcf7"]'))?r.value:null!=(t=null==(r=t.closest("[data-wpcf7-id]"))?void 0:r.getAttribute("data-wpcf7-id"))?t:"")&&u.ajaxUrl&&u.nonce?((t=new FormData(e)).set("action","fcf7_validate_step"),t.set("nonce",u.nonce),t.set("form_id",r),t.delete("step_id"),fetch(u.ajaxUrl,{method:"POST",body:t,credentials:"same-origin"}).then(function(t){return t.json()}).then(function(t){return(null==t||!t.success)&&null!=(t=null==t||null==(t=t.data)?void 0:t.invalid_fields)?t:[]}).catch(function(){return[]})):Promise.resolve([])).then(function(t){var n,e,r,a;t.length?(n=i,a=null,(t=t).forEach(function(t){var e,r=t.field,t=t.message,r=n.querySelector('[name="'.concat(r,'"], [name="').concat(r,'[]"]'));r&&(a=null!=a?a:r,r.classList.add("wpcf7-not-valid"),r.setAttribute("aria-invalid","true"),e=null!=(e=r.closest(".wpcf7-form-control-wrap"))?e:r.parentElement,(r=document.createElement("span")).className="wpcf7-not-valid-tip",r.setAttribute("role","alert"),r.textContent=null!=t?t:"",null!=e)&&e.appendChild(r)}),(t=n.querySelector(".wpcf7-response-output"))&&(t.textContent=null!=(t=u.invalidMessage)?t:""),t="invalid",r=(e=n).getAttribute("data-status"),e.setAttribute("data-status",t),e.classList.add(t),r&&r!==t&&e.classList.remove(r),null!=(t=a)&&t.focus()):l(i,o)}).finally(function(){n=!1,i.removeAttribute("aria-busy")}))))},!0)})();
  • compactform/trunk/compactform.php

    r3719086 r3721164  
    44 * Description: Drag-and-drop visual form builder for Contact Form 7 — add fields, layouts, and conditional logic without touching shortcode syntax.
    55 * Plugin URI: https://rstheme.com/compactform
    6  * Version: 1.0.0
     6 * Version: 1.1.0
    77 * Author: RSTheme
    88 * Author URI: https://rstheme.com/
    … …  
    2323        private static ?self $instance = null;
    2424
    25         public const VERSION = '1.0.0';
     25        public const VERSION = '1.1.0';
    2626
    2727        public const MINIMUM_PHP_VERSION = '7.4';
  • compactform/trunk/includes/builder/abstracts/abstract-base-field.php

    r3719086 r3721164  
    5252    {
    5353        return true;
     54    }
     55
     56    /**
     57     * Does Form_Compiler wrap this field's output in a `.fcf7b-field-wrap` div?
     58     *
     59     * False only for a field with nothing to lay out on the front end (Hidden),
     60     * where the wrapper would be an empty box holding a slot and a gap.
     61     */
     62    public function has_wrapper(): bool
     63    {
     64        return true;
     65    }
     66
     67    /**
     68     * Extra attributes for this field's `.fcf7b-field-wrap` div, as name => value.
     69     *
     70     * How a field hands front-end behaviour settings to its script (Submit's
     71     * custom action, for one). Names must be `data-*`; values are escaped by
     72     * Form_Compiler. Ignored for a field that has no wrapper.
     73     *
     74     * @param array $data This instance's schema.
     75     * @return array<string,string>
     76     */
     77    public function wrapper_attrs(array $data): array
     78    {
     79        return [];
    5480    }
    5581
  • compactform/trunk/includes/builder/abstracts/abstract-extension-field.php

    r3719086 r3721164  
    280280        }
    281281
     282        // Options must precede every quoted value or CF7 can't parse the tag.
     283        $markup .= Field_Helpers::att_options($data);
     284
    282285        foreach ($this->tag_values($data) as $value) {
    283286            $value = trim((string) $value);
    … …  
    287290        }
    288291
    289         $markup .= Field_Helpers::atts($data, true);
     292        $markup .= Field_Helpers::att_value($data);
    290293        $markup .= ']';
    291294
  • compactform/trunk/includes/builder/class-builder.php

    r3719086 r3721164  
    5151                // helpers and Form_Compiler, all lazily via the autoloader above).
    5252                Fields_Manager::instance();
     53
     54                Templates::instance();
    5355
    5456                add_action('wp_ajax_fcf7_builder_render', [ $this, 'ajax_render' ]);
  • compactform/trunk/includes/builder/class-conditions.php

    r3719086 r3721164  
    88
    99        private static function cf7_name( $raw ): string {
    10                 $n = strtolower( (string) $raw );
    11                 $n = preg_replace( '/[^a-z0-9_\-]/', '-', $n );
     10                $n = (string) $raw;
     11                $n = preg_replace( '/[^A-Za-z0-9_\-]/', '-', $n );
    1212                $n = trim( $n, '-' );
    1313                return '' !== $n ? $n : 'field';
  • compactform/trunk/includes/builder/class-field-helpers.php

    r3719086 r3721164  
    88
    99        public static function name( array $d ): string {
    10                 $name = strtolower( (string) ( $d['name'] ?? '' ) );
    11                 $name = preg_replace( '/[^a-z0-9_\-]/', '-', $name );
     10                $name = (string) ( $d['name'] ?? '' );
     11                $name = preg_replace( '/[^A-Za-z0-9_\-]/', '-', $name );
    1212                $name = trim( $name, '-' );
    1313                return $name ? $name : 'field';
    … …  
    3434        }
    3535
    36         /** placeholder / default value + class:/id: attributes for a CF7 tag. */
     36        /**
     37         * placeholder / default value + class:/id: attributes for a CF7 tag.
     38         *
     39         * CF7 requires every option (bare words and name:value pairs) to come
     40         * before any quoted value, so options are emitted first.
     41         */
    3742        public static function atts( array $d, bool $allow_value ): string {
     43                return self::att_options( $d, $allow_value ) . ( $allow_value ? self::att_value( $d ) : '' );
     44        }
     45
     46        /** Option part of atts(): `placeholder` flag, class:, id:. */
     47        public static function att_options( array $d, bool $allow_value = true ): string {
    3848                $s = '';
    3949
    40                 if ( $allow_value ) {
    41                         $ph = trim( (string) ( $d['placeholder'] ?? '' ) );
    42                         $dv = trim( (string) ( $d['defaultValue'] ?? '' ) );
    43                         if ( '' !== $ph ) {
    44                                 $s .= ' placeholder "' . self::q( $ph ) . '"';
    45                         } elseif ( '' !== $dv ) {
    46                                 $s .= ' "' . self::q( $dv ) . '"';
    47                         }
     50                if ( $allow_value && '' !== trim( (string) ( $d['placeholder'] ?? '' ) ) ) {
     51                        $s .= ' placeholder';
    4852                }
    4953
    … …  
    6569
    6670                return $s;
     71        }
     72
     73        /** Quoted value part of atts(): placeholder text, else default value. */
     74        public static function att_value( array $d ): string {
     75                $ph = trim( (string) ( $d['placeholder'] ?? '' ) );
     76                $dv = trim( (string) ( $d['defaultValue'] ?? '' ) );
     77                if ( '' !== $ph ) {
     78                        return ' "' . self::q( $ph ) . '"';
     79                }
     80                if ( '' !== $dv ) {
     81                        return ' "' . self::q( $dv ) . '"';
     82                }
     83                return '';
    6784        }
    6885
  • compactform/trunk/includes/builder/class-fields-manager.php

    r3719086 r3721164  
    3838                $this->register_if_active( 'quiz', Fields\Quiz_Field::class );
    3939                $this->register_if_active( 'file', Fields\File_Field::class );
     40                $this->register_if_active( 'hidden', Fields\Hidden_Field::class );
    4041                $this->register_if_active( 'submit', Fields\Submit_Field::class );
    4142
  • compactform/trunk/includes/builder/class-form-compiler.php

    r3719086 r3721164  
    3232                }
    3333
    34                 return self::field_wrap( $data, $field->compile( $data ) );
     34                $inner = $field->compile( $data );
     35
     36                return $field->has_wrapper() ? self::field_wrap( $data, $inner, $field->wrapper_attrs( $data ) ) : $inner;
    3537        }
    3638
    3739        /** The `.fcf7b-field-wrap` div every field gets, wherever it sits. */
    38         private static function field_wrap( array $data, string $inner ): string {
     40        private static function field_wrap( array $data, string $inner, array $attrs = [] ): string {
    3941                $cond = '';
    4042                if ( ! empty( $data['conditions'] ) && is_array( $data['conditions'] ) && ! empty( $data['conditions']['enabled'] ) ) {
    4143                        $cond = ' data-fcf7-cond="' . esc_attr( wp_json_encode( $data['conditions'] ) ) . '"';
     44                }
     45
     46                foreach ( $attrs as $name => $value ) {
     47                        $name = (string) $name;
     48                        if ( 0 === strpos( $name, 'data-' ) && preg_match( '/^[a-z0-9-]+$/', $name ) ) {
     49                                $cond .= ' ' . $name . '="' . esc_attr( (string) $value ) . '"';
     50                        }
    4251                }
    4352
  • compactform/trunk/includes/builder/controls/class-conditions-control.php

    r3719086 r3721164  
    2929                // Normalise the controlling field name the same way a CF7 tag name is
    3030                // compiled, so it matches the posted-data key / input name attribute.
    31                 $field         = strtolower( (string) ( $value['field'] ?? '' ) );
    32                 $field         = preg_replace( '/[^a-z0-9_\-]/', '-', $field );
     31                $field         = (string) ( $value['field'] ?? '' );
     32                $field         = preg_replace( '/[^A-Za-z0-9_\-]/', '-', $field );
    3333                $out['field']  = trim( $field, '-' );
    3434
  • compactform/trunk/includes/builder/controls/class-text-control.php

    r3719086 r3721164  
    2121
    2222                if ( ! empty( $args['slug'] ) && '' !== $value ) {
    23                         $value = trim( preg_replace( '/[^a-z0-9_\-]/', '-', strtolower( $value ) ), '-' );
     23                        $value = trim( preg_replace( '/[^A-Za-z0-9_\-]/', '-', $value ), '-' );
    2424                }
    2525
  • compactform/trunk/includes/builder/fields/class-container-field.php

    r3719086 r3721164  
    192192                                'selector' => '{{WRAPPER}} > .fcf7-container',
    193193                        ] );
     194                        $this->add_control( 'cssClass', [
     195                                'type'  => Controls_Manager::TEXT,
     196                                'label' => __( 'CSS Class', 'compactform' ),
     197                        ] );
    194198                $this->end_section();
    195199        }
    … …  
    216220                $children = array_filter( $children );
    217221
    218                 return "[fcf7_container]\n" . implode( "\n", $children ) . "\n[/fcf7_container]";
     222                $classes = '';
     223                foreach ( preg_split( '/\s+/', trim( (string) ( $data['cssClass'] ?? '' ) ) ) as $c ) {
     224                        $c = preg_replace( '/[^A-Za-z0-9_\-]/', '', $c );
     225                        if ( $c ) {
     226                                $classes .= ' class:' . $c;
     227                        }
     228                }
     229
     230                return "[fcf7_container{$classes}]\n" . implode( "\n", $children ) . "\n[/fcf7_container]";
    219231        }
    220232}
  • compactform/trunk/includes/builder/fields/class-country-dropdown-field.php

    r3719086 r3721164  
    156156                        ?>
    157157                        <span class="<?php echo esc_attr( $wrap_class ); ?>" data-name="<?php echo esc_attr( $name ); ?>">
    158                                 <span class="fcf7-country-dynamic" data-name="<?php echo esc_attr( $name ); ?>"<?php echo wp_kses( $data_attr, array() ); ?>>
     158                                <span class="fcf7-country-dynamic" data-name="<?php echo esc_attr( $name ); ?>"<?php echo $data_attr; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- built from already-escaped fragments above; re-escaping breaks the attribute markup. ?>>
    159159                                        <input type="text" class="fcf7-cd-country-flag" />
    160160                                        <select class="fcf7-cd-state" disabled></select>
    … …  
    162162                                        <input type="hidden" name="<?php echo esc_attr( $name ); ?>" class="fcf7-cd-value" value="" />
    163163                                </span>
    164                                 <span class="wpcf7-not-valid-tip-wrap"><?php echo wp_kses( $validation_error, array( 'span' => array( 'class' => true, 'aria-hidden' => true ) ) ); ?></span>
     164                                <span class="wpcf7-not-valid-tip-wrap"><?php echo $validation_error; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_get_validation_error() already returns escaped HTML markup; re-escaping breaks the output. ?></span>
    165165                        </span>
    166166                        <?php
    … …  
    195195                        ?>
    196196                        <span class="<?php echo esc_attr( $wrap_class ); ?>" data-name="<?php echo esc_attr( $name ); ?>">
    197                                 <input <?php echo wp_kses( wpcf7_format_atts( $atts ), array() ); ?> />
    198                                 <span class="wpcf7-not-valid-tip-wrap"><?php echo wp_kses( $validation_error, array( 'span' => array( 'class' => true, 'aria-hidden' => true ) ) ); ?></span>
     197                                <input <?php echo wpcf7_format_atts( $atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?> />
     198                                <span class="wpcf7-not-valid-tip-wrap"><?php echo $validation_error; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_get_validation_error() already returns escaped HTML markup; re-escaping breaks the output. ?></span>
    199199                        </span>
    200200                        <?php
  • compactform/trunk/includes/builder/fields/class-range-slider-field.php

    r3719086 r3721164  
    718718                ?>
    719719                <span class="wpcf7-form-control-wrap <?php echo esc_attr( $tag->name ); ?>" data-name="<?php echo esc_attr( $tag->name ); ?>">
    720                         <span <?php echo wp_kses( wpcf7_format_atts( $atts ), array() ); ?>>
     720                        <span <?php echo wpcf7_format_atts( $atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?>>
    721721                                <?php if ( 'on' === $s['show_value'] && $readout_before ) : ?>
    722722                                        <?php $this->readout( $s, $from, $to ); ?>
    … …  
    769769                                <?php endif; ?>
    770770                        </span>
    771                         <?php echo wp_kses( $validation_error, array( 'span' => array( 'class' => true, 'aria-hidden' => true ) ) ); ?>
     771                        <?php echo $validation_error; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_get_validation_error() already returns escaped HTML markup; re-escaping breaks the output. ?>
    772772                </span>
    773773                <?php
  • compactform/trunk/includes/builder/fields/class-signature-field.php

    r3719086 r3721164  
    488488                ?>
    489489                <span class="wpcf7-form-control-wrap <?php echo esc_attr( $tag->name ); ?>" data-name="<?php echo esc_attr( $tag->name ); ?>">
    490                         <span <?php echo wp_kses( wpcf7_format_atts( $wrap_atts ), array() ); ?>>
     490                        <span <?php echo wpcf7_format_atts( $wrap_atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?>>
    491491                                <span class="fcf7-signature-pad" data-field="<?php echo esc_attr( $tag->name ); ?>" data-bg-color="<?php echo esc_attr( $bg_color ); ?>" data-pen-color="<?php echo esc_attr( $pen_color ); ?>">
    492492                                        <canvas></canvas>
    … …  
    495495                                        <button type="button" class="fcf7-signature-clear"><?php echo esc_html( $clear_text ); ?></button>
    496496                                </span>
    497                                 <input hidden <?php echo wp_kses( wpcf7_format_atts( $file_atts ), array() ); ?> />
     497                                <input hidden <?php echo wpcf7_format_atts( $file_atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?> />
    498498                        </span>
    499                         <?php echo wp_kses( $validation_error, array( 'span' => array( 'class' => true, 'aria-hidden' => true ) ) ); ?>
     499                        <?php echo $validation_error; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_get_validation_error() already returns escaped HTML markup; re-escaping breaks the output. ?>
    500500                </span>
    501501                <?php
  • compactform/trunk/includes/builder/fields/class-spam-protection-field.php

    r3719086 r3721164  
    288288                ?>
    289289                <span class="wpcf7-form-control-wrap <?php echo esc_attr( $tag->name ); ?>" data-name="<?php echo esc_attr( $tag->name ); ?>">
    290                         <span <?php echo wp_kses( wpcf7_format_atts( $wrap_atts ), array() ); ?>>
     290                        <span <?php echo wpcf7_format_atts( $wrap_atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?>>
    291291                                <span class="fcf7-sp-challenge">
    292292                                        <?php if ( 'canvas' === $method ) : ?>
    … …  
    306306                                </span>
    307307
    308                                 <input <?php echo wp_kses( wpcf7_format_atts( $input_atts ), array() ); ?> />
     308                                <input <?php echo wpcf7_format_atts( $input_atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?> />
    309309                                <input type="hidden" name="<?php echo esc_attr( $tag->name ); ?>_token" class="fcf7-sp-token" value="<?php echo esc_attr( $token ); ?>" />
    310310                        </span>
    311                         <?php echo wp_kses( $validation_error, array( 'span' => array( 'class' => true, 'aria-hidden' => true ) ) ); ?>
     311                        <?php echo $validation_error; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_get_validation_error() already returns escaped HTML markup; re-escaping breaks the output. ?>
    312312                </span>
    313313                <?php
  • compactform/trunk/includes/builder/fields/class-star-rating-field.php

    r3719086 r3721164  
    7878
    7979                <span data-name="<?php echo esc_attr( $tag->name ); ?>" class="wpcf7-form-control-wrap <?php echo esc_attr( $tag->name ); ?>">
    80                         <span <?php echo wp_kses( $atts, array() ); ?>>
     80                        <span <?php echo $atts; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_format_atts() already escapes attribute values; re-escaping breaks the output. ?>>
    8181                                <label>
    8282                                        <input type="text" class="fcf7-rating-input" name="<?php echo esc_attr( $tag->name ); ?>" value="<?php echo esc_attr( $selected ); ?>"/>
    … …  
    9191                        </span>
    9292                </span>
    93                 <span><?php echo wp_kses( $validation_error, array( 'span' => array( 'class' => true, 'aria-hidden' => true ) ) ); ?></span>
     93                <span><?php echo $validation_error; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wpcf7_get_validation_error() already returns escaped HTML markup; re-escaping breaks the output. ?></span>
    9494                <?php
    9595
  • compactform/trunk/includes/builder/fields/class-submit-field.php

    r3719086 r3721164  
    194194        $this->end_section();
    195195
     196        $this->start_section('custom_action', [
     197            'label' => __('Custom Action', 'compactform'),
     198            'tab'   => Controls_Manager::TAB_ADVANCED,
     199        ]);
     200        $this->add_control('action_url', [
     201            'type'        => Controls_Manager::TEXT,
     202            'label'       => __('Action URL', 'compactform'),
     203            'placeholder' => 'https://example.com/endpoint',
     204            'description' => __('The form will be submitted to this URL instead of the default.', 'compactform'),
     205        ]);
     206        $this->add_control('validate_before_submit', [
     207            'type'        => Controls_Manager::SWITCHER,
     208            'label'       => __('Validate Before Submit', 'compactform'),
     209            'default'     => true,
     210            'description' => __('Check the form for errors before it is submitted.', 'compactform'),
     211        ]);
     212        $this->end_section();
     213
    196214        $this->register_conditional_controls();
    197215        $this->register_conditional_redirect_controls();
    198216    }
    199217
     218    /**
     219     * Custom Action: hand the URL (and whether to validate first) to
     220     * assets/js/custom-action.min.js, which submits the form there instead of
     221     * through CF7. Nothing is emitted without a usable URL, so an empty control
     222     * leaves the default flow untouched.
     223     */
     224    public function wrapper_attrs(array $data): array
     225    {
     226        $url = esc_url_raw(trim((string) ($data['action_url'] ?? '')), [ 'http', 'https' ]);
     227        if ('' === $url) {
     228            return [];
     229        }
     230
     231        // A bracket in the URL would be read by CF7 as the start of a form tag.
     232        $url = str_replace([ '[', ']' ], [ '%5B', '%5D' ], $url);
     233
     234        return [
     235            'data-fcf7-action'   => $url,
     236            'data-fcf7-validate' => ($data['validate_before_submit'] ?? true) ? '1' : '0',
     237        ];
     238    }
     239
    200240    public function compile(array $data): string
    201241    {
  • compactform/trunk/includes/classes/class-admin-dashboard.php

    r3719086 r3721164  
    66use CompactForm\Helpers\Utils;
    77
    8 defined( 'ABSPATH' ) || die();
     8defined('ABSPATH') || die();
    99
    1010class Admin_Dashboard {
     11        public const MENU_SLUG = 'compactform';
    1112
    12         const MENU_SLUG = 'compactform';
    13 
    14         const RECAPTCHA_SETTINGS_OPTION = 'fcf7_recaptcha_settings';
     13        public const RECAPTCHA_SETTINGS_OPTION = 'fcf7_recaptcha_settings';
    1514
    1615        private string $hook_suffix = 'toplevel_page_compactform';
    1716
    1817        public function __construct() {
    19                 add_action( 'admin_menu', [ $this, 'register_menu' ] );
    20                 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] );
    21                 add_action( 'wp_ajax_fcf7_save_elements_config', [ $this, 'ajax_save_elements_config' ] );
    22                 add_action( 'wp_ajax_fcf7_save_recaptcha_settings', [ $this, 'ajax_save_recaptcha_settings' ] );
     18                add_action('admin_menu', [ $this, 'register_menu' ]);
     19                add_action('admin_enqueue_scripts', [ $this, 'enqueue_assets' ]);
     20                add_action('wp_ajax_fcf7_save_elements_config', [ $this, 'ajax_save_elements_config' ]);
     21                add_action('wp_ajax_fcf7_save_recaptcha_settings', [ $this, 'ajax_save_recaptcha_settings' ]);
    2322        }
    2423
    2524        public function register_menu(): void {
    2625                $this->hook_suffix = add_menu_page(
    27                         __( 'CompactForm', 'compactform' ),
    28                         __( 'CompactForm', 'compactform' ),
     26                        __('CompactForm', 'compactform'),
     27                        __('CompactForm', 'compactform'),
    2928                        'manage_options',
    3029                        self::MENU_SLUG,
    … …  
    3534        }
    3635
    37         public function enqueue_assets( string $hook ): void {
    38                 if ( $hook !== $this->hook_suffix ) {
     36        public function enqueue_assets(string $hook): void {
     37                if ($hook !== $this->hook_suffix) {
    3938                        return;
    4039                }
    … …  
    4241                $asset_file = FCF7_PATH . 'assets/dashboard/index.asset.php';
    4342
    44                 if ( ! file_exists( $asset_file ) ) {
     43                if (! file_exists($asset_file)) {
    4544                        return;
    4645                }
    … …  
    6362                );
    6463
    65                 wp_set_script_translations( 'fcf7-dashboard', 'compactform', FCF7_PATH . 'languages' );
     64                wp_set_script_translations('fcf7-dashboard', 'compactform', FCF7_PATH . 'languages');
    6665
    67                 wp_localize_script( 'fcf7-dashboard', 'FCF7Local', $this->get_local_var() );
     66                wp_localize_script('fcf7-dashboard', 'FCF7Local', $this->get_local_var());
    6867        }
    6968
    … …  
    7372
    7473                $active_count = 0;
    75                 foreach ( array_keys( $flat ) as $slug ) {
    76                         if ( ! in_array( $slug, $inactive, true ) ) {
     74                foreach (array_keys($flat) as $slug) {
     75                        if (! in_array($slug, $inactive, true)) {
    7776                                $active_count++;
    7877                        }
    … …  
    8079
    8180                return [
    82                         'nonce'              => wp_create_nonce( 'fcf7_admin_nonce' ),
    83                         'ajaxUrl'            => admin_url( 'admin-ajax.php' ),
     81                        'nonce'              => wp_create_nonce('fcf7_admin_nonce'),
     82                        'ajaxUrl'            => admin_url('admin-ajax.php'),
    8483                        'version'            => FCF7_VERSION,
    8584                        'logoUrl'            => FCF7_URL . 'assets/branding/logo.png',
    … …  
    8887                        'inactiveExtensions' => $inactive,
    8988                        'activeCount'        => $active_count,
    90                         'totalCount'         => count( $flat ),
    91                         'recaptchaSettings'  => $this->public_recaptcha_settings( get_option( self::RECAPTCHA_SETTINGS_OPTION, [] ) ),
     89                        'totalCount'         => count($flat),
     90                        'recaptchaSettings'  => $this->public_recaptcha_settings(get_option(self::RECAPTCHA_SETTINGS_OPTION, [])),
    9291                        'links'              => [
    93                                 'forms'   => admin_url( 'admin.php?page=wpcf7' ),
     92                                'forms'   => admin_url('admin.php?page=wpcf7'),
    9493                                'support' => 'https://rstheme.com/support',
    95                                 'docs'    => 'https://rstheme.com/docs/compactform',
     94                                'docs'    => 'https://compactform.rstheme.com/docs/compactform/getting-started/',
    9695                                'review'  => 'https://wordpress.org/support/plugin/compactform/reviews/#new-post',
    9796                                'upgrade' => 'https://rstheme.com/compactform',
    … …  
    103102                $map = Config::get_extensions_map();
    104103
    105                 foreach ( $map as $group_key => &$group ) {
    106                         foreach ( $group['elements'] as $slug => &$element ) {
     104                foreach ($map as $group_key => &$group) {
     105                        foreach ($group['elements'] as $slug => &$element) {
    107106                                $element['docUrl'] = $element['docUrl'] ?? '#';
    108107                        }
    109                         unset( $element );
     108                        unset($element);
    110109                }
    111                 unset( $group );
     110                unset($group);
    112111
    113112                return $map;
    … …  
    115114
    116115        public function render_page(): void {
    117                 if ( ! current_user_can( 'manage_options' ) ) {
     116                if (! current_user_can('manage_options')) {
    118117                        return;
    119118                }
    120119
    121                 if ( ! file_exists( FCF7_PATH . 'assets/dashboard/index.asset.php' ) ) {
     120                if (! file_exists(FCF7_PATH . 'assets/dashboard/index.asset.php')) {
    122121                        echo '<div class="wrap"><div class="notice notice-warning"><p>';
    123                         echo esc_html__( 'The CompactForm dashboard has not been built yet. Run "npm install && npm run build:dashboard" in the plugin folder.', 'compactform' );
     122                        echo esc_html__('The CompactForm dashboard has not been built yet. Run "npm install && npm run build:dashboard" in the plugin folder.', 'compactform');
    124123                        echo '</p></div></div>';
    125124
    … …  
    131130
    132131        public function ajax_save_elements_config(): void {
    133                 check_ajax_referer( 'fcf7_admin_nonce', 'nonce' );
     132                check_ajax_referer('fcf7_admin_nonce', 'nonce');
    134133
    135                 if ( ! current_user_can( 'manage_options' ) ) {
    136                         wp_send_json_error( [ 'message' => __( 'Unauthorized.', 'compactform' ) ], 403 );
     134                if (! current_user_can('manage_options')) {
     135                        wp_send_json_error([ 'message' => __('Unauthorized.', 'compactform') ], 403);
    137136                }
    138137
    139                 $raw     = isset( $_POST['config'] ) ? sanitize_text_field( wp_unslash( $_POST['config'] ) ) : '[]';
    140                 $decoded = json_decode( $raw, true );
     138                $raw     = isset($_POST['config']) ? sanitize_text_field(wp_unslash($_POST['config'])) : '[]';
     139                $decoded = json_decode($raw, true);
    141140
    142                 if ( ! is_array( $decoded ) ) {
    143                         wp_send_json_error( [ 'message' => __( 'Invalid data.', 'compactform' ) ], 400 );
     141                if (! is_array($decoded)) {
     142                        wp_send_json_error([ 'message' => __('Invalid data.', 'compactform') ], 400);
    144143                }
    145144
    146                 Config::set_inactive_extensions( $decoded );
     145                Config::set_inactive_extensions($decoded);
    147146
    148                 wp_send_json_success( [ 'message' => __( 'Settings saved.', 'compactform' ) ] );
     147                wp_send_json_success([ 'message' => __('Settings saved.', 'compactform') ]);
    149148        }
    150149
    151150        public function ajax_save_recaptcha_settings(): void {
    152                 check_ajax_referer( 'fcf7_admin_nonce', 'nonce' );
     151                check_ajax_referer('fcf7_admin_nonce', 'nonce');
    153152
    154                 if ( ! current_user_can( 'manage_options' ) ) {
    155                         wp_send_json_error( [ 'message' => __( 'Unauthorized.', 'compactform' ) ], 403 );
     153                if (! current_user_can('manage_options')) {
     154                        wp_send_json_error([ 'message' => __('Unauthorized.', 'compactform') ], 403);
    156155                }
    157156
    158                 $existing = get_option( self::RECAPTCHA_SETTINGS_OPTION, [] );
    159                 $existing = is_array( $existing ) ? $existing : [];
     157                $existing = get_option(self::RECAPTCHA_SETTINGS_OPTION, []);
     158                $existing = is_array($existing) ? $existing : [];
    160159
    161                 $secret_key = isset( $_POST['secret_key'] ) ? sanitize_text_field( wp_unslash( $_POST['secret_key'] ) ) : '';
     160                $secret_key = isset($_POST['secret_key']) ? sanitize_text_field(wp_unslash($_POST['secret_key'])) : '';
    162161
    163162                $settings = [
    164                         'site_key'   => isset( $_POST['site_key'] ) ? sanitize_text_field( wp_unslash( $_POST['site_key'] ) ) : '',
    165                         'secret_key' => '' !== $secret_key ? $secret_key : ( $existing['secret_key'] ?? '' ),
     163                        'site_key'   => isset($_POST['site_key']) ? sanitize_text_field(wp_unslash($_POST['site_key'])) : '',
     164                        'secret_key' => '' !== $secret_key ? $secret_key : ($existing['secret_key'] ?? ''),
    166165                ];
    167166
    168                 update_option( self::RECAPTCHA_SETTINGS_OPTION, $settings );
     167                update_option(self::RECAPTCHA_SETTINGS_OPTION, $settings);
    169168
    170                 wp_send_json_success( [
    171                         'message'  => __( 'Google reCAPTCHA settings saved.', 'compactform' ),
    172                         'settings' => $this->public_recaptcha_settings( $settings ),
    173                 ] );
     169                wp_send_json_success([
     170                        'message'  => __('Google reCAPTCHA settings saved.', 'compactform'),
     171                        'settings' => $this->public_recaptcha_settings($settings),
     172                ]);
    174173        }
    175174
    176         private function public_recaptcha_settings( array $settings ): array {
     175        private function public_recaptcha_settings(array $settings): array {
    177176                return [
    178177                        'siteKey'      => $settings['site_key'] ?? '',
    179                         'hasSecretKey' => ! empty( $settings['secret_key'] ),
     178                        'hasSecretKey' => ! empty($settings['secret_key']),
    180179                ];
    181180        }
  • compactform/trunk/includes/classes/class-cf7-init.php

    r3719086 r3721164  
    2525                add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_theme_css' ] );
    2626                add_action( 'init', [ $this, 'load_extensions' ], 0 );
     27                add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_list_row_action' ] );
    2728                // Catch-all for styles enqueued too late for wp_head (a page builder rendering a form
    2829                // at wp_footer priority). WP_Styles::do_items() skips anything already printed, so this
    … …  
    6465        }
    6566
     67        /**
     68         * Adds an "Edit with CompactForm" row action to the CF7 forms list table.
     69         *
     70         * CF7's WPCF7_Contact_Form_List_Table::handle_row_actions() hardcodes its actions and
     71         * WP_List_Table::row_actions() has no filter, so the link is added client-side. It points at
     72         * the same edit URL as the core Edit action.
     73         */
     74        public function enqueue_list_row_action( string $hook ): void {
     75                if ( 'toplevel_page_wpcf7' !== $hook ) {
     76                        return;
     77                }
     78
     79                // Read-only page-context flags (list screen, or a single form's screen?), not
     80                // submitted/processed data — nothing is mutated here, so there's no CSRF surface a
     81                // nonce would protect.
     82                if ( isset( $_GET['post'] ) || isset( $_GET['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
     83                        return;
     84                }
     85
     86                wp_register_script( 'fcf7-list-row-action', false, [], FCF7_VERSION, true );
     87                wp_enqueue_script( 'fcf7-list-row-action' );
     88                wp_add_inline_script(
     89                        'fcf7-list-row-action',
     90                        '(function(){'
     91                        . 'var label=' . wp_json_encode( __( 'Edit with CompactForm', 'compactform' ) ) . ';'
     92                        . 'var rows=document.querySelectorAll("#the-list .row-actions");'
     93                        . 'Array.prototype.forEach.call(rows,function(row){'
     94                        . 'var edit=row.querySelector(".edit a");'
     95                        . 'if(!edit||row.querySelector(".fcf7-builder-edit")){return;}'
     96                        // row_actions() puts its " | " separator inside every span but the last one.
     97                        . 'var last=row.lastElementChild;'
     98                        . 'if(last){last.appendChild(document.createTextNode(" | "));}'
     99                        . 'var span=document.createElement("span");span.className="fcf7-builder-edit";'
     100                        . 'var link=document.createElement("a");link.href=edit.href;link.textContent=label;'
     101                        . 'span.appendChild(link);row.appendChild(span);'
     102                        . '});})();'
     103                );
     104        }
     105
    66106        public function register_vendor_assets(): void {
    67107                foreach ( Config::get_vendor_assets() as $key => $config ) {
  • compactform/trunk/includes/extensions/class-container.php

    r3719086 r3721164  
    5757        foreach ($form_parts as $form_part) {
    5858            if (substr($form_part, 0, 15) === '[fcf7_container' && $form_part !== '[/fcf7_container]') {
    59                 echo '<div class="fcf7-container">';
     59                $classes = 'fcf7-container';
     60                if (preg_match_all('/\sclass:([A-Za-z0-9_\-]+)/', $form_part, $class_matches)) {
     61                    $classes .= ' ' . implode(' ', $class_matches[1]);
     62                }
     63                echo '<div class="' . esc_attr($classes) . '">';
    6064            } elseif ($form_part === '[/fcf7_container]') {
    6165                echo '</div>';
    6266            } else {
    63                 // wp_kses_post(), not esc_html(): $form_part is form-editor-authored HTML mixed
    64                 // with CF7 shortcode tags (e.g. "[text* your-name]") — square brackets pass
    65                 // through kses untouched, so this only strips disallowed HTML while keeping the
    66                 // shortcode tags CF7 will expand later.
    67                 echo wp_kses_post( $form_part );
     67                echo $form_part; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- form-editor-authored HTML/CF7 tags, same trust level CF7 core renders unescaped; esc_html() would corrupt the markup and shortcode tags.
    6868            }
    6969        }
  • compactform/trunk/includes/extensions/class-default-mail.php

    r3719086 r3721164  
    374374    private function normalize_field_name(string $name): string
    375375    {
    376         $name = strtolower($name);
    377 
    378         return trim(preg_replace('/[^a-z0-9_\-]/', '-', $name), '-');
     376        return trim(preg_replace('/[^A-Za-z0-9_\-]/', '-', $name), '-');
    379377    }
    380378
  • compactform/trunk/includes/extensions/class-form-builder.php

    r3719086 r3721164  
    2929    private bool $multistep_localized = false;
    3030    private bool $multi_select_localized = false;
     31    private bool $custom_action_localized = false;
     32    private bool $frontend_assets_registered = false;
    3133
    3234    public static function instance()
    … …  
    135137    protected function render_optin(int $form_id): void
    136138    {
    137         $new_form_url = add_query_arg('fcf7-builder', '1');
     139        $new_form_url = esc_url(add_query_arg('fcf7-builder', '1'));
    138140        $nonce        = wp_create_nonce('fcf7_builder_enable');
    139141        ?>
    … …  
    142144                <div class="fcf7b-glimpse-toolbar"><span></span><span></span><span></span><span></span></div>
    143145                <div class="fcf7b-glimpse-body">
    144                     <div class="fcf7b-glimpse-fields"><?php echo wp_kses( str_repeat('<i></i>', 8), [ 'i' => [] ] ); ?></div>
     146                    <div class="fcf7b-glimpse-fields"><?php echo str_repeat('<i></i>', 8); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- hardcoded literal markup, no dynamic input; esc_html() would print the tags as visible text instead of rendering them. ?></div>
    145147                    <div class="fcf7b-glimpse-canvas">
    146148                        <div><b></b><u></u></div>
    … …  
    167169                </button>
    168170            <?php else : ?>
    169                 <a class="button button-primary" href="<?php echo esc_url( $new_form_url ); ?>">
     171                <a class="button button-primary" href="<?php echo $new_form_url; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- already esc_url()'d at assignment above. ?>">
    170172                    <?php esc_html_e('Edit with Builder', 'compactform'); ?>
    171173                </a>
    … …  
    341343    public function register_frontend_assets()
    342344    {
     345        // Idempotent: also called lazily from render paths that run outside wp_enqueue_scripts
     346        // (e.g. Elementor editor renders the CF7 widget via AJAX, where that hook never fires).
     347        if ($this->frontend_assets_registered) {
     348            return;
     349        }
     350        $this->frontend_assets_registered = true;
     351
    343352        wp_register_style('fcf7b-common', FCF7_ASSETS . 'css/form-builder.min.css', [], FCF7_VERSION);
    344353
    … …  
    348357
    349358        wp_register_script('fcf7-submit-btn-handler', FCF7_ASSETS . 'js/submit.min.js', [], FCF7_VERSION, true);
     359        wp_register_script('fcf7-custom-action', FCF7_ASSETS . 'js/custom-action.min.js', [], FCF7_VERSION, true);
    350360        wp_register_style('fcf7-multi-select', FCF7_ASSETS . 'css/multi-select.min.css', [], FCF7_VERSION);
    351361        wp_register_script('fcf7-multi-select', FCF7_ASSETS . 'js/multi-select.min.js', [], FCF7_VERSION, true);
    … …  
    463473        $form_id = $form ? (int) $form->id() : 0;
    464474
     475        $this->register_frontend_assets();
     476
    465477        if ($form_id && ! isset($this->enqueued_forms[ $form_id ]) && get_post_meta($form_id, self::META_SCHEMA, true)) {
    466478            $this->enqueued_forms[ $form_id ] = true;
    … …  
    468480            $css = $this->get_form_css($form_id);
    469481            if ('' !== $css) {
     482                // wp_add_inline_style(), not a hand-rolled <style> tag — prints via the normal
     483                // style queue (wp_head, or the wp_footer catch-all in CF7_Init for a form
     484                // rendered too late for wp_head), same handle name enqueue_form_style() uses so
     485                // wp_style_is() in get_form_css() still recognizes it as already handled.
    470486                $handle = 'fcf7b-form-' . $form_id;
    471487                wp_register_style($handle, false, [ 'fcf7b-common' ], FCF7_VERSION);
    472488                wp_enqueue_style($handle);
    473                 wp_add_inline_style($handle, wp_strip_all_tags($css));
     489                wp_add_inline_style($handle, $css);
    474490            }
    475491        }
    … …  
    496512        if (false !== strpos($html, 'wpcf7-submit')) {
    497513            wp_enqueue_script('fcf7-submit-btn-handler');
     514        }
     515
     516        if (false !== strpos($html, 'data-fcf7-action')) {
     517            wp_enqueue_script('fcf7-custom-action');
     518            if (! $this->custom_action_localized) {
     519                $this->custom_action_localized = true;
     520                wp_localize_script('fcf7-custom-action', 'FCF7CustomAction', [
     521                    'ajaxUrl'        => admin_url('admin-ajax.php'),
     522                    'nonce'          => wp_create_nonce('fcf7_builder'),
     523                    'invalidMessage' => __('One or more fields have an error. Please check and try again.', 'compactform'),
     524                ]);
     525            }
    498526        }
    499527
    … …  
    891919        $this->enqueued_forms[ $form_id ] = true;
    892920
     921        $this->register_frontend_assets();
    893922        wp_enqueue_style('fcf7b-common');
    894923
    … …  
    915944            wp_register_style($handle, false, $deps, FCF7_VERSION);
    916945            wp_enqueue_style($handle);
    917             wp_add_inline_style($handle, wp_strip_all_tags($inline));
     946            wp_add_inline_style($handle, $inline);
    918947        }
    919948    }
    … …  
    10151044
    10161045                foreach ($targets as $sel => $template) {
    1017                     $selector = str_replace('{{WRAPPER}}', $wrapper, (string) $sel);
     1046                    $selector = str_replace( '{{WRAPPER}}', $wrapper, (string) $sel );
    10181047
    10191048                    $by_device = $control->get_css_devices($field[ $key ], (string) $template, $devices);
    … …  
    10511080        ];
    10521081
    1053         foreach ($globals as $key => [$selector, $prop, $max]) {
     1082        foreach ($globals as $key => list($selector, $prop, $max)) {
    10541083            if (! isset($schema[ $key ])) {
    10551084                continue;
  • compactform/trunk/includes/extensions/class-webhook.php

    r3719086 r3721164  
    3636
    3737        private const VALUE_SEPARATOR = ', ';
     38
     39        private const UPLOAD_SUBDIR = 'compactform/files';
     40
     41        private array $persisted = [];
    3842
    3943        public function __construct() {
    … …  
    127131                }
    128132
    129                 $posted = (array) $submission->get_posted_data();
    130                 $meta   = $this->special_mail_tags();
     133                $posted          = (array) $submission->get_posted_data();
     134                $meta            = $this->special_mail_tags();
     135                $this->persisted = [];
    131136
    132137                $payload = $this->build_payload(
    133138                        $settings,
    134139                        $posted,
     140                        (array) $submission->uploaded_files(),
    135141                        $meta,
    136142                        $this->skip_fields( $contact_form ),
    … …  
    215221         * The flat key => string payload.
    216222         */
    217         private function build_payload( array $settings, array $posted, array $meta, array $skip, int $form_id ): array {
     223        private function build_payload( array $settings, array $posted, array $uploaded_files, array $meta, array $skip, int $form_id ): array {
    218224                if ( 'mapped' === $settings['bodyMode'] ) {
    219225                        $payload = [];
    … …  
    226232                                $values = [];
    227233                                foreach ( $row['sources'] as $source ) {
    228                                         $value = $this->resolve( $source, $posted, $meta );
     234                                        $value = $this->resolve( $source, $posted, $uploaded_files, $meta );
    229235
    230236                                        if ( '' !== $value ) {
    … …  
    252258                                continue;
    253259                        }
    254                         $payload[ $key ] = $this->flatten( $value );
     260                        $payload[ $key ] = $this->flatten( $key, $value, $uploaded_files );
    255261                }
    256262
    … …  
    263269
    264270        /** One mapped row's value: a special mail tag, or a posted field. */
    265         private function resolve( string $source, array $posted, array $meta ): string {
     271        private function resolve( string $source, array $posted, array $uploaded_files, array $meta ): string {
    266272                if ( 0 === strpos( $source, self::META_PREFIX ) ) {
    267273                        $key = substr( $source, strlen( self::META_PREFIX ) );
    … …  
    278284                }
    279285
    280                 return $this->flatten( $posted[ $key ] );
     286                return $this->flatten( $key, $posted[ $key ], $uploaded_files );
    281287        }
    282288
    283289        /**
    284          * A posted value as a single string. An uploaded file's posted value is
    285          * its original filename(s) — the file itself is never persisted or sent.
     290         * A posted value as a single string.
    286291         */
    287         private function flatten( $value ): string {
     292        private function flatten( string $key, $value, array $uploaded_files ): string {
     293                if ( isset( $uploaded_files[ $key ] ) ) {
     294                        if ( ! isset( $this->persisted[ $key ] ) ) {
     295                                $this->persisted[ $key ] = $this->persist_uploads( (array) $uploaded_files[ $key ] );
     296                        }
     297
     298                        return implode( self::VALUE_SEPARATOR, $this->persisted[ $key ] );
     299                }
     300
    288301                if ( \CompactForm\Helpers\Utils::is_row_list( $value ) ) {
    289302                        return \CompactForm\Helpers\Utils::rows_to_string( $value, self::VALUE_SEPARATOR );
    … …  
    295308
    296309                return is_scalar( $value ) ? (string) $value : '';
     310        }
     311
     312        private function persist_uploads( array $paths ): array {
     313                $uploads = wp_get_upload_dir();
     314
     315                if ( ! empty( $uploads['error'] ) ) {
     316                        return [];
     317                }
     318
     319                $dir = trailingslashit( $uploads['basedir'] ) . self::UPLOAD_SUBDIR;
     320
     321                if ( ! wp_mkdir_p( $dir ) ) {
     322                        return [];
     323                }
     324
     325                $urls = [];
     326
     327                foreach ( $paths as $path ) {
     328                        if ( ! is_string( $path ) || ! is_readable( $path ) ) {
     329                                continue;
     330                        }
     331
     332                        $name = wp_generate_password( 12, false ) . '-' . wp_basename( $path );
     333                        $file = wp_unique_filename( $dir, $name );
     334
     335                        if ( copy( $path, trailingslashit( $dir ) . $file ) ) {
     336                                $urls[] = trailingslashit( $uploads['baseurl'] ) . self::UPLOAD_SUBDIR . '/' . rawurlencode( $file );
     337                        }
     338                }
     339
     340                return $urls;
    297341        }
    298342
    … …  
    312356
    313357                        $value = 'field' === $row['mode']
    314                                 ? $this->resolve( $row['value'], $posted, $meta )
     358                                ? $this->resolve( $row['value'], $posted, [], $meta )
    315359                                : $row['value'];
    316360
  • compactform/trunk/includes/helpers/class-config.php

    r3719086 r3721164  
    197197                                        'file'     => [
    198198                                                'title'  => __('File Upload', 'compactform'),
     199                                                'docUrl' => '#',
     200                                                'isPro'  => false,
     201                                                'hasCss' => false,
     202                                                'hasJs'  => false,
     203                                        ],
     204                                        'hidden'   => [
     205                                                'title'  => __('Hidden', 'compactform'),
    199206                                                'docUrl' => '#',
    200207                                                'isPro'  => false,
  • compactform/trunk/includes/helpers/class-utils.php

    r3719086 r3721164  
    88
    99        public static function is_pro_active(): bool {
    10                 return defined( 'FCF7_PRO_VERSION' ) && class_exists( 'FlexiForms_Pro' );
     10                return defined( 'COMPACTFORM_PRO_VERSION' )
     11                        && class_exists( 'CompactForm_Pro' )
     12                        && class_exists( '\CompactForm_Pro\Extensions\License' )
     13                        && \CompactForm_Pro\Extensions\License::is_licensed();
    1114        }
    1215
  • compactform/trunk/includes/mail-templates/templates/class-html-table-mail-template.php

    r3719086 r3721164  
    6969                // style="" attributes, both used here) is the only way to style an email at all.
    7070                $out = [
     71                        '<style>',
     72                        $ind(1) . '@media only screen and (max-width:480px) {',
     73                        $ind(2) . '.fcf7-wrap { padding:20px 12px !important; }',
     74                        $ind(2) . '.fcf7-card { border-radius:8px !important; }',
     75                        $ind(2) . '.fcf7-header { padding:20px !important; border-radius:8px 8px 0 0 !important; }',
     76                        $ind(2) . '.fcf7-title { font-size:18px !important; }',
     77                        $ind(2) . '.fcf7-body { padding:4px 20px 16px !important; }',
     78                        $ind(2) . '.fcf7-footer { padding:14px 20px !important; border-radius:0 0 8px 8px !important; }',
     79                        $ind(2) . '.fcf7-label { padding:14px 0 4px !important; font-size:10px !important; }',
     80                        $ind(2) . '.fcf7-value { padding:0 0 12px !important; font-size:14px !important; }',
     81                        $ind(1) . '}',
     82                        '</style>',
    7183                        '<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:' . self::CANVAS . ';">',
    7284                        $ind(1) . '<tr>',
  • compactform/trunk/languages/compactform.pot

    r3719086 r3721164  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: CompactForm – Drag & Drop Form Builder for Contact Form 7 1.0.0\n"
     5"Project-Id-Version: CompactForm – Drag & Drop Form Builder for Contact Form 7 1.1.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/compactform\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-09-29T12:23:41+00:00\n"
     12"POT-Creation-Date: 2026-09-30T10:43:26+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    5151
    5252#: includes/builder/abstracts/traits/trait-advanced-control.php:16
    53 #: includes/builder/class-builder.php:87
     53#: includes/builder/class-builder.php:89
     54#: includes/builder/fields/class-hidden-field.php:69
    5455#: includes/builder/fields/class-submit-field.php:187
    5556#: assets/editor/index.js:3
    … …  
    7374
    7475#: includes/builder/abstracts/traits/trait-advanced-control.php:36
     76#: includes/builder/fields/class-container-field.php:196
     77#: includes/builder/fields/class-hidden-field.php:74
    7578#: includes/builder/fields/class-submit-field.php:192
    7679msgid "CSS Class"
    … …  
    7881
    7982#: includes/builder/abstracts/traits/trait-advanced-control.php:43
     83#: includes/builder/fields/class-hidden-field.php:78
    8084msgid "CSS ID"
    8185msgstr ""
    … …  
    538542#: includes/builder/abstracts/traits/trait-list-style-control.php:32
    539543#: includes/builder/abstracts/traits/trait-list-style-control.php:153
    540 #: includes/builder/class-builder.php:78
     544#: includes/builder/class-builder.php:80
    541545#: includes/builder/fields/class-container-field.php:44
    542 #: includes/helpers/class-config.php:248
    543 #: includes/helpers/class-config.php:249
     546#: includes/helpers/class-config.php:255
     547#: includes/helpers/class-config.php:256
    544548msgid "Layout"
    545549msgstr ""
    … …  
    775779msgstr ""
    776780
    777 #: includes/builder/class-builder.php:79
     781#: includes/builder/class-builder.php:81
    778782#: includes/helpers/class-config.php:138
    779783#: includes/helpers/class-config.php:139
    … …  
    781785msgstr ""
    782786
    783 #: includes/builder/class-builder.php:80
    784 #: includes/helpers/class-config.php:214
    785 #: includes/helpers/class-config.php:215
     787#: includes/builder/class-builder.php:82
     788#: includes/helpers/class-config.php:221
     789#: includes/helpers/class-config.php:222
    786790msgid "Choice Fields"
    787791msgstr ""
    788792
    789 #: includes/builder/class-builder.php:81
     793#: includes/builder/class-builder.php:83
    790794#: assets/dashboard/index.js:1
    791795#: src/dashboard/App.jsx:52
    … …  
    794798msgstr ""
    795799
    796 #: includes/builder/class-builder.php:82
     800#: includes/builder/class-builder.php:84
    797801msgid "Security"
    798802msgstr ""
    799803
    800 #: includes/builder/class-builder.php:85
     804#: includes/builder/class-builder.php:87
    801805#: assets/editor/index.js:8
    802806#: src/editor/components/Props.jsx:32
    … …  
    804808msgstr ""
    805809
    806 #: includes/builder/class-builder.php:86
     810#: includes/builder/class-builder.php:88
    807811#: includes/builder/fields/class-divider-field.php:38
    808812#: includes/builder/fields/class-heading-field.php:72
    … …  
    816820msgstr ""
    817821
    818 #: includes/builder/class-builder.php:168
     822#: includes/builder/class-builder.php:170
     823#: includes/builder/class-templates.php:90
    819824#: includes/extensions/class-default-mail.php:198
    820 #: includes/extensions/class-form-builder.php:211
    821 #: includes/extensions/class-form-builder.php:291
    822 #: includes/extensions/class-form-builder.php:1304
    823 #: includes/extensions/class-form-builder.php:1336
     825#: includes/extensions/class-form-builder.php:213
     826#: includes/extensions/class-form-builder.php:293
     827#: includes/extensions/class-form-builder.php:1333
     828#: includes/extensions/class-form-builder.php:1365
    824829#: includes/extensions/class-spam-protection.php:100
    825830msgid "Permission denied."
     831msgstr ""
     832
     833#: includes/builder/class-templates.php:40
     834#: assets/editor/index.js:6
     835#: src/editor/components/TemplatesModal.jsx:86
     836msgid "Could not reach the template library."
     837msgstr ""
     838
     839#: includes/builder/class-templates.php:69
     840msgid "That template no longer exists."
     841msgstr ""
     842
     843#: includes/builder/class-templates.php:74
     844msgid "This template requires CompactForm Pro."
     845msgstr ""
     846
     847#: includes/builder/class-templates.php:80
     848#: assets/editor/index.js:6
     849#: src/editor/components/TemplatesModal.jsx:121
     850msgid "Could not download that template."
    826851msgstr ""
    827852
    … …  
    870895#: includes/builder/fields/class-acceptance-field.php:30
    871896#: includes/builder/fields/class-acceptance-field.php:39
    872 #: includes/helpers/class-config.php:239
     897#: includes/helpers/class-config.php:246
    873898msgid "Acceptance"
    874899msgstr ""
    … …  
    883908
    884909#: includes/builder/fields/class-checkbox-field.php:40
    885 #: includes/helpers/class-config.php:232
     910#: includes/helpers/class-config.php:239
     911#: assets/dashboard/index.js:1
     912#: src/dashboard/pages/Welcome.jsx:78
    886913msgid "Checkbox"
    887914msgstr ""
    … …  
    895922#: includes/builder/fields/class-file-field.php:59
    896923#: includes/builder/fields/class-google-recaptcha-field.php:146
     924#: includes/builder/fields/class-hidden-field.php:55
    897925#: includes/builder/fields/class-number-field.php:49
    898926#: includes/builder/fields/class-quiz-field.php:57
    … …  
    11021130#: includes/builder/fields/class-divider-field.php:23
    11031131#: includes/builder/fields/class-divider-field.php:30
    1104 #: includes/helpers/class-config.php:259
     1132#: includes/helpers/class-config.php:266
    11051133msgid "Divider"
    11061134msgstr ""
    … …  
    11901218#: includes/builder/fields/class-email-field.php:44
    11911219#: includes/helpers/class-config.php:149
     1220#: assets/dashboard/index.js:1
     1221#: src/dashboard/pages/Welcome.jsx:76
    11921222msgid "Email"
    11931223msgstr ""
    … …  
    11951225#: includes/builder/fields/class-file-field.php:42
    11961226#: includes/helpers/class-config.php:198
     1227#: assets/dashboard/index.js:1
     1228#: src/dashboard/pages/Welcome.jsx:80
    11971229msgid "File Upload"
    11981230msgstr ""
    … …  
    12551287#: includes/builder/fields/class-heading-field.php:25
    12561288#: includes/builder/fields/class-heading-field.php:42
    1257 #: includes/helpers/class-config.php:252
     1289#: includes/helpers/class-config.php:259
    12581290msgid "Heading"
    12591291msgstr ""
    … …  
    12631295msgstr ""
    12641296
     1297#: includes/builder/fields/class-hidden-field.php:36
     1298#: includes/helpers/class-config.php:205
     1299msgid "Hidden"
     1300msgstr ""
     1301
     1302#: includes/builder/fields/class-hidden-field.php:61
     1303#: assets/editor/index.js:5
     1304#: assets/editor/index.js:12
     1305#: src/editor/components/ConditionsControl.jsx:76
     1306#: src/editor/components/WebhookTab.jsx:351
     1307msgid "Value"
     1308msgstr ""
     1309
     1310#: includes/builder/fields/class-hidden-field.php:62
     1311msgid "Sent with the form but never shown to the visitor."
     1312msgstr ""
     1313
    12651314#: includes/builder/fields/class-html-field.php:47
    12661315#: includes/builder/fields/class-html-field.php:64
    1267 #: includes/helpers/class-config.php:266
     1316#: includes/helpers/class-config.php:273
    12681317msgid "Raw HTML"
    12691318msgstr ""
    … …  
    13061355
    13071356#: includes/builder/fields/class-radio-field.php:40
    1308 #: includes/helpers/class-config.php:225
     1357#: includes/helpers/class-config.php:232
     1358#: assets/dashboard/index.js:1
     1359#: src/dashboard/pages/Welcome.jsx:79
    13091360msgid "Radio"
    13101361msgstr ""
    … …  
    15381589
    15391590#: includes/builder/fields/class-select-field.php:44
    1540 #: includes/helpers/class-config.php:218
     1591#: includes/helpers/class-config.php:225
    15411592msgid "Dropdown"
    15421593msgstr ""
    … …  
    17801831
    17811832#: includes/builder/fields/class-submit-field.php:28
     1833#: assets/dashboard/index.js:1
     1834#: src/dashboard/pages/Welcome.jsx:94
    17821835msgid "Submit"
    17831836msgstr ""
    … …  
    17891842#: includes/builder/fields/class-submit-field.php:51
    17901843msgid "Button Text"
     1844msgstr ""
     1845
     1846#: includes/builder/fields/class-submit-field.php:197
     1847msgid "Custom Action"
     1848msgstr ""
     1849
     1850#: includes/builder/fields/class-submit-field.php:202
     1851msgid "Action URL"
     1852msgstr ""
     1853
     1854#: includes/builder/fields/class-submit-field.php:204
     1855msgid "The form will be submitted to this URL instead of the default."
     1856msgstr ""
     1857
     1858#: includes/builder/fields/class-submit-field.php:208
     1859msgid "Validate Before Submit"
     1860msgstr ""
     1861
     1862#: includes/builder/fields/class-submit-field.php:210
     1863msgid "Check the form for errors before it is submitted."
    17911864msgstr ""
    17921865
    … …  
    18231896msgstr ""
    18241897
     1898#: includes/classes/class-admin-dashboard.php:26
    18251899#: includes/classes/class-admin-dashboard.php:27
    1826 #: includes/classes/class-admin-dashboard.php:28
    18271900#: assets/dashboard/index.js:1
    18281901#: src/dashboard/App.jsx:30
    … …  
    18311904msgstr ""
    18321905
    1833 #: includes/classes/class-admin-dashboard.php:123
     1906#: includes/classes/class-admin-dashboard.php:122
    18341907msgid "The CompactForm dashboard has not been built yet. Run \"npm install && npm run build:dashboard\" in the plugin folder."
    18351908msgstr ""
    18361909
    1837 #: includes/classes/class-admin-dashboard.php:136
    1838 #: includes/classes/class-admin-dashboard.php:155
     1910#: includes/classes/class-admin-dashboard.php:135
     1911#: includes/classes/class-admin-dashboard.php:154
    18391912msgid "Unauthorized."
    18401913msgstr ""
    18411914
    1842 #: includes/classes/class-admin-dashboard.php:143
     1915#: includes/classes/class-admin-dashboard.php:142
    18431916msgid "Invalid data."
    18441917msgstr ""
    18451918
    1846 #: includes/classes/class-admin-dashboard.php:148
     1919#: includes/classes/class-admin-dashboard.php:147
    18471920msgid "Settings saved."
    18481921msgstr ""
    18491922
    1850 #: includes/classes/class-admin-dashboard.php:171
     1923#: includes/classes/class-admin-dashboard.php:170
    18511924msgid "Google reCAPTCHA settings saved."
     1925msgstr ""
     1926
     1927#: includes/classes/class-cf7-init.php:91
     1928msgid "Edit with CompactForm"
    18521929msgstr ""
    18531930
    … …  
    18681945#: includes/extensions/class-default-mail.php:153
    18691946#: assets/editor/index.js:7
    1870 #: src/editor/components/Toolbar.jsx:138
     1947#: src/editor/components/Toolbar.jsx:142
    18711948msgid "Fullscreen"
    18721949msgstr ""
    … …  
    18741951#: includes/extensions/class-default-mail.php:154
    18751952#: assets/editor/index.js:7
    1876 #: src/editor/components/Toolbar.jsx:138
     1953#: src/editor/components/Toolbar.jsx:142
    18771954msgid "Exit fullscreen"
    18781955msgstr ""
    18791956
    18801957#: includes/extensions/class-default-mail.php:155
     1958#: assets/editor/index.js:6
     1959#: src/editor/components/TemplatesModal.jsx:276
    18811960msgid "Preview"
    18821961msgstr ""
    … …  
    19081987msgstr ""
    19091988
    1910 #: includes/extensions/class-form-builder.php:83
     1989#: includes/extensions/class-form-builder.php:85
    19111990msgid "Visual Editor"
    19121991msgstr ""
    19131992
    1914 #: includes/extensions/class-form-builder.php:122
     1993#: includes/extensions/class-form-builder.php:124
    19151994msgid "Loading builder…"
    19161995msgstr ""
    19171996
    1918 #: includes/extensions/class-form-builder.php:160
     1997#: includes/extensions/class-form-builder.php:162
    19191998msgid "Build this form visually"
    19201999msgstr ""
    19212000
    1922 #: includes/extensions/class-form-builder.php:161
     2001#: includes/extensions/class-form-builder.php:163
    19232002msgid "Design fields, layout and styling by dragging — no tags to write."
    19242003msgstr ""
    19252004
    1926 #: includes/extensions/class-form-builder.php:166
    1927 #: includes/extensions/class-form-builder.php:170
     2005#: includes/extensions/class-form-builder.php:168
     2006#: includes/extensions/class-form-builder.php:172
    19282007msgid "Edit with Builder"
    19292008msgstr ""
    19302009
    1931 #: includes/extensions/class-form-builder.php:174
     2010#: includes/extensions/class-form-builder.php:176
    19322011msgid "Existing tags are imported as closely as possible; custom HTML, layout markup and other plugins’ tags may not carry over. Copy anything you need from the Form tab first — the builder regenerates this form’s markup on every save."
    19332012msgstr ""
    19342013
    1935 #: includes/extensions/class-form-builder.php:176
     2014#: includes/extensions/class-form-builder.php:178
    19362015msgid "Asked once per form."
    19372016msgstr ""
    19382017
    1939 #: includes/extensions/class-form-builder.php:199
     2018#: includes/extensions/class-form-builder.php:201
    19402019msgid "Could not switch this form to the builder."
    19412020msgstr ""
    19422021
    1943 #: includes/extensions/class-form-builder.php:507
     2022#: includes/extensions/class-form-builder.php:523
     2023msgid "One or more fields have an error. Please check and try again."
     2024msgstr ""
     2025
     2026#: includes/extensions/class-form-builder.php:535
    19442027msgid "Select options…"
    19452028msgstr ""
    19462029
    1947 #: includes/extensions/class-form-builder.php:508
     2030#: includes/extensions/class-form-builder.php:536
    19482031#: assets/editor/index.js:3
    19492032#: assets/editor/index.js:11
    … …  
    19532036msgstr ""
    19542037
    1955 #: includes/extensions/class-form-builder.php:613
     2038#: includes/extensions/class-form-builder.php:641
    19562039msgid "Invalid form."
    19572040msgstr ""
    19582041
    1959 #: includes/extensions/class-form-builder.php:1309
     2042#: includes/extensions/class-form-builder.php:1338
    19602043#: assets/editor/index.js:8
    19612044#: src/editor/hooks/useCf7Persistence.js:40
    … …  
    19632046msgstr ""
    19642047
    1965 #: includes/extensions/class-form-builder.php:1316
     2048#: includes/extensions/class-form-builder.php:1345
    19662049#: assets/editor/index.js:8
    19672050#: src/editor/hooks/useCf7Persistence.js:55
    … …  
    19692052msgstr ""
    19702053
    1971 #: includes/extensions/class-form-builder.php:1341
     2054#: includes/extensions/class-form-builder.php:1370
    19722055msgid "Nothing to save."
    19732056msgstr ""
    19742057
    1975 #: includes/extensions/class-form-builder.php:1348
     2058#: includes/extensions/class-form-builder.php:1377
    19762059msgid "Form not found."
    19772060msgstr ""
    19782061
    1979 #: includes/extensions/class-form-builder.php:1358
     2062#: includes/extensions/class-form-builder.php:1387
    19802063msgid "Saved."
    19812064msgstr ""
    … …  
    20182101msgstr ""
    20192102
    2020 #: includes/helpers/class-config.php:205
     2103#: includes/helpers/class-config.php:212
    20212104msgid "Submit Button"
    20222105msgstr ""
    20232106
    2024 #: includes/helpers/class-config.php:275
    2025 #: includes/helpers/class-config.php:276
     2107#: includes/helpers/class-config.php:282
     2108#: includes/helpers/class-config.php:283
    20262109msgid "Utilities"
    20272110msgstr ""
    20282111
    2029 #: includes/helpers/class-config.php:279
     2112#: includes/helpers/class-config.php:286
    20302113msgid "Layout Container"
    20312114msgstr ""
    20322115
    2033 #: includes/helpers/class-config.php:286
     2116#: includes/helpers/class-config.php:293
    20342117msgid "Webhook (Pabbly/Zapier)"
    20352118msgstr ""
    20362119
    2037 #: includes/helpers/class-config.php:293
     2120#: includes/helpers/class-config.php:300
    20382121msgid "Default Mail"
    20392122msgstr ""
    20402123
    2041 #: includes/helpers/class-config.php:300
     2124#: includes/helpers/class-config.php:307
    20422125msgid "Admin Bar Edit Link"
    20432126msgstr ""
    … …  
    20632146
    20642147#: assets/dashboard/index.js:1
    2065 #: src/dashboard/pages/Welcome.jsx:10
     2148#: src/dashboard/pages/Welcome.jsx:31
    20662149msgid "Welcome to CompactForm"
    20672150msgstr ""
    20682151
    20692152#: assets/dashboard/index.js:1
    2070 #: src/dashboard/pages/Welcome.jsx:12
     2153#: src/dashboard/pages/Welcome.jsx:33
    20712154msgid "Advanced fields and stylings for Contact Form 7, built by RSTheme. Enable what you need — each extension loads its assets only when a form actually uses it."
    20722155msgstr ""
    … …  
    20742157#: assets/dashboard/index.js:1
    20752158#: src/dashboard/pages/Extensions.jsx:69
    2076 #: src/dashboard/pages/Welcome.jsx:23
     2159#: src/dashboard/pages/Welcome.jsx:44
    20772160msgid "Active"
    20782161msgstr ""
    20792162
    20802163#: assets/dashboard/index.js:1
    2081 #: src/dashboard/pages/Welcome.jsx:30
     2164#: src/dashboard/pages/Welcome.jsx:54
     2165msgid "Go Pro"
     2166msgstr ""
     2167
     2168#: assets/dashboard/index.js:1
     2169#: src/dashboard/pages/Welcome.jsx:57
     2170msgid "Unlock the Full Power of"
     2171msgstr ""
     2172
     2173#: assets/dashboard/index.js:1
     2174#: src/dashboard/pages/Welcome.jsx:58
     2175msgid "CompactForm Pro"
     2176msgstr ""
     2177
     2178#: assets/dashboard/index.js:1
     2179#: src/dashboard/pages/Welcome.jsx:61
     2180msgid "Get advanced form features, premium templates, integrations and more. Take your Contact Form 7 experience to the next level with CompactForm Pro."
     2181msgstr ""
     2182
     2183#: assets/dashboard/index.js:1
     2184#: src/dashboard/pages/Welcome.jsx:68
     2185msgid "Upgrade to Pro"
     2186msgstr ""
     2187
     2188#: assets/dashboard/index.js:1
     2189#: src/dashboard/pages/Welcome.jsx:75
     2190msgid "Text Field"
     2191msgstr ""
     2192
     2193#: assets/dashboard/index.js:1
     2194#: src/dashboard/pages/Welcome.jsx:77
     2195msgid "Select"
     2196msgstr ""
     2197
     2198#: assets/dashboard/index.js:1
     2199#: src/dashboard/pages/Welcome.jsx:86
     2200msgid "PRO"
     2201msgstr ""
     2202
     2203#: assets/dashboard/index.js:1
     2204#: src/dashboard/pages/Welcome.jsx:88
     2205msgid "Your Name"
     2206msgstr ""
     2207
     2208#: assets/dashboard/index.js:1
     2209#: src/dashboard/pages/Welcome.jsx:90
     2210msgid "Email Address"
     2211msgstr ""
     2212
     2213#: assets/dashboard/index.js:1
     2214#: src/dashboard/pages/Welcome.jsx:92
     2215msgid "Message"
     2216msgstr ""
     2217
     2218#: assets/dashboard/index.js:1
     2219#: src/dashboard/pages/Welcome.jsx:101
     2220msgid "More Fields & Extensions"
     2221msgstr ""
     2222
     2223#: assets/dashboard/index.js:1
     2224#: src/dashboard/pages/Welcome.jsx:105
     2225#: src/dashboard/pages/Welcome.jsx:139
     2226msgid "Third Party Integrations"
     2227msgstr ""
     2228
     2229#: assets/dashboard/index.js:1
     2230#: src/dashboard/pages/Welcome.jsx:109
     2231#: src/dashboard/pages/Welcome.jsx:135
     2232msgid "Premium Templates"
     2233msgstr ""
     2234
     2235#: assets/dashboard/index.js:1
     2236#: src/dashboard/pages/Welcome.jsx:113
     2237msgid "Advanced Features"
     2238msgstr ""
     2239
     2240#: assets/dashboard/index.js:1
     2241#: src/dashboard/pages/Welcome.jsx:120
     2242msgid "What you get with Pro?"
     2243msgstr ""
     2244
     2245#: assets/dashboard/index.js:1
     2246#: src/dashboard/pages/Welcome.jsx:121
     2247msgid "More flexibility. More control. More possibilities."
     2248msgstr ""
     2249
     2250#: assets/dashboard/index.js:1
     2251#: src/dashboard/pages/Welcome.jsx:127
     2252msgid "Advanced Form Fields"
     2253msgstr ""
     2254
     2255#: assets/dashboard/index.js:1
     2256#: src/dashboard/pages/Welcome.jsx:131
     2257msgid "Powerful Extensions"
     2258msgstr ""
     2259
     2260#: assets/dashboard/index.js:1
     2261#: src/dashboard/pages/Welcome.jsx:143
     2262msgid "Priority Support"
     2263msgstr ""
     2264
     2265#: assets/dashboard/index.js:1
     2266#: src/dashboard/pages/Welcome.jsx:153
    20822267msgid "Need any help?"
    20832268msgstr ""
    20842269
    20852270#: assets/dashboard/index.js:1
    2086 #: src/dashboard/pages/Welcome.jsx:31
     2271#: src/dashboard/pages/Welcome.jsx:154
    20872272msgid "Run into an issue or need a hand? Our team is here to help on the support portal."
    20882273msgstr ""
    20892274
    20902275#: assets/dashboard/index.js:1
    2091 #: src/dashboard/pages/Welcome.jsx:35
     2276#: src/dashboard/pages/Welcome.jsx:158
    20922277msgid "Create a ticket"
    20932278msgstr ""
    20942279
    20952280#: assets/dashboard/index.js:1
    2096 #: src/dashboard/pages/Welcome.jsx:40
     2281#: src/dashboard/pages/Welcome.jsx:163
    20972282msgid "Enjoying the plugin?"
    20982283msgstr ""
    20992284
    21002285#: assets/dashboard/index.js:1
    2101 #: src/dashboard/pages/Welcome.jsx:41
     2286#: src/dashboard/pages/Welcome.jsx:164
    21022287msgid "A quick review really helps and keeps development going."
    21032288msgstr ""
    21042289
    21052290#: assets/dashboard/index.js:1
    2106 #: src/dashboard/pages/Welcome.jsx:45
     2291#: src/dashboard/pages/Welcome.jsx:168
    21072292msgid "Leave a review"
    21082293msgstr ""
    21092294
    21102295#: assets/dashboard/index.js:1
    2111 #: src/dashboard/pages/Welcome.jsx:50
     2296#: src/dashboard/pages/Welcome.jsx:173
    21122297msgid "Knowledge base"
    21132298msgstr ""
    21142299
    21152300#: assets/dashboard/index.js:1
    2116 #: src/dashboard/pages/Welcome.jsx:51
     2301#: src/dashboard/pages/Welcome.jsx:174
    21172302msgid "Read the docs to learn how to set up each extension step by step."
    21182303msgstr ""
    21192304
    21202305#: assets/dashboard/index.js:1
    2121 #: src/dashboard/pages/Welcome.jsx:55
     2306#: src/dashboard/pages/Welcome.jsx:178
    21222307msgid "Read documentation"
    21232308msgstr ""
    … …  
    21402325
    21412326#: assets/dashboard/index.js:1
     2327#: assets/editor/index.js:6
    21422328#: src/dashboard/components/elements/Header.jsx:33
     2329#: src/editor/components/TemplatesModal.jsx:174
    21432330msgid "Free"
    21442331msgstr ""
    21452332
    21462333#: assets/dashboard/index.js:1
     2334#: assets/editor/index.js:6
    21472335#: assets/editor/index.js:7
    21482336#: src/dashboard/components/elements/Header.jsx:34
    21492337#: src/editor/components/Palette.jsx:24
     2338#: src/editor/components/TemplatesModal.jsx:173
     2339#: src/editor/components/TemplatesModal.jsx:258
    21502340msgid "Pro"
    21512341msgstr ""
    … …  
    21532343#: assets/dashboard/index.js:1
    21542344#: assets/editor/index.js:3
     2345#: assets/editor/index.js:6
    21552346#: src/dashboard/components/elements/ElementsActions.jsx:6
     2347#: src/editor/components/TemplatesModal.jsx:162
     2348#: src/editor/components/TemplatesModal.jsx:185
     2349#: src/editor/components/TemplatesModal.jsx:206
    21562350#: src/editor/components/WebhookTab.jsx:217
    21572351msgid "All"
    … …  
    21622356#: src/dashboard/components/elements/ElementsActions.jsx:27
    21632357#: src/dashboard/pages/Configuration.jsx:14
    2164 #: src/editor/components/Toolbar.jsx:51
     2358#: src/editor/components/Toolbar.jsx:53
    21652359msgid "Saving…"
    21662360msgstr ""
    … …  
    23192513#: src/editor/components/DeviceSettings.jsx:8
    23202514#: src/editor/components/DeviceSettings.jsx:14
    2321 #: src/editor/components/Toolbar.jsx:85
     2515#: src/editor/components/Toolbar.jsx:87
    23222516msgid "Tablet"
    23232517msgstr ""
    … …  
    23272521#: src/editor/components/DeviceSettings.jsx:9
    23282522#: src/editor/components/DeviceSettings.jsx:15
    2329 #: src/editor/components/Toolbar.jsx:86
     2523#: src/editor/components/Toolbar.jsx:88
    23302524msgid "Mobile"
    23312525msgstr ""
    … …  
    23342528#: assets/editor/index.js:7
    23352529#: src/editor/components/DeviceSettings.jsx:13
    2336 #: src/editor/components/Toolbar.jsx:84
     2530#: src/editor/components/Toolbar.jsx:86
    23372531msgid "Desktop"
    23382532msgstr ""
    … …  
    25262720
    25272721#: assets/editor/index.js:3
     2722#: assets/editor/index.js:6
    25282723#: src/editor/components/SpamProtectionTab.jsx:264
     2724#: src/editor/components/TemplatesModal.jsx:281
    25292725msgid "Importing…"
    25302726msgstr ""
    … …  
    27382934
    27392935#: assets/editor/index.js:5
    2740 #: assets/editor/index.js:12
    2741 #: src/editor/components/ConditionsControl.jsx:76
    2742 #: src/editor/components/WebhookTab.jsx:351
    2743 msgid "Value"
    2744 msgstr ""
    2745 
    2746 #: assets/editor/index.js:5
    27472936#: src/editor/components/WebhookTab.jsx:385
    27482937msgid "Your API key"
    … …  
    28223011
    28233012#: assets/editor/index.js:6
    2824 #: src/editor/components/Toolbar.jsx:53
     3013#: src/editor/components/TemplatesModal.jsx:37
     3014msgid "Previous"
     3015msgstr ""
     3016
     3017#: assets/editor/index.js:6
     3018#: src/editor/components/TemplatesModal.jsx:44
     3019msgid "Next"
     3020msgstr ""
     3021
     3022#: assets/editor/index.js:6
     3023#: assets/editor/index.js:8
     3024#: src/editor/components/Navigator.jsx:303
     3025#: src/editor/components/TemplatesModal.jsx:52
     3026#: src/editor/components/TemplatesModal.jsx:143
     3027msgid "Close"
     3028msgstr ""
     3029
     3030#: assets/editor/index.js:6
     3031#: src/editor/components/TemplatesModal.jsx:133
     3032#: src/editor/components/TemplatesModal.jsx:310
     3033msgid "Templates"
     3034msgstr ""
     3035
     3036#: assets/editor/index.js:6
     3037#: src/editor/components/TemplatesModal.jsx:137
     3038msgid "Refresh"
     3039msgstr ""
     3040
     3041#: assets/editor/index.js:6
     3042#: src/editor/components/TemplatesModal.jsx:153
     3043msgid "Search templates…"
     3044msgstr ""
     3045
     3046#: assets/editor/index.js:6
     3047#: src/editor/components/TemplatesModal.jsx:160
     3048msgid "Plan"
     3049msgstr ""
     3050
     3051#: assets/editor/index.js:6
     3052#: src/editor/components/TemplatesModal.jsx:183
     3053msgid "Badges"
     3054msgstr ""
     3055
     3056#: assets/editor/index.js:6
     3057#: src/editor/components/TemplatesModal.jsx:204
     3058msgid "Categories"
     3059msgstr ""
     3060
     3061#: assets/editor/index.js:6
     3062#: src/editor/components/TemplatesModal.jsx:226
     3063msgid "Loading templates…"
     3064msgstr ""
     3065
     3066#: assets/editor/index.js:6
     3067#: src/editor/components/TemplatesModal.jsx:239
     3068msgid "No templates match."
     3069msgstr ""
     3070
     3071#: assets/editor/index.js:6
     3072#: src/editor/components/TemplatesModal.jsx:253
     3073msgid "View screenshot"
     3074msgstr ""
     3075
     3076#: assets/editor/index.js:6
     3077#: src/editor/components/TemplatesModal.jsx:282
     3078msgid "Import"
     3079msgstr ""
     3080
     3081#: assets/editor/index.js:6
     3082#: src/editor/components/Toolbar.jsx:55
    28253083msgid "Saved ✓"
    28263084msgstr ""
    28273085
    28283086#: assets/editor/index.js:6
    2829 #: src/editor/components/Toolbar.jsx:55
     3087#: src/editor/components/Toolbar.jsx:57
    28303088msgid "Retry"
    28313089msgstr ""
    28323090
    28333091#: assets/editor/index.js:6
    2834 #: src/editor/components/Toolbar.jsx:56
     3092#: src/editor/components/Toolbar.jsx:58
    28353093msgid "Save"
    28363094msgstr ""
    28373095
    28383096#: assets/editor/index.js:6
    2839 #: src/editor/components/Toolbar.jsx:69
     3097#: src/editor/components/Toolbar.jsx:71
    28403098msgid "Builder"
    28413099msgstr ""
    28423100
    28433101#: assets/editor/index.js:6
    2844 #: src/editor/components/Toolbar.jsx:70
     3102#: src/editor/components/Toolbar.jsx:72
    28453103msgid "Generated CF7"
    28463104msgstr ""
    … …  
    28483106#. translators: %d: number of fields on the canvas.
    28493107#: assets/editor/index.js:7
    2850 #: src/editor/components/Toolbar.jsx:76
     3108#: src/editor/components/Toolbar.jsx:78
    28513109#, js-format
    28523110msgid "%d field"
    … …  
    28563114
    28573115#: assets/editor/index.js:7
    2858 #: src/editor/components/Toolbar.jsx:79
     3116#: src/editor/components/Toolbar.jsx:81
    28593117msgid "rendering…"
    28603118msgstr ""
    28613119
    28623120#: assets/editor/index.js:7
    2863 #: src/editor/components/Toolbar.jsx:102
     3121#: src/editor/components/Toolbar.jsx:106
    28643122msgid "Navigator (form structure)"
    2865 msgstr ""
    2866 
    2867 #: assets/editor/index.js:7
    2868 #: src/editor/components/Toolbar.jsx:129
    2869 msgid "Undo (Ctrl+Z)"
    2870 msgstr ""
    2871 
    2872 #: assets/editor/index.js:7
    2873 #: src/editor/components/Toolbar.jsx:130
    2874 msgid "Redo (Ctrl+Y)"
    2875 msgstr ""
    2876 
    2877 #: assets/editor/index.js:7
    2878 #: src/editor/components/Toolbar.jsx:132
    2879 msgid "Export form (JSON)"
    28803123msgstr ""
    28813124
    28823125#: assets/editor/index.js:7
    28833126#: src/editor/components/Toolbar.jsx:133
    2884 msgid "Import form (JSON)"
     3127msgid "Undo (Ctrl+Z)"
     3128msgstr ""
     3129
     3130#: assets/editor/index.js:7
     3131#: src/editor/components/Toolbar.jsx:134
     3132msgid "Redo (Ctrl+Y)"
     3133msgstr ""
     3134
     3135#: assets/editor/index.js:7
     3136#: src/editor/components/Toolbar.jsx:136
     3137msgid "Export form (JSON)"
    28853138msgstr ""
    28863139
    28873140#: assets/editor/index.js:7
    28883141#: src/editor/components/Toolbar.jsx:137
     3142msgid "Import form (JSON)"
     3143msgstr ""
     3144
     3145#: assets/editor/index.js:7
     3146#: src/editor/components/Toolbar.jsx:141
    28893147msgid "Dark theme"
    28903148msgstr ""
    28913149
    28923150#: assets/editor/index.js:7
    2893 #: src/editor/components/Toolbar.jsx:137
     3151#: src/editor/components/Toolbar.jsx:141
    28943152msgid "Light theme"
    28953153msgstr ""
    28963154
    28973155#: assets/editor/index.js:7
    2898 #: src/editor/components/Toolbar.jsx:142
     3156#: src/editor/components/Toolbar.jsx:146
    28993157msgid "Save form layout"
    29003158msgstr ""
    29013159
    29023160#: assets/editor/index.js:7
    2903 #: src/editor/components/Toolbar.jsx:142
     3161#: src/editor/components/Toolbar.jsx:146
    29043162msgid "No unsaved changes"
    29053163msgstr ""
    … …  
    29823240
    29833241#: assets/editor/index.js:8
    2984 #: src/editor/components/Navigator.jsx:303
    2985 msgid "Close"
    2986 msgstr ""
    2987 
    2988 #: assets/editor/index.js:8
    2989 #: src/editor/hooks/useImportExport.js:46
     3242#: src/editor/hooks/useImportExport.js:48
    29903243msgid "Could not import: not a CompactForm export."
    29913244msgstr ""
    … …  
    29933246#. translators: %d: number of fields in the imported file.
    29943247#: assets/editor/index.js:9
    2995 #: src/editor/hooks/useImportExport.js:54
     3248#: src/editor/hooks/useImportExport.js:56
    29963249#, js-format
    29973250msgid "Import %d field and mail settings? This replaces the current form and saves it immediately."
    … …  
    30023255#. translators: %d: number of fields in the imported file.
    30033256#: assets/editor/index.js:10
    3004 #: src/editor/hooks/useImportExport.js:59
     3257#: src/editor/hooks/useImportExport.js:61
    30053258#, js-format
    30063259msgid "Import %d field? This replaces the current form and saves it immediately."
    … …  
    30103263
    30113264#: assets/editor/index.js:10
    3012 #: src/editor/hooks/useImportExport.js:107
     3265#: src/editor/hooks/useImportExport.js:109
    30133266msgid "Could not import: that file is not valid JSON."
    30143267msgstr ""
    30153268
    30163269#: assets/editor/index.js:10
    3017 #: src/editor/components/App.jsx:206
     3270#: src/editor/components/App.jsx:207
    30183271msgid "Generated from the builder on the server. Save the form with CF7’s Save button."
    30193272msgstr ""
    30203273
    30213274#: assets/editor/index.js:10
    3022 #: src/editor/components/App.jsx:214
     3275#: src/editor/components/App.jsx:215
    30233276msgid "(empty form)"
    30243277msgstr ""
    … …  
    30973350#, js-format
    30983351msgid "%d columns"
     3352msgstr ""
     3353
     3354#: assets/editor/index.js:12
     3355#: src/editor/fields/HiddenPreview.jsx:5
     3356msgid "field"
     3357msgstr ""
     3358
     3359#: assets/editor/index.js:12
     3360#: src/editor/fields/HiddenPreview.jsx:13
     3361msgid "(empty)"
    30993362msgstr ""
    31003363
  • compactform/trunk/readme.txt

    r3720523 r3721164  
    1010Requires PHP: 7.4
    1111Requires Plugins: contact-form-7
    12 Stable tag: 1.0.0
     12Stable tag: 1.1.0
    1313License: GPLv2 or later
    1414License URI: http://www.gnu.org/licenses/gpl-2.0.html
    … …  
    2626[Live Demos](https://compactform.rstheme.com/) | [Setup Guide & Video](https://compactform.rstheme.com/setup-guide/) | [Form Templates](https://compactform.rstheme.com/templates/) | [Pro Addons](https://compactform.rstheme.com/pricing/)
    2727
    28 = Stop Writing Form Code by Hand =
     28https://www.youtube.com/watch?v=FquGjIymXXQ
     29
     30== Stop Writing Form Code by Hand ==
    2931
    3032With Contact Form 7 on its own, you write two things by hand for every form: the form itself and the email it sends.
    … …  
    6668Add a field to the form later, and you have to update the email by hand again.
    6769
    68 = How CompactForm Handles It =
     70== How CompactForm Handles It ==
    6971
    7072Drag the fields in, set them up in the side panel, and CompactForm builds the form layout and the email for you. Here's what changes:
    … …  
    8082The result is still a normal Contact Form 7 form. You just don't have to write it yourself.
    8183
    82 = Why people use it =
     84== Why people use it ==
    8385
    8486* **No code needed:** Build on a live canvas and see changes as you make them.
    85 * **28 free field types:** Everything from simple text inputs to star ratings, signatures, sliders, and a country list.
     87* **30 free field types:** Everything from simple text inputs to star ratings, signatures, sliders, and a country list.
    8688* **Style each field:** Change fonts, colors, spacing, borders, and width right in the builder.
    8789* **Checked on the server:** Validation, conditional logic, and spam checks run on your server, so turning off JavaScript won't get around them.
    … …  
    8991* **Your old forms are safe:** Nothing changes until you open a form in the builder. You can also import existing CF7 forms.
    9092
    91 = Key Features =
     93== Key Features ==
    9294
    9395**Drag & Drop Builder**
    9496Drag fields onto the canvas, move them around, and group them into columns. You see the result as you work. The builder is turned on per form, so any form you wrote by hand stays exactly as it is until you decide to switch it over.
    9597
    96 **28 Free Field Types**
     98**30 Free Field Types**
    9799All of these come free with the plugin:
    98100
    … …  
    155157Every submission is checked on the server against your form's settings. The checks in the browser are only there to help visitors fill out the form correctly. They are not what keeps your form secure.
    156158
     159**27 Free Form Templates**
     160Start from one of 27 ready-made form templates instead of a blank canvas. Import a template in one click, then change the fields, layout, and style to fit your site.
     161
    157162**Import Your CF7 Forms**
    158163Already have Contact Form 7 forms? Bring them into the builder and keep editing them visually.
    … …  
    187192Forms built with CompactForm are still Contact Form 7 forms, so the CF7 addons and setup you already have keep working.
    188193
    189 = Want More? Try CompactForm Pro =
    190 
    191 [CompactForm Pro](https://compactform.rstheme.com/pricing/) adds more addons on top of the free builder:
     194== Want More? Try CompactForm Pro ==
     195
     196[CompactForm Pro](https://compactform.rstheme.com/pricing/) adds 22 addons on top of the free builder:
    192197
    193198* **Multistep Forms:** Split a long form into smaller steps so it feels quicker and easier to fill out.
    … …  
    210215* **Telegram Integration:** Get new submissions sent to Telegram.
    211216* **Google Sheets Integration:** Add every submission to a Google Sheet automatically.
    212 * **Prebuilt Form Templates:** Import a ready-made form and adjust it to fit your needs.
     217* **15 Pro Form Templates:** Import one of 15 extra ready-made forms and adjust it to fit your needs.
    213218* **Prebuilt Email Templates:** Choose from ready-made email designs for your notifications.
    214219
    … …  
    273278
    274279= What field types are included in the free version? =
    275 28 field types: Container, Heading, Divider, Raw HTML, Submit Button, Text, Email, Phone, URL, Number, Date, Textarea, Quiz, File Upload, Hidden Field, Dropdown, Radio Button, Checkbox, Acceptance, Star Rating, Country Dropdown, Date Picker, Time Picker, Date & Time Picker, Digital Signature, Range Slider, Spam Protection, and Google reCAPTCHA.
     28030 field types: Container, Heading, Divider, Raw HTML, Submit Button, Text, Email, Phone, URL, Number, Date, Textarea, Quiz, File Upload, Hidden Field, Dropdown, Radio Button, Checkbox, Acceptance, Star Rating, Country Dropdown, Date Picker, Time Picker, Date & Time Picker, Digital Signature, Range Slider, Spam Protection, and Google reCAPTCHA.
    276281
    277282= Is there a Pro version? =
    … …  
    3163212. Per-field style controls panel.
    3173223. Conditional logic configuration.
    318 4. Field library with 28 free field types.
     3234. Field library with 30 free field types.
    3193245. CompactForm dashboard — enable or disable individual field types.
    320325
    … …  
    322327
    323328= 1.0.0 =
    324 * Initial release with the drag-and-drop visual builder, 28 free field types, per-field styling, conditional logic, form import, webhook integration, and admin bar quick access.
     329* Initial release with the drag-and-drop visual builder, 30 free field types, per-field styling, conditional logic, form import, webhook integration, and admin bar quick access.
Note: See TracChangeset for help on using the changeset viewer.