PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.14
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.14
2.0.14 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 / assets / js / motion-editor.js

motion-editor.js in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.14, at assets/js/motion-editor.js

21 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function(){
2 'use strict';
3 var el=wp.element.createElement, C=wp.components;
4 var defs={bkbgRotate:{type:'boolean',default:false},bkbgRotateDuration:{type:'number',default:8},bkbgRotateDelay:{type:'number',default:0},bkbgEntrance:{type:'string',default:''},bkbgEntranceDuration:{type:'number',default:0.8},bkbgEntranceDelay:{type:'number',default:0},bkbgEntranceOnce:{type:'boolean',default:true},bkbgFloat:{type:'boolean',default:false},bkbgFloatX:{type:'number',default:0},bkbgFloatY:{type:'number',default:-20},bkbgFloatDuration:{type:'number',default:6},bkbgFloatDelay:{type:'number',default:0}};
5 wp.hooks.addFilter('blocks.registerBlockType','blockenberg/motion-attributes',function(s,n){if(n.indexOf('blockenberg/')===0)s.attributes=Object.assign({},s.attributes,defs);return s;});
6 window.bkbgMotionPanel=function(props){
7 var a=props.attributes,set=props.setAttributes;
8 function update(k,v){var x={};x[k]=v;set(x);}
9 function range(k,label,min,max,step){return el(C.RangeControl,{label:label,value:a[k],min:min,max:max,step:step||1,onChange:function(v){update(k,v);}});}
10 return el(C.PanelBody,{title:'Motion & Animation',initialOpen:false,className:'bkbg-adv-panel'},
11 el(C.SelectControl,{label:'Entrance animation',value:a.bkbgEntrance||'',options:[{label:'None',value:''},{label:'Fade in',value:'fadeIn'},{label:'Fade in up',value:'fadeInUp'},{label:'Fade in down',value:'fadeInDown'},{label:'Fade in left',value:'fadeInLeft'},{label:'Fade in right',value:'fadeInRight'},{label:'Zoom in',value:'zoomIn'}],onChange:function(v){update('bkbgEntrance',v);}}),
12 a.bkbgEntrance&&el(wp.element.Fragment,{},range('bkbgEntranceDuration','Entrance duration (seconds)',0.05,5,0.05),range('bkbgEntranceDelay','Entrance delay (seconds)',0,5,0.1),el(C.ToggleControl,{label:'Animate only once',checked:a.bkbgEntranceOnce,onChange:function(v){update('bkbgEntranceOnce',v);}})),
13 el(C.ToggleControl,{label:'Floating animation',checked:!!a.bkbgFloat,onChange:function(v){update('bkbgFloat',v);}}),
14 a.bkbgFloat&&el(wp.element.Fragment,{},range('bkbgFloatX','Horizontal movement (px)',-100,100),range('bkbgFloatY','Vertical movement (px)',-100,100),range('bkbgFloatDuration','Floating duration (seconds)',0.5,20,0.5),range('bkbgFloatDelay','Floating delay (seconds)',0,10,0.5)),
15 el(C.ToggleControl,{label:'Rotation animation',checked:!!a.bkbgRotate,onChange:function(v){update('bkbgRotate',v);}}),
16 a.bkbgRotate&&el(wp.element.Fragment,{},range('bkbgRotateDuration','Rotation duration (seconds)',.5,60,.5),range('bkbgRotateDelay','Rotation delay (seconds)',0,10,.5)),
17 el('p',{className:'components-base-control__help'},'Motion is disabled for visitors who prefer reduced motion. Content remains visible without JavaScript.')
18 );
19 };
20 })();
21