PluginProbe
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification / 5.6.2
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification v5.6.2
5.6.2 5.6.3 5.6.1 5.6.0 5.5.0 5.4.0 5.3.2 5.3.1 5.1.6 5.1.5 trunk 2.1.5 2.11 2.12 2.13 2.15 3.0.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.51 3.0.60 3.0.61 3.0.62 All 38 releases
← All changes | admin-ui/build/index.js +3 -0 5.6.0 → 5.6.2 View file →
@@ -1,4 +1,5 @@
1 +/* doi:scope-guard */(function(){
1 2 (function(){"use strict";try{if(typeof document!="undefined"){var o=document.createElement("style");o.appendChild(document.createTextNode(`@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}#doi-admin-root *,#doi-admin-root :before,#doi-admin-root :after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }#doi-admin-root ::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }#doi-admin-root *,#doi-admin-root :before,#doi-admin-root :after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}#doi-admin-root :before,#doi-admin-root :after{--tw-content: ""}html,#doi-admin-root :host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter Variable,Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}#doi-admin-root hr{height:0;color:inherit;border-top-width:1px}#doi-admin-root abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#doi-admin-root h1,#doi-admin-root h2,#doi-admin-root h3,#doi-admin-root h4,#doi-admin-root h5,#doi-admin-root h6{font-size:inherit;font-weight:inherit}#doi-admin-root a{color:inherit;text-decoration:inherit}#doi-admin-root b,#doi-admin-root strong{font-weight:bolder}#doi-admin-root code,#doi-admin-root kbd,#doi-admin-root samp,#doi-admin-root pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}#doi-admin-root small{font-size:80%}#doi-admin-root sub,#doi-admin-root sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}#doi-admin-root sub{bottom:-.25em}#doi-admin-root sup{top:-.5em}#doi-admin-root table{text-indent:0;border-color:inherit;border-collapse:collapse}#doi-admin-root button,#doi-admin-root input,#doi-admin-root optgroup,#doi-admin-root select,#doi-admin-root textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}#doi-admin-root button,#doi-admin-root select{text-transform:none}#doi-admin-root button,#doi-admin-root input:where([type=button]),#doi-admin-root input:where([type=reset]),#doi-admin-root input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}#doi-admin-root :-moz-focusring{outline:auto}#doi-admin-root :-moz-ui-invalid{box-shadow:none}#doi-admin-root progress{vertical-align:baseline}#doi-admin-root ::-webkit-inner-spin-button,#doi-admin-root ::-webkit-outer-spin-button{height:auto}#doi-admin-root [type=search]{-webkit-appearance:textfield;outline-offset:-2px}#doi-admin-root ::-webkit-search-decoration{-webkit-appearance:none}#doi-admin-root ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}#doi-admin-root summary{display:list-item}#doi-admin-root blockquote,#doi-admin-root dl,#doi-admin-root dd,#doi-admin-root h1,#doi-admin-root h2,#doi-admin-root h3,#doi-admin-root h4,#doi-admin-root h5,#doi-admin-root h6,#doi-admin-root hr,#doi-admin-root figure,#doi-admin-root p,#doi-admin-root pre{margin:0}#doi-admin-root fieldset{margin:0;padding:0}#doi-admin-root legend{padding:0}#doi-admin-root ol,#doi-admin-root ul,#doi-admin-root menu{list-style:none;margin:0;padding:0}#doi-admin-root dialog{padding:0}#doi-admin-root textarea{resize:vertical}#doi-admin-root input::-moz-placeholder,#doi-admin-root textarea::-moz-placeholder{opacity:1;color:#9ca3af}#doi-admin-root input::placeholder,#doi-admin-root textarea::placeholder{opacity:1;color:#9ca3af}#doi-admin-root button,#doi-admin-root [role=button]{cursor:pointer}#doi-admin-root :disabled{cursor:default}#doi-admin-root img,#doi-admin-root svg,#doi-admin-root video,#doi-admin-root canvas,#doi-admin-root audio,#doi-admin-root iframe,#doi-admin-root embed,#doi-admin-root object{display:block;vertical-align:middle}#doi-admin-root img,#doi-admin-root video{max-width:100%;height:auto}#doi-admin-root [hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 210 20% 98%;--foreground: 220 26% 14%;--card: 0 0% 100%;--card-foreground: 220 26% 14%;--popover: 0 0% 100%;--popover-foreground: 220 26% 14%;--primary: 207 90% 54%;--primary-foreground: 0 0% 100%;--secondary: 220 14% 96%;--secondary-foreground: 220 26% 14%;--muted: 220 14% 96%;--muted-foreground: 218 11% 45%;--accent: 220 14% 96%;--accent-foreground: 220 26% 14%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 220 13% 91%;--input: 220 13% 83%;--ring: 207 90% 54%;--radius: .5rem;--success: 142 71% 45%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--info: 207 90% 54%;--info-foreground: 0 0% 100%;--pro-start: 42 79% 50%;--pro-end: 37 77% 47%;--chart-1: 207 90% 54%;--chart-2: 142 71% 45%;--chart-3: 0 84% 60%;--chart-4: 38 92% 50%;--chart-5: 270 60% 55%;--sidebar-background: 220 20% 97%;--sidebar-foreground: 220 26% 14%;--sidebar-primary: 207 90% 54%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 220 14% 93%;--sidebar-accent-foreground: 220 26% 14%;--sidebar-border: 220 13% 91%;--sidebar-ring: 207 90% 54%}#doi-admin-root *{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));font-family:Inter Variable,Inter,system-ui,sans-serif;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#doi-admin-root .\\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:2rem!important;padding-left:2rem!important}#doi-admin-root .container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){#doi-admin-root .\\!container{max-width:1400px!important}#doi-admin-root .container{max-width:1400px}}#doi-admin-root .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}#doi-admin-root .pointer-events-none{pointer-events:none}#doi-admin-root .pointer-events-auto{pointer-events:auto}#doi-admin-root .visible{visibility:visible}#doi-admin-root .invisible{visibility:hidden}#doi-admin-root .static{position:static}#doi-admin-root .fixed{position:fixed}#doi-admin-root .absolute{position:absolute}#doi-admin-root .relative{position:relative}#doi-admin-root .sticky{position:sticky}#doi-admin-root .inset-0{inset:0}#doi-admin-root .inset-x-0{left:0;right:0}#doi-admin-root .inset-y-0{top:0;bottom:0}#doi-admin-root .-bottom-12{bottom:-3rem}#doi-admin-root .-left-12{left:-3rem}#doi-admin-root .-right-12{right:-3rem}#doi-admin-root .-top-12{top:-3rem}#doi-admin-root .bottom-0{bottom:0}#doi-admin-root .left-0{left:0}#doi-admin-root .left-1{left:.25rem}#doi-admin-root .left-1\\/2{left:50%}#doi-admin-root .left-2{left:.5rem}#doi-admin-root .left-2\\.5{left:.625rem}#doi-admin-root .left-\\[50\\%\\]{left:50%}#doi-admin-root .right-0{right:0}#doi-admin-root .right-1{right:.25rem}#doi-admin-root .right-2{right:.5rem}#doi-admin-root .right-3{right:.75rem}#doi-admin-root .right-4{right:1rem}#doi-admin-root .top-0{top:0}#doi-admin-root .top-1\\.5{top:.375rem}#doi-admin-root .top-1\\/2{top:50%}#doi-admin-root .top-2{top:.5rem}#doi-admin-root .top-2\\.5{top:.625rem}#doi-admin-root .top-3\\.5{top:.875rem}#doi-admin-root .top-4{top:1rem}#doi-admin-root .top-\\[1px\\]{top:1px}#doi-admin-root .top-\\[50\\%\\]{top:50%}#doi-admin-root .top-\\[60\\%\\]{top:60%}#doi-admin-root .top-full{top:100%}#doi-admin-root .z-10{z-index:10}#doi-admin-root .z-20{z-index:20}#doi-admin-root .z-30{z-index:30}#doi-admin-root .z-50{z-index:50}#doi-admin-root .z-\\[100\\]{z-index:100}#doi-admin-root .z-\\[1\\]{z-index:1}#doi-admin-root .col-span-2{grid-column:span 2 / span 2}#doi-admin-root .-mx-1{margin-left:-.25rem;margin-right:-.25rem}#doi-admin-root .-mx-4{margin-left:-1rem;margin-right:-1rem}#doi-admin-root .mx-0\\.5{margin-left:.125rem;margin-right:.125rem}#doi-admin-root .mx-1{margin-left:.25rem;margin-right:.25rem}#doi-admin-root .mx-2{margin-left:.5rem;margin-right:.5rem}#doi-admin-root .mx-3\\.5{margin-left:.875rem;margin-right:.875rem}#doi-admin-root .mx-auto{margin-left:auto;margin-right:auto}#doi-admin-root .my-1{margin-top:.25rem;margin-bottom:.25rem}#doi-admin-root .\\!mt-12{margin-top:3rem!important}#doi-admin-root .\\!mt-20{margin-top:5rem!important}#doi-admin-root .-ml-4{margin-left:-1rem}#doi-admin-root .-mt-2{margin-top:-.5rem}#doi-admin-root .-mt-4{margin-top:-1rem}#doi-admin-root .mb-0\\.5{margin-bottom:.125rem}#doi-admin-root .mb-1{margin-bottom:.25rem}#doi-admin-root .mb-2{margin-bottom:.5rem}#doi-admin-root .mb-3{margin-bottom:.75rem}#doi-admin-root .mb-4{margin-bottom:1rem}#doi-admin-root .mb-6{margin-bottom:1.5rem}#doi-admin-root .ml-1{margin-left:.25rem}#doi-admin-root .ml-1\\.5{margin-left:.375rem}#doi-admin-root .ml-10{margin-left:2.5rem}#doi-admin-root .ml-auto{margin-left:auto}#doi-admin-root .mr-0\\.5{margin-right:.125rem}#doi-admin-root .mr-1{margin-right:.25rem}#doi-admin-root .mr-1\\.5{margin-right:.375rem}#doi-admin-root .mr-2{margin-right:.5rem}#doi-admin-root .mt-0\\.5{margin-top:.125rem}#doi-admin-root .mt-1{margin-top:.25rem}#doi-admin-root .mt-1\\.5{margin-top:.375rem}#doi-admin-root .mt-12{margin-top:3rem}#doi-admin-root .mt-2{margin-top:.5rem}#doi-admin-root .mt-24{margin-top:6rem}#doi-admin-root .mt-3{margin-top:.75rem}#doi-admin-root .mt-4{margin-top:1rem}#doi-admin-root .mt-6{margin-top:1.5rem}#doi-admin-root .mt-auto{margin-top:auto}#doi-admin-root .block{display:block}#doi-admin-root .inline-block{display:inline-block}#doi-admin-root .inline{display:inline}#doi-admin-root .flex{display:flex}#doi-admin-root .inline-flex{display:inline-flex}#doi-admin-root .table{display:table}#doi-admin-root .grid{display:grid}#doi-admin-root .contents{display:contents}#doi-admin-root .hidden{display:none}#doi-admin-root .aspect-square{aspect-ratio:1 / 1}#doi-admin-root .size-4{width:1rem;height:1rem}#doi-admin-root .h-1\\.5{height:.375rem}#doi-admin-root .h-10{height:2.5rem}#doi-admin-root .h-11{height:2.75rem}#doi-admin-root .h-12{height:3rem}#doi-admin-root .h-14{height:3.5rem}#doi-admin-root .h-16{height:4rem}#doi-admin-root .h-2{height:.5rem}#doi-admin-root .h-2\\.5{height:.625rem}#doi-admin-root .h-20{height:5rem}#doi-admin-root .h-24{height:6rem}#doi-admin-root .h-3{height:.75rem}#doi-admin-root .h-3\\.5{height:.875rem}#doi-admin-root .h-32{height:8rem}#doi-admin-root .h-4{height:1rem}#doi-admin-root .h-40{height:10rem}#doi-admin-root .h-44{height:11rem}#doi-admin-root .h-48{height:12rem}#doi-admin-root .h-5{height:1.25rem}#doi-admin-root .h-6{height:1.5rem}#doi-admin-root .h-64{height:16rem}#doi-admin-root .h-7{height:1.75rem}#doi-admin-root .h-8{height:2rem}#doi-admin-root .h-9{height:2.25rem}#doi-admin-root .h-96{height:24rem}#doi-admin-root .h-\\[1px\\]{height:1px}#doi-admin-root .h-\\[600px\\]{height:600px}#doi-admin-root .h-\\[calc\\(100svh-var\\(--wp-admin--admin-bar--height\\,32px\\)\\)\\]{height:calc(100svh - var(--wp-admin--admin-bar--height,32px))}#doi-admin-root .h-\\[var\\(--radix-navigation-menu-viewport-height\\)\\]{height:var(--radix-navigation-menu-viewport-height)}#doi-admin-root .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}#doi-admin-root .h-auto{height:auto}#doi-admin-root .h-full{height:100%}#doi-admin-root .h-px{height:1px}#doi-admin-root .max-h-96{max-height:24rem}#doi-admin-root .max-h-\\[300px\\]{max-height:300px}#doi-admin-root .max-h-\\[400px\\]{max-height:400px}#doi-admin-root .max-h-screen{max-height:100vh}#doi-admin-root .min-h-0{min-height:0px}#doi-admin-root .min-h-\\[120px\\]{min-height:120px}#doi-admin-root .min-h-\\[300px\\]{min-height:300px}#doi-admin-root .min-h-\\[60px\\]{min-height:60px}#doi-admin-root .min-h-\\[60vh\\]{min-height:60vh}#doi-admin-root .min-h-\\[80px\\]{min-height:80px}#doi-admin-root .min-h-\\[calc\\(100vh-var\\(--wp-admin--admin-bar--height\\,32px\\)\\)\\]{min-height:calc(100vh - var(--wp-admin--admin-bar--height,32px))}#doi-admin-root .min-h-svh{min-height:100svh}#doi-admin-root .w-10{width:2.5rem}#doi-admin-root .w-11{width:2.75rem}#doi-admin-root .w-12{width:3rem}#doi-admin-root .w-16{width:4rem}#doi-admin-root .w-2{width:.5rem}#doi-admin-root .w-2\\.5{width:.625rem}#doi-admin-root .w-20{width:5rem}#doi-admin-root .w-24{width:6rem}#doi-admin-root .w-28{width:7rem}#doi-admin-root .w-3{width:.75rem}#doi-admin-root .w-3\\.5{width:.875rem}#doi-admin-root .w-3\\/4{width:75%}#doi-admin-root .w-32{width:8rem}#doi-admin-root .w-4{width:1rem}#doi-admin-root .w-40{width:10rem}#doi-admin-root .w-48{width:12rem}#doi-admin-root .w-5{width:1.25rem}#doi-admin-root .w-6{width:1.5rem}#doi-admin-root .w-64{width:16rem}#doi-admin-root .w-7{width:1.75rem}#doi-admin-root .w-72{width:18rem}#doi-admin-root .w-8{width:2rem}#doi-admin-root .w-9{width:2.25rem}#doi-admin-root .w-\\[--sidebar-width\\]{width:var(--sidebar-width)}#doi-admin-root .w-\\[100px\\]{width:100px}#doi-admin-root .w-\\[120px\\]{width:120px}#doi-admin-root .w-\\[130px\\]{width:130px}#doi-admin-root .w-\\[140px\\]{width:140px}#doi-admin-root .w-\\[150px\\]{width:150px}#doi-admin-root .w-\\[160px\\]{width:160px}#doi-admin-root .w-\\[190px\\]{width:190px}#doi-admin-root .w-\\[1px\\]{width:1px}#doi-admin-root .w-\\[70px\\]{width:70px}#doi-admin-root .w-\\[90px\\]{width:90px}#doi-admin-root .w-auto{width:auto}#doi-admin-root .w-full{width:100%}#doi-admin-root .w-max{width:-moz-max-content;width:max-content}#doi-admin-root .w-px{width:1px}#doi-admin-root .min-w-0{min-width:0px}#doi-admin-root .min-w-5{min-width:1.25rem}#doi-admin-root .min-w-\\[12rem\\]{min-width:12rem}#doi-admin-root .min-w-\\[200px\\]{min-width:200px}#doi-admin-root .min-w-\\[8rem\\]{min-width:8rem}#doi-admin-root .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}#doi-admin-root .max-w-\\[--skeleton-width\\]{max-width:var(--skeleton-width)}#doi-admin-root .max-w-\\[300px\\]{max-width:300px}#doi-admin-root .max-w-\\[400px\\]{max-width:400px}#doi-admin-root .max-w-\\[440px\\]{max-width:440px}#doi-admin-root .max-w-\\[480px\\]{max-width:480px}#doi-admin-root .max-w-\\[60\\%\\]{max-width:60%}#doi-admin-root .max-w-\\[600px\\]{max-width:600px}#doi-admin-root .max-w-\\[680px\\]{max-width:680px}#doi-admin-root .max-w-lg{max-width:32rem}#doi-admin-root .max-w-max{max-width:-moz-max-content;max-width:max-content}#doi-admin-root .max-w-md{max-width:28rem}#doi-admin-root .flex-1{flex:1 1 0%}#doi-admin-root .shrink-0{flex-shrink:0}#doi-admin-root .grow{flex-grow:1}#doi-admin-root .grow-0{flex-grow:0}#doi-admin-root .basis-full{flex-basis:100%}#doi-admin-root .caption-bottom{caption-side:bottom}#doi-admin-root .border-collapse{border-collapse:collapse}#doi-admin-root .-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .translate-x-\\[-50\\%\\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .translate-y-\\[-50\\%\\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}#doi-admin-root .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}#doi-admin-root .animate-spin{animation:spin 1s linear infinite}#doi-admin-root .cursor-default{cursor:default}#doi-admin-root .cursor-pointer{cursor:pointer}#doi-admin-root .touch-none{touch-action:none}#doi-admin-root .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}#doi-admin-root .list-inside{list-style-position:inside}#doi-admin-root .list-disc{list-style-type:disc}#doi-admin-root .list-none{list-style-type:none}#doi-admin-root .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}#doi-admin-root .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#doi-admin-root .flex-row{flex-direction:row}#doi-admin-root .flex-col{flex-direction:column}#doi-admin-root .flex-col-reverse{flex-direction:column-reverse}#doi-admin-root .flex-wrap{flex-wrap:wrap}#doi-admin-root .items-start{align-items:flex-start}#doi-admin-root .items-end{align-items:flex-end}#doi-admin-root .items-center{align-items:center}#doi-admin-root .items-baseline{align-items:baseline}#doi-admin-root .justify-start{justify-content:flex-start}#doi-admin-root .justify-end{justify-content:flex-end}#doi-admin-root .justify-center{justify-content:center}#doi-admin-root .justify-between{justify-content:space-between}#doi-admin-root .gap-0{gap:0px}#doi-admin-root .gap-1{gap:.25rem}#doi-admin-root .gap-1\\.5{gap:.375rem}#doi-admin-root .gap-2{gap:.5rem}#doi-admin-root .gap-3{gap:.75rem}#doi-admin-root .gap-4{gap:1rem}#doi-admin-root .gap-5{gap:1.25rem}#doi-admin-root .gap-6{gap:1.5rem}#doi-admin-root .gap-x-4{-moz-column-gap:1rem;column-gap:1rem}#doi-admin-root .gap-y-1{row-gap:.25rem}#doi-admin-root :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}#doi-admin-root :is(.space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}#doi-admin-root :is(.space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-5>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}#doi-admin-root :is(.divide-y>:not([hidden])~:not([hidden])){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}#doi-admin-root :is(.divide-border\\/50>:not([hidden])~:not([hidden])){border-color:hsl(var(--border) / .5)}#doi-admin-root .overflow-auto{overflow:auto}#doi-admin-root .overflow-hidden{overflow:hidden}#doi-admin-root .overflow-x-auto{overflow-x:auto}#doi-admin-root .overflow-y-auto{overflow-y:auto}#doi-admin-root .overflow-x-hidden{overflow-x:hidden}#doi-admin-root .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#doi-admin-root .whitespace-nowrap{white-space:nowrap}#doi-admin-root .whitespace-pre-wrap{white-space:pre-wrap}#doi-admin-root .break-words{overflow-wrap:break-word}#doi-admin-root .break-all{word-break:break-all}#doi-admin-root .rounded{border-radius:.25rem}#doi-admin-root .rounded-2xl{border-radius:1rem}#doi-admin-root .rounded-\\[inherit\\]{border-radius:inherit}#doi-admin-root .rounded-full{border-radius:9999px}#doi-admin-root .rounded-lg{border-radius:var(--radius)}#doi-admin-root .rounded-md{border-radius:calc(var(--radius) - 2px)}#doi-admin-root .rounded-sm{border-radius:calc(var(--radius) - 4px)}#doi-admin-root .rounded-t-\\[10px\\]{border-top-left-radius:10px;border-top-right-radius:10px}#doi-admin-root .rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}#doi-admin-root .border{border-width:1px}#doi-admin-root .border-0{border-width:0px}#doi-admin-root .border-2{border-width:2px}#doi-admin-root .border-y{border-top-width:1px;border-bottom-width:1px}#doi-admin-root .border-b{border-bottom-width:1px}#doi-admin-root .border-l{border-left-width:1px}#doi-admin-root .border-r{border-right-width:1px}#doi-admin-root .border-t{border-top-width:1px}#doi-admin-root .border-dashed{border-style:dashed}#doi-admin-root .border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}#doi-admin-root .border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}#doi-admin-root .border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}#doi-admin-root .border-blue-200\\/50{border-color:#bfdbfe80}#doi-admin-root .border-border{border-color:hsl(var(--border))}#doi-admin-root .border-border\\/50{border-color:hsl(var(--border) / .5)}#doi-admin-root .border-destructive{border-color:hsl(var(--destructive))}#doi-admin-root .border-destructive\\/30{border-color:hsl(var(--destructive) / .3)}#doi-admin-root .border-destructive\\/50{border-color:hsl(var(--destructive) / .5)}#doi-admin-root .border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}#doi-admin-root .border-input{border-color:hsl(var(--input))}#doi-admin-root .border-primary{border-color:hsl(var(--primary))}#doi-admin-root .border-primary\\/20{border-color:hsl(var(--primary) / .2)}#doi-admin-root .border-primary\\/30{border-color:hsl(var(--primary) / .3)}#doi-admin-root .border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}#doi-admin-root .border-sidebar-border{border-color:hsl(var(--sidebar-border))}#doi-admin-root .border-transparent{border-color:transparent}#doi-admin-root .border-warning{border-color:hsl(var(--warning))}#doi-admin-root .border-l-transparent{border-left-color:transparent}#doi-admin-root .border-t-transparent{border-top-color:transparent}#doi-admin-root .bg-accent{background-color:hsl(var(--accent))}#doi-admin-root .bg-accent\\/50{background-color:hsl(var(--accent) / .5)}#doi-admin-root .bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-background{background-color:hsl(var(--background))}#doi-admin-root .bg-background\\/95{background-color:hsl(var(--background) / .95)}#doi-admin-root .bg-black\\/80{background-color:#000c}#doi-admin-root .bg-blue-50\\/50{background-color:#eff6ff80}#doi-admin-root .bg-border{background-color:hsl(var(--border))}#doi-admin-root .bg-card{background-color:hsl(var(--card))}#doi-admin-root .bg-card\\/85{background-color:hsl(var(--card) / .85)}#doi-admin-root .bg-destructive{background-color:hsl(var(--destructive))}#doi-admin-root .bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-foreground{background-color:hsl(var(--foreground))}#doi-admin-root .bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-muted{background-color:hsl(var(--muted))}#doi-admin-root .bg-muted\\/30{background-color:hsl(var(--muted) / .3)}#doi-admin-root .bg-muted\\/50{background-color:hsl(var(--muted) / .5)}#doi-admin-root .bg-popover{background-color:hsl(var(--popover))}#doi-admin-root .bg-primary{background-color:hsl(var(--primary))}#doi-admin-root .bg-primary-foreground\\/15{background-color:hsl(var(--primary-foreground) / .15)}#doi-admin-root .bg-primary\\/10{background-color:hsl(var(--primary) / .1)}#doi-admin-root .bg-primary\\/5{background-color:hsl(var(--primary) / .05)}#doi-admin-root .bg-primary\\/\\[0\\.03\\]{background-color:hsl(var(--primary) / .03)}#doi-admin-root .bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}#doi-admin-root .bg-secondary{background-color:hsl(var(--secondary))}#doi-admin-root .bg-sidebar{background-color:hsl(var(--sidebar-background))}#doi-admin-root .bg-sidebar-border{background-color:hsl(var(--sidebar-border))}#doi-admin-root .bg-success{background-color:hsl(var(--success))}#doi-admin-root .bg-success\\/15{background-color:hsl(var(--success) / .15)}#doi-admin-root .bg-transparent{background-color:transparent}#doi-admin-root .bg-warning\\/10{background-color:hsl(var(--warning) / .1)}#doi-admin-root .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}#doi-admin-root .from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}#doi-admin-root .to-primary\\/70{--tw-gradient-to: hsl(var(--primary) / .7) var(--tw-gradient-to-position)}#doi-admin-root .fill-current{fill:currentColor}#doi-admin-root .p-0{padding:0}#doi-admin-root .p-1{padding:.25rem}#doi-admin-root .p-2{padding:.5rem}#doi-admin-root .p-3{padding:.75rem}#doi-admin-root .p-4{padding:1rem}#doi-admin-root .p-5{padding:1.25rem}#doi-admin-root .p-6{padding:1.5rem}#doi-admin-root .p-8{padding:2rem}#doi-admin-root .p-\\[1px\\]{padding:1px}#doi-admin-root .px-1{padding-left:.25rem;padding-right:.25rem}#doi-admin-root .px-1\\.5{padding-left:.375rem;padding-right:.375rem}#doi-admin-root .px-2{padding-left:.5rem;padding-right:.5rem}#doi-admin-root .px-2\\.5{padding-left:.625rem;padding-right:.625rem}#doi-admin-root .px-3{padding-left:.75rem;padding-right:.75rem}#doi-admin-root .px-4{padding-left:1rem;padding-right:1rem}#doi-admin-root .px-5{padding-left:1.25rem;padding-right:1.25rem}#doi-admin-root .px-6{padding-left:1.5rem;padding-right:1.5rem}#doi-admin-root .px-8{padding-left:2rem;padding-right:2rem}#doi-admin-root .py-0{padding-top:0;padding-bottom:0}#doi-admin-root .py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}#doi-admin-root .py-1{padding-top:.25rem;padding-bottom:.25rem}#doi-admin-root .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}#doi-admin-root .py-16{padding-top:4rem;padding-bottom:4rem}#doi-admin-root .py-2{padding-top:.5rem;padding-bottom:.5rem}#doi-admin-root .py-2\\.5{padding-top:.625rem;padding-bottom:.625rem}#doi-admin-root .py-3{padding-top:.75rem;padding-bottom:.75rem}#doi-admin-root .py-4{padding-top:1rem;padding-bottom:1rem}#doi-admin-root .py-6{padding-top:1.5rem;padding-bottom:1.5rem}#doi-admin-root .py-8{padding-top:2rem;padding-bottom:2rem}#doi-admin-root .pb-1{padding-bottom:.25rem}#doi-admin-root .pb-2{padding-bottom:.5rem}#doi-admin-root .pb-3{padding-bottom:.75rem}#doi-admin-root .pb-4{padding-bottom:1rem}#doi-admin-root .pl-2\\.5{padding-left:.625rem}#doi-admin-root .pl-4{padding-left:1rem}#doi-admin-root .pl-8{padding-left:2rem}#doi-admin-root .pr-2{padding-right:.5rem}#doi-admin-root .pr-2\\.5{padding-right:.625rem}#doi-admin-root .pr-3{padding-right:.75rem}#doi-admin-root .pr-8{padding-right:2rem}#doi-admin-root .pt-0{padding-top:0}#doi-admin-root .pt-1{padding-top:.25rem}#doi-admin-root .pt-2{padding-top:.5rem}#doi-admin-root .pt-3{padding-top:.75rem}#doi-admin-root .pt-4{padding-top:1rem}#doi-admin-root .pt-6{padding-top:1.5rem}#doi-admin-root .text-left{text-align:left}#doi-admin-root .text-center{text-align:center}#doi-admin-root .text-right{text-align:right}#doi-admin-root .align-top{vertical-align:top}#doi-admin-root .align-middle{vertical-align:middle}#doi-admin-root .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}#doi-admin-root .font-sans{font-family:Inter Variable,Inter,system-ui,sans-serif}#doi-admin-root .text-2xl{font-size:1.5rem;line-height:2rem}#doi-admin-root .text-4xl{font-size:2.25rem;line-height:2.5rem}#doi-admin-root .text-\\[0\\.8rem\\]{font-size:.8rem}#doi-admin-root .text-\\[10px\\]{font-size:10px}#doi-admin-root .text-\\[11px\\]{font-size:11px}#doi-admin-root .text-base{font-size:1rem;line-height:1.5rem}#doi-admin-root .text-lg{font-size:1.125rem;line-height:1.75rem}#doi-admin-root .text-sm{font-size:.875rem;line-height:1.25rem}#doi-admin-root .text-xs{font-size:.75rem;line-height:1rem}#doi-admin-root .font-bold{font-weight:700}#doi-admin-root .font-medium{font-weight:500}#doi-admin-root .font-normal{font-weight:400}#doi-admin-root .font-semibold{font-weight:600}#doi-admin-root .uppercase{text-transform:uppercase}#doi-admin-root .capitalize{text-transform:capitalize}#doi-admin-root .italic{font-style:italic}#doi-admin-root .tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}#doi-admin-root .leading-none{line-height:1}#doi-admin-root .leading-relaxed{line-height:1.625}#doi-admin-root .leading-tight{line-height:1.25}#doi-admin-root .tracking-tight{letter-spacing:-.025em}#doi-admin-root .tracking-wide{letter-spacing:.025em}#doi-admin-root .tracking-wider{letter-spacing:.05em}#doi-admin-root .tracking-widest{letter-spacing:.1em}#doi-admin-root .text-accent-foreground{color:hsl(var(--accent-foreground))}#doi-admin-root .text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}#doi-admin-root .text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}#doi-admin-root .text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}#doi-admin-root .text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}#doi-admin-root .text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}#doi-admin-root .text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}#doi-admin-root .text-blue-800\\/80{color:#1e40afcc}#doi-admin-root .text-blue-900\\/70{color:#1e3a8ab3}#doi-admin-root .text-card-foreground{color:hsl(var(--card-foreground))}#doi-admin-root .text-current{color:currentColor}#doi-admin-root .text-destructive{color:hsl(var(--destructive))}#doi-admin-root .text-destructive-foreground{color:hsl(var(--destructive-foreground))}#doi-admin-root .text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}#doi-admin-root .text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}#doi-admin-root .text-foreground{color:hsl(var(--foreground))}#doi-admin-root .text-foreground\\/50{color:hsl(var(--foreground) / .5)}#doi-admin-root .text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}#doi-admin-root .text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}#doi-admin-root .text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}#doi-admin-root .text-muted-foreground{color:hsl(var(--muted-foreground))}#doi-admin-root .text-muted-foreground\\/30{color:hsl(var(--muted-foreground) / .3)}#doi-admin-root .text-popover-foreground{color:hsl(var(--popover-foreground))}#doi-admin-root .text-primary{color:hsl(var(--primary))}#doi-admin-root .text-primary-foreground{color:hsl(var(--primary-foreground))}#doi-admin-root .text-primary-foreground\\/80{color:hsl(var(--primary-foreground) / .8)}#doi-admin-root .text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}#doi-admin-root .text-secondary-foreground{color:hsl(var(--secondary-foreground))}#doi-admin-root .text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}#doi-admin-root .text-sidebar-foreground\\/70{color:hsl(var(--sidebar-foreground) / .7)}#doi-admin-root .text-success{color:hsl(var(--success))}#doi-admin-root .text-success-foreground{color:hsl(var(--success-foreground))}#doi-admin-root .text-warning{color:hsl(var(--warning))}#doi-admin-root .underline{text-decoration-line:underline}#doi-admin-root .underline-offset-4{text-underline-offset:4px}#doi-admin-root .opacity-0{opacity:0}#doi-admin-root .opacity-40{opacity:.4}#doi-admin-root .opacity-50{opacity:.5}#doi-admin-root .opacity-60{opacity:.6}#doi-admin-root .opacity-70{opacity:.7}#doi-admin-root .opacity-90{opacity:.9}#doi-admin-root .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .outline-none{outline:2px solid transparent;outline-offset:2px}#doi-admin-root .outline{outline-style:solid}#doi-admin-root .ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}#doi-admin-root .ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}#doi-admin-root .ring-green-500\\/20{--tw-ring-color: rgb(34 197 94 / .2)}#doi-admin-root .ring-red-500\\/20{--tw-ring-color: rgb(239 68 68 / .2)}#doi-admin-root .ring-ring{--tw-ring-color: hsl(var(--ring))}#doi-admin-root .ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}#doi-admin-root .ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}#doi-admin-root .blur-\\[3px\\]{--tw-blur: blur(3px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#doi-admin-root .blur-sm{--tw-blur: blur(4px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#doi-admin-root .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#doi-admin-root .backdrop-blur{--tw-backdrop-blur: blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}#doi-admin-root .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}#doi-admin-root .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-\\[margin\\,opa\\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-\\[width\\,height\\,padding\\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-\\[width\\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#doi-admin-root .duration-1000{transition-duration:1s}#doi-admin-root .duration-200{transition-duration:.2s}#doi-admin-root .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}#doi-admin-root .ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}#doi-admin-root .animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}#doi-admin-root .fade-in,#doi-admin-root .fade-in-0{--tw-enter-opacity: 0}#doi-admin-root .fade-in-80{--tw-enter-opacity: .8}#doi-admin-root .zoom-in-95{--tw-enter-scale: .95}#doi-admin-root .slide-in-from-top-1{--tw-enter-translate-y: -.25rem}#doi-admin-root .duration-1000{animation-duration:1s}#doi-admin-root .duration-200{animation-duration:.2s}#doi-admin-root .ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}#doi-admin-root .ease-linear{animation-timing-function:linear}#doi-admin-root .running{animation-play-state:running}#doi-admin-root .paused{animation-play-state:paused}#doi-admin-root .pro-gradient{background:linear-gradient(135deg,hsl(var(--pro-start)),hsl(var(--pro-end)))}#doi-admin-root .pro-badge{background:linear-gradient(135deg,hsl(var(--pro-start)),hsl(var(--pro-end)));color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:3px;letter-spacing:.5px}#doi-admin-root .file\\:border-0::file-selector-button{border-width:0px}#doi-admin-root .file\\:bg-transparent::file-selector-button{background-color:transparent}#doi-admin-root .file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}#doi-admin-root .file\\:font-medium::file-selector-button{font-weight:500}#doi-admin-root .file\\:text-foreground::file-selector-button{color:hsl(var(--foreground))}#doi-admin-root .placeholder\\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}#doi-admin-root .placeholder\\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}#doi-admin-root .backdrop\\:bg-black\\/50::backdrop{background-color:#00000080}#doi-admin-root .backdrop\\:backdrop-blur-sm::backdrop{--tw-backdrop-blur: blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}#doi-admin-root .after\\:absolute:after{content:var(--tw-content);position:absolute}#doi-admin-root .after\\:-inset-2:after{content:var(--tw-content);inset:-.5rem}#doi-admin-root .after\\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}#doi-admin-root .after\\:left-1\\/2:after{content:var(--tw-content);left:50%}#doi-admin-root .after\\:w-1:after{content:var(--tw-content);width:.25rem}#doi-admin-root .after\\:w-\\[2px\\]:after{content:var(--tw-content);width:2px}#doi-admin-root .after\\:-translate-x-1\\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .first\\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}#doi-admin-root .first\\:border-l:first-child{border-left-width:1px}#doi-admin-root .last\\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}#doi-admin-root .focus-within\\:relative:focus-within{position:relative}#doi-admin-root .focus-within\\:z-20:focus-within{z-index:20}#doi-admin-root .hover\\:border-foreground\\/30:hover{border-color:hsl(var(--foreground) / .3)}#doi-admin-root .hover\\:bg-accent:hover{background-color:hsl(var(--accent))}#doi-admin-root .hover\\:bg-accent\\/30:hover{background-color:hsl(var(--accent) / .3)}#doi-admin-root .hover\\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}#doi-admin-root .hover\\:bg-amber-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}#doi-admin-root .hover\\:bg-destructive\\/10:hover{background-color:hsl(var(--destructive) / .1)}#doi-admin-root .hover\\:bg-destructive\\/80:hover{background-color:hsl(var(--destructive) / .8)}#doi-admin-root .hover\\:bg-destructive\\/90:hover{background-color:hsl(var(--destructive) / .9)}#doi-admin-root .hover\\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}#doi-admin-root .hover\\:bg-green-100:hover{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}#doi-admin-root .hover\\:bg-muted:hover{background-color:hsl(var(--muted))}#doi-admin-root .hover\\:bg-muted\\/50:hover{background-color:hsl(var(--muted) / .5)}#doi-admin-root .hover\\:bg-primary:hover{background-color:hsl(var(--primary))}#doi-admin-root .hover\\:bg-primary\\/10:hover{background-color:hsl(var(--primary) / .1)}#doi-admin-root .hover\\:bg-primary\\/80:hover{background-color:hsl(var(--primary) / .8)}#doi-admin-root .hover\\:bg-primary\\/90:hover{background-color:hsl(var(--primary) / .9)}#doi-admin-root .hover\\:bg-secondary:hover{background-color:hsl(var(--secondary))}#doi-admin-root .hover\\:bg-secondary\\/80:hover{background-color:hsl(var(--secondary) / .8)}#doi-admin-root .hover\\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}#doi-admin-root .hover\\:bg-success\\/90:hover{background-color:hsl(var(--success) / .9)}#doi-admin-root .hover\\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}#doi-admin-root .hover\\:text-foreground:hover{color:hsl(var(--foreground))}#doi-admin-root .hover\\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}#doi-admin-root .hover\\:text-primary:hover{color:hsl(var(--primary))}#doi-admin-root .hover\\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}#doi-admin-root .hover\\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}#doi-admin-root .hover\\:underline:hover{text-decoration-line:underline}#doi-admin-root .hover\\:opacity-100:hover{opacity:1}#doi-admin-root .hover\\:opacity-90:hover{opacity:.9}#doi-admin-root .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .hover\\:after\\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}#doi-admin-root .focus\\:bg-accent:focus{background-color:hsl(var(--accent))}#doi-admin-root .focus\\:bg-primary:focus{background-color:hsl(var(--primary))}#doi-admin-root .focus\\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}#doi-admin-root .focus\\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}#doi-admin-root .focus\\:opacity-100:focus{opacity:1}#doi-admin-root .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}#doi-admin-root .focus\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}#doi-admin-root .focus\\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}#doi-admin-root .focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}#doi-admin-root .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}#doi-admin-root .focus-visible\\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}#doi-admin-root .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}#doi-admin-root .focus-visible\\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}#doi-admin-root .focus-visible\\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}#doi-admin-root .focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}#doi-admin-root .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}#doi-admin-root .focus-visible\\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}#doi-admin-root .active\\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}#doi-admin-root .active\\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}#doi-admin-root .disabled\\:pointer-events-none:disabled{pointer-events:none}#doi-admin-root .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}#doi-admin-root .disabled\\:opacity-50:disabled{opacity:.5}#doi-admin-root :is(.group\\/menu-item:focus-within .group-focus-within\\/menu-item\\:opacity-100){opacity:1}#doi-admin-root :is(.group\\/menu-item:hover .group-hover\\/menu-item\\:opacity-100){opacity:1}#doi-admin-root :is(.group:hover .group-hover\\:opacity-100){opacity:1}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:border-muted\\/40){border-color:hsl(var(--muted) / .4)}#doi-admin-root :is(.group.toaster .group-\\[\\.toaster\\]\\:border-border){border-color:hsl(var(--border))}#doi-admin-root :is(.group.toast .group-\\[\\.toast\\]\\:bg-muted){background-color:hsl(var(--muted))}#doi-admin-root :is(.group.toast .group-\\[\\.toast\\]\\:bg-primary){background-color:hsl(var(--primary))}#doi-admin-root :is(.group.toaster .group-\\[\\.toaster\\]\\:bg-background){background-color:hsl(var(--background))}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:text-red-300){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}#doi-admin-root :is(.group.toast .group-\\[\\.toast\\]\\:text-muted-foreground){color:hsl(var(--muted-foreground))}#doi-admin-root :is(.group.toast .group-\\[\\.toast\\]\\:text-primary-foreground){color:hsl(var(--primary-foreground))}#doi-admin-root :is(.group.toaster .group-\\[\\.toaster\\]\\:text-foreground){color:hsl(var(--foreground))}#doi-admin-root :is(.group.toaster .group-\\[\\.toaster\\]\\:shadow-lg){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30:hover){border-color:hsl(var(--destructive) / .3)}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:hover\\:bg-destructive:hover){background-color:hsl(var(--destructive))}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground:hover){color:hsl(var(--destructive-foreground))}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-red-50:hover){--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-destructive:focus){--tw-ring-color: hsl(var(--destructive))}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-red-400:focus){--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}#doi-admin-root :is(.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600:focus){--tw-ring-offset-color: #dc2626}#doi-admin-root :is(.peer\\/menu-button:hover~.peer-hover\\/menu-button\\:text-sidebar-accent-foreground){color:hsl(var(--sidebar-accent-foreground))}#doi-admin-root :is(.peer:disabled~.peer-disabled\\:cursor-not-allowed){cursor:not-allowed}#doi-admin-root :is(.peer:disabled~.peer-disabled\\:opacity-70){opacity:.7}#doi-admin-root .has-\\[\\[data-variant\\=inset\\]\\]\\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}#doi-admin-root .has-\\[\\:disabled\\]\\:opacity-50:has(:disabled){opacity:.5}#doi-admin-root :is(.group\\/menu-item:has([data-sidebar=menu-action]) .group-has-\\[\\[data-sidebar\\=menu-action\\]\\]\\/menu-item\\:pr-8){padding-right:2rem}#doi-admin-root .aria-disabled\\:pointer-events-none[aria-disabled=true]{pointer-events:none}#doi-admin-root .aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}#doi-admin-root .aria-selected\\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}#doi-admin-root .aria-selected\\:bg-accent\\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}#doi-admin-root .aria-selected\\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}#doi-admin-root .aria-selected\\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}#doi-admin-root .aria-selected\\:opacity-100[aria-selected=true]{opacity:1}#doi-admin-root .aria-selected\\:opacity-30[aria-selected=true]{opacity:.3}#doi-admin-root .data-\\[disabled\\=true\\]\\:pointer-events-none[data-disabled=true],#doi-admin-root .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:h-px[data-panel-group-direction=vertical]{height:1px}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:w-full[data-panel-group-direction=vertical]{width:100%}#doi-admin-root .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked],#doi-admin-root .data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}#doi-admin-root .data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}#doi-admin-root .data-\\[state\\=open\\]\\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}#doi-admin-root .data-\\[active\\=true\\]\\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}#doi-admin-root .data-\\[active\\]\\:bg-accent\\/50[data-active]{background-color:hsl(var(--accent) / .5)}#doi-admin-root .data-\\[selected\\=\\'true\\'\\]\\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}#doi-admin-root .data-\\[state\\=active\\]\\:bg-background[data-state=active]{background-color:hsl(var(--background))}#doi-admin-root .data-\\[state\\=checked\\]\\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}#doi-admin-root .data-\\[state\\=checked\\]\\:bg-success[data-state=checked]{background-color:hsl(var(--success))}#doi-admin-root .data-\\[state\\=on\\]\\:bg-accent[data-state=on],#doi-admin-root .data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}#doi-admin-root .data-\\[state\\=open\\]\\:bg-accent\\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}#doi-admin-root .data-\\[state\\=open\\]\\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}#doi-admin-root .data-\\[state\\=selected\\]\\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}#doi-admin-root .data-\\[state\\=unchecked\\]\\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}#doi-admin-root .data-\\[active\\=true\\]\\:font-medium[data-active=true]{font-weight:500}#doi-admin-root .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}#doi-admin-root .data-\\[selected\\=true\\]\\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}#doi-admin-root .data-\\[state\\=active\\]\\:text-foreground[data-state=active]{color:hsl(var(--foreground))}#doi-admin-root .data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}#doi-admin-root .data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on],#doi-admin-root .data-\\[state\\=open\\]\\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}#doi-admin-root .data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}#doi-admin-root .data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=true],#doi-admin-root .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}#doi-admin-root .data-\\[state\\=open\\]\\:opacity-100[data-state=open]{opacity:1}#doi-admin-root .data-\\[state\\=active\\]\\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root .data-\\[swipe\\=move\\]\\:transition-none[data-swipe=move]{transition-property:none}#doi-admin-root .data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{transition-duration:.3s}#doi-admin-root .data-\\[state\\=open\\]\\:duration-500[data-state=open]{transition-duration:.5s}#doi-admin-root .data-\\[motion\\^\\=from-\\]\\:animate-in[data-motion^=from-],#doi-admin-root .data-\\[state\\=open\\]\\:animate-in[data-state=open],#doi-admin-root .data-\\[state\\=visible\\]\\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}#doi-admin-root .data-\\[motion\\^\\=to-\\]\\:animate-out[data-motion^=to-],#doi-admin-root .data-\\[state\\=closed\\]\\:animate-out[data-state=closed],#doi-admin-root .data-\\[state\\=hidden\\]\\:animate-out[data-state=hidden],#doi-admin-root .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}#doi-admin-root .data-\\[motion\\^\\=from-\\]\\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}#doi-admin-root .data-\\[motion\\^\\=to-\\]\\:fade-out[data-motion^=to-],#doi-admin-root .data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}#doi-admin-root .data-\\[state\\=closed\\]\\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}#doi-admin-root .data-\\[state\\=hidden\\]\\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}#doi-admin-root .data-\\[state\\=open\\]\\:fade-in-0[data-state=open],#doi-admin-root .data-\\[state\\=visible\\]\\:fade-in[data-state=visible]{--tw-enter-opacity: 0}#doi-admin-root .data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}#doi-admin-root .data-\\[state\\=open\\]\\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}#doi-admin-root .data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}#doi-admin-root .data-\\[motion\\=from-end\\]\\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}#doi-admin-root .data-\\[motion\\=from-start\\]\\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}#doi-admin-root .data-\\[motion\\=to-end\\]\\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}#doi-admin-root .data-\\[motion\\=to-start\\]\\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}#doi-admin-root .data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}#doi-admin-root .data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}#doi-admin-root .data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}#doi-admin-root .data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x: -50%}#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=closed],#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}#doi-admin-root .data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y: -48%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x: -50%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y: -48%}#doi-admin-root .data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}#doi-admin-root .data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{animation-duration:.3s}#doi-admin-root .data-\\[state\\=open\\]\\:duration-500[data-state=open]{animation-duration:.5s}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:after\\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:after\\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:after\\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:after\\:-translate-y-1\\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[panel-group-direction\\=vertical\\]\\:after\\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}#doi-admin-root .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}#doi-admin-root :is(.group[data-side=left] .group-data-\\[side\\=left\\]\\:-right-4){right:-1rem}#doi-admin-root :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:left-0){left:0}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:-mt-8){margin-top:-2rem}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:hidden){display:none}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!size-8){width:2rem!important;height:2rem!important}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[--sidebar-width-icon\\]){width:var(--sidebar-width-icon)}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)_\\+2px\\)\\]){width:calc(var(--sidebar-width-icon) + 1rem + 2px)}#doi-admin-root :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:w-0){width:0px}#doi-admin-root :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0){--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root :is(.group[data-state=open] .group-data-\\[state\\=open\\]\\:rotate-180){--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden){overflow:hidden}#doi-admin-root :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:overflow-hidden){overflow:hidden}#doi-admin-root :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:rounded-lg){border-radius:var(--radius)}#doi-admin-root :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:border){border-width:1px}#doi-admin-root :is(.group[data-side=left] .group-data-\\[side\\=left\\]\\:border-r){border-right-width:1px}#doi-admin-root :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:border-l){border-left-width:1px}#doi-admin-root :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:border-sidebar-border){border-color:hsl(var(--sidebar-border))}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!p-0){padding:0!important}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!p-2){padding:.5rem!important}#doi-admin-root :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:opacity-0){opacity:0}#doi-admin-root :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:shadow){--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}#doi-admin-root :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full):after{content:var(--tw-content);left:100%}#doi-admin-root :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:hover\\:bg-sidebar:hover){background-color:hsl(var(--sidebar-background))}#doi-admin-root :is(.peer\\/menu-button[data-size=default]~.peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5){top:.375rem}#doi-admin-root :is(.peer\\/menu-button[data-size=lg]~.peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5){top:.625rem}#doi-admin-root :is(.peer\\/menu-button[data-size=sm]~.peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1){top:.25rem}#doi-admin-root :is(.peer[data-variant=inset]~.peer-data-\\[variant\\=inset\\]\\:min-h-\\[calc\\(100svh-theme\\(spacing\\.4\\)\\)\\]){min-height:calc(100svh - 1rem)}#doi-admin-root :is(.peer\\/menu-button[data-active=true]~.peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground){color:hsl(var(--sidebar-accent-foreground))}@supports (backdrop-filter: var(--tw)){#doi-admin-root .supports-\\[backdrop-filter\\]\\:bg-background\\/60{background-color:hsl(var(--background) / .6)}#doi-admin-root .supports-\\[backdrop-filter\\]\\:bg-background\\/80{background-color:hsl(var(--background) / .8)}}#doi-admin-root .dark\\:border-amber-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(146 64 14 / var(--tw-border-opacity, 1))}#doi-admin-root .dark\\:border-amber-900\\/50:is(.dark *){border-color:#78350f80}#doi-admin-root .dark\\:border-blue-800\\/30:is(.dark *){border-color:#1e40af4d}#doi-admin-root .dark\\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}#doi-admin-root .dark\\:border-emerald-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(6 95 70 / var(--tw-border-opacity, 1))}#doi-admin-root .dark\\:border-red-900\\/50:is(.dark *){border-color:#7f1d1d80}#doi-admin-root .dark\\:bg-amber-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 26 3 / var(--tw-bg-opacity, 1))}#doi-admin-root .dark\\:bg-amber-950\\/30:is(.dark *){background-color:#451a034d}#doi-admin-root .dark\\:bg-blue-950\\/20:is(.dark *){background-color:#17255433}#doi-admin-root .dark\\:bg-emerald-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity, 1))}#doi-admin-root .dark\\:bg-red-950\\/30:is(.dark *){background-color:#450a0a4d}#doi-admin-root .dark\\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:text-blue-300\\/60:is(.dark *){color:#93c5fd99}#doi-admin-root .dark\\:text-blue-300\\/80:is(.dark *){color:#93c5fdcc}#doi-admin-root .dark\\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:text-green-500:is(.dark *){--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:text-red-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}#doi-admin-root .dark\\:hover\\:bg-amber-950:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 26 3 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){#doi-admin-root .sm\\:bottom-0{bottom:0}#doi-admin-root .sm\\:right-0{right:0}#doi-admin-root .sm\\:top-auto{top:auto}#doi-admin-root .sm\\:col-span-2{grid-column:span 2 / span 2}#doi-admin-root .sm\\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}#doi-admin-root .sm\\:mt-0{margin-top:0}#doi-admin-root .sm\\:flex{display:flex}#doi-admin-root .sm\\:inline-flex{display:inline-flex}#doi-admin-root .sm\\:max-w-sm{max-width:24rem}#doi-admin-root .sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#doi-admin-root .sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}#doi-admin-root .sm\\:grid-cols-\\[1\\.2fr_1fr_1\\.2fr_1\\.5fr_0\\.6fr_auto\\]{grid-template-columns:1.2fr 1fr 1.2fr 1.5fr .6fr auto}#doi-admin-root .sm\\:grid-cols-\\[1fr_2fr\\]{grid-template-columns:1fr 2fr}#doi-admin-root .sm\\:flex-row{flex-direction:row}#doi-admin-root .sm\\:flex-col{flex-direction:column}#doi-admin-root .sm\\:justify-end{justify-content:flex-end}#doi-admin-root .sm\\:gap-2\\.5{gap:.625rem}#doi-admin-root :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}#doi-admin-root :is(.sm\\:space-x-4>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}#doi-admin-root :is(.sm\\:space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}#doi-admin-root .sm\\:rounded-lg{border-radius:var(--radius)}#doi-admin-root .sm\\:px-6{padding-left:1.5rem;padding-right:1.5rem}#doi-admin-root .sm\\:text-left{text-align:left}#doi-admin-root .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){#doi-admin-root .md\\:absolute{position:absolute}#doi-admin-root .md\\:block{display:block}#doi-admin-root .md\\:flex{display:flex}#doi-admin-root .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\]{width:var(--radix-navigation-menu-viewport-width)}#doi-admin-root .md\\:w-auto{width:auto}#doi-admin-root .md\\:max-w-\\[420px\\]{max-width:420px}#doi-admin-root .md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#doi-admin-root .md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}#doi-admin-root .md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}#doi-admin-root .md\\:p-6{padding:1.5rem}#doi-admin-root .md\\:px-6{padding-left:1.5rem;padding-right:1.5rem}#doi-admin-root .md\\:text-sm{font-size:.875rem;line-height:1.25rem}#doi-admin-root .md\\:opacity-0{opacity:0}#doi-admin-root .after\\:md\\:hidden:after{content:var(--tw-content);display:none}#doi-admin-root :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:m-2){margin:.5rem}#doi-admin-root :is(.peer[data-state=collapsed][data-variant=inset]~.md\\:peer-data-\\[state\\=collapsed\\]\\:peer-data-\\[variant\\=inset\\]\\:ml-2){margin-left:.5rem}#doi-admin-root :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:ml-0){margin-left:0}#doi-admin-root :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl){border-radius:.75rem}#doi-admin-root :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:shadow){--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){#doi-admin-root .lg\\:col-span-2{grid-column:span 2 / span 2}#doi-admin-root .lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}#doi-admin-root .lg\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}#doi-admin-root .lg\\:grid-cols-\\[1fr_300px\\]{grid-template-columns:1fr 300px}}#doi-admin-root .\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}#doi-admin-root .first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}#doi-admin-root .last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}#doi-admin-root .\\[\\&\\:has\\(\\[aria-selected\\]\\.day-outside\\)\\]\\:bg-accent\\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}#doi-admin-root .\\[\\&\\:has\\(\\[aria-selected\\]\\.day-range-end\\)\\]\\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}#doi-admin-root .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=checkbox]){padding-right:0}#doi-admin-root :is(.\\[\\&\\>button\\]\\:hidden>button){display:none}#doi-admin-root :is(.\\[\\&\\>span\\:last-child\\]\\:truncate>span:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#doi-admin-root :is(.\\[\\&\\>span\\]\\:line-clamp-1>span){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}#doi-admin-root :is(.\\[\\&\\>svg\\+div\\]\\:translate-y-\\[-3px\\]>svg+div){--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:absolute>svg){position:absolute}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:left-4>svg){left:1rem}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:top-4>svg){top:1rem}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:size-3\\.5>svg){width:.875rem;height:.875rem}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:size-4>svg){width:1rem;height:1rem}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:shrink-0>svg){flex-shrink:0}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:text-destructive>svg){color:hsl(var(--destructive))}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:text-foreground>svg){color:hsl(var(--foreground))}#doi-admin-root :is(.\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground>svg){color:hsl(var(--sidebar-accent-foreground))}#doi-admin-root :is(.\\[\\&\\>svg\\~\\*\\]\\:pl-7>svg~*){padding-left:1.75rem}#doi-admin-root :is(.\\[\\&\\>tr\\]\\:last\\:border-b-0:last-child>tr){border-bottom-width:0px}#doi-admin-root :is(.\\[\\&\\[data-panel-group-direction\\=vertical\\]\\>div\\]\\:rotate-90[data-panel-group-direction=vertical]>div){--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root :is(.\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180[data-state=open]>svg){--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#doi-admin-root :is(.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading]){padding-left:.5rem;padding-right:.5rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading]){padding-top:.375rem;padding-bottom:.375rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs [cmdk-group-heading]){font-size:.75rem;line-height:1rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading]){font-weight:500}#doi-admin-root :is(.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground [cmdk-group-heading]){color:hsl(var(--muted-foreground))}#doi-admin-root :is(.\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]){padding-top:0}#doi-admin-root :is(.\\[\\&_\\[cmdk-group\\]\\]\\:px-2 [cmdk-group]){padding-left:.5rem;padding-right:.5rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 [cmdk-input-wrapper] svg){height:1.25rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 [cmdk-input-wrapper] svg){width:1.25rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-input\\]\\]\\:h-12 [cmdk-input]){height:3rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-item\\]\\]\\:px-2 [cmdk-item]){padding-left:.5rem;padding-right:.5rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-item\\]\\]\\:py-3 [cmdk-item]){padding-top:.75rem;padding-bottom:.75rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 [cmdk-item] svg){height:1.25rem}#doi-admin-root :is(.\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 [cmdk-item] svg){width:1.25rem}#doi-admin-root :is(.\\[\\&_p\\]\\:leading-relaxed p){line-height:1.625}#doi-admin-root :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}#doi-admin-root :is(.\\[\\&_svg\\]\\:size-4 svg){width:1rem;height:1rem}#doi-admin-root :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}#doi-admin-root :is(.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child){border-width:0px}#doi-admin-root :is(.\\[\\&_tr\\]\\:border-b tr){border-bottom-width:1px}#doi-admin-root :is([data-side=left][data-collapsible=offcanvas] .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2){right:-.5rem}#doi-admin-root :is([data-side=left][data-state=collapsed] .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize){cursor:e-resize}#doi-admin-root :is([data-side=left] .\\[\\[data-side\\=left\\]_\\&\\]\\:cursor-w-resize){cursor:w-resize}#doi-admin-root :is([data-side=right][data-collapsible=offcanvas] .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2){left:-.5rem}#doi-admin-root :is([data-side=right][data-state=collapsed] .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize){cursor:w-resize}#doi-admin-root :is([data-side=right] .\\[\\[data-side\\=right\\]_\\&\\]\\:cursor-e-resize){cursor:e-resize}`)),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2 3 var dI=Object.defineProperty;var rS=Le=>{throw TypeError(Le)};var uI=(Le,Be,nt)=>Be in Le?dI(Le,Be,{enumerable:!0,configurable:!0,writable:!0,value:nt}):Le[Be]=nt;var za=(Le,Be,nt)=>uI(Le,typeof Be!="symbol"?Be+"":Be,nt),Op=(Le,Be,nt)=>Be.has(Le)||rS("Cannot "+nt);var _=(Le,Be,nt)=>(Op(Le,Be,"read from private field"),nt?nt.call(Le):Be.get(Le)),ae=(Le,Be,nt)=>Be.has(Le)?rS("Cannot add the same private member more than once"):Be instanceof WeakSet?Be.add(Le):Be.set(Le,nt),Y=(Le,Be,nt,Ds)=>(Op(Le,Be,"write to private field"),Ds?Ds.call(Le,nt):Be.set(Le,nt),nt),be=(Le,Be,nt)=>(Op(Le,Be,"access private method"),nt);var eu=(Le,Be,nt,Ds)=>({set _(ko){Y(Le,Be,ko,nt)},get _(){return _(Le,Be,Ds)}});(function(Le){"use strict";var ho,bs,wa,BN,js,Rp,VN,Na,ws,Sa,HN,po,WN,xo,Ca,yn,go,pt,gl,vo,nn,sS,Lr,qN,Bt,Me,vl,At,yo,ka,Rr,Ns,yl,_a,Ea,bo,jo,Ss,Pa,$e,_l,Ip,Mp,Dp,Fp,Lp,$p,zp,oS,KN,bl,ar,kt,wo,ir,Ms,QN,Ar,Fn,jl,GN,Or,Cs,Vt,Ir,Mr,tu,Up,XN,Ta,rn,Ra,Aa,bn,ks,wl,Nl,Sl,Cl,bt,Bp,Vp,Hp,Wp,qp,YN,lr,ZN,at,_s,Es,Oa,Ia,Ps,Ma,Da,JN;function Be(e,t){for(var n=0;n<t.length;n++){const s=t[n];if(typeof s!="string"&&!Array.isArray(s)){for(const o in s)if(o!=="default"&&!(o in e)){const a=Object.getOwnPropertyDescriptor(s,o);a&&Object.defineProperty(e,o,a.get?a:{enumerable:!0,get:()=>s[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function nt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ds={exports:{}},ko={},Kp={exports:{}},Oe={};/**
3 4 * @license React
4 5 * react.production.min.js
@@ -470,4 +471,6 @@
470 471 Files: any uploaded files were already handed off to the form system or sent as mail attachments at the previous confirmation, so they are NOT restored. Re-submit the form if you want files in the next test cycle.`))&&w.mutate()},title:l("Dev-only: revert to pending so the same confirmation link can be re-tested"),children:[r.jsx(Qn,{className:"h-3.5 w-3.5 mr-1.5"}),w.isPending?l("Resetting..."):l("Reset to pending (dev)")]}),r.jsxs(H,{variant:"outline",size:"sm",className:"text-destructive border-destructive/30 hover:bg-destructive/10",onClick:()=>a(!0),children:[r.jsx(gn,{className:"h-3.5 w-3.5 mr-1.5"}),l("Delete")]})]})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_300px] gap-6",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx(hO,{optinId:y.id}),r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsx(ue,{className:"text-sm",children:l("Basic Information")})}),r.jsx(ne,{children:r.jsx(Jt,{children:r.jsxs(en,{children:[r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground w-40",children:l("ID")}),r.jsx(fe,{children:y.id})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Email")}),r.jsx(fe,{children:y.email})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Form")}),r.jsxs(fe,{children:[y.formName," (#",y.formId,")"]})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Category")}),r.jsx(fe,{children:y.categoryName?r.jsxs(hn,{to:`/categories/${y.category}`,className:"text-primary hover:underline inline-flex items-center gap-1",children:[r.jsx(eh,{className:"h-3 w-3"}),y.categoryName]}):y.category?String(y.category):"—"})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Registration Date")}),r.jsx(fe,{children:y.createtime})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Registration IP")}),r.jsx(fe,{className:"font-mono text-xs",children:y.ipRegister||"—"})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Confirmation Date")}),r.jsx(fe,{children:y.confirmed?y.updatetime:"—"})]}),r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Confirmation IP")}),r.jsx(fe,{className:"font-mono text-xs",children:y.ipConfirmation||"—"})]}),y.ipOptout&&r.jsxs(r.Fragment,{children:[r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Opt-Out IP")}),r.jsx(fe,{className:"font-mono text-xs",children:y.ipOptout})]}),y.optouttime&&r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Opt-Out Date")}),r.jsx(fe,{children:y.optouttime})]})]}),y.reminderSentAt&&r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-medium text-muted-foreground",children:l("Reminder Sent")}),r.jsx(fe,{children:y.reminderSentAt})]})]})})})]}),r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsxs(ue,{className:"text-sm flex items-center gap-2",children:[r.jsx(yt,{className:"h-4 w-4"}),l("Consent Evidence")]})}),r.jsxs(ne,{className:"space-y-3",children:[y.consentText?r.jsxs("div",{className:"rounded-lg bg-blue-50/50 dark:bg-blue-950/20 border border-blue-200/50 dark:border-blue-800/30 p-4",children:[r.jsx("p",{className:"text-xs font-medium text-blue-900/70 dark:text-blue-300/60 mb-1",children:l("Consent text shown to user")}),r.jsx("p",{className:"text-sm text-blue-800/80 dark:text-blue-300/80 leading-relaxed",children:y.consentText})]}):r.jsx("p",{className:"text-sm text-muted-foreground italic",children:l("No consent text was configured for this form at the time of submission.")}),y.consentField?r.jsxs("div",{className:"text-xs space-y-1",children:[r.jsxs("p",{children:[r.jsx("span",{className:"text-muted-foreground",children:l("Acknowledgment field:")})," ",r.jsx("code",{className:"font-mono bg-muted px-1 py-0.5 rounded",children:y.consentField})]}),r.jsxs("p",{children:[r.jsx("span",{className:"text-muted-foreground",children:l("User acknowledged:")})," ",y.consentAcknowledged?r.jsx("span",{className:"font-medium text-green-700 dark:text-green-400",children:l("✓ Yes")}):r.jsx("span",{className:"font-medium text-amber-700 dark:text-amber-400",children:l("✗ No (legacy record or gate disabled)")})]})]}):y.consentText?r.jsx("p",{className:"text-xs text-amber-700 dark:text-amber-400 italic",children:l("⚠ No acknowledgment field configured — consent text is stored but not legally provable. Configure a consent acceptance field in form settings.")}):null]})]}),p.length>0&&r.jsx(ul,{open:i,onOpenChange:c,children:r.jsxs(ee,{children:[r.jsx(fl,{asChild:!0,children:r.jsx(ce,{className:"cursor-pointer hover:bg-muted/50 transition-colors",children:r.jsxs(ue,{className:"text-sm flex items-center justify-between",children:[r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(ia,{className:"h-4 w-4"}),le(l("Form Fields (%d)"),p.length)]}),r.jsx(no,{className:`h-4 w-4 text-muted-foreground transition-transform duration-200 ${i?"rotate-180":""}`})]})})}),r.jsx(ml,{children:r.jsx(ne,{className:"pt-0",children:r.jsxs(Jt,{children:[r.jsx(vn,{children:r.jsxs(Ie,{children:[r.jsx(Ee,{className:"text-xs",children:l("Key")}),r.jsx(Ee,{className:"text-xs",children:l("Value")})]})}),r.jsx(en,{children:p.map(([S,k])=>r.jsxs(Ie,{children:[r.jsx(fe,{className:"font-mono text-xs text-muted-foreground",children:S}),r.jsx(fe,{className:"text-sm break-all",children:k})]},S))})]})})})]})}),y.formHtml&&r.jsx(ul,{open:d,onOpenChange:u,children:r.jsxs(ee,{className:"overflow-hidden",children:[r.jsx(fl,{asChild:!0,children:r.jsx(ce,{className:"cursor-pointer hover:bg-muted/50 transition-colors",children:r.jsxs(ue,{className:"text-sm flex items-center justify-between",children:[r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(q0,{className:"h-4 w-4"}),l("Form HTML")]}),r.jsx(no,{className:`h-4 w-4 text-muted-foreground transition-transform duration-200 ${d?"rotate-180":""}`})]})})}),r.jsx(ml,{children:r.jsxs(ne,{className:"pt-0",children:[r.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:l("The form HTML used to collect this opt-in. You can copy it to inspect the original form.")}),r.jsxs("div",{className:"relative",children:[r.jsx(H,{variant:"ghost",size:"icon",className:"absolute top-2 right-2 h-7 w-7 z-10",onClick:()=>M1(y.formHtml),children:r.jsx(Xm,{className:"h-3.5 w-3.5"})}),r.jsx("pre",{className:"bg-muted rounded-lg p-4 overflow-auto text-xs font-mono max-h-[400px] whitespace-pre-wrap break-all",children:r.jsx("code",{children:y.formHtml})})]})]})})]})}),y.mailOptinHtml&&r.jsx(ul,{open:h,onOpenChange:m,children:r.jsxs(ee,{className:"overflow-hidden",children:[r.jsx(fl,{asChild:!0,children:r.jsx(ce,{className:"cursor-pointer hover:bg-muted/50 transition-colors",children:r.jsxs(ue,{className:"text-sm flex items-center justify-between",children:[r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(Gn,{className:"h-4 w-4"}),l("Opt-In Mail")]}),r.jsx(no,{className:`h-4 w-4 text-muted-foreground transition-transform duration-200 ${h?"rotate-180":""}`})]})})}),r.jsx(ml,{children:r.jsxs(ne,{className:"pt-0",children:[r.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:l("The confirmation email that was sent to the visitor.")}),r.jsxs("div",{className:"relative",children:[r.jsx(H,{variant:"ghost",size:"icon",className:"absolute top-2 right-2 h-7 w-7 z-10",onClick:()=>M1(y.mailOptinHtml),children:r.jsx(Xm,{className:"h-3.5 w-3.5"})}),r.jsx("pre",{className:"bg-muted rounded-lg p-4 overflow-auto text-xs font-mono max-h-[400px] whitespace-pre-wrap break-all",children:r.jsx("code",{children:y.mailOptinHtml})})]})]})})]})}),r.jsx(er,{id:"optin.detail-panel",data:{optin:y}})]}),r.jsxs("div",{className:"space-y-6",children:[r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsxs(ue,{className:"text-sm flex items-center gap-2",children:[r.jsx(Bi,{className:"h-4 w-4"}),l("Export Consent Record (GDPR)")]})}),r.jsxs(ne,{className:"space-y-2",children:[r.jsx(H,{variant:"outline",size:"sm",className:"w-full justify-start",asChild:!0,children:r.jsxs("a",{href:`${x}&format=json`,target:"_blank",rel:"noopener noreferrer",children:[r.jsx(Bi,{className:"h-3.5 w-3.5 mr-2"}),l("Export JSON")]})}),r.jsx(H,{variant:"outline",size:"sm",className:"w-full justify-start",asChild:!0,children:r.jsxs("a",{href:`${x}&format=csv`,target:"_blank",rel:"noopener noreferrer",children:[r.jsx(Bi,{className:"h-3.5 w-3.5 mr-2"}),l("Export CSV")]})})]})]}),r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsx(ue,{className:"text-sm",children:l("Quick Info")})}),r.jsxs(ne,{className:"space-y-3",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:l("Status")}),r.jsx("p",{className:"text-sm font-medium",children:y.confirmed?l("Confirmed"):l("Pending")})]}),r.jsx(Zi,{}),r.jsxs("div",{children:[r.jsx("p",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:l("Form")}),r.jsx("p",{className:"text-sm font-medium",children:y.formName})]}),r.jsx(Zi,{}),r.jsxs("div",{children:[r.jsx("p",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:l("Category")}),r.jsx("p",{className:"text-sm font-medium",children:y.categoryName||(y.category?`#${y.category}`:"—")})]}),r.jsx(Zi,{}),r.jsxs("div",{children:[r.jsx("p",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:l("Created")}),r.jsx("p",{className:"text-sm font-medium",children:y.createtime})]})]})]})]})]}),r.jsx(Er,{open:o,onOpenChange:a,children:r.jsxs(tr,{className:"max-w-[400px] rounded-2xl",children:[r.jsxs(nr,{children:[r.jsx(rr,{children:l("Delete Opt-In")}),r.jsx(sr,{children:l("Are you sure you want to permanently delete this opt-in? This action cannot be undone.")})]}),r.jsxs(vs,{children:[r.jsx(H,{variant:"outline",className:"rounded-lg",onClick:()=>a(!1),children:l("Cancel")}),r.jsx(H,{variant:"destructive",className:"rounded-lg",disabled:j.isPending,onClick:()=>j.mutate(),children:j.isPending?l("Deleting..."):l("Delete")})]})]})})]})}var qd="Switch",[xO]=Xt(qd),[gO,vO]=xO(qd),D1=f.forwardRef((e,t)=>{const{__scopeSwitch:n,name:s,checked:o,defaultChecked:a,required:i,disabled:c,value:d="on",onCheckedChange:u,form:h,...m}=e,[v,g]=f.useState(null),j=De(t,x=>g(x)),b=f.useRef(!1),w=v?h||!!v.closest("form"):!0,[y,p]=xn({prop:o,defaultProp:a!=null?a:!1,onChange:u,caller:qd});return r.jsxs(gO,{scope:n,checked:y,disabled:c,children:[r.jsx(Se.button,{type:"button",role:"switch","aria-checked":y,"aria-required":i,"data-state":z1(y),"data-disabled":c?"":void 0,disabled:c,value:d,...m,ref:j,onClick:pe(e.onClick,x=>{p(N=>!N),w&&(b.current=x.isPropagationStopped(),b.current||x.stopPropagation())})}),w&&r.jsx($1,{control:v,bubbles:!b.current,name:s,value:d,checked:y,required:i,disabled:c,form:h,style:{transform:"translateX(-100%)"}})]})});D1.displayName=qd;var F1="SwitchThumb",L1=f.forwardRef((e,t)=>{const{__scopeSwitch:n,...s}=e,o=vO(F1,n);return r.jsx(Se.span,{"data-state":z1(o.checked),"data-disabled":o.disabled?"":void 0,...s,ref:t})});L1.displayName=F1;var yO="SwitchBubbleInput",$1=f.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:s=!0,...o},a)=>{const i=f.useRef(null),c=De(i,a),d=Qh(n),u=gh(t);return f.useEffect(()=>{const h=i.current;if(!h)return;const m=window.HTMLInputElement.prototype,g=Object.getOwnPropertyDescriptor(m,"checked").set;if(d!==n&&g){const j=new Event("click",{bubbles:s});g.call(h,n),h.dispatchEvent(j)}},[d,n,s]),r.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...o,tabIndex:-1,ref:c,style:{...o.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});$1.displayName=yO;function z1(e){return e?"checked":"unchecked"}var U1=D1,bO=L1;const tn=f.forwardRef(({className:e,...t},n)=>r.jsx(U1,{className:Q("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",e),...t,ref:n,children:r.jsx(bO,{className:Q("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));tn.displayName=U1.displayName;function cp(){return r.jsx("span",{className:"pro-badge ml-1.5",children:l("PRO")})}function jO({title:e,description:t,featurePreview:n}){const{isProInstalled:s,isProLicenseActive:o}=Yi(),a=qn();return s&&o?null:r.jsxs("div",{className:"border border-dashed border-border rounded-lg p-6 relative overflow-hidden",children:[n&&r.jsx("div",{className:"blur-sm opacity-40 pointer-events-none select-none mb-4",children:n}),r.jsxs("div",{className:"relative z-10 text-center",children:[r.jsx("span",{className:"pro-badge mb-3 inline-block",children:l("PRO")}),r.jsx("h4",{className:"text-base font-semibold text-foreground mb-1",children:e}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4 max-w-md mx-auto",children:t}),s&&!o?r.jsx(H,{variant:"default",size:"sm",onClick:()=>a("/license"),children:l("Activate License")}):r.jsxs("a",{href:$t().upgradeUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 pro-gradient text-primary-foreground font-semibold text-sm px-5 py-2 rounded transition-opacity hover:opacity-90",children:[r.jsx(Nr,{className:"h-3.5 w-3.5"}),l("Upgrade to Pro")]})]})]})}const wO=["[doubleoptinlink]","[doubleoptoutlink]","[doubleoptin_form_date]","[doubleoptin_form_time]","[doubleoptin_form_url]","[doubleoptin_privacy_url]","[doi_email]","[doi_name]","[doi_first_name]","[doi_last_name]","[doi_phone]","[doi_company]","[doi_message]","[doi_subject]","[doi_address]","[doi_city]","[doi_zip]","[doi_country]"],dp=[{tag:"[doi_email]",key:"doi_email",label:"E-Mail",group:"identity"},{tag:"[doi_name]",key:"doi_name",label:"Name",group:"identity"},{tag:"[doi_first_name]",key:"doi_first_name",label:"First Name",group:"identity"},{tag:"[doi_last_name]",key:"doi_last_name",label:"Last Name",group:"identity"},{tag:"[doi_phone]",key:"doi_phone",label:"Phone",group:"contact"},{tag:"[doi_company]",key:"doi_company",label:"Company",group:"contact"},{tag:"[doi_subject]",key:"doi_subject",label:"Subject",group:"message"},{tag:"[doi_message]",key:"doi_message",label:"Message",group:"message"},{tag:"[doi_address]",key:"doi_address",label:"Address",group:"address"},{tag:"[doi_city]",key:"doi_city",label:"City",group:"address"},{tag:"[doi_zip]",key:"doi_zip",label:"ZIP",group:"address"},{tag:"[doi_country]",key:"doi_country",label:"Country",group:"address"}],NO=[{id:"identity",label:"Identity",description:"Who the user is."},{id:"contact",label:"Contact",description:"Phone, company."},{id:"message",label:"Message",description:"Free-text fields submitted with the form."},{id:"address",label:"Address",description:"Postal address parts."}];function B1(e){switch(e){case"recipient":return l("Recipient field");case"subject":return l("Subject");case"body_or_template":return l("Email body or template");default:return e}}function mo(e){return!e||e.length===0?"":e.map(B1).join(", ")}function up(e,t){var h,m,v,g;const n=[],s=((h=e.recipient)!=null?h:"").toString().trim(),o=t?new Set(t.map(j=>j.name)):null;(s===""||o!==null&&!o.has(s))&&n.push("recipient"),((m=e.subject)!=null?m:"").toString().trim()===""&&n.push("subject");const c=((v=e.body)!=null?v:"").toString().includes("[doubleoptinlink]"),u=((g=e.template)!=null?g:"").toString().trim()!=="";return!c&&!u&&n.push("body_or_template"),n}const V1={cf7:{label:"Contact Form 7",pro:!1},avada:{label:"Avada Forms",pro:!1,notice:l("Moving to Pro in 3.8.0")},elementor:{label:"Elementor Forms",pro:!0,info:l('1. Open Elementor editor 2. Select form widget 3. Add "Double Opt-In" to Submit Actions 4. Configure settings here')},wpforms:{label:"WPForms",pro:!0},gravity:{label:"Gravity Forms",pro:!0}};function SO(){var v;const{isProInstalled:e,isProLicenseActive:t}=Yi(),n=Xe(),s=qn(),{data:o,isLoading:a}=Ce({queryKey:["forms"],queryFn:()=>Z("/forms")}),i=(v=o==null?void 0:o.data)!=null?v:{},c=Te({mutationFn:({integration:g,formId:j})=>Z(`/forms/${g}/${j}/toggle`,{method:"POST"}),onSuccess:()=>{n.invalidateQueries({queryKey:["forms"]}),q.success(l("Form toggled"))},onError:g=>{if(g instanceof Dm&&g.code==="INCOMPLETE_CONFIG"){q.error(l("Cannot enable Double Opt-In: configuration is incomplete."),{description:g.missing&&g.missing.length>0?le(l("Missing: %s"),mo(g.missing)):void 0});return}q.error(g.message)}}),d=Object.entries(i).flatMap(([,g])=>{var j;return(j=g==null?void 0:g.forms)!=null?j:[]}),u=d.length,h=d.filter(g=>g.enabled).length;if(a)return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Form Management")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage Double Opt-In settings for all your forms")})]}),r.jsx("div",{className:"grid gap-4 md:grid-cols-3",children:[1,2,3].map(g=>r.jsx(ee,{children:r.jsx(ne,{className:"pt-6",children:r.jsx(oe,{className:"h-8 w-20"})})},g))}),[1,2].map(g=>r.jsx(ee,{children:r.jsx(ne,{className:"pt-6",children:r.jsx(oe,{className:"h-24 w-full"})})},g))]});const m=Object.keys(V1).map(g=>{var w,y;const j=V1[g],b=i[g];return{key:g,name:(w=b==null?void 0:b.name)!=null?w:j.label,forms:(y=b==null?void 0:b.forms)!=null?y:[],pro:j.pro,notice:j.notice,info:j.info}});return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Form Management")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage Double Opt-In settings for all your forms")})]}),r.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsx(ue,{className:"text-xs text-muted-foreground",children:l("Total Forms")})}),r.jsx(ne,{children:r.jsxs("div",{className:"text-2xl font-bold flex items-center gap-2",children:[u," ",r.jsx(ia,{className:"h-4 w-4 text-primary"})]})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsx(ue,{className:"text-xs text-muted-foreground",children:l("DOI Active")})}),r.jsx(ne,{children:r.jsx("div",{className:"text-2xl font-bold text-success",children:h})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsx(ue,{className:"text-xs text-muted-foreground",children:l("DOI Inactive")})}),r.jsx(ne,{children:r.jsx("div",{className:"text-2xl font-bold text-warning",children:u-h})})]})]}),m.map(g=>{const j=g.pro,b=j&&(!e||!t);return r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-3",children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ia,{className:"h-4 w-4 text-muted-foreground"}),r.jsx(ue,{className:"text-sm font-semibold",children:g.name}),j&&!t&&r.jsx(cp,{}),r.jsx(Qe,{variant:"secondary",className:"ml-auto text-[10px] bg-primary/10 text-primary border-0",children:le(l("%s forms"),g.forms.length)})]})}),r.jsxs(ne,{children:[g.notice&&r.jsxs("div",{className:"flex items-center gap-2 bg-warning/10 text-warning rounded px-3 py-2 text-xs mb-3",children:[r.jsx(yt,{className:"h-3.5 w-3.5"})," ",g.notice]}),g.info&&!b&&r.jsxs("div",{className:"flex items-start gap-2 bg-primary/5 text-primary rounded px-3 py-2 text-xs mb-3",children:[r.jsx(yt,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"})," ",g.info]}),b?r.jsx(jO,{title:le(l("%s Integration"),g.name),description:le(l("Unlock Double Opt-In support for %s with Pro."),g.name)}):g.forms.length===0?r.jsx("p",{className:"text-sm text-muted-foreground py-4 text-center",children:l("No forms detected.")}):r.jsxs(Jt,{children:[r.jsx(vn,{children:r.jsxs(Ie,{children:[r.jsx(Ee,{className:"text-xs w-20",children:l("Status")}),r.jsx(Ee,{className:"text-xs",children:l("Form Title")}),r.jsx(Ee,{className:"text-xs w-24",children:l("Form ID")}),r.jsx(Ee,{className:"text-xs text-right w-40",children:l("Actions")})]})}),r.jsx(en,{children:g.forms.map(w=>{var N;const y=w.isComplete!==!1,p=(N=w.missingFields)!=null?N:[],x=!y&&!w.enabled;return r.jsxs(Ie,{children:[r.jsx(fe,{children:r.jsx("span",{title:x?le(l("Complete the configuration to enable. Missing: %s"),mo(p)):void 0,children:r.jsx(tn,{checked:!!w.enabled,disabled:x,onCheckedChange:()=>c.mutate({integration:g.key,formId:w.id}),className:"data-[state=checked]:bg-success"})})}),r.jsx(fe,{className:"font-medium text-sm",children:r.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[r.jsx("span",{children:w.title}),!y&&r.jsxs(Qe,{variant:"outline",title:le(l("Missing: %s"),mo(p)),className:"text-[10px] border-warning text-warning gap-1",children:[r.jsx(zt,{className:"h-3 w-3"}),l("Configuration incomplete")]})]})}),r.jsx(fe,{children:r.jsxs(Qe,{variant:"secondary",className:"font-mono text-[10px]",children:["#",w.id]})}),r.jsx(fe,{className:"text-right",children:r.jsxs("div",{className:"flex items-center justify-end gap-2",children:[r.jsx(H,{size:"sm",className:"text-xs",onClick:()=>s(`/forms/${g.key}/${w.id}/settings`),children:l("Configure")}),r.jsx(H,{size:"icon",variant:"ghost",className:"h-9 w-9 text-muted-foreground hover:text-foreground",title:l("Edit form"),"aria-label":l("Edit form"),disabled:!w.edit_url,onClick:()=>{w.edit_url&&window.open(String(w.edit_url),"_blank","noopener,noreferrer")},children:r.jsx(cd,{className:"h-4 w-4"})})]})})]},w.id)})})]})]})]},g.key)})]})}var CO=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],kO=CO.reduce((e,t)=>{const n=Sh(`Primitive.${t}`),s=f.forwardRef((o,a)=>{const{asChild:i,...c}=o,d=i?n:t;return typeof window!="undefined"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(d,{...c,ref:a})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),_O="Label",H1=f.forwardRef((e,t)=>r.jsx(kO.label,{...e,ref:t,onMouseDown:n=>{var o;n.target.closest("button, input, select, textarea")||((o=e.onMouseDown)==null||o.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));H1.displayName=_O;var W1=H1;const EO=oa("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),X=f.forwardRef(({className:e,...t},n)=>r.jsx(W1,{ref:n,className:Q(EO(),e),...t}));X.displayName=W1.displayName;var fp="rovingFocusGroup.onEntryFocus",PO={bubbles:!1,cancelable:!0},pl="RovingFocusGroup",[mp,q1,TO]=td(pl),[RO,K1]=Xt(pl,[TO]),[AO,OO]=RO(pl),Q1=f.forwardRef((e,t)=>r.jsx(mp.Provider,{scope:e.__scopeRovingFocusGroup,children:r.jsx(mp.Slot,{scope:e.__scopeRovingFocusGroup,children:r.jsx(IO,{...e,ref:t})})}));Q1.displayName=pl;var IO=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:s,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:u,preventScrollOnEntryFocus:h=!1,...m}=e,v=f.useRef(null),g=De(t,v),j=zd(a),[b,w]=xn({prop:i,defaultProp:c!=null?c:null,onChange:d,caller:pl}),[y,p]=f.useState(!1),x=pn(u),N=q1(n),S=f.useRef(!1),[k,E]=f.useState(0);return f.useEffect(()=>{const C=v.current;if(C)return C.addEventListener(fp,x),()=>C.removeEventListener(fp,x)},[x]),r.jsx(AO,{scope:n,orientation:s,dir:j,loop:o,currentTabStopId:b,onItemFocus:f.useCallback(C=>w(C),[w]),onItemShiftTab:f.useCallback(()=>p(!0),[]),onFocusableItemAdd:f.useCallback(()=>E(C=>C+1),[]),onFocusableItemRemove:f.useCallback(()=>E(C=>C-1),[]),children:r.jsx(Se.div,{tabIndex:y||k===0?-1:0,"data-orientation":s,...m,ref:g,style:{outline:"none",...e.style},onMouseDown:pe(e.onMouseDown,()=>{S.current=!0}),onFocus:pe(e.onFocus,C=>{const R=!S.current;if(C.target===C.currentTarget&&R&&!y){const T=new CustomEvent(fp,PO);if(C.currentTarget.dispatchEvent(T),!T.defaultPrevented){const A=N().filter(D=>D.focusable),M=A.find(D=>D.active),B=A.find(D=>D.id===b),re=[M,B,...A].filter(Boolean).map(D=>D.ref.current);Y1(re,h)}}S.current=!1}),onBlur:pe(e.onBlur,()=>p(!1))})})}),G1="RovingFocusGroupItem",X1=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:s=!0,active:o=!1,tabStopId:a,children:i,...c}=e,d=Rn(),u=a||d,h=OO(G1,n),m=h.currentTabStopId===u,v=q1(n),{onFocusableItemAdd:g,onFocusableItemRemove:j,currentTabStopId:b}=h;return f.useEffect(()=>{if(s)return g(),()=>j()},[s,g,j]),r.jsx(mp.ItemSlot,{scope:n,id:u,focusable:s,active:o,children:r.jsx(Se.span,{tabIndex:m?0:-1,"data-orientation":h.orientation,...c,ref:t,onMouseDown:pe(e.onMouseDown,w=>{s?h.onItemFocus(u):w.preventDefault()}),onFocus:pe(e.onFocus,()=>h.onItemFocus(u)),onKeyDown:pe(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){h.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const y=FO(w,h.orientation,h.dir);if(y!==void 0){if(w.metaKey||w.ctrlKey||w.altKey||w.shiftKey)return;w.preventDefault();let x=v().filter(N=>N.focusable).map(N=>N.ref.current);if(y==="last")x.reverse();else if(y==="prev"||y==="next"){y==="prev"&&x.reverse();const N=x.indexOf(w.currentTarget);x=h.loop?LO(x,N+1):x.slice(N+1)}setTimeout(()=>Y1(x))}}),children:typeof i=="function"?i({isCurrentTabStop:m,hasTabStop:b!=null}):i})})});X1.displayName=G1;var MO={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function DO(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function FO(e,t,n){const s=DO(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(s))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(s)))return MO[s]}function Y1(e,t=!1){const n=document.activeElement;for(const s of e)if(s===n||(s.focus({preventScroll:t}),document.activeElement!==n))return}function LO(e,t){return e.map((n,s)=>e[(t+s)%e.length])}var $O=Q1,zO=X1,Kd="Tabs",[UO]=Xt(Kd,[K1]),Z1=K1(),[BO,hp]=UO(Kd),J1=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,onValueChange:o,defaultValue:a,orientation:i="horizontal",dir:c,activationMode:d="automatic",...u}=e,h=zd(c),[m,v]=xn({prop:s,onChange:o,defaultProp:a!=null?a:"",caller:Kd});return r.jsx(BO,{scope:n,baseId:Rn(),value:m,onValueChange:v,orientation:i,dir:h,activationMode:d,children:r.jsx(Se.div,{dir:h,"data-orientation":i,...u,ref:t})})});J1.displayName=Kd;var eN="TabsList",tN=f.forwardRef((e,t)=>{const{__scopeTabs:n,loop:s=!0,...o}=e,a=hp(eN,n),i=Z1(n);return r.jsx($O,{asChild:!0,...i,orientation:a.orientation,dir:a.dir,loop:s,children:r.jsx(Se.div,{role:"tablist","aria-orientation":a.orientation,...o,ref:t})})});tN.displayName=eN;var nN="TabsTrigger",rN=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,disabled:o=!1,...a}=e,i=hp(nN,n),c=Z1(n),d=aN(i.baseId,s),u=iN(i.baseId,s),h=s===i.value;return r.jsx(zO,{asChild:!0,...c,focusable:!o,active:h,children:r.jsx(Se.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":u,"data-state":h?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:d,...a,ref:t,onMouseDown:pe(e.onMouseDown,m=>{!o&&m.button===0&&m.ctrlKey===!1?i.onValueChange(s):m.preventDefault()}),onKeyDown:pe(e.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&i.onValueChange(s)}),onFocus:pe(e.onFocus,()=>{const m=i.activationMode!=="manual";!h&&!o&&m&&i.onValueChange(s)})})})});rN.displayName=nN;var sN="TabsContent",oN=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,forceMount:o,children:a,...i}=e,c=hp(sN,n),d=aN(c.baseId,s),u=iN(c.baseId,s),h=s===c.value,m=f.useRef(h);return f.useEffect(()=>{const v=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(v)},[]),r.jsx(Kn,{present:o||h,children:({present:v})=>r.jsx(Se.div,{"data-state":h?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!v,id:u,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0},children:v&&a})})});oN.displayName=sN;function aN(e,t){return`${e}-trigger-${t}`}function iN(e,t){return`${e}-content-${t}`}var VO=J1,lN=tN,cN=rN,dN=oN;const uN=VO,pp=f.forwardRef(({className:e,...t},n)=>r.jsx(lN,{ref:n,className:Q("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));pp.displayName=lN.displayName;const ys=f.forwardRef(({className:e,...t},n)=>r.jsx(cN,{ref:n,className:Q("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",e),...t}));ys.displayName=cN.displayName;const xl=f.forwardRef(({className:e,...t},n)=>r.jsx(dN,{ref:n,className:Q("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));xl.displayName=dN.displayName;const Tr=f.forwardRef(({className:e,...t},n)=>r.jsx("textarea",{className:Q("flex min-h-[80px] w-full rounded-md border border-input bg-card px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-colors hover:border-foreground/30",e),ref:n,...t}));Tr.displayName="Textarea";function HO({settings:e,onChange:t,fields:n,categories:s,pages:o}){var h,m,v,g,j,b,w,y;const a=((h=e.consentText)!=null?h:"").toString().trim(),i=((m=e.consentField)!=null?m:"").toString().trim(),c=new Set(n.map(p=>p.name===null||p.name===void 0?"":String(p.name).toLowerCase()).filter(Boolean)),d=l("Submissions are still accepted, but they are stored without any provable consent."),u=i&&!c.has(i.toLowerCase())?{tone:"red",message:le(l('The selected acceptance field "%s" does not exist on this form.'),i)+" "+d+" "+l("Pick a field that's actually present, or leave the dropdown empty.")}:a&&!i?{tone:"amber",message:l("Consent text is configured but no acceptance field is set. The text is stored with each opt-in for audit, but the user never has to confirm it — this is not GDPR Art. 7 compliant. Pick an acceptance field below to enable the consent gate.")}:null;return r.jsxs("div",{className:"space-y-6",children:[r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{className:"text-base",children:l("Consent & categorization")}),r.jsx(Pe,{children:l("What gets stored with each opt-in for GDPR audit, and how this form's opt-ins are grouped.")})]}),r.jsxs(ne,{className:"space-y-5",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"consent-text",children:l("Consent text (GDPR)")}),r.jsx(Tr,{id:"consent-text",className:"mt-1.5",placeholder:l("I agree to receive the newsletter..."),rows:3,value:(v=e.consentText)!=null?v:"",onChange:p=>t("consentText",p.target.value)}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l("The wording the user is asked to agree to. Stored alongside each opt-in for the GDPR Art. 7 audit trail. Should match the label of the acceptance field below.")})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"consent-field",children:l("Consent acceptance field")}),r.jsxs(je,{value:(g=e.consentField)!=null?g:"",onValueChange:p=>t("consentField",p==="__none__"?"":p),children:[r.jsx(ve,{id:"consent-field",className:"mt-1.5",children:r.jsx(we,{placeholder:l("-- None --")})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__none__",children:l("-- None --")}),n.filter(p=>p.name!==null&&p.name!==void 0&&p.name!=="").map(p=>{const x=String(p.name);return r.jsx(z,{value:x,children:p.label||x},x)})]})]}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l("Form field that captures the user's explicit consent (e.g. a CF7")," ",r.jsx("code",{children:"[acceptance]"})," ",l("checkbox). Submissions without this field set are rejected — the user must actively confirm. Leave empty for no acknowledgment gate (audit log only, not GDPR-compliant).")]})]}),u&&r.jsxs("div",{className:"rounded-md border p-3 flex items-start gap-2 text-xs "+(u.tone==="red"?"border-red-200 bg-red-50 text-red-900 dark:border-red-900/50 dark:bg-red-950/30 dark:text-red-200":"border-amber-200 bg-amber-50 text-amber-900 dark:border-amber-900/50 dark:bg-amber-950/30 dark:text-amber-200"),role:u.tone==="red"?"alert":void 0,children:[u.tone==="red"?r.jsx(ld,{className:"h-4 w-4 mt-0.5 shrink-0"}):r.jsx(zt,{className:"h-4 w-4 mt-0.5 shrink-0"}),r.jsx("span",{className:"leading-relaxed",children:u.message})]}),r.jsxs("div",{children:[r.jsx(X,{children:l("Category")}),r.jsxs(je,{value:String((j=e.category)!=null?j:0),onValueChange:p=>t("category",Number(p)),children:[r.jsx(ve,{className:"mt-1.5",children:r.jsx(we,{placeholder:l("Select category")})}),r.jsx(ye,{children:Object.entries(s).map(([p,x])=>r.jsx(z,{value:String(p),children:String(x)},p))})]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l("Optional grouping for opt-ins in the overview and stats. Useful when several forms feed into different topics (newsletter, contact, etc.).")})]})]})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{className:"text-base",children:l("Submission rules")}),r.jsx(Pe,{children:l("Decide when a submission triggers the opt-in and where the user lands afterwards.")})]}),r.jsxs(ne,{className:"space-y-5",children:[r.jsxs("div",{children:[r.jsx(X,{children:l("Conditional trigger")}),r.jsxs(je,{value:(b=e.conditions)!=null?b:"disabled",onValueChange:p=>t("conditions",p),children:[r.jsx(ve,{className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"disabled",children:l("Disabled")}),n.filter(p=>p.name!==null&&p.name!==void 0&&p.name!=="").map(p=>{const x=String(p.name);return r.jsx(z,{value:x,children:p.label||x},x)})]})]}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l('Gate the opt-in on a form field. Example: only fire the confirmation mail when the user ticked a "Subscribe me" checkbox. Different from the consent acceptance field above — that one is the mandatory GDPR gate, this one is an optional secondary trigger. Set to')," ",r.jsx("code",{children:"Disabled"})," ",l("to always fire when the form is submitted.")]})]}),r.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{children:l("Confirmation page")}),r.jsxs(je,{value:String((w=e.confirmationPage)!=null?w:-1),onValueChange:p=>t("confirmationPage",Number(p)),children:[r.jsx(ve,{className:"mt-1.5",children:r.jsx(we,{placeholder:l("Select page")})}),r.jsx(ye,{children:Object.entries(o).map(([p,x])=>r.jsx(z,{value:String(p),children:String(x)},p))})]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l("Where the user lands after clicking the confirmation link. Leave on default to fall back to the site-wide confirmation page.")})]}),r.jsxs("div",{children:[r.jsx(X,{children:l("Error redirect page")}),r.jsxs(je,{value:String((y=e.errorRedirectPage)!=null?y:-1),onValueChange:p=>t("errorRedirectPage",Number(p)),children:[r.jsx(ve,{className:"mt-1.5",children:r.jsx(we,{placeholder:l("Select page")})}),r.jsx(ye,{children:Object.entries(o).map(([p,x])=>r.jsx(z,{value:String(p),children:String(x)},p))})]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l("Where the user is sent on opt-in errors (invalid email, expired link, etc.). Leave on default to show a toast notification instead of a redirect.")})]})]})]})]})]})}function WO({settings:e,onChange:t,fields:n,templates:s,templateDetails:o,adminUrl:a}){var m,v,g,j,b,w,y,p;const i=(m=e.template)!=null?m:"",c=i.startsWith("custom_"),d=c?o==null?void 0:o[i]:null,u=c,h=d&&a?`#/email-templates/${d.id}/edit`:null;return r.jsxs("div",{className:"space-y-6",children:[r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{className:"text-base",children:l("Sender & recipient")}),r.jsx(Pe,{children:l("Where the confirmation email comes from and which form field carries the user's address.")})]}),r.jsxs(ne,{className:"space-y-5",children:[r.jsxs("div",{children:[r.jsxs(X,{children:[l("Recipient field")," ",r.jsx(xp,{})]}),r.jsxs(je,{value:(v=e.recipient)!=null?v:"",onValueChange:x=>t("recipient",x),children:[r.jsx(ve,{className:"mt-1.5",children:r.jsx(we,{placeholder:l("Select field")})}),r.jsx(ye,{children:n.filter(x=>x.name!==null&&x.name!==void 0&&x.name!=="").map(x=>{const N=String(x.name);return r.jsx(z,{value:N,children:x.label||N},N)})})]}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l("The form field that holds the subscriber's email address.")," ",r.jsx("strong",{children:l("Required")})," ",l("— without it the confirmation mail has nowhere to go and the opt-in is rejected.")]})]}),r.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"from-email",children:l("From email")}),r.jsx(Re,{id:"from-email",className:"mt-1.5",value:(g=e.sender)!=null?g:"",onChange:x=>t("sender",x.target.value)}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l("Sender address for the confirmation mail. Leave empty to use the WordPress default (site admin email).")})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"from-name",children:l("From name")}),r.jsx(Re,{id:"from-name",className:"mt-1.5",value:(j=e.senderName)!=null?j:"",onChange:x=>t("senderName",x.target.value)}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l("Display name shown as")," ",r.jsx("code",{children:"From: Name <email>"}),l(". Leave empty for a bare-email From header.")]})]})]})]})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{className:"text-base",children:l("Email content")}),r.jsx(Pe,{children:l("Subject, template, and the body shown to the user.")})]}),r.jsxs(ne,{className:"space-y-5",children:[r.jsxs("div",{children:[r.jsxs(X,{htmlFor:"subject",children:[l("Subject")," ",r.jsx(xp,{})]}),r.jsx(Re,{id:"subject",className:"mt-1.5",value:(b=e.subject)!=null?b:"",onChange:x=>t("subject",x.target.value)}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l("Subject line of the confirmation mail.")," ",r.jsx("strong",{children:l("Required")}),l(" — empty subjects often land in spam folders.")]})]}),r.jsxs("div",{children:[r.jsx(X,{children:l("Email template")}),r.jsxs(je,{value:(w=e.template)!=null?w:"",onValueChange:x=>t("template",x),children:[r.jsx(ve,{className:"mt-1.5",children:r.jsx(we,{placeholder:l("Select template")})}),r.jsx(ye,{children:Object.entries(s).map(([x,N])=>r.jsx(z,{value:x,children:String(N)},x))})]}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l("HTML wrapper for the body.")," ",r.jsx("code",{children:"blank"})," ",l("keeps the body verbatim; the built-in")," ",r.jsx("code",{children:"newsletter_*"})," ",l("templates wrap it in a styled HTML shell. Custom templates are built in the Email Designer and override the body field below.")]})]}),r.jsxs("div",{children:[r.jsxs(X,{htmlFor:"body",children:[l("Message body")," ",!c&&r.jsx(xp,{})]}),u?r.jsx(qO,{title:(y=d==null?void 0:d.title)!=null?y:i,editorUrl:h}):r.jsxs(r.Fragment,{children:[r.jsx(Tr,{id:"body",className:"mt-1.5 font-mono text-xs",rows:12,value:(p=e.body)!=null?p:"",onChange:x=>t("body",x.target.value)}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l("Mail body. Must contain")," ",r.jsx("code",{children:"[doubleoptinlink]"}),l(" — that placeholder is replaced by the actual confirmation URL at send time. Pick a custom template above to bypass this field and edit the body visually instead.")]}),r.jsxs(ul,{children:[r.jsx(fl,{className:"text-xs text-primary hover:underline mt-1",children:l("Show placeholders")}),r.jsx(ml,{className:"mt-2 flex flex-wrap gap-1",children:wO.map(x=>r.jsx("code",{className:"bg-secondary text-foreground text-[10px] px-1.5 py-0.5 rounded cursor-pointer hover:bg-primary/10",children:x},x))})]})]})]})]})]})]})}function xp(){return r.jsx("span",{"aria-label":l("Required"),title:l("Required field — Double Opt-In cannot be enabled until this is filled in"),className:"text-destructive font-bold",children:"*"})}function qO({title:e,editorUrl:t}){return r.jsxs("div",{className:"mt-1.5 rounded-lg border bg-gradient-to-br from-primary to-primary/70 text-primary-foreground p-5 flex items-start gap-4",children:[r.jsx("div",{className:"rounded-full bg-primary-foreground/15 p-2 shrink-0",children:r.jsx(Gn,{className:"h-5 w-5"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("h4",{className:"font-semibold mb-1",children:l("Custom template selected")}),r.jsx("p",{className:"text-sm text-primary-foreground/80 mb-3",children:le(l("%s was built in the email designer. Edit the message body there — this textarea is bypassed for custom templates."),e)}),t?r.jsx(H,{asChild:!0,variant:"secondary",size:"sm",children:r.jsxs("a",{href:t,children:[r.jsx(dd,{className:"h-3.5 w-3.5 mr-1.5"}),l("Edit in Email Designer")]})}):r.jsx(H,{variant:"secondary",size:"sm",disabled:!0,children:l("Editor link unavailable")})]})]})}function KO({settings:e,onChange:t,fields:n}){var c;const s=(d,u)=>{var m;const h={...(m=e.fieldMapping)!=null?m:{},[d]:u};t("fieldMapping",h)},o=dp.filter(d=>{var u;return!!((u=e.fieldMapping)!=null&&u[d.key])}).length,a=new Set(Object.values((c=e.fieldMapping)!=null?c:{}).filter(Boolean).map(d=>String(d))),i=n.filter(d=>d.name!==null&&d.name!==void 0&&d.name!==""&&!a.has(String(d.name)));return r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{className:"text-base",children:l("Field mapping")}),r.jsxs(Pe,{children:[l("Map placeholder tags used in the email body to the real form fields. Unmapped tags fall back to auto-detection by name (e.g.")," ",r.jsx("code",{children:"your-email"})," → ",r.jsx("code",{children:"[doi_email]"}),l("); if no auto-match is found they render as an empty string. System placeholders like")," ",r.jsx("code",{children:"[doubleoptinlink]"})," ",l("are filled by the plugin itself and are not mapped here.")]})]}),r.jsxs(ne,{className:"space-y-6",children:[NO.map(d=>{const u=dp.filter(h=>h.group===d.id);return u.length===0?null:r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-baseline gap-2 mb-3",children:[r.jsx("h4",{className:"text-sm font-semibold",children:d.label}),r.jsx("span",{className:"text-xs text-muted-foreground",children:d.description})]}),r.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:u.map(h=>{var m,v;return r.jsx(QO,{mapping:h,value:(v=(m=e.fieldMapping)==null?void 0:m[h.key])!=null?v:"",fields:n,onChange:g=>s(h.key,g)},h.key)})})]},d.id)}),r.jsxs("div",{className:"border-t pt-4 space-y-2 text-xs",children:[r.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[r.jsx(W0,{className:"h-3.5 w-3.5 text-green-600"}),r.jsx("span",{children:le(l("%d of %d placeholders mapped"),o,dp.length)})]}),i.length>0&&r.jsxs("div",{className:"flex items-start gap-2 text-amber-700",children:[r.jsx(ld,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"}),r.jsxs("div",{children:[r.jsxs("span",{className:"font-medium",children:[i.length," form field",i.length===1?"":"s"," not mapped"]}),r.jsxs("span",{className:"text-muted-foreground",children:[" ",l("— captured on submit but never read by the email.")," "]}),r.jsxs("div",{className:"mt-1 flex flex-wrap gap-1",children:[i.slice(0,8).map(d=>{const u=String(d.name);return r.jsx(Qe,{variant:"outline",className:"text-[10px] font-mono",children:d.label||u},u)}),i.length>8&&r.jsxs(Qe,{variant:"outline",className:"text-[10px]",children:["+",i.length-8]})]})]})]})]})]})]})}function QO({mapping:e,value:t,fields:n,onChange:s}){const o=!!t;return r.jsxs("div",{className:"rounded-md border p-3 space-y-2 transition-colors "+(o?"bg-primary/5 border-primary/20":"bg-muted/30"),children:[r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsx("code",{className:"text-[11px] font-mono px-1.5 py-0.5 rounded "+(o?"bg-primary/10 text-primary":"bg-secondary text-muted-foreground"),children:e.tag}),r.jsx("span",{className:"text-xs text-muted-foreground truncate",children:e.label})]}),r.jsxs(je,{value:t||"__none__",onValueChange:a=>s(a==="__none__"?"":a),children:[r.jsx(ve,{className:"h-8 text-xs",children:r.jsx(we,{placeholder:l("Select form field")})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__none__",children:l("-- None --")}),n.filter(a=>a.name!==null&&a.name!==void 0&&a.name!=="").map(a=>{const i=String(a.name);return r.jsx(z,{value:i,children:a.label||i},i)})]})]})]})}const GO=["general","email","mapping","pro"];function XO(){var T,A,M,B,O,re;const{integration:e,id:t}=Gc(),n=qn(),s=Xe(),[o,a]=p_(),i=o.get("tab"),c=GO.includes(i!=null?i:"")?i:"general",d=D=>{const te=new URLSearchParams(o);D==="general"?te.delete("tab"):te.set("tab",D),a(te,{replace:!0})},[u,h]=f.useState({}),{data:m,isLoading:v}=Ce({queryKey:["form-settings",t,e],queryFn:()=>Z(`/forms/${e}/${t}/settings`),enabled:!!e&&!!t}),g=(T=m==null?void 0:m.data)!=null&&T.fields&&Array.isArray(m.data.fields)?m.data.fields:[];f.useEffect(()=>{var D;if((D=m==null?void 0:m.data)!=null&&D.settings){const te=m.data.settings,I=Array.isArray(m.data.fields)?m.data.fields:[];if(te.enabled&&up(te,I).length>0){h({...te,enabled:!1});return}h({...te})}},[m]);const j=Te({mutationFn:D=>Z(`/forms/${e}/${t}/settings`,{method:"PUT",body:JSON.stringify({settings:D})}),onSuccess:D=>{var te,I;if(s.invalidateQueries({queryKey:["forms"]}),s.invalidateQueries({queryKey:["form-settings"]}),(te=D.data)!=null&&te.autoDisabled){const F=(I=D.data.missing)!=null?I:[];q.warning(l("Double Opt-In was auto-disabled."),{description:F.length>0?le(l("Configuration is incomplete: %s."),mo(F)):l("Configuration is incomplete.")}),h(J=>({...J,enabled:!1}));return}q.success(l("Settings saved"))},onError:D=>{if(D instanceof Dm&&D.code==="INCOMPLETE_CONFIG"){q.error(l("Cannot enable Double Opt-In: configuration is incomplete."),{description:D.missing&&D.missing.length>0?le(l("Missing: %s"),mo(D.missing)):void 0}),h(te=>({...te,enabled:!1}));return}q.error(D.message)}}),b=(D,te)=>h(I=>{const F={...I,[D]:te};return F.enabled&&up(F,g).length>0&&(F.enabled=!1),F}),y=f.useSyncExternalStore(i0,()=>l0("forms.pro-features"),()=>[]).length>0;if(f.useEffect(()=>{c==="pro"&&!y&&d("general")},[c,y]),v||!(m!=null&&m.data))return r.jsxs("div",{className:"space-y-4",children:[r.jsx(oe,{className:"h-10 w-64"}),r.jsx(oe,{className:"h-10 w-full"}),r.jsx(oe,{className:"h-96 w-full"})]});const p=m.data,x=$t(),N={settings:u,onChange:b,fields:g,templates:(A=p.templates)!=null?A:{},categories:(M=p.categories)!=null?M:{},pages:(B=p.pages)!=null?B:{},templateDetails:(O=p.templateDetails)!=null?O:{},adminUrl:x.adminUrl,integration:p.integration},S=up(u,g),k=S.length===0,E=!k&&!u.enabled,C=D=>{if(D&&!k){q.error(l("Cannot enable Double Opt-In: configuration is incomplete."),{description:le(l("Missing: %s."),mo(S))});return}b("enabled",D)},R=new Set;return(S.includes("recipient")||S.includes("subject")||S.includes("body_or_template"))&&R.add("email"),r.jsxs("div",{className:"space-y-6",children:[r.jsx("div",{className:"sticky top-0 z-30 -mx-4 sm:-mx-6 px-4 sm:px-6 pt-4 pb-4 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80 border-b",children:r.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[r.jsxs("div",{className:"space-y-2 min-w-0",children:[r.jsxs("button",{onClick:()=>n("/forms"),className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground",children:[r.jsx(ad,{className:"h-3.5 w-3.5"}),l("Back to forms")]}),r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight truncate",children:p.title}),r.jsx("p",{className:"text-muted-foreground text-sm",children:le(l("Configure Double Opt-In for this %s form."),p.integration)})]})]}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsxs("div",{className:"flex items-center gap-2 rounded-lg border px-3 py-2 "+(k?"bg-card":"bg-amber-50 border-amber-300 dark:bg-amber-950/30 dark:border-amber-900/50"),title:k?void 0:le(l("Configuration incomplete. Missing: %s"),mo(S)),children:[!k&&r.jsx(zt,{className:"h-4 w-4 text-amber-600 shrink-0","aria-label":l("Configuration incomplete")}),r.jsx(X,{htmlFor:"form-enabled",className:"text-sm",children:u.enabled?l("Enabled"):l("Disabled")}),r.jsx(tn,{id:"form-enabled",checked:(re=u.enabled)!=null?re:!1,disabled:E,onCheckedChange:C,className:"data-[state=checked]:bg-success"})]}),r.jsxs(Qe,{variant:"secondary",className:"font-mono text-[10px] hidden sm:inline-flex",children:["#",p.id]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(H,{variant:"outline",size:"sm",onClick:()=>n("/forms"),children:l("Cancel")}),r.jsx(H,{size:"sm",disabled:j.isPending,onClick:()=>j.mutate(u),children:j.isPending?l("Saving..."):l("Save settings")})]})]})]})}),!k&&r.jsx("div",{role:"alert",className:"!mt-20 rounded-md border border-amber-300 bg-amber-50 px-4 py-3 text-sm text-amber-900 dark:border-amber-900/50 dark:bg-amber-950/30 dark:text-amber-200",children:r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(zt,{className:"h-4 w-4 mt-0.5 shrink-0"}),r.jsxs("div",{className:"space-y-1",children:[r.jsx("div",{className:"font-semibold",children:l("Configuration incomplete")}),r.jsx("p",{className:"leading-relaxed",children:l("Double Opt-In cannot be enabled for this form until the following required fields are filled in:")}),r.jsx("ul",{className:"list-disc list-inside ml-1 space-y-0.5",children:S.map(D=>r.jsx("li",{children:B1(D)},D))})]})]})}),r.jsxs(uN,{value:c,onValueChange:d,className:"!mt-12",children:[r.jsxs(pp,{children:[r.jsx(ys,{value:"general",children:l("General")}),r.jsxs(ys,{value:"email",className:"gap-1",children:[l("Email"),R.has("email")&&r.jsx(zt,{className:"h-3 w-3 text-amber-600","aria-label":l("Tab contains incomplete required fields")})]}),r.jsx(ys,{value:"mapping",children:l("Mapping")}),y&&r.jsx(ys,{value:"pro",children:l("Pro Features")})]}),r.jsx(xl,{value:"general",className:"mt-6",children:r.jsx(HO,{...N})}),r.jsx(xl,{value:"email",className:"mt-6",children:r.jsx(WO,{...N})}),r.jsx(xl,{value:"mapping",className:"mt-6",children:r.jsx(KO,{...N})}),y&&r.jsx(xl,{value:"pro",className:"mt-6",children:r.jsx(er,{id:"forms.pro-features",data:N})})]}),r.jsx(er,{id:"forms.integration-settings",data:{form:{id:p.id,title:p.title,integration:p.integration},integration:p.integration,settings:u}})]})}function YO(){return r.jsxs(Jt,{children:[r.jsx(vn,{children:r.jsx(Ie,{children:Array.from({length:6}).map((e,t)=>r.jsx(Ee,{children:r.jsx(oe,{className:"h-3 w-16"})},t))})}),r.jsx(en,{children:Array.from({length:3}).map((e,t)=>r.jsx(Ie,{children:Array.from({length:6}).map((n,s)=>r.jsx(fe,{children:r.jsx(oe,{className:"h-3 w-full"})},s))},t))})]})}function fN(){var p;const e=Xe(),[t,n]=f.useState(""),[s,o]=f.useState(null),[a,i]=f.useState(null),[c,d]=f.useState(""),{data:u,isLoading:h}=Ce({queryKey:["categories"],queryFn:()=>Z("/categories")}),m=Te({mutationFn:x=>Z("/categories",{method:"POST",body:JSON.stringify({name:x})}),onSuccess:()=>{q.success(l("Category created")),n(""),e.invalidateQueries({queryKey:["categories"]})},onError:x=>{q.error(x.message||l("Failed to create category"))}}),v=Te({mutationFn:({id:x,name:N})=>Z(`/categories/${x}`,{method:"PUT",body:JSON.stringify({name:N})}),onSuccess:()=>{q.success(l("Category updated")),i(null),d(""),e.invalidateQueries({queryKey:["categories"]})},onError:x=>{q.error(x.message||l("Failed to update category"))}}),g=Te({mutationFn:x=>Z(`/categories/${x}`,{method:"DELETE"}),onSuccess:()=>{q.success(l("Category deleted")),o(null),e.invalidateQueries({queryKey:["categories"]})},onError:x=>{q.error(x.message||l("Failed to delete category"))}}),j=(p=u==null?void 0:u.data)!=null?p:[];function b(x){i(x.id),d(x.name)}function w(){i(null),d("")}function y(){a!==null&&c.trim()&&v.mutate({id:a,name:c.trim()})}return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Categories")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage opt-in categories")})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(ee,{children:r.jsx(ne,{className:"p-0",children:h?r.jsx(YO,{}):r.jsxs(Jt,{children:[r.jsx(vn,{children:r.jsxs(Ie,{children:[r.jsx(Ee,{className:"text-xs",children:l("ID")}),r.jsx(Ee,{className:"text-xs",children:l("Name")}),r.jsx(Ee,{className:"text-xs",children:l("Opt-Ins")}),r.jsx(Ee,{className:"text-xs",children:l("Created")}),r.jsx(Ee,{className:"text-xs",children:l("Updated")}),r.jsx(Ee,{className:"text-xs text-right",children:l("Actions")})]})}),r.jsx(en,{children:j.length===0?r.jsx(Ie,{children:r.jsx(fe,{colSpan:6,className:"text-center py-8 text-muted-foreground text-sm",children:l("No categories found")})}):j.map(x=>r.jsxs(Ie,{children:[r.jsx(fe,{className:"tabular-nums text-muted-foreground text-xs",children:x.id}),r.jsx(fe,{children:a===x.id?r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx(Re,{value:c,onChange:N=>d(N.target.value),className:"h-7 text-sm",onKeyDown:N=>{N.key==="Enter"&&y(),N.key==="Escape"&&w()},autoFocus:!0}),r.jsx(H,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:y,disabled:v.isPending,children:r.jsx(id,{className:"h-3.5 w-3.5 text-success"})}),r.jsx(H,{variant:"ghost",size:"icon",className:"h-7 w-7 shrink-0",onClick:w,children:r.jsx(md,{className:"h-3.5 w-3.5"})})]}):r.jsx(hn,{to:`/categories/${x.id}`,className:"text-primary hover:underline font-medium text-sm",children:x.name})}),r.jsx(fe,{className:"tabular-nums text-muted-foreground text-xs",children:x.optin_count}),r.jsx(fe,{className:"text-muted-foreground text-xs",children:x.createtime}),r.jsx(fe,{className:"text-muted-foreground text-xs",children:x.updatetime}),r.jsx(fe,{className:"text-right",children:r.jsxs("div",{className:"flex items-center justify-end gap-1",children:[r.jsxs(H,{variant:"ghost",size:"sm",className:"text-xs h-7",onClick:()=>b(x),children:[r.jsx(dd,{className:"h-3 w-3 mr-1"}),l("Edit")]}),r.jsx(H,{variant:"ghost",size:"sm",className:"text-destructive text-xs h-7",onClick:()=>o(x.id),children:l("Delete")})]})})]},x.id))})]})})})}),r.jsx("div",{children:r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-3",children:r.jsx(ue,{className:"text-sm font-medium",children:l("New Category")})}),r.jsxs(ne,{className:"space-y-3",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Name:")}),r.jsx(Re,{className:"mt-1.5",value:t,onChange:x=>n(x.target.value),placeholder:l("Category name"),onKeyDown:x=>{x.key==="Enter"&&t.trim()&&m.mutate(t.trim())}})]}),r.jsx(H,{size:"sm",disabled:!t.trim()||m.isPending,onClick:()=>{t.trim()&&m.mutate(t.trim())},children:m.isPending?l("Adding..."):l("Add")})]})]})})]}),r.jsx(Er,{open:s!==null,onOpenChange:()=>o(null),children:r.jsxs(tr,{className:"max-w-[400px]",children:[r.jsxs(nr,{children:[r.jsx(rr,{children:l("Delete Category")}),r.jsx(sr,{children:l("Are you sure? This action cannot be undone.")})]}),r.jsxs(vs,{children:[r.jsx(H,{variant:"outline",onClick:()=>o(null),children:l("Cancel")}),r.jsx(H,{variant:"destructive",disabled:g.isPending,onClick:()=>{s!==null&&g.mutate(s)},children:g.isPending?l("Deleting..."):l("Delete")})]})]})})]})}function gp({icon:e,title:t,description:n,children:s}){return r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-4",children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10",children:r.jsx(e,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx(ue,{className:"text-sm font-medium",children:t}),r.jsx(Pe,{className:"text-xs",children:n})]})]})}),r.jsx(ne,{className:"border-t pt-4 space-y-4",children:s})]})}function ZO(){return r.jsx("div",{className:"space-y-4",children:Array.from({length:4}).map((e,t)=>r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-4",children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(oe,{className:"h-9 w-9 rounded-lg"}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(oe,{className:"h-4 w-32"}),r.jsx(oe,{className:"h-3 w-48"})]})]})}),r.jsxs(ne,{className:"border-t pt-4 space-y-4",children:[r.jsx(oe,{className:"h-9 w-full"}),r.jsx(oe,{className:"h-9 w-full"})]})]},t))})}function JO(){var p,x,N,S,k,E,C,R,T;const{isProInstalled:e,isProLicenseActive:t}=Yi(),n=ra("reminder"),s=ra("mx-validator"),o=ra("domain-blocklist"),a=!n&&!s&&!o,i=Xe(),c=$t(),{data:d,isLoading:u}=Ce({queryKey:["settings"],queryFn:()=>Z("/settings")}),{data:h}=Ce({queryKey:["pages"],queryFn:()=>Z("/settings/pages")}),[m,v]=f.useState({}),[g,j]=f.useState(!1);f.useEffect(()=>{d!=null&&d.data&&!g&&(v(d.data),j(!0))},[d,g]);const b=Te({mutationFn:()=>Z("/settings",{method:"PUT",body:JSON.stringify(m)}),onSuccess:A=>{q.success(l("Settings saved successfully")),i.invalidateQueries({queryKey:["settings"]})},onError:A=>{q.error(A.message||l("Failed to save settings"))}});function w(A,M){v(B=>({...B,[A]:M}))}const y=(p=h==null?void 0:h.data)!=null?p:[];return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Settings")}),r.jsx("p",{className:"text-muted-foreground",children:l("Configure global Double Opt-In settings")})]}),r.jsxs(H,{size:"sm",onClick:()=>b.mutate(),disabled:b.isPending,children:[r.jsx(so,{className:"mr-2 h-4 w-4"}),b.isPending?l("Saving..."):l("Save Changes")]})]}),u?r.jsx(ZO,{}):r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[r.jsxs("div",{className:"lg:col-span-2 space-y-4",children:[r.jsxs(gp,{icon:Qn,title:l("Data Retention"),description:l("Configure automatic cleanup of opt-in records"),children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Delete Opt-Ins after")}),r.jsxs("div",{className:"flex gap-2 mt-1.5",children:[r.jsx(Re,{type:"number",value:(x=m.delete)!=null?x:12,onChange:A=>w("delete",Number(A.target.value)),className:"w-20 h-9",min:0,max:30}),r.jsxs(je,{value:(N=m.delete_period)!=null?N:"months",onValueChange:A=>w("delete_period",A),children:[r.jsx(ve,{className:"w-28 h-9",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"days",children:l("Days")}),r.jsx(z,{value:"months",children:l("Months")}),r.jsx(z,{value:"years",children:l("Years")})]})]})]}),r.jsx("p",{className:"text-[10px] text-muted-foreground mt-1",children:l("Set to 0 to disable. GDPR recommends regular cleanup.")})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Delete Unconfirmed after")}),r.jsxs("div",{className:"flex gap-2 mt-1.5",children:[r.jsx(Re,{type:"number",value:(S=m.delete_unconfirmed)!=null?S:7,onChange:A=>w("delete_unconfirmed",Number(A.target.value)),className:"w-20 h-9",min:0,max:30}),r.jsxs(je,{value:(k=m.delete_unconfirmed_period)!=null?k:"months",onValueChange:A=>w("delete_unconfirmed_period",A),children:[r.jsx(ve,{className:"w-28 h-9",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"days",children:l("Days")}),r.jsx(z,{value:"months",children:l("Months")}),r.jsx(z,{value:"years",children:l("Years")})]})]})]})]})]}),r.jsx(gp,{icon:RE,title:l("Privacy"),description:l("Privacy policy and GDPR settings"),children:r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Privacy Policy Page")}),r.jsxs(je,{value:m.privacy_policy_page?String(m.privacy_policy_page):"",onValueChange:A=>w("privacy_policy_page",Number(A)),children:[r.jsx(ve,{className:"mt-1.5 h-9",children:r.jsx(we,{placeholder:l("Select page")})}),r.jsx(ye,{children:y.map(A=>r.jsx(z,{value:String(A.id),children:A.title},A.id))})]}),r.jsx("p",{className:"text-[10px] text-muted-foreground mt-1",children:l("Used for [doubleoptin_privacy_url] placeholder")})]})}),r.jsx(gp,{icon:Jm,title:l("Security"),description:l("Token and rate limiting configuration"),children:r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Token Expiry (Hours)")}),r.jsx(Re,{type:"number",value:(E=m.token_expiry_hours)!=null?E:48,onChange:A=>w("token_expiry_hours",Number(A.target.value)),className:"mt-1.5 h-9",min:0,max:720})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Rate Limit IP")}),r.jsx(Re,{type:"number",value:(C=m.rate_limit_ip)!=null?C:5,onChange:A=>w("rate_limit_ip",Number(A.target.value)),className:"mt-1.5 h-9",min:0,max:100})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Rate Limit Email")}),r.jsx(Re,{type:"number",value:(R=m.rate_limit_email)!=null?R:3,onChange:A=>w("rate_limit_email",Number(A.target.value)),className:"mt-1.5 h-9",min:0,max:100})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs font-medium",children:l("Rate Limit Window (Min)")}),r.jsx(Re,{type:"number",value:(T=m.rate_limit_window)!=null?T:60,onChange:A=>w("rate_limit_window",Number(A.target.value)),className:"mt-1.5 h-9",min:1,max:1440})]})]})}),r.jsx(ee,{children:r.jsx(ce,{className:"pb-4",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10",children:r.jsx(yt,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx(ue,{className:"text-sm font-medium",children:l("Telemetry")}),r.jsx(Pe,{className:"text-xs",children:l("Helps improve the plugin. No personal data collected.")})]})]}),r.jsx(tn,{checked:!!m.telemetry,onCheckedChange:A=>w("telemetry",A?1:0)})]})})}),r.jsx(ee,{children:r.jsx(ce,{className:"pb-4",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10",children:r.jsx(ME,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx(ue,{className:"text-sm font-medium",children:l("Show credit link")}),r.jsx(Pe,{className:"text-xs",children:l('Adds a small "Double Opt-In by Forge12" link on the page a subscriber lands on after confirming. Off by default.')})]})]}),r.jsx(tn,{checked:!!m.credit_link,onCheckedChange:A=>w("credit_link",A?1:0)})]})})}),r.jsx(ee,{children:r.jsx(ce,{className:"pb-4",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10",children:r.jsx(Ui,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx(ue,{className:"text-sm font-medium",children:l("Keep data on uninstall")}),r.jsx(Pe,{className:"text-xs",children:l("Preserve opt-in records and categories if the plugin is deleted. Turn off for a full cleanup on uninstall.")})]})]}),r.jsx(tn,{checked:!!m.keep_data_on_uninstall,onCheckedChange:A=>w("keep_data_on_uninstall",A?1:0)})]})})})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsx(ee,{children:r.jsxs(ne,{className:"flex items-start gap-2 p-4",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("Global settings affect all forms. Individual form settings can override some options.")})]})}),a&&r.jsx(ee,{className:"border-primary/20 bg-primary/[0.03]",children:r.jsx(ne,{className:"p-5",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10",children:r.jsx(Nr,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-semibold text-foreground",children:l("Unlock Pro Features")}),r.jsxs("ul",{className:"text-xs text-muted-foreground space-y-1 mt-2",children:[r.jsxs("li",{children:["✓ ",l("Automatic reminders")]}),r.jsxs("li",{children:["✓ ",l("Email domain validation")]}),r.jsxs("li",{children:["✓ ",l("Disposable email blocking")]}),r.jsxs("li",{children:["✓ ",l("Priority support")]})]}),r.jsxs("a",{href:c.upgradeUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 pro-gradient text-primary-foreground font-semibold text-sm px-5 py-2 rounded transition-opacity hover:opacity-90 mt-3 w-full justify-center",children:[r.jsx(Nr,{className:"h-3.5 w-3.5"}),l("Upgrade to Pro")]})]})]})})})]})]}),r.jsx(er,{id:"settings.tab",data:{settings:m}})]})}function e3(){var h;const e=Xe(),[t,n]=f.useState(null),{data:s,isLoading:o}=Ce({queryKey:["email-templates"],queryFn:()=>Z("/email-templates"),refetchOnMount:"always"}),a=(h=s==null?void 0:s.data)!=null?h:[],i=Te({mutationFn:m=>Z(`/email-templates/${m}/duplicate`,{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["email-templates"]}),q.success(l("Template duplicated"))},onError:m=>q.error(m.message)}),c=Te({mutationFn:m=>Z(`/email-templates/${m}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["email-templates"]}),q.success(l("Template deleted")),n(null)},onError:m=>{q.error(m.message),n(null)}}),d=Te({mutationFn:({id:m,status:v})=>Z(`/email-templates/${m}`,{method:"PUT",body:JSON.stringify({status:v})}),onSuccess:(m,v)=>{e.invalidateQueries({queryKey:["email-templates"]}),q.success(v.status==="publish"?l("Template published"):l("Template moved to draft"))},onError:m=>q.error(m.message)}),u=m=>m==="publish"||m==="Published";return o?r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Email Templates")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage your email templates")})]}),r.jsx(ee,{children:r.jsx(ne,{className:"pt-6 space-y-3",children:[1,2,3].map(m=>r.jsx(oe,{className:"h-10 w-full"},m))})})]}):a.length===0?r.jsxs("div",{className:"space-y-6",children:[r.jsx("div",{children:r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Email Templates")})}),r.jsx(ee,{className:"py-16 text-center",children:r.jsxs(ne,{children:[r.jsx(G0,{className:"h-16 w-16 text-muted-foreground/30 mx-auto mb-4"}),r.jsx("h3",{className:"text-lg font-semibold mb-1",children:l("No templates yet")}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l("Create your first email template")}),r.jsx(H,{asChild:!0,children:r.jsx(hn,{to:"/email-templates/new",children:l("Create Template")})})]})})]}):r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Email Templates")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage your email templates")})]}),r.jsx(H,{size:"sm",asChild:!0,children:r.jsxs(hn,{to:"/email-templates/new",children:[r.jsx(la,{className:"h-4 w-4 mr-1"})," ",l("Create New")]})})]}),r.jsx(ee,{children:r.jsx(ne,{className:"p-0",children:r.jsxs(Jt,{children:[r.jsx(vn,{children:r.jsxs(Ie,{children:[r.jsx(Ee,{className:"text-xs",children:l("Name")}),r.jsx(Ee,{className:"text-xs",children:l("Status")}),r.jsx(Ee,{className:"text-xs",children:l("Created")}),r.jsx(Ee,{className:"text-xs",children:l("Modified")}),r.jsx(Ee,{className:"text-xs text-right",children:l("Actions")})]})}),r.jsx(en,{children:a.map(m=>r.jsxs(Ie,{children:[r.jsx(fe,{children:r.jsx(hn,{to:`/email-templates/${m.id}/edit`,className:"text-primary hover:underline font-medium text-sm",children:m.title})}),r.jsx(fe,{children:r.jsxs(je,{value:u(m.status)?"publish":"draft",onValueChange:v=>d.mutate({id:m.id,status:v}),disabled:d.isPending,children:[r.jsx(ve,{className:`h-8 w-[150px] text-xs ${u(m.status)?"text-green-600 dark:text-green-500":"text-muted-foreground"}`,children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"publish",children:l("Published")}),r.jsx(z,{value:"draft",children:l("Draft")})]})]})}),r.jsx(fe,{className:"text-muted-foreground text-xs",children:m.created_at}),r.jsx(fe,{className:"text-muted-foreground text-xs",children:m.modified_at}),r.jsxs(fe,{className:"text-right space-x-1",children:[r.jsx(H,{size:"sm",className:"text-xs",asChild:!0,children:r.jsx(hn,{to:`/email-templates/${m.id}/edit`,children:l("Edit")})}),r.jsx(H,{size:"sm",variant:"outline",className:"text-xs",disabled:i.isPending,onClick:()=>i.mutate(m.id),children:l("Duplicate")}),r.jsx(H,{size:"sm",variant:"ghost",className:"text-destructive text-xs",onClick:()=>n(m.id),children:l("Delete")})]})]},m.id))})]})})}),r.jsx(Er,{open:t!==null,onOpenChange:()=>n(null),children:r.jsxs(tr,{className:"max-w-[400px]",children:[r.jsxs(nr,{children:[r.jsx(rr,{children:l("Delete Template")}),r.jsx(sr,{children:l("Are you sure you want to delete this template? This action cannot be undone.")})]}),r.jsxs(vs,{children:[r.jsx(H,{variant:"outline",onClick:()=>n(null),children:l("Cancel")}),r.jsx(H,{variant:"destructive",disabled:c.isPending,onClick:()=>{t!==null&&c.mutate(t)},children:c.isPending?l("Deleting..."):l("Delete")})]})]})})]})}function t3(){var m;const e=Xe(),[t,n]=f.useState(null),[s,o]=f.useState(""),{data:a,isLoading:i}=Ce({queryKey:["db-stats"],queryFn:()=>Z("/database/stats")}),c=(m=a==null?void 0:a.data)!=null?m:{total:0,confirmed:0,unconfirmed:0},d=Te({mutationFn:v=>Z("/database/clean",{method:"POST",body:JSON.stringify({scope:v})}),onSuccess:()=>{e.invalidateQueries({queryKey:["db-stats"]}),q.success(l("Records deleted successfully")),n(null)},onError:v=>{q.error(v.message),n(null)}}),u=Te({mutationFn:()=>Z("/database/reset",{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["db-stats"]}),q.success(l("Database reset successfully")),n(null),o("")},onError:v=>{q.error(v.message),n(null),o("")}}),h=[{key:"all",title:l("Delete All Opt-Ins"),desc:l("Remove all opt-in records from the database"),icon:gn},{key:"confirmed",title:l("Delete Confirmed Only"),desc:l("Remove only confirmed opt-in records"),icon:ro},{key:"unconfirmed",title:l("Delete Unconfirmed Only"),desc:l("Remove only unconfirmed/pending opt-in records"),icon:Qn}];return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Database Management")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage your opt-in database records")})]}),r.jsxs("div",{className:"grid gap-4 md:grid-cols-3",children:[r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsxs(ue,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[r.jsx(Ui,{className:"h-3 w-3"})," ",l("Total Records")]})}),r.jsx(ne,{children:i?r.jsx(oe,{className:"h-8 w-16"}):r.jsx("div",{className:"text-2xl font-bold",children:c.total})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsxs(ue,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[r.jsx(ro,{className:"h-3 w-3 text-success"})," ",l("Confirmed")]})}),r.jsx(ne,{children:i?r.jsx(oe,{className:"h-8 w-16"}):r.jsx("div",{className:"text-2xl font-bold text-success",children:c.confirmed})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsxs(ue,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[r.jsx(Qn,{className:"h-3 w-3 text-warning"})," ",l("Unconfirmed")]})}),r.jsx(ne,{children:i?r.jsx(oe,{className:"h-8 w-16"}):r.jsx("div",{className:"text-2xl font-bold text-warning",children:c.unconfirmed})})]})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[r.jsxs("div",{className:"lg:col-span-2 space-y-4",children:[r.jsxs("div",{className:"flex items-center gap-2 bg-warning/10 text-warning rounded-lg px-4 py-3 text-sm",children:[r.jsx(zt,{className:"h-4 w-4 shrink-0"}),l("These actions are irreversible. Please backup your database first.")]}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:h.map(v=>r.jsx(ee,{className:"text-center",children:r.jsxs(ne,{className:"pt-6 pb-4",children:[r.jsx(v.icon,{className:"h-8 w-8 mx-auto mb-3 text-muted-foreground"}),r.jsx("h3",{className:"text-sm font-semibold mb-1",children:v.title}),r.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:v.desc}),r.jsx(H,{variant:v.key==="all"?"destructive":"outline",size:"sm",className:"text-xs",onClick:()=>n(v.key),children:v.title})]})},v.key))}),r.jsx(ee,{className:"border-destructive/50",children:r.jsxs(ne,{className:"pt-6 pb-4 text-center",children:[r.jsx(ud,{className:"h-8 w-8 mx-auto mb-3 text-destructive"}),r.jsx("h3",{className:"text-sm font-semibold mb-1",children:l("Reset Database")}),r.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:l("Drop and recreate all Double Opt-In tables. This removes all data permanently.")}),r.jsx(H,{variant:"destructive",size:"sm",className:"text-xs",onClick:()=>n("reset"),children:l("Reset Database")})]})})]}),r.jsx("div",{children:r.jsx(ee,{children:r.jsxs(ne,{className:"flex items-start gap-2 p-4",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:l("For automated cleanup, configure auto-deletion in Settings.")}),r.jsxs("a",{href:"#/settings",className:"text-xs text-primary hover:underline flex items-center gap-1",children:[r.jsx($E,{className:"h-3 w-3"})," ",l("Go to Settings")]})]})]})})})]}),r.jsx(Er,{open:t!==null&&t!=="reset",onOpenChange:()=>n(null),children:r.jsxs(tr,{className:"max-w-[400px]",children:[r.jsxs(nr,{children:[r.jsx(rr,{children:l("Confirm Deletion")}),r.jsx(sr,{children:l("Are you sure you want to permanently delete these records? This action cannot be undone.")})]}),r.jsxs(vs,{children:[r.jsx(H,{variant:"outline",onClick:()=>n(null),children:l("Cancel")}),r.jsx(H,{variant:"destructive",disabled:d.isPending,onClick:()=>{t&&d.mutate(t)},children:d.isPending?l("Deleting..."):l("Delete")})]})]})}),r.jsx(Er,{open:t==="reset",onOpenChange:()=>{n(null),o("")},children:r.jsxs(tr,{className:"max-w-[440px]",children:[r.jsxs(nr,{children:[r.jsx(rr,{className:"text-destructive",children:l("Reset Database")}),r.jsx(sr,{children:l("This will drop and recreate all Double Opt-In tables, permanently destroying all data. This cannot be undone.")})]}),r.jsxs("div",{className:"space-y-3 py-2",children:[r.jsx(X,{className:"text-sm",children:l("Type DELETE to confirm:")}),r.jsx(Re,{value:s,onChange:v=>o(v.target.value),placeholder:"DELETE",className:"font-mono"})]}),r.jsxs(vs,{children:[r.jsx(H,{variant:"outline",onClick:()=>{n(null),o("")},children:l("Cancel")}),r.jsx(H,{variant:"destructive",disabled:s!=="DELETE"||u.isPending,onClick:()=>u.mutate(),children:u.isPending?l("Resetting..."):l("Reset Database")})]})]})})]})}function vp({children:e,featureName:t=l("this feature"),requireAddon:n}){const{isProInstalled:s,isProLicenseActive:o}=Yi(),a=qn();if(n!==void 0){if(ra(n))return r.jsx(r.Fragment,{children:e});const i=s&&o,c=l(i?"Addon Required":"Pro Bundle Required"),d=i?r.jsxs(r.Fragment,{children:[l("The")," ",r.jsx("span",{className:"font-medium",children:n})," ",le(l("addon isn't active on this site. Install and activate it to use %s."),t)]}):le(l("Activate your Double Opt-In Pro bundle to unlock %s."),t),u=i?{label:l("Open Addons Page"),to:"/addons"}:{label:l("Open License Page"),to:"/license"};return r.jsxs("div",{className:"relative",children:[r.jsx("div",{className:"blur-[3px] pointer-events-none select-none",children:e}),r.jsx("div",{className:"absolute inset-0 bg-card/85 flex items-center justify-center z-10",children:r.jsxs("div",{className:"bg-card border border-border rounded-lg shadow-lg p-8 max-w-[440px] w-full text-center",children:[r.jsx("div",{className:"w-12 h-12 rounded-full pro-gradient flex items-center justify-center mx-auto mb-4",children:r.jsx(Nr,{className:"h-6 w-6 text-primary-foreground"})}),r.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:c}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:d}),r.jsx(H,{onClick:()=>a(u.to),className:"w-full",children:u.label})]})})]})}return s&&o?r.jsx(r.Fragment,{children:e}):s&&!o?r.jsxs("div",{className:"relative",children:[r.jsx("div",{className:"blur-[3px] pointer-events-none select-none",children:e}),r.jsx("div",{className:"absolute inset-0 bg-card/85 flex items-center justify-center z-10",children:r.jsxs("div",{className:"bg-card border border-border rounded-lg shadow-lg p-8 max-w-[440px] w-full text-center",children:[r.jsx("div",{className:"w-12 h-12 rounded-full pro-gradient flex items-center justify-center mx-auto mb-4",children:r.jsx(Nr,{className:"h-6 w-6 text-primary-foreground"})}),r.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:l("Activate Pro License")}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:le(l("Enter your license key to unlock %s."),t)}),r.jsx(Re,{placeholder:"XXXX-XXXX-XXXX-XXXX",className:"font-mono mb-3 text-center"}),r.jsx(H,{className:"w-full mb-2",children:l("Activate License")}),r.jsx("button",{onClick:()=>a("/license"),className:"text-xs text-muted-foreground hover:text-primary",children:l("Or enter your key on the License page")})]})})]}):null}var Dn="Accordion",n3=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[yp,r3,s3]=td(Dn),[Qd]=Xt(Dn,[s3,s1]),bp=s1(),mN=V.forwardRef((e,t)=>{const{type:n,...s}=e,o=s,a=s;return r.jsx(yp.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?r.jsx(l3,{...a,ref:t}):r.jsx(i3,{...o,ref:t})})});mN.displayName=Dn;var[hN,o3]=Qd(Dn),[pN,a3]=Qd(Dn,{collapsible:!1}),i3=V.forwardRef((e,t)=>{const{value:n,defaultValue:s,onValueChange:o=()=>{},collapsible:a=!1,...i}=e,[c,d]=xn({prop:n,defaultProp:s!=null?s:"",onChange:o,caller:Dn});return r.jsx(hN,{scope:e.__scopeAccordion,value:V.useMemo(()=>c?[c]:[],[c]),onItemOpen:d,onItemClose:V.useCallback(()=>a&&d(""),[a,d]),children:r.jsx(pN,{scope:e.__scopeAccordion,collapsible:a,children:r.jsx(xN,{...i,ref:t})})})}),l3=V.forwardRef((e,t)=>{const{value:n,defaultValue:s,onValueChange:o=()=>{},...a}=e,[i,c]=xn({prop:n,defaultProp:s!=null?s:[],onChange:o,caller:Dn}),d=V.useCallback(h=>c((m=[])=>[...m,h]),[c]),u=V.useCallback(h=>c((m=[])=>m.filter(v=>v!==h)),[c]);return r.jsx(hN,{scope:e.__scopeAccordion,value:i,onItemOpen:d,onItemClose:u,children:r.jsx(pN,{scope:e.__scopeAccordion,collapsible:!0,children:r.jsx(xN,{...a,ref:t})})})}),[c3,Gd]=Qd(Dn),xN=V.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:s,dir:o,orientation:a="vertical",...i}=e,c=V.useRef(null),d=De(c,t),u=r3(n),m=zd(o)==="ltr",v=pe(e.onKeyDown,g=>{var C;if(!n3.includes(g.key))return;const j=g.target,b=u().filter(R=>{var T;return!((T=R.ref.current)!=null&&T.disabled)}),w=b.findIndex(R=>R.ref.current===j),y=b.length;if(w===-1)return;g.preventDefault();let p=w;const x=0,N=y-1,S=()=>{p=w+1,p>N&&(p=x)},k=()=>{p=w-1,p<x&&(p=N)};switch(g.key){case"Home":p=x;break;case"End":p=N;break;case"ArrowRight":a==="horizontal"&&(m?S():k());break;case"ArrowDown":a==="vertical"&&S();break;case"ArrowLeft":a==="horizontal"&&(m?k():S());break;case"ArrowUp":a==="vertical"&&k();break}const E=p%y;(C=b[E].ref.current)==null||C.focus()});return r.jsx(c3,{scope:n,disabled:s,direction:o,orientation:a,children:r.jsx(yp.Slot,{scope:n,children:r.jsx(Se.div,{...i,"data-orientation":a,ref:d,onKeyDown:s?void 0:v})})})}),Xd="AccordionItem",[d3,jp]=Qd(Xd),gN=V.forwardRef((e,t)=>{const{__scopeAccordion:n,value:s,...o}=e,a=Gd(Xd,n),i=o3(Xd,n),c=bp(n),d=Rn(),u=s&&i.value.includes(s)||!1,h=a.disabled||e.disabled;return r.jsx(d3,{scope:n,open:u,disabled:h,triggerId:d,children:r.jsx(i1,{"data-orientation":a.orientation,"data-state":NN(u),...c,...o,ref:t,disabled:h,open:u,onOpenChange:m=>{m?i.onItemOpen(s):i.onItemClose(s)}})})});gN.displayName=Xd;var vN="AccordionHeader",yN=V.forwardRef((e,t)=>{const{__scopeAccordion:n,...s}=e,o=Gd(Dn,n),a=jp(vN,n);return r.jsx(Se.h3,{"data-orientation":o.orientation,"data-state":NN(a.open),"data-disabled":a.disabled?"":void 0,...s,ref:t})});yN.displayName=vN;var Np="AccordionTrigger",bN=V.forwardRef((e,t)=>{const{__scopeAccordion:n,...s}=e,o=Gd(Dn,n),a=jp(Np,n),i=a3(Np,n),c=bp(n);return r.jsx(yp.ItemSlot,{scope:n,children:r.jsx(H5,{"aria-disabled":a.open&&!i.collapsible||void 0,"data-orientation":o.orientation,id:a.triggerId,...c,...s,ref:t})})});bN.displayName=Np;var jN="AccordionContent",wN=V.forwardRef((e,t)=>{const{__scopeAccordion:n,...s}=e,o=Gd(Dn,n),a=jp(jN,n),i=bp(n);return r.jsx(W5,{role:"region","aria-labelledby":a.triggerId,"data-orientation":o.orientation,...i,...s,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});wN.displayName=jN;function NN(e){return e?"open":"closed"}var u3=mN,f3=gN,m3=yN,SN=bN,CN=wN;const h3=u3,kN=f.forwardRef(({className:e,...t},n)=>r.jsx(f3,{ref:n,className:Q("border-b",e),...t}));kN.displayName="AccordionItem";const _N=f.forwardRef(({className:e,children:t,...n},s)=>r.jsx(m3,{className:"flex",children:r.jsxs(SN,{ref:s,className:Q("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,r.jsx(no,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));_N.displayName=SN.displayName;const EN=f.forwardRef(({className:e,children:t,...n},s)=>r.jsx(CN,{ref:s,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:r.jsx("div",{className:Q("pb-4 pt-0",e),children:t})}));EN.displayName=CN.displayName;const Sp=["success","invalid_email","invalid_nonce","save_failed","send_failed"],PN={success:{title:"",body:""},invalid_email:{title:"",body:""},invalid_nonce:{title:"",body:""},save_failed:{title:"",body:""},send_failed:{title:"",body:""}},TN={success:{label:l("Success — email sent"),hint:l("Shown after the user submits their email and the confirmation mail goes out.")},invalid_email:{label:l("Error — invalid email"),hint:l("Shown when the visitor entered an obviously malformed address.")},invalid_nonce:{label:l("Error — session expired"),hint:l("Shown when the form's CSRF nonce was rejected (form sat unsubmitted for too long).")},save_failed:{label:l("Error — save failed"),hint:l("Shown on rare DB write failures.")},send_failed:{label:l("Error — email not sent"),hint:l("Shown when the request was recorded but the email could not go out — most often because the subject or body below is still empty. This case used to show the success notice instead, so visitors waited for a mail that was never sent.")}},Cp=["column_subscription","column_signed_up","column_status","column_valid_until","badge_active","badge_cancelled","cancel_button","cancel_confirm","bulk_button","bulk_confirm","reactivate_button","reactivate_confirm","empty_state","confirm_yes","confirm_no"],RN=Cp.reduce((e,t)=>({...e,[t]:""}),{}),p3=[{group:l("Table columns"),items:[{key:"column_subscription"},{key:"column_signed_up"},{key:"column_status"},{key:"column_valid_until"}]},{group:l("Status badges"),items:[{key:"badge_active"},{key:"badge_cancelled"}]},{group:l("Action buttons"),items:[{key:"cancel_button",hint:l("Per-row button to cancel one subscription.")},{key:"bulk_button",hint:l("Button above the table, shown when 2+ active rows exist.")},{key:"reactivate_button",hint:l("Per-row button to re-activate a cancelled subscription.")}]},{group:l("Confirm modal — prompts"),items:[{key:"cancel_confirm",hint:l("Shown in the modal before cancelling a single subscription.")},{key:"bulk_confirm",hint:l("Shown in the modal before bulk-cancelling all subscriptions.")},{key:"reactivate_confirm",hint:l("Shown in the modal before re-activating a cancelled subscription.")}]},{group:l("Confirm modal — buttons"),items:[{key:"confirm_yes",hint:l("Confirms the action — red button. Shared across all three prompts.")},{key:"confirm_no",hint:l("Closes the modal without acting — neutral button. Shared across all three prompts.")}]},{group:l("Empty state"),items:[{key:"empty_state",hint:l("Shown when the email has no subscriptions on file.")}]}],kp=["cancelled","cancelled_all","reactivated"],AN={cancelled:{title:"",body:""},cancelled_all:{title:"",body:""},reactivated:{title:"",body:""}},_p={cancelled:{label:l("After cancelling one subscription"),hint:l("Green notice shown on the list page after the visitor clicks Cancel on a single row."),bodyPlaceholders:l("%s = form/subscription title")},cancelled_all:{label:l("After bulk-cancelling"),hint:l("Green notice shown after the visitor confirms the Cancel ALL action."),bodyPlaceholders:l("%d = number of cancelled subscriptions")},reactivated:{label:l("After re-activating"),hint:l("Green notice shown after the visitor clicks Reactivate on a previously cancelled subscription."),bodyPlaceholders:l("%s = form/subscription title")}},x3={enabled:!0,defaults:{optout_page:0,optout_subject:"Opt-out Confirmation",optout_template:"",optout_body:"",notices:PN,labels:RN,list_notices:AN,disabled_notice:{enabled:!1,title:"",body:""}},forms:[]};function g3(){var I,F,J,xe;const e=ra("opt-out"),t=Xe(),{data:n,isLoading:s}=Ce({queryKey:["optout-settings"],queryFn:()=>Z("/optout/settings"),enabled:e}),{data:o}=Ce({queryKey:["pages"],queryFn:()=>Z("/settings/pages")}),{data:a}=Ce({queryKey:["email-templates-list"],queryFn:()=>Z("/settings/email-templates-list")}),{data:i}=Ce({queryKey:["forms"],queryFn:()=>Z("/forms"),enabled:e}),[c,d]=f.useState(x3),[u,h]=f.useState(!1),[m,v]=f.useState("");f.useEffect(()=>{var he,Ae,He,ut,_t,cr,Ts,Fa,No,sn,kl,dr,Zd,Jd,Ot,Dr;if(!(n!=null&&n.data)||u)return;const P=n.data,$=(_t=P._defaults)!=null?_t:{optout_page:Number((he=P.optout_page)!=null?he:0),optout_subject:String((Ae=P.optout_subject)!=null?Ae:""),optout_template:String((He=P.optout_template)!=null?He:""),optout_body:String((ut=P.optout_body)!=null?ut:"")},W=(cr=P._defaults)==null?void 0:cr.notices,se=Sp.reduce((ur,jn)=>{var on,So,Rs,Fr;return ur[jn]={title:String((So=(on=W==null?void 0:W[jn])==null?void 0:on.title)!=null?So:""),body:String((Fr=(Rs=W==null?void 0:W[jn])==null?void 0:Rs.body)!=null?Fr:"")},ur},{}),Ne=(Ts=P._defaults)==null?void 0:Ts.labels,G=Cp.reduce((ur,jn)=>{var on;return ur[jn]=String((on=Ne==null?void 0:Ne[jn])!=null?on:""),ur},{}),ge=(Fa=P._defaults)==null?void 0:Fa.list_notices,L=kp.reduce((ur,jn)=>{var on,So,Rs,Fr;return ur[jn]={title:String((So=(on=ge==null?void 0:ge[jn])==null?void 0:on.title)!=null?So:""),body:String((Fr=(Rs=ge==null?void 0:ge[jn])==null?void 0:Rs.body)!=null?Fr:"")},ur},{}),me=(No=P._defaults)==null?void 0:No.disabled_notice,U={enabled:!!((sn=me==null?void 0:me.enabled)!=null&&sn),title:String((kl=me==null?void 0:me.title)!=null?kl:""),body:String((dr=me==null?void 0:me.body)!=null?dr:"")};d({enabled:P._enabled!==!1,defaults:{optout_page:Number((Zd=$.optout_page)!=null?Zd:0),optout_subject:String((Jd=$.optout_subject)!=null?Jd:""),optout_template:String((Ot=$.optout_template)!=null?Ot:""),optout_body:String((Dr=$.optout_body)!=null?Dr:""),notices:se,labels:G,list_notices:L,disabled_notice:U},forms:Array.isArray(P._forms)?P._forms:[]}),h(!0)},[n,u]);const g=f.useMemo(()=>{var $,W,se;const P=($=n==null?void 0:n.data)==null?void 0:$._disabled_notice_defaults;return{title:String((W=P==null?void 0:P.title)!=null?W:""),body:String((se=P==null?void 0:P.body)!=null?se:"")}},[n]),j=f.useMemo(()=>{var $;const P=($=n==null?void 0:n.data)==null?void 0:$._labels_defaults;return P?Cp.reduce((W,se)=>{var Ne;return W[se]=String((Ne=P[se])!=null?Ne:""),W},{}):RN},[n]),b=f.useMemo(()=>{var $;const P=($=n==null?void 0:n.data)==null?void 0:$._list_notices_defaults;return P?kp.reduce((W,se)=>{var Ne,G,ge,L;return W[se]={title:String((G=(Ne=P[se])==null?void 0:Ne.title)!=null?G:""),body:String((L=(ge=P[se])==null?void 0:ge.body)!=null?L:"")},W},{}):AN},[n]),w=f.useMemo(()=>{var $;const P=($=n==null?void 0:n.data)==null?void 0:$._notices_defaults;return P?Sp.reduce((W,se)=>{var Ne,G,ge,L;return W[se]={title:String((G=(Ne=P[se])==null?void 0:Ne.title)!=null?G:""),body:String((L=(ge=P[se])==null?void 0:ge.body)!=null?L:"")},W},{}):PN},[n]),y=f.useMemo(()=>{var W;const P=(W=i==null?void 0:i.data)!=null?W:{},$=[];for(const[se,Ne]of Object.entries(P))if(Ne)for(const G of Ne.forms){const ge=typeof G.id=="string"?G.id:String(G.id),L=Number(ge.split("_")[0]);L&&$.push({key:`${se}_${ge}`,integration:se,integrationName:Ne.name,formId:L,restId:ge,title:G.title||`#${L}`})}return $},[i]),p=(P,$)=>{const W=y.find(se=>se.integration===P&&se.formId===$);return W?`${W.integrationName} / ${W.title}`:`${P} / #${$}`},x=Te({mutationFn:()=>Z("/optout/page/generate",{method:"POST"}),onSuccess:P=>{t.invalidateQueries({queryKey:["pages"]}),d($=>({...$,defaults:{...$.defaults,optout_page:P.page_id}})),q.success(P.message)},onError:P=>{const $=(P==null?void 0:P.message)||l("Failed to generate opt-out page.");q.error($)}}),N=Te({mutationFn:P=>Z("/optout/settings",{method:"PUT",body:JSON.stringify({enabled:P.enabled,optout_page:P.defaults.optout_page,optout_subject:P.defaults.optout_subject,optout_template:P.defaults.optout_template,optout_body:P.defaults.optout_body,defaults:P.defaults,forms:P.forms})}),onSuccess:P=>{t.invalidateQueries({queryKey:["optout-settings"]}),q.success(P.message||l("Opt-out settings saved."))},onError:P=>{q.error(P.message||l("Failed to save settings."))}}),S=(I=o==null?void 0:o.data)!=null?I:[],k=(F=a==null?void 0:a.data)!=null?F:[];function E(P,$){d(W=>({...W,defaults:{...W.defaults,[P]:$}}))}function C(P,$,W){d(se=>({...se,defaults:{...se.defaults,notices:{...se.defaults.notices,[P]:{...se.defaults.notices[P],[$]:W}}}}))}function R(P,$){d(W=>({...W,defaults:{...W.defaults,labels:{...W.defaults.labels,[P]:$}}}))}function T(P,$,W){d(se=>({...se,defaults:{...se.defaults,list_notices:{...se.defaults.list_notices,[P]:{...se.defaults.list_notices[P],[$]:W}}}}))}function A(P,$){d(W=>({...W,defaults:{...W.defaults,disabled_notice:{...W.defaults.disabled_notice,[P]:$}}}))}function M(){if(!m)return;const P=y.find($=>$.key===m);if(P){if(c.forms.some($=>$.integration===P.integration&&$.form_id===P.formId)){q.warning(l("This form is already in the list."));return}d($=>({...$,forms:[...$.forms,{integration:P.integration,form_id:P.formId,enabled:null,optout_page:null,optout_subject:null,optout_template:null,optout_body:null}]})),v("")}}function B(P){d($=>({...$,forms:$.forms.filter((W,se)=>se!==P)}))}function O(P,$,W){d(se=>({...se,forms:se.forms.map((Ne,G)=>G===P?{...Ne,[$]:W}:Ne)}))}const re=f.useMemo(()=>{const P=S.find($=>$.id===c.defaults.optout_page);return P?P.title:l("(no page selected)")},[S,c.defaults.optout_page]),D=f.useMemo(()=>{if(!c.defaults.optout_template)return l("(inline body)");const P=k.find($=>String($.id)===String(c.defaults.optout_template));return P?P.title:c.defaults.optout_template},[k,c.defaults.optout_template]),te=r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsxs("h1",{className:"text-2xl font-bold tracking-tight flex items-center gap-2",children:[r.jsx(Q0,{className:"h-6 w-6"}),l("Opt-Out Settings"),!e&&r.jsx(cp,{})]}),r.jsx("p",{className:"text-muted-foreground",children:l("Configure the opt-out system for your subscribers")})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_300px] gap-6",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Feature toggle")}),r.jsx(Pe,{children:l("Turn the entire opt-out feature on or off without deactivating the addon plugin. Useful for pausing while debugging.")})]}),r.jsx(ne,{children:s?r.jsx(oe,{className:"h-12 w-full"}):r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{htmlFor:"optout-enabled",className:"text-base",children:l("Opt-Out enabled")}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l("When off, no opt-out mails are sent for any form — regardless of per-form overrides below.")})]}),r.jsx(tn,{id:"optout-enabled",checked:c.enabled,onCheckedChange:P=>d($=>({...$,enabled:P}))})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("When disabled")}),r.jsxs(Pe,{children:[l("Controls what visitors see if the master toggle above is off. By default the opt-out form + list shortcodes render")," ",r.jsx("strong",{children:l("nothing")})," ",l("when the feature is paused. Turn this on to display a configurable amber notice instead — useful for telling people the feature is temporarily unavailable rather than letting them wonder why the page is blank.")]})]}),r.jsx(ne,{className:"space-y-4",children:s?r.jsx(oe,{className:"h-32 w-full"}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{htmlFor:"disabled-notice-enabled",className:"text-base",children:l("Show the notice when disabled")}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l("Only relevant when the master toggle above is off — has no effect while opt-out is active.")})]}),r.jsx(tn,{id:"disabled-notice-enabled",checked:c.defaults.disabled_notice.enabled,onCheckedChange:P=>A("enabled",P)})]}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-[1fr_2fr]",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:"disabled-notice-title",children:l("Title")}),r.jsx(Re,{id:"disabled-notice-title",className:"mt-1 h-9 text-xs",placeholder:g.title||l("Default title"),value:c.defaults.disabled_notice.title,onChange:P=>A("title",P.target.value)})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:"disabled-notice-body",children:l("Body")}),r.jsx(Tr,{id:"disabled-notice-body",className:"mt-1 text-xs min-h-[60px]",placeholder:g.body||l("Default body"),value:c.defaults.disabled_notice.body,onChange:P=>A("body",P.target.value)})]})]})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Opt-Out Page (default)")}),r.jsxs(Pe,{children:[l("Page that hosts the opt-out form and list — applies to every form unless overridden below. Use")," ",r.jsx("strong",{children:l("Generate")})," ",l("to create one in a single click with both shortcodes already in place.")]})]}),r.jsxs(ne,{children:[s?r.jsx(oe,{className:"h-10 w-full"}):r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(je,{value:c.defaults.optout_page?String(c.defaults.optout_page):"",onValueChange:P=>E("optout_page",P?Number(P):0),children:[r.jsx(ve,{className:"flex-1",children:r.jsx(we,{placeholder:l("Select a page...")})}),r.jsx(ye,{children:S.map(P=>r.jsx(z,{value:P.id.toString(),children:P.title},P.id))})]}),r.jsxs(H,{type:"button",variant:"outline",onClick:()=>x.mutate(),disabled:x.isPending,title:l("Create a new page with the opt-out shortcodes"),children:[r.jsx(XE,{className:"h-4 w-4 mr-1.5"}),x.isPending?l("Generating..."):l("Generate")]})]}),c.defaults.optout_page>0&&r.jsxs("div",{className:"mt-3 flex flex-wrap gap-3 text-xs",children:[r.jsxs("a",{href:`${window.location.origin}/?page_id=${c.defaults.optout_page}`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-muted-foreground hover:text-foreground",children:[r.jsx(cd,{className:"h-3 w-3"}),l("Open page")]}),r.jsxs("a",{href:`${$t().adminUrl.replace(/\/+$/,"")}/post.php?post=${c.defaults.optout_page}&action=edit`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-muted-foreground hover:text-foreground",children:[r.jsx(dd,{className:"h-3 w-3"}),l("Edit page")]})]})]})]}),r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsxs(ue,{className:"flex items-center gap-2",children:[r.jsx(q0,{className:"h-4 w-4"}),l("Shortcode Reference")]})}),r.jsxs(ne,{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("code",{className:"bg-muted px-2 py-1 rounded text-sm font-mono whitespace-nowrap",children:"[f12-cf7-doubleoptin-optout-form]"}),r.jsx("span",{className:"text-sm text-muted-foreground",children:l("Display the opt-out request form")})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("code",{className:"bg-muted px-2 py-1 rounded text-sm font-mono whitespace-nowrap",children:"[f12-cf7-doubleoptin-optout-list]"}),r.jsx("span",{className:"text-sm text-muted-foreground",children:l("Display the opt-in/opt-out status list")})]})]})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Opt-Out Email (defaults)")}),r.jsx(Pe,{children:l("Subject + body for the confirmation email. Per-form overrides below take precedence over these defaults.")})]}),r.jsx(ne,{className:"space-y-4",children:s?r.jsxs("div",{className:"space-y-3",children:[r.jsx(oe,{className:"h-10 w-full"}),r.jsx(oe,{className:"h-10 w-full"}),r.jsx(oe,{className:"h-40 w-full"})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(X,{htmlFor:"optout-subject",children:l("Subject")}),r.jsx(Re,{id:"optout-subject",value:c.defaults.optout_subject,onChange:P=>E("optout_subject",P.target.value),placeholder:l("Opt-out Confirmation")})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(X,{htmlFor:"optout-template",children:l("Template")}),r.jsxs(je,{value:c.defaults.optout_template||"__none__",onValueChange:P=>E("optout_template",P==="__none__"?"":P),children:[r.jsx(ve,{id:"optout-template",children:r.jsx(we,{placeholder:l("None (use body below)")})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__none__",children:l("None")}),k.map(P=>r.jsx(z,{value:String(P.id),children:P.title},P.id))]})]})]}),c.defaults.optout_template?r.jsx(y3,{templateId:c.defaults.optout_template,title:(xe=(J=k.find(P=>String(P.id)===String(c.defaults.optout_template)))==null?void 0:J.title)!=null?xe:c.defaults.optout_template}):r.jsxs("div",{className:"space-y-2",children:[r.jsx(X,{htmlFor:"optout-body",children:l("Email Body")}),r.jsx(Tr,{id:"optout-body",value:c.defaults.optout_body,onChange:P=>E("optout_body",P.target.value),className:"font-mono min-h-[300px]",placeholder:l("HTML email body...")}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l("Available placeholder:")," ",r.jsx("code",{className:"bg-muted px-1 rounded",children:"[doubleoptin_optout_url]"})]})]})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Notice texts")}),r.jsxs(Pe,{children:[l("Messages shown to the visitor after they submit the opt-out form (success + error states). Leave a field empty to use the built-in default. With WPML active, each text appears under")," ",r.jsx("strong",{children:l('String Translation → Domain "double-opt-in-opt-out"')})," ",l("so you can translate it per language; without WPML the text is shown as-is.")]})]}),r.jsx(ne,{className:"space-y-5",children:s?r.jsx(oe,{className:"h-64 w-full"}):Sp.map(P=>r.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium",children:TN[P].label}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:TN[P].hint})]}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-[1fr_2fr]",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:`notice-${P}-title`,children:l("Title")}),r.jsx(Re,{id:`notice-${P}-title`,className:"mt-1 h-9 text-xs",placeholder:w[P].title||l("Default title"),value:c.defaults.notices[P].title,onChange:$=>C(P,"title",$.target.value)})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:`notice-${P}-body`,children:l("Body")}),r.jsx(Tr,{id:`notice-${P}-body`,className:"mt-1 text-xs min-h-[60px]",placeholder:w[P].body||l("Default body"),value:c.defaults.notices[P].body,onChange:$=>C(P,"body",$.target.value)})]})]})]},P))})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("List page labels")}),r.jsx(Pe,{children:l("Every user-facing string on the opt-out list page is configurable here — table columns, button labels, the confirm-dialog prompts shown before cancelling / bulk-cancelling / re-activating, plus the empty state. Leave empty to use the built-in default. WPML String Translation picks up custom values automatically.")})]}),r.jsx(ne,{children:s?r.jsx(oe,{className:"h-64 w-full"}):r.jsx(h3,{type:"multiple",className:"w-full",children:p3.map(P=>r.jsxs(kN,{value:P.group,children:[r.jsx(_N,{className:"text-sm",children:P.group}),r.jsx(EN,{children:r.jsx("div",{className:"space-y-3 pt-2",children:P.items.map(({key:$,hint:W})=>r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:`label-${$}`,children:$}),r.jsx(Re,{id:`label-${$}`,className:"mt-1 h-9 text-xs",placeholder:j[$]||l("Default"),value:c.defaults.labels[$],onChange:se=>R($,se.target.value)}),W&&r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1",children:W})]},$))})})]},P.group))})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("List page notices")}),r.jsxs(Pe,{children:[l("Success notices rendered above the table after the visitor cancels, bulk-cancels, or re-activates a subscription. Some bodies accept")," ",r.jsx("code",{className:"bg-muted px-1 rounded",children:"%s"})," /",r.jsx("code",{className:"bg-muted px-1 rounded",children:"%d"})," ",l("placeholders — see each entry's hint.")]})]}),r.jsx(ne,{className:"space-y-5",children:s?r.jsx(oe,{className:"h-64 w-full"}):kp.map(P=>r.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium",children:_p[P].label}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:_p[P].hint}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:[r.jsx("strong",{children:l("Placeholder:")})," ",r.jsx("code",{className:"bg-muted px-1 rounded",children:_p[P].bodyPlaceholders})]})]}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-[1fr_2fr]",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:`listnotice-${P}-title`,children:l("Title")}),r.jsx(Re,{id:`listnotice-${P}-title`,className:"mt-1 h-9 text-xs",placeholder:b[P].title||l("Default title"),value:c.defaults.list_notices[P].title,onChange:$=>T(P,"title",$.target.value)})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",htmlFor:`listnotice-${P}-body`,children:l("Body")}),r.jsx(Tr,{id:`listnotice-${P}-body`,className:"mt-1 text-xs min-h-[60px]",placeholder:b[P].body||l("Default body"),value:c.defaults.list_notices[P].body,onChange:$=>T(P,"body",$.target.value)})]})]})]},P))})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Per-form overrides")}),r.jsx(Pe,{children:l('Override the defaults above for specific forms — e.g. a different confirmation mail per newsletter, or fully disabling opt-out for a transactional form. Empty fields inherit from defaults; the on/off switch can be left on "Inherit" or set explicitly per form.')})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(je,{value:m,onValueChange:v,children:[r.jsx(ve,{className:"flex-1",children:r.jsx(we,{placeholder:l("Select a form to add…")})}),r.jsx(ye,{children:y.length===0?r.jsx(z,{value:"__empty",disabled:!0,children:l("No forms detected")}):y.map(P=>r.jsxs(z,{value:P.key,children:[P.integrationName," / ",P.title]},P.key))})]}),r.jsxs(H,{onClick:M,disabled:!m,children:[r.jsx(la,{className:"h-4 w-4 mr-1.5"}),l("Add form")]})]}),c.forms.length===0?r.jsxs("div",{className:"flex items-start gap-2 rounded-lg bg-accent p-3",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("No per-form overrides yet — every form uses the defaults above. Add a form to override its opt-out mail, page, or to disable opt-out for it entirely.")})]}):r.jsx("div",{className:"space-y-4",children:c.forms.map((P,$)=>r.jsx(v3,{entry:P,label:p(P.integration,P.form_id),pages:S,templates:k,defaultPageLabel:re,defaultTemplateLabel:D,defaultSubject:c.defaults.optout_subject,onChange:(W,se)=>O($,W,se),onRemove:()=>B($)},`${P.integration}_${P.form_id}`))})]})]}),r.jsx("div",{className:"flex flex-wrap items-center gap-2",children:r.jsx(H,{onClick:()=>N.mutate(c),disabled:N.isPending,children:N.isPending?l("Saving..."):l("Save")})})]}),r.jsx("div",{className:"space-y-6",children:r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsx(ue,{className:"text-sm",children:l("Hooks Reference")})}),r.jsx(ne,{children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-xs text-muted-foreground",children:l("Filter")}),r.jsx("code",{className:"block bg-muted px-2 py-1 rounded text-xs font-mono",children:"f12_cf7_doubleoptin_optout_body"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l("Modify the opt-out email body before sending.")})]})})]})})]})]});return r.jsx(vp,{featureName:l("Opt-Out System"),requireAddon:"opt-out",children:te})}function v3({entry:e,label:t,pages:n,templates:s,defaultPageLabel:o,defaultTemplateLabel:a,defaultSubject:i,onChange:c,onRemove:d}){var h,m;const u=e.enabled===null?"__inherit":e.enabled?"yes":"no";return r.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{className:"text-sm font-medium",children:t}),r.jsx(H,{variant:"ghost",size:"sm",onClick:d,title:l("Remove this override"),children:r.jsx(gn,{className:"h-4 w-4"})})]}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Opt-out for this form")}),r.jsxs(je,{value:u,onValueChange:v=>{v==="__inherit"?c("enabled",null):v==="yes"?c("enabled",!0):c("enabled",!1)},children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:l("Inherit (active)")}),r.jsx(z,{value:"yes",children:l("Enabled for this form")}),r.jsx(z,{value:"no",children:l("Disabled for this form")})]})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1",children:l('"Disabled" suppresses opt-out invitation mails for this form. Existing opt-out hashes still resolve.')})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Opt-out page")}),r.jsxs(je,{value:e.optout_page?String(e.optout_page):"__inherit",onValueChange:v=>c("optout_page",v==="__inherit"?null:Number(v)),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),o)}),n.map(v=>r.jsx(z,{value:v.id.toString(),children:v.title},v.id))]})]})]}),r.jsxs("div",{className:"sm:col-span-2",children:[r.jsx(X,{className:"text-xs",children:l("Subject override")}),r.jsx(Re,{className:"mt-1 h-9 text-xs",placeholder:le(l("Inherit (%s)"),i||l("(empty)")),value:(h=e.optout_subject)!=null?h:"",onChange:v=>c("optout_subject",v.target.value===""?null:v.target.value)})]}),r.jsxs("div",{className:"sm:col-span-2",children:[r.jsx(X,{className:"text-xs",children:l("Template override")}),r.jsxs(je,{value:e.optout_template||"__inherit",onValueChange:v=>c("optout_template",v==="__inherit"?null:v),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),a)}),s.map(v=>r.jsx(z,{value:String(v.id),children:v.title},v.id))]})]})]}),!e.optout_template&&r.jsxs("div",{className:"sm:col-span-2",children:[r.jsx(X,{className:"text-xs",children:l("Body override")}),r.jsx(Tr,{className:"mt-1 text-xs font-mono min-h-[120px]",placeholder:l("Inherit from defaults — leave empty to use the default body."),value:(m=e.optout_body)!=null?m:"",onChange:v=>c("optout_body",v.target.value===""?null:v.target.value)})]})]})]})}function y3({templateId:e,title:t}){const n=e?`#/email-templates/${encodeURIComponent(String(e))}/edit`:null;return r.jsxs("div",{className:"space-y-2",children:[r.jsx(X,{children:l("Email Body")}),r.jsxs("div",{className:"rounded-lg border bg-gradient-to-br from-primary to-primary/70 text-primary-foreground p-5 flex items-start gap-4",children:[r.jsx("div",{className:"rounded-full bg-primary-foreground/15 p-2 shrink-0",children:r.jsx(Gn,{className:"h-5 w-5"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("h4",{className:"font-semibold mb-1",children:l("Custom template selected")}),r.jsx("p",{className:"text-sm text-primary-foreground/80 mb-3",children:le(l("%s was built in the email designer. Edit the message body there — this textarea is bypassed for custom templates."),t)}),n?r.jsx(H,{asChild:!0,variant:"secondary",size:"sm",children:r.jsxs("a",{href:n,children:[r.jsx(dd,{className:"h-3.5 w-3.5 mr-1.5"}),l("Edit in Email Designer")]})}):r.jsx(H,{variant:"secondary",size:"sm",disabled:!0,children:l("Editor link unavailable")})]})]})]})}const ON=[{value:"subscriber",label:l("Subscriber")},{value:"contributor",label:l("Contributor")},{value:"author",label:l("Author")},{value:"editor",label:l("Editor")}],Ep={all:{title:l("All forms (every confirmation creates a user)"),hint:l("Every DOI-enabled form on the site auto-creates a user on confirmation. Use this only if you really mean it — auto user creation is a privileged action.")},selected:{title:l("Only selected forms (opt-in list — default)"),hint:l("Auto-creation runs ONLY on the forms in the list below. The safe default — drift here from `all` would silently create users from every form.")},all_except:{title:l("All forms EXCEPT selected (opt-out list)"),hint:l("Every form auto-creates EXCEPT those in the list. Symmetric to `all` with an exclusion list.")}},b3={enabled:!0,mode:"selected",defaults:{role:"subscriber",send_welcome_mail:!0,force_password_change:!1,duplicate_policy:"skip",field_map:{}},conditions:[]};function j3(e,t,n,s){const o=l(s==="skip"?"If the email already belongs to a user, no action is taken.":s==="update_meta"?"If the email already belongs to a user, their meta fields get updated from the field map (role stays unchanged).":"If the email already belongs to a user, the confirmation is logged as an error and no user is updated.");return e==="all"?{headline:le(l("Auto-create a %s on every confirmation"),t),detail:le(l("Every DOI form on the site triggers user creation on confirm. %s"),o)}:e==="selected"?n===0?{headline:l("No forms in scope — auto user creation is currently inactive"),detail:l("mode=selected with an empty list means no form is in scope. Add at least one form below to enable.")}:{headline:le(ow("Auto-create a %1$s on confirmations from the %2$s listed form","Auto-create a %1$s on confirmations from the %2$s listed forms",n),t,n),detail:le(l("Only the listed forms trigger user creation. Forms not in the list are completely unaffected. %s"),o)}:n===0?{headline:le(l("Auto-create a %s on every confirmation"),t),detail:le(l("No exclusions configured — every form triggers user creation. %s"),o)}:{headline:le(l("Auto-create a %1$s on every form EXCEPT the %2$s excluded"),t,n),detail:le(ow("%1$s form is excluded; everything else triggers user creation. %2$s","%1$s forms are excluded; everything else triggers user creation. %2$s",n),n,o)}}function w3(){const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["user-creation-settings"],queryFn:()=>Z("/user-creation/settings")}),{data:s}=Ce({queryKey:["forms"],queryFn:()=>Z("/forms")}),[o,a]=f.useState(b3),[i,c]=f.useState(!1),[d,u]=f.useState("");f.useEffect(()=>{var N,S,k,E,C,R,T,A,M;if(!t||i)return;const x=(N=t.data)!=null?N:t;a({enabled:x.enabled!==!1,mode:(S=x.mode)!=null?S:"selected",defaults:{role:(E=(k=x.defaults)==null?void 0:k.role)!=null?E:"subscriber",send_welcome_mail:((C=x.defaults)==null?void 0:C.send_welcome_mail)!==!1,force_password_change:((R=x.defaults)==null?void 0:R.force_password_change)===!0,duplicate_policy:(A=(T=x.defaults)==null?void 0:T.duplicate_policy)!=null?A:"skip",field_map:(M=x.defaults)!=null&&M.field_map&&typeof x.defaults.field_map=="object"?x.defaults.field_map:{}},conditions:Array.isArray(x.conditions)?x.conditions:[]}),c(!0)},[t,i]);const h=f.useMemo(()=>{var S;const x=(S=s==null?void 0:s.data)!=null?S:{},N=[];for(const[k,E]of Object.entries(x))if(E)for(const C of E.forms){const R=Number(typeof C.id=="string"?C.id.split("_")[0]:C.id);R&&N.push({key:`${k}_${R}`,integration:k,integrationName:E.name,formId:R,title:C.title||`#${R}`})}return N},[s]),m=(x,N)=>{const S=h.find(k=>k.integration===x&&k.formId===N);return S?`${S.integrationName} / ${S.title}`:`${x} / #${N}`},v=Te({mutationFn:()=>Z("/user-creation/settings",{method:"PUT",body:JSON.stringify(o)}),onSuccess:()=>{q.success(l("User Creation settings saved.")),e.invalidateQueries({queryKey:["user-creation-settings"]})},onError:x=>{q.error(x.message||l("Failed to save User Creation settings."))}});function g(x,N){a(S=>({...S,defaults:{...S.defaults,[x]:N}}))}function j(){if(!d)return;const x=h.find(N=>N.key===d);if(x){if(o.conditions.some(N=>N.integration===x.integration&&N.form_id===x.formId)){q.warning(l("This form is already in the list."));return}a(N=>({...N,conditions:[...N.conditions,{integration:x.integration,form_id:x.formId,role:null,send_welcome_mail:null,duplicate_policy:null,field_map:null}]})),u("")}}function b(x){a(N=>({...N,conditions:N.conditions.filter((S,k)=>k!==x)}))}function w(x,N,S){a(k=>({...k,conditions:k.conditions.map((E,C)=>C===x?{...E,[N]:S}:E)}))}if(n)return r.jsx(oe,{className:"h-96 w-full"});const y=j3(o.mode,o.defaults.role,o.conditions.length,o.defaults.duplicate_policy),p=r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsxs("h1",{className:"text-2xl font-bold tracking-tight flex items-center gap-2",children:[r.jsx(Y0,{className:"h-6 w-6"}),l("Auto User Creation")]}),r.jsx("p",{className:"text-muted-foreground",children:l("Create a WordPress user automatically after opt-in confirmation")})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Feature toggle")}),r.jsx(Pe,{children:l("Turn this feature on or off without deactivating the addon plugin. Use this when you want to pause auto-creation temporarily (e.g. while debugging a form). All settings below are preserved while the feature is off.")})]}),r.jsx(ne,{children:r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{htmlFor:"uc-enabled",className:"text-base",children:l("Enabled")}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l("When off, no users are auto-created — confirmations still complete normally, just without a WP user being made.")})]}),r.jsx(tn,{id:"uc-enabled",checked:o.enabled,onCheckedChange:x=>a(N=>({...N,enabled:x}))})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("How User Creation applies")}),r.jsx(Pe,{children:l("Pick whether every confirmation creates a user, only confirmations on selected forms, or every form except the ones you exclude. The defaults below apply to forms in scope; per-form entries override.")})]}),r.jsxs(ne,{className:"space-y-3",children:[Object.keys(Ep).map(x=>r.jsxs("label",{className:"flex items-start gap-3 rounded-lg border p-3 cursor-pointer transition-colors "+(o.mode===x?"border-primary bg-primary/5":"hover:border-foreground/30"),children:[r.jsx("input",{type:"radio",name:"uc-mode",value:x,checked:o.mode===x,onChange:()=>a(N=>({...N,mode:x})),className:"mt-1"}),r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium",children:Ep[x].title}),r.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:Ep[x].hint})]})]},x)),r.jsxs("div",{className:"mt-2 rounded-lg border border-primary/30 bg-primary/5 p-3",children:[r.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-primary mb-1",children:l("Resulting behavior")}),r.jsx("div",{className:"text-sm font-medium",children:y.headline}),r.jsx("div",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:y.detail})]})]})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Default settings")}),r.jsx(Pe,{children:l("Applied to every form in scope. Per-form entries can override individually.")})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"uc-role",children:l("Default role")}),r.jsxs(je,{value:o.defaults.role,onValueChange:x=>g("role",x),children:[r.jsx(ve,{id:"uc-role",className:"mt-1.5",children:r.jsx(we,{})}),r.jsx(ye,{children:ON.map(x=>r.jsx(z,{value:x.value,children:x.label},x.value))})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:l("Administrator is excluded for security — no role-escalation via opt-in.")})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"uc-policy",children:l("Duplicate user policy")}),r.jsxs(je,{value:o.defaults.duplicate_policy,onValueChange:x=>g("duplicate_policy",x),children:[r.jsx(ve,{id:"uc-policy",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"skip",children:l("Skip (do nothing)")}),r.jsx(z,{value:"update_meta",children:l("Update meta of existing user")}),r.jsx(z,{value:"error",children:l("Treat as error")})]})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[r.jsx("strong",{children:"update_meta"})," ",l("applies the field map to the existing user but never changes their role (privilege guard).")]})]})]}),r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{htmlFor:"uc-welcome",children:l("Send WP password-reset email")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("Standard WP welcome flow — let the new user set their own password. Disable if you handle onboarding mails elsewhere.")})]}),r.jsx(tn,{id:"uc-welcome",checked:o.defaults.send_welcome_mail,onCheckedChange:x=>g("send_welcome_mail",x)})]}),r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{htmlFor:"uc-force-pw",children:l("Force password change on first login")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("On their next login the user lands on the password-reset page instead of wp-admin. Catches the rare case where someone logs in before opening the welcome mail. One-shot.")})]}),r.jsx(tn,{id:"uc-force-pw",checked:o.defaults.force_password_change,onCheckedChange:x=>g("force_password_change",x)})]}),r.jsx("div",{className:"rounded-lg border border-blue-200 bg-blue-50/50 p-3",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx(yt,{className:"h-4 w-4 text-blue-600 shrink-0 mt-0.5"}),r.jsxs("div",{className:"text-xs text-muted-foreground leading-relaxed",children:[r.jsx("span",{className:"font-medium text-foreground",children:l("Want to block disposable-email domains?")})," ",l("Install the")," ",r.jsx("strong",{children:"Domain Blocklist"})," ",l("addon. It intercepts before any opt-in record or confirmation mail — cleaner than skipping just the user-create step.")," ",l("For one-off custom rules, third-party code can subscribe to the")," ",r.jsx("code",{className:"px-1 mx-0.5 bg-background rounded text-[10px]",children:"f12_doi_user_registration_should_create"})," ",l("filter.")]})]})})]})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:o.mode==="selected"?l("Forms to apply auto-creation to"):o.mode==="all_except"?l("Forms to exclude from auto-creation"):l("Per-form overrides")}),r.jsxs(Pe,{children:[o.mode==="all"&&l("All forms are in scope. Add entries here to override the defaults for specific forms."),o.mode==="selected"&&l("Only forms in this list create users on confirmation."),o.mode==="all_except"&&l("These forms are exempt — they confirm normally but no WP user is created.")]})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(je,{value:d,onValueChange:u,children:[r.jsx(ve,{className:"flex-1",children:r.jsx(we,{placeholder:l("Select a form to add…")})}),r.jsx(ye,{children:h.length===0?r.jsx(z,{value:"__empty",disabled:!0,children:l("No forms detected")}):h.map(x=>r.jsxs(z,{value:x.key,children:[x.integrationName," / ",x.title]},x.key))})]}),r.jsxs(H,{onClick:j,disabled:!d,children:[r.jsx(la,{className:"h-4 w-4 mr-1.5"}),l("Add")]})]}),o.conditions.length===0?r.jsxs("div",{className:"flex items-start gap-2 rounded-lg bg-accent p-3",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:o.mode==="selected"?l("No forms in the list yet. Auto user creation is currently inactive — add at least one form above."):o.mode==="all_except"?l("No exclusions configured. Every form creates users — same as mode=all."):l("No per-form overrides. Defaults apply to every form.")})]}):r.jsx("div",{className:"space-y-3",children:o.conditions.map((x,N)=>{var S,k;return r.jsxs("div",{className:"rounded-lg border p-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{className:"text-sm font-medium",children:m(x.integration,x.form_id)}),r.jsx(H,{variant:"ghost",size:"sm",onClick:()=>b(N),title:l("Remove from list"),children:r.jsx(gn,{className:"h-4 w-4"})})]}),o.mode!=="all_except"&&r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 mt-3",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Override role")}),r.jsxs(je,{value:(S=x.role)!=null?S:"__inherit",onValueChange:E=>w(N,"role",E==="__inherit"?null:E),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),o.defaults.role)}),ON.map(E=>r.jsx(z,{value:E.value,children:E.label},E.value))]})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Override duplicate policy")}),r.jsxs(je,{value:(k=x.duplicate_policy)!=null?k:"__inherit",onValueChange:E=>w(N,"duplicate_policy",E==="__inherit"?null:E),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),o.defaults.duplicate_policy)}),r.jsx(z,{value:"skip",children:l("Skip")}),r.jsx(z,{value:"update_meta",children:l("Update meta")}),r.jsx(z,{value:"error",children:l("Error")})]})]})]})]})]},`${x.integration}_${x.form_id}`)})}),r.jsx("div",{className:"flex flex-wrap items-center gap-2 pt-3 border-t",children:r.jsxs(H,{onClick:()=>v.mutate(),disabled:v.isPending,children:[v.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(so,{className:"h-4 w-4 mr-1.5"}),l("Save User Creation settings")]})})]})]}),r.jsx(ee,{className:"border-blue-200 bg-blue-50/50",children:r.jsx(ne,{className:"pt-6",children:r.jsxs("div",{className:"flex gap-3",children:[r.jsx(yt,{className:"h-5 w-5 text-blue-600 shrink-0 mt-0.5"}),r.jsxs("div",{className:"space-y-2 text-sm",children:[r.jsx("p",{children:l("Auto-created users get a random password. The standard WordPress password-reset email is sent automatically (toggle above to disable).")}),r.jsxs("p",{children:[l("For field mapping (form fields → WP user meta), use the")," ",r.jsx("code",{className:"px-1 mx-1 bg-background rounded",children:"f12_doi_user_registration_form_fields"})," ",l("filter — see the addon documentation.")]})]})]})})})]});return r.jsx(vp,{featureName:l("Auto User Creation"),requireAddon:"user-registration",children:p})}const N3=[{value:"__none__",label:l("None")},{value:"cleverreach",label:"CleverReach"}];function S3(){var u;const e=ra("cleverreach"),t=Xe(),{data:n,isLoading:s}=Ce({queryKey:["api-settings"],queryFn:()=>Z("/api/settings"),enabled:e}),[o,a]=f.useState({service:"",cleverreach_client_id:"",cleverreach_client_secret:"",cleverreach_connected:!1});f.useEffect(()=>{n!=null&&n.data&&a(n.data)},[n]);const i=Te({mutationFn:h=>Z("/api/settings",{method:"PUT",body:JSON.stringify(h)}),onSuccess:h=>{t.invalidateQueries({queryKey:["api-settings"]}),q.success(h.message||l("API settings saved."))},onError:h=>{q.error(h.message||l("Failed to save settings."))}}),c=Te({mutationFn:()=>Z("/cleverreach/connect",{method:"POST"}),onSuccess:h=>{var m;(m=h.data)!=null&&m.redirect_url?window.location.href=h.data.redirect_url:(t.invalidateQueries({queryKey:["api-settings"]}),q.success(h.message||l("Connected to CleverReach.")))},onError:h=>{q.error(h.message||l("Failed to connect to CleverReach."))}}),d=r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsxs("h1",{className:"text-2xl font-bold tracking-tight flex items-center gap-2",children:[r.jsx(Ym,{className:"h-6 w-6"}),l("API Integrations"),!e&&r.jsx(cp,{})]}),r.jsx("p",{className:"text-muted-foreground",children:l("Connect external services to your Double Opt-In system")})]}),r.jsxs("div",{className:"max-w-[600px] space-y-6",children:[r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("API Endpoint")}),r.jsx(Pe,{children:l("Select the external service to connect.")})]}),r.jsx(ne,{children:s?r.jsx(oe,{className:"h-10 w-full"}):r.jsxs(je,{value:o.service||"__none__",onValueChange:h=>a(m=>({...m,service:h==="__none__"?"":h})),children:[r.jsx(ve,{children:r.jsx(we,{placeholder:l("None")})}),r.jsx(ye,{children:N3.map(h=>r.jsx(z,{value:h.value,children:h.label},h.value))})]})})]}),o.service==="cleverreach"&&r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:"CleverReach"}),r.jsx(Pe,{children:l("Configure your CleverReach API credentials.")})]}),r.jsx(ne,{className:"space-y-4",children:s?r.jsxs("div",{className:"space-y-3",children:[r.jsx(oe,{className:"h-10 w-full"}),r.jsx(oe,{className:"h-10 w-full"}),r.jsx(oe,{className:"h-10 w-full"})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(X,{htmlFor:"cr-client-id",children:l("Client ID")}),r.jsx(Re,{id:"cr-client-id",value:o.cleverreach_client_id,onChange:h=>a(m=>({...m,cleverreach_client_id:h.target.value})),placeholder:l("Enter Client ID")}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l("Get credentials at")," ",r.jsxs("a",{href:"https://rest.cleverreach.com/clients/index.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline inline-flex items-center gap-1",children:[l("CleverReach REST API settings"),r.jsx(cd,{className:"h-3 w-3"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(X,{htmlFor:"cr-client-secret",children:l("Client Secret")}),r.jsx(Re,{id:"cr-client-secret",type:"password",value:(u=o.cleverreach_client_secret)!=null?u:"",onChange:h=>a(m=>({...m,cleverreach_client_secret:h.target.value})),placeholder:l("Enter Client Secret")}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l("Get credentials at")," ",r.jsxs("a",{href:"https://rest.cleverreach.com/clients/index.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline inline-flex items-center gap-1",children:[l("CleverReach REST API settings"),r.jsx(cd,{className:"h-3 w-3"})]})]})]}),r.jsx(ee,{className:"border-dashed",children:r.jsx(ne,{className:"pt-4",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:l("Connection Status")}),r.jsx(Qe,{variant:o.cleverreach_connected?"default":"secondary",className:o.cleverreach_connected?"bg-green-100 text-green-800 hover:bg-green-100":"bg-amber-100 text-amber-800 hover:bg-amber-100",children:o.cleverreach_connected?l("Connected"):l("Not Connected")}),o.cleverreach_connected&&o.cleverreach_expires_at&&r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l("Expires:")," ",o.cleverreach_expires_at]})]}),r.jsx(H,{variant:o.cleverreach_connected?"outline":"default",size:"sm",onClick:()=>c.mutate(),disabled:c.isPending,children:c.isPending?l("Connecting..."):o.cleverreach_connected?l("Reconnect"):l("Connect to CleverReach")})]})})})]})})]}),r.jsx(H,{onClick:()=>i.mutate(o),disabled:i.isPending||s,children:i.isPending?l("Saving..."):l("Save")})]})]});return r.jsx(vp,{featureName:l("API Integrations"),requireAddon:"cleverreach",children:d})}function C3(){var d;const e=Xe(),[t,n]=f.useState(""),{data:s,isLoading:o}=Ce({queryKey:["license"],queryFn:()=>Z("/license")}),a=s==null?void 0:s.data,i=Te({mutationFn:u=>Z("/license/activate",{method:"POST",body:JSON.stringify({key:u})}),onSuccess:u=>{e.invalidateQueries({queryKey:["license"]}),q.success(u.message||l("License activated successfully.")),n("")},onError:u=>{q.error(u.message||l("Failed to activate license."))}}),c=Te({mutationFn:()=>Z("/license/deactivate",{method:"POST"}),onSuccess:u=>{e.invalidateQueries({queryKey:["license"]}),q.success(u.message||l("License deactivated."))},onError:u=>{q.error(u.message||l("Failed to deactivate license."))}});return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("License")}),r.jsx("p",{className:"text-muted-foreground",children:l("Manage your Double Opt-In Pro license")})]}),r.jsxs("div",{className:"max-w-[600px] mx-auto space-y-6",children:[r.jsxs(ee,{children:[r.jsxs(ce,{className:"text-center",children:[r.jsx("div",{className:"mx-auto mb-2",children:r.jsx("div",{className:"w-12 h-12 rounded-full bg-muted flex items-center justify-center mx-auto",children:r.jsx(Jm,{className:"h-6 w-6 text-muted-foreground"})})}),r.jsx(ue,{children:l("License Status")})]}),r.jsx(ne,{className:"text-center space-y-3",children:o?r.jsxs("div",{className:"space-y-2",children:[r.jsx(oe,{className:"h-6 w-24 mx-auto"}),r.jsx(oe,{className:"h-4 w-40 mx-auto"})]}):r.jsxs(r.Fragment,{children:[r.jsx(Qe,{variant:a!=null&&a.isActive?"default":"secondary",className:a!=null&&a.isActive?"bg-green-100 text-green-800 hover:bg-green-100":"",children:a!=null&&a.isActive?l("Active"):l("Inactive")}),(a==null?void 0:a.isActive)&&r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:a.licenseType}),a.expiresAt&&r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l("Expires:")," ",a.expiresAt]})]})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsxs(ue,{className:"flex items-center gap-2",children:[r.jsx(K0,{className:"h-4 w-4"}),l("License Key")]}),r.jsx(Pe,{children:a!=null&&a.isActive?l("Your license is currently active."):l("Enter your license key to activate Pro features.")})]}),r.jsx(ne,{children:a!=null&&a.isActive?r.jsxs("div",{className:"space-y-3",children:[r.jsx(Re,{value:a.key||"",readOnly:!0,className:"font-mono text-center bg-muted"}),r.jsx(H,{variant:"destructive",className:"w-full",onClick:()=>c.mutate(),disabled:c.isPending,children:c.isPending?l("Deactivating..."):l("Deactivate")})]}):r.jsxs("div",{className:"space-y-3",children:[r.jsx(Re,{value:t,onChange:u=>n(u.target.value),placeholder:"XXXX-XXXX-XXXX-XXXX",className:"font-mono text-center"}),r.jsx(H,{className:"w-full",onClick:()=>i.mutate(t),disabled:!t.trim()||i.isPending,children:i.isPending?l("Activating..."):l("Activate")})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Included modules")}),r.jsx(Pe,{children:l("Every module below is unlocked by your Pro bundle license. A check means it is installed and active on this site.")})]}),r.jsx(ne,{children:o?r.jsx("div",{className:"space-y-2",children:Array.from({length:6}).map((u,h)=>r.jsx(oe,{className:"h-5 w-full"},h))}):r.jsx("ul",{className:"space-y-2",children:((d=a==null?void 0:a.features)!=null?d:[]).map(u=>r.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[u.available?r.jsx(id,{className:"h-4 w-4 text-green-600 shrink-0"}):r.jsx(Nr,{className:"h-4 w-4 text-muted-foreground shrink-0"}),r.jsx("span",{className:u.available?"":"text-muted-foreground",children:u.name})]},u.slug))})})]})]}),r.jsx(er,{id:"license.section",data:{license:a}})]})}const IN=new Set(["avada","elementor","wpforms","gravity-forms"]);function k3(){var v,g;const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["addons-catalog"],queryFn:()=>Z("/addons/catalog")}),{data:s}=Ce({queryKey:["license"],queryFn:()=>Z("/license")}),o=s==null?void 0:s.data,a=(v=t==null?void 0:t.entries)!=null?v:[],i=(g=t==null?void 0:t.hasBundleLicense)!=null?g:!1,c=$t(),d=Te({mutationFn:j=>Z(`/addons/${j}/activate`,{method:"POST"}),onSuccess:(j,b)=>{var y,p;const w=(p=(y=a.find(x=>x.id===b))==null?void 0:y.name)!=null?p:b;q.success(le(l("%s activated."),w)),e.invalidateQueries({queryKey:["addons-catalog"]}),e.invalidateQueries({queryKey:["addons-manifest"]})},onError:j=>{q.error(j.message||l("Failed to activate addon."))}}),u=Te({mutationFn:j=>Z(`/addons/${j}/deactivate`,{method:"POST"}),onSuccess:(j,b)=>{var y,p;const w=(p=(y=a.find(x=>x.id===b))==null?void 0:y.name)!=null?p:b;q.success(le(l("%s deactivated."),w)),e.invalidateQueries({queryKey:["addons-catalog"]}),e.invalidateQueries({queryKey:["addons-manifest"]})},onError:j=>{q.error(j.message||l("Failed to deactivate addon."))}}),h=Te({mutationFn:j=>Z("/bundle/installer/install",{method:"POST",body:JSON.stringify({id:j})}),onSuccess:(j,b)=>{var y,p;const w=(p=(y=a.find(x=>x.id===b))==null?void 0:y.name)!=null?p:b;q.success(le(l("%s installed."),w)),e.invalidateQueries({queryKey:["addons-catalog"]}),e.invalidateQueries({queryKey:["addons-manifest"]})},onError:j=>{q.error(j.message||l("Failed to install addon."))}});f.useEffect(()=>{const j=()=>{e.invalidateQueries({queryKey:["addons-catalog"]}),e.invalidateQueries({queryKey:["addons-manifest"]})};return window.addEventListener("f12-doi:addons-changed",j),()=>window.removeEventListener("f12-doi:addons-changed",j)},[e]);const m=a.reduce((j,b)=>(j[b.status]++,j),{active:0,inactive:0,not_installed:0});return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Addons")}),r.jsx("p",{className:"text-muted-foreground",children:l("Extend Double Opt-In with official addons. Bundled addons can be installed in one click once your Pro license is active.")})]}),r.jsx(er,{id:"addons.list",data:{entries:a,license:o,hasLicense:i}}),r.jsxs(ee,{children:[r.jsx(ce,{children:r.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[r.jsxs("div",{children:[r.jsxs(ue,{className:"flex items-center gap-2",children:[r.jsx(aa,{className:"h-5 w-5"}),l("Addon catalog")]}),r.jsx(Pe,{children:n?l("Loading…"):le(l("%1$s active · %2$s installed · %3$s available"),m.active,m.inactive,m.not_installed)})]}),!i&&!n&&r.jsx(H,{asChild:!0,size:"sm",variant:"default",children:r.jsxs("a",{href:"#/license",children:[r.jsx(Nr,{className:"h-4 w-4 mr-1"}),l("Activate Pro")]})})]})}),r.jsx(ne,{children:n?r.jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((j,b)=>r.jsx(oe,{className:"h-44 w-full"},b))}):a.length===0?r.jsx("p",{className:"text-sm text-muted-foreground",children:l("No addons in the catalog. Check that the Double Opt-In core is up to date.")}):r.jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:a.map(j=>r.jsx(_3,{entry:j,hasLicense:i,adminUrl:c.adminUrl,onActivate:()=>d.mutate(j.id),onDeactivate:()=>u.mutate(j.id),onInstall:()=>h.mutate(j.id),isActivating:d.isPending&&d.variables===j.id,isDeactivating:u.isPending&&u.variables===j.id,isInstalling:h.isPending&&h.variables===j.id},j.id))})})]})]})}function _3({entry:e,hasLicense:t,onActivate:n,onDeactivate:s,onInstall:o,isActivating:a,isDeactivating:i,isInstalling:c}){const[d,u]=f.useState(!1),h=IN.has(e.id),m=e.status==="active"&&e.operational&&h&&(e.integrationRegistered===!1||e.integrationAvailable===!1),v=e.status==="active"&&!e.operational||m;return r.jsxs("div",{className:"rounded-lg border bg-card p-4 flex flex-col gap-3 h-full","data-addon-id":e.id,"data-addon-status":e.status,children:[r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(P3,{entry:e}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"font-semibold leading-tight flex items-center gap-2",children:[r.jsx(E3,{loaded:e.operational}),r.jsx("span",{children:e.name})]}),r.jsx(T3,{entry:e})]})]}),r.jsx("p",{className:"text-sm text-muted-foreground flex-1",children:e.description}),v&&r.jsx(R3,{entry:e}),e.capabilities.length>0&&r.jsx("div",{className:"flex flex-wrap gap-1",children:e.capabilities.slice(0,3).map(g=>r.jsx(Qe,{variant:"outline",className:"text-[10px] font-mono",children:g},g))}),r.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[r.jsx(M3,{entry:e,hasLicense:t,onActivate:n,onDeactivate:s,onInstall:o,isActivating:a,isDeactivating:i,isInstalling:c}),r.jsx(H,{size:"sm",variant:"ghost",onClick:()=>u(g=>!g),"aria-label":l("Toggle diagnostic info"),title:l("Diagnostic info"),children:r.jsx(kE,{className:"h-4 w-4"})})]}),d&&r.jsx(I3,{entry:e})]})}function E3({loaded:e}){return r.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-full shrink-0 "+(e?"bg-green-500 ring-2 ring-green-500/20":"bg-red-500 ring-2 ring-red-500/20"),title:l(e?"Loaded":"Not loaded"),"aria-label":l(e?"Loaded":"Not loaded")})}function P3({entry:e}){return e.status==="active"?e.operational?r.jsx(W0,{className:"h-5 w-5 text-green-600 shrink-0 mt-0.5"}):r.jsx(zt,{className:"h-5 w-5 text-amber-500 shrink-0 mt-0.5"}):e.status==="inactive"?r.jsx(Vi,{className:"h-5 w-5 text-amber-500 shrink-0 mt-0.5"}):r.jsx(TE,{className:"h-5 w-5 text-muted-foreground shrink-0 mt-0.5"})}function T3({entry:e}){return e.status==="active"?e.operational?r.jsx(Qe,{className:"bg-green-100 text-green-800 hover:bg-green-100 mt-1",children:l("Active")}):r.jsx(Qe,{className:"bg-amber-100 text-amber-800 hover:bg-amber-100 mt-1",children:l("Active · issues")}):e.status==="inactive"?r.jsx(Qe,{variant:"secondary",className:"mt-1",children:l("Installed · inactive")}):r.jsx(Qe,{variant:"outline",className:"mt-1",children:l("Not installed")})}function R3({entry:e}){const t=e.inactiveReason?O3(e.inactiveReason):A3(e);if(!t)return null;const n=t.icon;return r.jsxs("div",{className:"rounded-md border border-amber-200 bg-amber-50 p-3 text-xs text-amber-900 flex items-start gap-2",children:[r.jsx(n,{className:"h-4 w-4 shrink-0 mt-0.5"}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("div",{className:"font-medium",children:t.title}),r.jsx("div",{className:"mt-0.5 text-amber-800",children:t.body}),t.cta&&r.jsxs("a",{href:t.cta.href,className:"inline-block mt-1 underline font-medium",children:[t.cta.label," →"]})]})]})}function A3(e){return IN.has(e.id)?e.integrationRegistered===!1?{icon:zt,title:l("Form integration not registered"),body:l("The addon booted but did not register its form integration. Most likely the integration's own prerequisite check failed at boot time (e.g. the third-party form builder's class symbols differ from what the integration probes for)."),cta:null}:e.integrationAvailable===!1?{icon:zt,title:l("Form integration unavailable at runtime"),body:l("The integration is registered but its isAvailable() check is currently failing. The third-party form plugin may have been deactivated after boot, or its class symbols are no longer present."),cta:null}:null:null}function O3(e){return e==="prerequisite"?{icon:VE,title:l("Prerequisite missing"),body:l("The license is fine, but a third-party plugin or PHP class the addon needs is not present. Check the addon's Requires Plugins header."),cta:null}:e==="not_registered"?{icon:zt,title:l("Addon failed to register"),body:l("The plugin file is active but the addon never reached the registry. Look for a fatal during boot in the PHP error log."),cta:null}:null}function I3({entry:e}){var o;const t=a=>a===null?"—":String(a),n=a=>a===null?"—":String(a),s=[["status",e.status],["registered",String(e.registered)],["operational",String(e.operational)],["inactiveReason",(o=e.inactiveReason)!=null?o:"—"],["integrationRegistered",t(e.integrationRegistered)],["integrationAvailable",t(e.integrationAvailable)],["formCount",n(e.formCount)],["pluginFile",e.pluginFile],["bundleMember",String(e.bundleMember)]];return r.jsxs("div",{className:"rounded-md border bg-muted/30 p-3 text-xs font-mono overflow-x-auto",children:[r.jsx("div",{className:"text-muted-foreground mb-1 font-sans font-medium",children:l("Diagnostic")}),r.jsx("table",{className:"w-full",children:r.jsx("tbody",{children:s.map(([a,i])=>r.jsxs("tr",{children:[r.jsx("td",{className:"pr-3 text-muted-foreground align-top",children:a}),r.jsx("td",{className:"break-all",children:i})]},a))})})]})}function M3({entry:e,hasLicense:t,onActivate:n,onDeactivate:s,onInstall:o,isActivating:a,isDeactivating:i,isInstalling:c}){return e.status==="active"?r.jsxs(H,{size:"sm",variant:"outline",className:"flex-1",onClick:s,disabled:i,children:[i?r.jsx(Pn,{className:"h-4 w-4 mr-1 animate-spin"}):r.jsx(Vi,{className:"h-4 w-4 mr-1"}),l(i?"Deactivating…":"Deactivate")]}):e.status==="inactive"?r.jsxs(H,{size:"sm",variant:"default",className:"flex-1",onClick:n,disabled:a,children:[a?r.jsx(Pn,{className:"h-4 w-4 mr-1 animate-spin"}):r.jsx(Vi,{className:"h-4 w-4 mr-1"}),l(a?"Activating…":"Activate")]}):t?r.jsxs(H,{size:"sm",variant:"default",className:"flex-1",onClick:o,disabled:c,children:[c?r.jsx(Pn,{className:"h-4 w-4 mr-1 animate-spin"}):r.jsx(Bi,{className:"h-4 w-4 mr-1"}),l(c?"Installing…":"Install")]}):r.jsx(H,{asChild:!0,size:"sm",variant:"default",className:"flex-1",children:r.jsxs("a",{href:$t().upgradeUrl,target:"_blank",rel:"noopener noreferrer",children:[r.jsx(KE,{className:"h-4 w-4 mr-1"}),l("Upgrade to Pro")]})})}const Pp="__dummy__",D3=l("Don't forget to confirm your subscription");function F3(){var x,N,S,k,E;const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["settings"],queryFn:()=>Z("/settings")}),{data:s}=Ce({queryKey:["email-templates-list"],queryFn:()=>Z("/settings/email-templates-list")}),[o,a]=f.useState({}),[i,c]=f.useState(!1);f.useEffect(()=>{var C,R,T,A;t!=null&&t.data&&!i&&(a({reminder_enabled:(C=t.data.reminder_enabled)!=null?C:0,reminder_delay:(R=t.data.reminder_delay)!=null?R:24,reminder_subject:(T=t.data.reminder_subject)!=null?T:"",reminder_template:(A=t.data.reminder_template)!=null?A:"",token_expiry_hours:t.data.token_expiry_hours}),c(!0))},[t,i]);const d=Te({mutationFn:()=>Z("/settings",{method:"PUT",body:JSON.stringify(o)}),onSuccess:()=>{q.success(l("Reminder settings saved.")),e.invalidateQueries({queryKey:["settings"]})},onError:C=>{q.error(C.message||l("Failed to save reminder settings."))}}),u=Te({mutationFn:()=>Z("/addons/reminder/regenerate-template",{method:"POST"}),onSuccess:C=>{if(!C.success||!C.templateId){q.error(C.message||l("Could not regenerate the default template."));return}q.success(C.message),a(R=>({...R,reminder_template:`custom_${C.templateId}`})),e.invalidateQueries({queryKey:["email-templates-list"]})},onError:C=>{q.error(C.message||l("Could not regenerate the default template."))}});function h(C,R){a(T=>({...T,[C]:R}))}const m=(x=s==null?void 0:s.data)!=null?x:[],[v,g]=f.useState(""),[j,b]=f.useState(Pp),{data:w}=Ce({queryKey:["reminder-recent-unconfirmed"],queryFn:()=>Z("/addons/reminder/recent-unconfirmed")}),y=Te({mutationFn:()=>Z("/addons/reminder/send-test",{method:"POST",body:JSON.stringify({recipient:v,optin_id:j===Pp?null:Number(j)})}),onSuccess:C=>{C.success?q.success(C.message):q.error(C.message||l("Could not send the test reminder."))},onError:C=>{q.error(C.message||l("Could not send the test reminder."))}}),p=(N=w==null?void 0:w.data)!=null?N:[];return r.jsxs(r.Fragment,{children:[r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Reminder behaviour")}),r.jsx(Pe,{children:l("Send a follow-up email to subscribers who haven't confirmed their opt-in within the configured delay. The send is hourly via WP-Cron — make sure your site is reachable for loopback requests.")})]}),r.jsx(ne,{className:"space-y-5",children:n?r.jsx(oe,{className:"h-40 w-full"}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{className:"text-sm font-medium",children:l("Send reminder emails")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("Master switch. When off the cron runs but skips every pending opt-in. When on the fields below take effect.")})]}),r.jsx(tn,{checked:!!o.reminder_enabled,onCheckedChange:C=>h("reminder_enabled",C?1:0)})]}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"reminder-delay",children:l("Delay before reminder (hours)")}),r.jsx(Re,{id:"reminder-delay",type:"number",min:1,className:"mt-1.5",value:(S=o.reminder_delay)!=null?S:24,onChange:C=>h("reminder_delay",Number(C.target.value))}),o.reminder_delay!==void 0&&o.token_expiry_hours!==void 0&&o.reminder_delay>=o.token_expiry_hours&&r.jsx("p",{className:"text-[11px] text-destructive mt-1.5",children:le(l("Delay is ≥ confirmation-link expiry (%dh) — the reminder may arrive after the link has already expired."),o.token_expiry_hours)})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"reminder-subject",children:l("Subject line")}),r.jsx(Re,{id:"reminder-subject",className:"mt-1.5",placeholder:D3,value:(k=o.reminder_subject)!=null?k:"",onChange:C=>h("reminder_subject",C.target.value)})]})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"reminder-template",children:l("Email template")}),r.jsxs(je,{value:(E=o.reminder_template)!=null?E:"",onValueChange:C=>h("reminder_template",C),children:[r.jsx(ve,{id:"reminder-template",className:"mt-1.5",children:r.jsx(we,{placeholder:l("Select a template")})}),r.jsx(ye,{children:m.length===0?r.jsx(z,{value:"__empty__",disabled:!0,children:l("No templates available — click Regenerate below.")}):m.map(C=>r.jsx(z,{value:String(C.id),children:C.title},C.id))})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[l("Pick any custom template from the Email Designer. The")," ",r.jsx("code",{children:"[doubleoptinlink]"})," ",l("placeholder is required — it's replaced with the confirmation URL at send time.")]})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 pt-2 border-t",children:[r.jsxs(H,{onClick:()=>d.mutate(),disabled:d.isPending,children:[d.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(so,{className:"h-4 w-4 mr-1.5"}),l("Save reminder settings")]}),r.jsxs(H,{variant:"outline",onClick:()=>u.mutate(),disabled:u.isPending,title:l("Re-create the default reminder template in the Email Designer. Useful if you deleted it by accident."),children:[u.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(HE,{className:"h-4 w-4 mr-1.5"}),l("Regenerate default template")]})]})]})})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Send test reminder")}),r.jsx(Pe,{children:l("Trigger a one-off reminder send to verify subject, sender, template, and placeholder substitution before the cron-driven send hits real subscribers. Uses the saved settings above — save first if you just changed something.")})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"test-recipient",children:l("Recipient")}),r.jsx(Re,{id:"test-recipient",type:"email",className:"mt-1.5",placeholder:"[email protected]",value:v,onChange:C=>g(C.target.value)}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:l("The test mail is sent here, not to the opt-in's real email address.")})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"test-optin",children:l("Use opt-in data for placeholders")}),r.jsxs(je,{value:j,onValueChange:C=>b(C),children:[r.jsx(ve,{id:"test-optin",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:Pp,children:l("Dummy data (no real record)")}),p.map(C=>r.jsxs(z,{value:String(C.id),children:["#",C.id," — ",C.email," (",C.created_at,")"]},C.id))]})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:l("Dummy mode uses safe sample values + a clearly-fake confirmation URL. Real opt-ins use their actual data so you can verify placeholder substitution end-to-end.")})]})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 pt-2 border-t",children:[r.jsxs(H,{onClick:()=>y.mutate(),disabled:y.isPending||!v,variant:"secondary",children:[y.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(qE,{className:"h-4 w-4 mr-1.5"}),l("Send test reminder")]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[l("The subject is prefixed with")," ",r.jsx("code",{children:"[TEST]"})," ",l("so it's obvious in your inbox.")]})]})]})]})]})}const L3=l("The email domain does not appear to accept emails. Please check your email address.");function $3(){var u,h;const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["settings"],queryFn:()=>Z("/settings")}),[s,o]=f.useState({}),[a,i]=f.useState(!1);f.useEffect(()=>{var m,v;t!=null&&t.data&&!a&&(o({mx_validation_behavior:(m=t.data.mx_validation_behavior)!=null?m:"silent",mx_validation_message:(v=t.data.mx_validation_message)!=null?v:""}),i(!0))},[t,a]);const c=Te({mutationFn:()=>Z("/settings",{method:"PUT",body:JSON.stringify(s)}),onSuccess:()=>{q.success(l("MX validation settings saved.")),e.invalidateQueries({queryKey:["settings"]})},onError:m=>{q.error(m.message||l("Failed to save MX validation settings."))}});function d(m,v){o(g=>({...g,[m]:v}))}return r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("MX validation behaviour")}),r.jsx(Pe,{children:l("Before accepting an opt-in, look up the recipient's email domain via DNS and confirm it has a working mail server (MX record, or A-record as fallback). Results are cached: 24 h for valid domains, 1 h for invalid ones. DNS lookup errors fail open — a temporary resolver outage will not block real subscribers.")})]}),r.jsx(ne,{className:"space-y-5",children:n?r.jsx(oe,{className:"h-40 w-full"}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"mx-behavior",children:l("Validation behaviour")}),r.jsxs(je,{value:(u=s.mx_validation_behavior)!=null?u:"silent",onValueChange:m=>d("mx_validation_behavior",m),children:[r.jsx(ve,{id:"mx-behavior",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"silent",children:l("Silent rejection — drop the opt-in without telling the user")}),r.jsx(z,{value:"block",children:l("Show error message — surface a validation error at the form")})]})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[r.jsx("strong",{children:l("Silent")})," ",l("looks like a successful submission to the user but no record is created — useful for spam suppression.")," ",r.jsx("strong",{children:l("Block")})," ",l("is better UX for legit users with typos (e.g.")," ",r.jsx("code",{children:"gmial.com"}),")."]})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"mx-message",children:l("Custom error message")}),r.jsx(Re,{id:"mx-message",className:"mt-1.5",placeholder:L3,value:(h=s.mx_validation_message)!=null?h:"",onChange:m=>d("mx_validation_message",m.target.value)}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[l("Only shown when behaviour is set to")," ",r.jsx("em",{children:l("Show error message")}),"."," ",l("Leave empty to use the default text.")]})]}),r.jsxs("div",{className:"flex items-start gap-2 rounded-lg bg-accent p-3",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("Fail-open behaviour: if the DNS lookup itself errors or times out, the email is treated as valid so a transient outage cannot block sign-ups. Only confirmed lookup failures (NXDOMAIN, no MX/A) trigger rejection.")})]}),r.jsx("div",{className:"flex flex-wrap items-center gap-2 pt-2 border-t",children:r.jsxs(H,{onClick:()=>c.mutate(),disabled:c.isPending,children:[c.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(so,{className:"h-4 w-4 mr-1.5"}),l("Save MX settings")]})})]})})]})}const z3=l("This email domain is not allowed. Please use a different email address."),U3=`tempmail.com
471 472 disposable-email.com
472 473 10minutemail.com`;function B3(){var h,m,v,g;const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["settings"],queryFn:()=>Z("/settings")}),[s,o]=f.useState({}),[a,i]=f.useState(!1);f.useEffect(()=>{var j,b,w;t!=null&&t.data&&!a&&(o({domain_blocklist:(j=t.data.domain_blocklist)!=null?j:"",domain_blocklist_behavior:(b=t.data.domain_blocklist_behavior)!=null?b:"silent",domain_blocklist_message:(w=t.data.domain_blocklist_message)!=null?w:""}),i(!0))},[t,a]);const c=Te({mutationFn:()=>Z("/settings",{method:"PUT",body:JSON.stringify(s)}),onSuccess:()=>{q.success(l("Domain blocklist settings saved.")),e.invalidateQueries({queryKey:["settings"]})},onError:j=>{q.error(j.message||l("Failed to save domain blocklist settings."))}});function d(j,b){o(w=>({...w,[j]:b}))}const u=((h=s.domain_blocklist)!=null?h:"").split(`
473 474 `).map(j=>j.trim()).filter(j=>j!=="").length;return r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Domain blocklist")}),r.jsx(Pe,{children:l("Reject opt-in submissions where the recipient's email domain matches one of the configured entries. Designed for disposable-mail services (tempmail.com, mailinator, etc.) and known spam sources. Matching is exact, case-insensitive, one domain per line.")})]}),r.jsx(ne,{className:"space-y-5",children:n?r.jsx(oe,{className:"h-40 w-full"}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"domain-blocklist",children:le(l(u===1?"Blocked domains (%d entry)":"Blocked domains (%d entries)"),u)}),r.jsx(Tr,{id:"domain-blocklist",className:"mt-1.5 font-mono text-xs",rows:8,placeholder:U3,value:(m=s.domain_blocklist)!=null?m:"",onChange:j=>d("domain_blocklist",j.target.value)}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[l("One domain per line. No")," ",r.jsx("code",{children:"@"}),l(", no protocol, no wildcards. Submissions to")," ",r.jsx("code",{children:"user@<domain>"})," ",l("are rejected on exact match.")]})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"domain-behavior",children:l("Validation behaviour")}),r.jsxs(je,{value:(v=s.domain_blocklist_behavior)!=null?v:"silent",onValueChange:j=>d("domain_blocklist_behavior",j),children:[r.jsx(ve,{id:"domain-behavior",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"silent",children:l("Silent rejection — drop the opt-in without telling the user")}),r.jsx(z,{value:"block",children:l("Show error message — surface a validation error at the form")})]})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[r.jsx("strong",{children:l("Silent")})," ",l("is the typical choice for spam suppression — bots get a fake success, real users see nothing.")," ",r.jsx("strong",{children:l("Block")})," ",l("is appropriate if your blocklist also blocks legit-typo domains the user might want to correct.")]})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"domain-message",children:l("Custom error message")}),r.jsx(Re,{id:"domain-message",className:"mt-1.5",placeholder:z3,value:(g=s.domain_blocklist_message)!=null?g:"",onChange:j=>d("domain_blocklist_message",j.target.value)}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[l("Only shown when behaviour is set to")," ",r.jsx("em",{children:l("Show error message")}),"."," ",l("Leave empty to use the default text.")]})]}),r.jsxs("div",{className:"flex items-start gap-2 rounded-lg bg-accent p-3",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("The blocklist is read once per request and cached in a static property — changes here take effect on the next form submission, no cache flush needed.")})]}),r.jsx("div",{className:"flex flex-wrap items-center gap-2 pt-2 border-t",children:r.jsxs(H,{onClick:()=>c.mutate(),disabled:c.isPending,children:[c.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(so,{className:"h-4 w-4 mr-1.5"}),l("Save blocklist")]})})]})})]})}const Tp={all:{title:l("All forms (defaults apply everywhere)"),hint:l("Every form runs Unique Email with the default settings below. Use the conditions list to override single forms only.")},selected:{title:l("Only selected forms (opt-in list)"),hint:l("Unique Email runs ONLY for forms in the conditions list. Forms not listed are unaffected.")},all_except:{title:l("All forms EXCEPT selected (opt-out list)"),hint:l("Every form runs Unique Email EXCEPT those in the conditions list.")}};function V3(e,t,n){return t==="form"?e==="all"?{headline:l("Per-form check on every form"),detail:l("At submit time, the validator looks up the email in the SAME form only. The same address may opt into Form A AND Form B without conflict.")}:e==="selected"?{headline:le(l("Per-form check on the %d listed form%s"),n,n===1?"":"s"),detail:l("The validator only runs on forms in the list. Each listed form checks for duplicates WITHIN ITSELF — they do not affect each other. Forms not listed are completely ignored.")}:{headline:le(l("Per-form check on every form EXCEPT the %d listed"),n),detail:l("Every form runs a per-form duplicate check on itself, except the excluded forms (which skip the check entirely).")}:e==="all"?{headline:l("Sitewide check on every form"),detail:l("At submit time, the validator looks up the email across the ENTIRE opt-in database — every form, every integration. One email = one opt-in across the whole site (former Single Mail Registration behavior).")}:e==="selected"?n===0?{headline:l("Sitewide — but the list is empty"),detail:l("Add at least one form to the list. Until you do, Unique Email is effectively off because mode=selected with no entries excludes every form.")}:{headline:le(l("Sitewide pool over the %d listed form%s"),n,n===1?"":"s"),detail:le(l("At submit time on any listed form, the validator looks up the email across all %d listed forms — but NOT against other forms on the site. Example: a submission on Form A is rejected if the same email already opted into Form A or Form B. Forms not in the list are completely ignored — they neither feed records into the check nor get checked themselves."),n)}:n===0?{headline:l("Sitewide check on every form"),detail:l("No exclusions are configured, so this behaves like Mode = All. Pool is the entire opt-in database.")}:{headline:le(l("Sitewide pool over every form EXCEPT the %d excluded"),n),detail:le(l("At submit time on any non-excluded form, the validator looks up the email across all forms on the site EXCEPT the %d excluded. The excluded forms are bypassed entirely — they neither get checked nor feed records into the check."),n)}}const H3={enabled:!0,mode:"all",defaults:{scope:"confirmed",behavior:"block",match_scope:"form",message:"",redirect_page:0},conditions:[]};function W3(){const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["addon-settings","unique-email"],queryFn:()=>Z("/addons/unique-email/settings")}),{data:s}=Ce({queryKey:["forms"],queryFn:()=>Z("/forms")}),[o,a]=f.useState(H3),[i,c]=f.useState(!1),[d,u]=f.useState("");f.useEffect(()=>{var x,N,S,k,E,C,R,T,A,M,B,O;if(!t||i)return;const p=(x=t.data)!=null?x:t;a({enabled:p.enabled!==!1,mode:(N=p.mode)!=null?N:"all",defaults:{scope:(k=(S=p.defaults)==null?void 0:S.scope)!=null?k:"confirmed",behavior:(C=(E=p.defaults)==null?void 0:E.behavior)!=null?C:"block",match_scope:(T=(R=p.defaults)==null?void 0:R.match_scope)!=null?T:"form",message:(M=(A=p.defaults)==null?void 0:A.message)!=null?M:"",redirect_page:Number((O=(B=p.defaults)==null?void 0:B.redirect_page)!=null?O:0)},conditions:Array.isArray(p.conditions)?p.conditions:[]}),c(!0)},[t,i]);const h=f.useMemo(()=>{var N;const p=(N=s==null?void 0:s.data)!=null?N:{},x=[];for(const[S,k]of Object.entries(p))if(k)for(const E of k.forms){const C=Number(typeof E.id=="string"?E.id.split("_")[0]:E.id);C&&x.push({key:`${S}_${C}`,integration:S,integrationName:k.name,formId:C,title:E.title||`#${C}`})}return x},[s]),m=(p,x)=>{const N=h.find(S=>S.integration===p&&S.formId===x);return N?`${N.integrationName} / ${N.title}`:`${p} / #${x}`},v=Te({mutationFn:()=>Z("/addons/unique-email/settings",{method:"POST",body:JSON.stringify(o)}),onSuccess:()=>{q.success(l("Unique Email settings saved.")),e.invalidateQueries({queryKey:["addon-settings","unique-email"]})},onError:p=>{q.error(p.message||l("Failed to save Unique Email settings."))}});function g(p,x){a(N=>({...N,defaults:{...N.defaults,[p]:x}}))}function j(){if(!d)return;const p=h.find(x=>x.key===d);if(p){if(o.conditions.some(x=>x.integration===p.integration&&x.form_id===p.formId)){q.warning(l("This form is already in the list."));return}a(x=>({...x,conditions:[...x.conditions,{integration:p.integration,form_id:p.formId,scope:null,behavior:null,match_scope:null,message:null,redirect_page:null}]})),u("")}}function b(p){a(x=>({...x,conditions:x.conditions.filter((N,S)=>S!==p)}))}function w(p,x,N){a(S=>({...S,conditions:S.conditions.map((k,E)=>E===p?{...k,[x]:N}:k)}))}if(n)return r.jsx(oe,{className:"h-96 w-full"});const y=V3(o.mode,o.defaults.match_scope,o.conditions.length);return r.jsxs(r.Fragment,{children:[r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("How Unique Email applies")}),r.jsx(Pe,{children:l("Pick whether Unique Email runs on every form, only the forms you select, or every form except the ones you exclude. The defaults below apply to every form that's in scope; the conditions list lets you override individual settings per form.")})]}),r.jsxs(ne,{className:"space-y-3",children:[Object.keys(Tp).map(p=>r.jsxs("label",{className:"flex items-start gap-3 rounded-lg border p-3 cursor-pointer transition-colors "+(o.mode===p?"border-primary bg-primary/5":"hover:border-foreground/30"),children:[r.jsx("input",{type:"radio",name:"unique-email-mode",value:p,checked:o.mode===p,onChange:()=>a(x=>({...x,mode:p})),className:"mt-1"}),r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium",children:Tp[p].title}),r.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:Tp[p].hint})]})]},p)),r.jsxs("div",{className:"mt-2 rounded-lg border border-primary/30 bg-primary/5 p-3",children:[r.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-primary mb-1",children:l("Resulting behavior")}),r.jsx("div",{className:"text-sm font-medium",children:y.headline}),r.jsx("div",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:y.detail})]})]})]}),r.jsxs(ee,{className:"mt-6",children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Default settings")}),r.jsx(Pe,{children:l("Applied to every form in scope. Per-form entries below can override these individually — leave an override empty to inherit.")})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"ue-scope",children:l("Scope")}),r.jsxs(je,{value:o.defaults.scope,onValueChange:p=>g("scope",p),children:[r.jsx(ve,{id:"ue-scope",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"confirmed",children:l("Confirmed opt-ins only")}),r.jsx(z,{value:"all",children:l("All opt-ins (incl. unconfirmed)")})]})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[r.jsx("strong",{children:l("Confirmed")}),l(": users can re-submit until they confirm once.")," ",r.jsx("strong",{children:l("All")}),l(': stricter — any prior attempt blocks. Use "all" to suppress double-submit bots.')]})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"ue-behavior",children:l("Behavior on duplicate")}),r.jsxs(je,{value:o.defaults.behavior,onValueChange:p=>g("behavior",p),children:[r.jsx(ve,{id:"ue-behavior",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"silent",children:l("Silent rejection")}),r.jsx(z,{value:"block",children:l("Show error message")}),r.jsx(z,{value:"redirect",children:l("Redirect to page")})]})]})]})]}),r.jsxs("div",{children:[r.jsx(X,{children:l("Match scope")}),r.jsx("div",{className:"grid gap-2 sm:grid-cols-2 mt-1.5",children:[{value:"form",title:l("Per form"),hint:l("The same address may opt into Form A AND Form B.")},{value:"sitewide",title:l("Sitewide"),hint:l("One email = one opt-in across every form on the site (formerly Single Mail Registration).")}].map(p=>r.jsxs("label",{className:"flex items-start gap-2 rounded-lg border p-3 cursor-pointer transition-colors "+(o.defaults.match_scope===p.value?"border-primary bg-primary/5":"hover:border-foreground/30"),children:[r.jsx("input",{type:"radio",name:"unique-email-match-scope",value:p.value,checked:o.defaults.match_scope===p.value,onChange:()=>g("match_scope",p.value),className:"mt-1"}),r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium",children:p.title}),r.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:p.hint})]})]},p.value))})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"ue-message",children:l("Custom error message")}),r.jsx(Re,{id:"ue-message",className:"mt-1.5",placeholder:l("This email address has already been used for this form."),value:o.defaults.message,onChange:p=>g("message",p.target.value)}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[l("Only shown for")," ",r.jsx("em",{children:l("Show error message")}),"."," ",l("Leave empty for the default text.")]})]})]})]}),r.jsxs(ee,{className:"mt-6",children:[r.jsxs(ce,{children:[r.jsx(ue,{children:o.mode==="selected"?l("Forms to apply Unique Email to"):o.mode==="all_except"?l("Forms to exclude from Unique Email"):l("Per-form overrides")}),r.jsxs(Pe,{children:[o.mode==="all"&&o.defaults.match_scope==="form"&&l("All forms are in scope by default with a per-form check. Add entries here to override the defaults for specific forms."),o.mode==="all"&&o.defaults.match_scope==="sitewide"&&l("All forms are in scope with a sitewide check — the lookup runs across the entire opt-in database. Add entries here to override the defaults for specific forms."),o.mode==="selected"&&o.defaults.match_scope==="form"&&l("Only the forms in this list run Unique Email. Each listed form checks duplicates within itself — they do not affect each other."),o.mode==="selected"&&o.defaults.match_scope==="sitewide"&&l("The forms in this list form a sitewide pool. A submission on any of them is rejected if the email already opted into ANY OTHER form in the list. Forms not in the list are completely outside this check."),o.mode==="all_except"&&o.defaults.match_scope==="form"&&l("These forms are exempt from Unique Email checks. All other forms run a per-form duplicate check on themselves."),o.mode==="all_except"&&o.defaults.match_scope==="sitewide"&&l("These forms are exempt entirely — neither checked nor counted. Every other form on the site runs a sitewide check whose pool spans all non-excluded forms.")]})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(je,{value:d,onValueChange:u,children:[r.jsx(ve,{className:"flex-1",children:r.jsx(we,{placeholder:l("Select a form to add…")})}),r.jsx(ye,{children:h.length===0?r.jsx(z,{value:"__empty",disabled:!0,children:l("No forms detected")}):h.map(p=>r.jsxs(z,{value:p.key,children:[p.integrationName," / ",p.title]},p.key))})]}),r.jsxs(H,{onClick:j,disabled:!d,children:[r.jsx(la,{className:"h-4 w-4 mr-1.5"}),l("Add")]})]}),o.conditions.length===0?r.jsxs("div",{className:"flex items-start gap-2 rounded-lg bg-accent p-3",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l("No forms in the list yet.")," ",o.mode==="selected"&&o.defaults.match_scope==="form"&&l("Unique Email is currently inactive on every form — add at least one above."),o.mode==="selected"&&o.defaults.match_scope==="sitewide"&&l("Unique Email is currently inactive on every form. Even though the match scope is sitewide, mode=selected with an empty list excludes everything. Add at least two forms to make the sitewide pool meaningful."),o.mode==="all_except"&&l("Unique Email is active on every form with the defaults above."),o.mode==="all"&&o.defaults.match_scope==="form"&&l("Unique Email is active on every form with a per-form check. Use this list to override settings per form."),o.mode==="all"&&o.defaults.match_scope==="sitewide"&&l("Unique Email is active on every form with a sitewide check (equivalent to the legacy Single Mail Registration). Use this list only if you need per-form overrides.")]})]}):r.jsx("div",{className:"space-y-3",children:o.conditions.map((p,x)=>{var N,S,k,E;return r.jsxs("div",{className:"rounded-lg border p-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{className:"text-sm font-medium",children:m(p.integration,p.form_id)}),r.jsx(H,{variant:"ghost",size:"sm",onClick:()=>b(x),title:l("Remove from list"),children:r.jsx(gn,{className:"h-4 w-4"})})]}),o.mode!=="all_except"&&r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4 mt-3",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Override scope")}),r.jsxs(je,{value:(N=p.scope)!=null?N:"__inherit",onValueChange:C=>w(x,"scope",C==="__inherit"?null:C),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),o.defaults.scope)}),r.jsx(z,{value:"confirmed",children:l("Confirmed")}),r.jsx(z,{value:"all",children:l("All")})]})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Override behavior")}),r.jsxs(je,{value:(S=p.behavior)!=null?S:"__inherit",onValueChange:C=>w(x,"behavior",C==="__inherit"?null:C),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),o.defaults.behavior)}),r.jsx(z,{value:"silent",children:l("Silent")}),r.jsx(z,{value:"block",children:l("Block")}),r.jsx(z,{value:"redirect",children:l("Redirect")})]})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Override match scope")}),r.jsxs(je,{value:(k=p.match_scope)!=null?k:"__inherit",onValueChange:C=>w(x,"match_scope",C==="__inherit"?null:C),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__inherit",children:le(l("Inherit (%s)"),o.defaults.match_scope)}),r.jsx(z,{value:"form",children:l("Per form")}),r.jsx(z,{value:"sitewide",children:l("Sitewide")})]})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Override message")}),r.jsx(Re,{className:"mt-1 h-9 text-xs",placeholder:l("(inherit)"),value:(E=p.message)!=null?E:"",onChange:C=>w(x,"message",C.target.value===""?null:C.target.value)})]})]})]},`${p.integration}_${p.form_id}`)})}),r.jsx("div",{className:"flex flex-wrap items-center gap-2 pt-3 border-t",children:r.jsxs(H,{onClick:()=>v.mutate(),disabled:v.isPending,children:[v.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(so,{className:"h-4 w-4 mr-1.5"}),l("Save Unique Email settings")]})})]})]})]})}const MN={equals:l("Equals"),not_equals:l("Not equals"),contains:l("Contains"),not_empty:l("Not empty"),empty:l("Empty")},q3=new Set(["not_empty","empty"]),K3={enabled:!0,forms:[]};function Q3(){return`rule_${Math.random().toString(36).slice(2,10)}`}function DN(){return{id:Q3(),field:"",operator:"equals",value:"",template:"",priority:10}}function G3(){var C;const e=Xe(),{data:t,isLoading:n}=Ce({queryKey:["addon-settings","conditional"],queryFn:()=>Z("/addons/conditional/settings")}),{data:s}=Ce({queryKey:["forms"],queryFn:()=>Z("/forms")}),{data:o}=Ce({queryKey:["email-templates-list"],queryFn:()=>Z("/settings/email-templates-list")}),[a,i]=f.useState(K3),[c,d]=f.useState(!1),[u,h]=f.useState("");f.useEffect(()=>{var T;if(!t||c)return;const R=(T=t.data)!=null?T:t;i({enabled:R.enabled!==!1,forms:Array.isArray(R.forms)?R.forms:[]}),d(!0)},[t,c]);const m=f.useMemo(()=>{var A;const R=(A=s==null?void 0:s.data)!=null?A:{},T=[];for(const[M,B]of Object.entries(R))if(B)for(const O of B.forms){const re=typeof O.id=="string"?O.id:String(O.id),D=Number(re.split("_")[0]);D&&T.push({key:`${M}_${re}`,integration:M,integrationName:B.name,formId:D,restId:re,title:O.title||`#${D}`})}return T},[s]),v=(R,T)=>{const A=m.find(M=>M.integration===R&&M.formId===T);return A?A.restId:String(T)},g=(R,T)=>{const A=m.find(M=>M.integration===R&&M.formId===T);return A?`${A.integrationName} / ${A.title}`:`${R} / #${T}`},j=i2({queries:a.forms.map(R=>{const T=v(R.integration,R.form_id);return{queryKey:["form-fields",R.integration,T],queryFn:()=>Z(`/forms/${R.integration}/${T}/fields`),staleTime:5*60*1e3,retry:!1}})}),b=(R,T)=>{var B;const A=a.forms.findIndex(O=>O.integration===R&&O.form_id===T);if(A===-1)return[];const M=j[A];return M!=null&&M.data?(B=M.data.data)!=null?B:[]:[]},w=Te({mutationFn:()=>Z("/addons/conditional/settings",{method:"POST",body:JSON.stringify(a)}),onSuccess:()=>{q.success(l("Conditional Templates settings saved.")),e.invalidateQueries({queryKey:["addon-settings","conditional"]})},onError:R=>{q.error(R.message||l("Failed to save Conditional Templates settings."))}});function y(){if(!u)return;const R=m.find(T=>T.key===u);if(R){if(a.forms.some(T=>T.integration===R.integration&&T.form_id===R.formId)){q.warning(l("This form is already in the list."));return}i(T=>({...T,forms:[...T.forms,{integration:R.integration,form_id:R.formId,fallback_template:"blank",rules:[DN()]}]})),h("")}}function p(R){i(T=>({...T,forms:T.forms.filter((A,M)=>M!==R)}))}function x(R,T,A){i(M=>({...M,forms:M.forms.map((B,O)=>O===R?{...B,[T]:A}:B)}))}function N(R){i(T=>({...T,forms:T.forms.map((A,M)=>M===R?{...A,rules:[...A.rules,DN()]}:A)}))}function S(R,T){i(A=>({...A,forms:A.forms.map((M,B)=>B===R?{...M,rules:M.rules.filter((O,re)=>re!==T)}:M)}))}function k(R,T,A,M){i(B=>({...B,forms:B.forms.map((O,re)=>re===R?{...O,rules:O.rules.map((D,te)=>te===T?{...D,[A]:M}:D)}:O)}))}if(n)return r.jsx(oe,{className:"h-96 w-full"});const E=(C=o==null?void 0:o.data)!=null?C:[];return r.jsxs(r.Fragment,{children:[r.jsx(ee,{className:"mt-6",children:r.jsxs(ce,{children:[r.jsx(ue,{children:l("How Conditional Templates work")}),r.jsx(Pe,{children:l("Pick a form and define rules that decide which email template to send based on the form's submitted field values. Forms not in this list use their normal template. Rules are evaluated by priority (lower runs first); the first matching rule wins. If no rule matches, the form's fallback template applies.")})]})}),r.jsxs(ee,{className:"mt-6",children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Forms with conditional templates")}),r.jsx(Pe,{children:l("Add a form below to start configuring per-field template rules for it.")})]}),r.jsxs(ne,{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(je,{value:u,onValueChange:h,children:[r.jsx(ve,{className:"flex-1",children:r.jsx(we,{placeholder:l("Select a form to add…")})}),r.jsx(ye,{children:m.length===0?r.jsx(z,{value:"__empty",disabled:!0,children:l("No forms detected")}):m.map(R=>r.jsxs(z,{value:R.key,children:[R.integrationName," / ",R.title]},R.key))})]}),r.jsxs(H,{onClick:y,disabled:!u,children:[r.jsx(la,{className:"h-4 w-4 mr-1.5"}),l("Add form")]})]}),a.forms.length===0?r.jsxs("div",{className:"flex items-start gap-2 rounded-lg bg-accent p-3",children:[r.jsx(yt,{className:"h-4 w-4 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("No forms configured yet. Conditional Templates is inactive on every form. Add at least one form above to start.")})]}):r.jsx("div",{className:"space-y-4",children:a.forms.map((R,T)=>{const A=b(R.integration,R.form_id),M=j[T];return r.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{className:"text-sm font-medium",children:g(R.integration,R.form_id)}),r.jsx(H,{variant:"ghost",size:"sm",onClick:()=>p(T),title:l("Remove form from list"),children:r.jsx(gn,{className:"h-4 w-4"})})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Fallback template")}),r.jsxs(je,{value:R.fallback_template||"blank",onValueChange:B=>x(T,"fallback_template",B),children:[r.jsx(ve,{className:"mt-1 h-9 text-xs",children:r.jsx(we,{})}),r.jsx(ye,{children:E.length===0?r.jsx(z,{value:"blank",children:l("Default (blank)")}):E.map(B=>r.jsx(z,{value:B.id,children:B.title},B.id))})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:l("Used when no rule matches the submitted data.")})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-xs",children:l("Rules")}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5 mb-2",children:l("Lower priority runs first. First match wins.")}),M!=null&&M.isLoading?r.jsx(oe,{className:"h-20 w-full"}):R.rules.length===0?r.jsxs("div",{className:"flex items-start gap-2 rounded-md bg-accent p-2",children:[r.jsx(yt,{className:"h-3.5 w-3.5 text-muted-foreground mt-0.5 shrink-0"}),r.jsx("p",{className:"text-[11px] text-muted-foreground",children:l("No rules — only the fallback template applies.")})]}):r.jsx("div",{className:"space-y-2",children:R.rules.map((B,O)=>{const re=!q3.has(B.operator);return r.jsxs("div",{className:"grid gap-2 sm:grid-cols-[1.2fr_1fr_1.2fr_1.5fr_0.6fr_auto] items-end rounded-md border p-2",children:[r.jsxs("div",{children:[r.jsx(X,{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:l("Field")}),r.jsxs(je,{value:B.field||"__none",onValueChange:D=>k(T,O,"field",D==="__none"?"":D),children:[r.jsx(ve,{className:"mt-1 h-8 text-xs",children:r.jsx(we,{placeholder:"—"})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__none",disabled:!0,children:l("Choose a field")}),A.length===0?r.jsx(z,{value:"__nofields",disabled:!0,children:l("(no fields detected)")}):A.map(D=>r.jsx(z,{value:D.name,children:D.label||D.name},D.name))]})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:l("Operator")}),r.jsxs(je,{value:B.operator,onValueChange:D=>k(T,O,"operator",D),children:[r.jsx(ve,{className:"mt-1 h-8 text-xs",children:r.jsx(we,{})}),r.jsx(ye,{children:Object.keys(MN).map(D=>r.jsx(z,{value:D,children:MN[D]},D))})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:l("Value")}),r.jsx(Re,{className:"mt-1 h-8 text-xs",placeholder:l(re?"e.g. DE":"(not used)"),value:B.value,disabled:!re,onChange:D=>k(T,O,"value",D.target.value)})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:l("Template")}),r.jsxs(je,{value:B.template||"__none",onValueChange:D=>k(T,O,"template",D==="__none"?"":D),children:[r.jsx(ve,{className:"mt-1 h-8 text-xs",children:r.jsx(we,{placeholder:"—"})}),r.jsxs(ye,{children:[r.jsx(z,{value:"__none",disabled:!0,children:l("Choose a template")}),E.map(D=>r.jsx(z,{value:D.id,children:D.title},D.id))]})]})]}),r.jsxs("div",{children:[r.jsx(X,{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:l("Prio")}),r.jsx(Re,{type:"number",min:1,max:99,className:"mt-1 h-8 text-xs",value:B.priority,onChange:D=>k(T,O,"priority",Math.max(1,Number(D.target.value)||1))})]}),r.jsx(H,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:()=>S(T,O),title:l("Remove rule"),children:r.jsx(gn,{className:"h-3.5 w-3.5"})})]},B.id)})}),r.jsxs(H,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>N(T),children:[r.jsx(la,{className:"h-3.5 w-3.5 mr-1.5"}),l("Add rule")]})]})]},`${R.integration}_${R.form_id}`)})}),r.jsx("div",{className:"flex flex-wrap items-center gap-2 pt-3 border-t",children:r.jsxs(H,{onClick:()=>w.mutate(),disabled:w.isPending,children:[w.isPending?r.jsx(Pn,{className:"h-4 w-4 mr-1.5 animate-spin"}):r.jsx(so,{className:"h-4 w-4 mr-1.5"}),l("Save Conditional Templates settings")]})})]})]})]})}const FN={",":l("Comma — , (RFC 4180 default)"),";":l("Semicolon — ; (German/French Excel)"),"\\t":l("Tab (TSV-style)"),"|":l("Pipe — |")},X3={all:l("Every record — confirmed, unconfirmed, and opted-out."),confirmed:l("Active subscribers only (confirmed AND not opted-out)."),unconfirmed:l("Users who never clicked the confirmation link."),opted_out:l("Records with a recorded opt-out (unsubscribed).")},or="__all";function LN(e){if(!e)return"—";const t=new Date(e*1e3),n=s=>String(s).padStart(2,"0");return`${n(t.getDate())}.${n(t.getMonth()+1)}.${t.getFullYear()} ${n(t.getHours())}:${n(t.getMinutes())}`}function Y3(){var se,Ne,G,ge;const[e,t]=f.useState("csv"),[n,s]=f.useState(","),[o,a]=f.useState("all"),[i,c]=f.useState(""),[d,u]=f.useState(!1),[h,m]=f.useState("all"),[v,g]=f.useState(""),[j,b]=f.useState(""),[w,y]=f.useState(or),[p,x]=f.useState(or),[N,S]=f.useState(!1),k=Xe(),E=f.useRef(null),{data:C}=Ce({queryKey:["categories"],queryFn:()=>Z("/categories")}),{data:R}=Ce({queryKey:["forms"],queryFn:()=>Z("/forms")}),T=f.useMemo(()=>{var he;const L=(he=R==null?void 0:R.data)!=null?he:{},me=[];for(const[Ae,He]of Object.entries(L))if(He)for(const ut of He.forms){const _t=Number(typeof ut.id=="string"?ut.id.split("_")[0]:ut.id);_t&&me.push({id:_t,label:`${He.name} / ${ut.title||`#${_t}`}`})}const U=new Set;return me.filter(Ae=>U.has(Ae.id)?!1:(U.add(Ae.id),!0))},[R]),A=f.useMemo(()=>{var L;return((L=C==null?void 0:C.data)!=null?L:[]).filter(me=>Number(me.id)>0)},[C]),M=o,B=o==="email"?i.trim():"",O=h,re=w===or?"":w,D=p===or?"":p,te=Ce({queryKey:["consent-export-stream-info",M,B,O,re,D],queryFn:()=>{const L=new URLSearchParams({scope:M,email:B,status:O,form_id:re,category_id:D});return Z(`/consent-export/stream-info?${L.toString()}`)}}),I=(Ne=(se=te.data)==null?void 0:se.data)!=null?Ne:{exported_count:0,run_count:0,last_run_at:0},F=Ce({queryKey:["consent-export-history"],queryFn:()=>Z("/consent-export/history?limit=20")}),J=(ge=(G=F.data)==null?void 0:G.data)!=null?ge:[],xe=Te({mutationFn:()=>Z("/consent-export/history",{method:"DELETE"}),onSuccess:()=>{k.invalidateQueries({queryKey:["consent-export-history"]}),k.invalidateQueries({queryKey:["consent-export-stream-info"]}),q.success(l("Export history cleared."))},onError:L=>{q.error(L.message||l("Failed to clear history."))}}),P=Te({mutationFn:L=>Z(`/consent-export/history/${L}`,{method:"DELETE"}),onSuccess:()=>{k.invalidateQueries({queryKey:["consent-export-history"]}),k.invalidateQueries({queryKey:["consent-export-stream-info"]}),q.success(l("Run removed from history."))},onError:L=>{q.error(L.message||l("Failed to delete run."))}});function $(L){var me;if(a(L.scope==="email"?"email":"all"),c((me=L.email)!=null?me:""),m(["all","confirmed","unconfirmed","opted_out"].includes(L.status)?L.status:"all"),y(L.form_id>0?String(L.form_id):or),x(L.category_id>0?String(L.category_id):or),t(L.format==="json"?"json":"csv"),u(L.include_form_data===1),L.format==="csv"&&L.delimiter){const U=L.delimiter===" "?"\\t":L.delimiter;s(U)}q.info(l("Filters restored from this run."))}function W(){var Ae;if(o==="email"&&i.trim()===""){q.error(l("Enter an email address before exporting."));return}if(v!==""&&j!==""&&v>j){q.error(l("The 'from' date is after the 'to' date."));return}const L=$t(),me=new URLSearchParams({action:"doi_export_consent",_wpnonce:(Ae=L.consentExportNonce)!=null?Ae:"",format:e,scope:o});o==="email"&&me.set("email",i.trim()),d&&me.set("include_formdata","1"),e==="csv"&&n!==","&&me.set("delimiter",n),h!=="all"&&me.set("status",h),v!==""&&me.set("date_from",v),j!==""&&me.set("date_to",j),w!==or&&me.set("form_id",w),p!==or&&me.set("category_id",p),N&&me.set("since_last_export","1");const he=`${L.adminUrl.replace(/\/+$/,"")}/admin-ajax.php?${me.toString()}`;window.open(he,"_blank","noopener,noreferrer"),setTimeout(()=>{k.invalidateQueries({queryKey:["consent-export-history"]}),k.invalidateQueries({queryKey:["consent-export-stream-info"]})},1500),setTimeout(()=>{k.invalidateQueries({queryKey:["consent-export-history"]}),k.invalidateQueries({queryKey:["consent-export-stream-info"]})},6e3)}return r.jsxs(ee,{className:"mt-6",children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Export consent records (GDPR)")}),r.jsx(Pe,{children:l("Download consent records as CSV or JSON for GDPR Art. 15 subject-access requests, internal audits, or migration to another system. The export covers every recorded submission, confirmation, and opt-out with timestamps, IPs, and the exact consent text presented at signup.")})]}),r.jsxs(ne,{className:"space-y-5",children:[r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-format",children:l("Format")}),r.jsxs(je,{value:e,onValueChange:L=>t(L),children:[r.jsx(ve,{id:"export-format",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"csv",children:r.jsxs("span",{className:"inline-flex items-center gap-2",children:[r.jsx(OE,{className:"h-4 w-4"}),l("CSV (Excel-friendly, UTF-8 BOM)")]})}),r.jsx(z,{value:"json",children:r.jsxs("span",{className:"inline-flex items-center gap-2",children:[r.jsx(AE,{className:"h-4 w-4"}),l("JSON (pretty-printed)")]})})]})]})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-scope",children:l("Scope")}),r.jsxs(je,{value:o,onValueChange:L=>a(L),children:[r.jsx(ve,{id:"export-scope",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"all",children:l("All records")}),r.jsx(z,{value:"email",children:l("By email address")})]})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[r.jsx("strong",{children:l("By email")}),l(": useful for GDPR subject-access requests — exports every record tied to one address.")]})]})]}),e==="csv"&&r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-delimiter",children:l("CSV separator")}),r.jsxs(je,{value:n,onValueChange:L=>s(L),children:[r.jsx(ve,{id:"export-delimiter",className:"mt-1.5",children:r.jsx(we,{})}),r.jsx(ye,{children:Object.keys(FN).map(L=>r.jsx(z,{value:L,children:FN[L]},L))})]}),r.jsxs("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:[l("Excel honours the OS-locale default — German installs expect")," ",r.jsx("code",{className:"bg-muted px-1 rounded",children:";"})," ",l("because")," ",r.jsx("code",{className:"bg-muted px-1 rounded",children:","})," ",l("is their decimal mark. If you open the CSV and see every row crammed into one column, switch separator and re-export.")]})]}),o==="email"&&r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-email",children:l("Email address")}),r.jsx(Re,{id:"export-email",type:"email",className:"mt-1.5",placeholder:"[email protected]",value:i,onChange:L=>c(L.target.value)})]}),r.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[r.jsx("div",{className:"text-sm font-medium",children:l("Filters")}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-status",children:l("Status")}),r.jsxs(je,{value:h,onValueChange:L=>m(L),children:[r.jsx(ve,{id:"export-status",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:"all",children:l("All statuses")}),r.jsx(z,{value:"confirmed",children:l("Confirmed (active subscribers)")}),r.jsx(z,{value:"unconfirmed",children:l("Unconfirmed")}),r.jsx(z,{value:"opted_out",children:l("Opted out")})]})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:X3[h]})]}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-date-from",children:l("Signed up from")}),r.jsx(Re,{id:"export-date-from",type:"date",className:"mt-1.5",value:v,onChange:L=>g(L.target.value),max:j||void 0})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-date-to",children:l("Signed up until")}),r.jsx(Re,{id:"export-date-to",type:"date",className:"mt-1.5",value:j,onChange:L=>b(L.target.value),min:v||void 0})]})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground -mt-2",children:l("Filters on the signup date (when the record was first submitted). Leave either field empty for an open-ended range. Inclusive on both sides.")}),r.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-form",children:l("Form")}),r.jsxs(je,{value:w,onValueChange:y,children:[r.jsx(ve,{id:"export-form",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:or,children:l("All forms")}),T.length===0?r.jsx(z,{value:"__nofields",disabled:!0,children:l("(no forms detected)")}):T.map(L=>r.jsx(z,{value:String(L.id),children:L.label},L.id))]})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:l("Limit to records tied to one specific form (CF7, Avada, Elementor, WPForms, Gravity, …). Matches on the form's post id.")})]}),r.jsxs("div",{children:[r.jsx(X,{htmlFor:"export-category",children:l("Category")}),r.jsxs(je,{value:p,onValueChange:x,children:[r.jsx(ve,{id:"export-category",className:"mt-1.5",children:r.jsx(we,{})}),r.jsxs(ye,{children:[r.jsx(z,{value:or,children:l("All categories")}),A.length===0?r.jsx(z,{value:"__nocat",disabled:!0,children:l("(no categories defined)")}):A.map(L=>r.jsxs(z,{value:String(L.id),children:[L.name,typeof L.optin_count=="number"&&r.jsxs("span",{className:"text-muted-foreground",children:[" ","(",L.optin_count,")"]})]},L.id))]})]}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:l("Limit to records tagged with one specific category. Configure categories under DOI → Categories.")})]})]}),r.jsxs("div",{className:"flex items-start gap-3 rounded-lg border p-3 bg-accent/50",children:[r.jsx(cl,{id:"export-since-last",checked:N,onCheckedChange:L=>S(L===!0),className:"mt-0.5"}),r.jsxs("div",{className:"space-y-1 flex-1",children:[r.jsx(X,{htmlFor:"export-since-last",className:"cursor-pointer text-sm font-medium",children:l("Only records not yet exported in this stream")}),r.jsx("p",{className:"text-[11px] text-muted-foreground",children:l("Excludes OptIn IDs that appeared in any previous export with the same scope + status + form + category + email. Date range is ignored for the stream identity — it's an extra filter on the result. Each export's contents is recorded in an indexed audit table for constant-time filtering.")}),r.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5",children:te.isLoading?l("Loading stream info…"):I.run_count===0?r.jsxs("span",{children:[r.jsx("strong",{children:l("No prior exports")})," ",l("for this filter combination. Toggle is a no-op until you do your first export.")]}):r.jsxs("span",{children:[r.jsx("strong",{children:I.exported_count})," ",l("record(s) previously exported in this stream across")," ",r.jsx("strong",{children:I.run_count})," ",l("run(s). Last run:")," ",LN(I.last_run_at),"."]})})]})]})]}),r.jsxs("div",{className:"flex items-start gap-3 rounded-lg border p-4",children:[r.jsx(cl,{id:"export-include-formdata",checked:d,onCheckedChange:L=>u(L===!0),className:"mt-0.5"}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(X,{htmlFor:"export-include-formdata",className:"cursor-pointer text-sm font-medium",children:l("Include form data (submitted field values)")}),r.jsx("p",{className:"text-[11px] text-muted-foreground",children:l("Adds one column per form field per record (Name, Address, custom checkboxes, …). Each record may have different fields — the CSV exporter collects all column names across the entire result set.")})]})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 pt-3 border-t",children:[r.jsxs(H,{onClick:W,children:[r.jsx(Bi,{className:"h-4 w-4 mr-1.5"}),l("Export")]}),r.jsx("p",{className:"text-[11px] text-muted-foreground",children:l("The download starts in a new tab. Sensitive data — store the file in line with your retention policy.")})]})]}),r.jsxs(ce,{className:"border-t",children:[r.jsxs(ue,{className:"flex items-center gap-2 text-base",children:[r.jsx(DE,{className:"h-4 w-4"}),l("Recent exports")]}),r.jsxs(Pe,{children:[l("Audit log of past exports. Each row records who ran it, when, from where, and which records went into the file.")," ",l("Click")," ",r.jsx(X0,{className:"inline h-3 w-3"})," ",l("to restore that run's filter combination, or")," ",r.jsx(gn,{className:"inline h-3 w-3"})," ",l("to remove a single accidental run from the audit history.")]})]}),r.jsxs(ne,{children:[F.isLoading?r.jsx(oe,{className:"h-32 w-full"}):J.length===0?r.jsx("p",{className:"text-sm text-muted-foreground italic",children:l("No exports yet — the table fills up as you run them.")}):r.jsx("div",{className:"rounded-lg border overflow-hidden",children:r.jsxs("table",{className:"w-full text-xs",children:[r.jsx("thead",{className:"bg-muted",children:r.jsxs("tr",{children:[r.jsx("th",{className:"text-left p-2 font-medium",children:l("When")}),r.jsx("th",{className:"text-left p-2 font-medium",children:l("User")}),r.jsx("th",{className:"text-left p-2 font-medium",children:l("IP")}),r.jsx("th",{className:"text-left p-2 font-medium",children:l("Stream")}),r.jsx("th",{className:"text-right p-2 font-medium",children:l("Count")}),r.jsx("th",{className:"p-2"})]})}),r.jsx("tbody",{children:J.map(L=>{const me=[L.scope==="email"?`email:${L.email}`:L.scope,L.status,L.form_id>0?`form#${L.form_id}`:null,L.category_id>0?`cat#${L.category_id}`:null].filter(Boolean).join(" / ");return r.jsxs("tr",{className:"border-t hover:bg-accent/30",children:[r.jsx("td",{className:"p-2",children:LN(L.started_at)}),r.jsx("td",{className:"p-2",children:L.user_login||"—"}),r.jsx("td",{className:"p-2 font-mono text-[10px]",children:L.ip_address||"—"}),r.jsx("td",{className:"p-2",children:me}),r.jsx("td",{className:"p-2 text-right tabular-nums",children:L.count}),r.jsx("td",{className:"p-2",children:r.jsxs("div",{className:"flex gap-1 justify-end",children:[r.jsx("button",{type:"button",onClick:()=>$(L),title:l("Restore this run's filters"),className:"p-1 rounded hover:bg-accent",children:r.jsx(X0,{className:"h-3.5 w-3.5"})}),r.jsx("button",{type:"button",onClick:()=>{window.confirm(l("Delete this run from the audit history? The originally exported records remain in the database — this only removes the audit row."))&&P.mutate(L.id)},title:l("Remove this run from the audit history"),className:"p-1 rounded hover:bg-accent text-destructive",children:r.jsx(gn,{className:"h-3.5 w-3.5"})})]})})]},L.id)})})]})}),r.jsxs("div",{className:"flex items-center gap-2 pt-4",children:[r.jsxs(H,{variant:"outline",size:"sm",onClick:()=>k.invalidateQueries({queryKey:["consent-export-history"]}),children:[r.jsx(ud,{className:"h-3.5 w-3.5 mr-1.5"}),l("Refresh")]}),J.length>0&&r.jsxs(H,{variant:"outline",size:"sm",className:"text-destructive",onClick:()=>{var L;return(L=E.current)==null?void 0:L.showModal()},children:[r.jsx(gn,{className:"h-3.5 w-3.5 mr-1.5"}),l("Clear all history")]})]})]}),r.jsxs("dialog",{ref:E,className:"rounded-lg p-6 max-w-md backdrop:bg-black/50 backdrop:backdrop-blur-sm",children:[r.jsx("h3",{className:"font-semibold text-base mb-2",children:l("Clear export history?")}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l('Removes every audit row plus the per-record exported-ID links. The originally exported records remain in the database; only the audit trail is cleared. After this, "Only records not yet exported in this stream" treats every record as fresh.')}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx(H,{variant:"outline",size:"sm",onClick:()=>{var L;return(L=E.current)==null?void 0:L.close()},children:l("Cancel")}),r.jsx(H,{size:"sm",className:"text-destructive border-destructive",variant:"outline",onClick:()=>{var L;(L=E.current)==null||L.close(),xe.mutate()},children:l("Yes, clear everything")})]})]})]})}function Z3(){const{id:e}=Gc();return e?r.jsx(co,{addonId:e,featureName:e,children:r.jsx(J3,{id:e})}):null}function J3({id:e}){var h;const t=Xe(),{data:n}=Ce({queryKey:["addons-catalog"],queryFn:()=>Z("/addons/catalog")}),{data:s,isLoading:o}=Ce({queryKey:["addon-settings",e],queryFn:()=>Z(`/addons/${e}/settings`)}),[a,i]=f.useState(!0);f.useEffect(()=>{s&&i(s.enabled)},[s]);const c=Te({mutationFn:m=>Z(`/addons/${e}/settings`,{method:"POST",body:JSON.stringify(m)}),onSuccess:m=>{q.success(m.enabled?l("Feature enabled."):l("Feature disabled.")),t.invalidateQueries({queryKey:["addon-settings",e]})},onError:m=>{q.error(m.message||l("Failed to save settings."))}}),d=n==null?void 0:n.entries.find(m=>m.id===e),u=m=>{i(m),c.mutate({enabled:m})};return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:(h=d==null?void 0:d.name)!=null?h:e}),(d==null?void 0:d.description)&&r.jsx("p",{className:"text-muted-foreground",children:d.description})]}),r.jsxs(ee,{children:[r.jsxs(ce,{children:[r.jsx(ue,{children:l("Feature toggle")}),r.jsx(Pe,{children:l("Turn this feature on or off without deactivating the addon plugin. Use this when you want to pause the feature temporarily (e.g. while debugging a form).")})]}),r.jsx(ne,{children:o?r.jsx(oe,{className:"h-12 w-full"}):r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(X,{htmlFor:"addon-enabled",className:"text-base",children:l("Enabled")}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l("When off, the addon's hooks no-op but the plugin stays installed and can be re-enabled in one click.")})]}),r.jsx(tn,{id:"addon-enabled",checked:a,onCheckedChange:u,disabled:c.isPending})]})})]}),e==="reminder"&&r.jsx(F3,{}),e==="mx-validator"&&r.jsx($3,{}),e==="domain-blocklist"&&r.jsx(B3,{}),e==="unique-email"&&r.jsx(W3,{}),e==="conditional"&&r.jsx(G3,{}),e==="consent-export"&&r.jsx(Y3,{})]})}const $N="doi-email-editor-root",eI="email-editor";function zN(){var h;const{id:e}=Gc(),t=qn(),n=f.useRef(null),[s,o]=f.useState(null),[a,i]=f.useState(!0),{data:c,isLoading:d}=Ce({queryKey:["addons-manifest"],queryFn:()=>Z("/addons")}),u=!d&&((h=c==null?void 0:c.addons)!=null?h:[]).some(m=>m.id===eI&&m.available);return f.useEffect(()=>{if(d)return;if(!u){i(!1),o(l("The Email Editor addon isn't active on this site. Activate it to use the in-app editor, or open the legacy editor below."));return}let m=!1,v=null,g=null,j=null;const b=()=>{var N;if(m)return!0;const w=window.doiMountEmailEditor;if(typeof w!="function")return!1;const y=n.current;if(!y)return!1;y.id=$N;const p=e&&e!=="new"?Number(e):0,x=(N=window.doiEmailEditorBootstrap)!=null?N:{restUrl:$t().restUrl+"email-templates",nonce:$t().nonce};return v=w($N,{templateId:p,restUrl:x.restUrl,nonce:x.nonce}),v&&(i(!1),o(null)),!!v};return b()||(g=setInterval(()=>{b()&&g&&(clearInterval(g),g=null)},100),j=setTimeout(()=>{g&&(clearInterval(g),g=null),!v&&!m&&(i(!1),o(l("Email editor bundle didn't attach in time. Reload the page; if this persists, check the browser console for a script load error.")))},5e3)),()=>{if(m=!0,g&&clearInterval(g),j&&clearTimeout(j),v)try{v.unmount()}catch(w){}}},[e,d,u]),r.jsxs("div",{className:"space-y-4",children:[r.jsx("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:r.jsxs("button",{onClick:()=>t("/email-templates"),className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground",children:[r.jsx(ad,{className:"h-3.5 w-3.5"}),l("Back to email templates")]})}),a&&r.jsxs("div",{className:"space-y-3",children:[r.jsx(oe,{className:"h-8 w-64"}),r.jsx(oe,{className:"h-[600px] w-full"})]}),s&&r.jsx("div",{className:"rounded-md border border-amber-200 bg-amber-50 p-4 text-sm text-amber-900",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(zt,{className:"h-5 w-5 shrink-0 mt-0.5"}),r.jsxs("div",{className:"flex-1",children:[r.jsx("p",{className:"font-medium mb-1",children:l("Email editor not available")}),r.jsx("p",{className:"text-amber-800 mb-3",children:s}),r.jsx("div",{className:"flex items-center gap-2",children:r.jsx(H,{variant:"default",size:"sm",onClick:()=>t("/addons"),children:l("Open Addons")})})]})]})}),r.jsx("div",{ref:n,className:"doi-editor-host"})]})}const Yd={info:{label:l("Info"),color:"secondary",icon:yt},warning:{label:l("Warning"),color:"default",icon:zt},error:{label:l("Error"),color:"destructive",icon:ld},critical:{label:l("Critical"),color:"destructive",icon:Gm}},tI={settings:Zm,cron:Qn,activation:Vi,ratelimit:Jm,api_error:YE,db_error:Ui,email:Gn,auth:GE,follow_up:zE};function nI(){var S,k,E,C,R,T,A,M,B;const[e,t]=f.useState("30"),[n,s]=f.useState("all"),[o,a]=f.useState("all"),[i,c]=f.useState(1),[d,u]=f.useState(null),h=15,m=O=>{t(O),c(1)},v=O=>{s(O),c(1)},g=O=>{a(O),c(1)},{data:j,isLoading:b}=Ce({queryKey:["audit-events",e,n,o,i],queryFn:()=>Z(`/audit/events?period=${e}&type=${n}&severity=${o}&page=${i}&per_page=${h}`)}),{data:w,isLoading:y}=Ce({queryKey:["audit-summary",e],queryFn:()=>Z(`/audit/summary?period=${e}`)}),p=(k=(S=j==null?void 0:j.data)==null?void 0:S.events)!=null?k:[],x=(C=(E=j==null?void 0:j.data)==null?void 0:E.pages)!=null?C:1,N=(R=w==null?void 0:w.data)!=null?R:{total:0,warning:0,error:0,critical:0};return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:l("Audit Log")}),r.jsx("p",{className:"text-muted-foreground",children:l("System events and change log")})]}),r.jsx(uN,{value:e,onValueChange:m,children:r.jsxs(pp,{children:[r.jsx(ys,{value:"7",className:"text-xs",children:l("7 Days")}),r.jsx(ys,{value:"30",className:"text-xs",children:l("30 Days")}),r.jsx(ys,{value:"90",className:"text-xs",children:l("90 Days")})]})})]}),r.jsxs("div",{className:"grid gap-4 md:grid-cols-4",children:[r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsx(ue,{className:"text-xs text-muted-foreground",children:l("Total Events")})}),r.jsx(ne,{children:y?r.jsx(oe,{className:"h-8 w-12"}):r.jsx("div",{className:"text-2xl font-bold",children:N.total})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsxs(ue,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[r.jsx(zt,{className:"h-3 w-3 text-warning"}),l("Warnings")]})}),r.jsx(ne,{children:y?r.jsx(oe,{className:"h-8 w-12"}):r.jsx("div",{className:"text-2xl font-bold text-warning",children:N.warning})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsxs(ue,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[r.jsx(ld,{className:"h-3 w-3 text-destructive"}),l("Errors")]})}),r.jsx(ne,{children:y?r.jsx(oe,{className:"h-8 w-12"}):r.jsx("div",{className:"text-2xl font-bold text-destructive",children:N.error})})]}),r.jsxs(ee,{children:[r.jsx(ce,{className:"pb-2",children:r.jsxs(ue,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[r.jsx(Gm,{className:"h-3 w-3"}),l("Critical")]})}),r.jsx(ne,{children:y?r.jsx(oe,{className:"h-8 w-12"}):r.jsx("div",{className:"text-2xl font-bold",children:N.critical})})]})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(je,{value:n,onValueChange:v,children:[r.jsx(ve,{className:"h-8 w-[160px] text-xs",children:r.jsx(we,{placeholder:l("Event Type")})}),r.jsxs(ye,{children:[r.jsx(z,{value:"all",children:l("All Types")}),r.jsx(z,{value:"settings",children:l("Settings Change")}),r.jsx(z,{value:"cron",children:l("Cron")}),r.jsx(z,{value:"activation",children:l("Activation")}),r.jsx(z,{value:"ratelimit",children:l("Rate Limit")}),r.jsx(z,{value:"api_error",children:l("API Error")}),r.jsx(z,{value:"db_error",children:l("DB Error")}),r.jsx(z,{value:"email",children:l("Email")}),r.jsx(z,{value:"auth",children:l("Auth")}),r.jsx(z,{value:"follow_up",children:l("Follow-up actions")})]})]}),r.jsxs(je,{value:o,onValueChange:g,children:[r.jsx(ve,{className:"h-8 w-[140px] text-xs",children:r.jsx(we,{placeholder:l("Severity")})}),r.jsxs(ye,{children:[r.jsx(z,{value:"all",children:l("All")}),r.jsx(z,{value:"info",children:l("Info")}),r.jsx(z,{value:"warning",children:l("Warning")}),r.jsx(z,{value:"error",children:l("Error")}),r.jsx(z,{value:"critical",children:l("Critical")})]})]})]}),r.jsx(ee,{children:r.jsx(ne,{className:"p-0",children:b?r.jsx("div",{className:"p-6 space-y-3",children:Array.from({length:5}).map((O,re)=>r.jsx(oe,{className:"h-10 w-full"},re))}):p.length===0?r.jsxs("div",{className:"py-16 text-center",children:[r.jsx(fd,{className:"h-12 w-12 text-muted-foreground/30 mx-auto mb-3"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l("No events found for the selected filters.")})]}):r.jsxs(r.Fragment,{children:[r.jsxs(Jt,{children:[r.jsx(vn,{children:r.jsxs(Ie,{children:[r.jsx(Ee,{className:"text-xs w-[160px]",children:l("Timestamp")}),r.jsx(Ee,{className:"text-xs w-[100px]",children:l("Type")}),r.jsx(Ee,{className:"text-xs w-[90px]",children:l("Severity")}),r.jsx(Ee,{className:"text-xs",children:l("Message")}),r.jsx(Ee,{className:"text-xs w-[70px]",children:l("User")})]})}),r.jsx(en,{children:p.map(O=>{var te;const re=tI[O.event_type]||fd,D=(te=Yd[O.severity])!=null?te:Yd.info;return r.jsxs(Ie,{className:"cursor-pointer hover:bg-accent",onClick:()=>u(O),children:[r.jsx(fe,{className:"text-xs text-muted-foreground",children:O.created_at}),r.jsx(fe,{children:r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx(re,{className:"h-3 w-3 text-muted-foreground"}),r.jsx("span",{className:"text-xs capitalize",children:O.event_type.replace("_"," ")})]})}),r.jsx(fe,{children:r.jsx(Qe,{variant:D.color,className:"text-[10px]",children:D.label})}),r.jsx(fe,{className:"text-xs max-w-[300px] truncate",children:O.message}),r.jsx(fe,{children:r.jsx(Qe,{variant:"outline",className:"text-[10px]",children:O.user_display})})]},O.id)})})]}),r.jsxs("div",{className:"flex items-center justify-between p-4 border-t",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:le(l("Page %1$s of %2$s"),i,x)}),r.jsxs("div",{className:"flex gap-1",children:[r.jsx(H,{variant:"outline",size:"icon",className:"h-7 w-7",disabled:i===1,onClick:()=>c(O=>O-1),children:r.jsx(H0,{className:"h-3 w-3"})}),r.jsx(H,{variant:"outline",size:"icon",className:"h-7 w-7",disabled:i>=x,onClick:()=>c(O=>O+1),children:r.jsx(Qm,{className:"h-3 w-3"})})]})]})]})})}),r.jsx(Er,{open:!!d,onOpenChange:()=>u(null),children:r.jsxs(tr,{children:[r.jsxs(nr,{children:[r.jsx(rr,{children:l("Event Details")}),r.jsx(sr,{children:l("Full event information")})]}),d&&r.jsxs("div",{className:"space-y-3 text-sm",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:l("Timestamp:")}),r.jsx("p",{className:"text-xs",children:d.created_at})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:l("Type:")}),r.jsx("p",{className:"text-xs capitalize",children:d.event_type.replace("_"," ")})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:l("Severity:")}),r.jsx("p",{children:r.jsx(Qe,{variant:(A=(T=Yd[d.severity])==null?void 0:T.color)!=null?A:"secondary",className:"text-[10px]",children:(B=(M=Yd[d.severity])==null?void 0:M.label)!=null?B:d.severity})})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:l("User:")}),r.jsx("p",{className:"text-xs",children:d.user_display})]})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:l("Message:")}),r.jsx("p",{className:"text-xs mt-1 rounded-lg bg-accent p-3",children:d.message})]})]})]})})]})}function rI(){return r.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[60vh] gap-4",children:[r.jsx("h1",{className:"text-4xl font-bold",children:"404"}),r.jsx("p",{className:"text-muted-foreground",children:l("Page not found")}),r.jsx(hn,{to:"/",className:"text-primary hover:underline",children:l("Return to Dashboard")})]})}const sI=new n2({defaultOptions:{queries:{staleTime:3e4,retry:1}}}),oI=()=>(f.useEffect(()=>{b_()},[]),r.jsx(r2,{client:sI,children:r.jsxs(rj,{children:[r.jsx(AP,{}),r.jsx(dT,{}),r.jsx(GR,{children:r.jsx(c_,{children:r.jsxs(t_,{children:[r.jsxs(tt,{element:r.jsx(qA,{}),children:[r.jsx(tt,{path:"/",element:r.jsx(JA,{})}),r.jsx(tt,{path:"/analytics",element:r.jsx(co,{addonId:"analytics",featureName:"Analytics",children:r.jsx(er,{id:"page.analytics"})})}),r.jsx(tt,{path:"/optins",element:r.jsx(Q5,{})}),r.jsx(tt,{path:"/optins/:id",element:r.jsx(pO,{})}),r.jsx(tt,{path:"/forms",element:r.jsx(SO,{})}),r.jsx(tt,{path:"/forms/:integration/:id/settings",element:r.jsx(XO,{})}),r.jsx(tt,{path:"/categories",element:r.jsx(fN,{})}),r.jsx(tt,{path:"/categories/:id",element:r.jsx(fN,{})}),r.jsx(tt,{path:"/settings",element:r.jsx(JO,{})}),r.jsx(tt,{path:"/email-templates",element:r.jsx(co,{addonId:"email-editor",featureName:"Email Templates",children:r.jsx(e3,{})})}),r.jsx(tt,{path:"/email-templates/new",element:r.jsx(co,{addonId:"email-editor",featureName:"Email Editor",children:r.jsx(zN,{})})}),r.jsx(tt,{path:"/email-templates/:id/edit",element:r.jsx(co,{addonId:"email-editor",featureName:"Email Editor",children:r.jsx(zN,{})})}),r.jsx(tt,{path:"/database",element:r.jsx(t3,{})}),r.jsx(tt,{path:"/opt-out",element:r.jsx(co,{addonId:"opt-out",featureName:"Opt-Out",children:r.jsx(g3,{})})}),r.jsx(tt,{path:"/user-creation",element:r.jsx(co,{addonId:"user-registration",featureName:"User Creation",children:r.jsx(w3,{})})}),r.jsx(tt,{path:"/api",element:r.jsx(S3,{})}),r.jsx(tt,{path:"/audit",element:r.jsx(nI,{})}),r.jsx(tt,{path:"/license",element:r.jsx(C3,{})}),r.jsx(tt,{path:"/addons",element:r.jsx(k3,{})}),r.jsx(tt,{path:"/addon-settings/:id",element:r.jsx(Z3,{})})]}),r.jsx(tt,{path:"*",element:r.jsx(rI,{})})]})})})]})})),UN=document.getElementById("doi-admin-root");UN&&my(UN).render(r.jsx(oI,{}))})(wp.i18n);
475 +
476 +})();