Add bundle animation support to the editor and rendering logic

- Introduced a new 'bundleAnim' attribute in the block editor settings and PHP backend.
- Updated the editor UI to include a toggle for 'Player + Display Bundle Animation'.
- Modified the rendering logic to display the bundle animation structure when 'bundleAnim' is enabled.
- Adjusted the visual class names to accommodate the new animation type.
This commit is contained in:
Matt Batchelder
2026-04-05 20:01:08 -04:00
parent 9c40ff2f0e
commit 2548179a8d
5 changed files with 738 additions and 128 deletions

View File

@@ -606,6 +606,7 @@
visual: { type: 'string', default: '' },
reversed: { type: 'boolean', default: false },
cloudAnim: { type: 'boolean', default: false },
bundleAnim: { type: 'boolean', default: false },
imgId: { type: 'number', default: 0 },
imgUrl: { type: 'string', default: '' },
imgAlt: { type: 'string', default: '' },
@@ -647,7 +648,8 @@
el(TC, { label: 'Label', value: a.label, onChange: function (v) { s({ label: v }); } }),
el(TC, { label: 'Visual (emoji or text)', value: a.visual, onChange: function (v) { s({ visual: v }); } }),
el(TG, { label: 'Reversed layout', checked: a.reversed, onChange: function (v) { s({ reversed: v }); } }),
el(TG, { label: 'Cloud Server Animation', checked: a.cloudAnim, onChange: function (v) { s({ cloudAnim: v }); } })
el(TG, { label: 'Cloud Server Animation', checked: a.cloudAnim, onChange: function (v) { s({ cloudAnim: v }); } }),
el(TG, { label: 'Player + Display Bundle Animation', checked: !!a.bundleAnim, onChange: function (v) { s({ bundleAnim: v }); } })
),
el(PB, { title: 'Visual Image', initialOpen: false },
el(MUC, null,
@@ -681,7 +683,7 @@
el(RT, { tagName: 'h2', style: { marginBottom: '1.5rem' }, value: a.heading, onChange: function (v) { s({ heading: v }); }, placeholder: 'Heading...' }),
el(RT, { tagName: 'p', className: 'lead', value: a.description, onChange: function (v) { s({ description: v }); }, placeholder: 'Description...' })
),
el('div', { className: 'about-intro-visual' + (a.cloudAnim ? ' has-cloud-anim' : (a.imgUrl ? ' has-img' : '')), style: a.reversed ? { direction: 'ltr' } : {} }, visualContent)
el('div', { className: 'about-intro-visual' + (a.cloudAnim ? ' has-cloud-anim' : (a.bundleAnim ? ' has-pkg-anim' : (a.imgUrl ? ' has-img' : ''))), style: a.reversed ? { direction: 'ltr' } : {} }, visualContent)
)
)
)