PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.7
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.7
2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
blockenberg / blocks / vision-mission / frontend.js

frontend.js in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.7, at blocks/vision-mission/frontend.js

178 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function () {
2 'use strict';
3
4 document.querySelectorAll('.bkbg-vms-app').forEach(function (root) {
5 var a;
6 try { a = JSON.parse(root.dataset.opts || '{}'); } catch (e) { return; }
7
8 var bg = a.bgColor || '#ffffff';
9 var ptop = a.paddingTop !== undefined ? a.paddingTop : 80;
10 var pbot = a.paddingBottom !== undefined ? a.paddingBottom : 80;
11 var maxW = a.maxWidth || 1100;
12 var isSplit = a.layout === 'split';
13 var isCards = a.layout === 'cards';
14
15 root.style.backgroundColor = bg;
16 root.style.paddingTop = ptop + 'px';
17 root.style.paddingBottom = pbot + 'px';
18
19 var inner = document.createElement('div');
20 inner.className = 'bkbg-vms-inner';
21 inner.style.maxWidth = maxW + 'px';
22
23 // === Header ===
24 var header = document.createElement('div');
25 header.style.cssText = 'text-align:center;margin-bottom:48px;';
26
27 if (a.showEyebrow !== false && a.eyebrow) {
28 var eyebrow = document.createElement('span');
29 eyebrow.className = 'bkbg-vms-eyebrow';
30 eyebrow.style.cssText = 'display:inline-block;background:' + (a.eyebrowBg || '#f3f0ff') + ';color:' + (a.eyebrowColor || '#7c3aed') + ';padding:5px 14px;border-radius:999px;margin-bottom:16px;';
31 eyebrow.textContent = a.eyebrow;
32 header.appendChild(eyebrow);
33 }
34
35 if (a.showHeading !== false && a.heading) {
36 var heading = document.createElement('h2');
37 heading.className = 'bkbg-vms-heading';
38 heading.style.cssText = 'color:' + (a.headingColor || '#111827') + ';margin:0;';
39 heading.innerHTML = a.heading;
40 header.appendChild(heading);
41 }
42
43 inner.appendChild(header);
44
45 // === Helper: build statement block ===
46 function buildStatement(opts) {
47 var block = document.createElement('div');
48 block.className = 'bkbg-vms-statement';
49 block.style.cssText = 'background:' + opts.bg + ';border-color:' + opts.border + ';';
50
51 var hdr = document.createElement('div');
52 hdr.className = 'bkbg-vms-statement-header';
53
54 var icon = document.createElement('span');
55 icon.className = 'bkbg-vms-statement-icon';
56 var _IP = window.bkbgIconPicker;
57 var _iType = opts.iconType || 'custom-char';
58 if (_IP && _iType !== 'custom-char') {
59 var _in = _IP.buildFrontendIcon(_iType, opts.icon, opts.iconDashicon, opts.iconImageUrl, opts.iconDashiconColor);
60 if (_in) icon.appendChild(_in);
61 else icon.textContent = opts.icon;
62 } else {
63 icon.textContent = opts.icon;
64 }
65 hdr.appendChild(icon);
66
67 var label = document.createElement('span');
68 label.className = 'bkbg-vms-statement-label';
69 label.style.color = opts.labelColor;
70 label.textContent = opts.label;
71 hdr.appendChild(label);
72 block.appendChild(hdr);
73
74 var text = document.createElement('p');
75 text.className = 'bkbg-vms-statement-text';
76 text.style.cssText = 'color:' + opts.textColor + ';';
77 text.innerHTML = opts.text;
78 block.appendChild(text);
79
80 return block;
81 }
82
83 // === Statements container ===
84 var statementsEl = document.createElement('div');
85 var statementsClass = 'bkbg-vms-statements--';
86 if (isSplit || isCards) statementsClass += (isCards ? 'cards' : 'split');
87 else statementsClass += 'stack';
88 statementsEl.className = statementsClass;
89
90 if (a.showMission !== false) {
91 statementsEl.appendChild(buildStatement({
92 bg: a.missionBg || '#f8f5ff',
93 border: a.missionBorder || '#7c3aed',
94 icon: a.missionIcon || '🎯',
95 iconType: a.missionIconType,
96 iconDashicon: a.missionIconDashicon,
97 iconImageUrl: a.missionIconImageUrl,
98 label: a.missionLabel || 'Our Mission',
99 labelColor: a.missionLabelColor || '#7c3aed',
100 text: a.missionText || '',
101 textColor: a.missionTextColor || '#1f2937'
102 }));
103 }
104
105 if (a.showVision !== false) {
106 statementsEl.appendChild(buildStatement({
107 bg: a.visionBg || '#eff6ff',
108 border: a.visionBorder || '#3b82f6',
109 icon: a.visionIcon || '🔭',
110 iconType: a.visionIconType,
111 iconDashicon: a.visionIconDashicon,
112 iconImageUrl: a.visionIconImageUrl,
113 label: a.visionLabel || 'Our Vision',
114 labelColor: a.visionLabelColor || '#2563eb',
115 text: a.visionText || '',
116 textColor: a.visionTextColor || '#1f2937'
117 }));
118 }
119
120 if ((a.showMission !== false) || (a.showVision !== false)) {
121 inner.appendChild(statementsEl);
122 }
123
124 // === Values ===
125 if (a.showValues !== false && a.values && a.values.length) {
126 var valuesSection = document.createElement('div');
127
128 var valuesHeading = document.createElement('h3');
129 valuesHeading.className = 'bkbg-vms-values-heading';
130 valuesHeading.style.color = a.valuesLabelColor || '#111827';
131 valuesHeading.textContent = a.valuesLabel || 'Core Values';
132 valuesSection.appendChild(valuesHeading);
133
134 var grid = document.createElement('div');
135 grid.className = 'bkbg-vms-values-grid';
136 grid.style.gridTemplateColumns = 'repeat(' + (a.valuesColumns || 3) + ', 1fr)';
137
138 a.values.forEach(function (v) {
139 var card = document.createElement('div');
140 card.className = 'bkbg-vms-value-card';
141 card.style.cssText = 'background:' + (a.valueCardBg || '#f9fafb') + ';border-color:' + (a.valueCardBorder || '#e5e7eb') + ';';
142
143 var iconEl = document.createElement('span');
144 iconEl.className = 'bkbg-vms-value-icon';
145 var _IP = window.bkbgIconPicker;
146 var _iType = v.iconType || 'custom-char';
147 if (_IP && _iType !== 'custom-char') {
148 var _in = _IP.buildFrontendIcon(_iType, v.icon, v.iconDashicon, v.iconImageUrl, v.iconDashiconColor);
149 if (_in) iconEl.appendChild(_in);
150 else iconEl.textContent = v.icon;
151 } else {
152 iconEl.textContent = v.icon;
153 }
154 card.appendChild(iconEl);
155
156 var titleEl = document.createElement('h4');
157 titleEl.className = 'bkbg-vms-value-title';
158 titleEl.style.color = a.valueTitleColor || '#111827';
159 titleEl.innerHTML = v.title;
160 card.appendChild(titleEl);
161
162 var descEl = document.createElement('p');
163 descEl.className = 'bkbg-vms-value-desc';
164 descEl.style.color = a.valueDescColor || '#6b7280';
165 descEl.innerHTML = v.description;
166 card.appendChild(descEl);
167
168 grid.appendChild(card);
169 });
170
171 valuesSection.appendChild(grid);
172 inner.appendChild(valuesSection);
173 }
174
175 root.appendChild(inner);
176 });
177 })();
178