# blockenberg/2.0.7/blocks/error-page/frontend.js

Blockenberg — 600+ Advanced Gutenberg Blocks &amp; AI Agent for WordPress Block Editor, version 2.0.7. 114 lines.

- Page: https://pluginprobe.com/plugins/blockenberg/2.0.7/code/blocks/error-page/frontend.js
- Raw: https://pluginprobe.com/plugins/blockenberg/2.0.7/raw/blocks/error-page/frontend.js
- Modified: 2026-03-06T12:32:40+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/blockenberg/2.0.7/code/blocks/error-page/frontend.js#L10-L20`.

```javascript
(function () {
    function typoCssVarsForEl(typo, prefix, el) {
        if (!typo || typeof typo !== 'object') return;
        var m = {
            family: 'font-family', weight: 'font-weight', transform: 'text-transform',
            style: 'font-style', decoration: 'text-decoration',
            sizeDesktop: 'font-size-d', sizeTablet: 'font-size-t', sizeMobile: 'font-size-m',
            lineHeightDesktop: 'line-height-d', lineHeightTablet: 'line-height-t', lineHeightMobile: 'line-height-m',
            letterSpacingDesktop: 'letter-spacing-d', letterSpacingTablet: 'letter-spacing-t', letterSpacingMobile: 'letter-spacing-m',
            wordSpacingDesktop: 'word-spacing-d', wordSpacingTablet: 'word-spacing-t', wordSpacingMobile: 'word-spacing-m'
        };
        var units = { size: 'sizeUnit', lineHeight: 'lineHeightUnit', letterSpacing: 'letterSpacingUnit', wordSpacing: 'wordSpacingUnit' };
        Object.keys(m).forEach(function (k) {
            var v = typo[k]; if (v === undefined || v === '' || v === null) return;
            var prop = prefix + m[k];
            var base = k.replace(/Desktop|Tablet|Mobile/, '');
            if (units[base] && typeof v === 'number') v = v + (typo[units[base]] || 'px');
            el.style.setProperty(prop, String(v));
        });
    }

    document.querySelectorAll('.bkbg-error-page-app').forEach(function (root) {
        var opts = {};
        try { opts = JSON.parse(root.dataset.opts || '{}'); } catch (e) {}

        var wrap = document.createElement('div');
        wrap.className = 'bkbg-error-page-wrap';
        wrap.style.cssText = 'background:' + (opts.bgColor || '#ffffff') + ';padding:' + (opts.paddingTop || 100) + 'px 40px ' + (opts.paddingBottom || 100) + 'px;';
        wrap.style.setProperty('--bkbg-ep-max', (opts.maxWidth || 700) + 'px');

        typoCssVarsForEl(opts.typoCode || {}, '--bkbg-ep-cd-', wrap);
        typoCssVarsForEl(opts.typoHeading || {}, '--bkbg-ep-hd-', wrap);
        typoCssVarsForEl(opts.typoBody || {}, '--bkbg-ep-bd-', wrap);

        var inner = document.createElement('div');
        inner.className = 'bkbg-ep-inner';

        if (opts.showImage && opts.imageUrl) {
            var illus = document.createElement('div');
            illus.className = 'bkbg-ep-illustration';
            var img = document.createElement('img');
            img.src = opts.imageUrl;
            img.alt = opts.imageAlt || '';
            img.style.width = (opts.imageWidth || 360) + 'px';
            illus.appendChild(img);
            inner.appendChild(illus);
        }

        if (opts.showError !== false && opts.errorCode) {
            var code = document.createElement('div');
            code.className = 'bkbg-ep-code';
            code.style.color = opts.errorCodeColor || '#f3f0ff';
            code.textContent = opts.errorCode;
            inner.appendChild(code);
        }

        var h1 = document.createElement('h1');
        h1.className = 'bkbg-ep-heading';
        h1.style.color = opts.headingColor || '#111827';
        h1.innerHTML = opts.heading || '';
        inner.appendChild(h1);

        var p = document.createElement('p');
        p.className = 'bkbg-ep-body';
        p.style.color = opts.textColor || '#6b7280';
        p.innerHTML = opts.subtext || '';
        inner.appendChild(p);

        if (opts.showSearch) {
            var searchDiv = document.createElement('div');
            searchDiv.className = 'bkbg-ep-search';
            var searchInput = document.createElement('input');
            searchInput.type = 'search';
            searchInput.name = 's';
            searchInput.placeholder = 'Search\u2026';
            var searchBtn = document.createElement('button');
            searchBtn.style.cssText = 'background:' + (opts.primaryBg || '#7c3aed') + ';color:' + (opts.primaryColor || '#fff') + ';';
            searchBtn.textContent = 'Search';
            searchDiv.appendChild(searchInput);
            searchDiv.appendChild(searchBtn);
            var searchForm = document.createElement('form');
            searchForm.action = '/';
            searchForm.method = 'get';
            searchForm.className = 'bkbg-ep-search';
            searchForm.appendChild(searchInput);
            searchForm.appendChild(searchBtn);
            inner.appendChild(searchForm);
        }

        var actions = document.createElement('div');
        actions.className = 'bkbg-ep-actions';

        var primary = document.createElement('a');
        primary.className = 'bkbg-ep-primary';
        primary.href = opts.primaryUrl || '/';
        primary.style.cssText = 'background:' + (opts.primaryBg || '#7c3aed') + ';color:' + (opts.primaryColor || '#fff') + ';';
        primary.textContent = '\u2190 ' + (opts.primaryLabel || 'Go to Homepage');
        actions.appendChild(primary);

        if (opts.showSecondary && opts.secondaryLabel) {
            var secondary = document.createElement('a');
            secondary.className = 'bkbg-ep-secondary';
            secondary.href = opts.secondaryUrl || '/contact';
            secondary.style.color = opts.secondaryColor || '#374151';
            secondary.textContent = opts.secondaryLabel;
            actions.appendChild(secondary);
        }

        inner.appendChild(actions);
        wrap.appendChild(inner);
        root.parentNode.replaceChild(wrap, root);
    });
})();

```
