diff --git a/assets/css/admin/gutenblock-editor.css b/assets/css/admin/gutenblock-editor.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/assets/css/admin/gutenblock.css b/assets/css/admin/gutenblock.css deleted file mode 100644 index c16578a3f..000000000 --- a/assets/css/admin/gutenblock.css +++ /dev/null @@ -1,102 +0,0 @@ -.wpuf-block-logo{ - max-width: 50px !important; - max-height: 50px; - float: left; - margin-right: 15px; - margin-bottom: 10px; -} - -#wpuf-filter-input-main{ - clear: both; -} - -.wpuf-iframe-container { - position: relative; -} -.wpuf-iframe-overlay { - position: absolute; - top: 0; right: 0; bottom: 0; left: 0; -} -.wpuf-block-form-selector { - background-color: lightgrey; - border-bottom: 1px solid; - margin-bottom: 5px; - padding: 4px; -} - -.wpuf-filter-input { - border: 1px solid #ddd; - border-radius: 5px; - box-shadow: inset 0 1px 2px rgba(0,0,0,.07); - padding: 0; - width: 100%; - margin-top: 10px; - margin-bottom: 10px; - position: relative; -} - -.wpuf-filter-input .blocks-select-control__input { - margin: 0 0 0 0; -} - -.wpuf-filter-input-el { - border: none !important; - box-shadow: none !important; - width: 95%; - position: relative; - display: inline-block; -} - -.wpuf-filter-input-icon { - display: inline-block; - content: '▾'; - color: #999; - font-size: 14px; - right: .77em; - position: absolute; - top: .2em; -} - -#wpuf-formFilter-main { - border-top: none; - border-left: none; - border-bottom: none; -} - -#wpuf-formFilter-sidebar { - border-top: none; - border-left: none; - border-bottom: none; - width: 95%; -} - -#wpuf-filter-input-icon-sidebar { - font-size: 1.4em; - top: .35em; - right: .45em; -} - -.wpuf-filter-input-el.blocks-select-control__input > .components-base-control__field { - margin-bottom: 0; -} - -.wpuf-filter-option-container { - display: none; - position: absolute; - background-color: #edeff0; - z-index: 10000; - padding: 4px; - width: 100%; - border-radius: 5px; - max-height: 200px; - overflow: scroll; - box-shadow: 0 2px 4px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)!important; -} -.wpuf-filter-option { - list-style: none; -} - -.wpuf-filter-option:hover { - background-color: #0073aa; - color: white; -} \ No newline at end of file diff --git a/assets/css/frontend-form/layout2.css b/assets/css/frontend-form/layout2.css index de2252229..9566a6aee 100644 --- a/assets/css/frontend-form/layout2.css +++ b/assets/css/frontend-form/layout2.css @@ -26,7 +26,7 @@ body.mceContentBody{ .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li.has-error { background: transparent; } -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li.has-error .wpuf-fields input, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li.has-error .wpuf-fields input:not([type="file"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li.has-error .wpuf-fields textarea, .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li.has-error .wpuf-fields select { border-color: #F20000; @@ -34,10 +34,9 @@ body.mceContentBody{ .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li.has-error .wpuf-fields .wpuf-error-msg { color: #F20000; } -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields input, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields textarea, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields select { - width: 100%; +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields input:not([type="file"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]), +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields textarea { + width: 100% !important; background: #292C3F; -moz-box-shadow: none; -webkit-box-shadow: none; @@ -52,6 +51,15 @@ body.mceContentBody{ color: #fff; } .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields select { + background: #292C3F; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + border: 1px solid #33374D; + border-radius: 5px; + font-size: 14px; + box-sizing: border-box; + color: #fff; padding: 10px; height: inherit; } @@ -156,7 +164,7 @@ body.mceContentBody{ border-radius: 5px; background: transparent; color: #BFC4D1; - width: inherit; + width: auto; position: relative; text-transform: uppercase; box-shadow: none; @@ -191,10 +199,10 @@ body.mceContentBody{ .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li .wpuf-fields .wpuf-help { color: #6F4A70; } -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:active, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:hover, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:focus, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:visited, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:not([type="file"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]):active, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:not([type="file"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]):hover, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:not([type="file"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]):focus, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li input:not([type="file"]):not([type="radio"]):not([type="checkbox"]):not([type="submit"]):visited, .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li textarea:active, .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li textarea:hover, .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li textarea:focus, @@ -203,10 +211,10 @@ body.mceContentBody{ .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li select:hover, .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li select:focus, .wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li select:visited, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:active, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:hover, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:focus, -.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:visited { +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:not(.file-selector):not(.wpuf-insert-image):active, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:not(.file-selector):not(.wpuf-insert-image):hover, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:not(.file-selector):not(.wpuf-insert-image):focus, +.wpuf-form-add.wpuf-form-layout2 ul.wpuf-form li a:not(.file-selector):not(.wpuf-insert-image):visited { outline: none; border-color: #00C14B; } diff --git a/assets/css/frontend-form/layout4.css b/assets/css/frontend-form/layout4.css index bdbc406b5..c7c198888 100644 --- a/assets/css/frontend-form/layout4.css +++ b/assets/css/frontend-form/layout4.css @@ -153,19 +153,6 @@ body.mceContentBody { box-shadow: none; } -.wpuf-form-add.wpuf-form-layout4 ul.wpuf-form li .wpuf-fields a.file-selector:before { - position: absolute; - top: 0; - left: 0; - width: 40px; - height: 40px; - font-size: 36px; - content: "\f317"; - font-family: dashicons; - line-height: 40px; - text-align: center; -} - .wpuf-form-add.wpuf-form-layout4 ul.wpuf-form li .wpuf-fields .wpuf-address-field.city_name, .wpuf-form-add.wpuf-form-layout4 ul.wpuf-form li .wpuf-fields .wpuf-address-field.zip { margin-right: 6%; diff --git a/assets/css/frontend-forms.css b/assets/css/frontend-forms.css index 197b906cf..aa2b660df 100644 --- a/assets/css/frontend-forms.css +++ b/assets/css/frontend-forms.css @@ -427,7 +427,9 @@ body ul.wpuf-form li .wpuf-fields .wpuf-checkbox-inline { } body ul.wpuf-form li .wpuf-fields .wpuf-radio-block, body ul.wpuf-form li .wpuf-fields .wpuf-checkbox-block { - display: block; + display: flex; + align-items: center; + gap: 1rem; margin-bottom: 6px; } body ul.wpuf-form li .wpuf-fields .google-map img { diff --git a/assets/js/admin/blockFrameSetup.js b/assets/js/admin/blockFrameSetup.js deleted file mode 100644 index 08497e309..000000000 --- a/assets/js/admin/blockFrameSetup.js +++ /dev/null @@ -1,15 +0,0 @@ -// moved to separate file so we could enqueue it and make sure jquery was loaded -(function() { - jQuery( document ).ready( function() { - var frameEl = window.frameElement; - - // get the form element - var $form = jQuery('.wpuf-form-add'); - // get the height of the form - var height = $form.find( '.wpuf-form' ).outerHeight(true); - - if (frameEl) { - frameEl.height = height + 200; - } - }); -})(); \ No newline at end of file diff --git a/assets/js/admin/gutenblock.js b/assets/js/admin/gutenblock.js deleted file mode 100644 index 19b5c50b2..000000000 --- a/assets/js/admin/gutenblock.js +++ /dev/null @@ -1,220 +0,0 @@ -/** - * WPUF Block - * - * A block for embedding a wpuf form into a post/page. - */ -( function( blocks, i18n, editor, element, components ) { - - var el = element.createElement, // function to create elements - TextControl = components.TextControl,// text input control - InspectorControls = editor.InspectorControls; // sidebar controls - - // register our block - blocks.registerBlockType( 'wpuf/form', { - title: 'WPUF Forms', - icon: 'feedback', - category: 'common', - - attributes: { - formID: { - type: 'integer', - default: 0 - }, - formName: { - type: 'string', - default: '' - } - }, - - edit: function( props ) { - - var formID = props.attributes.formID; - - var formName = props.attributes.formName; - - var children = []; - - if( ! formID ) formID = ''; // Default. - if( ! formName ) formName = ''; // Default - - // this function is required, but we don't need it to do anything - function wpufOnValueChange( formName ) { } - - // show the dropdown when we click on the input - function wpufFocusClick( event ) { - var elID = event.target.getAttribute( 'id' ); - var idArray = elID.split( '-' ); - var wpufOptions = document.getElementById( 'wpuf-filter-container-' + idArray[ idArray.length -1 ] ); - // get the related input element - var wpufInput = document.getElementById( 'wpuf-formFilter-' + idArray[ idArray.length -1 ] ); - // set focus to the element so the onBlur function runs properly - wpufInput.focus(); - wpufOptions.style.display = 'block'; - } - - // function for select the form on filter drop down item click - function selectForm( event ) { - //set the attributes from the selected for item - props.setAttributes( { - formID: parseInt( event.target.getAttribute( 'data-formid' ) ), - formName: event.target.innerText - } ); - /** - * Get the main div of the filter to tell if this is being - * selected from the sidebar or block so we can hide the dropdown - */ - var elID = event.target.parentNode.parentNode; - var idArray = elID.getAttribute( 'id' ).split( '-' ); - var wpufOptions = document.getElementById( 'wpuf-filter-container-' + idArray[ idArray.length -1 ] ); - var inputEl = document.getElementById( 'wpuf-formFilter-sidebar' ); - - if( inputEl ) { - inputEl.value = ''; - } - wpufOptions.style.display = 'none'; - } - - function wpufHideOptions( event ) { - /** - * Get the main div of the filter to tell if this is being - * selected from the sidebar or block so we can hide the dropdown - */ - var elID = event.target.getAttribute( 'id' ); - var idArray = elID.split( '-' ); - var wpufOptions = document.getElementById( 'wpuf-filter-container-' + idArray[ idArray.length -1 ] ); - wpufOptions.style.display = 'none'; - } - - function wpufInputKeyUp( event ) { - var val = event.target.value; - /** - * Get the main div of the filter to tell if this is being - * selected from the sidebar or block so we can SHOW the dropdown - */ - var filterInputContainer = event.target.parentNode.parentNode.parentNode; - filterInputContainer.querySelector( '.wpuf-filter-option-container' ).style.display = 'block'; - filterInputContainer.style.display = 'block'; - - // Let's filter the forms here - _.each( wpufBlock.forms, function( form, index ) { - var liEl = filterInputContainer.querySelector( "[data-formid='" + form.value + "']" ); - if ( 0 <= form.label.toLowerCase().indexOf( val.toLowerCase() ) ) { - // shows options that DO contain the text entered - liEl.style.display = 'block'; - } else { - // hides options the do not contain the text entered - liEl.style.display = 'none'; - } - }); - } - - // Set up the form items from the localized php variables - var formItems = []; - _.each( wpufBlock.forms, function( form, index ) { - formItems.push( el( 'li', { className: 'wpuf-filter-option', - 'data-formid': form.value, onMouseDown: selectForm}, - form.label + " ( ID: " + form.value + " )" )) - }); - - // Set up form filter for the block - var inputFilterMain = el( 'div', { id: 'wpuf-filter-input-main', - className: 'wpuf-filter-input' }, - el( TextControl, { id: 'wpuf-formFilter-main', - placeHolder: 'Select a Form', - className: 'wpuf-filter-input-el blocks-select-control__input', - onChange: wpufOnValueChange, - onClick: wpufFocusClick, - onKeyUp: wpufInputKeyUp, - onBlur: wpufHideOptions - } ), - el( 'span', { id: 'wpuf-filter-input-icon-main', - className: 'wpuf-filter-input-icon', - onClick: wpufFocusClick, - dangerouslySetInnerHTML: { __html: '▾' } } ), - el( 'div', { id: 'wpuf-filter-container-main', - className: 'wpuf-filter-option-container' }, - el( 'ul', null, formItems ) - ) - ); - // Create filter input for the sidebar blocks settings - var inputFilterSidebar = el( 'div', { id: 'wpuf-filter-input-sidebar', - className: 'wpuf-filter-input' }, - el( TextControl, { id: 'wpuf-formFilter-sidebar', - placeHolder: 'Select a Form', - className: 'wpuf-filter-input-el blocks-select-control__input', - onChange: wpufOnValueChange, - onClick: wpufFocusClick, - onKeyUp: wpufInputKeyUp, - onBlur: wpufHideOptions - } ), - el( 'span', { id: 'wpuf-filter-input-icon-sidebar', - className: 'wpuf-filter-input-icon', - onClick: wpufFocusClick, - dangerouslySetInnerHTML: { __html: '▾' } } ), - el( 'div', { id: 'wpuf-filter-container-sidebar', - className: 'wpuf-filter-option-container' }, - el( 'ul', null, formItems ) - ) - ); - - // Set up the form filter dropdown in the side bar 'block' settings - var inspectorControls = el( InspectorControls, {}, - el( 'span', null, 'Current selected form:' ), - el( 'br', null ), - el( 'span', null, formName ), - el( 'br', null ), - el ('hr', null ), - el ( 'label', { for: 'wpuf-formFilter-sidebar' }, 'Type to' + - ' filter' + - ' forms' ), - inputFilterSidebar - ); - - /** - * Create the div container, add an overlay so the user can interact - * with the form in Gutenberg, then render the iframe with form - */ - if( '' === formID ) { - children.push( el( 'div', {style : {width: '100%'}}, - el( 'img', { className: 'wpuf-block-logo', src: wpufBlock.block_logo}), - el ( 'div', null, 'WPUF Forms'), - inputFilterMain - ) ); - } else { - children.push( - el( 'div', { className: 'wpuf-iframe-container' }, - el( 'div', { className: 'wpuf-iframe-overlay' } ), - el( 'iframe', { src: wpufBlock.siteUrl + '?wpuf_preview=1&wpuf_iframe&form_id=' + formID, height: '0', width: '500', scrolling: 'no' }) - ) - ) - } - children.push(inspectorControls); - return [ - children - ]; - }, - - save: function( props ) { - var formID = props.attributes.formID; - - if( ! formID ) return ''; - /** - * we're essentially just adding a short code, here is where - * it's save in the editor - * - * return content wrapped in DIV b/c raw HTML is unsupported - * going forward - */ - var returnHTML = '[wpuf_form id=' + parseInt( formID ) + ']'; - return el( 'div', null, returnHTML ); - } - } ); - - -} )( - window.wp.blocks, - window.wp.i18n, - window.wp.editor, - window.wp.element, - window.wp.components -); \ No newline at end of file diff --git a/assets/js/blocks/js/blocks/post-form/block.json b/assets/js/blocks/js/blocks/post-form/block.json new file mode 100644 index 000000000..c7c87e544 --- /dev/null +++ b/assets/js/blocks/js/blocks/post-form/block.json @@ -0,0 +1,289 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 3, + "name": "wpuf/post-form", + "version": "1.0.0", + "title": "Post Form", + "category": "wpuf", + "description": "Embed a WPUF post form with customisable styling.", + "textdomain": "wp-user-frontend", + "icon": "feedback", + "keywords": [ + "post", + "submission", + "form", + "wpuf" + ], + "attributes": { + "blockId": { + "type": "string", + "default": "" + }, + "formId": { + "type": "number", + "default": 0 + }, + "activeTemplate": { + "type": "string", + "default": "default" + }, + "labelPosition": { + "type": "string", + "default": "above" + }, + "labelFontSize": { + "type": "string", + "default": "14px" + }, + "labelColor": { + "type": "string", + "default": "" + }, + "labelFontWeight": { + "type": "string", + "default": "normal" + }, + "labelFontFamily": { + "type": "string", + "default": "" + }, + "labelFontStyle": { + "type": "string", + "default": "" + }, + "helpTextColor": { + "type": "string", + "default": "" + }, + "helpTextFontFamily": { + "type": "string", + "default": "" + }, + "helpTextFontSize": { + "type": "string", + "default": "12px" + }, + "helpTextFontStyle": { + "type": "string", + "default": "" + }, + "helpTextFontWeight": { + "type": "string", + "default": "" + }, + "fieldBorder": { + "type": "object", + "default": { + "color": "#dddddd", + "style": "solid", + "width": "1px" + } + }, + "fieldBorderRadius": { + "type": "string", + "default": "4px" + }, + "fieldPaddingV": { + "type": "string", + "default": "8px" + }, + "fieldPaddingH": { + "type": "string", + "default": "12px" + }, + "fieldBackgroundColor": { + "type": "string", + "default": "" + }, + "fieldTextColor": { + "type": "string", + "default": "" + }, + "fieldPlaceholderColor": { + "type": "string", + "default": "" + }, + "fieldFontFamily": { + "type": "string", + "default": "" + }, + "fieldFontSize": { + "type": "string", + "default": "14px" + }, + "fieldFontStyle": { + "type": "string", + "default": "" + }, + "fieldFontWeight": { + "type": "string", + "default": "" + }, + "fieldMarginBottom": { + "type": "string", + "default": "16px" + }, + "fieldFocusBorderColor": { + "type": "string", + "default": "" + }, + "buttonBackgroundColor": { + "type": "string", + "default": "" + }, + "buttonTextColor": { + "type": "string", + "default": "" + }, + "buttonFontFamily": { + "type": "string", + "default": "" + }, + "buttonFontStyle": { + "type": "string", + "default": "" + }, + "buttonFontWeight": { + "type": "string", + "default": "" + }, + "buttonBorderWidth": { + "type": "string", + "default": "0px" + }, + "buttonBorderRadius": { + "type": "string", + "default": "4px" + }, + "buttonFontSize": { + "type": "string", + "default": "14px" + }, + "buttonPaddingV": { + "type": "string", + "default": "10px" + }, + "buttonPaddingH": { + "type": "string", + "default": "20px" + }, + "uploadButtonBackgroundColor": { + "type": "string", + "default": "" + }, + "uploadButtonTextColor": { + "type": "string", + "default": "" + }, + "uploadButtonFontFamily": { + "type": "string", + "default": "" + }, + "uploadButtonFontStyle": { + "type": "string", + "default": "" + }, + "uploadButtonFontWeight": { + "type": "string", + "default": "" + }, + "uploadButtonBorderColor": { + "type": "string", + "default": "#dddddd" + }, + "uploadButtonBorderWidth": { + "type": "string", + "default": "1px" + }, + "uploadButtonBorderRadius": { + "type": "string", + "default": "4px" + }, + "uploadButtonFontSize": { + "type": "string", + "default": "13px" + }, + "uploadButtonPaddingV": { + "type": "string", + "default": "8px" + }, + "uploadButtonPaddingH": { + "type": "string", + "default": "16px" + }, + "msButtonBackgroundColor": { + "type": "string", + "default": "#1e1e1e" + }, + "msButtonTextColor": { + "type": "string", + "default": "#ffffff" + }, + "msButtonFontFamily": { + "type": "string", + "default": "" + }, + "msButtonFontStyle": { + "type": "string", + "default": "" + }, + "msButtonFontWeight": { + "type": "string", + "default": "" + }, + "msButtonBorderColor": { + "type": "string", + "default": "" + }, + "msButtonBorderWidth": { + "type": "string", + "default": "0px" + }, + "msButtonBorderRadius": { + "type": "string", + "default": "4px" + }, + "msButtonFontSize": { + "type": "string", + "default": "14px" + }, + "msButtonPaddingV": { + "type": "string", + "default": "10px" + }, + "msButtonPaddingH": { + "type": "string", + "default": "20px" + }, + "msActiveBgColor": { + "type": "string", + "default": "" + }, + "msActiveTextColor": { + "type": "string", + "default": "" + }, + "msInactiveBgColor": { + "type": "string", + "default": "" + } + }, + "supports": { + "color": { + "background": true, + "text": false, + "gradients": false + }, + "spacing": { + "margin": true, + "padding": true + }, + "align": [ + "wide", + "full" + ], + "html": false + }, + "editorScript": "wpuf-post-form-editor", + "editorStyle": "wpuf-post-form-editor-style" +} \ No newline at end of file diff --git a/assets/js/blocks/post-form-rtl.css b/assets/js/blocks/post-form-rtl.css new file mode 100644 index 000000000..58fae2015 --- /dev/null +++ b/assets/js/blocks/post-form-rtl.css @@ -0,0 +1,152 @@ +/** + * Editor styles for the wpuf/post-form block. + */ + +/* ── Template picker grid ── */ +.wpuf-pf-templates { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; + margin-top: 4px; +} + +.components-base-control span.components-base-control__label, +.components-base-control label { + margin-top: .5rem; +} + +/* ── Template card ── */ +.wpuf-pf-template-card { + position: relative; + display: flex; + flex-direction: column; + align-items: stretch; + padding: 0; + border: 2px solid #ddd; + border-radius: 6px; + background: #fff; + cursor: pointer; + transition: border-color 0.15s ease, box-shadow 0.15s ease; + overflow: hidden; + text-align: right; +} + +.wpuf-pf-template-card:hover { + border-color: #949494; +} + +.wpuf-pf-template-card.is-active { + border-color: var(--wp-admin-theme-color, #3858e9); + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #3858e9); +} + +/* ── Checkmark badge ── */ +.wpuf-pf-template-card__badge { + display: none; + position: absolute; + top: 6px; + left: 6px; + width: 20px; + height: 20px; + border-radius: 50%; + background: var(--wp-admin-theme-color, #3858e9); + color: #fff; + align-items: center; + justify-content: center; + font-size: 12px; + line-height: 1; + z-index: 1; +} + +.wpuf-pf-template-card.is-active .wpuf-pf-template-card__badge { + display: flex; +} + +/* ── Realistic form mini-preview ── */ +.wpuf-pf-template-preview { + padding: 12px 10px 8px; + display: flex; + flex-direction: column; + gap: 6px; + border-radius: 4px 4px 0 0; + transition: background 0.15s ease; +} + +.wpuf-pf-template-preview__row { + display: flex; + flex-direction: column; + gap: 3px; +} + +.wpuf-pf-template-preview__label { + height: 4px; + width: 40%; + border-radius: 2px; + opacity: 0.7; +} + +.wpuf-pf-template-preview__input { + height: 16px; + border-radius: 3px; + border-style: solid; +} + +.wpuf-pf-template-preview__button { + height: 14px; + width: 50%; + border-radius: 3px; + margin-top: 2px; + align-self: flex-start; +} + +/* ── Card text ── */ +.wpuf-pf-template-card__info { + padding: 8px 10px; + border-top: 1px solid #f0f0f0; +} + +.wpuf-pf-template-card__label { + font-size: 12px; + font-weight: 600; + margin: 0; + color: #1e1e1e; + line-height: 1.4; +} + +.wpuf-pf-template-card__desc { + font-size: 11px; + color: #757575; + margin: 2px 0 0; + line-height: 1.3; +} + +/* ── SSR loading overlay ── */ +.wpuf-ssr-loading-overlay { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.7); + z-index: 5; +} + +.wpuf-ssr-loading { + width: 24px; + height: 24px; + border: 3px solid #ddd; + border-top-color: var(--wp-admin-theme-color, #3858e9); + border-radius: 50%; + animation: wpuf-spin 0.6s linear infinite; +} + +@keyframes wpuf-spin { + to { + transform: rotate(-360deg); + } +} + diff --git a/assets/js/blocks/post-form.asset.php b/assets/js/blocks/post-form.asset.php new file mode 100644 index 000000000..9a7914e0e --- /dev/null +++ b/assets/js/blocks/post-form.asset.php @@ -0,0 +1 @@ + array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-server-side-render'), 'version' => '3dfbde7de63cd94bef12'); diff --git a/assets/js/blocks/post-form.css b/assets/js/blocks/post-form.css new file mode 100644 index 000000000..3dc07540b --- /dev/null +++ b/assets/js/blocks/post-form.css @@ -0,0 +1,152 @@ +/** + * Editor styles for the wpuf/post-form block. + */ + +/* ── Template picker grid ── */ +.wpuf-pf-templates { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; + margin-top: 4px; +} + +.components-base-control span.components-base-control__label, +.components-base-control label { + margin-top: .5rem; +} + +/* ── Template card ── */ +.wpuf-pf-template-card { + position: relative; + display: flex; + flex-direction: column; + align-items: stretch; + padding: 0; + border: 2px solid #ddd; + border-radius: 6px; + background: #fff; + cursor: pointer; + transition: border-color 0.15s ease, box-shadow 0.15s ease; + overflow: hidden; + text-align: left; +} + +.wpuf-pf-template-card:hover { + border-color: #949494; +} + +.wpuf-pf-template-card.is-active { + border-color: var(--wp-admin-theme-color, #3858e9); + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #3858e9); +} + +/* ── Checkmark badge ── */ +.wpuf-pf-template-card__badge { + display: none; + position: absolute; + top: 6px; + right: 6px; + width: 20px; + height: 20px; + border-radius: 50%; + background: var(--wp-admin-theme-color, #3858e9); + color: #fff; + align-items: center; + justify-content: center; + font-size: 12px; + line-height: 1; + z-index: 1; +} + +.wpuf-pf-template-card.is-active .wpuf-pf-template-card__badge { + display: flex; +} + +/* ── Realistic form mini-preview ── */ +.wpuf-pf-template-preview { + padding: 12px 10px 8px; + display: flex; + flex-direction: column; + gap: 6px; + border-radius: 4px 4px 0 0; + transition: background 0.15s ease; +} + +.wpuf-pf-template-preview__row { + display: flex; + flex-direction: column; + gap: 3px; +} + +.wpuf-pf-template-preview__label { + height: 4px; + width: 40%; + border-radius: 2px; + opacity: 0.7; +} + +.wpuf-pf-template-preview__input { + height: 16px; + border-radius: 3px; + border-style: solid; +} + +.wpuf-pf-template-preview__button { + height: 14px; + width: 50%; + border-radius: 3px; + margin-top: 2px; + align-self: flex-start; +} + +/* ── Card text ── */ +.wpuf-pf-template-card__info { + padding: 8px 10px; + border-top: 1px solid #f0f0f0; +} + +.wpuf-pf-template-card__label { + font-size: 12px; + font-weight: 600; + margin: 0; + color: #1e1e1e; + line-height: 1.4; +} + +.wpuf-pf-template-card__desc { + font-size: 11px; + color: #757575; + margin: 2px 0 0; + line-height: 1.3; +} + +/* ── SSR loading overlay ── */ +.wpuf-ssr-loading-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.7); + z-index: 5; +} + +.wpuf-ssr-loading { + width: 24px; + height: 24px; + border: 3px solid #ddd; + border-top-color: var(--wp-admin-theme-color, #3858e9); + border-radius: 50%; + animation: wpuf-spin 0.6s linear infinite; +} + +@keyframes wpuf-spin { + to { + transform: rotate(360deg); + } +} + diff --git a/assets/js/blocks/post-form.css.map b/assets/js/blocks/post-form.css.map new file mode 100644 index 000000000..536b9ca8e --- /dev/null +++ b/assets/js/blocks/post-form.css.map @@ -0,0 +1 @@ +{"version":3,"file":"post-form.css","mappings":";;;AAAA;;EAEE;;AAEF,+BAA+B;AAC/B;IACI,aAAa;IACb,8BAA8B;IAC9B,SAAS;IACT,eAAe;AACnB;;AAEA;;IAEI,iBAAiB;AACrB;;AAEA,wBAAwB;AACxB;IACI,kBAAkB;IAClB,aAAa;IACb,sBAAsB;IACtB,oBAAoB;IACpB,UAAU;IACV,sBAAsB;IACtB,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,0DAA0D;IAC1D,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,kDAAkD;IAClD,0DAA0D;AAC9D;;AAEA,0BAA0B;AAC1B;IACI,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,gDAAgD;IAChD,WAAW;IACX,mBAAmB;IACnB,uBAAuB;IACvB,eAAe;IACf,cAAc;IACd,UAAU;AACd;;AAEA;IACI,aAAa;AACjB;;AAEA,sCAAsC;AACtC;IACI,sBAAsB;IACtB,aAAa;IACb,sBAAsB;IACtB,QAAQ;IACR,0BAA0B;IAC1B,iCAAiC;AACrC;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,QAAQ;AACZ;;AAEA;IACI,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,YAAY;AAChB;;AAEA;IACI,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;AACvB;;AAEA;IACI,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,eAAe;IACf,sBAAsB;AAC1B;;AAEA,oBAAoB;AACpB;IACI,iBAAiB;IACjB,6BAA6B;AACjC;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;AACpB;;AAEA,8BAA8B;AAC9B;IACI,kBAAkB;IAClB,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;IACT,aAAa;IACb,sBAAsB;IACtB,mBAAmB;IACnB,uBAAuB;IACvB,oCAAoC;IACpC,UAAU;AACd;;AAEA;IACI,WAAW;IACX,YAAY;IACZ,sBAAsB;IACtB,sDAAsD;IACtD,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI;QACI,yBAAyB;IAC7B;AACJ","sources":["webpack://wp-user-frontend/./src/js/blocks/post-form/editor.css"],"sourcesContent":["/**\n * Editor styles for the wpuf/post-form block.\n */\n\n/* ── Template picker grid ── */\n.wpuf-pf-templates {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 10px;\n margin-top: 4px;\n}\n\n.components-base-control span.components-base-control__label,\n.components-base-control label {\n margin-top: .5rem;\n}\n\n/* ── Template card ── */\n.wpuf-pf-template-card {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n padding: 0;\n border: 2px solid #ddd;\n border-radius: 6px;\n background: #fff;\n cursor: pointer;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n overflow: hidden;\n text-align: left;\n}\n\n.wpuf-pf-template-card:hover {\n border-color: #949494;\n}\n\n.wpuf-pf-template-card.is-active {\n border-color: var(--wp-admin-theme-color, #3858e9);\n box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #3858e9);\n}\n\n/* ── Checkmark badge ── */\n.wpuf-pf-template-card__badge {\n display: none;\n position: absolute;\n top: 6px;\n right: 6px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: var(--wp-admin-theme-color, #3858e9);\n color: #fff;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n line-height: 1;\n z-index: 1;\n}\n\n.wpuf-pf-template-card.is-active .wpuf-pf-template-card__badge {\n display: flex;\n}\n\n/* ── Realistic form mini-preview ── */\n.wpuf-pf-template-preview {\n padding: 12px 10px 8px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n border-radius: 4px 4px 0 0;\n transition: background 0.15s ease;\n}\n\n.wpuf-pf-template-preview__row {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.wpuf-pf-template-preview__label {\n height: 4px;\n width: 40%;\n border-radius: 2px;\n opacity: 0.7;\n}\n\n.wpuf-pf-template-preview__input {\n height: 16px;\n border-radius: 3px;\n border-style: solid;\n}\n\n.wpuf-pf-template-preview__button {\n height: 14px;\n width: 50%;\n border-radius: 3px;\n margin-top: 2px;\n align-self: flex-start;\n}\n\n/* ── Card text ── */\n.wpuf-pf-template-card__info {\n padding: 8px 10px;\n border-top: 1px solid #f0f0f0;\n}\n\n.wpuf-pf-template-card__label {\n font-size: 12px;\n font-weight: 600;\n margin: 0;\n color: #1e1e1e;\n line-height: 1.4;\n}\n\n.wpuf-pf-template-card__desc {\n font-size: 11px;\n color: #757575;\n margin: 2px 0 0;\n line-height: 1.3;\n}\n\n/* ── SSR loading overlay ── */\n.wpuf-ssr-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.7);\n z-index: 5;\n}\n\n.wpuf-ssr-loading {\n width: 24px;\n height: 24px;\n border: 3px solid #ddd;\n border-top-color: var(--wp-admin-theme-color, #3858e9);\n border-radius: 50%;\n animation: wpuf-spin 0.6s linear infinite;\n}\n\n@keyframes wpuf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/blocks/post-form.js b/assets/js/blocks/post-form.js new file mode 100644 index 000000000..3b029b4d3 --- /dev/null +++ b/assets/js/blocks/post-form.js @@ -0,0 +1 @@ +(()=>{"use strict";var e={n:t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},d:(t,o)=>{for(var l in o)e.o(o,l)&&!e.o(t,l)&&Object.defineProperty(t,l,{enumerable:!0,get:o[l]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.blocks,o=JSON.parse('{"UU":"wpuf/post-form"}'),l=window.wp.blockEditor,n=window.wp.element,r=window.wp.components,a=window.wp.data,d=window.wp.notices,i=window.wp.serverSideRender;var u=e.n(i);const s=window.wp.i18n,p=[{id:"default",label:"Default",description:"Clean, inherits theme styles",preview:{bg:"#ffffff",border:"#dddddd",button:"#0073aa",text:"#333333"},attributes:{activeTemplate:"default",style:{color:{}},labelFontSize:"14px",labelColor:"#333333",labelFontWeight:"normal",labelFontFamily:"",labelFontStyle:"",helpTextColor:"#767676",helpTextFontFamily:"",helpTextFontSize:"12px",helpTextFontStyle:"",helpTextFontWeight:"",fieldBorder:{color:"#dddddd",style:"solid",width:"1px"},fieldBorderRadius:"4px",fieldPaddingV:"8px",fieldPaddingH:"12px",fieldBackgroundColor:"#ffffff",fieldTextColor:"#333333",fieldPlaceholderColor:"#aaaaaa",fieldFontFamily:"",fieldFontSize:"14px",fieldFontStyle:"",fieldFontWeight:"",fieldMarginBottom:"16px",fieldFocusBorderColor:"#0073aa",buttonBackgroundColor:"#0073aa",buttonTextColor:"#ffffff",buttonBorderColor:"",buttonBorderWidth:"0px",buttonBorderRadius:"4px",buttonFontSize:"14px",buttonFontFamily:"",buttonFontStyle:"",buttonFontWeight:"",buttonPaddingV:"10px",buttonPaddingH:"20px",uploadButtonBackgroundColor:"#f0f0f0",uploadButtonTextColor:"#333333",uploadButtonBorderColor:"#dddddd",uploadButtonBorderWidth:"1px",uploadButtonBorderRadius:"4px",uploadButtonFontSize:"13px",uploadButtonFontFamily:"",uploadButtonFontStyle:"",uploadButtonFontWeight:"",uploadButtonPaddingV:"8px",uploadButtonPaddingH:"16px",errorMessageColor:"#cc0000",successMessageColor:"#00a32a"}},{id:"dark",label:"Dark",description:"Dark background, light text",preview:{bg:"#1e1e2e",border:"#3d3d5c",button:"#7c3aed",text:"#f0f0f0"},attributes:{activeTemplate:"dark",style:{color:{background:"#1e1e2e"}},labelFontSize:"14px",labelColor:"#e0e0e0",labelFontWeight:"normal",labelFontFamily:"",labelFontStyle:"",helpTextColor:"#a0a0b0",helpTextFontFamily:"",helpTextFontSize:"12px",helpTextFontStyle:"",helpTextFontWeight:"",fieldBorder:{color:"#3d3d5c",style:"solid",width:"1px"},fieldBorderRadius:"6px",fieldPaddingV:"10px",fieldPaddingH:"14px",fieldBackgroundColor:"#2a2a3e",fieldTextColor:"#f0f0f0",fieldPlaceholderColor:"#6b6b8a",fieldFontFamily:"",fieldFontSize:"14px",fieldFontStyle:"",fieldFontWeight:"",fieldMarginBottom:"18px",fieldFocusBorderColor:"#7c3aed",buttonBackgroundColor:"#7c3aed",buttonTextColor:"#ffffff",buttonBorderColor:"",buttonBorderWidth:"0px",buttonBorderRadius:"6px",buttonFontSize:"14px",buttonFontFamily:"",buttonFontStyle:"",buttonFontWeight:"",buttonPaddingV:"12px",buttonPaddingH:"24px",uploadButtonBackgroundColor:"#2a2a3e",uploadButtonTextColor:"#e0e0e0",uploadButtonBorderColor:"#3d3d5c",uploadButtonBorderWidth:"1px",uploadButtonBorderRadius:"6px",uploadButtonFontSize:"13px",uploadButtonFontFamily:"",uploadButtonFontStyle:"",uploadButtonFontWeight:"",uploadButtonPaddingV:"8px",uploadButtonPaddingH:"16px",errorMessageColor:"#f87171",successMessageColor:"#34d399"}},{id:"colorful",label:"Colorful",description:"Vibrant purple accent",preview:{bg:"#fdf4ff",border:"#c084fc",button:"#9333ea",text:"#4a044e"},attributes:{activeTemplate:"colorful",style:{color:{}},labelFontSize:"14px",labelColor:"#7e22ce",labelFontWeight:"600",labelFontFamily:"",labelFontStyle:"",helpTextColor:"#a855f7",helpTextFontFamily:"",helpTextFontSize:"12px",helpTextFontStyle:"",helpTextFontWeight:"",fieldBorder:{color:"#c084fc",style:"solid",width:"2px"},fieldBorderRadius:"8px",fieldPaddingV:"10px",fieldPaddingH:"14px",fieldBackgroundColor:"#fdf4ff",fieldTextColor:"#4a044e",fieldPlaceholderColor:"#d8b4fe",fieldFontFamily:"",fieldFontSize:"14px",fieldFontStyle:"",fieldFontWeight:"",fieldMarginBottom:"20px",fieldFocusBorderColor:"#7e22ce",buttonBackgroundColor:"#9333ea",buttonTextColor:"#ffffff",buttonBorderColor:"",buttonBorderWidth:"0px",buttonBorderRadius:"8px",buttonFontSize:"15px",buttonFontFamily:"",buttonFontStyle:"",buttonFontWeight:"",buttonPaddingV:"12px",buttonPaddingH:"28px",uploadButtonBackgroundColor:"#f3e8ff",uploadButtonTextColor:"#7e22ce",uploadButtonBorderColor:"#c084fc",uploadButtonBorderWidth:"2px",uploadButtonBorderRadius:"8px",uploadButtonFontSize:"13px",uploadButtonFontFamily:"",uploadButtonFontStyle:"",uploadButtonFontWeight:"",uploadButtonPaddingV:"8px",uploadButtonPaddingH:"16px",errorMessageColor:"#be123c",successMessageColor:"#16a34a"}},{id:"minimal",label:"Minimal",description:"Borderless fields, understated",preview:{bg:"#ffffff",border:"#e5e5e5",button:"#111111",text:"#111111"},attributes:{activeTemplate:"minimal",style:{color:{}},labelFontSize:"13px",labelColor:"#555555",labelFontWeight:"normal",labelFontFamily:"",labelFontStyle:"",helpTextColor:"#999999",helpTextFontFamily:"",helpTextFontSize:"11px",helpTextFontStyle:"",helpTextFontWeight:"",fieldBorder:{color:"#dddddd",style:"solid",width:"1px"},fieldBorderRadius:"0px",fieldPaddingV:"8px",fieldPaddingH:"4px",fieldBackgroundColor:"#ffffff",fieldTextColor:"#111111",fieldPlaceholderColor:"#cccccc",fieldFontFamily:"",fieldFontSize:"13px",fieldFontStyle:"",fieldFontWeight:"",fieldMarginBottom:"20px",fieldFocusBorderColor:"#111111",buttonBackgroundColor:"#111111",buttonTextColor:"#ffffff",buttonBorderColor:"",buttonBorderWidth:"0px",buttonBorderRadius:"2px",buttonFontSize:"13px",buttonFontFamily:"",buttonFontStyle:"",buttonFontWeight:"",buttonPaddingV:"10px",buttonPaddingH:"24px",uploadButtonBackgroundColor:"#ffffff",uploadButtonTextColor:"#555555",uploadButtonBorderColor:"#e5e5e5",uploadButtonBorderWidth:"0px",uploadButtonBorderRadius:"0px",uploadButtonFontSize:"13px",uploadButtonFontFamily:"",uploadButtonFontStyle:"",uploadButtonFontWeight:"",uploadButtonPaddingV:"8px",uploadButtonPaddingH:"4px",errorMessageColor:"#cc0000",successMessageColor:"#008000"}},{id:"bold",label:"Bold",description:"Strong borders, high contrast",preview:{bg:"#ffffff",border:"#000000",button:"#f59e0b",text:"#000000"},attributes:{activeTemplate:"bold",style:{color:{}},labelFontSize:"15px",labelColor:"#000000",labelFontWeight:"700",labelFontFamily:"",labelFontStyle:"",helpTextColor:"#555555",helpTextFontFamily:"",helpTextFontSize:"13px",helpTextFontStyle:"",helpTextFontWeight:"",fieldBorder:{color:"#000000",style:"solid",width:"2px"},fieldBorderRadius:"0px",fieldPaddingV:"10px",fieldPaddingH:"14px",fieldBackgroundColor:"#ffffff",fieldTextColor:"#000000",fieldPlaceholderColor:"#999999",fieldFontFamily:"",fieldFontSize:"15px",fieldFontStyle:"",fieldFontWeight:"",fieldMarginBottom:"20px",fieldFocusBorderColor:"#f59e0b",buttonBackgroundColor:"#f59e0b",buttonTextColor:"#000000",buttonBorderColor:"#000000",buttonBorderWidth:"2px",buttonBorderRadius:"0px",buttonFontSize:"15px",buttonFontFamily:"",buttonFontStyle:"",buttonFontWeight:"",buttonPaddingV:"12px",buttonPaddingH:"28px",uploadButtonBackgroundColor:"#ffffff",uploadButtonTextColor:"#000000",uploadButtonBorderColor:"#000000",uploadButtonBorderWidth:"2px",uploadButtonBorderRadius:"0px",uploadButtonFontSize:"13px",uploadButtonFontFamily:"",uploadButtonFontStyle:"",uploadButtonFontWeight:"",uploadButtonPaddingV:"8px",uploadButtonPaddingH:"16px",errorMessageColor:"#cc0000",successMessageColor:"#166534"}}],f=window.ReactJSXRuntime,x=[{value:"px",label:"px",default:14},{value:"em",label:"em",default:1},{value:"rem",label:"rem",default:1}],c=[{value:"px",label:"px",default:8},{value:"em",label:"em",default:.5},{value:"rem",label:"rem",default:.5},{value:"%",label:"%",default:5}],g=[{value:"px",label:"px",default:1},{value:"em",label:"em",default:.1},{value:"rem",label:"rem",default:.1}],b=[{value:"px",label:"px",default:4},{value:"em",label:"em",default:.25},{value:"rem",label:"rem",default:.25},{value:"%",label:"%",default:5}];function F(e,t){if(!e||!t?.length)return[];const o=t.find(t=>t.fontFamily===e);return o?.fontFace||[]}function _({template:e,isActive:t,onSelect:o}){const{preview:l,attributes:n}=e;return(0,f.jsxs)("button",{type:"button",className:"wpuf-pf-template-card"+(t?" is-active":""),onClick:()=>o(e),"aria-pressed":t,children:[(0,f.jsx)("span",{className:"wpuf-pf-template-card__badge",children:"✓"}),(0,f.jsxs)("div",{className:"wpuf-pf-template-preview",style:{background:l.bg},children:[(0,f.jsxs)("div",{className:"wpuf-pf-template-preview__row",children:[(0,f.jsx)("div",{className:"wpuf-pf-template-preview__label",style:{background:l.text}}),(0,f.jsx)("div",{className:"wpuf-pf-template-preview__input",style:{background:n.fieldBackgroundColor||l.bg,borderColor:l.border,borderWidth:n.fieldBorder?.width||"1px",borderRadius:n.fieldBorderRadius}})]}),(0,f.jsxs)("div",{className:"wpuf-pf-template-preview__row",children:[(0,f.jsx)("div",{className:"wpuf-pf-template-preview__label",style:{background:l.text}}),(0,f.jsx)("div",{className:"wpuf-pf-template-preview__input",style:{background:n.fieldBackgroundColor||l.bg,borderColor:l.border,borderWidth:n.fieldBorder?.width||"1px",borderRadius:n.fieldBorderRadius}})]}),(0,f.jsx)("div",{className:"wpuf-pf-template-preview__button",style:{background:l.button,borderRadius:n.buttonBorderRadius}})]}),(0,f.jsxs)("div",{className:"wpuf-pf-template-card__info",children:[(0,f.jsx)("p",{className:"wpuf-pf-template-card__label",children:e.label}),(0,f.jsx)("p",{className:"wpuf-pf-template-card__desc",children:e.description})]})]})}(0,t.registerBlockType)(o.UU,{edit:function({attributes:e,setAttributes:t}){const{blockId:o,formId:i,activeTemplate:B,labelPosition:h,labelFontSize:m,labelColor:C,labelFontWeight:y,labelFontFamily:S,labelFontStyle:w,helpTextColor:v,helpTextFontFamily:P,helpTextFontSize:T,helpTextFontStyle:j,helpTextFontWeight:W,fieldBorder:z,fieldBorderRadius:k,fieldPaddingV:R,fieldPaddingH:U,fieldBackgroundColor:H,fieldTextColor:V,fieldPlaceholderColor:N,fieldFontFamily:M,fieldFontSize:O,fieldFontStyle:D,fieldFontWeight:A,fieldMarginBottom:I,fieldFocusBorderColor:E,buttonBackgroundColor:G,buttonTextColor:L,buttonFontFamily:J,buttonFontStyle:X,buttonFontWeight:q,buttonBorderWidth:K,buttonBorderRadius:Q,buttonFontSize:Y,buttonPaddingV:Z,buttonPaddingH:$,uploadButtonBackgroundColor:ee,uploadButtonTextColor:te,uploadButtonFontFamily:oe,uploadButtonFontStyle:le,uploadButtonFontWeight:ne,uploadButtonBorderColor:re,uploadButtonBorderWidth:ae,uploadButtonBorderRadius:de,uploadButtonFontSize:ie,uploadButtonPaddingV:ue,uploadButtonPaddingH:se,msButtonBackgroundColor:pe,msButtonTextColor:fe,msButtonFontFamily:xe,msButtonFontStyle:ce,msButtonFontWeight:ge,msButtonBorderColor:be,msButtonBorderWidth:Fe,msButtonBorderRadius:_e,msButtonFontSize:Be,msButtonPaddingV:he,msButtonPaddingH:me,msActiveBgColor:Ce,msActiveTextColor:ye,msInactiveBgColor:Se}=e,we=(0,l.useBlockProps)(),{createNotice:ve}=(0,a.useDispatch)(d.store),Pe=function(){const[e]=(0,l.useSettings)("typography.fontFamilies");return e?[...e?.default||[],...e?.theme||[],...e?.custom||[]]:[]}(),Te=F(S,Pe),je=F(M,Pe),We=F(P,Pe),ze=F(J,Pe),ke=F(oe,Pe),Re=F(xe,Pe);(0,n.useEffect)(()=>{o||t({blockId:"wpuf-pf-"+Math.random().toString(36).slice(2,9)})},[]);const[Ue,He]=(0,n.useState)(!1),Ve=(0,n.useRef)(null),Ne=(0,n.useRef)(!0);(0,n.useEffect)(()=>{if(!Ne.current)return Ve.current&&clearTimeout(Ve.current),Ve.current=setTimeout(()=>{He(!0)},150),()=>clearTimeout(Ve.current);Ne.current=!1},[e]);const Me=(0,n.useRef)(null),Oe=(0,n.useCallback)(o=>{if(o.id===B)return;const l={...e};Me.current=l,t(o.attributes),ve("info",o.label+" "+(0,s.__)("template applied.","wp-user-frontend"),{type:"snackbar",isDismissible:!0,actions:[{label:(0,s.__)("Undo","wp-user-frontend"),onClick:()=>{Me.current&&(t(Me.current),Me.current=null)}}]})},[B,e,t,ve]),De=(window.wpufPostForm||{}).forms||[],Ae=[{value:"0",label:(0,s.__)("— Select a post form —","wp-user-frontend")},...De.map(e=>({value:String(e.id),label:e.title}))],Ie=De.find(e=>e.id===i),Ee=Ie?.is_multistep||!1;return(0,f.jsxs)("div",{...we,children:[(0,f.jsx)(l.InspectorControls,{children:(0,f.jsx)(r.PanelBody,{title:(0,s.__)("Form Settings","wp-user-frontend"),initialOpen:!0,children:(0,f.jsx)(r.SelectControl,{label:(0,s.__)("Post Form","wp-user-frontend"),value:String(i||0),options:Ae,onChange:e=>{t({formId:parseInt(e,10)})},help:(0,s.__)("Select the post form to display.","wp-user-frontend")})})}),(0,f.jsxs)(l.InspectorControls,{group:"styles",children:[(0,f.jsx)(r.PanelBody,{title:(0,s.__)("Templates","wp-user-frontend"),initialOpen:!0,children:(0,f.jsx)("div",{className:"wpuf-pf-templates",children:p.map(e=>(0,f.jsx)(_,{template:e,isActive:B===e.id,onSelect:Oe},e.id))})}),(0,f.jsxs)(r.PanelBody,{title:(0,s.__)("Label Styles","wp-user-frontend"),initialOpen:!1,children:[(0,f.jsx)(l.__experimentalFontFamilyControl,{__next40pxDefaultSize:!0,fontFamilies:Pe,value:S,onChange:e=>t({labelFontFamily:e})}),(0,f.jsx)(l.__experimentalFontAppearanceControl,{__next40pxDefaultSize:!0,value:{fontStyle:w,fontWeight:y},onChange:({fontStyle:e,fontWeight:o})=>t({labelFontStyle:e,labelFontWeight:o}),fontFamilyFaces:Te,hasFontStyles:!0,hasFontWeights:!0}),(0,f.jsxs)(r.__experimentalToggleGroupControl,{label:(0,s.__)("Label Position","wp-user-frontend"),value:h,className:"wpuf-mt-2",onChange:e=>t({labelPosition:e}),isBlock:!0,children:[(0,f.jsx)(r.__experimentalToggleGroupControlOption,{value:"above",label:(0,s.__)("Above","wp-user-frontend")}),(0,f.jsx)(r.__experimentalToggleGroupControlOption,{value:"left",label:(0,s.__)("Left","wp-user-frontend")}),(0,f.jsx)(r.__experimentalToggleGroupControlOption,{value:"right",label:(0,s.__)("Right","wp-user-frontend")}),(0,f.jsx)(r.__experimentalToggleGroupControlOption,{value:"hidden",label:(0,s.__)("Hidden","wp-user-frontend")})]}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Font Size","wp-user-frontend"),value:m,onChange:e=>t({labelFontSize:e}),units:x})]}),(0,f.jsxs)(r.PanelBody,{title:(0,s.__)("Field Styles","wp-user-frontend"),initialOpen:!1,children:[(0,f.jsx)(l.__experimentalFontFamilyControl,{__next40pxDefaultSize:!0,fontFamilies:Pe,value:M,onChange:e=>t({fieldFontFamily:e})}),(0,f.jsx)(l.__experimentalFontAppearanceControl,{__next40pxDefaultSize:!0,value:{fontStyle:D,fontWeight:A},onChange:({fontStyle:e,fontWeight:o})=>t({fieldFontStyle:e,fieldFontWeight:o}),fontFamilyFaces:je,hasFontStyles:!0,hasFontWeights:!0}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Font Size","wp-user-frontend"),value:O,onChange:e=>t({fieldFontSize:e}),units:x}),(0,f.jsx)(r.BorderBoxControl,{__next40pxDefaultSize:!0,label:(0,s.__)("Border","wp-user-frontend"),value:z,onChange:e=>t({fieldBorder:e||{}})}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Radius","wp-user-frontend"),value:k,onChange:e=>t({fieldBorderRadius:e}),units:b}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Vertical","wp-user-frontend"),value:R,onChange:e=>t({fieldPaddingV:e}),units:c}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Horizontal","wp-user-frontend"),value:U,onChange:e=>t({fieldPaddingH:e}),units:c}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Margin Bottom","wp-user-frontend"),value:I,onChange:e=>t({fieldMarginBottom:e}),units:c})]}),(0,f.jsxs)(r.PanelBody,{title:(0,s.__)("Help Text Styles","wp-user-frontend"),initialOpen:!1,children:[(0,f.jsx)(l.__experimentalFontFamilyControl,{__next40pxDefaultSize:!0,fontFamilies:Pe,value:P,onChange:e=>t({helpTextFontFamily:e})}),(0,f.jsx)(l.__experimentalFontAppearanceControl,{__next40pxDefaultSize:!0,value:{fontStyle:j,fontWeight:W},onChange:({fontStyle:e,fontWeight:o})=>t({helpTextFontStyle:e,helpTextFontWeight:o}),fontFamilyFaces:We,hasFontStyles:!0,hasFontWeights:!0}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Font Size","wp-user-frontend"),value:T,onChange:e=>t({helpTextFontSize:e}),units:x})]}),(0,f.jsxs)(r.PanelBody,{title:(0,s.__)("Button Styles","wp-user-frontend"),initialOpen:!1,children:[(0,f.jsx)(l.__experimentalFontFamilyControl,{__next40pxDefaultSize:!0,fontFamilies:Pe,value:J,onChange:e=>t({buttonFontFamily:e})}),(0,f.jsx)(l.__experimentalFontAppearanceControl,{__next40pxDefaultSize:!0,value:{fontStyle:X,fontWeight:q},onChange:({fontStyle:e,fontWeight:o})=>t({buttonFontStyle:e,buttonFontWeight:o}),fontFamilyFaces:ze,hasFontStyles:!0,hasFontWeights:!0}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Font Size","wp-user-frontend"),value:Y,onChange:e=>t({buttonFontSize:e}),units:x}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Width","wp-user-frontend"),value:K,onChange:e=>t({buttonBorderWidth:e}),units:g}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Radius","wp-user-frontend"),value:Q,onChange:e=>t({buttonBorderRadius:e}),units:b}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Vertical","wp-user-frontend"),value:Z,onChange:e=>t({buttonPaddingV:e}),units:c}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Horizontal","wp-user-frontend"),value:$,onChange:e=>t({buttonPaddingH:e}),units:c})]}),(0,f.jsxs)(r.PanelBody,{title:(0,s.__)("Upload Button Styles","wp-user-frontend"),initialOpen:!1,children:[(0,f.jsx)(l.__experimentalFontFamilyControl,{__next40pxDefaultSize:!0,fontFamilies:Pe,value:oe,onChange:e=>t({uploadButtonFontFamily:e})}),(0,f.jsx)(l.__experimentalFontAppearanceControl,{__next40pxDefaultSize:!0,value:{fontStyle:le,fontWeight:ne},onChange:({fontStyle:e,fontWeight:o})=>t({uploadButtonFontStyle:e,uploadButtonFontWeight:o}),fontFamilyFaces:ke,hasFontStyles:!0,hasFontWeights:!0}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Font Size","wp-user-frontend"),value:ie,onChange:e=>t({uploadButtonFontSize:e}),units:x}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Width","wp-user-frontend"),value:ae,onChange:e=>t({uploadButtonBorderWidth:e}),units:g}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Radius","wp-user-frontend"),value:de,onChange:e=>t({uploadButtonBorderRadius:e}),units:b}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Vertical","wp-user-frontend"),value:ue,onChange:e=>t({uploadButtonPaddingV:e}),units:c}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Horizontal","wp-user-frontend"),value:se,onChange:e=>t({uploadButtonPaddingH:e}),units:c})]}),(0,f.jsx)(l.PanelColorSettings,{title:(0,s.__)("Colors","wp-user-frontend"),initialOpen:!1,colorSettings:[{value:C,onChange:e=>t({labelColor:e||""}),label:(0,s.__)("Label","wp-user-frontend")},{value:v,onChange:e=>t({helpTextColor:e||""}),label:(0,s.__)("Help Text","wp-user-frontend")},{value:E,onChange:e=>t({fieldFocusBorderColor:e||""}),label:(0,s.__)("Field Focus Border","wp-user-frontend")},{value:H,onChange:e=>t({fieldBackgroundColor:e||""}),label:(0,s.__)("Field Background","wp-user-frontend")},{value:V,onChange:e=>t({fieldTextColor:e||""}),label:(0,s.__)("Field Text","wp-user-frontend")},{value:N,onChange:e=>t({fieldPlaceholderColor:e||""}),label:(0,s.__)("Placeholder","wp-user-frontend")},{value:G,onChange:e=>t({buttonBackgroundColor:e||""}),label:(0,s.__)("Button Background","wp-user-frontend")},{value:L,onChange:e=>t({buttonTextColor:e||""}),label:(0,s.__)("Button Text","wp-user-frontend")},{value:ee,onChange:e=>t({uploadButtonBackgroundColor:e||""}),label:(0,s.__)("Upload Button Background","wp-user-frontend")},{value:te,onChange:e=>t({uploadButtonTextColor:e||""}),label:(0,s.__)("Upload Button Text","wp-user-frontend")},{value:re,onChange:e=>t({uploadButtonBorderColor:e||""}),label:(0,s.__)("Upload Button Border","wp-user-frontend")}]}),Ee&&(0,f.jsxs)(r.PanelBody,{title:(0,s.__)("Prev / Next Button Styles","wp-user-frontend"),initialOpen:!1,children:[(0,f.jsx)(l.__experimentalFontFamilyControl,{__next40pxDefaultSize:!0,fontFamilies:Pe,value:xe,onChange:e=>t({msButtonFontFamily:e})}),(0,f.jsx)(l.__experimentalFontAppearanceControl,{__next40pxDefaultSize:!0,value:{fontStyle:ce,fontWeight:ge},onChange:({fontStyle:e,fontWeight:o})=>t({msButtonFontStyle:e,msButtonFontWeight:o}),fontFamilyFaces:Re,hasFontStyles:!0,hasFontWeights:!0}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Font Size","wp-user-frontend"),value:Be,onChange:e=>t({msButtonFontSize:e}),units:x}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Width","wp-user-frontend"),value:Fe,onChange:e=>t({msButtonBorderWidth:e}),units:g}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Border Radius","wp-user-frontend"),value:_e,onChange:e=>t({msButtonBorderRadius:e}),units:b}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Vertical","wp-user-frontend"),value:he,onChange:e=>t({msButtonPaddingV:e}),units:c}),(0,f.jsx)(r.__experimentalUnitControl,{label:(0,s.__)("Padding Horizontal","wp-user-frontend"),value:me,onChange:e=>t({msButtonPaddingH:e}),units:c})]}),Ee&&(0,f.jsx)(l.PanelColorSettings,{title:(0,s.__)("Multistep Colors","wp-user-frontend"),initialOpen:!1,colorSettings:[{value:Ce,onChange:e=>t({msActiveBgColor:e||""}),label:(0,s.__)("Active Step Background","wp-user-frontend")},{value:ye,onChange:e=>t({msActiveTextColor:e||""}),label:(0,s.__)("Active Step Text","wp-user-frontend")},{value:Se,onChange:e=>t({msInactiveBgColor:e||""}),label:(0,s.__)("Inactive Step Background","wp-user-frontend")},{value:pe,onChange:e=>t({msButtonBackgroundColor:e||""}),label:(0,s.__)("Prev / Next Button Background","wp-user-frontend")},{value:fe,onChange:e=>t({msButtonTextColor:e||""}),label:(0,s.__)("Prev / Next Button Text","wp-user-frontend")},{value:be,onChange:e=>t({msButtonBorderColor:e||""}),label:(0,s.__)("Prev / Next Button Border","wp-user-frontend")}]})]}),(0,f.jsx)("div",{style:{position:"relative"},children:i?(0,f.jsxs)(f.Fragment,{children:[Ue&&(0,f.jsxs)("div",{className:"wpuf-ssr-loading-overlay",children:[(0,f.jsx)("div",{className:"wpuf-ssr-loading"}),(0,f.jsx)("p",{style:{marginTop:"12px",fontSize:"13px"},children:(0,s.__)("Updating preview…","wp-user-frontend")})]}),(0,f.jsx)(u(),{block:"wpuf/post-form",attributes:e,LoadingResponsePlaceholder:()=>((0,n.useEffect)(()=>()=>{He(!1)},[]),null),EmptyResponsePlaceholder:()=>(console.warn("[WPUF PostForm] SSR returned empty response",{formId:i}),(0,f.jsx)("p",{style:{padding:"12px",background:"#fff3cd",border:"1px solid #ffeeba"},children:(0,s.__)("SSR returned an empty response. Check the PHP error log.","wp-user-frontend")})),ErrorResponsePlaceholder:({response:e})=>(console.error("[WPUF PostForm] SSR error response",e),(0,f.jsxs)("p",{style:{padding:"12px",background:"#f8d7da",border:"1px solid #f5c6cb"},children:[(0,s.__)("SSR error: ","wp-user-frontend"),e?.errorMsg||JSON.stringify(e)]}))})]}):(0,f.jsx)("p",{style:{padding:"12px",textAlign:"center",color:"#757575"},children:(0,s.__)("Please select a post form to display.","wp-user-frontend")})})]})},save:function(){return null}})})(); \ No newline at end of file diff --git a/assets/js/blocks/post-form.js.map b/assets/js/blocks/post-form.js.map new file mode 100644 index 000000000..f439608c9 --- /dev/null +++ b/assets/js/blocks/post-form.js.map @@ -0,0 +1 @@ +{"version":3,"file":"post-form.js","mappings":"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","sources":["webpack://wp-user-frontend/./src/js/blocks/post-form/edit.js","webpack://wp-user-frontend/./src/js/blocks/post-form/save.js","webpack://wp-user-frontend/./src/js/blocks/post-form/templates.js","webpack://wp-user-frontend/./src/js/blocks/post-form/editor.css","webpack://wp-user-frontend/external window \"ReactJSXRuntime\"","webpack://wp-user-frontend/external window [\"wp\",\"blockEditor\"]","webpack://wp-user-frontend/external window [\"wp\",\"blocks\"]","webpack://wp-user-frontend/external window [\"wp\",\"components\"]","webpack://wp-user-frontend/external window [\"wp\",\"data\"]","webpack://wp-user-frontend/external window [\"wp\",\"element\"]","webpack://wp-user-frontend/external window [\"wp\",\"i18n\"]","webpack://wp-user-frontend/external window [\"wp\",\"notices\"]","webpack://wp-user-frontend/external window [\"wp\",\"serverSideRender\"]","webpack://wp-user-frontend/webpack/bootstrap","webpack://wp-user-frontend/webpack/runtime/compat get default export","webpack://wp-user-frontend/webpack/runtime/define property getters","webpack://wp-user-frontend/webpack/runtime/hasOwnProperty shorthand","webpack://wp-user-frontend/webpack/runtime/make namespace object","webpack://wp-user-frontend/./src/js/blocks/post-form/index.js"],"sourcesContent":["// DESCRIPTION: Editor component for the post form block in wp-user-frontend.\n// Content settings in default InspectorControls, style controls in InspectorControls group=\"styles\".\n\nimport {\n InspectorControls,\n PanelColorSettings,\n useBlockProps,\n useSettings,\n __experimentalFontFamilyControl as FontFamilyControl,\n __experimentalFontAppearanceControl as FontAppearanceControl,\n} from '@wordpress/block-editor';\nimport { useState, useEffect, useRef, useCallback } from '@wordpress/element';\nimport {\n PanelBody,\n SelectControl,\n BorderBoxControl,\n __experimentalUnitControl as UnitControl,\n __experimentalToggleGroupControl as ToggleGroupControl,\n __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { __ } from '@wordpress/i18n';\nimport { TEMPLATES } from './templates';\n\nconst FONT_SIZE_UNITS = [\n { value: 'px', label: 'px', default: 14 },\n { value: 'em', label: 'em', default: 1 },\n { value: 'rem', label: 'rem', default: 1 },\n];\n\nconst SPACING_UNITS = [\n { value: 'px', label: 'px', default: 8 },\n { value: 'em', label: 'em', default: 0.5 },\n { value: 'rem', label: 'rem', default: 0.5 },\n { value: '%', label: '%', default: 5 },\n];\n\nconst BORDER_WIDTH_UNITS = [\n { value: 'px', label: 'px', default: 1 },\n { value: 'em', label: 'em', default: 0.1 },\n { value: 'rem', label: 'rem', default: 0.1 },\n];\n\nconst BORDER_RADIUS_UNITS = [\n { value: 'px', label: 'px', default: 4 },\n { value: 'em', label: 'em', default: 0.25 },\n { value: 'rem', label: 'rem', default: 0.25 },\n { value: '%', label: '%', default: 5 },\n];\n\n/**\n * Get the merged flat array of font families from theme settings.\n *\n * useSettings('typography.fontFamilies') returns an object with\n * { default, theme, custom } keys. FontFamilyControl expects a\n * flat array, so we merge all sources here.\n *\n * @returns {Array} Flat array of font family objects\n */\nfunction useMergedFontFamilies() {\n const [ fontFamilies ] = useSettings( 'typography.fontFamilies' );\n\n if ( ! fontFamilies ) {\n return [];\n }\n\n return [\n ...( fontFamilies?.default || [] ),\n ...( fontFamilies?.theme || [] ),\n ...( fontFamilies?.custom || [] ),\n ];\n}\n\n/**\n * Get the fontFace array for a given font-family value from theme settings.\n *\n * @param {string} fontFamily The selected font-family CSS value\n * @param {Array} mergedFontFamilies Pre-merged flat array from useMergedFontFamilies\n *\n * @returns {Array} Array of font face objects for the selected family\n */\nfunction getFontFamilyFaces( fontFamily, mergedFontFamilies ) {\n if ( ! fontFamily || ! mergedFontFamilies?.length ) {\n return [];\n }\n\n const match = mergedFontFamilies.find( ( f ) => f.fontFamily === fontFamily );\n\n return match?.fontFace || [];\n}\n\n/**\n * Generate a short random string for block scoping.\n *\n * @returns {string}\n */\nfunction generateBlockId() {\n return 'wpuf-pf-' + Math.random().toString(36).slice(2, 9);\n}\n\n/**\n * Template picker card with realistic form mini-preview.\n * Shows a label bar, input field, and button using the template's actual colors.\n */\nfunction TemplateCard({ template, isActive, onSelect }) {\n const { preview, attributes: tplAttrs } = template;\n return (\n \n );\n}\n\nexport default function Edit({ attributes, setAttributes }) {\n const {\n blockId,\n formId,\n activeTemplate,\n labelPosition,\n labelFontSize,\n labelColor,\n labelFontWeight,\n labelFontFamily,\n labelFontStyle,\n helpTextColor,\n helpTextFontFamily,\n helpTextFontSize,\n helpTextFontStyle,\n helpTextFontWeight,\n fieldBorder,\n fieldBorderRadius,\n fieldPaddingV,\n fieldPaddingH,\n fieldBackgroundColor,\n fieldTextColor,\n fieldPlaceholderColor,\n fieldFontFamily,\n fieldFontSize,\n fieldFontStyle,\n fieldFontWeight,\n fieldMarginBottom,\n fieldFocusBorderColor,\n buttonBackgroundColor,\n buttonTextColor,\n buttonFontFamily,\n buttonFontStyle,\n buttonFontWeight,\n buttonBorderWidth,\n buttonBorderRadius,\n buttonFontSize,\n buttonPaddingV,\n buttonPaddingH,\n uploadButtonBackgroundColor,\n uploadButtonTextColor,\n uploadButtonFontFamily,\n uploadButtonFontStyle,\n uploadButtonFontWeight,\n uploadButtonBorderColor,\n uploadButtonBorderWidth,\n uploadButtonBorderRadius,\n uploadButtonFontSize,\n uploadButtonPaddingV,\n uploadButtonPaddingH,\n msButtonBackgroundColor,\n msButtonTextColor,\n msButtonFontFamily,\n msButtonFontStyle,\n msButtonFontWeight,\n msButtonBorderColor,\n msButtonBorderWidth,\n msButtonBorderRadius,\n msButtonFontSize,\n msButtonPaddingV,\n msButtonPaddingH,\n msActiveBgColor,\n msActiveTextColor,\n msInactiveBgColor,\n } = attributes;\n\n const blockProps = useBlockProps();\n const { createNotice } = useDispatch(noticesStore);\n\n const mergedFontFamilies = useMergedFontFamilies();\n const labelFontFaces = getFontFamilyFaces( labelFontFamily, mergedFontFamilies );\n const fieldFontFaces = getFontFamilyFaces( fieldFontFamily, mergedFontFamilies );\n const helpTextFontFaces = getFontFamilyFaces( helpTextFontFamily, mergedFontFamilies );\n const buttonFontFaces = getFontFamilyFaces( buttonFontFamily, mergedFontFamilies );\n const uploadButtonFontFaces = getFontFamilyFaces( uploadButtonFontFamily, mergedFontFamilies );\n const msButtonFontFaces = getFontFamilyFaces( msButtonFontFamily, mergedFontFamilies );\n\n // Assign blockId once on first insert\n useEffect(() => {\n if (!blockId) {\n setAttributes({ blockId: generateBlockId() });\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n // SSR loading overlay state\n const [isUpdating, setIsUpdating] = useState(false);\n const debounceTimerRef = useRef(null);\n const isFirstRender = useRef(true);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n debounceTimerRef.current = setTimeout(() => {\n setIsUpdating(true);\n }, 150);\n return () => clearTimeout(debounceTimerRef.current);\n }, [attributes]);\n\n // Store previous attributes for undo\n const prevAttrsRef = useRef(null);\n\n const handleTemplateSelect = useCallback(\n (template) => {\n if (template.id === activeTemplate) {\n return;\n }\n\n // Save current state for undo\n const snapshot = { ...attributes };\n prevAttrsRef.current = snapshot;\n\n // Apply immediately\n setAttributes(template.attributes);\n\n // Show snackbar with undo\n createNotice(\n 'info',\n template.label + ' ' + __('template applied.', 'wp-user-frontend'),\n {\n type: 'snackbar',\n isDismissible: true,\n actions: [\n {\n label: __('Undo', 'wp-user-frontend'),\n onClick: () => {\n if (prevAttrsRef.current) {\n setAttributes(prevAttrsRef.current);\n prevAttrsRef.current = null;\n }\n },\n },\n ],\n }\n );\n },\n [activeTemplate, attributes, setAttributes, createNotice]\n );\n\n const editorData = window.wpufPostForm || {};\n const forms = editorData.forms || [];\n\n // Build SelectControl options: \"Select a form\" placeholder + all post forms\n const formOptions = [\n { value: '0', label: __('— Select a post form —', 'wp-user-frontend') },\n ...forms.map((f) => ({\n value: String(f.id),\n label: f.title,\n })),\n ];\n\n const selectedForm = forms.find( ( f ) => f.id === formId );\n const isMultistep = selectedForm?.is_multistep || false;\n\n const handleFormChange = (val) => {\n setAttributes({\n formId: parseInt(val, 10),\n });\n };\n\n return (\n
\n { __( 'Please select a post form to display.', 'wp-user-frontend' ) }\n
\n ) : (\n <>\n { isUpdating && (\n\n { __( 'Updating preview…', 'wp-user-frontend' ) }\n
\n\n { __( 'SSR returned an empty response. Check the PHP error log.', 'wp-user-frontend' ) }\n
\n );\n }}\n ErrorResponsePlaceholder={({ response }) => {\n // eslint-disable-next-line no-console\n console.error( '[WPUF PostForm] SSR error response', response );\n return (\n\n { __( 'SSR error: ', 'wp-user-frontend' ) }\n { response?.errorMsg || JSON.stringify( response ) }\n
\n );\n }}\n />\n >\n ) }\n