/* global wp */ (function () { 'use strict'; const { registerBlockType } = wp.blocks; const { createElement: el } = wp.element; const { useBlockProps } = wp.blockEditor; const ServerSideRender = wp.serverSideRender; const { __ } = wp.i18n; const blocks = [ { name: 'us-scheduler/booking', title: __('Lesson Booking', 'unsupervised-schedular'), description: __('Lets students browse availability and book lessons. Shows a styled preview in the editor.', 'unsupervised-schedular'), icon: 'calendar-alt', keywords: ['booking', 'lesson', 'schedule'], shortcode: 'us_booking', }, { name: 'us-scheduler/student-login', title: __('Student Login', 'unsupervised-schedular'), description: __('The front-end login form for students.', 'unsupervised-schedular'), icon: 'admin-users', keywords: ['login', 'student', 'sign in'], shortcode: 'us_student_login', }, { name: 'us-scheduler/student-register', title: __('Student Registration', 'unsupervised-schedular'), description: __('The invite-only student registration form.', 'unsupervised-schedular'), icon: 'welcome-add-page', keywords: ['register', 'student', 'invite'], shortcode: 'us_student_register', }, { name: 'us-scheduler/group-classes', title: __('Group Classes', 'unsupervised-schedular'), description: __('Lets students browse and enrol in group classes. Shows a styled preview in the editor.', 'unsupervised-schedular'), icon: 'groups', keywords: ['group', 'class', 'enrol'], shortcode: 'us_group_classes', }, ]; blocks.forEach((def) => { registerBlockType(def.name, { apiVersion: 3, title: def.title, description: def.description, icon: def.icon, category: 'widgets', keywords: def.keywords, supports: { html: false, multiple: false }, example: {}, edit: function Edit() { return el('div', useBlockProps(), el(ServerSideRender, { block: def.name })); }, save: () => null, transforms: { from: [{ type: 'shortcode', tag: def.shortcode }], }, }); }); }());